EDGE Toolkit Technical Guideline

ECC (Elliptic Curve Cryptography)

Participant 1 (ECDSA Key Pair Generation)

edgetk -pkey keygen -algorithm ec -curve secp256r1 -prv "Private1.pem" -pass nil -pub "Public1.pem"
Participant 1's ECDSA key pair generated successfully:
Private key saved to: albanese.atwebpages.com/directrix/Private1.pem
Public key saved to: albanese.atwebpages.com/directrix/Public1.pem
Fingerprint: 5Zfq+MMO8b034WTOtdUKltqQV59X3at97uklVM70aj0=
ECDSA (256-bit)
+-----------------+
|    +OX/^^^^^^^^^|
|   ..++E@%%^O^^^^|
|    ..+oo*OO&BO^^|
|     o.. % o@oO&+|
|      . S Bo **o.|
|       o *  o. o |
|        *   . .  |
|       . = . .   |
|          .      |
+-----------------+

Participant 2 (ECDSA Key Pair Generation)

edgetk -pkey keygen -algorithm ec -curve secp256r1 -prv "Private2.pem" -pass nil -pub "Public2.pem"
Participant 2's ECDSA key pair generated successfully:
Private key saved to: albanese.atwebpages.com/directrix/Private2.pem
Public key saved to: albanese.atwebpages.com/directrix/Public2.pem
Fingerprint: QVDxfpADPpzm13jTjtZhmC8rwh4f18e89w5WDLZvydw=
ECDSA (256-bit)
+-----------------+
|    +OX^^^^^^^^^^|
|   ..++E/B^^/^^^^|
|    ..+oo&+&/@^#^|
|     o..oOB %OB/+|
|      . S *..Bo*o|
|       . *  o +..|
|               . |
|                 |
|                 |
+-----------------+

Participant 1 Private Key Details

edgetk -pkey text -key "Private1.pem"
Participant 1's Private key details:
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEINOoxlgHjTHD4JRu5cN12bjw2mggS2Ct+4eLBOkIjCTjoAoGCCqGSM49
AwEHoUQDQgAEdWZzUL2t3UsOPoGRneLCCFwqj/i+63T3NDafqxn651G3ptKecbqN
vrbqVf8M0SMmJ3PTrKKWxh/W0aEmZd0Kvw==
-----END EC PRIVATE KEY-----
Private-Key: (256-bit)
priv:
    d3:a8:c6:58:07:8d:31:c3:e0:94:6e:e5:c3:75:d9:
    b8:f0:da:68:20:4b:60:ad:fb:87:8b:04:e9:08:8c:
    24:e3
pub:
    04:75:66:73:50:bd:ad:dd:4b:0e:3e:81:91:9d:e2:
    c2:08:5c:2a:8f:f8:be:eb:74:f7:34:36:9f:ab:19:
    fa:e7:51:b7:a6:d2:9e:71:ba:8d:be:b6:ea:55:ff:
    0c:d1:23:26:27:73:d3:ac:a2:96:c6:1f:d6:d1:a1:
    26:65:dd:0a:bf
Curve: P-256

KeyID: 9c475aa167e8e57d656b61ee254911ebae34823c

Participant 1 Public Key Details

edgetk -pkey text -key "Public1.pem"
Participant 1's Public key details:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdWZzUL2t3UsOPoGRneLCCFwqj/i+
63T3NDafqxn651G3ptKecbqNvrbqVf8M0SMmJ3PTrKKWxh/W0aEmZd0Kvw==
-----END PUBLIC KEY-----
Public-Key: (256-bit)
pub.X:
    75:66:73:50:bd:ad:dd:4b:0e:3e:81:91:9d:e2:c2:
    08:5c:2a:8f:f8:be:eb:74:f7:34:36:9f:ab:19:fa:
    e7:51
pub.Y:
    b7:a6:d2:9e:71:ba:8d:be:b6:ea:55:ff:0c:d1:23:
    26:27:73:d3:ac:a2:96:c6:1f:d6:d1:a1:26:65:dd:
    0a:bf
pub:
    04:75:66:73:50:bd:ad:dd:4b:0e:3e:81:91:9d:e2:
    c2:08:5c:2a:8f:f8:be:eb:74:f7:34:36:9f:ab:19:
    fa:e7:51:b7:a6:d2:9e:71:ba:8d:be:b6:ea:55:ff:
    0c:d1:23:26:27:73:d3:ac:a2:96:c6:1f:d6:d1:a1:
    26:65:dd:0a:bf
