Python wrapper to use IBM EP11 native library to invoke cryptographic operations
Secret keys are created as blob cryptograms
Set EP11OGIN blob to use session key
See sample test.py
python test.py
Initializing adapter 03 and domain 19
Mechanisms: CKM_RSA_PKCS CKM_RSA_PKCS_OAEP CKM_RSA_PKCS_KEY_PAIR_GEN CKM_RSA_X9_31_KEY_PAIR_GEN CKM_RSA_PKCS_PSS CKM_SHA1_RSA_X9_31 CKM_SHA1_RSA_PKCS CKM_SHA1_RSA_PKCS_PSS CKM_SHA256_RSA_PKCS CKM_SHA256_RSA_PKCS_PSS CKM_SHA224_RSA_PKCS CKM_SHA224_RSA_PKCS_PSS CKM_SHA384_RSA_PKCS CKM_SHA384_RSA_PKCS_PSS CKM_SHA512_RSA_PKCS CKM_SHA512_RSA_PKCS_PSS CKM_AES_KEY_GEN CKM_AES_ECB CKM_AES_CBC CKM_AES_CBC_PAD CKM_DES2_KEY_GEN CKM_DES3_KEY_GEN CKM_DES3_ECB CKM_DES3_CBC CKM_DES3_CBC_PAD CKM_GENERIC_SECRET_KEY_GEN CKM_SHA256 CKM_SHA256_KEY_DERIVATION CKM_SHA256_HMAC CKM_SHA224 CKM_SHA224_KEY_DERIVATION CKM_SHA224_HMAC CKM_SHA_1 CKM_SHA1_KEY_DERIVATION CKM_SHA_1_HMAC CKM_SHA384 CKM_SHA384_KEY_DERIVATION CKM_SHA384_HMAC CKM_SHA512 CKM_SHA512_KEY_DERIVATION CKM_SHA512_HMAC CKM_SHA512_256 CKM_IBM_SHA512_256 CKM_SHA512_256_HMAC CKM_IBM_SHA512_256_HMAC CKM_SHA512_224 CKM_IBM_SHA512_224 CKM_SHA512_224_HMAC CKM_IBM_SHA512_224_HMAC CKM_EC_KEY_PAIR_GEN CKM_ECDSA CKM_ECDSA_SHA1 CKM_ECDH1_DERIVE CKM_IBM_ECDH1_DERIVE_RAW CKM_IBM_EC_MULTIPLY CKM_DSA_PARAMETER_GEN CKM_DSA_KEY_PAIR_GEN CKM_DSA CKM_DSA_SHA1 CKM_DH_PKCS_PARAMETER_GEN CKM_DH_PKCS_KEY_PAIR_GEN CKM_DH_PKCS_DERIVE CKM_IBM_DH_PKCS_DERIVE_RAW CKM_IBM_DILITHIUM CKM_IBM_KYBER CKM_PBE_SHA1_DES3_EDE_CBC CKM_IBM_SHA3_224 CKM_IBM_SHA3_256 CKM_IBM_SHA3_384 CKM_IBM_SHA3_512 CKM_IBM_SHA3_224_HMAC CKM_IBM_SHA3_256_HMAC CKM_IBM_SHA3_384_HMAC CKM_IBM_SHA3_512_HMAC CKM_IBM_ATTRIBUTEBOUND_WRAP CKM_ECDSA_SHA224 CKM_IBM_ECDSA_SHA224 CKM_ECDSA_SHA256 CKM_IBM_ECDSA_SHA256 CKM_ECDSA_SHA384 CKM_IBM_ECDSA_SHA384 CKM_ECDSA_SHA512 CKM_IBM_ECDSA_SHA512 CKM_IBM_ECDSA_OTHER CKM_IBM_EC_X25519 CKM_IBM_EC_X448 CKM_IBM_ED25519_SHA512 CKM_IBM_ED448_SHA3 CKM_IBM_EAC CKM_IBM_RETAINKEY CKM_IBM_CMAC CKM_AES_CMAC CKM_DES3_CMAC CKM_IBM_CPACF_WRAP CKM_IBM_BTC_DERIVE CKM_IBM_EC_AGGREGATE CKM_IBM_ETH_DERIVE
87aaf3b9e65b3ca920fa760223d28d234b0d14ba45eb5af235fed4f1a44265a0
Generated key: 000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a50000000000408d2500000000000000011234112963a5d4165a935f31ec5f4d91205a6268850ada6885044252b5eb44147848042e129ab62bc057b041144213c7b5a5b80d3cd274c6f2aae1d5997ac8f0067b0158a453c010d5b3392953405079094981c59a16da04f1fc7e655e32f11d886f2b34ce92c8a94345113e5028416b338b92cbee28e33276d1a4205009af4cfcaccf12f188e47ac99e9958d6003e0002051048d8ecb4ec8ad3161fea8eaceff1bc74d609e8b1af41165c472ae2453cd52defd5592d6bd107af598ca1cf3dc7
Reenciphered key blob: 0000000000000000000000000000000000000000000000000000000000000000bac48a17a88b917d3a5affbcab5ec03f0000000000408d2500000000000000011234fb1a6e905af4b7afd8c1bebaca04144a5503d50c20436bb158226d7160727f56bdce9317272d3f047ec7332a15a318ff0ec3a32f462f4d145ffd6f1ccc1de3e1dda5596c96ce3ddbbd75a6a62ebe6e247625ff2d25183b6b8a1a345a59a516eaee31252937694e8b820933524051ce459dcd8b8d4ed25b632787774485792bd6c1a515f1c4a804f2c0a4a9c699b340db022401a0fdbc6bba800a0ab11ac90a6cec128a4b5b1282a2d707654f220f51fee01b4cfde3121e28c072cedf6bc0
Cipher:
d7d1da6ef349d423e72e8204cdaa9f86
Plaintext: Hello World!
Generated key: 000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a50000000000408d2500000000000000011234112963a5d4165a935f31ec5f4d91205a6268850ada6885044252b5eb44147848042e129ab62bc057b041144213c7b5a5b80d3cd274c6f2aae1d5997ac8f0067b0158a453c010d5b3392953405079094981c59a16da04f1fc7e655e32f11d886f2b34ce92c8a94345113e5028416b338b92cbee28e33276d1a4205009af4cfcaccf12f188e47ac99e9958d6003e0002051048d8ecb4ec8ad3161fea8eaceff1bc74d609e8b1af41165c472ae2453cd52defd5592d6bd107af598ca1cf3dc7
ReCipher:
70a35894f322b32d20e730fc04d9b523
Plaintext: Hello World!
Generated Private key: 000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a50000000000400125000000000000000112346796a2a87e9e4014b74b229779c706df36264256214b72ff5508c3622f8e131a9165316a9cc31c987e91db6bcd189859440fee3cfb970219228e61080964fdd260ecdac1c565d2c137528f34b5e5be4f5d9dd05c1a212fde3ba17d9c6943723dd33c25c8ca26a20c520e6effbb7b6f4ff5761309f4ec01f4cf920d1765a982c6684918db3e549d62b975a7e5c4ec839fc237b45e40e6610c07ea010c3c82e414353c6e6ed0b39d46fad64c8947a00680564ad373819971cd8a3105f344964904c823c1f163ccba43fdaa8f14f55bd043dbe2daaae787bfe8e5a30ca7f8649177ab956b6b2311d00fdeffc366a72dca2d3c4d59b66ea62d2a7fd5faeecfbbb981d8dbccda963d96e4ca4b310d767d72bdb76c792548391e120796a93232b5788ee250cc3145eb39bc3c74b1dc5ae17eb5bb7bbbace8923cb017654244317cd8f975b8c58ba82b30e66351bba1cf02e4e1737a1b1374ff0cbb29f9d47ab54f97129534f0353e97e17d08cc872297876a0bcae5f3f3440722d72046189f35b1f35f267a300ab7e00ef83bf2fa8555e0f8e63932d3f189fab5fd7e49c55ace5829f9d47076ecb433ad60db701e4dadd552d77323e8c5268283915b4db273ce3187f627c32a79b31f4eb37d8c77eb49532824ceb90fea6bd15ec60e006f8e5e187991daff36b8101b0e679de8883a7430f0d9f816d21e8743eaa2b34c5acdb492
Generated Public key: 3056301006072a8648ce3d020106052b8104000a034200043da8fb556d891f034149ffc920c7f6c46fa12403c0f6196c79e165b1e3cf1f00a568b61a4dc4c364b8a1982f285aed60e609da0f13051caf638fc0b66c12460a041050d94c73fbf3137d2239f132191026a5042000000000000000000000000000000000000000000000000000000000000000000408eaacc852fb147dbb0408000000000000000104141001000000008024000080248001000a000000010420043b5c7546b5645a7a0d19bb69b9c2712a09127ea5e9c81b75e6b8ba527db1cc
Signature: 68d6bc62d8a9d970b0e11d997c07803964bc1e10ba69543152c35637b4651b128125d75dc888916b1e724f3d352b2b4d85cc184828c4cf649723fe51197e3761
Signature is valid!
Verification failed: Error code: 192