1diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSSignedData.java bcpkix-jdk15on-149/org/bouncycastle/cms/CMSSignedData.java 2--- bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSSignedData.java 2013-05-31 21:17:22.000000000 +0000 3+++ bcpkix-jdk15on-149/org/bouncycastle/cms/CMSSignedData.java 2013-05-25 02:14:15.000000000 +0000 4@@ -25,7 +25,9 @@ 5 import org.bouncycastle.asn1.cms.ContentInfo; 6 import org.bouncycastle.asn1.cms.SignedData; 7 import org.bouncycastle.asn1.cms.SignerInfo; 8-import org.bouncycastle.cert.jcajce.JcaCertStoreBuilder; 9+// BEGIN android-removed 10+// import org.bouncycastle.cert.jcajce.JcaCertStoreBuilder; 11+// END android-removed 12 import org.bouncycastle.operator.DefaultSignatureAlgorithmIdentifierFinder; 13 import org.bouncycastle.operator.OperatorCreationException; 14 import org.bouncycastle.operator.SignatureAlgorithmIdentifierFinder; 15@@ -309,147 +311,149 @@ 16 return attributeStore; 17 } 18 19- /** 20- * return a X509Store containing the public key certificates, if any, contained 21- * in this message. 22- * 23- * @param type type of store to create 24- * @param provider name of provider to use 25- * @return a store of public key certificates 26- * @exception NoSuchProviderException if the provider requested isn't available. 27- * @exception NoSuchStoreException if the store type isn't available. 28- * @exception CMSException if a general exception prevents creation of the X509Store 29- * @deprecated use base Store returning method 30- */ 31- public X509Store getCertificates( 32- String type, 33- String provider) 34- throws NoSuchStoreException, NoSuchProviderException, CMSException 35- { 36- return getCertificates(type, CMSUtils.getProvider(provider)); 37- } 38- 39- /** 40- * return a X509Store containing the public key certificates, if any, contained 41- * in this message. 42- * 43- * @param type type of store to create 44- * @param provider provider to use 45- * @return a store of public key certificates 46- * @exception NoSuchStoreException if the store type isn't available. 47- * @exception CMSException if a general exception prevents creation of the X509Store 48- * @deprecated use base Store returning method 49- */ 50- public X509Store getCertificates( 51- String type, 52- Provider provider) 53- throws NoSuchStoreException, CMSException 54- { 55- if (certificateStore == null) 56- { 57- certificateStore = HELPER.createCertificateStore(type, provider, this.getCertificates()); 58- } 59- 60- return certificateStore; 61- } 62- 63- /** 64- * return a X509Store containing CRLs, if any, contained 65- * in this message. 66- * 67- * @param type type of store to create 68- * @param provider name of provider to use 69- * @return a store of CRLs 70- * @exception NoSuchProviderException if the provider requested isn't available. 71- * @exception NoSuchStoreException if the store type isn't available. 72- * @exception CMSException if a general exception prevents creation of the X509Store 73- * @deprecated use base Store returning method 74- */ 75- public X509Store getCRLs( 76- String type, 77- String provider) 78- throws NoSuchStoreException, NoSuchProviderException, CMSException 79- { 80- return getCRLs(type, CMSUtils.getProvider(provider)); 81- } 82- 83- /** 84- * return a X509Store containing CRLs, if any, contained 85- * in this message. 86- * 87- * @param type type of store to create 88- * @param provider provider to use 89- * @return a store of CRLs 90- * @exception NoSuchStoreException if the store type isn't available. 91- * @exception CMSException if a general exception prevents creation of the X509Store 92- * @deprecated use base Store returning method 93- */ 94- public X509Store getCRLs( 95- String type, 96- Provider provider) 97- throws NoSuchStoreException, CMSException 98- { 99- if (crlStore == null) 100- { 101- crlStore = HELPER.createCRLsStore(type, provider, getCRLs()); 102- } 103- 104- return crlStore; 105- } 106- 107- /** 108- * return a CertStore containing the certificates and CRLs associated with 109- * this message. 110- * 111- * @exception NoSuchProviderException if the provider requested isn't available. 112- * @exception NoSuchAlgorithmException if the cert store isn't available. 113- * @exception CMSException if a general exception prevents creation of the CertStore 114- * @deprecated use base Store returning method and org.bouncycastle.cert.jcajce.JcaCertStoreBuilder 115- */ 116- public CertStore getCertificatesAndCRLs( 117- String type, 118- String provider) 119- throws NoSuchAlgorithmException, NoSuchProviderException, CMSException 120- { 121- return getCertificatesAndCRLs(type, CMSUtils.getProvider(provider)); 122- } 123- 124- /** 125- * return a CertStore containing the certificates and CRLs associated with 126- * this message. 127- * 128- * @exception NoSuchAlgorithmException if the cert store isn't available. 129- * @exception CMSException if a general exception prevents creation of the CertStore 130- * @deprecated use base Store returning method and org.bouncycastle.cert.jcajce.JcaCertStoreBuilder 131- */ 132- public CertStore getCertificatesAndCRLs( 133- String type, 134- Provider provider) 135- throws NoSuchAlgorithmException, CMSException 136- { 137- try 138- { 139- JcaCertStoreBuilder certStoreBuilder = new JcaCertStoreBuilder().setType(type); 140- 141- if (provider != null) 142- { 143- certStoreBuilder.setProvider(provider); 144- } 145- 146- certStoreBuilder.addCertificates(this.getCertificates()); 147- certStoreBuilder.addCRLs(this.getCRLs()); 148- 149- return certStoreBuilder.build(); 150- } 151- catch (NoSuchAlgorithmException e) 152- { 153- throw e; 154- } 155- catch (Exception e) 156- { 157- throw new CMSException("exception creating CertStore: " + e.getMessage(), e); 158- } 159- } 160+ // BEGIN android-removed 161+ // /** 162+ // * return a X509Store containing the public key certificates, if any, contained 163+ // * in this message. 164+ // * 165+ // * @param type type of store to create 166+ // * @param provider name of provider to use 167+ // * @return a store of public key certificates 168+ // * @exception NoSuchProviderException if the provider requested isn't available. 169+ // * @exception NoSuchStoreException if the store type isn't available. 170+ // * @exception CMSException if a general exception prevents creation of the X509Store 171+ // * @deprecated use base Store returning method 172+ // */ 173+ // public X509Store getCertificates( 174+ // String type, 175+ // String provider) 176+ // throws NoSuchStoreException, NoSuchProviderException, CMSException 177+ // { 178+ // return getCertificates(type, CMSUtils.getProvider(provider)); 179+ // } 180+ // 181+ // /** 182+ // * return a X509Store containing the public key certificates, if any, contained 183+ // * in this message. 184+ // * 185+ // * @param type type of store to create 186+ // * @param provider provider to use 187+ // * @return a store of public key certificates 188+ // * @exception NoSuchStoreException if the store type isn't available. 189+ // * @exception CMSException if a general exception prevents creation of the X509Store 190+ // * @deprecated use base Store returning method 191+ // */ 192+ // public X509Store getCertificates( 193+ // String type, 194+ // Provider provider) 195+ // throws NoSuchStoreException, CMSException 196+ // { 197+ // if (certificateStore == null) 198+ // { 199+ // certificateStore = HELPER.createCertificateStore(type, provider, this.getCertificates()); 200+ // } 201+ // 202+ // return certificateStore; 203+ // } 204+ // 205+ // /** 206+ // * return a X509Store containing CRLs, if any, contained 207+ // * in this message. 208+ // * 209+ // * @param type type of store to create 210+ // * @param provider name of provider to use 211+ // * @return a store of CRLs 212+ // * @exception NoSuchProviderException if the provider requested isn't available. 213+ // * @exception NoSuchStoreException if the store type isn't available. 214+ // * @exception CMSException if a general exception prevents creation of the X509Store 215+ // * @deprecated use base Store returning method 216+ // */ 217+ // public X509Store getCRLs( 218+ // String type, 219+ // String provider) 220+ // throws NoSuchStoreException, NoSuchProviderException, CMSException 221+ // { 222+ // return getCRLs(type, CMSUtils.getProvider(provider)); 223+ // } 224+ // 225+ // /** 226+ // * return a X509Store containing CRLs, if any, contained 227+ // * in this message. 228+ // * 229+ // * @param type type of store to create 230+ // * @param provider provider to use 231+ // * @return a store of CRLs 232+ // * @exception NoSuchStoreException if the store type isn't available. 233+ // * @exception CMSException if a general exception prevents creation of the X509Store 234+ // * @deprecated use base Store returning method 235+ // */ 236+ // public X509Store getCRLs( 237+ // String type, 238+ // Provider provider) 239+ // throws NoSuchStoreException, CMSException 240+ // { 241+ // if (crlStore == null) 242+ // { 243+ // crlStore = HELPER.createCRLsStore(type, provider, getCRLs()); 244+ // } 245+ // 246+ // return crlStore; 247+ // } 248+ // 249+ // /** 250+ // * return a CertStore containing the certificates and CRLs associated with 251+ // * this message. 252+ // * 253+ // * @exception NoSuchProviderException if the provider requested isn't available. 254+ // * @exception NoSuchAlgorithmException if the cert store isn't available. 255+ // * @exception CMSException if a general exception prevents creation of the CertStore 256+ // * @deprecated use base Store returning method and org.bouncycastle.cert.jcajce.JcaCertStoreBuilder 257+ // */ 258+ // public CertStore getCertificatesAndCRLs( 259+ // String type, 260+ // String provider) 261+ // throws NoSuchAlgorithmException, NoSuchProviderException, CMSException 262+ // { 263+ // return getCertificatesAndCRLs(type, CMSUtils.getProvider(provider)); 264+ // } 265+ // 266+ // /** 267+ // * return a CertStore containing the certificates and CRLs associated with 268+ // * this message. 269+ // * 270+ // * @exception NoSuchAlgorithmException if the cert store isn't available. 271+ // * @exception CMSException if a general exception prevents creation of the CertStore 272+ // * @deprecated use base Store returning method and org.bouncycastle.cert.jcajce.JcaCertStoreBuilder 273+ // */ 274+ // public CertStore getCertificatesAndCRLs( 275+ // String type, 276+ // Provider provider) 277+ // throws NoSuchAlgorithmException, CMSException 278+ // { 279+ // try 280+ // { 281+ // JcaCertStoreBuilder certStoreBuilder = new JcaCertStoreBuilder().setType(type); 282+ // 283+ // if (provider != null) 284+ // { 285+ // certStoreBuilder.setProvider(provider); 286+ // } 287+ // 288+ // certStoreBuilder.addCertificates(this.getCertificates()); 289+ // certStoreBuilder.addCRLs(this.getCRLs()); 290+ // 291+ // return certStoreBuilder.build(); 292+ // } 293+ // catch (NoSuchAlgorithmException e) 294+ // { 295+ // throw e; 296+ // } 297+ // catch (Exception e) 298+ // { 299+ // throw new CMSException("exception creating CertStore: " + e.getMessage(), e); 300+ // } 301+ // } 302+ // END android-removed 303 304 /** 305 * Return any X.509 certificate objects in this SignedData structure as a Store of X509CertificateHolder objects. 306@@ -481,18 +485,20 @@ 307 return HELPER.getAttributeCertificates(signedData.getCertificates()); 308 } 309 310- /** 311- * Return any OtherRevocationInfo OtherRevInfo objects of the type indicated by otherRevocationInfoFormat in 312- * this SignedData structure. 313- * 314- * @param otherRevocationInfoFormat OID of the format type been looked for. 315- * 316- * @return a Store of ASN1Encodable objects representing any objects of otherRevocationInfoFormat found. 317- */ 318- public Store getOtherRevocationInfo(ASN1ObjectIdentifier otherRevocationInfoFormat) 319- { 320- return HELPER.getOtherRevocationInfo(otherRevocationInfoFormat, signedData.getCRLs()); 321- } 322+ // BEGIN android-removed 323+ // /** 324+ // * Return any OtherRevocationInfo OtherRevInfo objects of the type indicated by otherRevocationInfoFormat in 325+ // * this SignedData structure. 326+ // * 327+ // * @param otherRevocationInfoFormat OID of the format type been looked for. 328+ // * 329+ // * @return a Store of ASN1Encodable objects representing any objects of otherRevocationInfoFormat found. 330+ // */ 331+ // public Store getOtherRevocationInfo(ASN1ObjectIdentifier otherRevocationInfoFormat) 332+ // { 333+ // return HELPER.getOtherRevocationInfo(otherRevocationInfoFormat, signedData.getCRLs()); 334+ // } 335+ // END android-removed 336 337 /** 338 * Return the a string representation of the OID associated with the 339@@ -536,71 +542,73 @@ 340 return contentInfo.getEncoded(); 341 } 342 343- /** 344- * Verify all the SignerInformation objects and their associated counter signatures attached 345- * to this CMS SignedData object. 346- * 347- * @param verifierProvider a provider of SignerInformationVerifier objects. 348- * @return true if all verify, false otherwise. 349- * @throws CMSException if an exception occurs during the verification process. 350- */ 351- public boolean verifySignatures(SignerInformationVerifierProvider verifierProvider) 352- throws CMSException 353- { 354- return verifySignatures(verifierProvider, false); 355- } 356- 357- /** 358- * Verify all the SignerInformation objects and optionally their associated counter signatures attached 359- * to this CMS SignedData object. 360- * 361- * @param verifierProvider a provider of SignerInformationVerifier objects. 362- * @param ignoreCounterSignatures if true don't check counter signatures. If false check counter signatures as well. 363- * @return true if all verify, false otherwise. 364- * @throws CMSException if an exception occurs during the verification process. 365- */ 366- public boolean verifySignatures(SignerInformationVerifierProvider verifierProvider, boolean ignoreCounterSignatures) 367- throws CMSException 368- { 369- Collection signers = this.getSignerInfos().getSigners(); 370- 371- for (Iterator it = signers.iterator(); it.hasNext();) 372- { 373- SignerInformation signer = (SignerInformation)it.next(); 374- 375- try 376- { 377- SignerInformationVerifier verifier = verifierProvider.get(signer.getSID()); 378- 379- if (!signer.verify(verifier)) 380- { 381- return false; 382- } 383- 384- if (!ignoreCounterSignatures) 385- { 386- Collection counterSigners = signer.getCounterSignatures().getSigners(); 387- 388- for (Iterator cIt = counterSigners.iterator(); cIt.hasNext();) 389- { 390- SignerInformation counterSigner = (SignerInformation)cIt.next(); 391- SignerInformationVerifier counterVerifier = verifierProvider.get(signer.getSID()); 392- 393- if (!counterSigner.verify(counterVerifier)) 394- { 395- return false; 396- } 397- } 398- } 399- } 400- catch (OperatorCreationException e) 401- { 402- throw new CMSException("failure in verifier provider: " + e.getMessage(), e); 403- } 404- } 405- 406- return true; 407- } 408+ // BEGIN android-removed 409+ // /** 410+ // * Verify all the SignerInformation objects and their associated counter signatures attached 411+ // * to this CMS SignedData object. 412+ // * 413+ // * @param verifierProvider a provider of SignerInformationVerifier objects. 414+ // * @return true if all verify, false otherwise. 415+ // * @throws CMSException if an exception occurs during the verification process. 416+ // */ 417+ // public boolean verifySignatures(SignerInformationVerifierProvider verifierProvider) 418+ // throws CMSException 419+ // { 420+ // return verifySignatures(verifierProvider, false); 421+ // } 422+ // 423+ // /** 424+ // * Verify all the SignerInformation objects and optionally their associated counter signatures attached 425+ // * to this CMS SignedData object. 426+ // * 427+ // * @param verifierProvider a provider of SignerInformationVerifier objects. 428+ // * @param ignoreCounterSignatures if true don't check counter signatures. If false check counter signatures as well. 429+ // * @return true if all verify, false otherwise. 430+ // * @throws CMSException if an exception occurs during the verification process. 431+ // */ 432+ // public boolean verifySignatures(SignerInformationVerifierProvider verifierProvider, boolean ignoreCounterSignatures) 433+ // throws CMSException 434+ // { 435+ // Collection signers = this.getSignerInfos().getSigners(); 436+ // 437+ // for (Iterator it = signers.iterator(); it.hasNext();) 438+ // { 439+ // SignerInformation signer = (SignerInformation)it.next(); 440+ // 441+ // try 442+ // { 443+ // SignerInformationVerifier verifier = verifierProvider.get(signer.getSID()); 444+ // 445+ // if (!signer.verify(verifier)) 446+ // { 447+ // return false; 448+ // } 449+ // 450+ // if (!ignoreCounterSignatures) 451+ // { 452+ // Collection counterSigners = signer.getCounterSignatures().getSigners(); 453+ // 454+ // for (Iterator cIt = counterSigners.iterator(); cIt.hasNext();) 455+ // { 456+ // SignerInformation counterSigner = (SignerInformation)cIt.next(); 457+ // SignerInformationVerifier counterVerifier = verifierProvider.get(signer.getSID()); 458+ // 459+ // if (!counterSigner.verify(counterVerifier)) 460+ // { 461+ // return false; 462+ // } 463+ // } 464+ // } 465+ // } 466+ // catch (OperatorCreationException e) 467+ // { 468+ // throw new CMSException("failure in verifier provider: " + e.getMessage(), e); 469+ // } 470+ // } 471+ // 472+ // return true; 473+ // } 474+ // END android-removed 475 476 /** 477 * Replace the SignerInformation store associated with this 478diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSSignedGenerator.java bcpkix-jdk15on-149/org/bouncycastle/cms/CMSSignedGenerator.java 479--- bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSSignedGenerator.java 2013-05-31 21:17:22.000000000 +0000 480+++ bcpkix-jdk15on-149/org/bouncycastle/cms/CMSSignedGenerator.java 2013-05-25 02:14:15.000000000 +0000 481@@ -23,8 +23,10 @@ 482 import org.bouncycastle.asn1.DERTaggedObject; 483 import org.bouncycastle.asn1.cms.AttributeTable; 484 import org.bouncycastle.asn1.cms.CMSObjectIdentifiers; 485-import org.bouncycastle.asn1.cms.OtherRevocationInfoFormat; 486-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 487+// BEGIN android-removed 488+// import org.bouncycastle.asn1.cms.OtherRevocationInfoFormat; 489+// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 490+// END android-removed 491 import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 492 import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 493 import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 494@@ -35,7 +37,9 @@ 495 import org.bouncycastle.cert.X509AttributeCertificateHolder; 496 import org.bouncycastle.cert.X509CRLHolder; 497 import org.bouncycastle.cert.X509CertificateHolder; 498-import org.bouncycastle.jce.interfaces.GOST3410PrivateKey; 499+// BEGIN android-removed 500+// import org.bouncycastle.jce.interfaces.GOST3410PrivateKey; 501+// END android-removed 502 import org.bouncycastle.util.Arrays; 503 import org.bouncycastle.util.Store; 504 import org.bouncycastle.x509.X509AttributeCertificate; 505@@ -49,25 +53,33 @@ 506 public static final String DATA = CMSObjectIdentifiers.data.getId(); 507 508 public static final String DIGEST_SHA1 = OIWObjectIdentifiers.idSHA1.getId(); 509- public static final String DIGEST_SHA224 = NISTObjectIdentifiers.id_sha224.getId(); 510+ // BEGIN android-removed 511+ // public static final String DIGEST_SHA224 = NISTObjectIdentifiers.id_sha224.getId(); 512+ // END android-removed 513 public static final String DIGEST_SHA256 = NISTObjectIdentifiers.id_sha256.getId(); 514 public static final String DIGEST_SHA384 = NISTObjectIdentifiers.id_sha384.getId(); 515 public static final String DIGEST_SHA512 = NISTObjectIdentifiers.id_sha512.getId(); 516 public static final String DIGEST_MD5 = PKCSObjectIdentifiers.md5.getId(); 517- public static final String DIGEST_GOST3411 = CryptoProObjectIdentifiers.gostR3411.getId(); 518- public static final String DIGEST_RIPEMD128 = TeleTrusTObjectIdentifiers.ripemd128.getId(); 519- public static final String DIGEST_RIPEMD160 = TeleTrusTObjectIdentifiers.ripemd160.getId(); 520- public static final String DIGEST_RIPEMD256 = TeleTrusTObjectIdentifiers.ripemd256.getId(); 521+ // BEGIN android-removed 522+ // public static final String DIGEST_GOST3411 = CryptoProObjectIdentifiers.gostR3411.getId(); 523+ // public static final String DIGEST_RIPEMD128 = TeleTrusTObjectIdentifiers.ripemd128.getId(); 524+ // public static final String DIGEST_RIPEMD160 = TeleTrusTObjectIdentifiers.ripemd160.getId(); 525+ // public static final String DIGEST_RIPEMD256 = TeleTrusTObjectIdentifiers.ripemd256.getId(); 526+ // END android-removed 527 528 public static final String ENCRYPTION_RSA = PKCSObjectIdentifiers.rsaEncryption.getId(); 529 public static final String ENCRYPTION_DSA = X9ObjectIdentifiers.id_dsa_with_sha1.getId(); 530 public static final String ENCRYPTION_ECDSA = X9ObjectIdentifiers.ecdsa_with_SHA1.getId(); 531 public static final String ENCRYPTION_RSA_PSS = PKCSObjectIdentifiers.id_RSASSA_PSS.getId(); 532- public static final String ENCRYPTION_GOST3410 = CryptoProObjectIdentifiers.gostR3410_94.getId(); 533- public static final String ENCRYPTION_ECGOST3410 = CryptoProObjectIdentifiers.gostR3410_2001.getId(); 534+ // BEGIN android-removed 535+ // public static final String ENCRYPTION_GOST3410 = CryptoProObjectIdentifiers.gostR3410_94.getId(); 536+ // public static final String ENCRYPTION_ECGOST3410 = CryptoProObjectIdentifiers.gostR3410_2001.getId(); 537+ // END android-removed 538 539 private static final String ENCRYPTION_ECDSA_WITH_SHA1 = X9ObjectIdentifiers.ecdsa_with_SHA1.getId(); 540- private static final String ENCRYPTION_ECDSA_WITH_SHA224 = X9ObjectIdentifiers.ecdsa_with_SHA224.getId(); 541+ // BEGIN android-removed 542+ // private static final String ENCRYPTION_ECDSA_WITH_SHA224 = X9ObjectIdentifiers.ecdsa_with_SHA224.getId(); 543+ // END android-removed 544 private static final String ENCRYPTION_ECDSA_WITH_SHA256 = X9ObjectIdentifiers.ecdsa_with_SHA256.getId(); 545 private static final String ENCRYPTION_ECDSA_WITH_SHA384 = X9ObjectIdentifiers.ecdsa_with_SHA384.getId(); 546 private static final String ENCRYPTION_ECDSA_WITH_SHA512 = X9ObjectIdentifiers.ecdsa_with_SHA512.getId(); 547@@ -80,13 +92,17 @@ 548 NO_PARAMS.add(ENCRYPTION_DSA); 549 NO_PARAMS.add(ENCRYPTION_ECDSA); 550 NO_PARAMS.add(ENCRYPTION_ECDSA_WITH_SHA1); 551- NO_PARAMS.add(ENCRYPTION_ECDSA_WITH_SHA224); 552+ // BEGIN android-removed 553+ // NO_PARAMS.add(ENCRYPTION_ECDSA_WITH_SHA224); 554+ // END android-removed 555 NO_PARAMS.add(ENCRYPTION_ECDSA_WITH_SHA256); 556 NO_PARAMS.add(ENCRYPTION_ECDSA_WITH_SHA384); 557 NO_PARAMS.add(ENCRYPTION_ECDSA_WITH_SHA512); 558 559 EC_ALGORITHMS.put(DIGEST_SHA1, ENCRYPTION_ECDSA_WITH_SHA1); 560- EC_ALGORITHMS.put(DIGEST_SHA224, ENCRYPTION_ECDSA_WITH_SHA224); 561+ // BEGIN android-removed 562+ // EC_ALGORITHMS.put(DIGEST_SHA224, ENCRYPTION_ECDSA_WITH_SHA224); 563+ // END android-removed 564 EC_ALGORITHMS.put(DIGEST_SHA256, ENCRYPTION_ECDSA_WITH_SHA256); 565 EC_ALGORITHMS.put(DIGEST_SHA384, ENCRYPTION_ECDSA_WITH_SHA384); 566 EC_ALGORITHMS.put(DIGEST_SHA512, ENCRYPTION_ECDSA_WITH_SHA512); 567@@ -144,14 +160,16 @@ 568 throw new IllegalArgumentException("can't mix ECDSA with anything but SHA family digests"); 569 } 570 } 571- else if (key instanceof GOST3410PrivateKey || "GOST3410".equalsIgnoreCase(key.getAlgorithm())) 572- { 573- encOID = ENCRYPTION_GOST3410; 574- } 575- else if ("ECGOST3410".equalsIgnoreCase(key.getAlgorithm())) 576- { 577- encOID = ENCRYPTION_ECGOST3410; 578- } 579+ // BEGIN android-removed 580+ // else if (key instanceof GOST3410PrivateKey || "GOST3410".equalsIgnoreCase(key.getAlgorithm())) 581+ // { 582+ // encOID = ENCRYPTION_GOST3410; 583+ // } 584+ // else if ("ECGOST3410".equalsIgnoreCase(key.getAlgorithm())) 585+ // { 586+ // encOID = ENCRYPTION_ECGOST3410; 587+ // } 588+ // END android-removed 589 590 return encOID; 591 } 592@@ -270,31 +288,33 @@ 593 certs.addAll(CMSUtils.getAttributeCertificatesFromStore(attrStore)); 594 } 595 596- /** 597- * Add a single instance of otherRevocationData to the CRL set to be included with the generated SignedData message. 598- * 599- * @param otherRevocationInfoFormat the OID specifying the format of the otherRevocationInfo data. 600- * @param otherRevocationInfo the otherRevocationInfo ASN.1 structure. 601- */ 602- public void addOtherRevocationInfo( 603- ASN1ObjectIdentifier otherRevocationInfoFormat, 604- ASN1Encodable otherRevocationInfo) 605- { 606- crls.add(new DERTaggedObject(false, 1, new OtherRevocationInfoFormat(otherRevocationInfoFormat, otherRevocationInfo))); 607- } 608- 609- /** 610- * Add a Store of otherRevocationData to the CRL set to be included with the generated SignedData message. 611- * 612- * @param otherRevocationInfoFormat the OID specifying the format of the otherRevocationInfo data. 613- * @param otherRevocationInfos a Store of otherRevocationInfo data to add. 614- */ 615- public void addOtherRevocationInfo( 616- ASN1ObjectIdentifier otherRevocationInfoFormat, 617- Store otherRevocationInfos) 618- { 619- crls.addAll(CMSUtils.getOthersFromStore(otherRevocationInfoFormat, otherRevocationInfos)); 620- } 621+ // BEGIN android-removed 622+ // /** 623+ // * Add a single instance of otherRevocationData to the CRL set to be included with the generated SignedData message. 624+ // * 625+ // * @param otherRevocationInfoFormat the OID specifying the format of the otherRevocationInfo data. 626+ // * @param otherRevocationInfo the otherRevocationInfo ASN.1 structure. 627+ // */ 628+ // public void addOtherRevocationInfo( 629+ // ASN1ObjectIdentifier otherRevocationInfoFormat, 630+ // ASN1Encodable otherRevocationInfo) 631+ // { 632+ // crls.add(new DERTaggedObject(false, 1, new OtherRevocationInfoFormat(otherRevocationInfoFormat, otherRevocationInfo))); 633+ // } 634+ // 635+ // /** 636+ // * Add a Store of otherRevocationData to the CRL set to be included with the generated SignedData message. 637+ // * 638+ // * @param otherRevocationInfoFormat the OID specifying the format of the otherRevocationInfo data. 639+ // * @param otherRevocationInfos a Store of otherRevocationInfo data to add. 640+ // */ 641+ // public void addOtherRevocationInfo( 642+ // ASN1ObjectIdentifier otherRevocationInfoFormat, 643+ // Store otherRevocationInfos) 644+ // { 645+ // crls.addAll(CMSUtils.getOthersFromStore(otherRevocationInfoFormat, otherRevocationInfos)); 646+ // } 647+ // END android-removed 648 649 /** 650 * Add the attribute certificates contained in the passed in store to the 651diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSSignedHelper.java bcpkix-jdk15on-149/org/bouncycastle/cms/CMSSignedHelper.java 652--- bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSSignedHelper.java 2013-05-31 21:17:22.000000000 +0000 653+++ bcpkix-jdk15on-149/org/bouncycastle/cms/CMSSignedHelper.java 2013-05-25 02:14:15.000000000 +0000 654@@ -19,8 +19,10 @@ 655 import org.bouncycastle.asn1.ASN1Set; 656 import org.bouncycastle.asn1.ASN1TaggedObject; 657 import org.bouncycastle.asn1.DERNull; 658-import org.bouncycastle.asn1.cms.OtherRevocationInfoFormat; 659-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 660+// BEGIN android-removed 661+// import org.bouncycastle.asn1.cms.OtherRevocationInfoFormat; 662+// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 663+// END android-removed 664 import org.bouncycastle.asn1.eac.EACObjectIdentifiers; 665 import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 666 import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 667@@ -35,8 +37,10 @@ 668 import org.bouncycastle.cert.X509AttributeCertificateHolder; 669 import org.bouncycastle.cert.X509CRLHolder; 670 import org.bouncycastle.cert.X509CertificateHolder; 671-import org.bouncycastle.cert.jcajce.JcaX509CRLConverter; 672-import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; 673+// BEGIN android-removed 674+// import org.bouncycastle.cert.jcajce.JcaX509CRLConverter; 675+// import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; 676+// END android-removed 677 import org.bouncycastle.util.CollectionStore; 678 import org.bouncycastle.util.Store; 679 import org.bouncycastle.x509.NoSuchStoreException; 680@@ -60,31 +64,43 @@ 681 682 static 683 { 684- addEntries(NISTObjectIdentifiers.dsa_with_sha224, "SHA224", "DSA"); 685+ // BEGIN android-removed 686+ // addEntries(NISTObjectIdentifiers.dsa_with_sha224, "SHA224", "DSA"); 687+ // END android-removed 688 addEntries(NISTObjectIdentifiers.dsa_with_sha256, "SHA256", "DSA"); 689 addEntries(NISTObjectIdentifiers.dsa_with_sha384, "SHA384", "DSA"); 690 addEntries(NISTObjectIdentifiers.dsa_with_sha512, "SHA512", "DSA"); 691 addEntries(OIWObjectIdentifiers.dsaWithSHA1, "SHA1", "DSA"); 692- addEntries(OIWObjectIdentifiers.md4WithRSA, "MD4", "RSA"); 693- addEntries(OIWObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 694+ // BEGIN android-removed 695+ // addEntries(OIWObjectIdentifiers.md4WithRSA, "MD4", "RSA"); 696+ // addEntries(OIWObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 697+ // END android-removed 698 addEntries(OIWObjectIdentifiers.md5WithRSA, "MD5", "RSA"); 699 addEntries(OIWObjectIdentifiers.sha1WithRSA, "SHA1", "RSA"); 700- addEntries(PKCSObjectIdentifiers.md2WithRSAEncryption, "MD2", "RSA"); 701- addEntries(PKCSObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 702+ // BEGIN android-removed 703+ // addEntries(PKCSObjectIdentifiers.md2WithRSAEncryption, "MD2", "RSA"); 704+ // addEntries(PKCSObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 705+ // END android-removed 706 addEntries(PKCSObjectIdentifiers.md5WithRSAEncryption, "MD5", "RSA"); 707 addEntries(PKCSObjectIdentifiers.sha1WithRSAEncryption, "SHA1", "RSA"); 708- addEntries(PKCSObjectIdentifiers.sha224WithRSAEncryption, "SHA224", "RSA"); 709+ // BEGIN android-removed 710+ // addEntries(PKCSObjectIdentifiers.sha224WithRSAEncryption, "SHA224", "RSA"); 711+ // END android-removed 712 addEntries(PKCSObjectIdentifiers.sha256WithRSAEncryption, "SHA256", "RSA"); 713 addEntries(PKCSObjectIdentifiers.sha384WithRSAEncryption, "SHA384", "RSA"); 714 addEntries(PKCSObjectIdentifiers.sha512WithRSAEncryption, "SHA512", "RSA"); 715 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA1, "SHA1", "ECDSA"); 716- addEntries(X9ObjectIdentifiers.ecdsa_with_SHA224, "SHA224", "ECDSA"); 717+ // BEGIN android-removed 718+ // addEntries(X9ObjectIdentifiers.ecdsa_with_SHA224, "SHA224", "ECDSA"); 719+ // END android-removed 720 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA256, "SHA256", "ECDSA"); 721 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA384, "SHA384", "ECDSA"); 722 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA512, "SHA512", "ECDSA"); 723 addEntries(X9ObjectIdentifiers.id_dsa_with_sha1, "SHA1", "DSA"); 724 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_1, "SHA1", "ECDSA"); 725- addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_224, "SHA224", "ECDSA"); 726+ // BEGIN android-removed 727+ // addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_224, "SHA224", "ECDSA"); 728+ // END android-removed 729 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_256, "SHA256", "ECDSA"); 730 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_384, "SHA384", "ECDSA"); 731 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_512, "SHA512", "ECDSA"); 732@@ -97,30 +113,38 @@ 733 encryptionAlgs.put(PKCSObjectIdentifiers.rsaEncryption.getId(), "RSA"); 734 encryptionAlgs.put(TeleTrusTObjectIdentifiers.teleTrusTRSAsignatureAlgorithm, "RSA"); 735 encryptionAlgs.put(X509ObjectIdentifiers.id_ea_rsa.getId(), "RSA"); 736- encryptionAlgs.put(CMSSignedDataGenerator.ENCRYPTION_RSA_PSS, "RSAandMGF1"); 737- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_94.getId(), "GOST3410"); 738- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_2001.getId(), "ECGOST3410"); 739- encryptionAlgs.put("1.3.6.1.4.1.5849.1.6.2", "ECGOST3410"); 740- encryptionAlgs.put("1.3.6.1.4.1.5849.1.1.5", "GOST3410"); 741- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001.getId(), "ECGOST3410"); 742- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94.getId(), "GOST3410"); 743- 744- digestAlgs.put(PKCSObjectIdentifiers.md2.getId(), "MD2"); 745- digestAlgs.put(PKCSObjectIdentifiers.md4.getId(), "MD4"); 746+ // BEGIN android-removed 747+ // encryptionAlgs.put(CMSSignedDataGenerator.ENCRYPTION_RSA_PSS, "RSAandMGF1"); 748+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_94.getId(), "GOST3410"); 749+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_2001.getId(), "ECGOST3410"); 750+ // encryptionAlgs.put("1.3.6.1.4.1.5849.1.6.2", "ECGOST3410"); 751+ // encryptionAlgs.put("1.3.6.1.4.1.5849.1.1.5", "GOST3410"); 752+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001.getId(), "ECGOST3410"); 753+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94.getId(), "GOST3410"); 754+ // 755+ // digestAlgs.put(PKCSObjectIdentifiers.md2.getId(), "MD2"); 756+ // digestAlgs.put(PKCSObjectIdentifiers.md4.getId(), "MD4"); 757+ // END android-removed 758 digestAlgs.put(PKCSObjectIdentifiers.md5.getId(), "MD5"); 759 digestAlgs.put(OIWObjectIdentifiers.idSHA1.getId(), "SHA1"); 760- digestAlgs.put(NISTObjectIdentifiers.id_sha224.getId(), "SHA224"); 761+ // BEGIN android-removed 762+ // digestAlgs.put(NISTObjectIdentifiers.id_sha224.getId(), "SHA224"); 763+ // END android-removed 764 digestAlgs.put(NISTObjectIdentifiers.id_sha256.getId(), "SHA256"); 765 digestAlgs.put(NISTObjectIdentifiers.id_sha384.getId(), "SHA384"); 766 digestAlgs.put(NISTObjectIdentifiers.id_sha512.getId(), "SHA512"); 767- digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd128.getId(), "RIPEMD128"); 768- digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd160.getId(), "RIPEMD160"); 769- digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd256.getId(), "RIPEMD256"); 770- digestAlgs.put(CryptoProObjectIdentifiers.gostR3411.getId(), "GOST3411"); 771- digestAlgs.put("1.3.6.1.4.1.5849.1.2.1", "GOST3411"); 772+ // BEGIN android-removed 773+ // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd128.getId(), "RIPEMD128"); 774+ // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd160.getId(), "RIPEMD160"); 775+ // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd256.getId(), "RIPEMD256"); 776+ // digestAlgs.put(CryptoProObjectIdentifiers.gostR3411.getId(), "GOST3411"); 777+ // digestAlgs.put("1.3.6.1.4.1.5849.1.2.1", "GOST3411"); 778+ // END android-removed 779 780 digestAliases.put("SHA1", new String[] { "SHA-1" }); 781- digestAliases.put("SHA224", new String[] { "SHA-224" }); 782+ // BEGIN android-removed 783+ // digestAliases.put("SHA224", new String[] { "SHA-224" }); 784+ // END android-removed 785 digestAliases.put("SHA256", new String[] { "SHA-256" }); 786 digestAliases.put("SHA384", new String[] { "SHA-384" }); 787 digestAliases.put("SHA512", new String[] { "SHA-512" }); 788@@ -190,65 +214,67 @@ 789 } 790 } 791 792- X509Store createCertificateStore( 793- String type, 794- Provider provider, 795- Store certStore) 796- throws NoSuchStoreException, CMSException 797- { 798- try 799- { 800- JcaX509CertificateConverter converter = new JcaX509CertificateConverter().setProvider(provider); 801- Collection certHldrs = certStore.getMatches(null); 802- List certs = new ArrayList(certHldrs.size()); 803- 804- for (Iterator it = certHldrs.iterator(); it.hasNext();) 805- { 806- certs.add(converter.getCertificate((X509CertificateHolder)it.next())); 807- } 808- 809- return X509Store.getInstance( 810- "Certificate/" +type, new X509CollectionStoreParameters(certs), provider); 811- } 812- catch (IllegalArgumentException e) 813- { 814- throw new CMSException("can't setup the X509Store", e); 815- } 816- catch (CertificateException e) 817- { 818- throw new CMSException("can't setup the X509Store", e); 819- } 820- } 821- 822- X509Store createCRLsStore( 823- String type, 824- Provider provider, 825- Store crlStore) 826- throws NoSuchStoreException, CMSException 827- { 828- try 829- { 830- JcaX509CRLConverter converter = new JcaX509CRLConverter().setProvider(provider); 831- Collection crlHldrs = crlStore.getMatches(null); 832- List crls = new ArrayList(crlHldrs.size()); 833- 834- for (Iterator it = crlHldrs.iterator(); it.hasNext();) 835- { 836- crls.add(converter.getCRL((X509CRLHolder)it.next())); 837- } 838- 839- return X509Store.getInstance( 840- "CRL/" +type, new X509CollectionStoreParameters(crls), provider); 841- } 842- catch (IllegalArgumentException e) 843- { 844- throw new CMSException("can't setup the X509Store", e); 845- } 846- catch (CRLException e) 847- { 848- throw new CMSException("can't setup the X509Store", e); 849- } 850- } 851+ // BEGIN android-removed 852+ // X509Store createCertificateStore( 853+ // String type, 854+ // Provider provider, 855+ // Store certStore) 856+ // throws NoSuchStoreException, CMSException 857+ // { 858+ // try 859+ // { 860+ // JcaX509CertificateConverter converter = new JcaX509CertificateConverter().setProvider(provider); 861+ // Collection certHldrs = certStore.getMatches(null); 862+ // List certs = new ArrayList(certHldrs.size()); 863+ // 864+ // for (Iterator it = certHldrs.iterator(); it.hasNext();) 865+ // { 866+ // certs.add(converter.getCertificate((X509CertificateHolder)it.next())); 867+ // } 868+ // 869+ // return X509Store.getInstance( 870+ // "Certificate/" +type, new X509CollectionStoreParameters(certs), provider); 871+ // } 872+ // catch (IllegalArgumentException e) 873+ // { 874+ // throw new CMSException("can't setup the X509Store", e); 875+ // } 876+ // catch (CertificateException e) 877+ // { 878+ // throw new CMSException("can't setup the X509Store", e); 879+ // } 880+ // } 881+ // 882+ // X509Store createCRLsStore( 883+ // String type, 884+ // Provider provider, 885+ // Store crlStore) 886+ // throws NoSuchStoreException, CMSException 887+ // { 888+ // try 889+ // { 890+ // JcaX509CRLConverter converter = new JcaX509CRLConverter().setProvider(provider); 891+ // Collection crlHldrs = crlStore.getMatches(null); 892+ // List crls = new ArrayList(crlHldrs.size()); 893+ // 894+ // for (Iterator it = crlHldrs.iterator(); it.hasNext();) 895+ // { 896+ // crls.add(converter.getCRL((X509CRLHolder)it.next())); 897+ // } 898+ // 899+ // return X509Store.getInstance( 900+ // "CRL/" +type, new X509CollectionStoreParameters(crls), provider); 901+ // } 902+ // catch (IllegalArgumentException e) 903+ // { 904+ // throw new CMSException("can't setup the X509Store", e); 905+ // } 906+ // catch (CRLException e) 907+ // { 908+ // throw new CMSException("can't setup the X509Store", e); 909+ // } 910+ // } 911+ // END android-removed 912 913 AlgorithmIdentifier fixAlgID(AlgorithmIdentifier algId) 914 { 915@@ -336,35 +362,35 @@ 916 return new CollectionStore(new ArrayList()); 917 } 918 919- Store getOtherRevocationInfo(ASN1ObjectIdentifier otherRevocationInfoFormat, ASN1Set crlSet) 920- { 921- if (crlSet != null) 922- { 923- List crlList = new ArrayList(crlSet.size()); 924- 925- for (Enumeration en = crlSet.getObjects(); en.hasMoreElements();) 926- { 927- ASN1Primitive obj = ((ASN1Encodable)en.nextElement()).toASN1Primitive(); 928- 929- if (obj instanceof ASN1TaggedObject) 930- { 931- ASN1TaggedObject tObj = ASN1TaggedObject.getInstance(obj); 932- 933- if (tObj.getTagNo() == 1) 934- { 935- OtherRevocationInfoFormat other = OtherRevocationInfoFormat.getInstance(tObj, false); 936- 937- if (otherRevocationInfoFormat.equals(other.getInfoFormat())) 938- { 939- crlList.add(other.getInfo()); 940- } 941- } 942- } 943- } 944- 945- return new CollectionStore(crlList); 946- } 947- 948- return new CollectionStore(new ArrayList()); 949- } 950+ // Store getOtherRevocationInfo(ASN1ObjectIdentifier otherRevocationInfoFormat, ASN1Set crlSet) 951+ // { 952+ // if (crlSet != null) 953+ // { 954+ // List crlList = new ArrayList(crlSet.size()); 955+ // 956+ // for (Enumeration en = crlSet.getObjects(); en.hasMoreElements();) 957+ // { 958+ // ASN1Primitive obj = ((ASN1Encodable)en.nextElement()).toASN1Primitive(); 959+ // 960+ // if (obj instanceof ASN1TaggedObject) 961+ // { 962+ // ASN1TaggedObject tObj = ASN1TaggedObject.getInstance(obj); 963+ // 964+ // if (tObj.getTagNo() == 1) 965+ // { 966+ // OtherRevocationInfoFormat other = OtherRevocationInfoFormat.getInstance(tObj, false); 967+ // 968+ // if (otherRevocationInfoFormat.equals(other.getInfoFormat())) 969+ // { 970+ // crlList.add(other.getInfo()); 971+ // } 972+ // } 973+ // } 974+ // } 975+ // 976+ // return new CollectionStore(crlList); 977+ // } 978+ // 979+ // return new CollectionStore(new ArrayList()); 980+ // } 981 } 982diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSUtils.java bcpkix-jdk15on-149/org/bouncycastle/cms/CMSUtils.java 983--- bcpkix-jdk15on-149.orig/org/bouncycastle/cms/CMSUtils.java 2013-05-31 21:17:22.000000000 +0000 984+++ bcpkix-jdk15on-149/org/bouncycastle/cms/CMSUtils.java 2013-05-25 02:14:15.000000000 +0000 985@@ -30,9 +30,11 @@ 986 import org.bouncycastle.asn1.cms.CMSObjectIdentifiers; 987 import org.bouncycastle.asn1.cms.ContentInfo; 988 import org.bouncycastle.asn1.cms.IssuerAndSerialNumber; 989-import org.bouncycastle.asn1.cms.OtherRevocationInfoFormat; 990-import org.bouncycastle.asn1.ocsp.OCSPResponse; 991-import org.bouncycastle.asn1.ocsp.OCSPResponseStatus; 992+// BEGIN android-removed 993+// import org.bouncycastle.asn1.cms.OtherRevocationInfoFormat; 994+// import org.bouncycastle.asn1.ocsp.OCSPResponse; 995+// import org.bouncycastle.asn1.ocsp.OCSPResponseStatus; 996+// END android-removed 997 import org.bouncycastle.asn1.x509.Certificate; 998 import org.bouncycastle.asn1.x509.CertificateList; 999 import org.bouncycastle.asn1.x509.TBSCertificate; 1000@@ -189,29 +191,31 @@ 1001 } 1002 } 1003 1004- static Collection getOthersFromStore(ASN1ObjectIdentifier otherRevocationInfoFormat, Store otherRevocationInfos) 1005- { 1006- List others = new ArrayList(); 1007- 1008- for (Iterator it = otherRevocationInfos.getMatches(null).iterator(); it.hasNext();) 1009- { 1010- ASN1Encodable info = (ASN1Encodable)it.next(); 1011- 1012- if (CMSObjectIdentifiers.id_ri_ocsp_response.equals(otherRevocationInfoFormat)) 1013- { 1014- OCSPResponse resp = OCSPResponse.getInstance(info); 1015- 1016- if (resp.getResponseStatus().getValue().intValue() != OCSPResponseStatus.SUCCESSFUL) 1017- { 1018- throw new IllegalArgumentException("cannot add unsuccessful OCSP response to CMS SignedData"); 1019- } 1020- } 1021- 1022- others.add(new DERTaggedObject(false, 1, new OtherRevocationInfoFormat(otherRevocationInfoFormat, info))); 1023- } 1024- 1025- return others; 1026- } 1027+ // BEGIN android-removed 1028+ // static Collection getOthersFromStore(ASN1ObjectIdentifier otherRevocationInfoFormat, Store otherRevocationInfos) 1029+ // { 1030+ // List others = new ArrayList(); 1031+ // 1032+ // for (Iterator it = otherRevocationInfos.getMatches(null).iterator(); it.hasNext();) 1033+ // { 1034+ // ASN1Encodable info = (ASN1Encodable)it.next(); 1035+ // 1036+ // if (CMSObjectIdentifiers.id_ri_ocsp_response.equals(otherRevocationInfoFormat)) 1037+ // { 1038+ // OCSPResponse resp = OCSPResponse.getInstance(info); 1039+ // 1040+ // if (resp.getResponseStatus().getValue().intValue() != OCSPResponseStatus.SUCCESSFUL) 1041+ // { 1042+ // throw new IllegalArgumentException("cannot add unsuccessful OCSP response to CMS SignedData"); 1043+ // } 1044+ // } 1045+ // 1046+ // others.add(new DERTaggedObject(false, 1, new OtherRevocationInfoFormat(otherRevocationInfoFormat, info))); 1047+ // } 1048+ // 1049+ // return others; 1050+ // } 1051+ // END android-removed 1052 1053 static ASN1Set createBerSetFromList(List derObjects) 1054 { 1055diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/cms/DefaultCMSSignatureAlgorithmNameGenerator.java bcpkix-jdk15on-149/org/bouncycastle/cms/DefaultCMSSignatureAlgorithmNameGenerator.java 1056--- bcpkix-jdk15on-149.orig/org/bouncycastle/cms/DefaultCMSSignatureAlgorithmNameGenerator.java 2013-05-31 21:17:22.000000000 +0000 1057+++ bcpkix-jdk15on-149/org/bouncycastle/cms/DefaultCMSSignatureAlgorithmNameGenerator.java 2012-09-17 23:04:47.000000000 +0000 1058@@ -4,7 +4,9 @@ 1059 import java.util.Map; 1060 1061 import org.bouncycastle.asn1.ASN1ObjectIdentifier; 1062-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1063+// BEGIN android-removed 1064+// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1065+// END android-removed 1066 import org.bouncycastle.asn1.eac.EACObjectIdentifiers; 1067 import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 1068 import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 1069@@ -28,31 +30,43 @@ 1070 1071 public DefaultCMSSignatureAlgorithmNameGenerator() 1072 { 1073- addEntries(NISTObjectIdentifiers.dsa_with_sha224, "SHA224", "DSA"); 1074+ // BEGIN android-removed 1075+ // addEntries(NISTObjectIdentifiers.dsa_with_sha224, "SHA224", "DSA"); 1076+ // END android-removed 1077 addEntries(NISTObjectIdentifiers.dsa_with_sha256, "SHA256", "DSA"); 1078 addEntries(NISTObjectIdentifiers.dsa_with_sha384, "SHA384", "DSA"); 1079 addEntries(NISTObjectIdentifiers.dsa_with_sha512, "SHA512", "DSA"); 1080 addEntries(OIWObjectIdentifiers.dsaWithSHA1, "SHA1", "DSA"); 1081- addEntries(OIWObjectIdentifiers.md4WithRSA, "MD4", "RSA"); 1082- addEntries(OIWObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 1083+ // BEGIN android-removed 1084+ // addEntries(OIWObjectIdentifiers.md4WithRSA, "MD4", "RSA"); 1085+ // addEntries(OIWObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 1086+ // END android-removed 1087 addEntries(OIWObjectIdentifiers.md5WithRSA, "MD5", "RSA"); 1088 addEntries(OIWObjectIdentifiers.sha1WithRSA, "SHA1", "RSA"); 1089- addEntries(PKCSObjectIdentifiers.md2WithRSAEncryption, "MD2", "RSA"); 1090- addEntries(PKCSObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 1091+ // BEGIN android-removed 1092+ // addEntries(PKCSObjectIdentifiers.md2WithRSAEncryption, "MD2", "RSA"); 1093+ // addEntries(PKCSObjectIdentifiers.md4WithRSAEncryption, "MD4", "RSA"); 1094+ // END android-removed 1095 addEntries(PKCSObjectIdentifiers.md5WithRSAEncryption, "MD5", "RSA"); 1096 addEntries(PKCSObjectIdentifiers.sha1WithRSAEncryption, "SHA1", "RSA"); 1097- addEntries(PKCSObjectIdentifiers.sha224WithRSAEncryption, "SHA224", "RSA"); 1098+ // BEGIN android-removed 1099+ // addEntries(PKCSObjectIdentifiers.sha224WithRSAEncryption, "SHA224", "RSA"); 1100+ // END android-removed 1101 addEntries(PKCSObjectIdentifiers.sha256WithRSAEncryption, "SHA256", "RSA"); 1102 addEntries(PKCSObjectIdentifiers.sha384WithRSAEncryption, "SHA384", "RSA"); 1103 addEntries(PKCSObjectIdentifiers.sha512WithRSAEncryption, "SHA512", "RSA"); 1104 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA1, "SHA1", "ECDSA"); 1105- addEntries(X9ObjectIdentifiers.ecdsa_with_SHA224, "SHA224", "ECDSA"); 1106+ // BEGIN android-removed 1107+ // addEntries(X9ObjectIdentifiers.ecdsa_with_SHA224, "SHA224", "ECDSA"); 1108+ // END android-removed 1109 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA256, "SHA256", "ECDSA"); 1110 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA384, "SHA384", "ECDSA"); 1111 addEntries(X9ObjectIdentifiers.ecdsa_with_SHA512, "SHA512", "ECDSA"); 1112 addEntries(X9ObjectIdentifiers.id_dsa_with_sha1, "SHA1", "DSA"); 1113 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_1, "SHA1", "ECDSA"); 1114- addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_224, "SHA224", "ECDSA"); 1115+ // BEGIN android-removed 1116+ // addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_224, "SHA224", "ECDSA"); 1117+ // END android-removed 1118 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_256, "SHA256", "ECDSA"); 1119 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_384, "SHA384", "ECDSA"); 1120 addEntries(EACObjectIdentifiers.id_TA_ECDSA_SHA_512, "SHA512", "ECDSA"); 1121@@ -66,26 +80,32 @@ 1122 encryptionAlgs.put(TeleTrusTObjectIdentifiers.teleTrusTRSAsignatureAlgorithm, "RSA"); 1123 encryptionAlgs.put(X509ObjectIdentifiers.id_ea_rsa, "RSA"); 1124 encryptionAlgs.put(PKCSObjectIdentifiers.id_RSASSA_PSS, "RSAandMGF1"); 1125- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_94, "GOST3410"); 1126- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_2001, "ECGOST3410"); 1127- encryptionAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.6.2"), "ECGOST3410"); 1128- encryptionAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.1.5"), "GOST3410"); 1129- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, "ECGOST3410"); 1130- encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, "GOST3410"); 1131- 1132- digestAlgs.put(PKCSObjectIdentifiers.md2, "MD2"); 1133- digestAlgs.put(PKCSObjectIdentifiers.md4, "MD4"); 1134+ // BEGIN android-removed 1135+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_94, "GOST3410"); 1136+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3410_2001, "ECGOST3410"); 1137+ // encryptionAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.6.2"), "ECGOST3410"); 1138+ // encryptionAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.1.5"), "GOST3410"); 1139+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, "ECGOST3410"); 1140+ // encryptionAlgs.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, "GOST3410"); 1141+ // 1142+ // digestAlgs.put(PKCSObjectIdentifiers.md2, "MD2"); 1143+ // digestAlgs.put(PKCSObjectIdentifiers.md4, "MD4"); 1144+ // END android-removed 1145 digestAlgs.put(PKCSObjectIdentifiers.md5, "MD5"); 1146 digestAlgs.put(OIWObjectIdentifiers.idSHA1, "SHA1"); 1147- digestAlgs.put(NISTObjectIdentifiers.id_sha224, "SHA224"); 1148+ // BEGIN android-removed 1149+ // digestAlgs.put(NISTObjectIdentifiers.id_sha224, "SHA224"); 1150+ // END android-removed 1151 digestAlgs.put(NISTObjectIdentifiers.id_sha256, "SHA256"); 1152 digestAlgs.put(NISTObjectIdentifiers.id_sha384, "SHA384"); 1153 digestAlgs.put(NISTObjectIdentifiers.id_sha512, "SHA512"); 1154- digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd128, "RIPEMD128"); 1155- digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd160, "RIPEMD160"); 1156- digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd256, "RIPEMD256"); 1157- digestAlgs.put(CryptoProObjectIdentifiers.gostR3411, "GOST3411"); 1158- digestAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.2.1"), "GOST3411"); 1159+ // BEGIN android-removed 1160+ // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd128, "RIPEMD128"); 1161+ // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd160, "RIPEMD160"); 1162+ // digestAlgs.put(TeleTrusTObjectIdentifiers.ripemd256, "RIPEMD256"); 1163+ // digestAlgs.put(CryptoProObjectIdentifiers.gostR3411, "GOST3411"); 1164+ // digestAlgs.put(new ASN1ObjectIdentifier("1.3.6.1.4.1.5849.1.2.1"), "GOST3411"); 1165+ // END android-removed 1166 } 1167 1168 /** 1169diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/cms/DefaultCMSSignatureEncryptionAlgorithmFinder.java bcpkix-jdk15on-149/org/bouncycastle/cms/DefaultCMSSignatureEncryptionAlgorithmFinder.java 1170--- bcpkix-jdk15on-149.orig/org/bouncycastle/cms/DefaultCMSSignatureEncryptionAlgorithmFinder.java 2013-05-31 21:17:22.000000000 +0000 1171+++ bcpkix-jdk15on-149/org/bouncycastle/cms/DefaultCMSSignatureEncryptionAlgorithmFinder.java 2012-09-17 23:04:47.000000000 +0000 1172@@ -16,21 +16,29 @@ 1173 1174 static 1175 { 1176- RSA_PKCS1d5.add(PKCSObjectIdentifiers.md2WithRSAEncryption); 1177- RSA_PKCS1d5.add(PKCSObjectIdentifiers.md4WithRSAEncryption); 1178+ // BEGIN android-removed 1179+ // RSA_PKCS1d5.add(PKCSObjectIdentifiers.md2WithRSAEncryption); 1180+ // RSA_PKCS1d5.add(PKCSObjectIdentifiers.md4WithRSAEncryption); 1181+ // END android-removed 1182 RSA_PKCS1d5.add(PKCSObjectIdentifiers.md5WithRSAEncryption); 1183 RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha1WithRSAEncryption); 1184- RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha224WithRSAEncryption); 1185+ // BEGIN android-removed 1186+ // RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha224WithRSAEncryption); 1187+ // END android-removed 1188 RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha256WithRSAEncryption); 1189 RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha384WithRSAEncryption); 1190 RSA_PKCS1d5.add(PKCSObjectIdentifiers.sha512WithRSAEncryption); 1191- RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSAEncryption); 1192- RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSA); 1193+ // BEGIN android-removed 1194+ // RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSAEncryption); 1195+ // RSA_PKCS1d5.add(OIWObjectIdentifiers.md4WithRSA); 1196+ // END android-removed 1197 RSA_PKCS1d5.add(OIWObjectIdentifiers.md5WithRSA); 1198 RSA_PKCS1d5.add(OIWObjectIdentifiers.sha1WithRSA); 1199- RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1200- RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1201- RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1202+ // BEGIN android-removed 1203+ // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1204+ // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1205+ // RSA_PKCS1d5.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1206+ // END android-removed 1207 } 1208 1209 public AlgorithmIdentifier findEncryptionAlgorithm(AlgorithmIdentifier signatureAlgorithm) 1210diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/operator/DefaultDigestAlgorithmIdentifierFinder.java bcpkix-jdk15on-149/org/bouncycastle/operator/DefaultDigestAlgorithmIdentifierFinder.java 1211--- bcpkix-jdk15on-149.orig/org/bouncycastle/operator/DefaultDigestAlgorithmIdentifierFinder.java 2013-05-31 21:17:22.000000000 +0000 1212+++ bcpkix-jdk15on-149/org/bouncycastle/operator/DefaultDigestAlgorithmIdentifierFinder.java 2013-01-31 02:26:40.000000000 +0000 1213@@ -5,7 +5,9 @@ 1214 1215 import org.bouncycastle.asn1.ASN1ObjectIdentifier; 1216 import org.bouncycastle.asn1.DERNull; 1217-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1218+// BEGIN android-removed 1219+// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1220+// END android-removed 1221 import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 1222 import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 1223 import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 1224@@ -25,53 +27,71 @@ 1225 // 1226 // digests 1227 // 1228- digestOids.put(OIWObjectIdentifiers.md4WithRSAEncryption, PKCSObjectIdentifiers.md4); 1229- digestOids.put(OIWObjectIdentifiers.md4WithRSA, PKCSObjectIdentifiers.md4); 1230+ // BEGIN android-removed 1231+ // digestOids.put(OIWObjectIdentifiers.md4WithRSAEncryption, PKCSObjectIdentifiers.md4); 1232+ // digestOids.put(OIWObjectIdentifiers.md4WithRSA, PKCSObjectIdentifiers.md4); 1233+ // END android-removed 1234 digestOids.put(OIWObjectIdentifiers.sha1WithRSA, OIWObjectIdentifiers.idSHA1); 1235 1236- digestOids.put(PKCSObjectIdentifiers.sha224WithRSAEncryption, NISTObjectIdentifiers.id_sha224); 1237+ // BEGIN android-removed 1238+ // digestOids.put(PKCSObjectIdentifiers.sha224WithRSAEncryption, NISTObjectIdentifiers.id_sha224); 1239+ // END android-removed 1240 digestOids.put(PKCSObjectIdentifiers.sha256WithRSAEncryption, NISTObjectIdentifiers.id_sha256); 1241 digestOids.put(PKCSObjectIdentifiers.sha384WithRSAEncryption, NISTObjectIdentifiers.id_sha384); 1242 digestOids.put(PKCSObjectIdentifiers.sha512WithRSAEncryption, NISTObjectIdentifiers.id_sha512); 1243- digestOids.put(PKCSObjectIdentifiers.md2WithRSAEncryption, PKCSObjectIdentifiers.md2); 1244- digestOids.put(PKCSObjectIdentifiers.md4WithRSAEncryption, PKCSObjectIdentifiers.md4); 1245+ // BEGIN android-removed 1246+ // digestOids.put(PKCSObjectIdentifiers.md2WithRSAEncryption, PKCSObjectIdentifiers.md2); 1247+ // digestOids.put(PKCSObjectIdentifiers.md4WithRSAEncryption, PKCSObjectIdentifiers.md4); 1248+ // END android-removed 1249 digestOids.put(PKCSObjectIdentifiers.md5WithRSAEncryption, PKCSObjectIdentifiers.md5); 1250 digestOids.put(PKCSObjectIdentifiers.sha1WithRSAEncryption, OIWObjectIdentifiers.idSHA1); 1251 1252 digestOids.put(X9ObjectIdentifiers.ecdsa_with_SHA1, OIWObjectIdentifiers.idSHA1); 1253- digestOids.put(X9ObjectIdentifiers.ecdsa_with_SHA224, NISTObjectIdentifiers.id_sha224); 1254+ // BEGIN android-removed 1255+ // digestOids.put(X9ObjectIdentifiers.ecdsa_with_SHA224, NISTObjectIdentifiers.id_sha224); 1256+ // END android-removed 1257 digestOids.put(X9ObjectIdentifiers.ecdsa_with_SHA256, NISTObjectIdentifiers.id_sha256); 1258 digestOids.put(X9ObjectIdentifiers.ecdsa_with_SHA384, NISTObjectIdentifiers.id_sha384); 1259 digestOids.put(X9ObjectIdentifiers.ecdsa_with_SHA512, NISTObjectIdentifiers.id_sha512); 1260 digestOids.put(X9ObjectIdentifiers.id_dsa_with_sha1, OIWObjectIdentifiers.idSHA1); 1261 1262- digestOids.put(NISTObjectIdentifiers.dsa_with_sha224, NISTObjectIdentifiers.id_sha224); 1263+ // BEGIN android-removed 1264+ // digestOids.put(NISTObjectIdentifiers.dsa_with_sha224, NISTObjectIdentifiers.id_sha224); 1265+ // END android-removed 1266 digestOids.put(NISTObjectIdentifiers.dsa_with_sha256, NISTObjectIdentifiers.id_sha256); 1267 digestOids.put(NISTObjectIdentifiers.dsa_with_sha384, NISTObjectIdentifiers.id_sha384); 1268 digestOids.put(NISTObjectIdentifiers.dsa_with_sha512, NISTObjectIdentifiers.id_sha512); 1269 1270- digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128, TeleTrusTObjectIdentifiers.ripemd128); 1271- digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160, TeleTrusTObjectIdentifiers.ripemd160); 1272- digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256, TeleTrusTObjectIdentifiers.ripemd256); 1273- 1274- digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, CryptoProObjectIdentifiers.gostR3411); 1275- digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, CryptoProObjectIdentifiers.gostR3411); 1276+ // BEGIN android-removed 1277+ // digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128, TeleTrusTObjectIdentifiers.ripemd128); 1278+ // digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160, TeleTrusTObjectIdentifiers.ripemd160); 1279+ // digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256, TeleTrusTObjectIdentifiers.ripemd256); 1280+ // 1281+ // digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, CryptoProObjectIdentifiers.gostR3411); 1282+ // digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, CryptoProObjectIdentifiers.gostR3411); 1283+ // END android-removed 1284 1285 digestNameToOids.put("SHA-1", OIWObjectIdentifiers.idSHA1); 1286- digestNameToOids.put("SHA-224", NISTObjectIdentifiers.id_sha224); 1287+ // BEGIN android-removed 1288+ // digestNameToOids.put("SHA-224", NISTObjectIdentifiers.id_sha224); 1289+ // END android-removed 1290 digestNameToOids.put("SHA-256", NISTObjectIdentifiers.id_sha256); 1291 digestNameToOids.put("SHA-384", NISTObjectIdentifiers.id_sha384); 1292 digestNameToOids.put("SHA-512", NISTObjectIdentifiers.id_sha512); 1293 1294- digestNameToOids.put("GOST3411", CryptoProObjectIdentifiers.gostR3411); 1295- 1296- digestNameToOids.put("MD2", PKCSObjectIdentifiers.md2); 1297- digestNameToOids.put("MD4", PKCSObjectIdentifiers.md4); 1298+ // BEGIN android-removed 1299+ // digestNameToOids.put("GOST3411", CryptoProObjectIdentifiers.gostR3411); 1300+ // 1301+ // digestNameToOids.put("MD2", PKCSObjectIdentifiers.md2); 1302+ // digestNameToOids.put("MD4", PKCSObjectIdentifiers.md4); 1303+ // END android-removed 1304 digestNameToOids.put("MD5", PKCSObjectIdentifiers.md5); 1305 1306- digestNameToOids.put("RIPEMD128", TeleTrusTObjectIdentifiers.ripemd128); 1307- digestNameToOids.put("RIPEMD160", TeleTrusTObjectIdentifiers.ripemd160); 1308- digestNameToOids.put("RIPEMD256", TeleTrusTObjectIdentifiers.ripemd256); 1309+ // BEGIN android-removed 1310+ // digestNameToOids.put("RIPEMD128", TeleTrusTObjectIdentifiers.ripemd128); 1311+ // digestNameToOids.put("RIPEMD160", TeleTrusTObjectIdentifiers.ripemd160); 1312+ // digestNameToOids.put("RIPEMD256", TeleTrusTObjectIdentifiers.ripemd256); 1313+ // END android-removed 1314 } 1315 1316 public AlgorithmIdentifier find(AlgorithmIdentifier sigAlgId) 1317diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/operator/DefaultSignatureAlgorithmIdentifierFinder.java bcpkix-jdk15on-149/org/bouncycastle/operator/DefaultSignatureAlgorithmIdentifierFinder.java 1318--- bcpkix-jdk15on-149.orig/org/bouncycastle/operator/DefaultSignatureAlgorithmIdentifierFinder.java 2013-05-31 21:17:22.000000000 +0000 1319+++ bcpkix-jdk15on-149/org/bouncycastle/operator/DefaultSignatureAlgorithmIdentifierFinder.java 2013-01-31 02:26:40.000000000 +0000 1320@@ -9,7 +9,9 @@ 1321 import org.bouncycastle.asn1.ASN1Integer; 1322 import org.bouncycastle.asn1.ASN1ObjectIdentifier; 1323 import org.bouncycastle.asn1.DERNull; 1324-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1325+// BEGIN android-removed 1326+// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1327+// END android-removed 1328 import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 1329 import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 1330 import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 1331@@ -32,19 +34,25 @@ 1332 private static final ASN1ObjectIdentifier ENCRYPTION_DSA = X9ObjectIdentifiers.id_dsa_with_sha1; 1333 private static final ASN1ObjectIdentifier ENCRYPTION_ECDSA = X9ObjectIdentifiers.ecdsa_with_SHA1; 1334 private static final ASN1ObjectIdentifier ENCRYPTION_RSA_PSS = PKCSObjectIdentifiers.id_RSASSA_PSS; 1335- private static final ASN1ObjectIdentifier ENCRYPTION_GOST3410 = CryptoProObjectIdentifiers.gostR3410_94; 1336- private static final ASN1ObjectIdentifier ENCRYPTION_ECGOST3410 = CryptoProObjectIdentifiers.gostR3410_2001; 1337+ // BEGIN android-removed 1338+ // private static final ASN1ObjectIdentifier ENCRYPTION_GOST3410 = CryptoProObjectIdentifiers.gostR3410_94; 1339+ // private static final ASN1ObjectIdentifier ENCRYPTION_ECGOST3410 = CryptoProObjectIdentifiers.gostR3410_2001; 1340+ // END android-removed 1341 1342 static 1343 { 1344- algorithms.put("MD2WITHRSAENCRYPTION", PKCSObjectIdentifiers.md2WithRSAEncryption); 1345- algorithms.put("MD2WITHRSA", PKCSObjectIdentifiers.md2WithRSAEncryption); 1346+ // BEGIN android-removed 1347+ // algorithms.put("MD2WITHRSAENCRYPTION", PKCSObjectIdentifiers.md2WithRSAEncryption); 1348+ // algorithms.put("MD2WITHRSA", PKCSObjectIdentifiers.md2WithRSAEncryption); 1349+ // END android-removed 1350 algorithms.put("MD5WITHRSAENCRYPTION", PKCSObjectIdentifiers.md5WithRSAEncryption); 1351 algorithms.put("MD5WITHRSA", PKCSObjectIdentifiers.md5WithRSAEncryption); 1352 algorithms.put("SHA1WITHRSAENCRYPTION", PKCSObjectIdentifiers.sha1WithRSAEncryption); 1353 algorithms.put("SHA1WITHRSA", PKCSObjectIdentifiers.sha1WithRSAEncryption); 1354- algorithms.put("SHA224WITHRSAENCRYPTION", PKCSObjectIdentifiers.sha224WithRSAEncryption); 1355- algorithms.put("SHA224WITHRSA", PKCSObjectIdentifiers.sha224WithRSAEncryption); 1356+ // BEGIN android-removed 1357+ // algorithms.put("SHA224WITHRSAENCRYPTION", PKCSObjectIdentifiers.sha224WithRSAEncryption); 1358+ // algorithms.put("SHA224WITHRSA", PKCSObjectIdentifiers.sha224WithRSAEncryption); 1359+ // END android-removed 1360 algorithms.put("SHA256WITHRSAENCRYPTION", PKCSObjectIdentifiers.sha256WithRSAEncryption); 1361 algorithms.put("SHA256WITHRSA", PKCSObjectIdentifiers.sha256WithRSAEncryption); 1362 algorithms.put("SHA384WITHRSAENCRYPTION", PKCSObjectIdentifiers.sha384WithRSAEncryption); 1363@@ -52,45 +60,59 @@ 1364 algorithms.put("SHA512WITHRSAENCRYPTION", PKCSObjectIdentifiers.sha512WithRSAEncryption); 1365 algorithms.put("SHA512WITHRSA", PKCSObjectIdentifiers.sha512WithRSAEncryption); 1366 algorithms.put("SHA1WITHRSAANDMGF1", PKCSObjectIdentifiers.id_RSASSA_PSS); 1367- algorithms.put("SHA224WITHRSAANDMGF1", PKCSObjectIdentifiers.id_RSASSA_PSS); 1368+ // BEGIN android-removed 1369+ // algorithms.put("SHA224WITHRSAANDMGF1", PKCSObjectIdentifiers.id_RSASSA_PSS); 1370+ // END android-removed 1371 algorithms.put("SHA256WITHRSAANDMGF1", PKCSObjectIdentifiers.id_RSASSA_PSS); 1372 algorithms.put("SHA384WITHRSAANDMGF1", PKCSObjectIdentifiers.id_RSASSA_PSS); 1373 algorithms.put("SHA512WITHRSAANDMGF1", PKCSObjectIdentifiers.id_RSASSA_PSS); 1374- algorithms.put("RIPEMD160WITHRSAENCRYPTION", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1375- algorithms.put("RIPEMD160WITHRSA", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1376- algorithms.put("RIPEMD128WITHRSAENCRYPTION", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1377- algorithms.put("RIPEMD128WITHRSA", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1378- algorithms.put("RIPEMD256WITHRSAENCRYPTION", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1379- algorithms.put("RIPEMD256WITHRSA", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1380+ // BEGIN android-removed 1381+ // algorithms.put("RIPEMD160WITHRSAENCRYPTION", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1382+ // algorithms.put("RIPEMD160WITHRSA", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1383+ // algorithms.put("RIPEMD128WITHRSAENCRYPTION", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1384+ // algorithms.put("RIPEMD128WITHRSA", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1385+ // algorithms.put("RIPEMD256WITHRSAENCRYPTION", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1386+ // algorithms.put("RIPEMD256WITHRSA", TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1387+ // END android-removed 1388 algorithms.put("SHA1WITHDSA", X9ObjectIdentifiers.id_dsa_with_sha1); 1389 algorithms.put("DSAWITHSHA1", X9ObjectIdentifiers.id_dsa_with_sha1); 1390- algorithms.put("SHA224WITHDSA", NISTObjectIdentifiers.dsa_with_sha224); 1391+ // BEGIN android-removed 1392+ // algorithms.put("SHA224WITHDSA", NISTObjectIdentifiers.dsa_with_sha224); 1393+ // END android-removed 1394 algorithms.put("SHA256WITHDSA", NISTObjectIdentifiers.dsa_with_sha256); 1395 algorithms.put("SHA384WITHDSA", NISTObjectIdentifiers.dsa_with_sha384); 1396 algorithms.put("SHA512WITHDSA", NISTObjectIdentifiers.dsa_with_sha512); 1397 algorithms.put("SHA1WITHECDSA", X9ObjectIdentifiers.ecdsa_with_SHA1); 1398 algorithms.put("ECDSAWITHSHA1", X9ObjectIdentifiers.ecdsa_with_SHA1); 1399- algorithms.put("SHA224WITHECDSA", X9ObjectIdentifiers.ecdsa_with_SHA224); 1400+ // BEGIN android-removed 1401+ // algorithms.put("SHA224WITHECDSA", X9ObjectIdentifiers.ecdsa_with_SHA224); 1402+ // END android-removed 1403 algorithms.put("SHA256WITHECDSA", X9ObjectIdentifiers.ecdsa_with_SHA256); 1404 algorithms.put("SHA384WITHECDSA", X9ObjectIdentifiers.ecdsa_with_SHA384); 1405 algorithms.put("SHA512WITHECDSA", X9ObjectIdentifiers.ecdsa_with_SHA512); 1406- algorithms.put("GOST3411WITHGOST3410", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94); 1407- algorithms.put("GOST3411WITHGOST3410-94", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94); 1408- algorithms.put("GOST3411WITHECGOST3410", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1409- algorithms.put("GOST3411WITHECGOST3410-2001", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1410- algorithms.put("GOST3411WITHGOST3410-2001", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1411+ // BEGIN android-removed 1412+ // algorithms.put("GOST3411WITHGOST3410", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94); 1413+ // algorithms.put("GOST3411WITHGOST3410-94", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94); 1414+ // algorithms.put("GOST3411WITHECGOST3410", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1415+ // algorithms.put("GOST3411WITHECGOST3410-2001", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1416+ // algorithms.put("GOST3411WITHGOST3410-2001", CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1417+ // END android-removed 1418 1419 // 1420 // According to RFC 3279, the ASN.1 encoding SHALL (id-dsa-with-sha1) or MUST (ecdsa-with-SHA*) omit the parameters field. 1421 // The parameters field SHALL be NULL for RSA based signature algorithms. 1422 // 1423 noParams.add(X9ObjectIdentifiers.ecdsa_with_SHA1); 1424- noParams.add(X9ObjectIdentifiers.ecdsa_with_SHA224); 1425+ // BEGIN android-removed 1426+ // noParams.add(X9ObjectIdentifiers.ecdsa_with_SHA224); 1427+ // END android-removed 1428 noParams.add(X9ObjectIdentifiers.ecdsa_with_SHA256); 1429 noParams.add(X9ObjectIdentifiers.ecdsa_with_SHA384); 1430 noParams.add(X9ObjectIdentifiers.ecdsa_with_SHA512); 1431 noParams.add(X9ObjectIdentifiers.id_dsa_with_sha1); 1432- noParams.add(NISTObjectIdentifiers.dsa_with_sha224); 1433+ // BEGIN android-removed 1434+ // noParams.add(NISTObjectIdentifiers.dsa_with_sha224); 1435+ // END android-removed 1436 noParams.add(NISTObjectIdentifiers.dsa_with_sha256); 1437 noParams.add(NISTObjectIdentifiers.dsa_with_sha384); 1438 noParams.add(NISTObjectIdentifiers.dsa_with_sha512); 1439@@ -98,20 +120,26 @@ 1440 // 1441 // RFC 4491 1442 // 1443- noParams.add(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94); 1444- noParams.add(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1445+ // BEGIN android-removed 1446+ // noParams.add(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94); 1447+ // noParams.add(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001); 1448+ // END android-removed 1449 1450 // 1451 // PKCS 1.5 encrypted algorithms 1452 // 1453 pkcs15RsaEncryption.add(PKCSObjectIdentifiers.sha1WithRSAEncryption); 1454- pkcs15RsaEncryption.add(PKCSObjectIdentifiers.sha224WithRSAEncryption); 1455+ // BEGIN android-removed 1456+ // pkcs15RsaEncryption.add(PKCSObjectIdentifiers.sha224WithRSAEncryption); 1457+ // END android-removed 1458 pkcs15RsaEncryption.add(PKCSObjectIdentifiers.sha256WithRSAEncryption); 1459 pkcs15RsaEncryption.add(PKCSObjectIdentifiers.sha384WithRSAEncryption); 1460 pkcs15RsaEncryption.add(PKCSObjectIdentifiers.sha512WithRSAEncryption); 1461- pkcs15RsaEncryption.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1462- pkcs15RsaEncryption.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1463- pkcs15RsaEncryption.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1464+ // BEGIN android-removed 1465+ // pkcs15RsaEncryption.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128); 1466+ // pkcs15RsaEncryption.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160); 1467+ // pkcs15RsaEncryption.add(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256); 1468+ // END android-removed 1469 1470 // 1471 // explicit params 1472@@ -119,8 +147,10 @@ 1473 AlgorithmIdentifier sha1AlgId = new AlgorithmIdentifier(OIWObjectIdentifiers.idSHA1, DERNull.INSTANCE); 1474 params.put("SHA1WITHRSAANDMGF1", createPSSParams(sha1AlgId, 20)); 1475 1476- AlgorithmIdentifier sha224AlgId = new AlgorithmIdentifier(NISTObjectIdentifiers.id_sha224, DERNull.INSTANCE); 1477- params.put("SHA224WITHRSAANDMGF1", createPSSParams(sha224AlgId, 28)); 1478+ // BEGIN android-removed 1479+ // AlgorithmIdentifier sha224AlgId = new AlgorithmIdentifier(NISTObjectIdentifiers.id_sha224, DERNull.INSTANCE); 1480+ // params.put("SHA224WITHRSAANDMGF1", createPSSParams(sha224AlgId, 28)); 1481+ // END android-removed 1482 1483 AlgorithmIdentifier sha256AlgId = new AlgorithmIdentifier(NISTObjectIdentifiers.id_sha256, DERNull.INSTANCE); 1484 params.put("SHA256WITHRSAANDMGF1", createPSSParams(sha256AlgId, 32)); 1485@@ -134,19 +164,25 @@ 1486 // 1487 // digests 1488 // 1489- digestOids.put(PKCSObjectIdentifiers.sha224WithRSAEncryption, NISTObjectIdentifiers.id_sha224); 1490+ // BEGIN android-removed 1491+ // digestOids.put(PKCSObjectIdentifiers.sha224WithRSAEncryption, NISTObjectIdentifiers.id_sha224); 1492+ // END android-removed 1493 digestOids.put(PKCSObjectIdentifiers.sha256WithRSAEncryption, NISTObjectIdentifiers.id_sha256); 1494 digestOids.put(PKCSObjectIdentifiers.sha384WithRSAEncryption, NISTObjectIdentifiers.id_sha384); 1495 digestOids.put(PKCSObjectIdentifiers.sha512WithRSAEncryption, NISTObjectIdentifiers.id_sha512); 1496- digestOids.put(PKCSObjectIdentifiers.md2WithRSAEncryption, PKCSObjectIdentifiers.md2); 1497- digestOids.put(PKCSObjectIdentifiers.md4WithRSAEncryption, PKCSObjectIdentifiers.md4); 1498+ // BEGIN android-removed 1499+ // digestOids.put(PKCSObjectIdentifiers.md2WithRSAEncryption, PKCSObjectIdentifiers.md2); 1500+ // digestOids.put(PKCSObjectIdentifiers.md4WithRSAEncryption, PKCSObjectIdentifiers.md4); 1501+ // END android-removed 1502 digestOids.put(PKCSObjectIdentifiers.md5WithRSAEncryption, PKCSObjectIdentifiers.md5); 1503 digestOids.put(PKCSObjectIdentifiers.sha1WithRSAEncryption, OIWObjectIdentifiers.idSHA1); 1504- digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128, TeleTrusTObjectIdentifiers.ripemd128); 1505- digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160, TeleTrusTObjectIdentifiers.ripemd160); 1506- digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256, TeleTrusTObjectIdentifiers.ripemd256); 1507- digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, CryptoProObjectIdentifiers.gostR3411); 1508- digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, CryptoProObjectIdentifiers.gostR3411); 1509+ // BEGIN android-removed 1510+ // digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd128, TeleTrusTObjectIdentifiers.ripemd128); 1511+ // digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd160, TeleTrusTObjectIdentifiers.ripemd160); 1512+ // digestOids.put(TeleTrusTObjectIdentifiers.rsaSignatureWithripemd256, TeleTrusTObjectIdentifiers.ripemd256); 1513+ // digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, CryptoProObjectIdentifiers.gostR3411); 1514+ // digestOids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, CryptoProObjectIdentifiers.gostR3411); 1515+ // END android-removed 1516 } 1517 1518 private static AlgorithmIdentifier generate(String signatureAlgorithm) 1519diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/operator/bc/BcDefaultDigestProvider.java bcpkix-jdk15on-149/org/bouncycastle/operator/bc/BcDefaultDigestProvider.java 1520--- bcpkix-jdk15on-149.orig/org/bouncycastle/operator/bc/BcDefaultDigestProvider.java 2013-05-31 21:17:22.000000000 +0000 1521+++ bcpkix-jdk15on-149/org/bouncycastle/operator/bc/BcDefaultDigestProvider.java 2013-05-25 02:14:15.000000000 +0000 1522@@ -4,22 +4,30 @@ 1523 import java.util.HashMap; 1524 import java.util.Map; 1525 1526-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1527+// BEGIN android-removed 1528+// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1529+// END android-removed 1530 import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 1531 import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; 1532 import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; 1533 import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; 1534 import org.bouncycastle.asn1.x509.AlgorithmIdentifier; 1535 import org.bouncycastle.crypto.ExtendedDigest; 1536-import org.bouncycastle.crypto.digests.GOST3411Digest; 1537-import org.bouncycastle.crypto.digests.MD2Digest; 1538-import org.bouncycastle.crypto.digests.MD4Digest; 1539+// BEGIN android-removed 1540+// import org.bouncycastle.crypto.digests.GOST3411Digest; 1541+// import org.bouncycastle.crypto.digests.MD2Digest; 1542+// import org.bouncycastle.crypto.digests.MD4Digest; 1543+// END android-removed 1544 import org.bouncycastle.crypto.digests.MD5Digest; 1545-import org.bouncycastle.crypto.digests.RIPEMD128Digest; 1546-import org.bouncycastle.crypto.digests.RIPEMD160Digest; 1547-import org.bouncycastle.crypto.digests.RIPEMD256Digest; 1548+// BEGIN android-removed 1549+// import org.bouncycastle.crypto.digests.RIPEMD128Digest; 1550+// import org.bouncycastle.crypto.digests.RIPEMD160Digest; 1551+// import org.bouncycastle.crypto.digests.RIPEMD256Digest; 1552+// END android-removed 1553 import org.bouncycastle.crypto.digests.SHA1Digest; 1554-import org.bouncycastle.crypto.digests.SHA224Digest; 1555+// BEGIN android-removed 1556+// import org.bouncycastle.crypto.digests.SHA224Digest; 1557+// END android-removed 1558 import org.bouncycastle.crypto.digests.SHA256Digest; 1559 import org.bouncycastle.crypto.digests.SHA384Digest; 1560 import org.bouncycastle.crypto.digests.SHA512Digest; 1561@@ -41,13 +49,15 @@ 1562 return new SHA1Digest(); 1563 } 1564 }); 1565- table.put(NISTObjectIdentifiers.id_sha224, new BcDigestProvider() 1566- { 1567- public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1568- { 1569- return new SHA224Digest(); 1570- } 1571- }); 1572+ // BEGIN android-removed 1573+ // table.put(NISTObjectIdentifiers.id_sha224, new BcDigestProvider() 1574+ // { 1575+ // public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1576+ // { 1577+ // return new SHA224Digest(); 1578+ // } 1579+ // }); 1580+ // END android-removed 1581 table.put(NISTObjectIdentifiers.id_sha256, new BcDigestProvider() 1582 { 1583 public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1584@@ -76,48 +86,50 @@ 1585 return new MD5Digest(); 1586 } 1587 }); 1588- table.put(PKCSObjectIdentifiers.md4, new BcDigestProvider() 1589- { 1590- public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1591- { 1592- return new MD4Digest(); 1593- } 1594- }); 1595- table.put(PKCSObjectIdentifiers.md2, new BcDigestProvider() 1596- { 1597- public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1598- { 1599- return new MD2Digest(); 1600- } 1601- }); 1602- table.put(CryptoProObjectIdentifiers.gostR3411, new BcDigestProvider() 1603- { 1604- public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1605- { 1606- return new GOST3411Digest(); 1607- } 1608- }); 1609- table.put(TeleTrusTObjectIdentifiers.ripemd128, new BcDigestProvider() 1610- { 1611- public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1612- { 1613- return new RIPEMD128Digest(); 1614- } 1615- }); 1616- table.put(TeleTrusTObjectIdentifiers.ripemd160, new BcDigestProvider() 1617- { 1618- public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1619- { 1620- return new RIPEMD160Digest(); 1621- } 1622- }); 1623- table.put(TeleTrusTObjectIdentifiers.ripemd256, new BcDigestProvider() 1624- { 1625- public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1626- { 1627- return new RIPEMD256Digest(); 1628- } 1629- }); 1630+ // BEGIN android-removed 1631+ // table.put(PKCSObjectIdentifiers.md4, new BcDigestProvider() 1632+ // { 1633+ // public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1634+ // { 1635+ // return new MD4Digest(); 1636+ // } 1637+ // }); 1638+ // table.put(PKCSObjectIdentifiers.md2, new BcDigestProvider() 1639+ // { 1640+ // public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1641+ // { 1642+ // return new MD2Digest(); 1643+ // } 1644+ // }); 1645+ // table.put(CryptoProObjectIdentifiers.gostR3411, new BcDigestProvider() 1646+ // { 1647+ // public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1648+ // { 1649+ // return new GOST3411Digest(); 1650+ // } 1651+ // }); 1652+ // table.put(TeleTrusTObjectIdentifiers.ripemd128, new BcDigestProvider() 1653+ // { 1654+ // public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1655+ // { 1656+ // return new RIPEMD128Digest(); 1657+ // } 1658+ // }); 1659+ // table.put(TeleTrusTObjectIdentifiers.ripemd160, new BcDigestProvider() 1660+ // { 1661+ // public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1662+ // { 1663+ // return new RIPEMD160Digest(); 1664+ // } 1665+ // }); 1666+ // table.put(TeleTrusTObjectIdentifiers.ripemd256, new BcDigestProvider() 1667+ // { 1668+ // public ExtendedDigest get(AlgorithmIdentifier digestAlgorithmIdentifier) 1669+ // { 1670+ // return new RIPEMD256Digest(); 1671+ // } 1672+ // }); 1673+ // END android-removed 1674 1675 return Collections.unmodifiableMap(table); 1676 } 1677diff -Naur bcpkix-jdk15on-149.orig/org/bouncycastle/operator/jcajce/OperatorHelper.java bcpkix-jdk15on-149/org/bouncycastle/operator/jcajce/OperatorHelper.java 1678--- bcpkix-jdk15on-149.orig/org/bouncycastle/operator/jcajce/OperatorHelper.java 2013-05-31 21:17:22.000000000 +0000 1679+++ bcpkix-jdk15on-149/org/bouncycastle/operator/jcajce/OperatorHelper.java 2013-01-31 02:26:40.000000000 +0000 1680@@ -20,7 +20,9 @@ 1681 import org.bouncycastle.asn1.ASN1Encodable; 1682 import org.bouncycastle.asn1.ASN1ObjectIdentifier; 1683 import org.bouncycastle.asn1.DERNull; 1684-import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1685+// BEGIN android-removed 1686+// import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; 1687+// END android-removed 1688 import org.bouncycastle.asn1.kisa.KISAObjectIdentifiers; 1689 import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; 1690 import org.bouncycastle.asn1.ntt.NTTObjectIdentifiers; 1691@@ -47,24 +49,34 @@ 1692 // reverse mappings 1693 // 1694 oids.put(new ASN1ObjectIdentifier("1.2.840.113549.1.1.5"), "SHA1WITHRSA"); 1695- oids.put(PKCSObjectIdentifiers.sha224WithRSAEncryption, "SHA224WITHRSA"); 1696+ // BEGIN android-removed 1697+ // oids.put(PKCSObjectIdentifiers.sha224WithRSAEncryption, "SHA224WITHRSA"); 1698+ // END android-removed 1699 oids.put(PKCSObjectIdentifiers.sha256WithRSAEncryption, "SHA256WITHRSA"); 1700 oids.put(PKCSObjectIdentifiers.sha384WithRSAEncryption, "SHA384WITHRSA"); 1701 oids.put(PKCSObjectIdentifiers.sha512WithRSAEncryption, "SHA512WITHRSA"); 1702- oids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, "GOST3411WITHGOST3410"); 1703- oids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, "GOST3411WITHECGOST3410"); 1704+ // BEGIN android-removed 1705+ // oids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_94, "GOST3411WITHGOST3410"); 1706+ // oids.put(CryptoProObjectIdentifiers.gostR3411_94_with_gostR3410_2001, "GOST3411WITHECGOST3410"); 1707+ // END android-removed 1708 1709 oids.put(new ASN1ObjectIdentifier("1.2.840.113549.1.1.4"), "MD5WITHRSA"); 1710- oids.put(new ASN1ObjectIdentifier("1.2.840.113549.1.1.2"), "MD2WITHRSA"); 1711+ // BEGIN android-removed 1712+ // oids.put(new ASN1ObjectIdentifier("1.2.840.113549.1.1.2"), "MD2WITHRSA"); 1713+ // END android-removed 1714 oids.put(new ASN1ObjectIdentifier("1.2.840.10040.4.3"), "SHA1WITHDSA"); 1715 oids.put(X9ObjectIdentifiers.ecdsa_with_SHA1, "SHA1WITHECDSA"); 1716- oids.put(X9ObjectIdentifiers.ecdsa_with_SHA224, "SHA224WITHECDSA"); 1717+ // BEGIN android-removed 1718+ // oids.put(X9ObjectIdentifiers.ecdsa_with_SHA224, "SHA224WITHECDSA"); 1719+ // END android-removed 1720 oids.put(X9ObjectIdentifiers.ecdsa_with_SHA256, "SHA256WITHECDSA"); 1721 oids.put(X9ObjectIdentifiers.ecdsa_with_SHA384, "SHA384WITHECDSA"); 1722 oids.put(X9ObjectIdentifiers.ecdsa_with_SHA512, "SHA512WITHECDSA"); 1723 oids.put(OIWObjectIdentifiers.sha1WithRSA, "SHA1WITHRSA"); 1724 oids.put(OIWObjectIdentifiers.dsaWithSHA1, "SHA1WITHDSA"); 1725- oids.put(NISTObjectIdentifiers.dsa_with_sha224, "SHA224WITHDSA"); 1726+ // BEGIN android-removed 1727+ // oids.put(NISTObjectIdentifiers.dsa_with_sha224, "SHA224WITHDSA"); 1728+ // END android-removed 1729 oids.put(NISTObjectIdentifiers.dsa_with_sha256, "SHA256WITHDSA"); 1730 1731 oids.put(OIWObjectIdentifiers.idSHA1, "SHA-1"); 1732@@ -305,10 +317,12 @@ 1733 { 1734 return "SHA1"; 1735 } 1736- else if (NISTObjectIdentifiers.id_sha224.equals(digestAlgOID)) 1737- { 1738- return "SHA224"; 1739- } 1740+ // BEGIN android-removed 1741+ // else if (NISTObjectIdentifiers.id_sha224.equals(digestAlgOID)) 1742+ // { 1743+ // return "SHA224"; 1744+ // } 1745+ // END android-removed 1746 else if (NISTObjectIdentifiers.id_sha256.equals(digestAlgOID)) 1747 { 1748 return "SHA256"; 1749@@ -321,22 +335,24 @@ 1750 { 1751 return "SHA512"; 1752 } 1753- else if (TeleTrusTObjectIdentifiers.ripemd128.equals(digestAlgOID)) 1754- { 1755- return "RIPEMD128"; 1756- } 1757- else if (TeleTrusTObjectIdentifiers.ripemd160.equals(digestAlgOID)) 1758- { 1759- return "RIPEMD160"; 1760- } 1761- else if (TeleTrusTObjectIdentifiers.ripemd256.equals(digestAlgOID)) 1762- { 1763- return "RIPEMD256"; 1764- } 1765- else if (CryptoProObjectIdentifiers.gostR3411.equals(digestAlgOID)) 1766- { 1767- return "GOST3411"; 1768- } 1769+ // BEGIN android-removed 1770+ // else if (TeleTrusTObjectIdentifiers.ripemd128.equals(digestAlgOID)) 1771+ // { 1772+ // return "RIPEMD128"; 1773+ // } 1774+ // else if (TeleTrusTObjectIdentifiers.ripemd160.equals(digestAlgOID)) 1775+ // { 1776+ // return "RIPEMD160"; 1777+ // } 1778+ // else if (TeleTrusTObjectIdentifiers.ripemd256.equals(digestAlgOID)) 1779+ // { 1780+ // return "RIPEMD256"; 1781+ // } 1782+ // else if (CryptoProObjectIdentifiers.gostR3411.equals(digestAlgOID)) 1783+ // { 1784+ // return "GOST3411"; 1785+ // } 1786+ // END android-removed 1787 else 1788 { 1789 return digestAlgOID.getId(); 1790