Curve: P-256

Participant 2 Private Key Details

edgetk -pkey text -key "Private2.pem"
Participant 2's Private key details:
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEINb4wvn/jkYIdoN6eDlyNcaVpDPgYinQMva5M3tO+pK2oAoGCCqGSM49
AwEHoUQDQgAEopXyYwu/ZFNQj1gvK5AgJvyHXUhoqUj57Pg9bSl2qhDbaG0+6cpK
6tniudSa6/loKiHJgmm2uKqgL8TUKT202w==
-----END EC PRIVATE KEY-----
Private-Key: (256-bit)
priv:
    d6:f8:c2:f9:ff:8e:46:08:76:83:7a:78:39:72:35:
    c6:95:a4:33:e0:62:29:d0:32:f6:b9:33:7b:4e:fa:
    92:b6
pub:
    04:a2:95:f2:63:0b:bf:64:53:50:8f:58:2f:2b:90:
    20:26:fc:87:5d:48:68:a9:48:f9:ec:f8:3d:6d:29:
    76:aa:10:db:68:6d:3e:e9:ca:4a:ea:d9:e2:b9:d4:
    9a:eb:f9:68:2a:21:c9:82:69:b6:b8:aa:a0:2f:c4:
    d4:29:3d:b4:db
Curve: P-256

KeyID: 356f8650113734171b12d2c51b5621cdbdfb9014

Participant 2 Public Key Details

edgetk -pkey text -key "Public2.pem"
Participant 2's Public key details:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEopXyYwu/ZFNQj1gvK5AgJvyHXUho
qUj57Pg9bSl2qhDbaG0+6cpK6tniudSa6/loKiHJgmm2uKqgL8TUKT202w==
-----END PUBLIC KEY-----
Public-Key: (256-bit)
pub.X:
    a2:95:f2:63:0b:bf:64:53:50:8f:58:2f:2b:90:20:
    26:fc:87:5d:48:68:a9:48:f9:ec:f8:3d:6d:29:76:
    aa:10
pub.Y:
    db:68:6d:3e:e9:ca:4a:ea:d9:e2:b9:d4:9a:eb:f9:
    68:2a:21:c9:82:69:b6:b8:aa:a0:2f:c4:d4:29:3d:
    b4:db
pub:
    04:a2:95:f2:63:0b:bf:64:53:50:8f:58:2f:2b:90:
    20:26:fc:87:5d:48:68:a9:48:f9:ec:f8:3d:6d:29:
    76:aa:10:db:68:6d:3e:e9:ca:4a:ea:d9:e2:b9:d4:
    9a:eb:f9:68:2a:21:c9:82:69:b6:b8:aa:a0:2f:c4:
    d4:29:3d:b4:db
Curve: P-256

Digital Signature Generation (ECDSA)

edgetk -pkey sign -algorithm ec -md sha256 -key "Private1.pem" "test.txt" > sign.txt
Digital signature generated successfully:
3045022100dd1e1a3deb25b549720ace5d4c8f8b99e8df60a263a7f7c8ead6aff3c7d29f05022067ee261e4a1455356bdd1d74ea4d1d0f70e62c8469249ea0a257a55899b4f724

Digital Signature Verification (ECDSA)

edgetk -pkey verify -algorithm ec -md sha256 -key "Public1.pem" -signature "3045022100dd1e1a3deb25b549720ace5d4c8f8b99e8df60a263a7f7c8ead6aff3c7d29f05022067ee261e4a1455356bdd1d74ea4d1d0f70e62c8469249ea0a257a55899b4f724" "test.txt"
Signature verified successfully:
Verified: true

Participant 1 ECDH Key Exchange

edgetk -pkey derive -algorithm ec -key "Private1.pem" -pub "Public2.pem"
Participant 1's ECDH shared secret generated successfully:
39e038d92f44dac70d875ac0ff09c05597958ff45a540f9068ca517ec60f1cf5

Participant 2 ECDH Key Exchange

edgetk -pkey derive -algorithm ec -key "Private2.pem" -pub "Public1.pem"
Participant 2's ECDH shared secret generated successfully:
39e038d92f44dac70d875ac0ff09c05597958ff45a540f9068ca517ec60f1cf5