;+#
;+# ***** BEGIN LICENSE BLOCK *****
;+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
;+#
;+# The contents of this file are subject to the Mozilla Public License Version
;+# 1.1 (the "License"); you may not use this file except in compliance with
;+# the License. You may obtain a copy of the License at
;+# http://www.mozilla.org/MPL/
;+#
;+# Software distributed under the License is distributed on an "AS IS" basis,
;+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
;+# for the specific language governing rights and limitations under the
;+# License.
;+#
;+# The Original Code is the Netscape security libraries.
;+#
;+# The Initial Developer of the Original Code is
;+# Netscape Communications Corporation.
;+# Portions created by the Initial Developer are Copyright (C) 2000
;+# the Initial Developer. All Rights Reserved.
;+#
;+# Contributor(s):
;+#   Dr Stephen Henson <stephen.henson@gemplus.com>
;+#   Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
;+#
;+# Alternatively, the contents of this file may be used under the terms of
;+# either the GNU General Public License Version 2 or later (the "GPL"), or
;+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
;+# in which case the provisions of the GPL or the LGPL are applicable instead
;+# of those above. If you wish to allow use of your version of this file only
;+# under the terms of either the GPL or the LGPL, and not to allow others to
;+# use your version of this file under the terms of the MPL, indicate your
;+# decision by deleting the provisions above and replace them with the notice
;+# and other provisions required by the GPL or the LGPL. If you do not delete
;+# the provisions above, a recipient may use your version of this file under
;+# the terms of any one of the MPL, the GPL or the LGPL.
;+#
;+# ***** END LICENSE BLOCK *****
;+#
;+# OK, this file is meant to support SUN, LINUX, AIX and WINDOWS
;+#   1. For all unix platforms, the string ";-"  means "remove this line"
;+#   2. For all unix platforms, the string " DATA " will be removed from any 
;+#	line on which it occurs.
;+#   3. Lines containing ";+" will have ";+" removed on SUN and LINUX.
;+#      On AIX, lines containing ";+" will be removed.  
;+#   4. For all unix platforms, the string ";;" will thave the ";;" removed.
;+#   5. For all unix platforms, after the above processing has taken place,
;+#    all characters after the first ";" on the line will be removed.  
;+#    And for AIX, the first ";" will also be removed.
;+#  This file is passed directly to windows. Since ';' is a comment, all UNIX
;+#   directives are hidden behind ";", ";+", and ";-"
;+NSS_3.2 {       # NSS 3.2 release
;+    global:
LIBRARY nss3	;-
EXPORTS		;-
ATOB_AsciiToData;
BTOA_ConvertItemToAscii;
BTOA_DataToAscii;
CERT_AsciiToName;
CERT_CertTimesValid;
CERT_CheckCertValidTimes;
CERT_CreateCertificateRequest;
CERT_ChangeCertTrust;
CERT_DecodeDERCrl;
CERT_DestroyCertificateRequest;
CERT_DestroyCertList;
CERT_DestroyName;
CERT_EnableOCSPChecking;
CERT_FormatName;
CERT_DestroyCertificate;
CERT_DupCertificate;
CERT_FreeDistNames;
CERT_FreeNicknames;
CERT_GetAVATag;
CERT_GetCertEmailAddress;
CERT_GetCertNicknames;
CERT_GetCertIssuerAndSN;
CERT_GetCertTrust;
CERT_GetCertUid;
CERT_GetCommonName;
CERT_GetCountryName;
CERT_GetDBContentVersion;
CERT_GetDefaultCertDB;
CERT_GetDomainComponentName;
CERT_GetLocalityName;
CERT_GetOrgName;
CERT_GetOrgUnitName;
CERT_GetSSLCACerts;
CERT_GetSlopTime;
CERT_GetStateName;
CERT_ImportCAChain;
CERT_NameToAscii;
CERT_RFC1485_EscapeAndQuote;
CERT_SetSlopTime;
CERT_VerifyCertName;
CERT_VerifyCertNow;
DER_UTCDayToAscii;
DER_UTCTimeToAscii;
DER_GeneralizedTimeToTime;
NSS_Init;
NSS_Initialize;
NSS_InitReadWrite;
NSS_NoDB_Init;
NSS_Shutdown;
NSS_VersionCheck;
PK11_Authenticate;
PK11_ChangePW;
PK11_CheckUserPassword;
PK11_CipherOp;
PK11_CloneContext;
PK11_ConfigurePKCS11;
PK11_CreateContextBySymKey;
PK11_CreateDigestContext;
PK11_DestroyContext;
PK11_DestroyTokenObject;
PK11_DigestBegin;
PK11_DigestOp;
PK11_DigestFinal;
PK11_DoesMechanism;
PK11_FindCertFromNickname;
PK11_FindCertFromDERCert;
PK11_FindCertByIssuerAndSN;
PK11_FindKeyByAnyCert;
PK11_FindKeyByDERCert;
PK11_FindSlotByName;
PK11_Finalize;
PK11_FortezzaHasKEA;
PK11_FreeSlot;
PK11_FreeSlotList;
PK11_FreeSymKey;
PK11_GenerateKeyPair;
PK11_GenerateRandom;
PK11_GenerateNewParam;
PK11_GetAllTokens;
PK11_GetBlockSize;
PK11_GetFirstSafe;
PK11_GetInternalKeySlot;
PK11_GetInternalSlot;
PK11_GetSlotName;
PK11_GetTokenName;
PK11_HashBuf;
PK11_IsFIPS;
PK11_IsFriendly;
PK11_IsInternal;
PK11_IsHW;
PK11_IsPresent;
PK11_IsReadOnly;
PK11_KeyGen;
PK11_ListCerts;
PK11_NeedLogin;
PK11_RandomUpdate;
PK11_SetPasswordFunc;
PK11_SetSlotPWValues;
PORT_Alloc;
PORT_Free;
PORT_GetError;
PORT_SetError;
PORT_SetUCS4_UTF8ConversionFunction;
PORT_SetUCS2_UTF8ConversionFunction;
PORT_SetUCS2_ASCIIConversionFunction;
SECITEM_CopyItem;
SECITEM_DupItem;
SECITEM_FreeItem;
SECITEM_ZfreeItem;
SECKEY_ConvertToPublicKey;
SECKEY_CopyPrivateKey;
SECKEY_CreateSubjectPublicKeyInfo;
SECKEY_DestroyPrivateKey;
SECKEY_DestroySubjectPublicKeyInfo;
SECMOD_IsModulePresent;
SECOID_FindOIDTagDescription;
SECOID_GetAlgorithmTag;
SEC_DeletePermCertificate;
SEC_DeletePermCRL;
SEC_DerSignData;
SEC_DestroyCrl;
SEC_FindCrlByDERCert;
SEC_FindCrlByName;
SEC_LookupCrls;
SEC_NewCrl;
;+#
;+# The following symbols are exported only to make libssl3.so work. 
;+# These are still private!!!
;+#
__CERT_NewTempCertificate;
__PK11_CreateContextByRawKey;
__PK11_GetKeyData;
__nss_InitLock;
CERT_CertChainFromCert;
CERT_DestroyCertificateList;
CERT_DupCertList;
CERT_ExtractPublicKey;
CERT_FindCertByName;
DER_Lengths;
DSAU_DecodeDerSig;
DSAU_EncodeDerSig;
HASH_GetHashObject;
NSSRWLock_Destroy;
NSSRWLock_HaveWriteLock;
NSSRWLock_LockRead;
NSSRWLock_LockWrite;
NSSRWLock_New;
NSSRWLock_UnlockRead;
NSSRWLock_UnlockWrite;
NSS_PutEnv;
PK11_Derive;
PK11_DeriveWithFlags;
PK11_DigestKey;
PK11_FindBestKEAMatch;
PK11_FindFixedKey;
PK11_GenerateFortezzaIV;
PK11_GetBestKeyLength;
PK11_GetBestSlot;
PK11_GetBestSlotMultiple;
PK11_GetBestWrapMechanism;
PK11_GetCurrentWrapIndex;
PK11_GetMechanism;
PK11_GetModuleID;
PK11_GetPrivateModulusLen;
PK11_GetSlotFromKey;
PK11_GetSlotFromPrivateKey;
PK11_GetSlotID;
PK11_GetSlotSeries;
PK11_GetTokenInfo;
PK11_GetWindow;
PK11_GetWrapKey;
PK11_IVFromParam;
PK11_MakeKEAPubKey;
PK11_ParamFromIV;
PK11_PubDecryptRaw;
PK11_PubDerive;
PK11_PubEncryptRaw;
PK11_PubUnwrapSymKey;
PK11_PubWrapSymKey;
PK11_ReferenceSymKey;
PK11_RestoreContext;
PK11_SaveContext;
PK11_SetFortezzaHack;
PK11_SetWrapKey;
PK11_Sign;
PK11_SignatureLen;
PK11_SymKeyFromHandle;
PK11_TokenExists;
PK11_UnwrapSymKey;
PK11_UnwrapSymKeyWithFlags;
PK11_Verify;
PK11_VerifyKeyOK;
PK11_WrapSymKey;
PORT_ArenaAlloc;
PORT_ArenaZAlloc;
PORT_FreeArena;
PORT_NewArena;
PORT_Realloc;
PORT_ZAlloc;
PORT_ZFree;
RSA_FormatBlock;
SECITEM_CompareItem;
SECKEY_CreateRSAPrivateKey;
SECKEY_DestroyPublicKey;
SECKEY_PublicKeyStrength;
SECKEY_UpdateCertPQG;
SECMOD_LookupSlot;
SGN_Begin;
SGN_DestroyContext;
SGN_End;
SGN_NewContext;
SGN_Update;
VFY_Begin;
VFY_CreateContext;
VFY_DestroyContext;
VFY_End;
VFY_Update;
;+#
;+# The following symbols are exported only to make libsmime3.so work. 
;+# These are still private!!!
;+#
__CERT_ClosePermCertDB;
__CERT_DecodeDERCertificate;
__CERT_TraversePermCertsForNickname;
__CERT_TraversePermCertsForSubject;
__PBE_CreateContext;
__PBE_DestroyContext;
__PBE_GenerateBits;
ATOB_ConvertAsciiToItem;
CERT_AddCertToListTail;
CERT_CertListFromCert;
CERT_DestroyCertArray;
CERT_FindCertByDERCert;
CERT_FindCertByIssuerAndSN;
CERT_FindSMimeProfile;
CERT_ImportCerts;
CERT_NewCertList;
CERT_OpenCertDBFilename;
CERT_SaveSMimeProfile;
CERT_VerifyCert;
DER_GetInteger;
DER_TimeToUTCTime;
DER_UTCTimeToTime;
PK11_AlgtagToMechanism;
PK11_BlockData;
PK11_CreatePBEAlgorithmID;
PK11_DestroyObject;
PK11_ExportEncryptedPrivateKeyInfo;
PK11_ExportPrivateKeyInfo;
PK11_FindCertAndKeyByRecipientList;
PK11_FindCertAndKeyByRecipientListNew;
PK11_FindCertInSlot;
PK11_FindPrivateKeyFromCert;
PK11_FortezzaMapSig;
PK11_GetKeyLength;
PK11_GetKeyStrength;
PK11_ImportCertForKeyToSlot;
PK11_ImportEncryptedPrivateKeyInfo;
PK11_ImportPrivateKeyInfo;
PK11_MapPBEMechanismToCryptoMechanism;
PK11_PBEKeyGen;
PK11_ParamFromAlgid;
PK11_ParamToAlgid;
PK11_TraverseCertsForNicknameInSlot;
PK11_TraverseCertsForSubjectInSlot;
PORT_ArenaGrow;
PORT_ArenaMark;
PORT_ArenaRelease;
PORT_ArenaStrdup;
PORT_ArenaUnmark;
PORT_UCS2_ASCIIConversion;
PORT_UCS2_UTF8Conversion;
SECITEM_AllocItem;
SECKEY_CopyEncryptedPrivateKeyInfo;
SECKEY_CopyPrivateKeyInfo;
SECKEY_DestroyEncryptedPrivateKeyInfo;
SECKEY_DestroyPrivateKeyInfo;
SECOID_CompareAlgorithmID;
SECOID_CopyAlgorithmID;
SECOID_DestroyAlgorithmID;
SECOID_FindOID;
SECOID_FindOIDByTag;
SECOID_FindOIDTag;
SECOID_SetAlgorithmID;
SEC_ASN1DecodeInteger;
SEC_ASN1DecodeItem;
SEC_ASN1DecoderClearFilterProc;
SEC_ASN1DecoderClearNotifyProc;
SEC_ASN1DecoderFinish;
SEC_ASN1DecoderSetFilterProc;
SEC_ASN1DecoderSetNotifyProc;
SEC_ASN1DecoderStart;
SEC_ASN1DecoderUpdate;
SEC_ASN1Encode;
SEC_ASN1EncodeInteger;
SEC_ASN1EncodeItem;
SEC_ASN1EncoderClearNotifyProc;
SEC_ASN1EncoderClearStreaming;
SEC_ASN1EncoderClearTakeFromBuf;
SEC_ASN1EncoderFinish;
SEC_ASN1EncoderSetNotifyProc;
SEC_ASN1EncoderSetStreaming;
SEC_ASN1EncoderSetTakeFromBuf;
SEC_ASN1EncoderStart;
SEC_ASN1EncoderUpdate;
SEC_ASN1LengthLength;
SEC_PKCS5GetCryptoAlgorithm;
SEC_PKCS5GetKeyLength;
SEC_PKCS5GetPBEAlgorithm;
SEC_PKCS5IsAlgorithmPBEAlg;
SEC_SignData;
SGN_CompareDigestInfo;
SGN_CopyDigestInfo;
SGN_CreateDigestInfo;
SGN_DestroyDigestInfo;
SGN_Digest;
VFY_VerifyData;
VFY_VerifyDigest;
;+#
;+# Data objects
;+#
;+# Don't export these DATA symbols on Windows because they don't work right.
;;CERT_CrlTemplate DATA ;
;;CERT_SignedDataTemplate DATA ;
;;CERT_CertificateTemplate DATA ;
;;CERT_CertificateRequestTemplate DATA ;
;;CERT_IssuerAndSNTemplate DATA ;
;;CERT_SetOfSignedCrlTemplate DATA ;
;;SECKEY_DSAPublicKeyTemplate DATA ;
;;SECKEY_EncryptedPrivateKeyInfoTemplate DATA ;
;;SECKEY_PointerToEncryptedPrivateKeyInfoTemplate DATA ;
;;SECKEY_PointerToPrivateKeyInfoTemplate DATA ;
;;SECKEY_PrivateKeyInfoTemplate DATA ;
;;SECKEY_RSAPublicKeyTemplate DATA ;
;;SECOID_AlgorithmIDTemplate DATA ;
;;SEC_AnyTemplate DATA ;
;;SEC_BMPStringTemplate DATA ;
;;SEC_BitStringTemplate DATA ;
;;SEC_GeneralizedTimeTemplate DATA ;
;;SEC_IA5StringTemplate DATA ;
;;SEC_IntegerTemplate DATA ;
;;SEC_ObjectIDTemplate DATA ;
;;SEC_OctetStringTemplate DATA ;
;;SEC_PointerToAnyTemplate DATA ;
;;SEC_PointerToOctetStringTemplate DATA ;
;;SEC_SetOfAnyTemplate DATA ;
;;SEC_UTCTimeTemplate DATA ;
;;sgn_DigestInfoTemplate DATA ;
NSS_Get_CERT_CrlTemplate;
NSS_Get_CERT_SignedDataTemplate;
NSS_Get_CERT_CertificateTemplate;
NSS_Get_CERT_CertificateRequestTemplate;
NSS_Get_CERT_IssuerAndSNTemplate;
NSS_Get_CERT_SetOfSignedCrlTemplate;
NSS_Get_SECKEY_DSAPublicKeyTemplate;
NSS_Get_SECKEY_EncryptedPrivateKeyInfoTemplate;
NSS_Get_SECKEY_PointerToEncryptedPrivateKeyInfoTemplate;
NSS_Get_SECKEY_PointerToPrivateKeyInfoTemplate;
NSS_Get_SECKEY_PrivateKeyInfoTemplate;
NSS_Get_SECKEY_RSAPublicKeyTemplate;
NSS_Get_SECOID_AlgorithmIDTemplate;
NSS_Get_SEC_AnyTemplate;
NSS_Get_SEC_BMPStringTemplate;
NSS_Get_SEC_BitStringTemplate;
NSS_Get_SEC_GeneralizedTimeTemplate;
NSS_Get_SEC_IA5StringTemplate;
NSS_Get_SEC_IntegerTemplate;
NSS_Get_SEC_ObjectIDTemplate;
NSS_Get_SEC_OctetStringTemplate;
NSS_Get_SEC_PointerToAnyTemplate;
NSS_Get_SEC_PointerToOctetStringTemplate;
NSS_Get_SEC_SetOfAnyTemplate;
NSS_Get_SEC_UTCTimeTemplate;
NSS_Get_sgn_DigestInfoTemplate;
;+# commands
CERT_DecodeBasicConstraintValue;
CERT_DecodeOidSequence;
CERT_DecodeUserNotice;
CERT_DecodeCertificatePoliciesExtension;
CERT_DestroyCertificatePoliciesExtension;
CERT_FindCertByNicknameOrEmailAddr;
CERT_FindCertByNickname;
CERT_GenTime2FormattedAscii;
CERT_Hexify;
CERT_CompareName;
PK11SDR_Encrypt;
PK11SDR_Decrypt;
NSSBase64Decoder_Create;
NSSBase64Decoder_Destroy;
NSSBase64Decoder_Update;
NSSBase64Encoder_Create;
NSSBase64Encoder_Destroy;
NSSBase64Encoder_Update;
;+#PK11_DoPassword;
;+#PK11_FindKeyByKeyID;
PK11_InitPin;
PK11_NeedUserInit;
;+    local:
;+       *;
;+};
;+NSS_3.2.1 {       # NSS 3.2.1 release
;+    global:
CERT_AddRDN;
CERT_CreateRDN;
CERT_CreateAVA;
CERT_CreateName;
;+    local:
;+       *;
;+};
;+NSS_3.3 { 	# NSS 3.3. release
;+    global:
CERT_CheckCertUsage;
CERT_FindCertIssuer;
PK11_GetModule;
SECKEY_CreateDHPrivateKey;
SECKEY_GetPublicKeyType;
SECMOD_AddNewModule;
;+#
;+# The following symbols are exported only to make JSS work.
;+# These are still private!!!
;+#
CERT_DisableOCSPChecking;
CERT_DisableOCSPDefaultResponder;
CERT_EnableOCSPDefaultResponder;
CERT_GetCertTimes;
CERT_ImportCAChainTrusted;
CERT_ImportCRL;
CERT_IsCACert;
CERT_IsCADERCert;
CERT_SetOCSPDefaultResponder;
PBE_CreateContext;
PBE_DestroyContext;
PBE_GenerateBits;
PK11_CheckSSOPassword;
PK11_CopySymKeyForSigning;
PK11_DeleteTokenCertAndKey;
PK11_DEREncodePublicKey;
PK11_ExtractKeyValue;
PK11_FindCertsFromNickname;
PK11_FindKeyByKeyID;
PK11_GetIVLength;
PK11_GetKeyData;
PK11_GetKeyType;
PK11_GetLowLevelKeyIDForCert;
PK11_GetLowLevelKeyIDForPrivateKey;
PK11_GetSlotPWValues;
PK11_ImportCertForKey;
PK11_ImportDERCertForKey;
PK11_ImportDERPrivateKeyInfo;
PK11_ImportSymKey;
PK11_IsLoggedIn;
PK11_KeyForDERCertExists;
PK11_KeyForCertExists;
PK11_ListPrivateKeysInSlot;
PK11_ListCertsInSlot;
PK11_Logout;
PK11_NeedPWInit;
PK11_MakeIDFromPubKey;
PK11_PQG_DestroyParams;
PK11_PQG_DestroyVerify;
PK11_PQG_GetBaseFromParams;
PK11_PQG_GetCounterFromVerify;
PK11_PQG_GetHFromVerify;
PK11_PQG_GetPrimeFromParams;
PK11_PQG_GetSeedFromVerify;
PK11_PQG_GetSubPrimeFromParams;
PK11_PQG_NewParams;
PK11_PQG_NewVerify;
PK11_PQG_ParamGen;
PK11_PQG_ParamGenSeedLen;
PK11_PQG_VerifyParams;
PK11_ReferenceSlot;
PK11_SeedRandom;
PK11_UnwrapPrivKey;
PK11_VerifyRecover;
PK11_WrapPrivKey;
SEC_CertNicknameConflict;
SEC_PKCS5GetIV;
SECMOD_DeleteInternalModule;
SECMOD_DestroyModule;
SECMOD_GetDefaultModuleList;
SECMOD_GetDefaultModuleListLock;
SECMOD_GetInternalModule;
SECMOD_GetReadLock;
SECMOD_ReferenceModule;
SECMOD_ReleaseReadLock;
SECKEY_AddPrivateKeyToListTail;
SECKEY_EncodeDERSubjectPublicKeyInfo;
SECKEY_ExtractPublicKey;
SECKEY_DestroyPrivateKeyList;
SECKEY_GetPrivateKeyType;
SECKEY_HashPassword;
SECKEY_ImportDERPublicKey;
SECKEY_NewPrivateKeyList;
SECKEY_RemovePrivateKeyListNode;
VFY_EndWithSignature;
;+    local:
;+       *;
;+};
;+NSS_3.3.1 { 	# NSS 3.3.1 release
;+    global:
;+#
;+# The following symbols are exported only to make libsmime3.so work. 
;+# These are still private!!!
;+#
PK11_CreatePBEParams;
PK11_DestroyPBEParams;
;+    local:
;+       *;
;+};
;+NSS_3.4 { 	# NSS 3.4 release
;+    global:
SECMOD_AddNewModuleEx;
SECMOD_DeleteModule;
SECMOD_FreeModuleSpecList;
SECMOD_GetModuleSpecList;
SECMOD_LoadModule;
SECMOD_LoadUserModule;
SECMOD_UnloadUserModule;
SECMOD_UpdateModule;
;+# for PKCS #12
PK11_RawPBEKeyGen;
;+# for PSM
__CERT_AddTempCertToPerm;
CERT_AddOKDomainName;
CERT_CopyName;
CERT_CreateSubjectCertList;
CERT_DecodeAVAValue;
;+#CERT_DecodeCertFromPackage;
CERT_DecodeGeneralName;
CERT_DecodeTrustString;
CERT_DerNameToAscii;
CERT_EncodeGeneralName;
CERT_FilterCertListByCANames;
CERT_FilterCertListByUsage;
CERT_FindCertExtension;
CERT_FindKeyUsageExtension;
CERT_FindUserCertByUsage;
CERT_FindUserCertsByUsage;
CERT_GetCertChainFromCert;
CERT_GetOCSPAuthorityInfoAccessLocation;
CERT_KeyFromDERCrl;
CERT_MakeCANickname;
CERT_NicknameStringsFromCertList;
CERT_VerifySignedData;
DER_Encode;
HASH_Begin;
HASH_Create;
HASH_Destroy;
HASH_End;
HASH_ResultLen;
HASH_Update;
NSSBase64_DecodeBuffer;   # from Stan
NSSBase64_EncodeItem;   # from Stan
PK11_GetKeyGen;
PK11_GetMinimumPwdLength;
PK11_GetNextSafe;
PK11_GetPadMechanism;
PK11_GetSlotInfo;
PK11_HasRootCerts;
PK11_IsDisabled;
PK11_LoadPrivKey;
PK11_LogoutAll;
PK11_MechanismToAlgtag;
PK11_ResetToken;
PK11_TraverseSlotCerts;
SEC_ASN1Decode;
SECKEY_CopySubjectPublicKeyInfo;
SECMOD_CreateModule;
SECMOD_FindModule;
SECMOD_FindSlot;
SECMOD_PubCipherFlagstoInternal;
SECMOD_PubMechFlagstoInternal;
;;CERT_NameTemplate DATA ;
;;CERT_SubjectPublicKeyInfoTemplate DATA ;
;;SEC_BooleanTemplate DATA ;
;;SEC_NullTemplate DATA ;
;;SEC_SignedCertificateTemplate DATA ;
;;SEC_UTF8StringTemplate DATA ;
NSS_Get_CERT_NameTemplate;
NSS_Get_CERT_SubjectPublicKeyInfoTemplate;
NSS_Get_SEC_BooleanTemplate;
NSS_Get_SEC_NullTemplate;
NSS_Get_SEC_SignedCertificateTemplate;
NSS_Get_SEC_UTF8StringTemplate;
;+# for JSS
PK11_DeleteTokenPrivateKey;
PK11_DeleteTokenPublicKey;
PK11_DeleteTokenSymKey;
PK11_GetNextSymKey;
PK11_GetPQGParamsFromPrivateKey;
PK11_GetPrivateKeyNickname;
PK11_GetPublicKeyNickname;
PK11_GetSymKeyNickname;
PK11_ImportDERPrivateKeyInfoAndReturnKey;
PK11_ImportPrivateKeyInfoAndReturnKey;
PK11_ImportPublicKey;
PK11_ImportSymKeyWithFlags;
PK11_ListFixedKeysInSlot;
PK11_ListPrivKeysInSlot;
PK11_ListPublicKeysInSlot;
PK11_ProtectedAuthenticationPath;
PK11_SetPrivateKeyNickname;
PK11_SetPublicKeyNickname;
PK11_SetSymKeyNickname;
SECKEY_DecodeDERSubjectPublicKeyInfo;
SECKEY_DestroyPublicKeyList;
;+# for debugging
nss_DumpCertificateCacheInfo;
;+    local:
;+       *;
;+};
;+NSS_3.5 { 	# cert creation APIs used by certutil
;+    global:
CERT_AddExtension;
CERT_CopyRDN;
CERT_CreateCertificate;
CERT_CreateValidity;
CERT_DestroyValidity;
CERT_EncodeAndAddBitStrExtension;
CERT_EncodeAuthKeyID;
CERT_EncodeBasicConstraintValue;
CERT_EncodeCRLDistributionPoints;
CERT_FinishExtensions;
CERT_StartCertExtensions;
DER_AsciiToTime;
PK11_ImportCert;
PORT_Strdup;
SECMOD_CanDeleteInternalModule;
;+    local:
;+       *;
;+};
;+NSS_3.6 { 	# NSS 3.6 release
;+    global:
CERT_AddOCSPAcceptableResponses;
CERT_CompleteCRLDecodeEntries;
CERT_CreateOCSPCertID;
CERT_CreateOCSPRequest;
CERT_DecodeDERCrlWithFlags;
CERT_DecodeOCSPResponse;
CERT_DestroyOCSPCertID;
CERT_DestroyOCSPRequest;
CERT_EncodeOCSPRequest;
CERT_FilterCertListForUserCerts;
CERT_GetOCSPResponseStatus;
CERT_GetOCSPStatusForCertID;
CERT_IsUserCert;
CERT_RemoveCertListNode;
CERT_VerifyCACertForUsage;
CERT_VerifyCertificate;
CERT_VerifyCertificateNow;
CERT_VerifyOCSPResponseSignature;
PK11_ConvertSessionPrivKeyToTokenPrivKey;
PK11_ConvertSessionSymKeyToTokenSymKey;
PK11_GetModInfo;
PK11_GetPBEIV;
PK11_ImportCRL;
PK11_ImportDERCert;
PK11_PubUnwrapSymKeyWithFlags;
PK11_SaveContextAlloc;
PK11_TokenKeyGen;
SEC_QuickDERDecodeItem;
SECKEY_CopyPublicKey;
;+    local:
;+       *;
;+};
;+NSS_3.7 { 	# NSS 3.7 release
;+    global:
CERT_CRLCacheRefreshIssuer;
CERT_DestroyOCSPResponse;
CERT_EncodeAltNameExtension;
CERT_FindCertBySubjectKeyID;
CERT_FindSubjectKeyIDExtension;
CERT_GetFirstEmailAddress;
CERT_GetNextEmailAddress;
CERT_VerifySignedDataWithPublicKey;
CERT_VerifySignedDataWithPublicKeyInfo;
PK11_WaitForTokenEvent;
;+    local:
;+       *;
;+};
;+NSS_3.7.1 { 	# NSS 3.7.1 release
;+    global:
PK11_TokenRefresh;
;+    local:
;+       *;
;+};
;+NSS_3.8 { 	# NSS 3.8 release
;+    global:
CERT_IsRootDERCert;
HASH_GetHashObjectByOidTag;
HASH_GetHashTypeByOidTag;
PK11_GetDefaultArray;
PK11_GetDefaultFlags;
PK11_GetDisabledReason;
PK11_UpdateSlotAttribute;
PK11_UserEnableSlot;
PK11_UserDisableSlot;
SECITEM_ItemsAreEqual;
SECKEY_CreateECPrivateKey;
SECKEY_PublicKeyStrengthInBits;
;+    local:
;+       *;
;+};
;+NSS_3.9 { 	# NSS 3.9 release
;+    global:
CERT_DestroyOidSequence;
CERT_GetOidString;
;;CERT_TimeChoiceTemplate DATA ;
DER_DecodeTimeChoice;
DER_EncodeTimeChoice;
DSAU_DecodeDerSigToLen;
DSAU_EncodeDerSigWithLen;
NSS_Get_CERT_TimeChoiceTemplate;
PK11_DeriveWithFlagsPerm;
PK11_ExportEncryptedPrivKeyInfo;
PK11_FindSlotsByNames;
PK11_GetSymKeyType;
PK11_MoveSymKey;
PK11_PubDeriveWithKDF;
PK11_PubUnwrapSymKeyWithFlagsPerm;
PK11_UnwrapSymKeyWithFlagsPerm;
SECITEM_ArenaDupItem;
SECMOD_GetDBModuleList;
SECMOD_GetDeadModuleList;
SEC_ASN1DecoderAbort;
SEC_ASN1EncoderAbort;
SEC_DupCrl;
;+    local:
;+       *;
;+};
;+NSS_3.9.2 { 	# NSS 3.9.2 release
;+    global:
NSS_IsInitialized;
PK11_DestroyGenericObject;
PK11_DestroyGenericObjects;
PK11_FindGenericObjects;
PK11_GetNextGenericObject;
PK11_GetPrevGenericObject;
PK11_LinkGenericObject;
PK11_ReadRawAttribute;
PK11_UnlinkGenericObject;
;+    local:
;+       *;
;+};
;+NSS_3.9.3 { 	# NSS 3.9.3 release
;+    global:
PK11_GetCertFromPrivateKey;
PK11_PrivDecryptPKCS1;
PK11_PubEncryptPKCS1;
SECMOD_CancelWait;
SECMOD_HasRemovableSlots;
SECMOD_UpdateSlotList;
SECMOD_WaitForAnyTokenEvent;
;+    local:
;+       *;
;+};
;+NSS_3.10 { 	# NSS 3.10 release
;+    global:
CERT_CacheCRL;
CERT_DecodeAltNameExtension;
CERT_DecodeAuthInfoAccessExtension;
CERT_DecodeAuthKeyID;
CERT_DecodeCRLDistributionPoints;
CERT_DecodeNameConstraintsExtension;
CERT_DecodePrivKeyUsagePeriodExtension;
CERT_DestroyUserNotice;
CERT_FinishCertificateRequestAttributes;
CERT_GetCertificateNames;
CERT_GetCertificateRequestExtensions;
CERT_GetNextGeneralName;
CERT_GetNextNameConstraint;
CERT_GetPrevGeneralName;
CERT_GetPrevNameConstraint;
CERT_MergeExtensions;
CERT_StartCertificateRequestAttributes;
CERT_StartCRLEntryExtensions;
CERT_StartCRLExtensions;
CERT_UncacheCRL;
HASH_Clone;
HASH_HashBuf;
HASH_ResultLenByOidTag;
HASH_ResultLenContext;
SEC_GetSignatureAlgorithmOidTag;
SECKEY_CacheStaticFlags;
SECOID_AddEntry;
;+#
;+# Data objects
;+#
;+# Don't export these DATA symbols on Windows because they don't work right.
;;CERT_SequenceOfCertExtensionTemplate DATA ;
;;CERT_SignedCrlTemplate DATA ;
NSS_Get_CERT_SequenceOfCertExtensionTemplate;
NSS_Get_CERT_SignedCrlTemplate;
;+    local:
;+       *;
;+};
;+NSS_3.10.2 { 	# NSS 3.10.2 release
;+    global:
PK11_TokenKeyGenWithFlags;
PK11_GenerateKeyPairWithFlags;
;+    local:
;+       *;
;+};
;+NSS_3.11 { 	# NSS 3.11 release
;+    global:
CERT_CompareValidityTimes;
PK11_CopyTokenPrivKeyToSessionPrivKey;
PK11_FreeSlotListElement;
PK11_GenerateRandomOnSlot;
PK11_GetSymKeyUserData;
PK11_MapSignKeyType;
PK11_SetSymKeyUserData;
SECMOD_CloseUserDB;
SECMOD_HasRootCerts;
SECMOD_OpenUserDB;
;+    local:
;+       *;
;+};
