/projs./apk/samsung-SGH-I717-KJ5-Email/src/myorg/bouncycastle/jce/provider/X509SignatureUtil.java

https://github.com/xl8or/- · Java · 123 lines · 110 code · 13 blank · 0 comment · 29 complexity · e99032fd22ad14fcfd2e985b0ec3bc28 MD5 · raw file

  1. package myorg.bouncycastle.jce.provider;
  2. import java.io.IOException;
  3. import java.security.AlgorithmParameters;
  4. import java.security.GeneralSecurityException;
  5. import java.security.InvalidKeyException;
  6. import java.security.NoSuchAlgorithmException;
  7. import java.security.Provider;
  8. import java.security.Signature;
  9. import java.security.SignatureException;
  10. import java.security.spec.AlgorithmParameterSpec;
  11. import java.security.spec.PSSParameterSpec;
  12. import myorg.bouncycastle.asn1.ASN1Null;
  13. import myorg.bouncycastle.asn1.ASN1Sequence;
  14. import myorg.bouncycastle.asn1.DEREncodable;
  15. import myorg.bouncycastle.asn1.DERNull;
  16. import myorg.bouncycastle.asn1.DERObjectIdentifier;
  17. import myorg.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers;
  18. import myorg.bouncycastle.asn1.nist.NISTObjectIdentifiers;
  19. import myorg.bouncycastle.asn1.oiw.OIWObjectIdentifiers;
  20. import myorg.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;
  21. import myorg.bouncycastle.asn1.pkcs.RSASSAPSSparams;
  22. import myorg.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers;
  23. import myorg.bouncycastle.asn1.x509.AlgorithmIdentifier;
  24. import myorg.bouncycastle.asn1.x9.X9ObjectIdentifiers;
  25. class X509SignatureUtil {
  26. private static final ASN1Null derNull = new DERNull();
  27. X509SignatureUtil() {}
  28. private static String getDigestAlgName(DERObjectIdentifier var0) {
  29. String var1;
  30. if(PKCSObjectIdentifiers.md5.equals(var0)) {
  31. var1 = "MD5";
  32. } else if(OIWObjectIdentifiers.idSHA1.equals(var0)) {
  33. var1 = "SHA1";
  34. } else if(NISTObjectIdentifiers.id_sha224.equals(var0)) {
  35. var1 = "SHA224";
  36. } else if(NISTObjectIdentifiers.id_sha256.equals(var0)) {
  37. var1 = "SHA256";
  38. } else if(NISTObjectIdentifiers.id_sha384.equals(var0)) {
  39. var1 = "SHA384";
  40. } else if(NISTObjectIdentifiers.id_sha512.equals(var0)) {
  41. var1 = "SHA512";
  42. } else if(TeleTrusTObjectIdentifiers.ripemd128.equals(var0)) {
  43. var1 = "RIPEMD128";
  44. } else if(TeleTrusTObjectIdentifiers.ripemd160.equals(var0)) {
  45. var1 = "RIPEMD160";
  46. } else if(TeleTrusTObjectIdentifiers.ripemd256.equals(var0)) {
  47. var1 = "RIPEMD256";
  48. } else if(CryptoProObjectIdentifiers.gostR3411.equals(var0)) {
  49. var1 = "GOST3411";
  50. } else {
  51. var1 = var0.getId();
  52. }
  53. return var1;
  54. }
  55. static String getSignatureName(AlgorithmIdentifier var0) {
  56. DEREncodable var1 = var0.getParameters();
  57. String var7;
  58. if(var1 != null && !derNull.equals(var1)) {
  59. DERObjectIdentifier var2 = var0.getObjectId();
  60. DERObjectIdentifier var3 = PKCSObjectIdentifiers.id_RSASSA_PSS;
  61. if(var2.equals(var3)) {
  62. RSASSAPSSparams var4 = RSASSAPSSparams.getInstance(var1);
  63. StringBuilder var5 = new StringBuilder();
  64. String var6 = getDigestAlgName(var4.getHashAlgorithm().getObjectId());
  65. var7 = var5.append(var6).append("withRSAandMGF1").toString();
  66. return var7;
  67. }
  68. DERObjectIdentifier var8 = var0.getObjectId();
  69. DERObjectIdentifier var9 = X9ObjectIdentifiers.ecdsa_with_SHA2;
  70. if(var8.equals(var9)) {
  71. ASN1Sequence var10 = ASN1Sequence.getInstance(var1);
  72. StringBuilder var11 = new StringBuilder();
  73. String var12 = getDigestAlgName((DERObjectIdentifier)var10.getObjectAt(0));
  74. var7 = var11.append(var12).append("withECDSA").toString();
  75. return var7;
  76. }
  77. }
  78. var7 = var0.getObjectId().getId();
  79. return var7;
  80. }
  81. static void setSignatureParameters(Signature var0, DEREncodable var1) throws NoSuchAlgorithmException, SignatureException, InvalidKeyException {
  82. if(var1 != null) {
  83. if(!derNull.equals(var1)) {
  84. String var2 = var0.getAlgorithm();
  85. Provider var3 = var0.getProvider();
  86. AlgorithmParameters var4 = AlgorithmParameters.getInstance(var2, var3);
  87. try {
  88. byte[] var5 = var1.getDERObject().getDEREncoded();
  89. var4.init(var5);
  90. } catch (IOException var16) {
  91. StringBuilder var8 = (new StringBuilder()).append("IOException decoding parameters: ");
  92. String var9 = var16.getMessage();
  93. String var10 = var8.append(var9).toString();
  94. throw new SignatureException(var10);
  95. }
  96. if(var0.getAlgorithm().endsWith("MGF1")) {
  97. try {
  98. AlgorithmParameterSpec var6 = var4.getParameterSpec(PSSParameterSpec.class);
  99. var0.setParameter(var6);
  100. } catch (GeneralSecurityException var15) {
  101. StringBuilder var12 = (new StringBuilder()).append("Exception extracting parameters: ");
  102. String var13 = var15.getMessage();
  103. String var14 = var12.append(var13).toString();
  104. throw new SignatureException(var14);
  105. }
  106. }
  107. }
  108. }
  109. }
  110. }