#
# Copyright (c) 2003, 2013, 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_nssInitialize;
		Java_sun_security_pkcs11_Secmod_nssGetModuleList;

	local:
		*;
};
