diff --git a/include/libgourou_common.h b/include/libgourou_common.h index dbfedf6..6d4ed08 100644 --- a/include/libgourou_common.h +++ b/include/libgourou_common.h @@ -119,7 +119,8 @@ namespace gourou DRM_FILE_ERROR, DRM_FORMAT_NOT_SUPPORTED, DRM_IN_OUT_EQUALS, - DRM_MISSING_PARAMETER + DRM_MISSING_PARAMETER, + DRM_INVALID_KEY_SIZE }; /** diff --git a/src/libgourou.cpp b/src/libgourou.cpp index 22552dc..aa8ce32 100644 --- a/src/libgourou.cpp +++ b/src/libgourou.cpp @@ -927,8 +927,12 @@ namespace gourou void DRMProcessor::decryptADEPTKey(const std::string& encryptedKey, unsigned char* decryptedKey) { + if (encryptedKey.size() != 172) + EXCEPTION(DRM_INVALID_KEY_SIZE, "Invalid encrypted key size (" << encryptedKey.size() << "). DRM version not supported"); + ByteArray arrayEncryptedKey = ByteArray::fromBase64(encryptedKey); + std::string privateKeyData = user->getPrivateLicenseKey(); ByteArray privateRSAKey = ByteArray::fromBase64(privateKeyData);