code:     private BigInteger[] derDecode(
          byte[]  encoding)
          throws IOException
      {
          ASN1Sequence s = (ASN1Sequence)ASN1Primitive.fromByteArray(encoding);
          if (s.size() != 2)
          {
              throw new IOException("malformed signature");
          }
          if (!Arrays.areEqual(encoding, s.getEncoded(ASN1Encoding.DER)))
          {
              throw new IOException("malformed signature");
          }
  
          return new BigInteger[]{
              ((ASN1Integer)s.getObjectAt(0)).getValue(),
              ((ASN1Integer)s.getObjectAt(1)).getValue()
          };
      }
  
  