diff options
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java | 642 |
1 files changed, 327 insertions, 315 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java index 46aeec7e..93f9d162 100644 --- a/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java +++ b/bcprov/src/main/java/org/bouncycastle/jcajce/provider/asymmetric/ec/SignatureSpi.java @@ -16,19 +16,18 @@ import org.bouncycastle.crypto.CipherParameters; import org.bouncycastle.crypto.DSA; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.NullDigest; -// BEGIN android-added -import org.bouncycastle.crypto.digests.AndroidDigestFactory; -// END android-added -// BEGIN android-removed +// BEGIN Android-removed: Unsupported algorithms // import org.bouncycastle.crypto.digests.RIPEMD160Digest; -// END android-removed +// END Android-removed: Unsupported algorithms import org.bouncycastle.crypto.params.ParametersWithRandom; import org.bouncycastle.crypto.signers.ECDSASigner; -// BEGIN android-removed +// BEGIN Android-removed: Unsupported algorithms // import org.bouncycastle.crypto.signers.ECNRSigner; // import org.bouncycastle.crypto.signers.HMacDSAKCalculator; +// END Android-removed: Unsupported algorithms +// BEGIN Android-changed: Use Android digests // import org.bouncycastle.crypto.util.DigestFactory; -// END android-removed +import org.bouncycastle.crypto.digests.AndroidDigestFactory; import org.bouncycastle.jcajce.provider.asymmetric.util.DSABase; import org.bouncycastle.jcajce.provider.asymmetric.util.DSAEncoder; import org.bouncycastle.jcajce.provider.asymmetric.util.ECUtil; @@ -74,22 +73,24 @@ public class SignatureSpi { public ecDSA() { - // BEGIN android-changed + // Android-changed: Use Android digests + // super(DigestFactory.createSHA1(), new ECDSASigner(), new StdDSAEncoder()); super(AndroidDigestFactory.getSHA1(), new ECDSASigner(), new StdDSAEncoder()); - // END android-changed } } - // BEGIN android-removed - // static public class ecDetDSA - // extends SignatureSpi - // { - // public ecDetDSA() - // { - // super(DigestFactory.createSHA1(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA1())), new StdDSAEncoder()); - // } - // } - // END android-removed + // BEGIN Android-removed: Unsupported algorithm + /* + static public class ecDetDSA + extends SignatureSpi + { + public ecDetDSA() + { + super(DigestFactory.createSHA1(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA1())), new StdDSAEncoder()); + } + } + */ + // END Android-removed: Unsupported algorithm static public class ecDSAnone extends SignatureSpi @@ -105,267 +106,276 @@ public class SignatureSpi { public ecDSA224() { - // BEGIN android-changed + // Android-changed: Use Android digests + // super(DigestFactory.createSHA224(), new ECDSASigner(), new StdDSAEncoder()); super(AndroidDigestFactory.getSHA224(), new ECDSASigner(), new StdDSAEncoder()); - // END android-changed } } - // BEGIN android-removed - // static public class ecDetDSA224 - // extends SignatureSpi - // { - // public ecDetDSA224() - // { - // super(DigestFactory.createSHA224(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA224())), new StdDSAEncoder()); - // } - // } - // END android-removed + // BEGIN Android-removed: Unsupported algorithm + /* + static public class ecDetDSA224 + extends SignatureSpi + { + public ecDetDSA224() + { + super(DigestFactory.createSHA224(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA224())), new StdDSAEncoder()); + } + } + */ + // END Android-removed: Unsupported algorithm static public class ecDSA256 extends SignatureSpi { public ecDSA256() { - // BEGIN android-changed + // Android-changed: Use Android digests + // super(DigestFactory.createSHA256(), new ECDSASigner(), new StdDSAEncoder()); super(AndroidDigestFactory.getSHA256(), new ECDSASigner(), new StdDSAEncoder()); - // END android-changed } } - // BEGIN android-removed - // static public class ecDetDSA256 - // extends SignatureSpi - // { - // public ecDetDSA256() - // { - // super(DigestFactory.createSHA256(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA256())), new StdDSAEncoder()); - // } - // } - // END android-removed + // BEGIN Android-removed: Unsupported algorithm + /* + static public class ecDetDSA256 + extends SignatureSpi + { + public ecDetDSA256() + { + super(DigestFactory.createSHA256(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA256())), new StdDSAEncoder()); + } + } + */ + // END Android-removed: Unsupported algorithm static public class ecDSA384 extends SignatureSpi { public ecDSA384() { - // BEGIN android-changed + // Android-changed: Use Android digests + // super(DigestFactory.createSHA384(), new ECDSASigner(), new StdDSAEncoder()); super(AndroidDigestFactory.getSHA384(), new ECDSASigner(), new StdDSAEncoder()); - // END android-changed } } - // BEGIN android-removed - // static public class ecDetDSA384 - // extends SignatureSpi - // { - // public ecDetDSA384() - // { - // super(DigestFactory.createSHA384(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA384())), new StdDSAEncoder()); - // } - // } - // END android-removed + // BEGIN Android-removed: Unsupported algorithm + /* + static public class ecDetDSA384 + extends SignatureSpi + { + public ecDetDSA384() + { + super(DigestFactory.createSHA384(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA384())), new StdDSAEncoder()); + } + } + */ + // END Android-removed: Unsupported algorithms + static public class ecDSA512 extends SignatureSpi { public ecDSA512() { - // BEGIN android-changed + // Android-changed: Use Android digests + // super(DigestFactory.createSHA512(), new ECDSASigner(), new StdDSAEncoder()); super(AndroidDigestFactory.getSHA512(), new ECDSASigner(), new StdDSAEncoder()); - // END android-changed - } - } - - // BEGIN android-removed - // static public class ecDetDSA512 - // extends SignatureSpi - // { - // public ecDetDSA512() - // { - // super(DigestFactory.createSHA512(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA512())), new StdDSAEncoder()); - // } - // } - - // static public class ecDSASha3_224 - // extends SignatureSpi - // { - // public ecDSASha3_224() - // { - // super(DigestFactory.createSHA3_224(), new ECDSASigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecDetDSASha3_224 - // extends SignatureSpi - // { - // public ecDetDSASha3_224() - // { - // super(DigestFactory.createSHA3_224(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_224())), new StdDSAEncoder()); - // } - // } - - // static public class ecDSASha3_256 - // extends SignatureSpi - // { - // public ecDSASha3_256() - // { - // super(DigestFactory.createSHA3_256(), new ECDSASigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecDetDSASha3_256 - // extends SignatureSpi - // { - // public ecDetDSASha3_256() - // { - // super(DigestFactory.createSHA3_256(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_256())), new StdDSAEncoder()); - // } - // } - - // static public class ecDSASha3_384 - // extends SignatureSpi - // { - // public ecDSASha3_384() - // { - // super(DigestFactory.createSHA3_384(), new ECDSASigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecDetDSASha3_384 - // extends SignatureSpi - // { - // public ecDetDSASha3_384() - // { - // super(DigestFactory.createSHA3_384(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_384())), new StdDSAEncoder()); - // } - // } - - // static public class ecDSASha3_512 - // extends SignatureSpi - // { - // public ecDSASha3_512() - // { - // super(DigestFactory.createSHA3_512(), new ECDSASigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecDetDSASha3_512 - // extends SignatureSpi - // { - // public ecDetDSASha3_512() - // { - // super(DigestFactory.createSHA3_512(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_512())), new StdDSAEncoder()); - // } - // } - - // static public class ecDSARipeMD160 - // extends SignatureSpi - // { - // public ecDSARipeMD160() - // { - // super(new RIPEMD160Digest(), new ECDSASigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecNR - // extends SignatureSpi - // { - // public ecNR() - // { - // super(DigestFactory.createSHA1(), new ECNRSigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecNR224 - // extends SignatureSpi - // { - // public ecNR224() - // { - // super(DigestFactory.createSHA224(), new ECNRSigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecNR256 - // extends SignatureSpi - // { - // public ecNR256() - // { - // super(DigestFactory.createSHA256(), new ECNRSigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecNR384 - // extends SignatureSpi - // { - // public ecNR384() - // { - // super(DigestFactory.createSHA384(), new ECNRSigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecNR512 - // extends SignatureSpi - // { - // public ecNR512() - // { - // super(DigestFactory.createSHA512(), new ECNRSigner(), new StdDSAEncoder()); - // } - // } - - // static public class ecCVCDSA - // extends SignatureSpi - // { - // public ecCVCDSA() - // { - // super(DigestFactory.createSHA1(), new ECDSASigner(), new PlainDSAEncoder()); - // } - // } - - // static public class ecCVCDSA224 - // extends SignatureSpi - // { - // public ecCVCDSA224() - // { - // super(DigestFactory.createSHA224(), new ECDSASigner(), new PlainDSAEncoder()); - // } - // } - - // static public class ecCVCDSA256 - // extends SignatureSpi - // { - // public ecCVCDSA256() - // { - // super(DigestFactory.createSHA256(), new ECDSASigner(), new PlainDSAEncoder()); - // } - // } - - // static public class ecCVCDSA384 - // extends SignatureSpi - // { - // public ecCVCDSA384() - // { - // super(DigestFactory.createSHA384(), new ECDSASigner(), new PlainDSAEncoder()); - // } - // } - - // static public class ecCVCDSA512 - // extends SignatureSpi - // { - // public ecCVCDSA512() - // { - // super(DigestFactory.createSHA512(), new ECDSASigner(), new PlainDSAEncoder()); - // } - // } - - // static public class ecPlainDSARP160 - // extends SignatureSpi - // { - // public ecPlainDSARP160() - // { - // super(new RIPEMD160Digest(), new ECDSASigner(), new PlainDSAEncoder()); - // } - // } - // END android-removed + } + } + + // BEGIN Android-removed: Unsupported algorithms + /* + static public class ecDetDSA512 + extends SignatureSpi + { + public ecDetDSA512() + { + super(DigestFactory.createSHA512(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA512())), new StdDSAEncoder()); + } + } + + static public class ecDSASha3_224 + extends SignatureSpi + { + public ecDSASha3_224() + { + super(DigestFactory.createSHA3_224(), new ECDSASigner(), new StdDSAEncoder()); + } + } + + static public class ecDetDSASha3_224 + extends SignatureSpi + { + public ecDetDSASha3_224() + { + super(DigestFactory.createSHA3_224(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_224())), new StdDSAEncoder()); + } + } + + static public class ecDSASha3_256 + extends SignatureSpi + { + public ecDSASha3_256() + { + super(DigestFactory.createSHA3_256(), new ECDSASigner(), new StdDSAEncoder()); + } + } + + static public class ecDetDSASha3_256 + extends SignatureSpi + { + public ecDetDSASha3_256() + { + super(DigestFactory.createSHA3_256(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_256())), new StdDSAEncoder()); + } + } + + static public class ecDSASha3_384 + extends SignatureSpi + { + public ecDSASha3_384() + { + super(DigestFactory.createSHA3_384(), new ECDSASigner(), new StdDSAEncoder()); + } + } + + static public class ecDetDSASha3_384 + extends SignatureSpi + { + public ecDetDSASha3_384() + { + super(DigestFactory.createSHA3_384(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_384())), new StdDSAEncoder()); + } + } + + static public class ecDSASha3_512 + extends SignatureSpi + { + public ecDSASha3_512() + { + super(DigestFactory.createSHA3_512(), new ECDSASigner(), new StdDSAEncoder()); + } + } + + static public class ecDetDSASha3_512 + extends SignatureSpi + { + public ecDetDSASha3_512() + { + super(DigestFactory.createSHA3_512(), new ECDSASigner(new HMacDSAKCalculator(DigestFactory.createSHA3_512())), new StdDSAEncoder()); + } + } + + static public class ecDSARipeMD160 + extends SignatureSpi + { + public ecDSARipeMD160() + { + super(new RIPEMD160Digest(), new ECDSASigner(), new StdDSAEncoder()); + } + } + + static public class ecNR + extends SignatureSpi + { + public ecNR() + { + super(DigestFactory.createSHA1(), new ECNRSigner(), new StdDSAEncoder()); + } + } + + static public class ecNR224 + extends SignatureSpi + { + public ecNR224() + { + super(DigestFactory.createSHA224(), new ECNRSigner(), new StdDSAEncoder()); + } + } + + static public class ecNR256 + extends SignatureSpi + { + public ecNR256() + { + super(DigestFactory.createSHA256(), new ECNRSigner(), new StdDSAEncoder()); + } + } + + static public class ecNR384 + extends SignatureSpi + { + public ecNR384() + { + super(DigestFactory.createSHA384(), new ECNRSigner(), new StdDSAEncoder()); + } + } + + static public class ecNR512 + extends SignatureSpi + { + public ecNR512() + { + super(DigestFactory.createSHA512(), new ECNRSigner(), new StdDSAEncoder()); + } + } + + static public class ecCVCDSA + extends SignatureSpi + { + public ecCVCDSA() + { + super(DigestFactory.createSHA1(), new ECDSASigner(), new PlainDSAEncoder()); + } + } + + static public class ecCVCDSA224 + extends SignatureSpi + { + public ecCVCDSA224() + { + super(DigestFactory.createSHA224(), new ECDSASigner(), new PlainDSAEncoder()); + } + } + + static public class ecCVCDSA256 + extends SignatureSpi + { + public ecCVCDSA256() + { + super(DigestFactory.createSHA256(), new ECDSASigner(), new PlainDSAEncoder()); + } + } + + static public class ecCVCDSA384 + extends SignatureSpi + { + public ecCVCDSA384() + { + super(DigestFactory.createSHA384(), new ECDSASigner(), new PlainDSAEncoder()); + } + } + + static public class ecCVCDSA512 + extends SignatureSpi + { + public ecCVCDSA512() + { + super(DigestFactory.createSHA512(), new ECDSASigner(), new PlainDSAEncoder()); + } + } + + static public class ecPlainDSARP160 + extends SignatureSpi + { + public ecPlainDSARP160() + { + super(new RIPEMD160Digest(), new ECDSASigner(), new PlainDSAEncoder()); + } + } + */ + // END Android-removed: Unsupported algorithms private static class StdDSAEncoder implements DSAEncoder @@ -406,68 +416,70 @@ public class SignatureSpi } } - // BEGIN android-removed - // private static class PlainDSAEncoder - // implements DSAEncoder - // { - // public byte[] encode( - // BigInteger r, - // BigInteger s) - // throws IOException - // { - // byte[] first = makeUnsigned(r); - // byte[] second = makeUnsigned(s); - // byte[] res; - // - // if (first.length > second.length) - // { - // res = new byte[first.length * 2]; - // } - // else - // { - // res = new byte[second.length * 2]; - // } - // - // System.arraycopy(first, 0, res, res.length / 2 - first.length, first.length); - // System.arraycopy(second, 0, res, res.length - second.length, second.length); - // - // return res; - // } - // - // - // private byte[] makeUnsigned(BigInteger val) - // { - // byte[] res = val.toByteArray(); - // - // if (res[0] == 0) - // { - // byte[] tmp = new byte[res.length - 1]; - // - // System.arraycopy(res, 1, tmp, 0, tmp.length); - // - // return tmp; - // } - // - // return res; - // } - // - // public BigInteger[] decode( - // byte[] encoding) - // throws IOException - // { - // BigInteger[] sig = new BigInteger[2]; - // - // byte[] first = new byte[encoding.length / 2]; - // byte[] second = new byte[encoding.length / 2]; - // - // System.arraycopy(encoding, 0, first, 0, first.length); - // System.arraycopy(encoding, first.length, second, 0, second.length); - // - // sig[0] = new BigInteger(1, first); - // sig[1] = new BigInteger(1, second); - // - // return sig; - // } - // } - // END android-removed -} + // BEGIN Android-removed: Unsupported algorithms + /* + private static class PlainDSAEncoder + implements DSAEncoder + { + public byte[] encode( + BigInteger r, + BigInteger s) + throws IOException + { + byte[] first = makeUnsigned(r); + byte[] second = makeUnsigned(s); + byte[] res; + + if (first.length > second.length) + { + res = new byte[first.length * 2]; + } + else + { + res = new byte[second.length * 2]; + } + + System.arraycopy(first, 0, res, res.length / 2 - first.length, first.length); + System.arraycopy(second, 0, res, res.length - second.length, second.length); + + return res; + } + + + private byte[] makeUnsigned(BigInteger val) + { + byte[] res = val.toByteArray(); + + if (res[0] == 0) + { + byte[] tmp = new byte[res.length - 1]; + + System.arraycopy(res, 1, tmp, 0, tmp.length); + + return tmp; + } + + return res; + } + + public BigInteger[] decode( + byte[] encoding) + throws IOException + { + BigInteger[] sig = new BigInteger[2]; + + byte[] first = new byte[encoding.length / 2]; + byte[] second = new byte[encoding.length / 2]; + + System.arraycopy(encoding, 0, first, 0, first.length); + System.arraycopy(encoding, first.length, second, 0, second.length); + + sig[0] = new BigInteger(1, first); + sig[1] = new BigInteger(1, second); + + return sig; + } + } + */ + // END Android-removed: Unsupported algorithms +}
\ No newline at end of file |