From 84276263e6c1ae7afc1d83c7f172a6989bef859a Mon Sep 17 00:00:00 2001 From: jrclark2 Date: Fri, 6 Dec 2019 16:03:46 -0600 Subject: [PATCH] Add decryption of AES-encrypted keys --- src/net/named_data/jndn/security/tpm/Tpm.java | 1 - .../named_data/jndn/security/tpm/TpmPrivateKey.java | 12 +++++------- .../jndn/tests/integration_tests/TestKeyChain.java | 12 ++++++------ 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/net/named_data/jndn/security/tpm/Tpm.java b/src/net/named_data/jndn/security/tpm/Tpm.java index 8ec56545..98631ff0 100644 --- a/src/net/named_data/jndn/security/tpm/Tpm.java +++ b/src/net/named_data/jndn/security/tpm/Tpm.java @@ -108,7 +108,6 @@ public Error(String message) if (key == null) return new Blob(); - else return key.sign(digestAlgorithm, data); } diff --git a/src/net/named_data/jndn/security/tpm/TpmPrivateKey.java b/src/net/named_data/jndn/security/tpm/TpmPrivateKey.java index 6a70b740..8eac20d4 100644 --- a/src/net/named_data/jndn/security/tpm/TpmPrivateKey.java +++ b/src/net/named_data/jndn/security/tpm/TpmPrivateKey.java @@ -69,6 +69,7 @@ public class TpmPrivateKey { static { Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1); } + /** * A TpmPrivateKey.Error extends Exception and represents an error in private * key processing. @@ -156,11 +157,9 @@ else if (keyType == KeyType.RSA) (ByteBuffer encoding, ByteBuffer password) throws TpmPrivateKey.Error { //BouncyCastle classes expect a byte array and char array byte[] encodingBytes = new byte[10]; - encodingBytes = new byte[encoding.remaining()]; - encoding.get(encodingBytes, 0, encodingBytes.length); - encoding.clear(); encodingBytes = new byte[encoding.capacity()]; encoding.get(encodingBytes, 0, encodingBytes.length); + encoding.clear(); CharBuffer charBuffer = Charset.forName("ISO-8859-1").decode(password); char[] passwordBytes = charBuffer.array(); @@ -180,8 +179,8 @@ else if (keyType == KeyType.RSA) ("loadEncryptedPkcs8: Key type " + keyTypeString + " not supported"); } catch (IOException | OperatorCreationException | PKCSException ex) { - throw new TpmPrivateKey.Error - ("loadEncryptedPkcs8: Error parsing PrivateKey info: " + ex); + throw new TpmPrivateKey.Error + ("loadEncryptedPkcs8: Error parsing PrivateKey info: " + ex); } } @@ -470,8 +469,7 @@ else if (keyType_ == KeyType.RSA) { /** * Get the encoded encrypted private key in PKCS #8. - * @param password The password for encrypting the private key, which should - * have characters in the range of 1 to 127. + * @param password The password for encrypting the private key. * @return The encoding Blob of the EncryptedPrivateKeyInfo. * @throws TpmPrivateKey.Error if no private key is loaded, or error encoding. */ diff --git a/tests/src/net/named_data/jndn/tests/integration_tests/TestKeyChain.java b/tests/src/net/named_data/jndn/tests/integration_tests/TestKeyChain.java index 0b55a641..95c26ddf 100644 --- a/tests/src/net/named_data/jndn/tests/integration_tests/TestKeyChain.java +++ b/tests/src/net/named_data/jndn/tests/integration_tests/TestKeyChain.java @@ -249,15 +249,15 @@ public class TestKeyChain { ); Name testName = new Name("/ndn/test/"); - try { + try { SafeBag safebag = new SafeBag(testKey); fixture_.keyChain_.importSafeBag(safebag, password.buf()); } catch (Throwable ex) { - fail("Unexpected exception: " + ex.getMessage()); - } - assertTrue(fixture_.keyChain_.getPib().getIdentities_().getIdentities_().containsKey - (testName)); - } + fail("Unexpected exception: " + ex.getMessage()); + } + assertTrue(fixture_.keyChain_.getPib().getIdentities_().getIdentities_().containsKey + (testName)); + } @Test public void