JSS needs to handle ECC keys and certs

ASSIGNED
Unassigned

Status

JSS
Library
ASSIGNED
12 years ago
8 years ago

People

(Reporter: Robert Relyea, Unassigned)

Tracking

unspecified
x86
Windows XP

Details

Attachments

(3 attachments, 5 obsolete attachments)

(Reporter)

Description

12 years ago
JSS 3.7 needs to handle ECC keys and certs 3.7 uses Java 1.4, which does not have EC interfaces defined, so we need to create temporary interfaces.
(Reporter)

Comment 1

12 years ago
Created attachment 208036 [details] [diff] [review]
Add ECC to JSS 3.7
Attachment #208036 - Flags: review?(nkwan)
(Reporter)

Updated

12 years ago
Status: NEW → ASSIGNED
Depends on: 320583
Target Milestone: --- → 3.6
(Reporter)

Comment 2

12 years ago
This patch is for the JSS_3_X_BRANCH.

bob

Comment 3

12 years ago
Looks good

Comment 4

12 years ago
This should go in to the tip of JSS currently JSS 4.2. What is the reason why 
you want JSS 3.6? Can you not make the move to JSS 4.2?
(Reporter)

Comment 5

12 years ago
Our server products that need it need it in a JSS 3.7 release. I don't know way they aren't on JSS 4.x (possibly a problem with going to Java 1.5).

IS the JSS_3_X_BRANCH 3.6, or does 3.6 have a separate branch.

bob

Comment 6

12 years ago
JSS 4.x requires JDK 1.4 or higher. We should move to JSS 5.x when we 
want JSS to require JDK 1.5 at minimum. I did not check if 3.6
has a separate branch, but I would ask that rather than checking 
this in for JSS 3.7 you check it in to tip of JSS 4.2 (after NSS has turned
on ECC), and move your products to JSS 4.2. 
(Reporter)

Comment 7

12 years ago
Created attachment 210435 [details] [diff] [review]
Same patch for the jsstip

This patch also adds the following:

the option 'auto' to all.pl. auto automatically chooses the /dist directory from the current build tree.

support for SHA256,384, & 512 with ECC.
Attachment #208036 - Attachment is obsolete: true
Attachment #210435 - Flags: review?(nkwan)
Attachment #208036 - Flags: review?(nkwan)
(Reporter)

Updated

12 years ago
Attachment #210435 - Flags: superreview?(glen.beasley)

Comment 8

12 years ago
Bob, the patch looks good, and I believe I am testing with your code changes already with certificate system.

I do the following the following problems which is not part of your patch.
Let me know if you want to file separate bugs.

(1) Problem in Java_org_mozilla_jss_ssl_SSLServerSocket_setServerCert

In SSLServerSocket.c, there is a function called Java_org_mozilla_jss_ssl_SSLServerSocket_setServerCert. In there,
we pass in "kt_rsa" into SSL_ConfigSecureServer regardless of
the real private key type. The SSL_ConfigSecureServer function has
the following check, which invalidate a server with an EC key.

    if (kea != ssl_FindCertKEAType(cert)) {
        PORT_SetError(SSL_ERROR_CERT_KEA_MISMATCH);
    return SECFailure;
    }

Updated

12 years ago
Attachment #210435 - Flags: review?(nkwan) → review+

Updated

12 years ago
Attachment #210435 - Flags: superreview?(glen.beasley) → superreview+

Comment 9

12 years ago
Created attachment 211884 [details] [diff] [review]
build fix

this patch fixes the build break on the tip, it is not 
correct (QA still fails), because I believe bob 
had an incomplete checkin.
Attachment #210435 - Attachment is obsolete: true

Comment 10

12 years ago
Back out of the fix from JSS tip as requested by WTC:

# This page can be saved as a shell script and executed.  It should be
# run at the top of your CVS work area.  It will update your workarea to
# backout the changes selected by your query.

cvs update -j1.10 -j1.9 mozilla/security/jss/org/mozilla/jss/util/java_ids.h
cvs update -j1.30 -j1.29 mozilla/security/jss/org/mozilla/jss/tests/all.pl
cvs update -j1.9 -j1.8 mozilla/security/jss/org/mozilla/jss/tests/TestKeyGen.java
cvs update -j1.12 -j1.11 mozilla/security/jss/org/mozilla/jss/tests/JCASigTest.java
cvs update -j1.8 -j1.7 mozilla/security/jss/org/mozilla/jss/tests/manifest.mn
cvs update -j1.4 -j1.3 mozilla/security/jss/org/mozilla/jss/tests/Makefile
cvs update -j1.7 -j1.6 mozilla/security/jss/org/mozilla/jss/provider/java/security/JSSSignatureSpi.java
cvs update -j1.3 -j1.2 mozilla/security/jss/org/mozilla/jss/provider/java/security/JSSKeyPairGeneratorSpi.java
cvs update -j1.6 -j1.5 mozilla/security/jss/org/mozilla/jss/provider/java/security/KeyFactorySpi1_2.java
cvs update -j1.1 -j0 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11ParameterSpec.java
cvs update -j1.1 -j0 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11ECPublicKey.java
cvs update -j1.1 -j0 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11ECPrivateKey.java
cvs update -j1.7 -j1.6 mozilla/security/jss/org/mozilla/jss/pkcs11/pk11util.h
cvs update -j1.8 -j1.7 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11Token.java
cvs update -j1.14 -j1.13 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11Token.c
cvs update -j1.13 -j1.12 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11Token.c
cvs update -j1.8 -j1.7 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11PubKey.java
cvs update -j1.9 -j1.8 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11PubKey.c
cvs update -j1.9 -j1.8 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11PrivKey.java
cvs update -j1.13 -j1.12 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11PrivKey.c
cvs update -j1.12 -j1.11 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11KeyWrapper.java
cvs update -j1.10 -j1.9 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11KeyWrapper.c
cvs update -j1.9 -j1.8 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11KeyPairGenerator.java
cvs update -j1.12 -j1.11 mozilla/security/jss/org/mozilla/jss/pkcs11/PK11KeyPairGenerator.c
cvs update -j1.11 -j1.10 mozilla/security/jss/org/mozilla/jss/pkcs11/KeyType.java
cvs update -j1.6 -j1.5 mozilla/security/jss/org/mozilla/jss/crypto/SignatureAlgorithm.java
cvs update -j1.7 -j1.6 mozilla/security/jss/org/mozilla/jss/crypto/PrivateKey.java
cvs update -j1.6 -j1.5 mozilla/security/jss/org/mozilla/jss/crypto/KeyPairAlgorithm.java
cvs update -j1.5 -j1.4 mozilla/security/jss/org/mozilla/jss/crypto/CryptoToken.java
cvs update -j1.9 -j1.8 mozilla/security/jss/org/mozilla/jss/crypto/Algorithm.java
cvs update -j1.10 -j1.9 mozilla/security/jss/org/mozilla/jss/crypto/Algorithm.h
cvs update -j1.11 -j1.10 mozilla/security/jss/org/mozilla/jss/crypto/Algorithm.c
cvs update -j1.24 -j1.23 mozilla/security/jss/org/mozilla/jss/JSSProvider.java
cvs update -j1.32 -j1.31 mozilla/security/jss/lib/jss.def
cvs update -j1.31 -j1.30 mozilla/security/jss/lib/jss.def
cvs update -j1.25 -j1.24 mozilla/security/jss/build_java.pl

Comment 11

12 years ago
The build failure was:

