docs: function SignatureAlgorithm( type, bits ) {
  
    if( !(this instanceof SignatureAlgorithm) )
      return new SignatureAlgorithm( type, bits )
  
    if( typeof type !== 'string' )
      throw new TypeError( 'Argument "type" must be a string' )
  
    if( !Number.isFinite( bits ) )
      throw new TypeError( 'Argument "bits" must be a number' )
  
    if( !SignatureAlgorithm.type.hasOwnProperty( type ) )
      throw new Error( 'Unsupported type "' + type + '"' )
  
    this.type = type.toUpperCase()
    this.bits = bits | 0
    this.algorithm = SignatureAlgorithm.type[ this.type ]
  
    // ECDSA 512 uses 521 bits
    if( this.type === 'ES' && this.bits === 512 )
      this.bits = 521
  
  }