Sample code for 30+ languages & platforms
Visual Basic 6.0

Create JCEKS Containing Secret Keys

See more Java KeyStore (JKS) Examples

Demonstrates how to create a JCEKS keystore file containing symmetric secret keys (for AES, Blowfish, HMAC SHA25, ChaCha20, etc.)

This example requires Chilkat v9.5.0.66 or greater.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

' IMPORTANT: This example requires Chilkat v9.5.0.66 or greater.

' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim jceks As New ChilkatJavaKeyStore

' We'll need a pseudo-random number generator (PRNG) to generate symmetric keys.
Dim prng As New ChilkatPrng

' Generate some keys..

' 128-bit AES key (16 bytes)
Dim aesKey As String
aesKey = prng.GenRandom(16,"base64")

' 256-bit Blowfish key (32 bytes)
Dim blowfishKey As String
blowfishKey = prng.GenRandom(32,"base64")

' HMAC SHA256 key
' (An HMAC key can be anything, and any length. We'll use the following string:
Dim hmacKey As String
hmacKey = "This is my HMAC key"

' ChaCha20 256-bit
Dim chachaKey As String
chachaKey = prng.GenRandom(32,"base64")

' Add each secret key to the JCEKS
Dim encoding As String
encoding = "base64"
Dim password As String
password = "secret"
success = jceks.AddSecretKey(aesKey,encoding,"AES","my aes key",password)
success = jceks.AddSecretKey(blowfishKey,encoding,"BLOWFISH","my blowfish key",password)
' For HMAC, we're using the us-ascii bytes for the key..
success = jceks.AddSecretKey(hmacKey,"ascii","HMAC_SHA256","my hmac key",password)
success = jceks.AddSecretKey(chachaKey,encoding,"CHACHA","my chacha20 key",password)

Dim filePassword As String
filePassword = "password"
' Write the JCEKs to a file.
success = jceks.ToFile(filePassword,"qa_output/secretKeys.jceks")
If (success <> 1) Then
    Debug.Print jceks.LastErrorText
    Exit Sub
End If

' We can also emit as a JWK Set..
Dim sbJson As New ChilkatStringBuilder
success = jceks.ToJwkSet("secret",sbJson)
If (success <> 1) Then
    Debug.Print jceks.LastErrorText
    Exit Sub
End If

' Emit the JSON in pretty-printed (indented) form:
Dim json As New ChilkatJsonObject
success = json.LoadSb(sbJson)
json.EmitCompact = 0
Debug.Print json.Emit()

' Output is:

' { 
'   "keys": [
'     { 
'       "kty": "oct",
'       "alg": "AES",
'       "k": "vHekQQB0Gc1NvppapUTW2g",
'       "kid": "my aes key"
'     },
'     { 
'       "kty": "oct",
'       "alg": "BLOWFISH",
'       "k": "qHsdXaJsXicVCZbK8l8hJQpYOa0GkiO9gsRK9WLtht8",
'       "kid": "my blowfish key"
'     },
'     { 
'       "kty": "oct",
'       "alg": "HMAC_SHA256",
'       "k": "VGhpcyBpcyBteSBITUFDIGtleQ",
'       "kid": "my hmac key"
'     },
'     { 
'       "kty": "oct",
'       "alg": "CHACHA",
'       "k": "yNv832U43C9BcWvaQAH2_rG-GwfmpgT5JBRllWGQY1o",
'       "kid": "my chacha20 key"
'     }
'   ]
' }
'