#
# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# Define public interface.

SUNWprivate_1.1 {
	global:
		JNI_OnLoad;
		Java_sun_security_pkcs11_wrapper_PKCS11_initializeLibrary;
		Java_sun_security_pkcs11_wrapper_PKCS11_finalizeLibrary;
		Java_sun_security_pkcs11_wrapper_PKCS11_connect;
		Java_sun_security_pkcs11_wrapper_PKCS11_disconnect;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Initialize;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Finalize;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetInfo;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetSlotList;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetSlotInfo;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetTokenInfo;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetMechanismList;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetMechanismInfo;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1InitToken;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1InitPIN;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SetPIN;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1OpenSession;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CloseSession;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CloseAllSessions;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetSessionInfo;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetOperationState;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SetOperationState;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Login;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Logout;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CreateObject;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CopyObject;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DestroyObject;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetObjectSize;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetAttributeValue;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SetAttributeValue;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1FindObjectsInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1FindObjects;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1FindObjectsFinal;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1EncryptInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Encrypt;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1EncryptUpdate;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1EncryptFinal;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Decrypt;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptUpdate;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptFinal;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestSingle;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestUpdate;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestKey;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestFinal;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Sign;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignUpdate;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignFinal;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignRecoverInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignRecover;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1Verify;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyUpdate;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyFinal;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyRecoverInit;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1VerifyRecover;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DigestEncryptUpdate;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptDigestUpdate;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SignEncryptUpdate;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DecryptVerifyUpdate;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GenerateKey;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GenerateKeyPair;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1WrapKey;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1UnwrapKey;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1DeriveKey;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1SeedRandom;
		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GenerateRandom;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1GetFunctionStatus;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1CancelFunction;
#		Java_sun_security_pkcs11_wrapper_PKCS11_C_1WaitForSlotEvent;
		Java_sun_security_pkcs11_Secmod_nssGetLibraryHandle;
		Java_sun_security_pkcs11_Secmod_nssLoadLibrary;
		Java_sun_security_pkcs11_Secmod_nssVersionCheck;
		Java_sun_security_pkcs11_Secmod_nssInit;
		Java_sun_security_pkcs11_Secmod_nssGetModuleList;

	local:
		*;
};
