| /* |
| * Copyright (C) 2007 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 __DRM_INNER_H__ |
| #define __DRM_INNER_H__ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <drm_common_types.h> |
| |
| #define INT_2_YMD_HMS(year, mon, day, date, hour, min, sec, time) do{\ |
| year = date / 10000;\ |
| mon = date % 10000 / 100;\ |
| day = date %100;\ |
| hour = time / 10000;\ |
| min = time % 10000 / 100;\ |
| sec = time % 100;\ |
| }while(0) |
| |
| /** |
| * Define the max malloc length for a DRM. |
| */ |
| #define DRM_MAX_MALLOC_LEN (50 * 1024) /* 50K */ |
| |
| #define DRM_ONE_AES_BLOCK_LEN 16 |
| #define DRM_TWO_AES_BLOCK_LEN 32 |
| |
| typedef struct _T_DRM_DM_Binary_Node { |
| uint8_t boundary[256]; |
| } T_DRM_DM_Binary_Node; |
| |
| typedef struct _T_DRM_DM_Base64_Node { |
| uint8_t boundary[256]; |
| uint8_t b64DecodeData[4]; |
| int32_t b64DecodeDataLen; |
| } T_DRM_DM_Base64_Node; |
| |
| typedef struct _T_DRM_Dcf_Node { |
| uint8_t rightsIssuer[256]; |
| int32_t encContentLength; |
| uint8_t aesDecData[16]; |
| int32_t aesDecDataLen; |
| int32_t aesDecDataOff; |
| uint8_t aesBackupBuf[16]; |
| int32_t bAesBackupBuf; |
| } T_DRM_Dcf_Node; |
| |
| typedef struct _T_DRM_Session_Node { |
| int32_t sessionId; |
| int32_t inputHandle; |
| int32_t mimeType; |
| int32_t (*getInputDataLengthFunc)(int32_t inputHandle); |
| int32_t (*readInputDataFunc)(int32_t inputHandle, uint8_t* buf, int32_t bufLen); |
| int32_t (*seekInputDataFunc)(int32_t inputHandle, int32_t offset); |
| int32_t deliveryMethod; |
| int32_t transferEncoding; |
| uint8_t contentType[64]; |
| int32_t contentLength; |
| int32_t contentOffset; |
| uint8_t contentID[256]; |
| uint8_t* rawContent; |
| int32_t rawContentLen; |
| int32_t bEndData; |
| uint8_t* readBuf; |
| int32_t readBufLen; |
| int32_t readBufOff; |
| void* infoStruct; |
| struct _T_DRM_Session_Node* next; |
| } T_DRM_Session_Node; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __DRM_INNER_H__ */ |