Classic ASP Requires Chilkat v11.0.0+
Classic ASP
Generate an ECC Key (Public and Private)
See more ECC Examples
Demonstrates how to generate an ECC key and save both public and private parts.Chilkat Classic ASP Downloads
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0
' 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 = Server.CreateObject("Chilkat.Prng")
entropy = fortuna.GetEntropy(32,"base64")
success = fortuna.AddEntropy(entropy,"base64")
set ecc = Server.CreateObject("Chilkat.Ecc")
' Generate a random ECC private key on the secp256r1 curve.
' Chilkat also supports other curves, such as secp384r1, secp521r1, and secp256k1.
set privKey = Server.CreateObject("Chilkat.PrivateKey")
success = ecc.GenKey("secp256r1",fortuna,privKey)
If (success = 0) Then
Response.Write "<pre>" & Server.HTMLEncode( ecc.LastErrorText) & "</pre>"
Response.End
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
Response.Write "<pre>" & Server.HTMLEncode( privKey.LastErrorText) & "</pre>"
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.)
set pubKey = Server.CreateObject("Chilkat.PublicKey")
success = privKey.ToPublicKey(pubKey)
' 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-----
'
Response.Write "<pre>" & Server.HTMLEncode( "finished.") & "</pre>"
%>
</body>
</html>