Elliptic Curve-based ElGamal Key Agreement Scheme (ECKA-EG)
EC-ElGamal Key Pair Generation
edgetk -pkey keygen -algorithm ec-elgamal -curve bls12381g2 -prv "Private.pem" -pass nil -pub "Public.pem" 2>&1
ElGamal key pair generated successfully:
Private Key saved to: albanese.atwebpages.com/directrix/Private.pem
Public Key saved to: albanese.atwebpages.com/directrix/Public.pem
Fingerprint: 3NiCTfpMTCafZDt6i6Zhex1qKXmh5AFrwhGoFsoCF2M=
EC-ElGamal (381-bit)
+-----------------+
| o==X@^^^^^^^|
| =.XE^^^^^^|
| . .oX+=^^^^|
| . .@ o+oO*|
| ..S * ..|
| ..*o . o |
| + + .. .|
| o . . .|
| . |
+-----------------+
Private Key Details
edgetk -pkey text -key "Private.pem"
Private key details:
-----BEGIN EC-ELGAMAL DECRYPTION KEY-----
IE1m7VpJKbcf9udyxL7wsMzRr5oP9q3KPJw3m4ynBXfKCkJMUzEyMzgxRzI=
-----END EC-ELGAMAL DECRYPTION KEY-----
DecryptionKey:
20:4d:66:ed:5a:49:29:b7:1f:f6:e7:72:c4:be:f0:
b0:cc:d1:af:9a:0f:f6:ad:ca:3c:9c:37:9b:8c:a7:
05:77:ca:0a:42:4c:53:31:32:33:38:31:47:32
EncryptionKey:
60:8d:a7:e7:98:11:cc:02:13:14:b7:b4:b8:6b:ff:
48:a8:39:27:9e:59:e5:31:f8:29:86:b4:04:2b:d0:
32:c8:53:b8:ea:7a:39:ba:ce:50:91:87:ea:f2:5d:
34:90:c7:0f:09:d5:e6:7e:88:01:0c:34:30:3c:a8:
93:f1:c9:28:1b:ad:35:0b:c8:31:24:9c:88:d3:8d:
60:93:a0:50:44:4a:28:13:1c:ba:48:34:b7:37:5e:
f5:61:95:87:b6:14:8d:0a:42:4c:53:31:32:33:38:
31:47:32
Curve: BLS12381G2
Public Key Details
edgetk -pkey text -key "Public.pem"
Public key details:
-----BEGIN EC-ELGAMAL ENCRYPTION KEY-----
YI2n55gRzAITFLe0uGv/SKg5J55Z5TH4KYa0BCvQMshTuOp6ObrOUJGH6vJdNJDH
DwnV5n6IAQw0MDyok/HJKButNQvIMSSciNONYJOgUERKKBMcukg0tzde9WGVh7YU
jQpCTFMxMjM4MUcy
-----END EC-ELGAMAL ENCRYPTION KEY-----
EncryptionKey:
60:8d:a7:e7:98:11:cc:02:13:14:b7:b4:b8:6b:ff:
48:a8:39:27:9e:59:e5:31:f8:29:86:b4:04:2b:d0:
32:c8:53:b8:ea:7a:39:ba:ce:50:91:87:ea:f2:5d:
34:90:c7:0f:09:d5:e6:7e:88:01:0c:34:30:3c:a8:
93:f1:c9:28:1b:ad:35:0b:c8:31:24:9c:88:d3:8d:
60:93:a0:50:44:4a:28:13:1c:ba:48:34:b7:37:5e:
f5:61:95:87:b6:14:8d:0a:42:4c:53:31:32:33:38:
31:47:32
Curve: BLS12381G2
Shared Key Negotiation
edgetk -pkey wrapkey -algorithm ec-elgamal -key "Public.pem" -bits 256
Ciphertext (Wrapped key) generated:
Cipher= 308201250481c010e7f55d7b97feabebea3970f68d7ab11d060693997728cf78b4185b080e70f26db908333977dc5ce10299d58644e6270f9c97df814b2082f9241e96a3cb72e3386dc4b551c00abfaa0b6632ad79e1be92b9c455d0c4ea7cbd61088296386a6506a522fd7913d61f22333ea77fcb3e779654cb43d03bbdea3adceeb2c2f5202cb42b576a8a4f67a390e6e13a27a10c2d15626e085fab89cff14f283a2f33160b26087b7b83c703581be6b17de02d6be9978cb4d2313019e0857c793e8fc6f6830460856ff0df940066c57bc185ab763f9f64c394611cbd3c45b570168b8de92d31f251cebdd8f00ffe3149c84f327a4e956417b63abee6d7c0a3ee4f853848479207d346e05b4530ecc932258c62d715c6a3d48ad175aaaa66ad2bee0e34644d065f
Shared= f356f9dbe0f28faef88b704208b80bc6556470b379cedd89aedf1e099c17784f
Unwrapping the Ciphertext
edgetk -pkey unwrapkey -algorithm ec-elgamal -key "Private.pem" -cipher 308201250481c010e7f55d7b97feabebea3970f68d7ab11d060693997728cf78b4185b080e70f26db908333977dc5ce10299d58644e6270f9c97df814b2082f9241e96a3cb72e3386dc4b551c00abfaa0b6632ad79e1be92b9c455d0c4ea7cbd61088296386a6506a522fd7913d61f22333ea77fcb3e779654cb43d03bbdea3adceeb2c2f5202cb42b576a8a4f67a390e6e13a27a10c2d15626e085fab89cff14f283a2f33160b26087b7b83c703581be6b17de02d6be9978cb4d2313019e0857c793e8fc6f6830460856ff0df940066c57bc185ab763f9f64c394611cbd3c45b570168b8de92d31f251cebdd8f00ffe3149c84f327a4e956417b63abee6d7c0a3ee4f853848479207d346e05b4530ecc932258c62d715c6a3d48ad175aaaa66ad2bee0e34644d065f
Shared key decrypted successfully:
Shared= f356f9dbe0f28faef88b704208b80bc6556470b379cedd89aedf1e099c17784f