--- a/cryptoservices/certificateandkeymgmt/pkcs12recog/pkcs12recog.h Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/pkcs12recog/pkcs12recog.h Thu Sep 10 14:01:51 2009 +0300
@@ -1,158 +1,156 @@
-/*
-* Copyright (c) 2006-2009 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:
-*
-*/
-
-
-
-
-/**
- @file
- @internalTechnology
-*/
-
-#ifndef __PKCS12RECOG_H__
-
-#include <apmrec.h>
-
-/**
- A recogniser that recognises the following MIME types:
- application/x-pkcs12
- */
-class CPkcs12Recognizer : public CApaDataRecognizerType
- {
- /** PKCS#12 recognizer panic codes */
- enum TPkcs12RecogPanic
- {
- /** Data type index does not correspond to a mime-type */
- EPanicInvalidDataType
- };
-
-public:
- /**
- Constructor
- */
- CPkcs12Recognizer();
-
-public:
- /**
- Returns the preferred buffer size for PKCS#12 recognition
- @return preferred buffer size in bytes
- */
- TUint PreferredBufSize();
-
- /**
- Allows a client to enumerate the supported mime-types.
- @param aIndex index of the mimetype to return
- @return mime-type corresponding to aIndex
- */
- TDataType SupportedDataTypeL(TInt aIndex) const;
-
- static CApaDataRecognizerType* CreateRecognizerL();
-
-private:
- // Implementation CApaDataRecognizerType::DoRecognizeL
- void DoRecognizeL(const TDesC& aName, const TDesC8& aBuffer);
-
- /**
- Checks whether the file name has a known PKCS#12 extension
- @param aName the file name to examine
- @return ETrue if the file extension looks is .pfx or .p12;
- otherwise, EFalse is returned.
- */
- TBool HasPkcs12Extension(const TDesC& aName);
-
- /**
- Checks whether the buffer contains a valid PKCS#12 header.
- aBuffer buffer to recognise
-
- Expected ASN.1 sequence
- SEQ
- INTEGER // Version = 3
- SEQ // authSafe - PKCS#7 ContentInfo
- OID // ContentType (data or signed data)
-
- It is not practical to check further than this because the content
- field within the ContentInfo objects is optional and could be absent.
- @param aBuffer the buffer to check
- @return ETrue if the buffer contains a PKCS#12 header;
- otherwise, EFalse is returned.
- */
- TBool DoRecognizeBufferL(const TDesC8& aBuffer);
-
- // There is no need to validate the lengths because the recogniser
- // checks the buffer size is at least as large as the minimum header
- // size
-
- /**
- Checks that the data at the specified offset is a DER sequence tag
- and advances past the tag and it's length.
-
- @param aBuffer the buffer containing the DER sequence to validate
- @param aOffset the offset of the current byte within the buffer. This
- is undefined if an error occurs.
- @return ETrue if a valid sequence tag & length is encountered;
- otherwise, EFalse is returned.
- */
- TBool ConsumeSequenceL(const TDesC8& aBuffer, TUint& aOffset) const;
-
- /**
- Decodes a DER encoded integer at the specified offset and advances
- to the next element.
- Signed integers greater than 32 bits in length are not supported.
-
- @param aBuffer the buffer containing the DER intger to decode
- @param aOffset the offset of the current byte within the buffer. This
- is undefined if an error occurs.
- @param aIntVal the decoded integer value. This is undefined if an error occurs.
- @return ETrue if a valid integer is encountered;
- otherwise, EFalse is returned.
- */
- TBool ConsumeIntegerL(const TDesC8& aBuffer, TUint& aOffset, TInt& aIntVal) const;
-
- /**
- Decodes a DER encoded length at the specified offset and advances
- to the start of the value.
- Lengths greater than 32 bits in length are not supported.
-
- @param aBuffer the buffer containing the length to decode.
- @param aOffset the offset of the current byte within the buffer. This
- is undefined if an error occurs.
- @param aLength the decoded length value in octets. This is undefined if an error occurs.
- @return ETrue if the length is valid; otherwise, EFalse is returned.
- */
- TBool ConsumeLengthL(const TDesC8& aBuffer, TUint& aOffset, TInt& aLengthOctets) const;
-
- /**
- Decodes base256 encoded integer up to 4 bytes in length and advances
- past the data.
- Signed integers greater than 32 bits in length are not supported.
-
- @param aBuffer the buffer containing the octets to decode.
- @param aOffset the offset of the current byte within the buffer. This
- is undefined if an error occurs.
- @param aLength the number of octets to decode (must be <= 4)
- @param aIntVal the decoded integer. This is undefined if an error occurs.
- */
- TBool ConsumeBase256L(const TDesC8& aBuffer, TUint& aOffset, TInt aLengthOctets, TInt& aIntVal) const;
-
- /**
- Calls panic with PKCS#12 recognizer category with the supplied panic code.
- @param aReason the panic code
- */
- void Panic(TPkcs12RecogPanic aReason) const;
- };
-
-#endif
+/*
+* Copyright (c) 2006-2009 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:
+*
+*/
+
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef __PKCS12RECOG_H__
+
+#include <apmrec.h>
+
+/**
+ A recogniser that recognises the following MIME types:
+ application/x-pkcs12
+ */
+class CPkcs12Recognizer : public CApaDataRecognizerType
+ {
+ /** PKCS#12 recognizer panic codes */
+ enum TPkcs12RecogPanic
+ {
+ /** Data type index does not correspond to a mime-type */
+ EPanicInvalidDataType
+ };
+
+public:
+ /**
+ Constructor
+ */
+ CPkcs12Recognizer();
+
+public:
+ /**
+ Returns the preferred buffer size for PKCS#12 recognition
+ @return preferred buffer size in bytes
+ */
+ TUint PreferredBufSize();
+
+ /**
+ Allows a client to enumerate the supported mime-types.
+ @param aIndex index of the mimetype to return
+ @return mime-type corresponding to aIndex
+ */
+ TDataType SupportedDataTypeL(TInt aIndex) const;
+
+ static CApaDataRecognizerType* CreateRecognizerL();
+
+private:
+ // Implementation CApaDataRecognizerType::DoRecognizeL
+ void DoRecognizeL(const TDesC& aName, const TDesC8& aBuffer);
+
+ /**
+ Checks whether the file name has a known PKCS#12 extension
+ @param aName the file name to examine
+ @return ETrue if the file extension looks is .pfx or .p12;
+ otherwise, EFalse is returned.
+ */
+ TBool HasPkcs12Extension(const TDesC& aName);
+
+ /**
+ Checks whether the buffer contains a valid PKCS#12 header.
+ aBuffer buffer to recognise
+
+ Expected ASN.1 sequence
+ SEQ
+ INTEGER // Version = 3
+ SEQ // authSafe - PKCS#7 ContentInfo
+ OID // ContentType (data or signed data)
+
+ It is not practical to check further than this because the content
+ field within the ContentInfo objects is optional and could be absent.
+ @param aBuffer the buffer to check
+ @return ETrue if the buffer contains a PKCS#12 header;
+ otherwise, EFalse is returned.
+ */
+ TBool DoRecognizeBufferL(const TDesC8& aBuffer);
+
+ // There is no need to validate the lengths because the recogniser
+ // checks the buffer size is at least as large as the minimum header
+ // size
+
+ /**
+ Checks that the data at the specified offset is a DER sequence tag
+ and advances past the tag and it's length.
+
+ @param aBuffer the buffer containing the DER sequence to validate
+ @param aOffset the offset of the current byte within the buffer. This
+ is undefined if an error occurs.
+ @return ETrue if a valid sequence tag & length is encountered;
+ otherwise, EFalse is returned.
+ */
+ TBool ConsumeSequenceL(const TDesC8& aBuffer, TUint& aOffset) const;
+
+ /**
+ Decodes a DER encoded integer at the specified offset and advances
+ to the next element.
+ Signed integers greater than 32 bits in length are not supported.
+
+ @param aBuffer the buffer containing the DER intger to decode
+ @param aOffset the offset of the current byte within the buffer. This
+ is undefined if an error occurs.
+ @param aIntVal the decoded integer value. This is undefined if an error occurs.
+ @return ETrue if a valid integer is encountered;
+ otherwise, EFalse is returned.
+ */
+ TBool ConsumeIntegerL(const TDesC8& aBuffer, TUint& aOffset, TInt& aIntVal) const;
+
+ /**
+ Decodes a DER encoded length at the specified offset and advances
+ to the start of the value.
+ Lengths greater than 32 bits in length are not supported.
+
+ @param aBuffer the buffer containing the length to decode.
+ @param aOffset the offset of the current byte within the buffer. This
+ is undefined if an error occurs.
+ @param aLength the decoded length value in octets. This is undefined if an error occurs.
+ @return ETrue if the length is valid; otherwise, EFalse is returned.
+ */
+ TBool ConsumeLengthL(const TDesC8& aBuffer, TUint& aOffset, TInt& aLengthOctets) const;
+
+ /**
+ Decodes base256 encoded integer up to 4 bytes in length and advances
+ past the data.
+ Signed integers greater than 32 bits in length are not supported.
+
+ @param aBuffer the buffer containing the octets to decode.
+ @param aOffset the offset of the current byte within the buffer. This
+ is undefined if an error occurs.
+ @param aLength the number of octets to decode (must be <= 4)
+ @param aIntVal the decoded integer. This is undefined if an error occurs.
+ */
+ TBool ConsumeBase256L(const TDesC8& aBuffer, TUint& aOffset, TInt aLengthOctets, TInt& aIntVal) const;
+
+ /**
+ Calls panic with PKCS#12 recognizer category with the supplied panic code.
+ @param aReason the panic code
+ */
+ void Panic(TPkcs12RecogPanic aReason) const;
+ };
+
+#endif