diff options
Diffstat (limited to 'Src/libvp6/include/On2Crypt.h')
-rw-r--r-- | Src/libvp6/include/On2Crypt.h | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/Src/libvp6/include/On2Crypt.h b/Src/libvp6/include/On2Crypt.h new file mode 100644 index 00000000..5c1014d2 --- /dev/null +++ b/Src/libvp6/include/On2Crypt.h @@ -0,0 +1,132 @@ +//========================================================================== +// +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY +// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR +// PURPOSE. +// +// Copyright (c) 1999 - 2001 On2 Technologies Inc. All Rights Reserved. +// +//-------------------------------------------------------------------------- +#if !defined(ON2CRYPT_H) +#define ON2CRYPT_H + +//______________________________________________________________________________ +// +// On2Crypt.h +// API to on2comp's encryption dll +//-------------------------------------------------------------------------- + + +#ifdef _USRDLL +#define DLLExport __declspec(dllexport) +#else +#define DLLExport +#endif + +#define DLLCC __stdcall + +#ifdef __cplusplus +extern "C" +{ +#endif + +typedef void* HOn2Encryptor; + +DLLExport int DLLCC MakeEncryptor(unsigned char* pString, int iLength, HOn2Encryptor* phOn2Encryptor); +//*************************************************************************************** +// Name : MakeEncryptor +// Description: set up an encryption session +// Inputs : pString -> information to be used by encryptor to set up encryption session +// iLength -> number of bytes used in pString +// Outputs : phOn2Encryptor -> pointer to an encryption session +// Returns : 0 = success +//*************************************************************************************** + +DLLExport int DLLCC GetEncryptionCode(char* pfccCode); // size of szCode must be >= 4 +//*************************************************************************************** +// Name : GetEncryptionCode +// Description: get the 4 character code to use as a reference for this encryption dll +// Inputs : +// Outputs : pfccCode 4 character code +// Returns : 0 = success +//*************************************************************************************** + + +DLLExport int DLLCC GetDRMXLength(HOn2Encryptor hOn2Encryptor, int* piLength); +//*************************************************************************************** +// Name : GetDRMXLength +// Description: calculates the length of decryption chunk to be produced +// Inputs : hOn2Encryptor -> handle of encryption sesion to use ( from make encryptor) +// Outputs : piLength -> filled with length of extra information +// Returns : 0 = success +//*************************************************************************************** + +DLLExport int DLLCC GenerateDRMX(HOn2Encryptor hOn2Encryptor, unsigned char* pBuffer); +//*************************************************************************************** +// Name : GenerateDRMX +// Description: generates a decryption chunk +// Inputs : hOn2Encryptor -> handle of encryption sesion to use ( from make encryptor) +// Outputs : pBuffer is filled with information necessary to decrypt the file we are +// encrypting +// Returns : 0 = success +//*************************************************************************************** + +DLLExport int DLLCC EncryptedSize(HOn2Encryptor hOn2Encryptor, int iSizeIn, int* piSizeOut); +//*************************************************************************************** +// Name : EncryptedSize +// Description: returns size that an encrypted chunk will be given a size in +// Inputs : hOn2Encryptor -> handle of encryption sesion to use ( from make encryptor) +// : iSizeIn -> size of input data +// Outputs : piSizeOut -> size of output data +// Returns : 0 = success +//*************************************************************************************** + +DLLExport int DLLCC EncryptBytes(HOn2Encryptor hOn2Encryptor, unsigned char* pBufferIn, int iSizeIn, unsigned char* pBufferOut, int iSizeOutMax, int* piSizeOut); +//*************************************************************************************** +// Name : EncryptBytes +// Description: encrypts bytes in input buffer and stores them to the output buffer +// Inputs : hOn2Encryptor -> handle of encryption sesion to use ( from make encryptor) +// : pBufferIn -> buffer holding bytes to encrypt +// iSizeIn -> number of bytes to encrypt of that buffer +// Outputs : pBufferOut -> buffer for holding encrypted bytes +// iSizeOutMax -> maximum number of bytes to write to pBufferOut +// piSizeOut -> number of bytes actually written to pbufferout +// Returns : 0 = success +//*************************************************************************************** + + +DLLExport int DLLCC EncryptorError(char* szError, int nErrorMax); +//*************************************************************************************** +// Name : EncryptorError +// Description: gets a string description of the last error +// Inputs : szError -> pointer to string +// nErrorMax -> the largest number of bytes to fill in in szerror +// Outputs : +// Returns : 0 = success +//*************************************************************************************** + + +DLLExport int DLLCC DeleteEncryptor(HOn2Encryptor hOn2Encryptor); +//*************************************************************************************** +// Name : DeleteEncryptor +// Description: ends the encryption session and cleans up +// Inputs : hOn2Encryptor -> handle of encryption sesion to use ( from make encryptor) +// Outputs : +// Returns : 0 = success +//*************************************************************************************** + +typedef int (DLLCC *PFNMakeEncryptor)(unsigned char* pString, int iLength, HOn2Encryptor* phOn2Encryptor); +typedef int (DLLCC *PFNGetEncryptionCode)(char* pfccCode); // size of szCode must be >= 4 +typedef int (DLLCC *PFNGetDRMXLength)(HOn2Encryptor hOn2Encryptor, int* piLength); +typedef int (DLLCC *PFNGenerateDRMX)(HOn2Encryptor hOn2Encryptor, unsigned char* pBuffer); +typedef int (DLLCC *PFNEncryptedSize)(HOn2Encryptor hOn2Encryptor, int iSizeIn, int* piSizeOut); +typedef int (DLLCC *PFNEncryptBytes)(HOn2Encryptor hOn2Encryptor, unsigned char* pBufferIn, int iSizeIn, unsigned char* pBufferOut, int iSizeOutMax, int* piSizeOut); +typedef int (DLLCC *PFNEncryptorError)(char* szError, int nErrorMax); +typedef int (DLLCC *PFNDeleteEncryptor)(HOn2Encryptor hOn2Encryptor); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // ON2CRYPT_H |