Ik heb het volgende programma dat een keypair genereert, de private key in een bestand stopt en er weer uithaalt:
Hierop krijg ik de exception:
Deze exception krijg ik niet als ik hetzelfde met een public key doe. Wat doe ik fout?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| KeyPairGenerator keygen = KeyPairGenerator.getInstance("DSA");
keygen.initialize(512);
KeyPair keypair = keygen.generateKeyPair();
FileOutputStream out = new FileOutputStream("mykey");
out.write(keypair.getPrivate().getEncoded());
out.close();
FileInputStream in = new FileInputStream("mykey");
byte[] encodedKey = new byte[in.available()];
in.read(encodedKey);
in.close();
X509EncodedKeySpec privateKey = new X509EncodedKeySpec(encodedKey);
KeyFactory kf = KeyFactory.getInstance("DSA");
PrivateKey privk = kf.generatePrivate(privateKey); |
Hierop krijg ik de exception:
code:
1
2
3
4
5
| java.security.spec.InvalidKeySpecException: Inappropriate key specification
at sun.security.provider.DSAKeyFactory.engineGeneratePrivate(Unknown Source)
at java.security.KeyFactory.generatePrivate(Unknown Source)
at Test.main(Test.java:43)
Exception in thread "main" |
Deze exception krijg ik niet als ik hetzelfde met een public key doe. Wat doe ik fout?