;+#
;+# This Source Code Form is subject to the terms of the Mozilla Public
;+# License, v. 2.0. If a copy of the MPL was not distributed with this
;+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
;+#
;+# 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.
;+# Use the SEC_ASN1_GET / SEC_ASN1_SUB / SEC_ASN1_XTRN macros to access them.
;;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.
;+# Use the SEC_ASN1_GET / SEC_ASN1_SUB / SEC_ASN1_XTRN macros to access them.
;;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:
;+       *;
;+};
;+NSS_3.11.1 {
;+    global:
NSS_RegisterShutdown;
NSS_UnregisterShutdown;
SEC_ASN1EncodeUnsignedInteger;
SEC_RegisterDefaultHttpClient;
;+    local:
;+       *;
;+};
;+NSS_3.11.2 {
;+    global:
SECKEY_SignatureLen;
;+    local:
;+       *;
;+};
;+NSS_3.11.7 {
;+    global:
CERT_SetOCSPFailureMode;
CERT_OCSPCacheSettings;
CERT_ClearOCSPCache;
DER_GeneralizedDayToAscii;
DER_TimeChoiceDayToAscii;
DER_TimeToGeneralizedTime;
DER_TimeToGeneralizedTimeArena;
;+    local:
;+       *;
;+};
;+NSS_3.11.9 {
;+    global:
PK11_UnconfigurePKCS11;
;+    local:
;+       *;
;+};
;+NSS_3.12 { 	# NSS 3.12 release
;+    global:
CERT_CheckNameSpace;
CERT_EncodeCertPoliciesExtension;
CERT_EncodeInfoAccessExtension;
CERT_EncodeInhibitAnyExtension;
CERT_EncodeNoticeReference;
CERT_EncodePolicyConstraintsExtension;
CERT_EncodePolicyMappingExtension;
CERT_EncodeSubjectKeyID;
CERT_EncodeUserNotice;
CERT_FindCRLEntryReasonExten;
CERT_FindCRLNumberExten;
CERT_FindNameConstraintsExten;
CERT_GetClassicOCSPDisabledPolicy;
CERT_GetClassicOCSPEnabledHardFailurePolicy;
CERT_GetClassicOCSPEnabledSoftFailurePolicy;
CERT_GetPKIXVerifyNistRevocationPolicy;
CERT_GetUsePKIXForValidation;
CERT_GetValidDNSPatternsFromCert;
CERT_NewTempCertificate;
CERT_SetOCSPTimeout;
CERT_SetUsePKIXForValidation;
CERT_PKIXVerifyCert;
HASH_GetType;
NSS_InitWithMerge;
PK11_CreateMergeLog;
PK11_CreateGenericObject;
PK11_CreatePBEV2AlgorithmID;
PK11_DestroyMergeLog;
PK11_GenerateKeyPairWithOpFlags;
PK11_GetAllSlotsForCert;
PK11_GetPBECryptoMechanism;
PK11_IsRemovable;
PK11_MergeTokens;
PK11_WriteRawAttribute;
SECKEY_ECParamsToBasePointOrderLen;
SECKEY_ECParamsToKeySize;
SECMOD_DeleteModuleEx;
SEC_GetRegisteredHttpClient;
SEC_PKCS5IsAlgorithmPBEAlgTag;
VFY_CreateContextDirect;
VFY_CreateContextWithAlgorithmID;
VFY_VerifyDataDirect;
VFY_VerifyDataWithAlgorithmID;
VFY_VerifyDigestDirect;
VFY_VerifyDigestWithAlgorithmID;
;+    local:
;+       *;
;+};
;+NSS_3.12.1 { 	# NSS 3.12.1 release
;+    global:
CERT_NameToAsciiInvertible;
PK11_FindCertFromDERCertItem;
;+    local:
;+       *;
;+};
;+NSS_3.12.3 { 	# NSS 3.12.3 release
;+    global:
CERT_CompareCerts;
CERT_RegisterAlternateOCSPAIAInfoCallBack;
PK11_GetSymKeyHandle;
;+    local:
;+       *;
;+};
;+NSS_3.12.4 { 	# NSS 3.12.4 release
;+    global:
PK11_IsInternalKeySlot;
SECMOD_OpenNewSlot;
;+    local:
;+       *;
;+};
;+NSS_3.12.5 { 	# NSS 3.12.5 release
;+    global:
CERT_AddCertToListSorted;
NSS_InitContext;
NSS_ShutdownContext;
SECMOD_GetDefaultModDBFlag;
SECMOD_GetSkipFirstFlag;
;+    local:
;+       *;
;+};
;+NSS_3.12.6 { 	# NSS 3.12.6 release
;+    global:
CERT_CacheOCSPResponseFromSideChannel;
CERT_DistNamesFromCertList;
CERT_DupDistNames;
;+    local:
;+       *;
;+};
;+NSS_3.12.7 { 	# NSS 3.12.7 release
;+    global:
CERT_GetConstrainedCertificateNames;
;+    local:
;+       *;
;+};
;+NSS_3.12.9 {  # NSS 3.12.9 release
;+    global:
CERT_FindCertByNicknameOrEmailAddrForUsage;
PK11_DeriveWithTemplate;
PK11_FindCertsFromEmailAddress;
PK11_KeyGenWithTemplate;
SECMOD_RestartModules;
;+    local:
;+       *;
;+};
;+NSS_3.12.10 {  # NSS 3.12.10 release
;+    global:
CERT_AllocCERTRevocationFlags;
CERT_DestroyCERTRevocationFlags;
;+    local:
;+       *;
;+};
;+NSS_3.13 { 	# NSS 3.13 release
;+    global:
;;SECKEY_RSAPSSParamsTemplate DATA ;
NSS_Get_SECKEY_RSAPSSParamsTemplate;
NSS_GetVersion;
;+    local:
;+       *;
;+};
;+NSS_3.13.2 { 	# NSS 3.13.2 release
;+    global:
PK11_ImportEncryptedPrivateKeyInfoAndReturnKey;
;+    local:
;+       *;
;+};
;+NSS_3.14 { 	# NSS 3.14 release
;+    global:
CERT_CheckOCSPStatus;
CERT_DecodeOCSPRequest;
CERT_GetEncodedOCSPResponse;
PK11_GetBestSlotWithAttributes;
PK11_GetBestSlotMultipleWithAttributes;
PK11_PQG_ParamGenV2;
;+    local:
;+       *;
;+};
;+NSS_3.14.1 {    # NSS 3.14.1 release
;+    global:
CERT_CreateEncodedOCSPErrorResponse;
CERT_CreateEncodedOCSPSuccessResponse;
CERT_CreateOCSPSingleResponseGood;
CERT_CreateOCSPSingleResponseUnknown;
CERT_CreateOCSPSingleResponseRevoked;
;+    local:
;+       *;
;+};
;+NSS_3.14.3 { 	# NSS 3.14.3 release
;+    global:
PK11_SignWithSymKey;
;+    local:
;+       *;
;+};
;+NSS_3.15 { 	# NSS 3.15 release
;+    global:
CERT_EncodeNameConstraintsExtension;
PK11_Decrypt;
PK11_Encrypt;
CERT_PostOCSPRequest;
CERT_AddCertToListHead;
;+    local:
;+       *;
;+};
;+NSS_3.15.4 { 	# NSS 3.15.4 release
;+    global:
CERT_ForcePostMethodForOCSP;
CERT_GetSubjectNameDigest;
CERT_GetSubjectPublicKeyDigest;
;+    local:
;+       *;
;+};
;+NSS_3.16.1 { 	# NSS 3.16.1 release
;+    global:
PK11_ExportDERPrivateKeyInfo;
PK11_ExportPrivKeyInfo;
SECMOD_InternaltoPubMechFlags;
;+    local:
;+       *;
;+};
;+NSS_3.16.2 { 	# NSS 3.16.2 release
;+    global:
CERT_AddExtensionByOID;
CERT_GetGeneralNameTypeFromString;
PK11_PubEncrypt;
PK11_PrivDecrypt;
;+    local:
;+       *;
;+};
;+NSS_3.18 { 	# NSS 3.18 release
;+    global:
__PK11_SetCertificateNickname;
SEC_CheckCrlTimes;
SEC_GetCrlTimes;
;+    local:
;+       *;
;+};
;+NSS_3.19 { 	# NSS 3.19 release
;+    global:
CERT_GetImposedNameConstraints;
;+    local:
;+       *;
;+};
;+NSS_3.19.1 { 	# NSS 3.19.1 release
;+    global:
SECKEY_BigIntegerBitLength;
;+    local:
;+       *;
;+};
;+NSS_3.21 { 	# NSS 3.21 release
;+    global:
NSS_OptionGet;
NSS_OptionSet;
SECMOD_CreateModuleEx;
;+    local:
;+       *;
;+};
;+NSS_3.22 { 	# NSS 3.22 release
;+    global:
PK11_SignWithMechanism;
PK11_VerifyWithMechanism;
;+    local:
;+       *;
;+};
;+NSS_3.30 { 	# NSS 3.30 release
;+    global:
CERT_CompareAVA;
PK11_HasAttributeSet;
;+    local:
;+       *;
;+};
;+NSS_3.31 { 	# NSS 3.31 release
;+    global:
CERT_GetCertIsPerm;
CERT_GetCertIsTemp;
PK11_FindCertFromURI;
PK11_FindCertsFromURI;
PK11_GetModuleURI;
PK11_GetTokenURI;
;+    local:
;+       *;
;+};
;+NSS_3.33 { 	# NSS 3.33 release
;+    global:
CERT_FindCertByIssuerAndSNCX;
CERT_FindCertByNicknameOrEmailAddrCX;
CERT_FindCertByNicknameOrEmailAddrForUsageCX;
;+    local:
;+       *;
;+};
;+NSS_3.34 { 	# NSS 3.34 release
;+    global:
PK11_CreateManagedGenericObject;
SGN_NewContextWithAlgorithmID;
SEC_SignDataWithAlgorithmID;
SEC_DerSignDataWithAlgorithmID;
SEC_CreateSignatureAlgorithmParameters;
;+    local:
;+       *;
;+};
;+NSS_3.39 { 	# NSS 3.39 release
;+    global:
CERT_GetCertKeyType;
;+    local:
;+       *;
;+};
