Search in sources :

Example 66 with Key

use of java.security.Key in project nhin-d by DirectProject.

the class KeyPrinter method getColumnValue.

@Override
protected String getColumnValue(ReportColumn column, KeyModel model) {
    try {
        if (column.getHeader().equals(KEY_TYPE_COL)) {
            String type = "";
            final Key key = model.getKey();
            if (key instanceof javax.crypto.SecretKey)
                type = "Secret Key: " + key.getAlgorithm();
            else if (key instanceof java.security.PublicKey)
                type = "Public Key: " + key.getAlgorithm();
            else if (key instanceof java.security.PrivateKey)
                type = "Key Pair: " + key.getAlgorithm();
            else
                type = key.getClass().toString();
            return type;
        } else if (column.getHeader().equals(KEY_TEXT_COL)) {
            return new String(model.getKeyText());
        } else if (column.getHeader().equals(KEY_TB_COL)) {
            byte[] data = null;
            final Key key = model.getKey();
            if (key instanceof javax.crypto.SecretKey)
                data = ((javax.crypto.SecretKey) key).getEncoded();
            else if (key instanceof java.security.PublicKey)
                data = ((java.security.PublicKey) key).getEncoded();
            else if (key instanceof java.security.PrivateKey)
                data = ((java.security.PrivateKey) key).getEncoded();
            if (data == null)
                return "NA";
            final MessageDigest sha = MessageDigest.getInstance("SHA-1");
            byte[] hash = sha.digest(data);
            return Hex.encodeHexString(hash);
        } else
            return super.getColumnValue(column, model);
    } catch (Exception e) {
        return "ERROR: " + e.getMessage();
    }
}
Also used : MessageDigest(java.security.MessageDigest) Key(java.security.Key)

Example 67 with Key

use of java.security.Key in project nhin-d by DirectProject.

the class AbstractPKCS11TokenKeyStoreProtectionManager method setPrivateKeyProtectionKeyAsString.

/**
	 * {@inheritDoc}
	 */
@Override
public void setPrivateKeyProtectionKeyAsString(String key) throws CryptoException {
    try {
        final Key keySpec = new SecretKeySpec(key.getBytes(), "");
        safeSetKeyWithRetry(privateKeyPassPhraseAlias, keySpec);
    } catch (CryptoException e) {
        throw e;
    } catch (Exception e) {
        throw new CryptoException("Error storing key store protection into PKCS11 token", e);
    }
}
Also used : SecretKeySpec(javax.crypto.spec.SecretKeySpec) CryptoException(org.nhindirect.common.crypto.exceptions.CryptoException) Key(java.security.Key) SecretKey(javax.crypto.SecretKey) CryptoException(org.nhindirect.common.crypto.exceptions.CryptoException)

Example 68 with Key

use of java.security.Key in project nhin-d by DirectProject.

the class AbstractPKCS11TokenKeyStoreProtectionManager method setKeyStoreProtectionKeyAsBytes.

/**
	 * {@inheritDoc}
	 */
@Override
public void setKeyStoreProtectionKeyAsBytes(byte[] key) throws CryptoException {
    try {
        final Key keySpec = new SecretKeySpec(key, "");
        safeSetKeyWithRetry(keyStorePassPhraseAlias, keySpec);
    } catch (CryptoException e) {
        throw e;
    } catch (Exception e) {
        throw new CryptoException("Error storing key store protection into PKCS11 token", e);
    }
}
Also used : SecretKeySpec(javax.crypto.spec.SecretKeySpec) CryptoException(org.nhindirect.common.crypto.exceptions.CryptoException) Key(java.security.Key) SecretKey(javax.crypto.SecretKey) CryptoException(org.nhindirect.common.crypto.exceptions.CryptoException)

Example 69 with Key

use of java.security.Key in project nhin-d by DirectProject.

the class StaticPKCS11TokenKeyStoreProtectionManagerTest method testGetAllKeys_secureRandomGenKeys.

