Microsoft CryptoAPI (CryptDeriveKey、BCrypt[...] 関数、CryptAcquireContext など) を使用して、次の暗号化コード (VB.NET 4.0) を同等の C++ コードに変換するにはどうすればよいですか? (Microsoft CryptoAPI を使用した AES について説明している記事は、インターネット上で 1 つも見つかりませんでした...)
Dim Key(31) As Byte
Dim IV(15) As Byte
Array.Copy(SomeByteArray, IV, 16)
Array.Copy((New SHA512Managed).ComputeHash(SomeByteArray), Key, 32)
Using AESEncr As New RijndaelManaged() With {.Padding = PaddingMode.ISO10126}
FinalEncrypted = AESEncr.CreateEncryptor(Key, IV).TransformFinalBlock(AnotherByteArray, 0, AnotherByteArray.GetLength(0))
End Using
そして復号化するもの:
Dim Key(31) As Byte
Dim IV(15) As Byte
Array.Copy(SomeByteArray, IV, 16)
Array.Copy((New SHA512Managed).ComputeHash(SomeByteArray), Key, 32)
Using AESEncr As New RijndaelManaged() With {.Padding = PaddingMode.ISO10126}
FinalDecrypted = AESEncr.CreateDecryptor(Key, IV).TransformFinalBlock(FinalEncrypted, 0, FinalEncrypted.GetLength(0))
End Using
(注: 私は既に SHA-512 メソッドに関する C++ コードを持っているので、気にしないでください。)