;+#
;+# 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 Netscape are
;+# Copyright (C) 2000 Netscape Communications Corporation.  All
;+# Rights Reserved.
;+#
;+# Contributor(s):
;+#
;+# Alternatively, the contents of this file may be used under the
;+# terms of the GNU General Public License Version 2 or later (the
;+# "GPL"), in which case the provisions of the GPL are applicable
;+# instead of those above.  If you wish to allow use of your
;+# version of this file only under the terms of the GPL and not to
;+# allow others to use your version of this file under the MPL,
;+# indicate your decision by deleting the provisions above and
;+# replace them with the notice and other provisions required by
;+# the GPL.  If you do not delete the provisions above, a recipient
;+# may use your version of this file under either the MPL or the
;+# GPL.
;+#
;+#
;+# 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 release
;+    global:
CERT_AddRDN;
CERT_CreateRDN;
CERT_CreateAVA;
CERT_CreateName;
;+    local:
;+       *;
;+};
