These examples are designed to run on IBM LinuxONE or IBM Systems Z with Linux using a GREP11 service with no mTLS authentication. This setup is specifically suited for applications running in a pod or a Docker Compose environment, such as those deployed with the IBM Hyper Protect Runtime. Developers can also use such environment and samples for their ease of installation.
mvn dependency:build-classpath -Dmdep.outputFile=cp.txt
mvn compile
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.GenerateAESKey localhost 9876
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.GetMech localhost 9876
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.GenerateKeyPair
KeyPairGen + Sign + Verify
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.Example1
KeyPairGen + wrap + unwrap as required for EFMK.
public includes the ASN1 + maced
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.Example2
RSA Key Pair Generation
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.GenerateRSAKeyPair
RSA wrap/unwrap of an AES key for EKMF
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.Example3
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.GenerateKeyPair
000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a5000000000040012600000000000000011234c3463e83fe8ab65122dd71707c032825d5228b4299832c5adf302eb447add30d4786323d921633447d9c6436c358568d694458fff11f982ddd7de2a4149f9d3c7362bf6b095b11e539e883a8b3b36a2f08663221f3aced9539e90c0a14a22290f09917b2190a754f3ed7dab468a7b3b93aafbe34e4f76e60015874b919c4d07e59ae7a7727469305449a3f951c560380d27690964d81ee07b3a544298d98520fa8d1eb086d54d989a5cfeaf94b618c9b85d60394cfcb62828a5da9a146fcd8388ddfe5d55b7cd627464e453134fd08c674f06e753db7a182b7691390da9131bdeab673ec448b4c92eb73dcdc265d8e424647faa2fffaea72f2d7f30ca3af8fd1e6499d92058ebea896f63c5a3969b178a9356853885e2d4f4f26b8539ea673098436036836579ea7f18ddea9c416eed44fd2e5457f71a159d140aacc4b18930a81569988d2f81a4c1320a3eb7e28d2861bb5247b54871e8870cb2d580a8be4967d29a21e8186ec215a707d9ea9f65d763c12c437b692e7ca7f9c428570a96a04f53a514ca6fb2ce0ae5062804938653faf58b2ef9e3a5d5bc573b48db8d1964032f8099d3d50f48c532c18b8bbd8e3569a2345e6fa6ad550cc076094b8684e9933c5baa40d7ff375a752c344dd9e4a467c7d97743265a95387391cdd3a20887e27b767f481f4b80374e06d33eb10735a2f3584f06148f7da118a937b6588cd51e9d7a8c96c7e5c348accf27a1bb2f6c6b74a45ef5385827d70ce4e4c121b3cf1c839498a1516d409a5630b37306d
3033300e06072a8648ce3d020106032b6570032100ab11e219714dc7d1179eaf16911bc25d3b2c3842bf286045d11a76adf40abde7041050d94c73fbf3137d2239f132191026a50420000000000000000000000000000000000000000000000000000000000000000004085affcefbc47b2ad10408000000000000000104141001000000008024000080248001000a000000010420457dcb21ef8aa5caaf5e25051a4a9312af50b7c1d798f8037ed6cbee90fb9ac5
000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a5000000000040112600000000000000011234496be3f12242b9798c6592a7aaabe6d6fcfbdea141e93332de2d3f1c7a6898063c376408671f131e58ef057b63ee9d257d28bd295d2add5049d24208d2f83b267e15abe9caac39a375bdab828ee0e3ba143bcc97d5ada334c5d67124ce5e9647efdad8e16fd3c17b517dae52b0b76c1daeb65b816badad9ea61087da3e3310e66c48455616bc8b4a2468781de3ac0c98a075c9fbe5df2790837404bdd991c8ebdeca53fa29dae7574d4528de96a32b70d25f8dab3d9e84b5044e4d2c2c62e85a502d728b258999cea76aeb1fa5ba9cf15818c22afd7b6540da8fec5ff17ff4c5bc0da674bf789a354fd5c539d770900fb1fe3abaa60a880e4108e0fa85a1b430e678dd07efe225c2a64e9e6711114bfe846aab7547195b714d4fca4cb055f624c2a05d381550d51d7185f3d87ab9de0d55d6472884ceffcc63f80b86a5f470297c0e5668f8922b95a378f8d74f3611d5e6b1dfd962d7b6a853b74b812bf70757703e3b3c1f1b476808e04636d0fed97d0c9fde943e5b41e5540619d0c122d23cb79e66370574a68d124f8a3c98fea3daa3c24f0b5218e55f84f95db09498c467efd10fce58cea2bc7776132cb60ff8ebf25976f0cb9f95677a168409b7c885b5863629805c1dd3cfa90d9626ba6bac56384bce07bb25fdd57db129622ebf0e54f863c02b61953b6d44cd4c3c53ed
3056301006072a8648ce3d020106052b8104000a03420004f0818018cc0c3569b4422b524e1298aef20a4079846a51945b3b1491749f3bdd5d7e6e37c9815a68de5324587e2dcad250b7deaa95dadca9b4b11b196084acd3041050d94c73fbf3137d2239f132191026a50420000000000000000000000000000000000000000000000000000000000000000004089a1181762473f8ed0408000000000000000104141001000000008024000080248001000a000000010420d375bd3dc6dd28942ebadb59680422c856aa2e4aa455126538851c21ef226db1
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.Example1
000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a50000000000400126000000000000000112345f35ba93e9e2f9291ade63a174887847d28d2ec96210051289cc5178e7246ba9b70a42a2f026cf91398ddd46429f9ce0fb664da87c6b147f44673834ff5d6da7090b8f5082dbb4afdf1e9d908c6b0edeae8f3cc022002d2186e2af898d37ffcc324ba25f054d2d60c0115f0b64b07202a5ee9716f78e903e3382089c459cfff38b9d1ea28b0fa32225bfce48c7234a31eec3d280bd9a7751dcb07b9bdaa2b108fcead22a30382b0edb1a6c9b395f2085761c005c7f5747ff8e42583a492dc2145b24baeedc498b6c3b90e471c4015971ef02d86b936052fc7876959657b03829ddea4c3b2771f95cc23ab6e2e92e1e153d649a7a342434a624e2ab5bf8fc1213ece69fb1e1fc4d4e5f201cefe9adf80f0072776d8decfec31be6dada463dafd9c0b3a69c8f0be50cb2a2be9a0176df3bd01c42948e128f419e39635095d0479667380097a98fca4d103057bd5032a57b3d7f622208e5c42af3a18c4eecaf5a773f01e56c5adf66452bdca7c4f5dc426c18944c3d2ef3ae530fc53719ee14d79ce2f20f282430022e1475f6713b5088a6c3f80b67a514eeccf5155ab64304a694b912652fba7d485dd2dba263a288529f780ff66fb26f18354427494df439870976dfa3a56a5bcd7e79a14e2b376985fa461812d90fab4c1fcbd757c55fdc228fc8067eff24f598303b669510a89a7fc2a07ca6243abe05a6437ad2f96f4b9418efacaebbca5b4b488382272a54ca140b1d221b231c4fb46e5865adf2fa16a94e9d39d97f039bb8bb0bf5e1a7967a
3033300e06072a8648ce3d020106032b65700321009cbc4090f8cd3ee9c4854448ab00e35cfb2de7feaf8eab38b28e2f679a394cfd041050d94c73fbf3137d2239f132191026a5042000000000000000000000000000000000000000000000000000000000000000000408ce08f372725a8e0e0408000000000000000104141001000000008024000080248001000a00000001042043891cae18dd48dfd2b6417d0a28dd38f9f9f661d3bce78ded2bb30747edf215
Signature (hex): acf0b294631ebf87afb5f9030bc608d6615e4a7987b3dda5229fce33f3def3e5ee1e9d98686470cb2a789a636633b2c44f64cae6cd59406594eaca0af9e4cc07
java -cp "target/classes:$(cat cp.txt)" com.ibm.crypto.grep11.grpc.Example2
Private Key: 000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a5000000000040012500000000000000011234210dcbe0ed326aabcdcd6d2ef0580872730e380b0d9fdadd83a8d2627d5580ad78687ded2017b8a394a7bd0c8ca276d9489312de36cd8f0155e10b44b9ff6f2bb61327d153fa4f91ffaf4a14066387822d68fad9534d2921ef3835032e9a0bf9c3f4a269844a99bd523627a755cfe23e0be9cbb951764ec0f0074780a8a6ff14821674dd630375cfe5ceceeb56d3077af89a7abd4931f30c00eb53c9914288e87122923480808dc1d21cd7cbaef28e6f4caae82d090c4a3b0fd82f5a6cca0e7414e52f73fc9adb8065af0767f787bb878434553f0db8054fe1f9e0e96eadda96f4d798622aa36bcb9a641b8bdb7a83a95a9d8a5c3bfbbaa9c7b443e3238ff0bb58ffafbc16d2d33dd07f5bbc8fff07a0d6fbd29afc3eb286ccfe8a824ea7fb662b09ec87059fcc83ace84e2a77f2235aef2674bba8d79d1c5606c5e9190b6739037d097db3b66b833995e746a52b355263995d6ca3e6d47f2e43d2bc1707513b0e54956349adff5ad4fdf1ae07ab01c0202c75fb3b6be0b49d59dd5a8ca689463271330c3d8e37148f8275940a2b22b0e2d471ac9a8355bef6d9966b2b2fbf41211d8fffe7e826cf06a1bae17dbfe81c484257b69b737dd38212835a981a92ea0e7acb0fd41868ba9d61219d510d5edee0d36f9f0c65c1f76b2e1c4413cf2fd0ff2705092b0c34e325daf261e610048ab47dc2c078fcaf16d8c5021aeda3cba5c2353b3b5955e0a5865d02837fd329cc788178bc8c311d0becc7a225674256da714b0f425e74b880e23b9f3cc427
Public Key: 3033300e06072a8648ce3d020106032b65700321003b4acbbeb6a8150c8a78644fda9cba448d7ae8dbf49ba329789ff001d35df55c041050d94c73fbf3137d2239f132191026a5042000000000000000000000000000000000000000000000000000000000000000000408c8264532fc65bf500408000000000000000104141001000000008024000080248001000a000000010420c36f150fde708b9b0eb3c666b3e30f2e9f63e3f6d9ae40336327e50ea88456e0
SPKI: 3033300e06072a8648ce3d020106032b65700321003b4acbbeb6a8150c8a78644fda9cba448d7ae8dbf49ba329789ff001d35df55c
Wrapped Key: 37a5bc0a8ffd36ec07e9cbf5c23e75ed10f24fe4928942b1a2dcda54de0a5c2a38c494428cbe07c6d330a6b7bb53e678eec00de45f4bbea23f86c4d34b527b06db7e9095ed60f64284b63c715ac88ec78d3990a74f53b99a285cfba8e14903a8714c7a9739c795f50a4fee35b2e546a9
Unwrapped Key: 000000000000000000000000000000000000000000000000000000000000000050d94c73fbf3137d2239f132191026a5000000000000010400000000000000011234671e88d450c4cbf0a3840ad87d7a0d340d8ca53dc96856812a0370d38f3645a2e84921a3a9ce7fe481e88682438caa618f00661bb17f1c6b52e21b0b3d321f9a98e93ecd85bb0a8b514b711a82c5f4fb900d25cd1d632deb096fe892739290016e61c70418a1b528abb9008662236050e902f39856a1b8321e5882eab6e12dc1a175c5daa5ab0c1742ebedf33c5bbce8c927017c58998996b0fa5aad041c60123a36f6223fea71b6ac552f5279c5b1d84120eee1fdc42a60bb89d1c9af73a09ee53ef8e91635b019e585d9f8ba9e885f58350c08609a0e64d22ec651393c9a45c8c1421e84b0820d33f56d7b51b06caf07aba4f2eff93620745555f8ed54a30d4d61ff229138fa7c35853d3db53823820a39ab7138cfc2ca79d38a7742aeab38d1ab7d1e727f6f5ff8a313ceb4cb405f8a5a6e00df31703a013cad6b31061c6a29668e4f91fffdbb2f12bc4a13fdcde02ce9ea7efe5bb5d28c7d067136179b0ca906eb7ef3d5882e72f0cb56a5c51fba1b9377921d0bfce09cecd8ff667356eb25844429dc758dfb719dc59b5f22de502b2b6f8ad5cffd5a9724b375c4e14ded6e639cd5ced307e3d3e706681ae33f856c0a92db5cc88da8bf9f8fa479f774b1b9f26e8ee5172706d67bc63babc0c2b3fed5bedad4df997ffb604bc3a4f9ceebada762adf914aa5ddda0cc98b81d99aa248d70ca9caace0e223504f75cc2ebdcf50a1b44497674073790e6a1922a5352c63e8b226e8ee431273449fd819429c6deba1efcc8a6323b40b8eb91d5d26962cfb9d72825de7a37e5474b2fd9f9
Unwrapped checksum: 3033300e06072a8648ce3d020106032b65700321003b4acbbeb6a8150c8a78644fda9cba448d7ae8dbf49ba329789ff001d35df55c041050d94c73fbf3137d2239f132191026a50420000000000000000000000000000000000000000000000000000000000000000004087d5fa3b827ec571104080000000000000000040c1000000000008004000080040420d3721cbc5e1665d1fc45fe506867817f5098f9e6afc176352e98d2983ef7db4c000000ff
SPKI: 3033300e06072a8648ce3d020106032b65700321003b4acbbeb6a8150c8a78644fda9cba448d7ae8dbf49ba329789ff001d35df55c