Unwraps 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
nKdLen = CIPHER_KeyUnwrap(0, 0, abWK(0), nWkLen, abKek(0), nKekLen, PKI_BC_AES128)
If nKdLen <= 0 Then
Debug.Print " returns " & nKdLen & ": " & pkiErrorLookup(nKdLen)
Exit Sub
End If
ReDim abKeyData(nKdLen - 1)
nWkLen = CIPHER_KeyUnwrap(abKeyData(0), nKdLen, abWK(0), nWkLen, abKek(0), nKekLen, PKI_BC_AES128)
Debug.Print "K=" & cnvHexStrFromBytes(abKeyData)
Output
Testing CIPHER_KeyUnwrap ... K=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
abKeyData = Cipher.KeyUnwrap(abWK, abKek, CipherAlgorithm.Aes128)
If abKeyData.Length = 0 Then
Console.WriteLine("Cipher.KeyUnwrap: " & General.LastError())
Exit Sub
End If
Console.WriteLine("K=" & Cnv.ToHex(abKeyData))
[Contents]