(VBScript) Generate an ECC Key (Public and Private)

Chilkat ActiveX Downloads

Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)
' This example requires the Chilkat API to have been previously unlocked.' See Global Unlock Sample for sample code.' Create a Fortuna PRNG and seed it with system entropy.' This will be our source of random data for generating the ECC private key.set fortuna = CreateObject("Chilkat_9_5_0.Prng")
entropy = fortuna.GetEntropy(32,"base64")
success = fortuna.AddEntropy(entropy,"base64")
set ecc = CreateObject("Chilkat_9_5_0.Ecc")
' Generate a random ECC private key on the secp256r1 curve.' Chilkat also supports other curves, such as secp384r1, secp521r1, and secp256k1.' privKey is a Chilkat_9_5_0.PrivateKey
Set privKey = ecc.GenEccKey("secp256r1",fortuna)
If (ecc.LastMethodSuccess = 0) Then
outFile.WriteLine(ecc.LastErrorText)
WScript.Quit
End If' Save the private key to PKCS8 encrypted PEM' (The private key can be saved in a variety of different formats. See the online reference documentation.)
success = privKey.SavePkcs8EncryptedPemFile("pemPassword","qa_output/eccPrivKey.pem")
If (success <> 1) Then
outFile.WriteLine(privKey.LastErrorText)
End If' The private key PEM looks like this:' -----BEGIN ENCRYPTED PRIVATE KEY-----' MIHFMEAGCSqGSIb3DQEFDTAzMBsGCSqGSIb3DQEFDDAOBAhUmn+1/lwCIwICCAAw' FAYIKoZIhvcNAwcECPlyNXAXZO+oBIGAIvxvTENXJWbrCwSjh0QNxLecBotUpfI5' auOonLmwVMyt1ahMmNyVo/D+pnKQSE41Fg8fApM0DCDKZUOVCCcK1qirIsMPQkGp' klPJbvrQRVYgzBtU31uNB5y2wqhrIeepal1HXBvbkUK0nfJMbcdz/XAEIQu2HhTD' t6LMScPQld4=' -----END ENCRYPTED PRIVATE KEY-----' Now get the public key part from the private key.' (A public key is actually a subset of the private key.)' pubKey is a Chilkat_9_5_0.PublicKey
Set pubKey = privKey.GetPublicKey()
' Save the public key to a PEM file.' (The public key can be saved in a variety of different formats. See the online reference documentation.)' For ECC keys, the 1st argument (bPreferPkcs1) is ignored and unused.
bPreferPkcs1 = 0
success = pubKey.SavePemFile(bPreferPkcs1,"qa_output/eccPubKey.pem")
' The public key PEM looks like this:' -----BEGIN PUBLIC KEY-----' MIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAA' AAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA////' ///////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSd' NgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5' RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA' //////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABGdOH8uM6SfX3mdV+TR0mWp2' gfVRPlxWxwhOiowuNByBxmQz7ZR4CJY1XcN2zkUo5pzW73ZhGwgd2XTOvqPqG40=' -----END PUBLIC KEY-----'
outFile.WriteLine("finished.")
outFile.Close