// Copyright (c) 2001-2009 Objective Systems, Inc. (http://www.obj-sys.com) 
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
// which accompanies this distribution, and is available 
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//

/**
 * This file was generated by the Objective Systems ASN1C Compiler
 * (http://www.obj-sys.com).
 */
#ifndef SUPL_AUTH_REQ_H
#define SUPL_AUTH_REQ_H

#include <stdio.h>
#include <stdlib.h>
#include "rtkey.h"
#include "rtpersrc/asn1PerCppTypes.h"
#include "ASN1CBitStr.h"

/**
 * Header file for ASN.1 module SUPL-AUTH-REQ
 */
/**************************************************************/
/*                                                            */
/*  SETNonce                                                  */
/*                                                            */
/**************************************************************/

#define TV_SETNonce	(TM_UNIV|TM_PRIM|3)

struct ASN1T_SETNonce {
   OSUINT32  numbits;
   OSOCTET data[16];
   // ctors
   ASN1T_SETNonce () : numbits(0) {}
   ASN1T_SETNonce (OSUINT32 _numbits, const OSOCTET* _data) :
      numbits(_numbits) {
      OSCRTLMEMCPY (data, _data, sizeof(data));
   }
} ;

IMPORT_C int asn1PE_SETNonce (OSCTXT* pctxt, ASN1T_SETNonce* pvalue);

IMPORT_C int asn1PD_SETNonce (OSCTXT* pctxt, ASN1T_SETNonce* pvalue);

IMPORT_C void asn1Print_SETNonce
   (const char* name, ASN1T_SETNonce* pvalue);

/**************************************************************/
/*                                                            */
/*  KeyIdentity2                                              */
/*                                                            */
/**************************************************************/

#define TV_KeyIdentity2	(TM_UNIV|TM_PRIM|3)

struct ASN1T_KeyIdentity2 {
   OSUINT32  numbits;
   OSOCTET data[16];
   // ctors
   ASN1T_KeyIdentity2 () : numbits(0) {}
   ASN1T_KeyIdentity2 (OSUINT32 _numbits, const OSOCTET* _data) :
      numbits(_numbits) {
      OSCRTLMEMCPY (data, _data, sizeof(data));
   }
} ;

IMPORT_C int asn1PE_KeyIdentity2 (OSCTXT* pctxt, ASN1T_KeyIdentity2* pvalue);

IMPORT_C int asn1PD_KeyIdentity2 (OSCTXT* pctxt, ASN1T_KeyIdentity2* pvalue);

IMPORT_C void asn1Print_KeyIdentity2
   (const char* name, ASN1T_KeyIdentity2* pvalue);

/**************************************************************/
/*                                                            */
/*  SUPLAUTHREQ                                               */
/*                                                            */
/**************************************************************/

#define TV_SUPLAUTHREQ	(TM_UNIV|TM_CONS|16)

struct ASN1T_SUPLAUTHREQ {
   ASN1T_SETNonce sETNonce;
   ASN1T_KeyIdentity2 keyIdentity2;
   IMPORT_C ASN1T_SUPLAUTHREQ ();
} ;

IMPORT_C int asn1PE_SUPLAUTHREQ (OSCTXT* pctxt, ASN1T_SUPLAUTHREQ* pvalue);

IMPORT_C int asn1PD_SUPLAUTHREQ (OSCTXT* pctxt, ASN1T_SUPLAUTHREQ* pvalue);

IMPORT_C void asn1Print_SUPLAUTHREQ
   (const char* name, ASN1T_SUPLAUTHREQ* pvalue);

#endif