@Test
public void testGetAllKeys_secureRandomGenKeys() throws Exception {
    final String pkcs11ProvName = TestUtils.setupSafeNetToken();
    if (!StringUtils.isEmpty(pkcs11ProvName)) {
        PKCS11Credential cred = new BootstrappedPKCS11Credential("1Kingpuff");
        final StaticPKCS11TokenKeyStoreProtectionManager mgr = new StaticPKCS11TokenKeyStoreProtectionManager(cred, "KeyStoreProtKey", "PrivKeyProtKey");
        // create the keys on the token
        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        // cryptograph. secure random 
        SecureRandom random = new SecureRandom();
        keyGen.init(random);
        final SecretKey keyStoreSecretKey = keyGen.generateKey();
        mgr.clearKeyStoreProtectionKey();
        mgr.setKeyStoreProtectionKey(keyStoreSecretKey);
        keyGen = KeyGenerator.getInstance("AES");
        // cryptograph. secure random 
        random = new SecureRandom();
        keyGen.init(random);
        final SecretKey privKeySecretKey = keyGen.generateKey();
        mgr.clearPrivateKeyProtectionKey();
        mgr.setPrivateKeyProtectionKey(privKeySecretKey);
        final Map<String, Key> keys = mgr.getAllKeys();
        assertEquals(2, keys.size());
        Iterator<Entry<String, Key>> entryIter = keys.entrySet().iterator();
        Key key = entryIter.next().getValue();
        assertTrue(Arrays.equals(privKeySecretKey.getEncoded(), key.getEncoded()));
        key = entryIter.next().getValue();
        assertTrue(Arrays.equals(keyStoreSecretKey.getEncoded(), key.getEncoded()));
    }
}
Also used : PKCS11Credential(org.nhindirect.common.crypto.PKCS11Credential) SecretKey(javax.crypto.SecretKey) Entry(java.util.Map.Entry) SecureRandom(java.security.SecureRandom) KeyGenerator(javax.crypto.KeyGenerator) Key(java.security.Key) SecretKey(javax.crypto.SecretKey) Test(org.junit.Test)

Example 70 with Key

use of java.security.Key in project nhin-d by DirectProject.

the class BootstrappedKeyStoreProtectionManagerTest method testGetAllKeys.

@Test
public void testGetAllKeys() throws Exception {
    BootstrappedKeyStoreProtectionManager mgr = new BootstrappedKeyStoreProtectionManager();
    mgr.setKeyStoreProtectionKey("1234");
    mgr.setPrivateKeyProtectionKey("5678");
    final Map<String, Key> keys = mgr.getAllKeys();
    assertEquals(2, keys.size());
    Iterator<Entry<String, Key>> entryIter = keys.entrySet().iterator();
    Key key = entryIter.next().getValue();
    assertTrue(Arrays.equals("5678".getBytes(), key.getEncoded()));
    key = entryIter.next().getValue();
    assertTrue(Arrays.equals("1234".getBytes(), key.getEncoded()));
}
Also used : Entry(java.util.Map.Entry) Key(java.security.Key) Test(org.junit.Test)

Aggregations

Key (java.security.Key)302 PrivateKey (java.security.PrivateKey)112 SecretKey (javax.crypto.SecretKey)83 KeyStore (java.security.KeyStore)64 PublicKey (java.security.PublicKey)62 Cipher (javax.crypto.Cipher)60 X509Certificate (java.security.cert.X509Certificate)57 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)50 Test (org.junit.Test)44 IOException (java.io.IOException)42 ByteArrayInputStream (java.io.ByteArrayInputStream)38 Certificate (java.security.cert.Certificate)36 SecretKeySpec (javax.crypto.spec.SecretKeySpec)36 KeyFactory (java.security.KeyFactory)35 InvalidKeyException (java.security.InvalidKeyException)32 KeyGenerator (javax.crypto.KeyGenerator)32 PKCS8EncodedKeySpec (java.security.spec.PKCS8EncodedKeySpec)26 KeyStoreException (java.security.KeyStoreException)22 SecureRandom (java.security.SecureRandom)21 IvParameterSpec (javax.crypto.spec.IvParameterSpec)21