Unwraps (decrypts) a content-encryption key with a key-encryption key.
VB6/VBA
Debug.Print "Testing CIPHER_KeyUnwrap ..." Dim abWK() As Byte Dim abKeyData() As Byte Dim abKek() As Byte Dim nWkLen As Long Dim nKdLen As Long Dim nKekLen As Long abWK = cnvBytesFromHexStr("503D75C73630A7B02ECF51B9B29B907749310B77B0B2E054") abKek = cnvBytesFromHexStr("c17a44e8 e28d7d64 81d1ddd5 0a3b8914") nWkLen = UBound(abWK) + 1 nKekLen = UBound(abKek) + 1 Debug.Print "INPUT:" Debug.Print "KEK=" & cnvHexStrFromBytes(abKek) Debug.Print "WK =" & cnvHexStrFromBytes(abWK) Debug.Print "ALG=AES-128" nKdLen = CIPHER_KeyUnwrap(0, 0, abWK(0), nWkLen, abKek(0), nKekLen, API_BC_AES128) If nKdLen <= 0 Then Debug.Print "CIPHER_KeyUnwrap returns " & nKdLen & ": " & apiErrorLookup(nKdLen) Exit Sub End If ReDim abKeyData(nKdLen - 1) nKdLen = CIPHER_KeyUnwrap(abKeyData(0), nKdLen, abWK(0), nWkLen, abKek(0), nKekLen, API_BC_AES128) Debug.Print "OUTPUT:" Debug.Print "KD =" & cnvHexStrFromBytes(abKeyData) Debug.Print "OK =00112233445566778899AABBCCDDEEFF"
Output
Testing CIPHER_KeyUnwrap ... INPUT: KEK=C17A44E8E28D7D6481D1DDD50A3B8914 WK =503D75C73630A7B02ECF51B9B29B907749310B77B0B2E054 ALG=AES-128 OUTPUT: KD =00112233445566778899AABBCCDDEEFF OK =00112233445566778899AABBCCDDEEFF
VB.NET
Console.WriteLine("Testing CIPHER_KeyUnwrap ...") Dim abWK() As Byte Dim abKeyData() As Byte Dim abKek() As Byte ''Dim nWkLen As Integer ''Dim nKdLen As Integer ''Dim nKekLen As Integer abWK = Cnv.FromHex("503D75C73630A7B02ECF51B9B29B907749310B77B0B2E054") abKek = Cnv.FromHex("c17a44e8 e28d7d64 81d1ddd5 0a3b8914") ''nWkLen = UBound(abWK) + 1 ''nKekLen = UBound(abKek) + 1 Console.WriteLine("INPUT:") Console.WriteLine("KEK=" & Cnv.ToHex(abKek)) Console.WriteLine("WK =" & Cnv.ToHex(abWK)) Console.WriteLine("ALG=AES-128") abKeyData = Cipher.KeyUnwrap(abWK, abKek, CipherAlgorithm.Aes128) Console.WriteLine("OUTPUT:") Console.WriteLine("KD =" & Cnv.ToHex(abKeyData)) Console.WriteLine("OK =00112233445566778899AABBCCDDEEFF")
[Contents]