Windowsで暗号プログラムを書いてみる(RSA編 おまけ2)Windowsで暗号プログラムを書いてみる(RSA編 その2)で掲載した関数を実行するサンプルコード(main)です。 クラスの使い方等の参考になれば。 rsa_test.cpp #include "pch.h" #include <iostream> #include "CryptRSA.h" int main() { DataContainer objPrivateKey; DataContainer objPublicKey; DataContainer objPrivateKeyStr; DataContainer objPublicKeyStr; char strTestData[] = "Test data"; DataContainer objTestData; // 鍵の生成 CryptRSA::CreateRSAKey(&objPrivateKey, &objPublicKey); // Blobから文字列へ変換 CryptRSA::ConvertBinToString(&objPrivateKey, &objPrivateKeyStr, CRYPTRSA_FLAG_PRIVATE); objPrivateKeyStr.OutputToFile("TestPrivateKey.pem"); CryptRSA::ConvertBinToString(&objPublicKey, &objPublicKeyStr, CRYPTRSA_FLAG_PUBLIC); objPublicKeyStr.OutputToFile("TestPublicKey.pem"); // 文字列からBlobへ変換 objPrivateKey.ClearDataObject(); objPublicKey.ClearDataObject(); objPrivateKeyStr.ClearDataObject(); objPublicKeyStr.ClearDataObject(); objPrivateKeyStr.InputFromFile("TestPrivateKey.pem"); CryptRSA::ConvertStringToBin(&objPrivateKeyStr, &objPrivateKey, CRYPTRSA_FLAG_PRIVATE); objPublicKeyStr.InputFromFile("TestPublicKey.pem"); CryptRSA::ConvertStringToBin(&objPublicKeyStr, &objPublicKey, CRYPTRSA_FLAG_PUBLIC); // 暗号化 objTestData.CreateDataObject(strlen(strTestData)+1); memcpy(objTestData.GetDataPointer(), strTestData, strlen(strTestData)); objTestData.SetCurrentDataSize(strlen(strTestData)+1); CryptRSA::Encrypt(&objPublicKey, &objTestData); // 復号化 CryptRSA::Decrypt(&objPrivateKey, &objTestData); return 0; }