diff -r 79859ed3eea9 -r 919f36ff910f webengine/wmlengine/src/script/include/scr_crypto.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/wmlengine/src/script/include/scr_crypto.h Wed Sep 01 12:28:30 2010 +0100 @@ -0,0 +1,134 @@ +/* +* Copyright (c) 1999 - 2001 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +/* Created by araman on 05/31/00 for Crypto Library. */ + + +#ifndef SCR_CRYPTO_H +#define SCR_CRYPTO_H + +#include "scr_core.h" + +typedef enum { + SignatureAlgorithmRsaSha1 = 0x01 +}SignatureAlgorithm_t; + +typedef enum { + SignatureIdKeyHash = 1 +}SIgnatureIdType_t; +/* This is defined by the spec */ +typedef enum { + SignatureCertificateTypeWtls = 2, + SignatureCertificateTypeX509 = 3, + SignatureCertificateTypeX968 = 4, + SignatureCertificateTypeURL = 5 +}SignatureCertificateType_t; + +typedef enum { + SignatureContentTypeText = 1, + SignatureContentTypeData = 2 +}SignatureContentType_t; + +typedef enum { + SignatureAuthenticatedAttributeGmtUtcTime = 1, + SignatureAuthenticatedAttributeSignerNonce = 2 +} SignatureAuthenticatedAttribute_t; + +typedef enum { + SignatureIncludeContent = 1, + SignatureIncludeKeyHash = 2, + SignatureIncludeCertificate = 4 +} SignatureInclude_t; + +typedef enum { + SignatureKeyIdentifierNone = 0, + SignatureKeyIdentifierUserKeyHash = 1, + SignatureKeyIdentifierTrustedKeyHash = 2 +} SignatureKeyIdentifier_t; + +typedef enum { + SignStateInit=0, + SignStateGetSelectedCert, + SignStateGetPIN, + SignStateGetSignature, + SignStateBuildSignature, + SignStateAddCertificateContent, + SignStateFinish, + SignStateError +} SignState_t; + +typedef struct { + NW_Byte algorithm; + NW_Uint16 signLen; + NW_Byte *sign; +} Signature; + +typedef struct { + NW_Uint8 signerInfoType; + NW_Uint16 signerInfoLen; + NW_Byte* signerInfo; +} SignerInfo; + +typedef struct { + NW_Uint8 contentType; + NW_Uint16 contentEncoding; + NW_Bool contentPresent; + NW_Uint16 contentLen; + NW_Byte* content; +} ContentInfo; + +typedef struct { + NW_Uint8 attributeType; + NW_Uint8 gmtUtcTime[12]; +} AuthenticatedAttribute; + +typedef struct { + NW_Uint8 version; + NW_Uint8 signerInfoCount; + Signature *signature; + SignerInfo **signerInfos; + ContentInfo *contentInfo; + AuthenticatedAttribute *authenticatedAttribute; +} SignedContent; + + +typedef struct { + SignState_t state; + NW_Ucs2 *stringToSign; + NW_Int32 option; + NW_Int32 keyIdType; + NW_Byte *keyIdByte; + NW_Int32 keyIdLen; + NW_Uint8 certNum; + void **certificatesList; + void *selectedCertRef; + void *selectedKeyRef; + SignedContent *signedContent; +}SignTextParams_t; + +void populate_crypto_lib(lib_function_table_t *table); +NW_Byte size_crypto_lib(void); + +/* Init the SignTextParams_t struct */ +SignTextParams_t* +NW_ScrCrypto_SignTextParamsNew(SignState_t state, NW_Ucs2 *stringToSign, NW_Int32 option, + NW_Int32 keyIdType, NW_Byte *keyIdByte, NW_Int32 keyIdLen, NW_Uint8 certNum, + void **certificatesList, void *selectedCertRef, void *selectedKeyRef); +/* Free the SignTextParams_t struct */ +void NW_ScrCrypto_SignTextParamsFree(SignTextParams_t *params); + +#endif /*SCR_CRYPTO_H*/