cc -o SunOS5.8_DBG.OBJ/PK11SymKey.o -c -g -KPIC -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS -D_REENTRANT -DSOLARIS2_8 -D_SVID_GETTOD -xarch=v8 -xs -v -DXP_UNIX -DDEBUG -UNDEBUG -DDEBUG_svbld -I/usr/dt/include -I/usr/openwin/include -I../../../../../../dist/SunOS5.8_DBG.OBJ/include  -I../../../../../../dist/public/jss -I../../../../../../dist/private/jss -I/share/builds/components/jdk/1.4.1/SunOS/include -I/share/builds/components/jdk/1.4.1/SunOS/include/solaris -I../../../../../../dist/public/nspr20 -I../../../../../../dist/public/nss  -I/share/builds/components/jdk/1.4.1/SunOS/include PK11SymKey.c
"PK11SymKey.c", line 247: warning: constant promoted to unsigned long
cc -o SunOS5.8_DBG.OBJ/PK11Token.o -c -g -KPIC -DSVR4 -DSYSV -D__svr4 -D__svr4__ -DSOLARIS -D_REENTRANT -DSOLARIS2_8 -D_SVID_GETTOD -xarch=v8 -xs -v -DXP_UNIX -DDEBUG -UNDEBUG -DDEBUG_svbld -I/usr/dt/include -I/usr/openwin/include -I../../../../../../dist/SunOS5.8_DBG.OBJ/include  -I../../../../../../dist/public/jss -I../../../../../../dist/private/jss -I/share/builds/components/jdk/1.4.1/SunOS/include -I/share/builds/components/jdk/1.4.1/SunOS/include/solaris -I../../../../../../dist/public/nspr20 -I../../../../../../dist/public/nss  -I/share/builds/components/jdk/1.4.1/SunOS/include PK11Token.c
"PK11Token.c", line 1074: identifier redeclared: GenerateCertRequest
	current : function(pointer to pointer to const struct JNINativeInterface_ {pointer to void reserved0, pointer to void reserved1, pointer to void reserved2, pointer to void reserved3, pointer to function(..) returning int GetVersion, pointer to function(..) returning pointer to struct _jobject {..} DefineClass, pointer to function(..) returning pointer to struct _jobject {..} FindClass, pointer to function(..) returning pointer to struct _jmethodID {..} FromReflectedMethod, pointer to function(..) returning pointer to struct _jfieldID {..} FromReflectedField, pointer to function(..) returning pointer to struct _jobject {..} ToReflectedMethod, pointer to function(..) returning pointer to struct _jobject {..} GetSuperclass, pointer to function(..) returning unsigned char IsAssignableFrom, pointer to function(..) returning pointer to struct _jobject {..} ToReflectedField, pointer to function(..) returning int Throw, pointer to function(..) returning int ThrowNew, pointer to function(..) returning pointer to struct _jobject {..} ExceptionOccurred, pointer to function(..) returning void ExceptionDescribe, pointer to function(..) returning void ExceptionClear, pointer to function(..) returning void FatalError, pointer to function(..) returning int PushLocalFrame, pointer to function(..) returning pointer to struct _jobject {..} PopLocalFrame, pointer to function(..) returning pointer to struct _jobject {..} NewGlobalRef, pointer to function(..) returning void DeleteGlobalRef, pointer to function(..) returning void DeleteLocalRef, pointer to function(..) returning unsigned char IsSameObject, pointer to function(..) returning pointer to struct _jobject {..} NewLocalRef, pointer to function(..) returning int EnsureLocalCapacity, pointer to function(..) returning pointer to struct _jobject {..} AllocObject, pointer to function(..) returning pointer to struct _jobject {..} NewObject, pointer to function(..) returning pointer to struct _jobject {..} NewObjectV, pointer to function(..) returning pointer to struct _jobject {..} NewObjectA, pointer to function(..) returning pointer to struct _jobject {..} GetObjectClass, pointer to function(..) returning unsigned char IsInstanceOf, pointer to function(..) returning pointer to struct _jmethodID {..} GetMethodID, pointer to function(..) returning pointer to struct _jobject {..} CallObjectMethod, pointer to function(..) returning pointer to struct _jobject {..} CallObjectMethodV, pointer to function(..) returning pointer to struct _jobject {..} CallObjectMethodA, pointer to function(..) returning unsigned char CallBooleanMethod, pointer to function(..) returning unsigned char CallBooleanMethodV, pointer to function(..) returning unsigned char CallBooleanMethodA, pointer to function(..) returning signed char CallByteMethod, pointer to function(..) returning signed char CallByteMethodV, pointer to function(..) returning signed char CallByteMethodA, pointer to function(..) returning unsigned short CallCharMethod, pointer to function(..) returning unsigned short CallCharMethodV, pointer to function(..) returning unsigned short CallCharMethodA, pointer to function(..) returning short CallShortMethod, pointer to function(..) returning short CallShortMethodV, pointer to function(..) returning short CallShortMethodA, pointer to function(..) returning int CallIntMethod, pointer to function(..) returning int CallIntMethodV, pointer to function(..) returning int CallIntMethodA, pointer to function(..) returning long long CallLongMethod, pointer to function(..) returning long long CallLongMethodV, pointer to function(..) returning long long CallLongMethodA, pointer to function(..) returning float CallFloatMethod, pointer to function(..) returning float CallFloatMethodV, pointer to function(..) returning float CallFloatMethodA, pointer to function(..) returning double CallDoubleMethod, pointer to function(..) returning double CallDoubleMethodV, pointer to function(..) returning double CallDoubleMethodA, pointer to function(..) returning void CallVoidMethod, pointer to function(..) returning void CallVoidMethodV, pointer to function(..) returning void CallVoidMethodA, pointer to function(..) returning pointer to struct _jobject {..} CallNonvirtualObjectMethod, pointer to function(..) returning pointer to struct _jobject {..} CallNonvirtualObjectMethodV, pointer to function(..) returning pointer to struct _jobject {..} CallNonvirtualObjectMethodA, pointer to function(..) returning unsigned char CallNonvirtualBooleanMethod, pointer to function(..) returning unsigned char CallNonvirtualBooleanMethodV, pointer to function(..) returning unsigned char CallNonvirtualBooleanMethodA, pointer to function(..) returning signed char CallNonvirtualByteMethod, pointer to function(..) returning signed char CallNonvirtualByteMethodV, pointer to function(..) returning signed char CallNonvirtualByteMethodA, pointer to function(..) returning unsigned short CallNonvirtualCharMethod, pointer to function(..) returning unsigned short CallNonvirtualCharMethodV, pointer to function(..) returning unsigned short CallNonvirtualCharMethodA, pointer to function(..) returning short CallNonvirtualShortMethod, pointer to function(..) returning short CallNonvirtualShortMethodV, pointer to function(..) returning short CallNonvirtualShortMethodA, pointer to function(..) returning int CallNonvirtualIntMethod, pointer to function(..) returning int CallNonvirtualIntMethodV, pointer to function(..) returning int CallNonvirtualIntMethodA, pointer to function(..) returning long long CallNonvirtualLongMethod, pointer to function(..) returning long long CallNonvirtualLongMethodV, pointer to function(..) returning long long CallNonvirtualLongMethodA, pointer to function(..) returning float CallNonvirtualFloatMethod, pointer to function(..) returning float CallNonvirtualFloatMethodV, pointer to function(..) returning float CallNonvirtualFloatMethodA, pointer to function(..) returning double CallNonvirtualDoubleMethod, pointer to function(..) returning double CallNonvirtualDoubleMethodV, pointer to function(..) returning double CallNonvirtualDoubleMethodA, pointer to function(..) returning void CallNonvirtualVoidMethod, pointer to function(..) returning void CallNonvirtualVoidMethodV, pointer to function(..) returning void CallNonvirtualVoidMethodA, pointer to function(..) returning pointer to struct _jfieldID {..} GetFieldID, pointer to function(..) returning pointer to struct _jobject {..} GetObjectField, pointer to function(..) returning unsigned char GetBooleanField, pointer to function(..) returning signed char GetByteField, pointer to function(..) returning unsigned short GetCharField, pointer to function(..) returning short GetShortField, pointer to function(..) returning int GetIntField, pointer to function(..) returning long long GetLongField, pointer to function(..) returning float GetFloatField, pointer to function(..) returning double GetDoubleField, pointer to function(..) returning void SetObjectField, pointer to function(..) returning void SetBooleanField, pointer to function(..) returning void SetByteField, pointer to function(..) returning void SetCharField, pointer to function(..) returning void SetShortField, pointer to function(..) returning void SetIntField, pointer to function(..) returning void SetLongField, pointer to function(..) returning void SetFloatField, pointer to function(..) returning void SetDoubleField, pointer to function(..) returning pointer to struct _jmethodID {..} GetStaticMethodID, pointer to function(..) returning pointer to struct _jobject {..} CallStaticObjectMethod, pointer to function(..) returning pointer to struct _jobject {..} CallStaticObjectMethodV, pointer to function(..) returning pointer to struct _jobject {..} CallStaticObjectMethodA, pointer to function(..) returning unsigned char CallStaticBooleanMethod, pointer to function(..) returning unsigned char CallStaticBooleanMethodV, pointer to function(..) returning unsigned char CallStaticBooleanMethodA, pointer to function(..) returning signed char CallStaticByteMethod, pointer to function(..) returning signed char CallStaticByteMethodV, pointer to function(..) returning signed char CallStaticByteMethodA, pointer to function(..) returning unsigned short CallStaticCharMethod, pointer to function(..) returning unsigned short CallStaticCharMethodV, pointer to function(..) returning unsigned short CallStaticCharMethodA, pointer to function(..) returning short CallStaticShortMethod, pointer to function(..) returning short CallStaticShortMethodV, pointer to function(..) returning short CallStaticShortMethodA, pointer to function(..) returning int CallStaticIntMethod, pointer to function(..) returning int CallStaticIntMethodV, pointer to function(..) returning int CallStaticIntMethodA, pointer to function(..) returning long long CallStaticLongMethod, pointer to function(..) returning long long CallStaticLongMethodV, pointer to function(..) returning long long CallStaticLongMethodA, pointer to function(..) returning float CallStaticFloatMethod, pointer to function(..) returning float CallStaticFloatMethodV, pointer to function(..) returning float CallStaticFloatMethodA, pointer to function(..) returning double CallStaticDoubleMethod, pointer to function(..) returning double CallStaticDoubleMethodV, pointer to function(..) returning double CallStaticDoubleMethodA, pointer to function(..) returning void CallStaticVoidMethod, pointer to function(..) returning void CallStaticVoidMethodV, pointer to function(..) returning void CallStaticVoidMethodA, pointer to function(..) returning pointer to struct _jfieldID {..} GetStaticFieldID, pointer to function(..) returning pointer to struct _jobject {..} GetStaticObjectField, pointer to function(..) returning unsigned char GetStaticBooleanField, pointer to function(..) returning signed char GetStaticByteField, pointer to function(..) returning unsigned short GetStaticCharField, pointer to function(..) returning short GetStaticShortField, pointer to function(..) returning int GetStaticIntField, pointer to function(..) returning long long GetStaticLongField, pointer to function(..) returning float GetStaticFloatField, pointer to function(..) returning double GetStaticDoubleField, pointer to function(..) returning void SetStaticObjectField, pointer to function(..) returning void SetStaticBooleanField, pointer to function(..) returning void SetStaticByteField, pointer to function(..) returning void SetStaticCharField, pointer to function(..) returning void SetStaticShortField, pointer to function(..) returning void SetStaticIntField, pointer to function(..) returning void SetStaticLongField, pointer to function(..) returning void SetStaticFloatField, pointer to function(..) returning void SetStaticDoubleField, pointer to function(..) returning pointer to struct _jobject {..} NewString, pointer to function(..) returning int GetStringLength, pointer to function(..) returning pointer to const unsigned short GetStringChars, pointer to function(..) returning void ReleaseStringChars, pointer to function(..) returning pointer to struct _jobject {..} NewStringUTF, pointer to function(..) returning int GetStringUTFLength, pointer to function(..) returning pointer to const char GetStringUTFChars, pointer to function(..) returning void ReleaseStringUTFChars, pointer to function(..) returning int GetArrayLength, pointer to function(..) returning pointer to struct _jobject {..} NewObjectArray, pointer to function(..) returning pointer to struct _jobject {..} GetObjectArrayElement, pointer to function(..) returning void SetObjectArrayElement, pointer to function(..) returning pointer to struct _jobject {..} NewBooleanArray, pointer to function(..) returning pointer to struct _jobject {..} NewByteArray, pointer to function(..) returning pointer to struct _jobject {..} NewCharArray, pointer to function(..) returning pointer to struct _jobject {..} NewShortArray, pointer to function(..) returning pointer to struct _jobject {..} NewIntArray, pointer to function(..) returning pointer to struct _jobject {..} NewLongArray, pointer to function(..) returning pointer to struct _jobject {..} NewFloatArray, pointer to function(..) returning pointer to struct _jobject {..} NewDoubleArray, pointer to function(..) returning pointer to unsigned char GetBooleanArrayElements, pointer to function(..) returning pointer to signed char GetByteArrayElements, pointer to function(..) returning pointer to unsigned short GetCharArrayElements, pointer to function(..) returning pointer to short GetShortArrayElements, pointer to function(..) returning pointer to int GetIntArrayElements, pointer to function(..) returning pointer to long long GetLongArrayElements, pointer to function(..) returning pointer to float GetFloatArrayElements, pointer to function(..) returning pointer to double GetDoubleArrayElements, pointer to function(..) returning void ReleaseBooleanArrayElements, pointer to function(..) returning void ReleaseByteArrayElements, pointer to function(..) returning void ReleaseCharArrayElements, pointer to function(..) returning void ReleaseShortArrayElements, pointer to function(..) returning void ReleaseIntArrayElements, pointer to function(..) returning void ReleaseLongArrayElements, pointer to function(..) returning void ReleaseFloatArrayElements, pointer to function(..) returning void ReleaseDoubleArrayElements, pointer to function(..) returning void GetBooleanArrayRegion, pointer to function(..) returning void GetByteArrayRegion, pointer to function(..) returning void GetCharArrayRegion, pointer to function(..) returning void GetShortArrayRegion, pointer to function(..) returning void GetIntArrayRegion, pointer to function(..) returning void GetLongArrayRegion, pointer to function(..) returning void GetFloatArrayRegion, pointer to function(..) returning void GetDoubleArrayRegion, pointer to function(..) returning void SetBooleanArrayRegion, pointer to function(..) returning void SetByteArrayRegion, pointer to function(..) returning void SetCharArrayRegion, pointer to function(..) returning void SetShortArrayRegion, pointer to function(..) returning void SetIntArrayRegion, pointer to function(..) returning void SetLongArrayRegion, pointer to function(..) returning void SetFloatArrayRegion, pointer to function(..) returning void SetDoubleArrayRegion, pointer to function(..) returning int RegisterNatives, pointer to function(..) returning int UnregisterNatives, pointer to function(..) returning int MonitorEnter, pointer to function(..) returning int MonitorExit, pointer to function(..) returning int GetJavaVM, pointer to function(..) returning void GetStringRegion, pointer to function(..) returning void GetStringUTFRegion, pointer to function(..) returning pointer to void GetPrimitiveArrayCritical, pointer to function(..) returning void ReleasePrimitiveArrayCritical, pointer to function(..) returning pointer to const unsigned short GetStringCritical, pointer to function(..) returning void ReleaseStringCritical, pointer to function(..) returning pointer to struct _jobject {..} NewWeakGlobalRef, pointer to function(..) returning void DeleteWeakGlobalRef, pointer to function(..) returning unsigned char ExceptionCheck, pointer to function(..) returning pointer to struct _jobject {..} NewDirectByteBuffer, pointer to function(..) returning pointer to void GetDirectBufferAddress, pointer to function(..) returning long long GetDirectBufferCapacity}, enum  {SEC_OID_TOTAL(281), SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE(280), SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE(279), SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE(278), SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE(277), SEC_OID_ANSIX962_ECDSA_SIGNATURE_SPECIFIED_DIGEST(276), SEC_OID_ANSIX962_ECDSA_SIGNATURE_RECOMMENDED_DIGEST(275), SEC_OID_PKCS9_EXTENSION_REQUEST(274), SEC_OID_PKIX_CA_ISSUERS(273), SEC_OID_AVA_PSEUDONYM(272), SEC_OID_AVA_HOUSE_IDENTIFIER(271), SEC_OID_AVA_GENERATION_QUALIFIER(270), SEC_OID_AVA_INITIALS(269), SEC_OID_AVA_GIVEN_NAME(268), SEC_OID_AVA_POST_OFFICE_BOX(267), SEC_OID_AVA_POSTAL_CODE(266), SEC_OID_AVA_POSTAL_ADDRESS(265), SEC_OID_AVA_TITLE(264), SEC_OID_AVA_STREET_ADDRESS(263), SEC_OID_AVA_SERIAL_NUMBER(262), SEC_OID_AVA_SURNAME(261), SEC_OID_NETSCAPE_AOLSCREENNAME(260), SEC_OID_SECG_EC_SECT571R1(259), SEC_OID_SECG_EC_SECT571K1(258), SEC_OID_SECG_EC_SECT409R1(257), SEC_OID_SECG_EC_SECT409K1(256), SEC_OID_SECG_EC_SECT283R1(255), SEC_OID_SECG_EC_SECT283K1(254), SEC_OID_SECG_EC_SECT239K1(253), SEC_OID_SECG_EC_SECT233R1(252), SEC_OID_SECG_EC_SECT233K1(251), SEC_OID_SECG_EC_SECT193R2(250), SEC_OID_SECG_EC_SECT193R1(249), SEC_OID_SECG_EC_SECT163R2(248), SEC_OID_SECG_EC_SECT163R1(247), SEC_OID_SECG_EC_SECT163K1(246), SEC_OID_SECG_EC_SECT131R2(245), SEC_OID_SECG_EC_SECT131R1(244), SEC_OID_SECG_EC_SECT113R2(243), SEC_OID_SECG_EC_SECT113R1(242), SEC_OID_ANSIX962_EC_C2TNB431R1(241), SEC_OID_ANSIX962_EC_C2PNB368W1(240), SEC_OID_ANSIX962_EC_C2TNB359V1(239), SEC_OID_ANSIX962_EC_C2PNB304W1(238), SEC_OID_ANSIX962_EC_C2PNB272W1(237), SEC_OID_ANSIX962_EC_C2ONB239V5(236), SEC_OID_ANSIX962_EC_C2ONB239V4(235), SEC_OID_ANSIX962_EC_C2TNB239V3(234), SEC_OID_ANSIX962_EC_C2TNB239V2(233), SEC_OID_ANSIX962_EC_C2TNB239V1(232), SEC_OID_ANSIX962_EC_C2PNB208W1(231), SEC_OID_ANSIX962_EC_C2ONB191V5(230), SEC_OID_ANSIX962_EC_C2ONB191V4(229), SEC_OID_ANSIX962_EC_C2TNB191V3(228), SEC_OID_ANSIX962_EC_C2TNB191V2(227), SEC_OID_ANSIX962_EC_C2TNB191V1(226), SEC_OID_ANSIX962_EC_C2PNB176V1(225), SEC_OID_ANSIX962_EC_C2PNB163V3(224), SEC_OID_ANSIX962_EC_C2PNB163V2(223), SEC_OID_ANSIX962_EC_C2PNB163V1(222), SEC_OID_SECG_EC_SECP521R1(221), SEC_OID_SECG_EC_SECP384R1(220), SEC_OID_SECG_EC_SECP256K1(219), SEC_OID_SECG_EC_SECP224R1(218), SEC_OID_SECG_EC_SECP224K1(217), SEC_OID_SECG_EC_SECP192K1(216), SEC_OID_SECG_EC_SECP160R2(215), SEC_OID_SECG_EC_SECP160R1(214), SEC_OID_SECG_EC_SECP160K1(213), SEC_OID_SECG_EC_SECP128R2(212), SEC_OID_SECG_EC_SECP128R1(211), SEC_OID_SECG_EC_SECP112R2(210), SEC_OID_SECG_EC_SECP112R1(209), SEC_OID_ANSIX962_EC_PRIME256V1(208), SEC_OID_ANSIX962_EC_PRIME239V3(207), SEC_OID_ANSIX962_EC_PRIME239V2(206), SEC_OID_ANSIX962_EC_PRIME239V1(205), SEC_OID_ANSIX962_EC_PRIME192V3(204), SEC_OID_ANSIX962_EC_PRIME192V2(203), SEC_OID_ANSIX962_EC_PRIME192V1(202), SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE(201), SEC_OID_ANSIX962_EC_PUBLIC_KEY(200), SEC_OID_AES_256_KEY_WRAP(199), SEC_OID_AES_192_KEY_WRAP(198), SEC_OID_AES_128_KEY_WRAP(197), SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION(196), SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION(195), SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION(194), SEC_OID_SHA512(193), SEC_OID_SHA384(192), SEC_OID_SHA256(191), SEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCE(190), SEC_OID_SDN702_DSA_SIGNATURE(189), SEC_OID_AES_256_CBC(188), SEC_OID_AES_256_ECB(187), SEC_OID_AES_192_CBC(186), SEC_OID_AES_192_ECB(185), SEC_OID_AES_128_CBC(184), SEC_OID_AES_128_ECB(183), SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE(182), SEC_OID_CMS_RC2_KEY_WRAP(181), SEC_OID_CMS_3DES_KEY_WRAP(180), SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN(179), SEC_OID_NS_CERT_EXT_SCOPE_OF_USE(178), SEC_OID_CERT_RENEWAL_LOCATOR(177), SEC_OID_NETSCAPE_RECOVERY_REQUEST(176), SEC_OID_NETSCAPE_NICKNAME(175), SEC_OID_X942_DIFFIE_HELMAN_KEY(174), SEC_OID_PKCS12_KEY_USAGE(173), SEC_OID_PKCS9_LOCAL_KEY_ID(172), SEC_OID_PKCS9_FRIENDLY_NAME(171), SEC_OID_PKCS9_X509_CRL(170), SEC_OID_PKCS9_SDSI_CERT(169), SEC_OID_PKCS9_X509_CERT(168), SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID(167), SEC_OID_PKCS12_V1_SECRET_BAG_ID(166), SEC_OID_PKCS12_V1_CRL_BAG_ID(165), SEC_OID_PKCS12_V1_CERT_BAG_ID(164), SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID(163), SEC_OID_PKCS12_V1_KEY_BAG_ID(162), SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID(161), SEC_OID_PKCS12_SAFE_CONTENTS_ID(160), SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC(159), SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC(158), SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC(157), SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC(156), SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4(155), SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4(154), SEC_OID_FORTEZZA_SKIPJACK(153), SEC_OID_NETSCAPE_SMIME_KEA(152), SEC_OID_OCSP_RESPONDER(151), SEC_OID_EXT_KEY_USAGE_TIME_STAMP(150), SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT(149), SEC_OID_EXT_KEY_USAGE_CODE_SIGN(148), SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH(147), SEC_OID_EXT_KEY_USAGE_SERVER_AUTH(146), SEC_OID_PKIX_REGINFO_CERT_REQUEST(145), SEC_OID_PKIX_REGINFO_UTF8_PAIRS(144), SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY(143), SEC_OID_PKIX_REGCTRL_OLD_CERT_ID(142), SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS(141), SEC_OID_PKIX_REGCTRL_PKIPUBINFO(140), SEC_OID_PKIX_REGCTRL_AUTHENTICATOR(139), SEC_OID_PKIX_REGCTRL_REGTOKEN(138), SEC_OID_PKIX_OCSP_SERVICE_LOCATOR(137), SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF(136), SEC_OID_PKIX_OCSP_NO_CHECK(135), SEC_OID_PKIX_OCSP_RESPONSE(134), SEC_OID_PKIX_OCSP_CRL(133), SEC_OID_PKIX_OCSP_NONCE(132), SEC_OID_PKIX_OCSP_BASIC_RESPONSE(131), SEC_OID_PKIX_OCSP(130), SEC_OID_PKIX_USER_NOTICE_QUALIFIER(129), SEC_OID_PKIX_CPS_POINTER_QUALIFIER(128), SEC_OID_VERISIGN_USER_NOTICES(127), SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST(126), SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST(125), SEC_OID_ANSIX9_DSA_SIGNATURE(124), SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST(123), SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES(122), SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4(121), SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4(120), SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC(119), SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC(118), SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC(117), SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4(116), SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4(115), SEC_OID_PKCS12_SDSI_CERT_BAG(114), SEC_OID_PKCS12_X509_CERT_CRL_BAG(113), SEC_OID_PKCS12_SECRET_BAG_ID(112), SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID(111), SEC_OID_PKCS12_KEY_BAG_ID(110), SEC_OID_PKCS12_PKCS8_KEY_SHROUDING(109), SEC_OID_PKCS12_ENVELOPING_IDS(108), SEC_OID_PKCS12_SIGNATURE_IDS(107), SEC_OID_PKCS12_PBE_IDS(106), SEC_OID_PKCS12_OIDS(105), SEC_OID_PKCS12_CERT_BAG_IDS(104), SEC_OID_PKCS12_BAG_IDS(103), SEC_OID_PKCS12_ESPVK_IDS(102), SEC_OID_PKCS12_MODE_IDS(101), SEC_OID_PKCS12(100), SEC_OID_RFC1274_MAIL(99), SEC_OID_RFC1274_UID(98), SEC_OID_X500_RSA_ENCRYPTION(97), SEC_OID_X509_INVALID_DATE(96), SEC_OID_X509_REASON_CODE(95), SEC_OID_X509_CRL_NUMBER(94), SEC_OID_X509_AUTH_INFO_ACCESS(93), SEC_OID_X509_EXT_KEY_USAGE(92), SEC_OID_X509_AUTH_KEY_ID(91), SEC_OID_X509_POLICY_CONSTRAINTS(90), SEC_OID_X509_POLICY_MAPPINGS(89), SEC_OID_X509_CERTIFICATE_POLICIES(88), SEC_OID_X509_CRL_DIST_POINTS(87), SEC_OID_X509_NAME_CONSTRAINTS(86), SEC_OID_X509_BASIC_CONSTRAINTS(85), SEC_OID_X509_ISSUER_ALT_NAME(84), SEC_OID_X509_SUBJECT_ALT_NAME(83), SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD(82), SEC_OID_X509_KEY_USAGE(81), SEC_OID_X509_SUBJECT_KEY_ID(80), SEC_OID_X509_SUBJECT_DIRECTORY_ATTR(79), SEC_OID_NS_KEY_USAGE_GOVT_APPROVED(78), SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME(77), SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL(76), SEC_OID_NS_CERT_EXT_COMMENT(75), SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME(74), SEC_OID_NS_CERT_EXT_USER_PICTURE(73), SEC_OID_NS_CERT_EXT_ENTITY_LOGO(72), SEC_OID_NS_CERT_EXT_HOMEPAGE_URL(71), SEC_OID_NS_CERT_EXT_CA_POLICY_URL(70), SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL(69), SEC_OID_NS_CERT_EXT_CA_CERT_URL(68), SEC_OID_NS_CERT_EXT_CA_CRL_URL(67), SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL(66), SEC_OID_NS_CERT_EXT_REVOCATION_URL(65), SEC_OID_NS_CERT_EXT_BASE_URL(64), SEC_OID_NS_CERT_EXT_CERT_TYPE(63), SEC_OID_NS_CERT_EXT_SUBJECT_LOGO(62), SEC_OID_NS_CERT_EXT_ISSUER_LOGO(61), SEC_OID_NS_CERT_EXT_NETSCAPE_OK(60), SEC_OID_MISSI_ALT_KEA(59), SEC_OID_MISSI_KEA(58), SEC_OID_MISSI_DSS(57), SEC_OID_MISSI_KEA_DSS(56), SEC_OID_MISSI_DSS_OLD(55), SEC_OID_MISSI_KEA_DSS_OLD(54), SEC_OID_NS_TYPE_CERT_SEQUENCE(53), SEC_OID_NS_TYPE_HTML(52), SEC_OID_NS_TYPE_URL(51), SEC_OID_NS_TYPE_JPEG(50), SEC_OID_NS_TYPE_GIF(49), SEC_OID_AVA_DC(48), SEC_OID_AVA_DN_QUALIFIER(47), SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME(46), SEC_OID_AVA_ORGANIZATION_NAME(45), SEC_OID_AVA_STATE_OR_PROVINCE(44), SEC_OID_AVA_LOCALITY(43), SEC_OID_AVA_COUNTRY_NAME(42), SEC_OID_AVA_COMMON_NAME(41), SEC_OID_PKCS9_SMIME_CAPABILITIES(40), SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES(39), SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS(38), SEC_OID_PKCS9_CHALLENGE_PASSWORD(37), SEC_OID_PKCS9_COUNTER_SIGNATURE(36), SEC_OID_PKCS9_SIGNING_TIME(35), SEC_OID_PKCS9_MESSAGE_DIGEST(34), SEC_OID_PKCS9_CONTENT_TYPE(33), SEC_OID_PKCS9_UNSTRUCTURED_NAME(32), SEC_OID_PKCS9_EMAIL_ADDRESS(31), SEC_OID_PKCS7_ENCRYPTED_DATA(30), SEC_OID_PKCS7_DIGESTED_DATA(29), SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA(28), SEC_OID_PKCS7_ENVELOPED_DATA(27), SEC_OID_PKCS7_SIGNED_DATA(26), SEC_OID_PKCS7_DATA(25), SEC_OID_PKCS7(24), SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC(23), SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC(22), SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC(21), SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION(20), SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION(19), SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION(18), SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION(17), SEC_OID_PKCS1_RSA_ENCRYPTION(16), SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE(15), SEC_OID_DES_EDE(14), SEC_OID_DES_MAC(13), SEC_OID_DES_CFB(12), SEC_OID_DES_OFB(11), SEC_OID_DES_CBC(10), SEC_OID_DES_ECB(9), SEC_OID_RC5_CBC_PAD(8), SEC_OID_DES_EDE3_CBC(7), SEC_OID_RC4(6), SEC_OID_RC2_CBC(5), SEC_OID_SHA1(4), SEC_OID_MD5(3), SEC_OID_MD4(2), SEC_OID_MD2(1), SEC_OID_UNKNOWN(0)}, pointer to const char, pointer to struct PK11SlotInfoStr {}, pointer to pointer to unsigned char, pointer to void) returning void
	previous: function(pointer to pointer to const struct JNINativeInterface_ {pointer to void reserved0, pointer to void reserved1, pointer to void reserved2, pointer to void reserved3, pointer to function(..) returning int GetVersion, pointer to function(..) returning pointer to struct _jobject {..} DefineClass, pointer to function(..) returning pointer to struct _jobject {..} FindClass, pointer to function(..) returning pointer to struct _jmethodID {..} FromReflectedMethod, pointer to function(..) returning pointer to struct _jfieldID {..} FromReflectedField, pointer to function(..) returning pointer to struct _jobject {..} ToReflectedMethod, pointer to function(..) returning pointer to struct _jobject {..} GetSuperclass, pointer to function(..) returning unsigned char IsAssignableFrom, pointer to function(..) returning pointer to struct _jobject {..} ToReflectedField, pointer to function(..) returning int Throw, pointer to function(..) returning int ThrowNew, pointer to function(..) returning pointer to struct _jobject {..} ExceptionOccurred, pointer to function(..) returning void ExceptionDescribe, pointer to function(..) returning void ExceptionClear, pointer to function(..) returning void FatalError, pointer to function(..) returning int PushLocalFrame, pointer to function(..) returning pointer to struct _jobject {..} PopLocalFrame, pointer to function(..) returning pointer to struct _jobject {..} NewGlobalRef, pointer to function(..) returning void DeleteGlobalRef, pointer to function(..) returning void DeleteLocalRef, pointer to function(..) returning unsigned char IsSameObject, pointer to function(..) returning pointer to struct _jobject {..} NewLocalRef, pointer to function(..) returning int EnsureLocalCapacity, pointer to function(..) returning pointer to struct _jobject {..} AllocObject, pointer to function(..) returning pointer to struct _jobject {..} NewObject, pointer to function(..) returning pointer to struct _jobject {..} NewObjectV, pointer to function(..) returning pointer to struct _jobject {..} NewObjectA, pointer to function(..) returning pointer to struct _jobject {..} GetObjectClass, pointer to function(..) returning unsigned char IsInstanceOf, pointer to function(..) returning pointer to struct _jmethodID {..} GetMethodID, pointer to function(..) returning pointer to struct _jobject {..} CallObjectMethod, pointer to function(..) returning pointer to struct _jobject {..} CallObjectMethodV, pointer to function(..) returning pointer to struct _jobject {..} CallObjectMethodA, pointer to function(..) returning unsigned char CallBooleanMethod, pointer to function(..) returning unsigned char CallBooleanMethodV, pointer to function(..) returning unsigned char CallBooleanMethodA, pointer to function(..) returning signed char CallByteMethod, pointer to function(..) returning signed char CallByteMethodV, pointer to function(..) returning signed char CallByteMethodA, pointer to function(..) returning unsigned short CallCharMethod, pointer to function(..) returning unsigned short CallCharMethodV, pointer to function(..) returning unsigned short CallCharMethodA, pointer to function(..) returning short CallShortMethod, pointer to function(..) returning short CallShortMethodV, pointer to function(..) returning short CallShortMethodA, pointer to function(..) returning int CallIntMethod, pointer to function(..) returning int CallIntMethodV, pointer to function(..) returning int CallIntMethodA, pointer to function(..) returning long long CallLongMethod, pointer to function(..) returning long long CallLongMethodV, pointer to function(..) returning long long CallLongMethodA, pointer to function(..) returning float CallFloatMethod, pointer to function(..) returning float CallFloatMethodV, pointer to function(..) returning float CallFloatMethodA, pointer to function(..) returning double CallDoubleMethod, pointer to function(..) returning double CallDoubleMethodV, pointer to function(..) returning double CallDoubleMethodA, pointer to function(..) returning void CallVoidMethod, pointer to function(..) returning void CallVoidMethodV, pointer to function(..) returning void CallVoidMethodA, pointer to function(..) returning pointer to struct _jobject {..} CallNonvirtualObjectMethod, pointer to function(..) returning pointer to struct _jobject {..} CallNonvirtualObjectMethodV, pointer to function(..) returning pointer to struct _jobject {..} CallNonvirtualObjectMethodA, pointer to function(..) returning unsigned char CallNonvirtualBooleanMethod, pointer to function(..) returning unsigned char CallNonvirtualBooleanMethodV, pointer to function(..) returning unsigned char CallNonvirtualBooleanMethodA, pointer to function(..) returning signed char CallNonvirtualByteMethod, pointer to function(..) returning signed char CallNonvirtualByteMethodV, pointer to function(..) returning signed char CallNonvirtualByteMethodA, pointer to function(..) returning unsigned short CallNonvirtualCharMethod, pointer to function(..) returning unsigned short CallNonvirtualCharMethodV, pointer to function(..) returning unsigned short CallNonvirtualCharMethodA, pointer to function(..) returning short CallNonvirtualShortMethod, pointer to function(..) returning short CallNonvirtualShortMethodV, pointer to function(..) returning short CallNonvirtualShortMethodA, pointer to function(..) returning int CallNonvirtualIntMethod, pointer to function(..) returning int CallNonvirtualIntMethodV, pointer to function(..) returning int CallNonvirtualIntMethodA, pointer to function(..) returning long long CallNonvirtualLongMethod, pointer to function(..) returning long long CallNonvirtualLongMethodV, pointer to function(..) returning long long CallNonvirtualLongMethodA, pointer to function(..) returning float CallNonvirtualFloatMethod, pointer to function(..) returning float CallNonvirtualFloatMethodV, pointer to function(..) returning float CallNonvirtualFloatMethodA, pointer to function(..) returning double CallNonvirtualDoubleMethod, pointer to function(..) returning double CallNonvirtualDoubleMethodV, pointer to function(..) returning double CallNonvirtualDoubleMethodA, pointer to function(..) returning void CallNonvirtualVoidMethod, pointer to function(..) returning void CallNonvirtualVoidMethodV, pointer to function(..) returning void CallNonvirtualVoidMethodA, pointer to function(..) returning pointer to struct _jfieldID {..} GetFieldID, pointer to function(..) returning pointer to struct _jobject {..} GetObjectField, pointer to function(..) returning unsigned char GetBooleanField, pointer to function(..) returning signed char GetByteField, pointer to function(..) returning unsigned short GetCharField, pointer to function(..) returning short GetShortField, pointer to function(..) returning int GetIntField, pointer to function(..) returning long long GetLongField, pointer to function(..) returning float GetFloatField, pointer to function(..) returning double GetDoubleField, pointer to function(..) returning void SetObjectField, pointer to function(..) returning void SetBooleanField, pointer to function(..) returning void SetByteField, pointer to function(..) returning void SetCharField, pointer to function(..) returning void SetShortField, pointer to function(..) returning void SetIntField, pointer to function(..) returning void SetLongField, pointer to function(..) returning void SetFloatField, pointer to function(..) returning void SetDoubleField, pointer to function(..) returning pointer to struct _jmethodID {..} GetStaticMethodID, pointer to function(..) returning pointer to struct _jobject {..} CallStaticObjectMethod, pointer to function(..) returning pointer to struct _jobject {..} CallStaticObjectMethodV, pointer to function(..) returning pointer to struct _jobject {..} CallStaticObjectMethodA, pointer to function(..) returning unsigned char CallStaticBooleanMethod, pointer to function(..) returning unsigned char CallStaticBooleanMethodV, pointer to function(..) returning unsigned char CallStaticBooleanMethodA, pointer to function(..) returning signed char CallStaticByteMethod, pointer to function(..) returning signed char CallStaticByteMethodV, pointer to function(..) returning signed char CallStaticByteMethodA, pointer to function(..) returning unsigned short CallStaticCharMethod, pointer to function(..) returning unsigned short CallStaticCharMethodV, pointer to function(..) returning unsigned short CallStaticCharMethodA, pointer to function(..) returning short CallStaticShortMethod, pointer to function(..) returning short CallStaticShortMethodV, pointer to function(..) returning short CallStaticShortMethodA, pointer to function(..) returning int CallStaticIntMethod, pointer to function(..) returning int CallStaticIntMethodV, pointer to function(..) returning int CallStaticIntMethodA, pointer to function(..) returning long long CallStaticLongMethod, pointer to function(..) returning long long CallStaticLongMethodV, pointer to function(..) returning long long CallStaticLongMethodA, pointer to function(..) returning float CallStaticFloatMethod, pointer to function(..) returning float CallStaticFloatMethodV, pointer to function(..) returning float CallStaticFloatMethodA, pointer to function(..) returning double CallStaticDoubleMethod, pointer to function(..) returning double CallStaticDoubleMethodV, pointer to function(..) returning double CallStaticDoubleMethodA, pointer to function(..) returning void CallStaticVoidMethod, pointer to function(..) returning void CallStaticVoidMethodV, pointer to function(..) returning void CallStaticVoidMethodA, pointer to function(..) returning pointer to struct _jfieldID {..} GetStaticFieldID, pointer to function(..) returning pointer to struct _jobject {..} GetStaticObjectField, pointer to function(..) returning unsigned char GetStaticBooleanField, pointer to function(..) returning signed char GetStaticByteField, pointer to function(..) returning unsigned short GetStaticCharField, pointer to function(..) returning short GetStaticShortField, pointer to function(..) returning int GetStaticIntField, pointer to function(..) returning long long GetStaticLongField, pointer to function(..) returning float GetStaticFloatField, pointer to function(..) returning double GetStaticDoubleField, pointer to function(..) returning void SetStaticObjectField, pointer to function(..) returning void SetStaticBooleanField, pointer to function(..) returning void SetStaticByteField, pointer to function(..) returning void SetStaticCharField, pointer to function(..) returning void SetStaticShortField, pointer to function(..) returning void SetStaticIntField, pointer to function(..) returning void SetStaticLongField, pointer to function(..) returning void SetStaticFloatField, pointer to function(..) returning void SetStaticDoubleField, pointer to function(..) returning pointer to struct _jobject {..} NewString, pointer to function(..) returning int GetStringLength, pointer to function(..) returning pointer to const unsigned short GetStringChars, pointer to function(..) returning void ReleaseStringChars, pointer to function(..) returning pointer to struct _jobject {..} NewStringUTF, pointer to function(..) returning int GetStringUTFLength, pointer to function(..) returning pointer to const char GetStringUTFChars, pointer to function(..) returning void ReleaseStringUTFChars, pointer to function(..) returning int GetArrayLength, pointer to function(..) returning pointer to struct _jobject {..} NewObjectArray, pointer to function(..) returning pointer to struct _jobject {..} GetObjectArrayElement, pointer to function(..) returning void SetObjectArrayElement, pointer to function(..) returning pointer to struct _jobject {..} NewBooleanArray, pointer to function(..) returning pointer to struct _jobject {..} NewByteArray, pointer to function(..) returning pointer to struct _jobject {..} NewCharArray, pointer to function(..) returning pointer to struct _jobject {..} NewShortArray, pointer to function(..) returning pointer to struct _jobject {..} NewIntArray, pointer to function(..) returning pointer to struct _jobject {..} NewLongArray, pointer to function(..) returning pointer to struct _jobject {..} NewFloatArray, pointer to function(..) returning pointer to struct _jobject {..} NewDoubleArray, pointer to function(..) returning pointer to unsigned char GetBooleanArrayElements, pointer to function(..) returning pointer to signed char GetByteArrayElements, pointer to function(..) returning pointer to unsigned short GetCharArrayElements, pointer to function(..) returning pointer to short GetShortArrayElements, pointer to function(..) returning pointer to int GetIntArrayElements, pointer to function(..) returning pointer to long long GetLongArrayElements, pointer to function(..) returning pointer to float GetFloatArrayElements, pointer to function(..) returning pointer to double GetDoubleArrayElements, pointer to function(..) returning void ReleaseBooleanArrayElements, pointer to function(..) returning void ReleaseByteArrayElements, pointer to function(..) returning void ReleaseCharArrayElements, pointer to function(..) returning void ReleaseShortArrayElements, pointer to function(..) returning void ReleaseIntArrayElements, pointer to function(..) returning void ReleaseLongArrayElements, pointer to function(..) returning void ReleaseFloatArrayElements, pointer to function(..) returning void ReleaseDoubleArrayElements, pointer to function(..) returning void GetBooleanArrayRegion, pointer to function(..) returning void GetByteArrayRegion, pointer to function(..) returning void GetCharArrayRegion, pointer to function(..) returning void GetShortArrayRegion, pointer to function(..) returning void GetIntArrayRegion, pointer to function(..) returning void GetLongArrayRegion, pointer to function(..) returning void GetFloatArrayRegion, pointer to function(..) returning void GetDoubleArrayRegion, pointer to function(..) returning void SetBooleanArrayRegion, pointer to function(..) returning void SetByteArrayRegion, pointer to function(..) returning void SetCharArrayRegion, pointer to function(..) returning void SetShortArrayRegion, pointer to function(..) returning void SetIntArrayRegion, pointer to function(..) returning void SetLongArrayRegion, pointer to function(..) returning void SetFloatArrayRegion, pointer to function(..) returning void SetDoubleArrayRegion, pointer to function(..) returning int RegisterNatives, pointer to function(..) returning int UnregisterNatives, pointer to function(..) returning int MonitorEnter, pointer to function(..) returning int MonitorExit, pointer to function(..) returning int GetJavaVM, pointer to function(..) returning void GetStringRegion, pointer to function(..) returning void GetStringUTFRegion, pointer to function(..) returning pointer to void GetPrimitiveArrayCritical, pointer to function(..) returning void ReleasePrimitiveArrayCritical, pointer to function(..) returning pointer to const unsigned short GetStringCritical, pointer to function(..) returning void ReleaseStringCritical, pointer to function(..) returning pointer to struct _jobject {..} NewWeakGlobalRef, pointer to function(..) returning void DeleteWeakGlobalRef, pointer to function(..) returning unsigned char ExceptionCheck, pointer to function(..) returning pointer to struct _jobject {..} NewDirectByteBuffer, pointer to function(..) returning pointer to void GetDirectBufferAddress, pointer to function(..) returning long long GetDirectBufferCapacity}, unsigned int, pointer to const char, pointer to struct PK11SlotInfoStr {}, pointer to pointer to unsigned char, pointer to void) returning void : "PK11Token.c", line 69
