Mega Code Archive

 
Categories / Java / Security
 

Wrap And Unwrap Key

import java.security.Key; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; public class MainClass {   public static void main(String[] args) throws Exception {     Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());         KeyGenerator generator = KeyGenerator.getInstance("AES", "BC");     generator.init(128);     Key keyToBeWrapped = generator.generateKey();     System.out.println("input    : " + new String(keyToBeWrapped.getEncoded()));     // create a wrapper and do the wrapping     Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding", "BC");     KeyGenerator keyGen = KeyGenerator.getInstance("AES", "BC");     keyGen.init(256);     Key wrapKey = keyGen.generateKey();     cipher.init(Cipher.ENCRYPT_MODE, wrapKey);     byte[] wrappedKey = cipher.doFinal(keyToBeWrapped.getEncoded());     System.out.println("wrapped  : " + new String(wrappedKey));     // unwrap the wrapped key     cipher.init(Cipher.DECRYPT_MODE, wrapKey);     Key key = new SecretKeySpec(cipher.doFinal(wrappedKey), "AES");     System.out.println("unwrapped: " + new String(key.getEncoded()));   } }                                    WrapAndUnwrapKey.zip( 1,198 k)