The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > java.security  [30 examples] > Public and Private Keys  [5 examples]

e199. Getting the Bytes of a Generated Key Pair

    try {
        String algorithm = "DSA";  // or RSA, DH, etc.
    
        // Generate a 1024-bit Digital Signature Algorithm (DSA) key pair
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algorithm);
        keyGen.initialize(1024);
        KeyPair keypair = keyGen.genKeyPair();
        PrivateKey privateKey = keypair.getPrivate();
        PublicKey publicKey = keypair.getPublic();
    
        // Get the bytes of the public and private keys
        byte[] privateKeyBytes = privateKey.getEncoded();
        byte[] publicKeyBytes = publicKey.getEncoded();
    
        // Get the formats of the encoded bytes
        String format = privateKey.getFormat();         // PKCS#8
        format = publicKey.getFormat();                 // X.509
    
    
        // The bytes can be converted back to public and private key objects
        KeyFactory keyFactory = KeyFactory.getInstance(algorithm);
        EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKeyBytes);
        PrivateKey privateKey2 = keyFactory.generatePrivate(privateKeySpec);
    
        EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKeyBytes);
        PublicKey publicKey2 = keyFactory.generatePublic(publicKeySpec);
    
        // The orginal and new keys are the same
        boolean same = privateKey.equals(privateKey2);  // true
        same = publicKey.equals(publicKey2);            // true
    } catch (InvalidKeySpecException e) {
    } catch (NoSuchAlgorithmException e) {
    }

 Related Examples
e197. Listing All Available Public/Private Key Generators
e198. Generating a Public/Private Key Pair
e200. Getting the Digital Signature Algorithm (DSA) Parameters of a Key Pair
e201. Creating Key Objects from a Set of Digital Signature Algorithm (DSA) Parameters

See also: Key Store    Message Digests    Permissions    Policy Files    Signatures   


© 2002 Addison-Wesley.