
#ifndef snmpv3authcryp_h
#define snmpv3authcryp_h

#include "../../../../plat/public/src/include/public.h"


#define AUTH_KEY_LEN		16
#define	MD5_DIGEST_90_LEN	12


 extern int snmpV3AuthenticateOutgoingMsg
 (/* result >0:success,else fail */
 	u8 		*inAuthKey, 				/*secret key for authentication*/
  	u16 	inAuthKeyLen,
  	u8 		*inWholeMsg, 				/* unauthenticated complete message*/
  	u16 	inWholeMsgLen,  	
  	u8 		*outAuthParameters,    		/* authenticationParamemeter	*/
 	u16 	*outAuthParametersLen
 );
 
 
 extern int snmpV3AuthenticateIncomingMsg
 (/* result >0:success,else fail */
	  u8 	*inAuthKey,					/*secret key for authentication*/
	  u16 	inAuthKeyLen,
	  u8 	*inWholeMsg, 				/* as received on the wire*/
	  u16	inWholeMsgLen,
	  u8 	*inAuthParameters, 			/* as received on the wire*/
	  u16 	inAuthParametersLen
 );
 
 
 extern int snmpV3EncryptData
 (/* result >0:success,else fail */
	 u8 	*inEncryptKey, 				/* secret key for encryption*/
	 u16 	inEncryptKeyLen,
	 u8 	*inDataToEncrypt, 			/* data to encrypt (scopedPDU)*/
	 u16 	inDataToEncryptLen,
	 u8 	*outEncryptedData, 			/* encrypted data (encryptedPDU)*/
	 u16 	*outEncryptedDataLen,
	 u8 	*outPrivParameters, 		/* filled in by service provider*/
	 u16 	*outPrivParametersLen, 
	 ulong	runTime
 );
 
 
 extern int snmpV3DecryptData
 (/* result >0:success,else fail */
	 u8 	*inDecryptKey,				/*secret key for decryption*/
	 u16	inDecryptKeyLen,
	 u8 	*inPrivParameters,			/* as received on the wire*/
	 u16	inPrivParametersLen,
	 u8 	*inEncryptedData,			/* encrypted data (encryptedPDU)*/
	 u16	inEncryptedDataLen,
	 u8 	*outDecryptedData,			/*decrypted data (scopedPDU)*/
	 u16	*outDecryptedDataLen

 );
 
 
#endif















