0

I have a JCEKS file that contains a secret entry. I'm supposed to use this secret entry from the key store and use that to perform an AES encryption using Python.

I was able to load the KeyStore file in Python using the pyjks library in Python.

I'm able to view my secret entries by trying the following -

import jks

key_store = jks.KeyStore.load("path/to/keystore", "keystorepass")

key_store.entries

which return the following value

{
    'mysecretentry': <jks.jks.SecretKeyEntry at 0x7fd676e65130>
}

But I'm not sure how to access this key so that I can use this as my key in AES encryption

from Crypto.Cipher import AES

cipher = AES.new(mysecretentry, AES.MODE_CBC, iv)
deltaforce
  • 524
  • 1
  • 8
  • 25
  • There is a simple example: "import jks" "keystore = jks.KeyStore.load('keystore.jks', 'passphrase')" "print(keystore.secret_keys)" - the printout is the key (as it should be random it is not really "printable" – Michael Fehr Dec 08 '21 at 08:57

1 Answers1

0

We can get the secure key stored in the Keystore by simply

secure_key = key_store.entries['mysecretentry'].__getattr__('key')

This would return something like -

b"^\x88H\x98\xda(\x04qQ\xd0\xe5o\x8d\xc6)'s`=\rj\xab\xbd\xd6*\x11\xefr\x1d\x15B\xd8"

The above secure_key can be used for AES Encryption

deltaforce
  • 524
  • 1
  • 8
  • 25