diff options
Diffstat (limited to 'drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h')
-rw-r--r-- | drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h | 282 |
1 files changed, 0 insertions, 282 deletions
diff --git a/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h b/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h deleted file mode 100644 index e20c0c3..0000000 --- a/drm/libdrmframework/plugins/forward-lock/internal-format/converter/FwdLockConv.h +++ /dev/null @@ -1,282 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __FWDLOCKCONV_H__ -#define __FWDLOCKCONV_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/types.h> - -/** - * The size of the data and header signatures combined. The signatures are adjacent to each other in - * the produced output file. - */ -#define FWD_LOCK_SIGNATURES_SIZE (2 * 20) - -/** - * Data type for the output from FwdLockConv_ConvertData. - */ -typedef struct FwdLockConv_ConvertData_Output { - /// The converted data. - void *pBuffer; - - /// The size of the converted data. - size_t numBytes; - - /// The file position where the error occurred, in the case of a syntax error. - off64_t errorPos; -} FwdLockConv_ConvertData_Output_t; - -/** - * Data type for the output from FwdLockConv_CloseSession. - */ -typedef struct FwdLockConv_CloseSession_Output { - /// The final set of signatures. - unsigned char signatures[FWD_LOCK_SIGNATURES_SIZE]; - - /// The offset in the produced output file where the signatures are located. - off64_t fileOffset; - - /// The file position where the error occurred, in the case of a syntax error. - off64_t errorPos; -} FwdLockConv_CloseSession_Output_t; - -/** - * Data type for the output from the conversion process. - */ -typedef union FwdLockConv_Output { - FwdLockConv_ConvertData_Output_t fromConvertData; - FwdLockConv_CloseSession_Output_t fromCloseSession; -} FwdLockConv_Output_t; - -/** - * Data type for the Posix-style read function used by the converter in pull mode. - * - * @param[in] fileDesc The file descriptor of a file opened for reading. - * @param[out] pBuffer A reference to the buffer that should receive the read data. - * @param[in] numBytes The number of bytes to read. - * - * @return The number of bytes read. - * @retval -1 Failure. - */ -typedef ssize_t FwdLockConv_ReadFunc_t(int fileDesc, void *pBuffer, size_t numBytes); - -/** - * Data type for the Posix-style write function used by the converter in pull mode. - * - * @param[in] fileDesc The file descriptor of a file opened for writing. - * @param[in] pBuffer A reference to the buffer containing the data to be written. - * @param[in] numBytes The number of bytes to write. - * - * @return The number of bytes written. - * @retval -1 Failure. - */ -typedef ssize_t FwdLockConv_WriteFunc_t(int fileDesc, const void *pBuffer, size_t numBytes); - -/** - * Data type for the Posix-style lseek function used by the converter in pull mode. - * - * @param[in] fileDesc The file descriptor of a file opened for writing. - * @param[in] offset The offset with which to update the file position. - * @param[in] whence One of SEEK_SET, SEEK_CUR, and SEEK_END. - * - * @return The new file position. - * @retval ((off64_t)-1) Failure. - */ -typedef off64_t FwdLockConv_LSeekFunc_t(int fileDesc, off64_t offset, int whence); - -/** - * The status codes returned by the converter functions. - */ -typedef enum FwdLockConv_Status { - /// The operation was successful. - FwdLockConv_Status_OK = 0, - - /// An actual argument to the function is invalid (a program error on the caller's part). - FwdLockConv_Status_InvalidArgument = 1, - - /// There is not enough free dynamic memory to complete the operation. - FwdLockConv_Status_OutOfMemory = 2, - - /// An error occurred while opening the input file. - FwdLockConv_Status_FileNotFound = 3, - - /// An error occurred while creating the output file. - FwdLockConv_Status_FileCreationFailed = 4, - - /// An error occurred while reading from the input file. - FwdLockConv_Status_FileReadError = 5, - - /// An error occurred while writing to the output file. - FwdLockConv_Status_FileWriteError = 6, - - /// An error occurred while seeking to a new file position within the output file. - FwdLockConv_Status_FileSeekError = 7, - - /// The input file is not a syntactically correct OMA DRM v1 Forward Lock file. - FwdLockConv_Status_SyntaxError = 8, - - /// Support for this DRM file format has been disabled in the current product configuration. - FwdLockConv_Status_UnsupportedFileFormat = 9, - - /// The content transfer encoding is not one of "binary", "base64", "7bit", or "8bit" - /// (case-insensitive). - FwdLockConv_Status_UnsupportedContentTransferEncoding = 10, - - /// The generation of a random number failed. - FwdLockConv_Status_RandomNumberGenerationFailed = 11, - - /// Key encryption failed. - FwdLockConv_Status_KeyEncryptionFailed = 12, - - /// The calculation of a keyed hash for integrity protection failed. - FwdLockConv_Status_IntegrityProtectionFailed = 13, - - /// There are too many ongoing sessions for another one to be opened. - FwdLockConv_Status_TooManySessions = 14, - - /// An unexpected error occurred. - FwdLockConv_Status_ProgramError = 15 -} FwdLockConv_Status_t; - -/** - * Opens a session for converting an OMA DRM v1 Forward Lock file to the internal Forward Lock file - * format. - * - * @param[out] pSessionId The session ID. - * @param[out] pOutput The output from the conversion process (initialized). - * - * @return A status code. - * @retval FwdLockConv_Status_OK - * @retval FwdLockConv_Status_InvalidArgument - * @retval FwdLockConv_Status_TooManySessions - */ -FwdLockConv_Status_t FwdLockConv_OpenSession(int *pSessionId, FwdLockConv_Output_t *pOutput); - -/** - * Supplies the converter with data to convert. The caller is expected to write the converted data - * to file. Can be called an arbitrary number of times. - * - * @param[in] sessionId The session ID. - * @param[in] pBuffer A reference to a buffer containing the data to convert. - * @param[in] numBytes The number of bytes to convert. - * @param[in,out] pOutput The output from the conversion process (allocated/reallocated). - * - * @return A status code. - * @retval FwdLockConv_Status_OK - * @retval FwdLockConv_Status_InvalidArgument - * @retval FwdLockConv_Status_OutOfMemory - * @retval FwdLockConv_Status_SyntaxError - * @retval FwdLockConv_Status_UnsupportedFileFormat - * @retval FwdLockConv_Status_UnsupportedContentTransferEncoding - * @retval FwdLockConv_Status_RandomNumberGenerationFailed - * @retval FwdLockConv_Status_KeyEncryptionFailed - * @retval FwdLockConv_Status_DataEncryptionFailed - */ -FwdLockConv_Status_t FwdLockConv_ConvertData(int sessionId, - const void *pBuffer, - size_t numBytes, - FwdLockConv_Output_t *pOutput); - -/** - * Closes a session for converting an OMA DRM v1 Forward Lock file to the internal Forward Lock - * file format. The caller must update the produced output file at the indicated file offset with - * the final set of signatures. - * - * @param[in] sessionId The session ID. - * @param[in,out] pOutput The output from the conversion process (deallocated and overwritten). - * - * @return A status code. - * @retval FwdLockConv_Status_OK - * @retval FwdLockConv_Status_InvalidArgument - * @retval FwdLockConv_Status_OutOfMemory - * @retval FwdLockConv_Status_IntegrityProtectionFailed - */ -FwdLockConv_Status_t FwdLockConv_CloseSession(int sessionId, FwdLockConv_Output_t *pOutput); - -/** - * Converts an open OMA DRM v1 Forward Lock file to the internal Forward Lock file format in pull - * mode. - * - * @param[in] inputFileDesc The file descriptor of the open input file. - * @param[in] fpReadFunc A reference to a read function that can operate on the open input file. - * @param[in] outputFileDesc The file descriptor of the open output file. - * @param[in] fpWriteFunc A reference to a write function that can operate on the open output file. - * @param[in] fpLSeekFunc A reference to an lseek function that can operate on the open output file. - * @param[out] pErrorPos - * The file position where the error occurred, in the case of a syntax error. May be NULL. - * - * @return A status code. - * @retval FwdLockConv_Status_OK - * @retval FwdLockConv_Status_InvalidArgument - * @retval FwdLockConv_Status_OutOfMemory - * @retval FwdLockConv_Status_FileReadError - * @retval FwdLockConv_Status_FileWriteError - * @retval FwdLockConv_Status_FileSeekError - * @retval FwdLockConv_Status_SyntaxError - * @retval FwdLockConv_Status_UnsupportedFileFormat - * @retval FwdLockConv_Status_UnsupportedContentTransferEncoding - * @retval FwdLockConv_Status_RandomNumberGenerationFailed - * @retval FwdLockConv_Status_KeyEncryptionFailed - * @retval FwdLockConv_Status_DataEncryptionFailed - * @retval FwdLockConv_Status_IntegrityProtectionFailed - * @retval FwdLockConv_Status_TooManySessions - */ -FwdLockConv_Status_t FwdLockConv_ConvertOpenFile(int inputFileDesc, - FwdLockConv_ReadFunc_t *fpReadFunc, - int outputFileDesc, - FwdLockConv_WriteFunc_t *fpWriteFunc, - FwdLockConv_LSeekFunc_t *fpLSeekFunc, - off64_t *pErrorPos); - -/** - * Converts an OMA DRM v1 Forward Lock file to the internal Forward Lock file format in pull mode. - * - * @param[in] pInputFilename A reference to the input filename. - * @param[in] pOutputFilename A reference to the output filename. - * @param[out] pErrorPos - * The file position where the error occurred, in the case of a syntax error. May be NULL. - * - * @return A status code. - * @retval FwdLockConv_Status_OK - * @retval FwdLockConv_Status_InvalidArgument - * @retval FwdLockConv_Status_OutOfMemory - * @retval FwdLockConv_Status_FileNotFound - * @retval FwdLockConv_Status_FileCreationFailed - * @retval FwdLockConv_Status_FileReadError - * @retval FwdLockConv_Status_FileWriteError - * @retval FwdLockConv_Status_FileSeekError - * @retval FwdLockConv_Status_SyntaxError - * @retval FwdLockConv_Status_UnsupportedFileFormat - * @retval FwdLockConv_Status_UnsupportedContentTransferEncoding - * @retval FwdLockConv_Status_RandomNumberGenerationFailed - * @retval FwdLockConv_Status_KeyEncryptionFailed - * @retval FwdLockConv_Status_DataEncryptionFailed - * @retval FwdLockConv_Status_IntegrityProtectionFailed - * @retval FwdLockConv_Status_TooManySessions - */ -FwdLockConv_Status_t FwdLockConv_ConvertFile(const char *pInputFilename, - const char *pOutputFilename, - off64_t *pErrorPos); - -#ifdef __cplusplus -} -#endif - -#endif // __FWDLOCKCONV_H__ |