![]() |
![]() |
selenium-server-standalone-2.42.2PublicExponent().hashCode(); } public boolean equals(Object paramObject) { if (paramObject == this) { return true; } if (!(paramObject instanceof java.security.interfaces.RSAPublicKey)) { return false; } java.security.interfaces.RSAPublicKey localRSAPublicKey = (java.security.interfaces.RSAPublicKey)paramObject; return (getModulus().equals(localRSAPublicKey.getModulus())) && (getPublicExponent().equals(localRSAPublicKey.getPublicExponent())); } public String toString() { StringBuffer localStringBuffer = new StringBuffer(); String str = System.getProperty("line.separator"); localStringBuffer.append("RSA Public Key").append(str); localStringBuffer.append(" modulus: ").append(getModulus().toString(16)).append(str); localStringBuffer.append(" public exponent: ").append(getPublicExponent().toString(16)).append(str); return localStringBuffer.toString(); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.BCRSAPublicKey * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.encodings.ISO9796d1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class CipherSpi$ISO9796d1Padding extends CipherSpi { public CipherSpi$ISO9796d1Padding() { super(new ISO9796d1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.ISO9796d1Padding * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class CipherSpi$NoPadding extends CipherSpi { public CipherSpi$NoPadding() { super(new RSABlindedEngine()); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.NoPadding * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import javax.crypto.spec.OAEPParameterSpec; public class CipherSpi$OAEPPadding extends CipherSpi { public CipherSpi$OAEPPadding() { super(OAEPParameterSpec.DEFAULT); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.OAEPPadding * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class CipherSpi$PKCS1v1_5Padding extends CipherSpi { public CipherSpi$PKCS1v1_5Padding() { super(new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.PKCS1v1_5Padding * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class CipherSpi$PKCS1v1_5Padding_PrivateOnly extends CipherSpi { public CipherSpi$PKCS1v1_5Padding_PrivateOnly() { super(false, true, new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.PKCS1v1_5Padding_PrivateOnly * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class CipherSpi$PKCS1v1_5Padding_PublicOnly extends CipherSpi { public CipherSpi$PKCS1v1_5Padding_PublicOnly() { super(true, false, new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.PKCS1v1_5Padding_PublicOnly * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import java.io.ByteArrayOutputStream; import java.math.BigInteger; import java.security.AlgorithmParameters; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.InvalidParameterException; import java.security.Key; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.AlgorithmParameterSpec; import java.security.spec.InvalidParameterSpecException; import java.security.spec.MGF1ParameterSpec; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.OAEPParameterSpec; import javax.crypto.spec.PSource.PSpecified; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.crypto.AsymmetricBlockCipher; import org.bouncycastle.crypto.CipherParameters; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.InvalidCipherTextException; import org.bouncycastle.crypto.encodings.ISO9796d1Encoding; import org.bouncycastle.crypto.encodings.OAEPEncoding; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; import org.bouncycastle.crypto.params.ParametersWithRandom; import org.bouncycastle.jcajce.provider.asymmetric.util.BaseCipherSpi; import org.bouncycastle.jcajce.provider.util.DigestFactory; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.Strings; public class CipherSpi extends BaseCipherSpi { private AsymmetricBlockCipher cipher; private AlgorithmParameterSpec paramSpec; private AlgorithmParameters engineParams; private boolean publicKeyOnly = false; private boolean privateKeyOnly = false; private ByteArrayOutputStream bOut = new ByteArrayOutputStream(); public CipherSpi(AsymmetricBlockCipher paramAsymmetricBlockCipher) { cipher = paramAsymmetricBlockCipher; } public CipherSpi(OAEPParameterSpec paramOAEPParameterSpec) { try { initFromSpec(paramOAEPParameterSpec); } catch (NoSuchPaddingException localNoSuchPaddingException) { throw new IllegalArgumentException(localNoSuchPaddingException.getMessage()); } } public CipherSpi(boolean paramBoolean1, boolean paramBoolean2, AsymmetricBlockCipher paramAsymmetricBlockCipher) { publicKeyOnly = paramBoolean1; privateKeyOnly = paramBoolean2; cipher = paramAsymmetricBlockCipher; } private void initFromSpec(OAEPParameterSpec paramOAEPParameterSpec) throws NoSuchPaddingException { MGF1ParameterSpec localMGF1ParameterSpec = (MGF1ParameterSpec)paramOAEPParameterSpec.getMGFParameters(); Digest localDigest = DigestFactory.getDigest(localMGF1ParameterSpec.getDigestAlgorithm()); if (localDigest == null) { throw new NoSuchPaddingException("no match on OAEP constructor for digest algorithm: " + localMGF1ParameterSpec.getDigestAlgorithm()); } cipher = new OAEPEncoding(new RSABlindedEngine(), localDigest, ((PSource.PSpecified)paramOAEPParameterSpec.getPSource()).getValue()); paramSpec = paramOAEPParameterSpec; } protected int engineGetBlockSize() { try { return cipher.getInputBlockSize(); } catch (NullPointerException localNullPointerException) { throw new IllegalStateException("RSA Cipher not initialised"); } } protected int engineGetKeySize(Key paramKey) { Object localObject; if ((paramKey instanceof RSAPrivateKey)) { localObject = (RSAPrivateKey)paramKey; return ((RSAPrivateKey)localObject).getModulus().bitLength(); } if ((paramKey instanceof RSAPublicKey)) { localObject = (RSAPublicKey)paramKey; return ((RSAPublicKey)localObject).getModulus().bitLength(); } throw new IllegalArgumentException("not an RSA key!"); } protected int engineGetOutputSize(int paramInt) { try { return cipher.getOutputBlockSize(); } catch (NullPointerException localNullPointerException) { throw new IllegalStateException("RSA Cipher not initialised"); } } protected AlgorithmParameters engineGetParameters() { if ((engineParams == null) && (paramSpec != null)) { try { engineParams = AlgorithmParameters.getInstance("OAEP", BouncyCastleProvider.PROVIDER_NAME); engineParams.init(paramSpec); } catch (Exception localException) { throw new RuntimeException(localException.toString()); } } return engineParams; } protected void engineSetMode(String paramString) throws NoSuchAlgorithmException { String str = Strings.toUpperCase(paramString); if ((str.equals("NONE")) || (str.equals("ECB"))) { return; } if (str.equals("1")) { privateKeyOnly = true; publicKeyOnly = false; return; } if (str.equals("2")) { privateKeyOnly = false; publicKeyOnly = true; return; } throw new NoSuchAlgorithmException("can't support mode " + paramString); } protected void engineSetPadding(String paramString) throws NoSuchPaddingException { String str = Strings.toUpperCase(paramString); if (str.equals("NOPADDING")) { cipher = new RSABlindedEngine(); } else if (str.equals("PKCS1PADDING")) { cipher = new PKCS1Encoding(new RSABlindedEngine()); } else if (str.equals("ISO9796-1PADDING")) { cipher = new ISO9796d1Encoding(new RSABlindedEngine()); } else if (str.equals("OAEPWITHMD5ANDMGF1PADDING")) { initFromSpec(new OAEPParameterSpec("MD5", "MGF1", new MGF1ParameterSpec("MD5"), PSource.PSpecified.DEFAULT)); } else if (str.equals("OAEPPADDING")) { initFromSpec(OAEPParameterSpec.DEFAULT); } else if ((str.equals("OAEPWITHSHA1ANDMGF1PADDING")) || (str.equals("OAEPWITHSHA-1ANDMGF1PADDING"))) { initFromSpec(OAEPParameterSpec.DEFAULT); } else if ((str.equals("OAEPWITHSHA224ANDMGF1PADDING")) || (str.equals("OAEPWITHSHA-224ANDMGF1PADDING"))) { initFromSpec(new OAEPParameterSpec("SHA-224", "MGF1", new MGF1ParameterSpec("SHA-224"), PSource.PSpecified.DEFAULT)); } else if ((str.equals("OAEPWITHSHA256ANDMGF1PADDING")) || (str.equals("OAEPWITHSHA-256ANDMGF1PADDING"))) { initFromSpec(new OAEPParameterSpec("SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT)); } else if ((str.equals("OAEPWITHSHA384ANDMGF1PADDING")) || (str.equals("OAEPWITHSHA-384ANDMGF1PADDING"))) { initFromSpec(new OAEPParameterSpec("SHA-384", "MGF1", MGF1ParameterSpec.SHA384, PSource.PSpecified.DEFAULT)); } else if ((str.equals("OAEPWITHSHA512ANDMGF1PADDING")) || (str.equals("OAEPWITHSHA-512ANDMGF1PADDING"))) { initFromSpec(new OAEPParameterSpec("SHA-512", "MGF1", MGF1ParameterSpec.SHA512, PSource.PSpecified.DEFAULT)); } else { throw new NoSuchPaddingException(paramString + " unavailable with RSA."); } } protected void engineInit(int paramInt, Key paramKey, AlgorithmParameterSpec paramAlgorithmParameterSpec, SecureRandom paramSecureRandom) throws InvalidKeyException, InvalidAlgorithmParameterException { Object localObject; if ((paramAlgorithmParameterSpec == null) || ((paramAlgorithmParameterSpec instanceof OAEPParameterSpec))) { if ((paramKey instanceof RSAPublicKey)) { if ((privateKeyOnly) && (paramInt == 1)) { throw new InvalidKeyException("mode 1 requires RSAPrivateKey"); } localObject = RSAUtil.generatePublicKeyParameter((RSAPublicKey)paramKey); } else if ((paramKey instanceof RSAPrivateKey)) { if ((publicKeyOnly) && (paramInt == 1)) { throw new InvalidKeyException("mode 2 requires RSAPublicKey"); } localObject = RSAUtil.generatePrivateKeyParameter((RSAPrivateKey)paramKey); } else { throw new InvalidKeyException("unknown key type passed to RSA"); } if (paramAlgorithmParameterSpec != null) { OAEPParameterSpec localOAEPParameterSpec = (OAEPParameterSpec)paramAlgorithmParameterSpec; paramSpec = paramAlgorithmParameterSpec; if ((!localOAEPParameterSpec.getMGFAlgorithm().equalsIgnoreCase("MGF1")) && (!localOAEPParameterSpec.getMGFAlgorithm().equals(PKCSObjectIdentifiers.id_mgf1.getId()))) { throw new InvalidAlgorithmParameterException("unknown mask generation function specified"); } if (!(localOAEPParameterSpec.getMGFParameters() instanceof MGF1ParameterSpec)) { throw new InvalidAlgorithmParameterException("unkown MGF parameters"); } Digest localDigest1 = DigestFactory.getDigest(localOAEPParameterSpec.getDigestAlgorithm()); if (localDigest1 == null) { throw new InvalidAlgorithmParameterException("no match on digest algorithm: " + localOAEPParameterSpec.getDigestAlgorithm()); } MGF1ParameterSpec localMGF1ParameterSpec = (MGF1ParameterSpec)localOAEPParameterSpec.getMGFParameters(); Digest localDigest2 = DigestFactory.getDigest(localMGF1ParameterSpec.getDigestAlgorithm()); if (localDigest2 == null) { throw new InvalidAlgorithmParameterException("no match on MGF digest algorithm: " + localMGF1ParameterSpec.getDigestAlgorithm()); } cipher = new OAEPEncoding(new RSABlindedEngine(), localDigest1, localDigest2, ((PSource.PSpecified)localOAEPParameterSpec.getPSource()).getValue()); } } else { throw new IllegalArgumentException("unknown parameter type."); } if (!(cipher instanceof RSABlindedEngine)) { if (paramSecureRandom != null) { localObject = new ParametersWithRandom((CipherParameters)localObject, paramSecureRandom); } else { localObject = new ParametersWithRandom((CipherParameters)localObject, new SecureRandom()); } } bOut.reset(); switch (paramInt) { case 1: case 3: cipher.init(true, (CipherParameters)localObject); break; case 2: case 4: cipher.init(false, (CipherParameters)localObject); break; default: throw new InvalidParameterException("unknown opmode " + paramInt + " passed to RSA"); } } protected void engineInit(int paramInt, Key paramKey, AlgorithmParameters paramAlgorithmParameters, SecureRandom paramSecureRandom) throws InvalidKeyException, InvalidAlgorithmParameterException { AlgorithmParameterSpec localAlgorithmParameterSpec = null; if (paramAlgorithmParameters != null) { try { localAlgorithmParameterSpec = paramAlgorithmParameters.getParameterSpec(OAEPParameterSpec.class); } catch (InvalidParameterSpecException localInvalidParameterSpecException) { throw new InvalidAlgorithmParameterException("cannot recognise parameters: " + localInvalidParameterSpecException.toString(), localInvalidParameterSpecException); } } engineParams = paramAlgorithmParameters; engineInit(paramInt, paramKey, localAlgorithmParameterSpec, paramSecureRandom); } protected void engineInit(int paramInt, Key paramKey, SecureRandom paramSecureRandom) throws InvalidKeyException { try { engineInit(paramInt, paramKey, (AlgorithmParameterSpec)null, paramSecureRandom); } catch (InvalidAlgorithmParameterException localInvalidAlgorithmParameterException) { throw new InvalidKeyException("Eeeek! " + localInvalidAlgorithmParameterException.toString(), localInvalidAlgorithmParameterException); } } protected byte[] engineUpdate(byte[] paramArrayOfByte, int paramInt1, int paramInt2) { bOut.write(paramArrayOfByte, paramInt1, paramInt2); if ((cipher instanceof RSABlindedEngine)) { if (bOut.size() > cipher.getInputBlockSize() + 1) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } } else if (bOut.size() > cipher.getInputBlockSize()) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } return null; } protected int engineUpdate(byte[] paramArrayOfByte1, int paramInt1, int paramInt2, byte[] paramArrayOfByte2, int paramInt3) { bOut.write(paramArrayOfByte1, paramInt1, paramInt2); if ((cipher instanceof RSABlindedEngine)) { if (bOut.size() > cipher.getInputBlockSize() + 1) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } } else if (bOut.size() > cipher.getInputBlockSize()) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } return 0; } protected byte[] engineDoFinal(byte[] paramArrayOfByte, int paramInt1, int paramInt2) throws IllegalBlockSizeException, BadPaddingException { if (paramArrayOfByte != null) { bOut.write(paramArrayOfByte, paramInt1, paramInt2); } if ((cipher instanceof RSABlindedEngine)) { if (bOut.size() > cipher.getInputBlockSize() + 1) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } } else if (bOut.size() > cipher.getInputBlockSize()) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } try { byte[] arrayOfByte = bOut.toByteArray(); bOut.reset(); return cipher.processBlock(arrayOfByte, 0, arrayOfByte.length); } catch (InvalidCipherTextException localInvalidCipherTextException) { throw new BadPaddingException(localInvalidCipherTextException.getMessage()); } } protected int engineDoFinal(byte[] paramArrayOfByte1, int paramInt1, int paramInt2, byte[] paramArrayOfByte2, int paramInt3) throws IllegalBlockSizeException, BadPaddingException { if (paramArrayOfByte1 != null) { bOut.write(paramArrayOfByte1, paramInt1, paramInt2); } if ((cipher instanceof RSABlindedEngine)) { if (bOut.size() > cipher.getInputBlockSize() + 1) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } } else if (bOut.size() > cipher.getInputBlockSize()) { throw new ArrayIndexOutOfBoundsException("too much data for RSA block"); } byte[] arrayOfByte2; try { byte[] arrayOfByte1 = bOut.toByteArray(); arrayOfByte2 = cipher.processBlock(arrayOfByte1, 0, arrayOfByte1.length); } catch (InvalidCipherTextException localInvalidCipherTextException) { throw new BadPaddingException(localInvalidCipherTextException.getMessage()); } finally { bOut.reset(); } for (int i = 0; i != arrayOfByte2.length; i++) { paramArrayOfByte2[(paramInt3 + i)] = arrayOfByte2[i]; } return arrayOfByte2.length; } public static class ISO9796d1Padding extends CipherSpi { public ISO9796d1Padding() { super(); } } public static class NoPadding extends CipherSpi { public NoPadding() { super(); } } public static class OAEPPadding extends CipherSpi { public OAEPPadding() { super(); } } public static class PKCS1v1_5Padding extends CipherSpi { public PKCS1v1_5Padding() { super(); } } public static class PKCS1v1_5Padding_PrivateOnly extends CipherSpi { public PKCS1v1_5Padding_PrivateOnly() { super(true, new PKCS1Encoding(new RSABlindedEngine())); } } public static class PKCS1v1_5Padding_PublicOnly extends CipherSpi { public PKCS1v1_5Padding_PublicOnly() { super(false, new PKCS1Encoding(new RSABlindedEngine())); } } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.crypto.digests.MD2Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$MD2 extends DigestSignatureSpi { public DigestSignatureSpi$MD2() { super(PKCSObjectIdentifiers.md2, new MD2Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.MD2 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.crypto.digests.MD4Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$MD4 extends DigestSignatureSpi { public DigestSignatureSpi$MD4() { super(PKCSObjectIdentifiers.md4, new MD4Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.MD4 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.crypto.digests.MD5Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$MD5 extends DigestSignatureSpi { public DigestSignatureSpi$MD5() { super(PKCSObjectIdentifiers.md5, new MD5Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.MD5 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; import org.bouncycastle.crypto.digests.RIPEMD128Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$RIPEMD128 extends DigestSignatureSpi { public DigestSignatureSpi$RIPEMD128() { super(TeleTrusTObjectIdentifiers.ripemd128, new RIPEMD128Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.RIPEMD128 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; import org.bouncycastle.crypto.digests.RIPEMD160Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$RIPEMD160 extends DigestSignatureSpi { public DigestSignatureSpi$RIPEMD160() { super(TeleTrusTObjectIdentifiers.ripemd160, new RIPEMD160Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.RIPEMD160 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; import org.bouncycastle.crypto.digests.RIPEMD256Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$RIPEMD256 extends DigestSignatureSpi { public DigestSignatureSpi$RIPEMD256() { super(TeleTrusTObjectIdentifiers.ripemd256, new RIPEMD256Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.RIPEMD256 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$SHA1 extends DigestSignatureSpi { public DigestSignatureSpi$SHA1() { super(OIWObjectIdentifiers.idSHA1, new SHA1Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.SHA1 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; import org.bouncycastle.crypto.digests.SHA224Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$SHA224 extends DigestSignatureSpi { public DigestSignatureSpi$SHA224() { super(NISTObjectIdentifiers.id_sha224, new SHA224Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.SHA224 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; import org.bouncycastle.crypto.digests.SHA256Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$SHA256 extends DigestSignatureSpi { public DigestSignatureSpi$SHA256() { super(NISTObjectIdentifiers.id_sha256, new SHA256Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.SHA256 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; import org.bouncycastle.crypto.digests.SHA384Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$SHA384 extends DigestSignatureSpi { public DigestSignatureSpi$SHA384() { super(NISTObjectIdentifiers.id_sha384, new SHA384Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.SHA384 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; import org.bouncycastle.crypto.digests.SHA512Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$SHA512 extends DigestSignatureSpi { public DigestSignatureSpi$SHA512() { super(NISTObjectIdentifiers.id_sha512, new SHA512Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.SHA512 * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.digests.NullDigest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class DigestSignatureSpi$noneRSA extends DigestSignatureSpi { public DigestSignatureSpi$noneRSA() { super(new NullDigest(), new PKCS1Encoding(new RSABlindedEngine())); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.noneRSA * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import java.io.IOException; import java.security.AlgorithmParameters; import java.security.InvalidKeyException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SignatureException; import java.security.SignatureSpi; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.AlgorithmParameterSpec; import org.bouncycastle.asn1.ASN1ObjectIdentifier; import org.bouncycastle.asn1.DERNull; import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; import org.bouncycastle.asn1.x509.AlgorithmIdentifier; import org.bouncycastle.asn1.x509.DigestInfo; import org.bouncycastle.crypto.AsymmetricBlockCipher; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.MD2Digest; import org.bouncycastle.crypto.digests.MD4Digest; import org.bouncycastle.crypto.digests.MD5Digest; import org.bouncycastle.crypto.digests.NullDigest; import org.bouncycastle.crypto.digests.RIPEMD128Digest; import org.bouncycastle.crypto.digests.RIPEMD160Digest; import org.bouncycastle.crypto.digests.RIPEMD256Digest; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.digests.SHA224Digest; import org.bouncycastle.crypto.digests.SHA256Digest; import org.bouncycastle.crypto.digests.SHA384Digest; import org.bouncycastle.crypto.digests.SHA512Digest; import org.bouncycastle.crypto.encodings.PKCS1Encoding; import org.bouncycastle.crypto.engines.RSABlindedEngine; import org.bouncycastle.crypto.params.RSAKeyParameters; public class DigestSignatureSpi extends SignatureSpi { private Digest digest; private AsymmetricBlockCipher cipher; private AlgorithmIdentifier algId; protected DigestSignatureSpi(Digest paramDigest, AsymmetricBlockCipher paramAsymmetricBlockCipher) { digest = paramDigest; cipher = paramAsymmetricBlockCipher; algId = null; } protected DigestSignatureSpi(ASN1ObjectIdentifier paramASN1ObjectIdentifier, Digest paramDigest, AsymmetricBlockCipher paramAsymmetricBlockCipher) { digest = paramDigest; cipher = paramAsymmetricBlockCipher; algId = new AlgorithmIdentifier(paramASN1ObjectIdentifier, DERNull.INSTANCE); } protected void engineInitVerify(PublicKey paramPublicKey) throws InvalidKeyException { if (!(paramPublicKey instanceof RSAPublicKey)) { throw new InvalidKeyException("Supplied key (" + getType(paramPublicKey) + ") is not a RSAPublicKey instance"); } RSAKeyParameters localRSAKeyParameters = RSAUtil.generatePublicKeyParameter((RSAPublicKey)paramPublicKey); digest.reset(); cipher.init(false, localRSAKeyParameters); } protected void engineInitSign(PrivateKey paramPrivateKey) throws InvalidKeyException { if (!(paramPrivateKey instanceof RSAPrivateKey)) { throw new InvalidKeyException("Supplied key (" + getType(paramPrivateKey) + ") is not a RSAPrivateKey instance"); } RSAKeyParameters localRSAKeyParameters = RSAUtil.generatePrivateKeyParameter((RSAPrivateKey)paramPrivateKey); digest.reset(); cipher.init(true, localRSAKeyParameters); } private String getType(Object paramObject) { if (paramObject == null) { return null; } return paramObject.getClass().getName(); } protected void engineUpdate(byte paramByte) throws SignatureException { digest.update(paramByte); } protected void engineUpdate(byte[] paramArrayOfByte, int paramInt1, int paramInt2) throws SignatureException { digest.update(paramArrayOfByte, paramInt1, paramInt2); } protected byte[] engineSign() throws SignatureException { byte[] arrayOfByte1 = new byte[digest.getDigestSize()]; digest.doFinal(arrayOfByte1, 0); try { byte[] arrayOfByte2 = derEncode(arrayOfByte1); return cipher.processBlock(arrayOfByte2, 0, arrayOfByte2.length); } catch (ArrayIndexOutOfBoundsException localArrayIndexOutOfBoundsException) { throw new SignatureException("key too small for signature type"); } catch (Exception localException) { throw new SignatureException(localException.toString()); } } protected boolean engineVerify(byte[] paramArrayOfByte) throws SignatureException { byte[] arrayOfByte1 = new byte[digest.getDigestSize()]; digest.doFinal(arrayOfByte1, 0); byte[] arrayOfByte2; byte[] arrayOfByte3; try { arrayOfByte2 = cipher.processBlock(paramArrayOfByte, 0, paramArrayOfByte.length); arrayOfByte3 = derEncode(arrayOfByte1); } catch (Exception localException) { return false; } int i; if (arrayOfByte2.length == arrayOfByte3.length) { for (i = 0; i < arrayOfByte2.length; i++) { if (arrayOfByte2[i] != arrayOfByte3[i]) { return false; } } } else if (arrayOfByte2.length == arrayOfByte3.length - 2) { i = arrayOfByte2.length - arrayOfByte1.length - 2; int j = arrayOfByte3.length - arrayOfByte1.length - 2; int tmp125_124 = 1; byte[] tmp125_122 = arrayOfByte3; tmp125_122[tmp125_124] = ((byte)(tmp125_122[tmp125_124] - 2)); int tmp134_133 = 3; byte[] tmp134_131 = arrayOfByte3; tmp134_131[tmp134_133] = ((byte)(tmp134_131[tmp134_133] - 2)); for (int k = 0; k < arrayOfByte1.length; k++) { if (arrayOfByte2[(i + k)] != arrayOfByte3[(j + k)]) { return false; } } for (k = 0; k < i; k++) { if (arrayOfByte2[k] != arrayOfByte3[k]) { return false; } } } else { return false; } return true; } protected void engineSetParameter(AlgorithmParameterSpec paramAlgorithmParameterSpec) { throw new UnsupportedOperationException("engineSetParameter unsupported"); } /** * @deprecated */ protected void engineSetParameter(String paramString, Object paramObject) { throw new UnsupportedOperationException("engineSetParameter unsupported"); } /** * @deprecated */ protected Object engineGetParameter(String paramString) { return null; } protected AlgorithmParameters engineGetParameters() { return null; } private byte[] derEncode(byte[] paramArrayOfByte) throws IOException { if (algId == null) { return paramArrayOfByte; } DigestInfo localDigestInfo = new DigestInfo(algId, paramArrayOfByte); return localDigestInfo.getEncoded("DER"); } public static class MD2 extends DigestSignatureSpi { public MD2() { super(new MD2Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class MD4 extends DigestSignatureSpi { public MD4() { super(new MD4Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class MD5 extends DigestSignatureSpi { public MD5() { super(new MD5Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class RIPEMD128 extends DigestSignatureSpi { public RIPEMD128() { super(new RIPEMD128Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class RIPEMD160 extends DigestSignatureSpi { public RIPEMD160() { super(new RIPEMD160Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class RIPEMD256 extends DigestSignatureSpi { public RIPEMD256() { super(new RIPEMD256Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class SHA1 extends DigestSignatureSpi { public SHA1() { super(new SHA1Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class SHA224 extends DigestSignatureSpi { public SHA224() { super(new SHA224Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class SHA256 extends DigestSignatureSpi { public SHA256() { super(new SHA256Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class SHA384 extends DigestSignatureSpi { public SHA384() { super(new SHA384Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class SHA512 extends DigestSignatureSpi { public SHA512() { super(new SHA512Digest(), new PKCS1Encoding(new RSABlindedEngine())); } } public static class noneRSA extends DigestSignatureSpi { public noneRSA() { super(new PKCS1Encoding(new RSABlindedEngine())); } } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.digests.MD5Digest; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class ISOSignatureSpi$MD5WithRSAEncryption extends ISOSignatureSpi { public ISOSignatureSpi$MD5WithRSAEncryption() { super(new MD5Digest(), new RSABlindedEngine()); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi.MD5WithRSAEncryption * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.digests.RIPEMD160Digest; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class ISOSignatureSpi$RIPEMD160WithRSAEncryption extends ISOSignatureSpi { public ISOSignatureSpi$RIPEMD160WithRSAEncryption() { super(new RIPEMD160Digest(), new RSABlindedEngine()); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi.RIPEMD160WithRSAEncryption * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.engines.RSABlindedEngine; public class ISOSignatureSpi$SHA1WithRSAEncryption extends ISOSignatureSpi { public ISOSignatureSpi$SHA1WithRSAEncryption() { super(new SHA1Digest(), new RSABlindedEngine()); } } /* Location: * Qualified Name: org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi.SHA1WithRSAEncryption * Java Class Version: 5 (49.0) * JD-Core Version: 0.7.1 */ package org.bouncycastle.jcajce.provider.asymmetric.rsa; import java.security.InvalidKeyException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SignatureException; import java.security.SignatureSpi; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.AlgorithmParameterSpec; import org.bouncycastle.crypto.AsymmetricBlockCipher; import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.MD5Digest; import org.bouncycastle.crypto.digests.RIPEMD160Digest; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.engines.RSABlindedEngine; import org.bouncycastle.crypto.params.RSAKeyParameters; import org.bouncycastle.crypto.signers.ISO9796d2Signer; public class ISOSignatureSpi extends SignatureSpi { private ISO9796d2Signer signer; protected ISOSignatureSpi(Digest paramDigest, AsymmetricBlockCipher paramAsymmetricBlockCipher) { signer = new ISO9796d2 Further reading...For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.New!JAR listings
|