"PK11Token.c", line 1097: warning: constant promoted to unsigned long
cc: acomp failed for PK11Token.c
gmake-3.79[4]: *** [SunOS5.8_DBG.OBJ/PK11Token.o] Error 2
gmake-3.79[4]: Leaving directory `/share/builds/mccrel3/security/securitytip/builds/20060214.1/wozzeck_Solaris8/mozilla/security/jss/org/mozilla/jss/pkcs11'
That insanely long error message reduces to this:

> "PK11Token.c", line 1074: identifier redeclared: GenerateCertRequest
>         current : function(
>             pointer to pointer to const struct JNINativeInterface_ ,
>             enum  {},
>             pointer to const char,
>             pointer to struct PK11SlotInfoStr {},
>             pointer to pointer to unsigned char,
>             pointer to void) returning void
>         previous: function(
>             pointer to pointer to const struct JNINativeInterface_ ,
>             unsigned int,
>             pointer to const char,
>             pointer to struct PK11SlotInfoStr {},
>             pointer to pointer to unsigned char,
>             pointer to void) returning void : "PK11Token.c", line 69
> "PK11Token.c", line 1097: warning: constant promoted to unsigned long

Notice that the type of the second argument has changed from unsigned int 
to an enum (or vice versa).

Comment 13

12 years ago
I just checked out JSS with a date tag (i.e. -D "2006/02/12 23:01:01") and applied Glen's build fix patch. It compiled without errors. I also ran the QA test suite and did get errors initially. Then I found out I forgot to sign the jar file. After signing the jar, the test suite ran and completed with 100% success. Should we try to put the code back in, with glen's fix?

Comment 14

12 years ago
Test with

bash-2.05$ /usr/java/bin/java -showversion
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode)

bash-2.05$ uname -a
SunOS hotwing.dsdev.sjc.redhat.com 5.9 Generic_118558-05 sun4u sparc SUNW,Sun-Fire-280R

Comment 15

12 years ago
Created attachment 212172 [details]
Remove Sun's specific in Test Suite

When compiling JSS with IBM JDK, we are having problem in JSSE_SSLClient.java. This patch should fix the problem without breaking any test cases for Sun.
Attachment #212172 - Flags: review?(glen.beasley)

Comment 16

12 years ago
Hi,
    The issue of Sun's provider Vs IBM's has been addressed in the bug 317479. I am not sure if this patch is needed for JSSE_SSLClient.java.  Also the same should be and is reflected in JSSE_SSLServer.java too. Please test the update I checked in last evening and add your comments to the bug 317479.

Thanks,
Sandeep

Comment 17

12 years ago
Tested. Basically, the changes applie to the test suite works with IBM JDK 5.0. Comments are also added to bug 317479.

Comment 18

12 years ago
Comment on attachment 212172 [details]
Remove Sun's specific in Test Suite

sandeep's changes worked and this patch is no longer needed. see also bug 317479
Attachment #212172 - Attachment is obsolete: true
Attachment #212172 - Attachment is patch: false
Attachment #212172 - Flags: review?(glen.beasley) → review-

Comment 19

12 years ago
Comment on attachment 211884 [details] [diff] [review]
build fix

r=wtc.  We should also declare GenerateCertRequest
as static.
Attachment #211884 - Flags: review+

Comment 20

12 years ago
Created attachment 212674 [details] [diff] [review]
SSL with ECC fix
Attachment #212674 - Flags: review?(wtchang)

Comment 21

12 years ago
Comment on attachment 212674 [details] [diff] [review]
SSL with ECC fix

r=wtc.  This is what we do in nss/cmd/SSLsample/server.c.
Attachment #212674 - Flags: review?(wtchang) → review+

Comment 22

12 years ago
Created attachment 212835 [details] [diff] [review]
Patch for the JSS tip

This patch combines three patches:
- Bob's "Same patch for the jsstip"
- Glen's "build fix"
- Thomas's "SSL with ECC fix"

However, I omitted some changes from Bob's patch.
1. I did not add the new files
   org/mozilla/jss/tests/manifest.mn and
   org/mozilla/jss/tests/Makefile
   because their only purpose is three makefile
   targets that print the values of the make
   variables SOURCE_XP_DIR, DIST, and PLATFORM.

2. Bob commented out the tests
   "Test JSS client communication" and
   "Test JSSE client communication".
   I am not sure if he did that intentionally.

I also noticed one problem in Bob's patch.  He added
the three new JNI function symbols to the JSS_3.0
section in jss.def.  Those symbols should be added
to a new section.  However, since libjss4.so doesn't
really need to be backward compatible (it's always
loaded by the JVM and just needs to be compatible
with the JSS jar file from the same release), this
won't break anything.  But we should fix it.
Attachment #211884 - Attachment is obsolete: true
Attachment #212674 - Attachment is obsolete: true

Comment 23

12 years ago
Created attachment 212836 [details] [diff] [review]
Move the new JNI function symbols to a new JSS_4.2.3 section

This patch assumes that the tip of JSS is JSS 4.2.3,
and that these new native methods will first appear
in JSS 4.2.3.
Attachment #212836 - Flags: review?(Sandeep.Konchady)

Comment 24

12 years ago
Comment on attachment 212836 [details] [diff] [review]
Move the new JNI function symbols to a new JSS_4.2.3 section

Patch looks good.
Attachment #212836 - Flags: review?(Sandeep.Konchady) → review+

Comment 25

12 years ago
Comment on attachment 212836 [details] [diff] [review]
Move the new JNI function symbols to a new JSS_4.2.3 section

I checked in this patch on the JSS trunk.

Checking in jss.def;
/cvsroot/mozilla/security/jss/lib/jss.def,v  <--  jss.def
new revision: 1.35; previous revision: 1.34
done
(Reporter)

Comment 26

12 years ago
please add back the Makefile and manifest.mn. They are needed by the new all.pl target 'auto', which lets you run the java tests on the current build you just produced without manually supplying the dist directory.

The commented out tests should not have been checked in, so removing them from the patch should be fine.

Comment 27

12 years ago
Bob,

In all.pl, we need to use 'gmake' instead of 'make'
because on some Unix platforms, 'make' is the traditional
Unix make.

Now that I know what those makefile targets are for,
I remember that we use the same trick in the nss/tests/common
directory.  See nss/tests/common/Makefile and
nss/tests/common/init.sh.  So, you can do without
the manifest.mn file and just have a Makefile that defines
CORE_DEPTH and includes $(CORE_DEPTH)/coreconf/config.mk.
You should remove the unused 'platform_name' makefile target.
includes 

The JNI function symbol in jss.def that didn't have an
implementation was Java_org_mozilla_jss_pkcs11_PK11PrivKey_getECCurveNative.
QA Contact: libraries

Comment 28

11 years ago
ECC support was added for this bug what is missing is 
being able to use the "auto" option for all.pl as 
in "perl all.pl auto"

Bob is my understanding correct or is there more work to do for this 
bug other than the support for the auto option?

Version: 3.6 → unspecified

Updated

11 years ago
Target Milestone: 3.6 → 4.3
(Reporter)

Comment 29

11 years ago
I think so glen.

bob

Comment 30

11 years ago
Created attachment 265092 [details] [diff] [review]
fix typo
Attachment #265092 - Flags: review?(rrelyea)

Updated

11 years ago
Attachment #265092 - Flags: review?(rrelyea) → review+

Comment 31

11 years ago
Checking in JSSProvider.java;
/cvsroot/mozilla/security/jss/org/mozilla/jss/JSSProvider.java,v  <--  JSSProvider.java
new revision: 1.30; previous revision: 1.29
done
QA Contact: libraries → jss-qa

Updated

8 years ago
Assignee: rrelyea → nobody
You need to log in before you can comment on or make changes to this bug.