diff options
author | Sergio Giro <sgiro@google.com> | 2016-02-01 18:54:35 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-02-01 18:54:35 +0000 |
commit | 3e75bd6b407dd472c834a50f16aae54cca67ea9c (patch) | |
tree | b5eb091b97b2aade28e5b45a15352125a4a776d7 /bcprov/src/main/java/org/bouncycastle/jce/provider/test/EncryptedPrivateKeyInfoTest.java | |
parent | 9218edabd1ef9852bc2f13115dcadc81b442dd6c (diff) | |
parent | c1040cb5656c3299f1c2d0fe0bd7c44b10466aaf (diff) | |
download | android_external_bouncycastle-3e75bd6b407dd472c834a50f16aae54cca67ea9c.tar.gz android_external_bouncycastle-3e75bd6b407dd472c834a50f16aae54cca67ea9c.tar.bz2 android_external_bouncycastle-3e75bd6b407dd472c834a50f16aae54cca67ea9c.zip |
Merge "Restoring the contents of aosp after"
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/jce/provider/test/EncryptedPrivateKeyInfoTest.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/jce/provider/test/EncryptedPrivateKeyInfoTest.java | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/jce/provider/test/EncryptedPrivateKeyInfoTest.java b/bcprov/src/main/java/org/bouncycastle/jce/provider/test/EncryptedPrivateKeyInfoTest.java deleted file mode 100644 index 80e64ac..0000000 --- a/bcprov/src/main/java/org/bouncycastle/jce/provider/test/EncryptedPrivateKeyInfoTest.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.bouncycastle.jce.provider.test; - -import java.security.AlgorithmParameters; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.MessageDigest; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.SecureRandom; -import java.security.Security; -import java.security.spec.PKCS8EncodedKeySpec; - -import javax.crypto.Cipher; -import javax.crypto.EncryptedPrivateKeyInfo; -import javax.crypto.SecretKeyFactory; -import javax.crypto.spec.PBEKeySpec; -import javax.crypto.spec.PBEParameterSpec; - -import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.bouncycastle.util.test.SimpleTestResult; -import org.bouncycastle.util.test.Test; -import org.bouncycastle.util.test.TestResult; - -public class EncryptedPrivateKeyInfoTest - implements Test -{ - String alg = "1.2.840.113549.1.12.1.3"; // 3 key triple DES with SHA-1 - - public TestResult perform() - { - try - { - KeyPairGenerator fact = KeyPairGenerator.getInstance("RSA", "BC"); - fact.initialize(512, new SecureRandom()); - - KeyPair keyPair = fact.generateKeyPair(); - - PrivateKey priKey = keyPair.getPrivate(); - PublicKey pubKey = keyPair.getPublic(); - - // - // set up the parameters - // - byte[] salt = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; - int iterationCount = 100; - PBEParameterSpec defParams = new PBEParameterSpec(salt, iterationCount); - - AlgorithmParameters params = AlgorithmParameters.getInstance(alg, "BC"); - - params.init(defParams); - - // - // set up the key - // - char[] password1 = { 'h', 'e', 'l', 'l', 'o' }; - - PBEKeySpec pbeSpec = new PBEKeySpec(password1); - SecretKeyFactory keyFact = SecretKeyFactory.getInstance(alg, "BC"); - Cipher cipher = Cipher.getInstance(alg, "BC"); - - cipher.init(Cipher.WRAP_MODE, keyFact.generateSecret(pbeSpec), params); - - byte[] wrappedKey = cipher.wrap(priKey); - - // - // create encrypted object - // - - EncryptedPrivateKeyInfo pInfo = new EncryptedPrivateKeyInfo(params, wrappedKey); - - // - // decryption step - // - char[] password2 = { 'h', 'e', 'l', 'l', 'o' }; - - pbeSpec = new PBEKeySpec(password2); - - cipher = Cipher.getInstance(pInfo.getAlgName(), "BC"); - - cipher.init(Cipher.DECRYPT_MODE, keyFact.generateSecret(pbeSpec), pInfo.getAlgParameters()); - - PKCS8EncodedKeySpec keySpec = pInfo.getKeySpec(cipher); - - if (!MessageDigest.isEqual(priKey.getEncoded(), keySpec.getEncoded())) - { - return new SimpleTestResult(false, "Private key does not match"); - } - - // - // using Cipher parameters test - // - pbeSpec = new PBEKeySpec(password1); - keyFact = SecretKeyFactory.getInstance(alg, "BC"); - cipher = Cipher.getInstance(alg, "BC"); - - cipher.init(Cipher.WRAP_MODE, keyFact.generateSecret(pbeSpec), params); - - wrappedKey = cipher.wrap(priKey); - - // - // create encrypted object - // - - pInfo = new EncryptedPrivateKeyInfo(cipher.getParameters(), wrappedKey); - - // - // decryption step - // - pbeSpec = new PBEKeySpec(password2); - - cipher = Cipher.getInstance(pInfo.getAlgName(), "BC"); - - cipher.init(Cipher.DECRYPT_MODE, keyFact.generateSecret(pbeSpec), pInfo.getAlgParameters()); - - keySpec = pInfo.getKeySpec(cipher); - - if (!MessageDigest.isEqual(priKey.getEncoded(), keySpec.getEncoded())) - { - return new SimpleTestResult(false, "Private key does not match"); - } - - return new SimpleTestResult(true, getName() + ": Okay"); - } - catch (Exception e) - { - return new SimpleTestResult(false, getName() + ": exception - " + e.toString(), e); - } - } - - public String getName() - { - return "EncryptedPrivateKeyInfoTest"; - } - - public static void main( - String[] args) - { - Security.addProvider(new BouncyCastleProvider()); - - Test test = new EncryptedPrivateKeyInfoTest(); - TestResult result = test.perform(); - - System.out.println(result.toString()); - } -} |