secureswitools/makekeys/src/PARSECMD.H
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/secureswitools/makekeys/src/PARSECMD.H	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 1999-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: 
+* Handles parsing of makekeys command line args
+*
+*/
+
+
+/**
+ @file 
+ @internalComponent 
+*/
+
+#ifndef __PARSE_CMD_H_
+#define __PARSE_CMD_H_
+
+#include <stdio.h>
+#include <iostream>
+#include "utils.h"
+#include "KeyGenerator.h"
+#include "CertificateGenerator.h"
+
+//undefined by default, the ability to generate keys on its own is useful for testing
+//and maybe in the real-world too
+#define KEYS
+//some work that's already been done, thats planned as optional so may or may not be needed
+#define OPTIONAL
+
+
+// ===========================================================================
+// CONSTANTS
+// ===========================================================================
+
+
+#define MAXLEN 256
+#define DEFAULTKEYLEN 1024
+#define DEFAULTCERTEXPIRYDAYS 365
+
+
+//These constants are temporarily file names. They will be changed
+//with original ones at the end of the program 
+#define KEYFILENAME "mytempkey.key"
+#define CERTFILENAME "mytempcert.cer"
+#define REQUESTFILENAME "mytemprequest.p10"
+
+enum TCommandLineException
+	{ErrInsufficientArgs,
+	ErrTooManyArgs,
+	ErrBadReqCommand,
+	ErrBadCommandFlag,
+	ErrUnknownCommandFlag,
+	ErrCantViewCertificate,
+	ErrMalformedCommand,
+	ErrUnsupportedCP,
+	ErrInvalidPassword
+	}; 
+
+enum Mode
+	{EKeys = 1,
+	ECert,
+	EReq,
+	EChain,
+	EView,
+	EPassword,
+	EDname,
+	ERSA,
+	EDSA,
+	EUnknown
+	};
+
+enum TOptions
+	{EOptVerbose  = 0x01,
+	};
+		
+
+
+#define MIN_VIEW_ARGS 3
+#define MIN_CERT_ARGS 6
+#define MIN_REQ_ARGS 7
+
+
+// ===========================================================================
+// CLASS DEFINITION
+// ===========================================================================
+
+class CParseCmd
+// Responsable for processing and maintaining the command line options
+	{
+	public:
+		TKeyType GetKeyType();
+		bool GetPasswordEnabled();
+		
+		_TCHAR* GetPassword();
+		_TCHAR* GetPrivateName();
+		_TCHAR* GetPublicName();
+		_TCHAR* GetRequestName();
+		_TCHAR* GetDNameString();
+		bool GetVerbose();
+
+		int GetCMDKeyLen();
+		int GetCMDCertExpiryInDays();
+		CParseCmd();
+		
+		ParseCommandLine(const int argc, const _TCHAR *argv[], Mode* aApp);
+		
+		BOOL  ShowSyntax()			const { return m_fShowSyntax; }
+		DWORD Flags()				const { return m_dwOptions;   }
+
+	private:
+		bool m_bVerbose;
+		void SetVerbose(const bool bVerbose);
+		
+		DWORD m_dwKeyLen;
+		DWORD m_dwCertExpiryInDays;
+		
+		DWORD m_dwOptions;
+		BOOL  m_fShowSyntax;
+		TKeyType m_CMDKey;
+		bool m_bPassword;
+
+		_TCHAR m_password[MAXLEN];
+		_TCHAR m_dname[512];
+		_TCHAR m_privateKeyFile[MAX_PATH];
+		_TCHAR m_publicKeyFile[MAX_PATH];
+		_TCHAR m_requestFile[MAX_PATH];
+		_TCHAR m_KeyLenStr[MAXLEN];
+		_TCHAR m_CertExpiryInDaysStr[MAXLEN];
+
+	};
+
+#endif // __PARSE_CMD_H_