diff --git a/libwvdrmengine/level3/include/haystack.h b/libwvdrmengine/level3/include/haystack.h index f512129e..ab4cbaa1 100644 --- a/libwvdrmengine/level3/include/haystack.h +++ b/libwvdrmengine/level3/include/haystack.h @@ -184,6 +184,15 @@ OEMCryptoResult Haystack_LoadProvisioningCast( size_t message_length, size_t core_message_length, const uint8_t* signature, size_t signature_length, uint8_t* wrapped_private_key, size_t* wrapped_private_key_length); +OEMCryptoResult Haystack_PrepAndSignReleaseRequest( + OEMCrypto_SESSION session, uint8_t* message, size_t message_length, + size_t* core_message_size, uint8_t* signature, size_t* signature_length); +OEMCryptoResult Haystack_LoadRelease(OEMCrypto_SESSION session, + const uint8_t* message, + size_t message_length, + size_t core_message_length, + const uint8_t* signature, + size_t signature_length); } // namespace haystack #endif diff --git a/libwvdrmengine/level3/src/level3_adapter.cpp b/libwvdrmengine/level3/src/level3_adapter.cpp index 7756c61c..8ab6aea8 100644 --- a/libwvdrmengine/level3/src/level3_adapter.cpp +++ b/libwvdrmengine/level3/src/level3_adapter.cpp @@ -600,3 +600,22 @@ OEMCryptoResult Level3_LoadProvisioningCast( size_t* wrapped_private_key_length) { return OEMCrypto_ERROR_NOT_IMPLEMENTED; } + +OEMCryptoResult Level3_PrepAndSignReleaseRequest( + OEMCrypto_SESSION session, uint8_t* message, size_t message_length, + size_t* core_message_size, uint8_t* signature, size_t* signature_length) { + return haystack::Haystack_PrepAndSignReleaseRequest( + session, message, message_length, core_message_size, signature, + signature_length); +} + +OEMCryptoResult Level3_LoadRelease(OEMCrypto_SESSION session, + const uint8_t* message, + size_t message_length, + size_t core_message_length, + const uint8_t* signature, + size_t signature_length) { + return haystack::Haystack_LoadRelease(session, message, message_length, + core_message_length, signature, + signature_length); +}