remove export controls, and get things to build against NSS 3.1.1 under mozilla.

This commit is contained in:
nicolson%netscape.com 2001-01-16 23:49:57 +00:00
Родитель 3740cf47b1
Коммит 36dc0e2931
46 изменённых файлов: 49 добавлений и 1621 удалений

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

@ -129,59 +129,4 @@ public class EncryptionAlgorithm extends Algorithm {
RC2_CBC = new EncryptionAlgorithm(SEC_OID_RC2_CBC, "RC2/CBC", RC2_CBC = new EncryptionAlgorithm(SEC_OID_RC2_CBC, "RC2/CBC",
IVParameterSpec.class, 8, false, IVParameterSpec.class, 8, false,
OBJECT_IDENTIFIER.RSA_CIPHER.subBranch(2) ); OBJECT_IDENTIFIER.RSA_CIPHER.subBranch(2) );
///////////////////////////////////////////////////////////////////////
// Export control code
///////////////////////////////////////////////////////////////////////
private static final int NUMBER_OF_ALGORITHMS = 8;
public EncryptionAlgorithm[] getAllAlgorithms( Usage usage ) {
EncryptionAlgorithm[] algs = new
EncryptionAlgorithm[NUMBER_OF_ALGORITHMS];
long[] indices = getAllAlgorithmIndices( usage );
int j = 0;
for( int i = 0; i <= indices.length; i++ ) {
switch( ( int ) indices[i] ) {
case SEC_OID_RC4:
algs[j] = RC4;
j++;
break;
case SEC_OID_DES_ECB:
algs[j] = DES_ECB;
j++;
break;
case SEC_OID_DES_CBC:
algs[j] = DES_CBC;
j++;
break;
case CKM_DES_CBC_PAD:
algs[j] = DES_CBC_PAD;
j++;
break;
case CKM_DES3_ECB:
algs[j] = DES3_ECB;
j++;
break;
case SEC_OID_DES_EDE3_CBC:
algs[j] = DES3_CBC;
j++;
break;
case CKM_DES3_CBC_PAD:
algs[j] = DES3_CBC_PAD;
j++;
break;
case SEC_OID_RC2_CBC:
algs[j] = RC2_CBC;
j++;
break;
default:
continue;
}
}
return algs;
}
} }

Просмотреть файл

@ -110,42 +110,4 @@ public class KeyGenAlgorithm extends Algorithm {
PBA_SHA1_HMAC = new KeyGenAlgorithm( PBA_SHA1_HMAC = new KeyGenAlgorithm(
CKM_PBA_SHA1_WITH_SHA1_HMAC, CKM_PBA_SHA1_WITH_SHA1_HMAC,
"PBA/SHA1/HMAC", 160, null, PBEKeyGenParams.class ); "PBA/SHA1/HMAC", 160, null, PBEKeyGenParams.class );
//////////////////////////////////////////////////////////////
// Export control code
//////////////////////////////////////////////////////////////
private static final int NUMBER_OF_ALGORITHMS = 4;
public KeyGenAlgorithm[] getAllAlgorithms( Usage usage ) {
KeyGenAlgorithm[] algs = new KeyGenAlgorithm[NUMBER_OF_ALGORITHMS];
long[] indices = getAllAlgorithmIndices( usage );
int j = 0;
for( int i = 0; i <= indices.length; i++ ) {
switch( ( int ) indices[i] ) {
case CKM_DES_KEY_GEN:
algs[j] = DES;
j++;
break;
case CKM_DES3_KEY_GEN:
algs[j] = DES3;
j++;
break;
case CKM_RC4_KEY_GEN:
algs[j] = RC4;
j++;
break;
case CKM_PBA_SHA1_WITH_SHA1_HMAC:
algs[j] = PBA_SHA1_HMAC;
j++;
break;
default:
continue;
}
}
return algs;
}
} }

Просмотреть файл

@ -72,34 +72,4 @@ public class KeyPairAlgorithm extends Algorithm {
public static final KeyPairAlgorithm public static final KeyPairAlgorithm
DSA = new KeyPairAlgorithm(CKM_DSA_KEY_PAIR_GEN, "DSA", DSAFamily); DSA = new KeyPairAlgorithm(CKM_DSA_KEY_PAIR_GEN, "DSA", DSAFamily);
////////////////////////////////////////////////////////////////
// Export control code
////////////////////////////////////////////////////////////////
private static final int NUMBER_OF_ALGORITHMS = 4;
public KeyPairAlgorithm[] getAllAlgorithms( Usage usage ) {
KeyPairAlgorithm[] algs = new KeyPairAlgorithm[NUMBER_OF_ALGORITHMS];
long[] indices = getAllAlgorithmIndices( usage );
int j = 0;
for( int i = 0; i <= indices.length; i++ ) {
switch( ( int ) indices[i] ) {
case CKM_RSA_PKCS_KEY_PAIR_GEN:
algs[j] = RSA;
j++;
break;
case CKM_DSA_KEY_PAIR_GEN:
algs[j] = DSA;
j++;
break;
default:
continue;
}
}
return algs;
}
} }

Просмотреть файл

@ -84,54 +84,4 @@ public class KeyWrapAlgorithm extends Algorithm {
public static final KeyWrapAlgorithm public static final KeyWrapAlgorithm
RSA = new KeyWrapAlgorithm(SEC_OID_PKCS1_RSA_ENCRYPTION, "RSA", null, RSA = new KeyWrapAlgorithm(SEC_OID_PKCS1_RSA_ENCRYPTION, "RSA", null,
false); false);
///////////////////////////////////////////////////////////////////////
// Export control code
///////////////////////////////////////////////////////////////////////
private static final int NUMBER_OF_ALGORITHMS = 7;
public KeyWrapAlgorithm[] getAllAlgorithms( Usage usage ) {
KeyWrapAlgorithm[] algs = new KeyWrapAlgorithm[NUMBER_OF_ALGORITHMS];
long[] indices = getAllAlgorithmIndices( usage );
int j = 0;
for( int i = 0; i <= indices.length; i++ ) {
switch( ( int ) indices[i] ) {
case SEC_OID_DES_ECB:
algs[j] = DES_ECB;
j++;
break;
case SEC_OID_DES_CBC:
algs[j] = DES_CBC;
j++;
break;
case CKM_DES_CBC_PAD:
algs[j] = DES_CBC_PAD;
j++;
break;
case CKM_DES3_ECB:
algs[j] = DES3_ECB;
j++;
break;
case SEC_OID_DES_EDE3_CBC:
algs[j] = DES3_CBC;
j++;
break;
case CKM_DES3_CBC_PAD:
algs[j] = DES3_CBC_PAD;
j++;
break;
case SEC_OID_PKCS1_RSA_ENCRYPTION:
algs[j] = RSA;
j++;
break;
default:
continue;
}
}
return algs;
}
} }

Просмотреть файл

@ -140,58 +140,4 @@ public class PBEAlgorithm extends KeyGenAlgorithm {
SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC, SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC,
"PBE/SHA1/RC2-40", 40, PKCS12_PBE.subBranch(6), "PBE/SHA1/RC2-40", 40, PKCS12_PBE.subBranch(6),
EncryptionAlgorithm.RC2_CBC, 20 ); EncryptionAlgorithm.RC2_CBC, 20 );
//////////////////////////////////////////////////////////////
// Export control code
//////////////////////////////////////////////////////////////
private static final int NUMBER_OF_ALGORITHMS = 8;
public KeyGenAlgorithm[] getAllAlgorithms( Usage usage ) {
KeyGenAlgorithm[] algs = new KeyGenAlgorithm[NUMBER_OF_ALGORITHMS];
long[] indices = getAllAlgorithmIndices( usage );
int j = 0;
for( int i = 0; i <= indices.length; i++ ) {
switch( ( int ) indices[i] ) {
case SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC:
algs[j] = PBE_MD2_DES_CBC;
j++;
break;
case SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC:
algs[j] = PBE_MD5_DES_CBC;
j++;
break;
case SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC:
algs[j] = PBE_SHA1_DES_CBC;
j++;
break;
case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4:
algs[j] = PBE_SHA1_RC4_128;
j++;
break;
case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4:
algs[j] = PBE_SHA1_RC4_40;
j++;
break;
case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC:
algs[j] = PBE_SHA1_DES3_CBC;
j++;
break;
case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC:
algs[j] = PBE_SHA1_RC2_128_CBC;
j++;
break;
case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC:
algs[j] = PBE_SHA1_RC2_40_CBC;
j++;
break;
default:
continue;
}
}
return algs;
}
} }

Просмотреть файл

@ -39,7 +39,8 @@
#include <secitem.h> #include <secitem.h>
#include <secoidt.h> #include <secoidt.h>
#include <keyt.h> /* for PQGParams */ #include <keyt.h> /* for PQGParams */
#include <pqggen.h> #include <blapi.h>
#include <pqgutil.h>
#include <jss_bigint.h> #include <jss_bigint.h>
#include <jssutil.h> #include <jssutil.h>

Просмотреть файл

@ -143,51 +143,4 @@ public class SignatureAlgorithm extends Algorithm {
new SignatureAlgorithm(SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST, new SignatureAlgorithm(SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST,
"DSASignatureWithSHA1Digest", DSASignature, DigestAlgorithm.SHA1, "DSASignatureWithSHA1Digest", DSASignature, DigestAlgorithm.SHA1,
ANSI_X9_ALGORITHM.subBranch(3) ); ANSI_X9_ALGORITHM.subBranch(3) );
//////////////////////////////////////////////////////////////////////
// Export control code
//////////////////////////////////////////////////////////////////////
private static final int NUMBER_OF_ALGORITHMS = 6;
public SignatureAlgorithm[] getAllAlgorithms( Usage usage ) {
SignatureAlgorithm[] algs = new
SignatureAlgorithm[NUMBER_OF_ALGORITHMS];
long[] indices = getAllAlgorithmIndices( usage );
int j = 0;
for( int i = 0; i <= indices.length; i++ ) {
switch( ( int ) indices[i] ) {
case SEC_OID_PKCS1_RSA_ENCRYPTION:
algs[j] = RSASignature ;
j++;
break;
case SEC_OID_ANSIX9_DSA_SIGNATURE:
algs[j] = DSASignature;
j++;
break;
case SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION:
algs[j] = RSASignatureWithMD2Digest;
j++;
break;
case SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION:
algs[j] = RSASignatureWithMD5Digest;
j++;
break;
case SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION:
algs[j] = RSASignatureWithSHA1Digest;
j++;
break;
case SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST:
algs[j] = DSASignatureWithSHA1Digest;
j++;
break;
default:
continue;
}
}
return algs;
}
} }

Просмотреть файл

@ -30,37 +30,3 @@
# may use your version of this file under either the MPL or the # may use your version of this file under either the MPL or the
# GPL. # GPL.
# #
#######################################################################
# Set the LD_LIBS value to encompass all static JSS, security, and #
# dbm libraries #
#######################################################################
LD_LIBS += $(LIBJSSUTIL) \
$(LIBJSSPOLICY) \
$(LIBSECMOD) \
$(LIBCERT) \
$(LIBKEY) \
$(LIBCRYPTO) \
$(LIBHASH) \
$(LIBSECUTIL) \
$(LIBDBM) \
$(NULL)
#######################################################################
# Append additional LD_LIBS value to encompass all dynamic NSPR 2.0, #
# java, and system libraries #
#######################################################################
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(DLLPLDS) $(DLLPLC) $(DLLPR) $(DLLSYSTEM)
else
LD_LIBS += -L$(SOURCE_LIB_DIR) -lplds3 -lplc3 -lnspr3 $(DLLSYSTEM)
endif
#######################################################################
# Turn off any Export Control Policy for these libraries #
#######################################################################
POLICY =

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

@ -30,37 +30,3 @@
# may use your version of this file under either the MPL or the # may use your version of this file under either the MPL or the
# GPL. # GPL.
# #
#######################################################################
# Set the LD_LIBS value to encompass all static JSS, security, and #
# dbm libraries #
#######################################################################
LD_LIBS += $(LIBSECMOD) \
$(LIBPKCS12) \
$(LIBPKCS7) \
$(LIBHASH) \
$(LIBCERT) \
$(LIBKEY) \
$(LIBCRYPTO) \
$(LIBSECUTIL) \
$(LIBDBM) \
$(NULL)
#######################################################################
# Append additional LD_LIBS value to encompass all dynamic NSPR 2.0, #
# java, and system libraries #
#######################################################################
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(DLLPLDS) $(DLLPLC) $(DLLPR) $(DLLSYSTEM)
else
LD_LIBS += -L$(SOURCE_LIB_DIR) -lplds3 -lplc3 -lnspr3 $(DLLSYSTEM)
endif
#######################################################################
# Turn off any Export Control Policy for these libraries #
#######################################################################
POLICY =

Просмотреть файл

@ -1,49 +0,0 @@
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
CORE_DEPTH = ../../../../..
MODULE = ninja
NS_USE_JDK = 1
REQUIRES = nspr20 dbm security
PRIVATE_EXPORTS = hclhacks.h \
$(NULL)
CSRCS = \
secvfy.c \
$(NULL)
LIBRARY_NAME = jsshclhacks

Просмотреть файл

@ -1,382 +0,0 @@
/*
* 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 Services for Java.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-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.
*/
#include <stdio.h>
#include "crypto.h"
#include "sechash.h"
#include "key.h"
#include "secasn1.h"
#include "secoid.h"
#include "pk11func.h"
#include "rsa.h"
#include "secerr.h"
/*
** Decrypt signature block using public key (in place)
** XXX this is assuming that the signature algorithm has WITH_RSA_ENCRYPTION
*/
static SECStatus
DecryptSigBlock(int *tagp, unsigned char *digest, SECKEYPublicKey *key,
SECItem *sig, char *wincx)
{
SECItem it;
SGNDigestInfo *di = NULL;
unsigned char *dsig;
SECStatus rv;
SECOidTag tag;
unsigned char buf[MAX_RSA_MODULUS_LEN];
dsig = NULL;
it.data = buf;
it.len = sizeof(buf);
if (key == NULL) goto loser;
/* Decrypt signature block */
dsig = (unsigned char*) PORT_Alloc(sig->len);
if (dsig == NULL) goto loser;
/* decrypt the block */
rv = PK11_VerifyRecover(key, sig, &it, wincx);
if (rv != SECSuccess) goto loser;
di = SGN_DecodeDigestInfo(&it);
if (di == NULL) goto sigloser;
/*
** Finally we have the digest info; now we can extract the algorithm
** ID and the signature block
*/
tag = SECOID_GetAlgorithmTag(&di->digestAlgorithm);
/* XXX Check that tag is an appropriate algorithm? */
if (di->digest.len > 32) {
PORT_SetError(SEC_ERROR_OUTPUT_LEN);
goto loser;
}
PORT_Memcpy(digest, di->digest.data, di->digest.len);
*tagp = tag;
goto done;
sigloser:
PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
loser:
rv = SECFailure;
done:
if (di != NULL) SGN_DestroyDigestInfo(di);
if (dsig != NULL) PORT_Free(dsig);
return rv;
}
typedef enum { VFY_RSA, VFY_DSA} VerifyType;
/************************************************************************/
/************************************************************************/
/* Above is from secvfy.c. Here's the new stuff: */
/* Reverse-direction verification: get the signature at the end of the */
/* digest instead of at the beginning. */
/************************************************************************/
/************************************************************************/
#include "hclhacks.h"
struct VFYContext2Str {
SECOidTag compositeAlg;
SECOidTag alg; /* hash alg */
SECKEYPublicKey *key;
VerifyType type;
void *hashcx;
SECHashObject *hashobj;
};
/*
* Pulls the hash algorithm, signing algorithm, and key type out of a
* composite algorithm.
*
* alg: the composite algorithm to dissect.
* hashalg: address of a SECOidTag which will be set with the hash algorithm.
* signalg: address of a SECOidTag which will be set with the signing alg.
* keyType: address of a KeyType which will be set with the key type.
* Returns: SECSuccess if the algorithm was acceptable, SECFailure if the
* algorithm was not found or was not a signing algorithm.
*/
static SECStatus
dissectSigAlg(SECOidTag alg, SECOidTag *hashalg, SECOidTag *signalg,
KeyType *keyType)
{
PR_ASSERT(hashalg!=NULL && signalg!=NULL && keyType!=NULL);
switch (alg) {
/* We probably shouldn't be generating MD2 signatures either */
case SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION:
*hashalg = SEC_OID_MD2;
*signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
*keyType = rsaKey;
return SECSuccess;
case SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION:
*hashalg = SEC_OID_MD5;
*signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
*keyType = rsaKey;
return SECSuccess;
case SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION:
case SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE:
*hashalg = SEC_OID_SHA1;
*signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
*keyType = rsaKey;
return SECSuccess;
/* what about normal DSA? */
case SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST:
case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST:
*hashalg = SEC_OID_SHA1;
*signalg = SEC_OID_ANSIX9_DSA_SIGNATURE;
*keyType = dsaKey;
return SECSuccess;
case SEC_OID_MISSI_DSS:
case SEC_OID_MISSI_KEA_DSS:
case SEC_OID_MISSI_KEA_DSS_OLD:
case SEC_OID_MISSI_DSS_OLD:
*hashalg = SEC_OID_SHA1;
*signalg = SEC_OID_MISSI_DSS; /* XXX Is there a better algid? */
*keyType = fortezzaKey;
return SECSuccess;
/* we don't implement MD4 hashes */
case SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION:
default:
return SECFailure;
}
PR_ASSERT(PR_FALSE); /* shouldn't get here */
}
/*
* algid: The composite signature algorithm, for example
* SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION.
* Returns: a new VFYContext2, or NULL if an error occurred.
*/
VFYContext2 *
VFY_CreateContext2(SECKEYPublicKey *key, SECOidTag algid)
{
VFYContext2 *cx=NULL;
SECOidTag hashAlg;
SECOidTag sigAlg;
KeyType keyType;
PR_ASSERT(key!=NULL);
/*
* validate key type and hash algorithm
*/
if( dissectSigAlg(algid, &hashAlg, &sigAlg, &keyType) != SECSuccess) {
PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
goto loser;
}
if( keyType != key->keyType ) {
/* key type of algorithm is not the type of the key that
* was passed in */
PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
goto loser;
}
switch(hashAlg) {
case SEC_OID_MD2:
case SEC_OID_MD5:
case SEC_OID_SHA1:
break;
default:
PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
goto loser;
}
/*
* Create the context
*/
cx = (VFYContext2*) PORT_ZAlloc(sizeof(VFYContext2));
if (cx == NULL) {
PORT_SetError(SEC_ERROR_NO_MEMORY);
goto loser;
}
cx->compositeAlg = algid;
cx->alg = hashAlg;
switch(keyType) {
case rsaKey:
cx->type = VFY_RSA;
break;
case dsaKey:
case fortezzaKey:
cx->type = VFY_DSA;
break;
default:
PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
goto loser;
}
cx->key = SECKEY_CopyPublicKey(key);
PR_ASSERT(cx->hashcx == NULL);
PR_ASSERT(cx->hashobj == NULL);
return cx;
loser:
if(cx) {
VFY_DestroyContext2(cx, PR_TRUE);
}
return NULL;
}
void
VFY_DestroyContext2(VFYContext2 *cx, PRBool freeit)
{
if (cx) {
if (cx->hashcx != NULL) {
(*cx->hashobj->destroy)(cx->hashcx, PR_TRUE);
cx->hashcx = NULL;
}
if (cx->key) {
SECKEY_DestroyPublicKey(cx->key);
}
if (freeit) {
PORT_ZFree(cx, sizeof(VFYContext2));
}
}
}
SECStatus
VFY_Begin2(VFYContext2 *cx)
{
if (cx->hashcx != NULL) {
(*cx->hashobj->destroy)(cx->hashcx, PR_TRUE);
cx->hashcx = NULL;
}
switch (cx->alg) {
case SEC_OID_MD2:
cx->hashobj = &SECHashObjects[HASH_AlgMD2];
break;
case SEC_OID_MD5:
cx->hashobj = &SECHashObjects[HASH_AlgMD5];
break;
case SEC_OID_SHA1:
cx->hashobj = &SECHashObjects[HASH_AlgSHA1];
break;
default:
PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
return SECFailure;
}
cx->hashcx = (*cx->hashobj->create)();
if (cx->hashcx == NULL)
return SECFailure;
(*cx->hashobj->begin)(cx->hashcx);
return SECSuccess;
}
SECStatus
VFY_Update2(VFYContext2 *cx, unsigned char *input, unsigned inputLen)
{
if (cx->hashcx == NULL) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
return SECFailure;
}
(*cx->hashobj->update)(cx->hashcx, input, inputLen);
return SECSuccess;
}
SECStatus
VFY_End2(VFYContext2 *cx, SECItem *sig, void *wincx)
{
unsigned char final[32];
unsigned part;
int hashAlg;
SECItem hash, mysig;
SECItem *dsasig = NULL;
unsigned char digest[DSA_SIGNATURE_LEN];
SECStatus status = SECFailure;
if (cx->hashcx == NULL) {
PORT_SetError(SEC_ERROR_INVALID_ARGS);
goto finish;
}
(*cx->hashobj->end)(cx->hashcx, final, &part, sizeof(final));
switch (cx->type) {
case VFY_DSA:
/* if this is a DER encoded signature, decode it first */
if ((cx->compositeAlg==SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST) ||
(cx->compositeAlg==SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST) ||
(cx->compositeAlg==SEC_OID_ANSIX9_DSA_SIGNATURE)) {
dsasig = DSAU_DecodeDerSig(sig);
if ((dsasig == NULL) || (dsasig->len != DSA_SIGNATURE_LEN)) {
PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
goto finish;
}
PORT_Memcpy(&digest[0], dsasig->data, dsasig->len);
} else {
if (sig->len != DSA_SIGNATURE_LEN) {
PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
goto finish;
}
PORT_Memcpy(&digest[0], sig->data, sig->len);
}
mysig.data = digest;
mysig.len = DSA_SIGNATURE_LEN; /* magic size of dsa signature */
hash.data = final;
hash.len = part;
if (PK11_Verify(cx->key,&mysig,&hash,wincx) != SECSuccess) {
PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
goto finish;
}
break;
case VFY_RSA:
if( DecryptSigBlock(&hashAlg, &digest[0], cx->key, sig, wincx)
!= SECSuccess)
{
PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
goto finish;
}
if (PORT_Memcmp(final, digest, part)) {
PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
goto finish;
}
break;
default:
PR_ASSERT(PR_FALSE); /* shouldn't happen */
PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
goto finish;
}
status = SECSuccess;
finish:
if (dsasig != NULL) {
SECITEM_FreeItem(dsasig, PR_TRUE);
}
return status;
}

Просмотреть файл

@ -32,7 +32,6 @@
*/ */
#include "_jni/org_mozilla_jss_CryptoManager.h" #include "_jni/org_mozilla_jss_CryptoManager.h"
#include <svrplcy.h>
#include <secitem.h> #include <secitem.h>
#include <mcom_db.h> #include <mcom_db.h>
#include <secmod.h> #include <secmod.h>
@ -44,6 +43,8 @@
#include <secrng.h> #include <secrng.h>
#include <nspr.h> #include <nspr.h>
#include <plstr.h> #include <plstr.h>
#include <cdbhdl.h>
#include <pkcs11.h>
#include <jssutil.h> #include <jssutil.h>
#include <java_ids.h> #include <java_ids.h>
@ -51,7 +52,6 @@
#include "jssinit.h" #include "jssinit.h"
#include "pk11util.h" #include "pk11util.h"
#include "Policy.h"
#if defined(AIX) || defined(HPUX) || defined(LINUX) #if defined(AIX) || defined(HPUX) || defined(LINUX)
#include <signal.h> #include <signal.h>
@ -78,26 +78,6 @@ makePWCBInfo(JNIEnv *env, PK11SlotInfo *slot);
static char* static char*
getPWFromCallback(PK11SlotInfo *slot, PRBool retry, void *arg); getPWFromCallback(PK11SlotInfo *slot, PRBool retry, void *arg);
static jint
getPolicyTypeIndex( SVRPLCYPolicyType thisPolicy );
/***********************************************************************
**
** Policy Type indices. This must be kept in sync with the policy
** type indices in the CryptoManager class.
**/
#define NUM_POLICIES 4
SVRPLCYPolicyType JSS_PolicyTable[NUM_POLICIES] = {
/* 0 */ { SVRPLCYNull },
/* 1 */ { SVRPLCYDomestic },
/* 2 */ { SVRPLCYExport },
/* 3 */ { SVRPLCYFrance }
/* REMEMBER TO UPDATE NUM_POLICIES!!! */
};
/************************************************************* /*************************************************************
* AIX, HP, and Linux signal handling madness * AIX, HP, and Linux signal handling madness
* *
@ -293,30 +273,7 @@ simpleInitialize(JNIEnv *env)
PR_SetConcurrency( concurrency ); PR_SetConcurrency( concurrency );
RNG_RNGInit(); RNG_RNGInit();
RNG_SystemInfoForRNG();
/* establish a Utility policy */
if( SVRPLCY_InstallUtilityPolicy() != PR_SUCCESS ) {
JSS_throwMsg(env, SECURITY_EXCEPTION,
"Failed to install utility policy");
return PR_FAILURE;
}
/* establish an SSL policy */
SVRPLCY_InstallSSLPolicy();
/* establish a JSS policy */
if( SVRPLCY_InstallJSSPolicy() != PR_SUCCESS ) {
JSS_throwMsg(env, SECURITY_EXCEPTION,
"Failed to install JSS policy");
return PR_FAILURE;
}
/* establish JSS max key sizes */
if( JSS_InstallMaxKeySizesAllowed() != PR_SUCCESS ) {
JSS_throwMsg(env, SECURITY_EXCEPTION,
"Failed to install max JSS key sizes");
return PR_FAILURE;
}
initialized = PR_TRUE; initialized = PR_TRUE;
@ -754,7 +711,7 @@ getPWFromCallback(PK11SlotInfo *slot, PRBool retry, void *arg)
} }
/* Get the JNI environment */ /* Get the JNI environment */
if( (*javaVM)->AttachCurrentThread(javaVM, &env, NULL) != 0) { if( (*javaVM)->AttachCurrentThread(javaVM, (void**)&env, NULL) != 0) {
PR_ASSERT(PR_FALSE); PR_ASSERT(PR_FALSE);
goto finish; goto finish;
} }
@ -1073,67 +1030,6 @@ Java_org_mozilla_jss_CryptoManager_FIPSEnabled(JNIEnv *env, jobject this)
} }
} }
/***********************************************************************
* CryptoManager.isDomestic
*
* Returns true if this build of jssjava is "domestic", false otherwise.
*/
JNIEXPORT jboolean JNICALL
Java_org_mozilla_jss_CryptoManager_isDomestic(JNIEnv *env, jobject this)
{
/* "C" data members */
PRBool result;
result = JSS_isDomestic();
/* Return a java boolean */
if( result != PR_TRUE ) {
return JNI_FALSE;
}
return JNI_TRUE;
}
/***********************************************************************
* CryptoManager.getPolicyTypeIndex
*
* Input export control policy from embedded utility policy table.
*
* Returns the index where the policy is stored in the JSS_PolicyTable[].
*/
static jint
getPolicyTypeIndex( SVRPLCYPolicyType thisPolicy )
{
jint i;
for( i = 0; i < NUM_POLICIES; i++ ) {
if( thisPolicy == JSS_PolicyTable[i] ) {
return i;
}
};
return( -1 );
}
/***********************************************************************
* CryptoManager.getExportControlPolicyType
*
* Returns an integer related to the export control policy type
*/
JNIEXPORT jint JNICALL
Java_org_mozilla_jss_CryptoManager_getExportControlPolicyType( JNIEnv *env,
jobject this )
{
/* "C" data members */
SVRPLCYPolicyType policy;
/* Get the export control policy from the embedded utility policy table */
policy = JSS_getExportControlPolicyType();
/* Return a java int */
return( getPolicyTypeIndex( policy ) );
}
/*********************************************************************** /***********************************************************************
* DatabaseCloser.closeDatabases * DatabaseCloser.closeDatabases
* *

Просмотреть файл

@ -51,7 +51,7 @@ import org.mozilla.jss.CRLImportException;
* Initialization is done with static methods, and must be done before * Initialization is done with static methods, and must be done before
* an instance can be created. All other operations are done with instance * an instance can be created. All other operations are done with instance
* methods. * methods.
* @version $Revision: 1.2 $ $Date: 2000-12-19 06:18:01 $ * @version $Revision: 1.3 $ $Date: 2001-01-16 23:49:19 $
*/ */
public final class CryptoManager implements TokenSupplier public final class CryptoManager implements TokenSupplier
{ {
@ -174,7 +174,7 @@ public final class CryptoManager implements TokenSupplier
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
/** /**
* Returns the Manufacturer ID of the internal PKCS #11 module. * Returns the Manufacturer ID of the internal PKCS #11 module.
* <p>The default is <code>"Netscape Communications Corp "</code>. * <p>The default is <code>"mozilla.org "</code>.
*/ */
public String getManufacturerID() { return manufacturerID; } public String getManufacturerID() { return manufacturerID; }
@ -192,7 +192,7 @@ public final class CryptoManager implements TokenSupplier
manufacturerID = s; manufacturerID = s;
} }
private String manufacturerID = private String manufacturerID =
"Netscape Communications Corp "; "mozilla.org ";
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Library Description // Library Description
@ -282,7 +282,7 @@ public final class CryptoManager implements TokenSupplier
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
/** /**
* Returns the description of the internal PKCS #11 slot. * Returns the description of the internal PKCS #11 slot.
* <p>The default is <code>"Netscape Internal Cryptographic Services "</code>. * <p>The default is <code>"NSS Internal Cryptographic Services "</code>.
*/ */
public String getInternalSlotDescription() { public String getInternalSlotDescription() {
return internalSlotDescription; return internalSlotDescription;
@ -304,14 +304,14 @@ public final class CryptoManager implements TokenSupplier
internalSlotDescription = s; internalSlotDescription = s;
} }
private String internalSlotDescription = private String internalSlotDescription =
"Netscape Internal Cryptographic Services "; "NSS Internal Cryptographic Services ";
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Internal Key Storage Slot Description // Internal Key Storage Slot Description
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
/** /**
* Returns the description of the internal PKCS #11 key storage slot. * Returns the description of the internal PKCS #11 key storage slot.
* <p>The default is <code>"Netscape Internal Private Key and Certificate Storage "</code>. * <p>The default is <code>"NSS Internal Private Key and Certificate Storage "</code>.
*/ */
public String getInternalKeyStorageSlotDescription() { public String getInternalKeyStorageSlotDescription() {
@ -334,14 +334,14 @@ public final class CryptoManager implements TokenSupplier
internalKeyStorageSlotDescription = s; internalKeyStorageSlotDescription = s;
} }
private String internalKeyStorageSlotDescription = private String internalKeyStorageSlotDescription =
"Netscape Internal Private Key and Certificate Storage "; "NSS Internal Private Key and Certificate Storage ";
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// FIPS Slot Description // FIPS Slot Description
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
/** /**
* Returns the description of the internal PKCS #11 FIPS slot. * Returns the description of the internal PKCS #11 FIPS slot.
* <p>The default is <code>"Netscape Internal FIPS-140-1 Cryptographic Services "</code>. * <p>The default is <code>"NSS Internal FIPS-140-1 Cryptographic Services "</code>.
*/ */
public String getFIPSSlotDescription() { public String getFIPSSlotDescription() {
return FIPSSlotDescription; return FIPSSlotDescription;
@ -363,7 +363,7 @@ public final class CryptoManager implements TokenSupplier
FIPSSlotDescription = s; FIPSSlotDescription = s;
} }
private String FIPSSlotDescription = private String FIPSSlotDescription =
"Netscape Internal FIPS-140-1 Cryptographic Services "; "NSS Internal FIPS-140-1 Cryptographic Services ";
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// FIPS Key Storage Slot Description // FIPS Key Storage Slot Description
@ -371,7 +371,7 @@ public final class CryptoManager implements TokenSupplier
/** /**
* Returns the description of the internal PKCS #11 FIPS * Returns the description of the internal PKCS #11 FIPS
* Key Storage slot. * Key Storage slot.
* <p>The default is <code>"Netscape Internal FIPS-140-1 Private Key and Certificate Storage "</code>. * <p>The default is <code>"NSS Internal FIPS-140-1 Private Key and Certificate Storage "</code>.
*/ */
public String getFIPSKeyStorageSlotDescription() { public String getFIPSKeyStorageSlotDescription() {
return FIPSKeyStorageSlotDescription; return FIPSKeyStorageSlotDescription;
@ -393,7 +393,7 @@ public final class CryptoManager implements TokenSupplier
FIPSKeyStorageSlotDescription = s; FIPSKeyStorageSlotDescription = s;
} }
private String FIPSKeyStorageSlotDescription = private String FIPSKeyStorageSlotDescription =
"Netscape Internal FIPS-140-1 Private Key and Certificate Storage "; "NSS Internal FIPS-140-1 Private Key and Certificate Storage ";
/** /**
* To have NSS check the OCSP responder for when verifying * To have NSS check the OCSP responder for when verifying
@ -434,7 +434,7 @@ public final class CryptoManager implements TokenSupplier
/** /**
* Retrieves the internal cryptographic services token. This is the * Retrieves the internal cryptographic services token. This is the
* token built into the Netscape Security Library that performs bulk * token built into NSS that performs bulk
* cryptographic operations. * cryptographic operations.
* <p>In FIPS mode, the internal cryptographic services token is the * <p>In FIPS mode, the internal cryptographic services token is the
* same as the internal key storage token. * same as the internal key storage token.
@ -447,7 +447,7 @@ public final class CryptoManager implements TokenSupplier
/** /**
* Retrieves the internal key storage token. This is the token * Retrieves the internal key storage token. This is the token
* provided by the Netscape Security Library to store private keys. * provided by NSS to store private keys.
* The keys stored in this token are stored in an encrypted key database. * The keys stored in this token are stored in an encrypted key database.
* <p>In FIPS mode, the internal key storage token is the same as * <p>In FIPS mode, the internal key storage token is the same as
* the internal cryptographic services token. * the internal cryptographic services token.
@ -527,8 +527,8 @@ public final class CryptoManager implements TokenSupplier
} }
/** /**
* Retrieves all tokens except those built into the Netscape Security * Retrieves all tokens except those built into NSS.
* Library. This excludes the internal token and the internal * This excludes the internal token and the internal
* key storage token (which are one and the same in FIPS mode). * key storage token (which are one and the same in FIPS mode).
* *
* @return All tokens accessible from JSS, except for the built-in * @return All tokens accessible from JSS, except for the built-in
@ -678,24 +678,6 @@ public final class CryptoManager implements TokenSupplier
*/ */
public synchronized native boolean FIPSEnabled(); public synchronized native boolean FIPSEnabled();
///////////////////////////////////////////////////////////////////////
// Export Control Policy management
///////////////////////////////////////////////////////////////////////
/**
* Determines whether this build of jssjava is "domestic".
*
* @return true if jssjava is "domestic", false otherwise.
*/
public synchronized native boolean isDomestic();
/**
* Determines what policy this build of jssjava contains.
*
* @return the policy type of this jssjava executable.
*/
public synchronized native int getExportControlPolicyType();
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
// Password Callback management // Password Callback management
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
@ -838,7 +820,7 @@ public final class CryptoManager implements TokenSupplier
1); 1);
if(position==-11) { if(position==-11) {
Debug.trace(Debug.ERROR, Debug.trace(Debug.ERROR,
"Unable to install Netscape provider"); "Unable to install default provider");
} }
} }
@ -1244,8 +1226,7 @@ public final class CryptoManager implements TokenSupplier
/** /**
* Retrieves a FIPS-140-1 validated random number generator. * Retrieves a FIPS-140-1 validated random number generator.
* *
* @return A JSS SecureRandom implemented with the FIPS-validated * @return A JSS SecureRandom implemented with FIPS-validated NSS.
* Netscape security library.
*/ */
public org.mozilla.jss.crypto.JSSSecureRandom public org.mozilla.jss.crypto.JSSSecureRandom
createPseudoRandomNumberGenerator() createPseudoRandomNumberGenerator()
@ -1256,8 +1237,7 @@ public final class CryptoManager implements TokenSupplier
/** /**
* Retrieves a FIPS-140-1 validated random number generator. * Retrieves a FIPS-140-1 validated random number generator.
* *
* @return A JSS SecureRandom implemented with the FIPS-validated * @return A JSS SecureRandom implemented with FIPS-validated NSS.
* Netscape security library.
*/ */
public org.mozilla.jss.crypto.JSSSecureRandom public org.mozilla.jss.crypto.JSSSecureRandom
getSecureRNG() { getSecureRNG() {

Просмотреть файл

@ -139,14 +139,14 @@ public final class NSSInit {
keyDBName, keyDBName,
certDBName, certDBName,
true, // readOnly true, // readOnly
"Netscape Communications Corp ", "mozilla.org ",
"Internal Crypto Services ", "Internal Crypto Services ",
"Internal Crypto Services Token ", "Internal Crypto Services Token ",
"Internal Key Storage Token ", "Internal Key Storage Token ",
"Netscape Internal Cryptographic Services ", "NSS Internal Cryptographic Services ",
"Netscape Internal Private Key and Certificate Storage ", "NSS Internal Private Key and Certificate Storage ",
"Netscape Internal FIPS-140-1 Cryptographic Services ", "NSS Internal FIPS-140-1 Cryptographic Services ",
"Netscape Internal FIPS-140-1 Private Key and Certificate Storage "); "NSS Internal FIPS-140-1 Private Key and Certificate Storage ");
setPasswordCallback( new ConsolePasswordCallback() ); setPasswordCallback( new ConsolePasswordCallback() );
mNSSInitialized = true; mNSSInitialized = true;

Просмотреть файл

@ -902,7 +902,6 @@ Java_org_mozilla_jss_CryptoManager_importCertPackageNative
jobject leafObject=NULL; jobject leafObject=NULL;
CERTIssuerAndSN *issuerAndSN; CERTIssuerAndSN *issuerAndSN;
PLArenaPool *arena=NULL; PLArenaPool *arena=NULL;
int root_cert = -1;
/*************************************************** /***************************************************
* Validate arguments * Validate arguments
@ -1106,7 +1105,6 @@ Java_org_mozilla_jss_CryptoManager_importCertPackageNative
* Now add the rest of the certs (which should all be CAs) * Now add the rest of the certs (which should all be CAs)
***************************************************/ ***************************************************/
if( numCerts-userCertFound>= 1 ) { if( numCerts-userCertFound>= 1 ) {
SECCertUsage usage;
if (certi == 0) { if (certi == 0) {
status = ImportCAChain(derCerts+userCertFound, status = ImportCAChain(derCerts+userCertFound,
@ -1783,8 +1781,6 @@ Java_org_mozilla_jss_CryptoManager_importCRLNative
{ {
CERTCertDBHandle *certdb = CERT_GetDefaultCertDB(); CERTCertDBHandle *certdb = CERT_GetDefaultCertDB();
jbyte *packageBytes=NULL;
jsize packageLen;
CERTSignedCrl *crl = NULL; CERTSignedCrl *crl = NULL;
SECItem *packageItem = NULL; SECItem *packageItem = NULL;
int status = SECFailure; int status = SECFailure;

Просмотреть файл

@ -30,43 +30,3 @@
# may use your version of this file under either the MPL or the # may use your version of this file under either the MPL or the
# GPL. # GPL.
# #
#######################################################################
# Set the LD_LIBS value to encompass all static JSS, security, and #
# dbm libraries #
#######################################################################
LD_LIBS += $(LIBSVRPLCY) \
$(LIBJSSPOLICY) \
$(LIBJSSPKCS11) \
$(LIBJSSCRYPTO) \
$(LIBJSSUTIL) \
$(LIBJSSHCLHACKS) \
$(LIBPKCS7) \
$(LIBSSL) \
$(LIBSECMOD) \
$(LIBCERT) \
$(LIBKEY) \
$(LIBCRYPTO) \
$(LIBHASH) \
$(LIBSECUTIL) \
$(LIBDBM) \
$(NULL)
#######################################################################
# Append additional LD_LIBS value to encompass all dynamic NSPR 2.0, #
# java, and system libraries #
#######################################################################
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(JAVA_LIBS) $(DLLPLDS) $(DLLPLC) $(DLLPR) $(DLLSYSTEM)
else
LD_LIBS += $(JAVA_LIBS) -L$(SOURCE_LIB_DIR) -lplds3 -lplc3 -lnspr3 $(DLLSYSTEM)
endif
#######################################################################
# Turn off any Export Control Policy for these libraries #
#######################################################################
POLICY =

Просмотреть файл

@ -34,7 +34,6 @@
#include <jni.h> #include <jni.h>
#include <nspr.h> #include <nspr.h>
*/ */
#include "svrplcy.h"
#ifndef JSS_INIT_H #ifndef JSS_INIT_H
#define JSS_INIT_H #define JSS_INIT_H
@ -75,21 +74,4 @@ JSS_completeInitialize(JNIEnv *env,
PR_EXTERN( void ) PR_EXTERN( void )
JSS_setPasswordCallback(JNIEnv *env, jobject callback); JSS_setPasswordCallback(JNIEnv *env, jobject callback);
/***********************************************************************
* JSS_isDomestic
*
* Returns true if this build of jssjava is "domestic", false otherwise.
*/
PR_EXTERN( PRBool )
JSS_isDomestic( void );
/***********************************************************************
* JSS_getExportControlPolicyType
*
* Returns the export control policy type
*/
PR_EXTERN( SVRPLCYPolicyType )
JSS_getExportControlPolicyType( void );
#endif #endif

Просмотреть файл

@ -32,7 +32,7 @@
# #
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

@ -313,7 +313,7 @@ public class CertificationRequest implements ASN1Value {
// make new Name // make new Name
Name name = new Name(); Name name = new Name();
name.addCommonName("asldkj\u00dsdlkfj\u00e"); name.addCommonName("asldkj");
name.addCountryName("US"); name.addCountryName("US");
name.addOrganizationName("Some Corp"); name.addOrganizationName("Some Corp");
name.addOrganizationalUnitName("Some Org Unit"); name.addOrganizationalUnitName("Some Org Unit");

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

@ -45,6 +45,8 @@
#include <java_ids.h> #include <java_ids.h>
#include <jss_exceptions.h> #include <jss_exceptions.h>
#include <Algorithm.h> #include <Algorithm.h>
#include <pk11func.h>
#include <secoid.h>
#define HCLHACK #define HCLHACK
#ifdef HCLHACK #ifdef HCLHACK

Просмотреть файл

@ -35,9 +35,9 @@
#include <pk11func.h> #include <pk11func.h>
#include <nspr.h> #include <nspr.h>
#include <pqggen.h>
#include <key.h> #include <key.h>
#include <secitem.h> #include <secitem.h>
#include <pqgutil.h>
#include <jssutil.h> #include <jssutil.h>
#include <pk11util.h> #include <pk11util.h>

Просмотреть файл

@ -39,7 +39,6 @@
#include <pk11func.h> #include <pk11func.h>
#include <secitem.h> #include <secitem.h>
#include <keyt.h> #include <keyt.h>
#include <rsa.h>
/* JSS includes */ /* JSS includes */
#include <java_ids.h> #include <java_ids.h>

Просмотреть файл

@ -39,8 +39,9 @@
#include "_jni/org_mozilla_jss_pkcs11_PK11Signature.h" #include "_jni/org_mozilla_jss_pkcs11_PK11Signature.h"
#include "_jni/org_mozilla_jss_pkcs11_SigContextProxy.h" #include "_jni/org_mozilla_jss_pkcs11_SigContextProxy.h"
#include <Algorithm.h> #include <Algorithm.h>
#include <crypto.h>
#include <secerr.h> #include <secerr.h>
#include <cryptoht.h>
#include <cryptohi.h>
#include <jssutil.h> #include <jssutil.h>
#include <java_ids.h> #include <java_ids.h>

Просмотреть файл

@ -40,16 +40,16 @@
#include <nspr.h> #include <nspr.h>
#include <key.h> #include <key.h>
#include <secasn1.h> #include <secasn1.h>
#include <crypto.h>
#include <base64.h> #include <base64.h>
#include <cert.h> #include <cert.h>
#include <cryptohi.h>
#include <pqgutil.h>
#include <jssutil.h> #include <jssutil.h>
#include <jss_exceptions.h> #include <jss_exceptions.h>
#include <jss_bigint.h> #include <jss_bigint.h>
#include <Algorithm.h> #include <Algorithm.h>
#include <pqggen.h>
#include <secitem.h> #include <secitem.h>
#include "java_ids.h" #include "java_ids.h"
@ -958,7 +958,6 @@ JNIEXPORT jstring JNICALL Java_org_mozilla_jss_pkcs11_PK11Token_generatePK10
unsigned char *b64request; unsigned char *b64request;
SECItem p, q, g; SECItem p, q, g;
PQGParams *dsaParams=NULL; PQGParams *dsaParams=NULL;
jobject keyPair=NULL;
const char* c_keyType; const char* c_keyType;
jboolean k_isCopy; jboolean k_isCopy;
unsigned int ktype = 0; unsigned int ktype = 0;
@ -1064,7 +1063,6 @@ GenerateCertRequest(JNIEnv *env,
SECKEYPrivateKey *privk = NULL; SECKEYPrivateKey *privk = NULL;
SECKEYPublicKey *pubk = NULL; SECKEYPublicKey *pubk = NULL;
int i = 0;
SECStatus rv; SECStatus rv;
PRArenaPool *arena; PRArenaPool *arena;
SECItem result_der, result; SECItem result_der, result;

Просмотреть файл

@ -30,40 +30,3 @@
# may use your version of this file under either the MPL or the # may use your version of this file under either the MPL or the
# GPL. # GPL.
# #
#######################################################################
# Set the LD_LIBS value to encompass all static JSS, security, and #
# dbm libraries #
#######################################################################
LD_LIBS += $(LIBJSSCRYPTO) \
$(LIBJSSUTIL) \
$(LIBJSSPOLICY) \
$(LIBJSSHCLHACKS) \
$(LIBSECMOD) \
$(LIBCERT) \
$(LIBKEY) \
$(LIBCRYPTO) \
$(LIBHASH) \
$(LIBSECUTIL) \
$(LIBDBM) \
$(NULL)
#######################################################################
# Append additional LD_LIBS value to encompass all dynamic NSPR 2.0, #
# java, and system libraries #
#######################################################################
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(DLLPLDS) $(DLLPLC) $(DLLPR) $(DLLSYSTEM)
else
LD_LIBS += -L$(SOURCE_LIB_DIR) -lplds3 -lplc3 -lnspr3 $(DLLSYSTEM)
endif
#######################################################################
# Turn off any Export Control Policy for these libraries #
#######################################################################
POLICY =

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1
@ -45,7 +45,6 @@ PACKAGE = org/mozilla/jss/pkcs11
PRIVATE_EXPORTS = pk11util.h \ PRIVATE_EXPORTS = pk11util.h \
secmodi.h \ secmodi.h \
secmodti.h \ secmodti.h \
rsa.h \
$(NULL) $(NULL)
JNI_GEN = \ JNI_GEN = \

Просмотреть файл

@ -30,65 +30,3 @@
# may use your version of this file under either the MPL or the # may use your version of this file under either the MPL or the
# GPL. # GPL.
# #
#######################################################################
# Adjust specific variables for all platforms #
#######################################################################
ifndef BUILD_OPT
ifdef LIBRARY_NAME
ifeq ($(OS_ARCH), WINNT)
ifeq ($(OS_TARGET), WIN16)
SHARED_LIBRARY_G = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)16_g.dll
IMPORT_LIBRARY_G = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)16_g.lib
else
SHARED_LIBRARY_G = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)32_g.dll
IMPORT_LIBRARY_G = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION)32_g.lib
endif
else
ifeq ($(OS_ARCH)$(OS_RELEASE), AIX4.1)
SHARED_LIBRARY_G = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_shr_g.a
else
SHARED_LIBRARY_G = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_g.$(DLL_SUFFIX)
endif
ifdef HAVE_PURIFY
ifdef DSO_BACKEND
PURE_LIBRARY_G = $(OBJDIR)/purelib$(LIBRARY_NAME)$(LIBRARY_VERSION)_g.$(DLL_SUFFIX)
endif
endif
endif
endif
endif
#######################################################################
# Set the LD_LIBS value to encompass all static JSS, security, and #
# dbm libraries #
#######################################################################
LD_LIBS += $(LIBJSSPKCS11) \
$(LIBJSSHCLHACKS) \
$(LIBJSSCRYPTO) \
$(LIBJSSUTIL) \
$(LIBJSSPOLICY) \
$(LIBSECMOD) \
$(LIBPKCS12) \
$(LIBPKCS7) \
$(LIBCERT) \
$(LIBKEY) \
$(LIBCRYPTO) \
$(LIBHASH) \
$(LIBSECUTIL) \
$(LIBDBM) \
$(NULL)
#######################################################################
# Append additional LD_LIBS value to encompass all dynamic NSPR 2.0, #
# java, and system libraries #
#######################################################################
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(DLLPLDS) $(DLLPLC) $(DLLPR) $(DLLSYSTEM)
else
LD_LIBS += -L$(SOURCE_LIB_DIR) -lplds3 -lplc3 -lnspr3 $(DLLSYSTEM)
endif

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

@ -1,71 +0,0 @@
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
CORE_DEPTH = ../../../../../..
MODULE = ninja
NS_USE_JDK = 1
PACKAGE = org/mozilla/jss/pkix/cert
# These are meant to be used within Ninja only.
PRIVATE_EXPORTS = \
$(NULL)
JNI_GEN = \
$(NULL)
CLASSES = \
Certificate \
CertificateInfo \
Extension \
SubjectKeyIdentifier \
$(NULL)
PRIVATE_CLASSES = \
$(NULL)
JSRCS = \
Certificate.java \
CertificateInfo.java \
Extension.java \
SubjectKeyIdentifier.java \
$(NULL)
PRIVATE_JSRCS =
CSRCS = \
$(NULL)

Просмотреть файл

@ -1,66 +0,0 @@
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
CORE_DEPTH = ../../../../../..
MODULE = ninja
NS_USE_JDK = 1
PACKAGE = org/mozilla/jss/pkix/cmc
CLASSES = \
PKIData \
TaggedCertificationRequest \
TaggedRequest \
ResponseBody \
TaggedAttribute \
CMCStatusInfo \
PendInfo \
OtherInfo \
$(NULL)
JSRCS = \
PKIData.java \
TaggedCertificationRequest.java \
TaggedRequest.java \
ResponseBody.java \
TaggedAttribute.java \
CMCStatusInfo.java \
PendInfo.java \
OtherInfo.java \
$(NULL)

Просмотреть файл

@ -1,77 +0,0 @@
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
CORE_DEPTH = ../../../../../..
MODULE = ninja
NS_USE_JDK = 1
PACKAGE = org/mozilla/jss/pkix/cmmf
# These are meant to be used within Ninja only.
PRIVATE_EXPORTS = \
$(NULL)
JNI_GEN = \
$(NULL)
CLASSES = \
CertifiedKeyPair \
CertOrEncCert \
CertRepContent \
CertResponse \
GetCRL \
IssuerAndSubject \
PKIStatusInfo \
RevRepContent \
RevRequest \
$(NULL)
PRIVATE_CLASSES = \
$(NULL)
JSRCS = \
CertifiedKeyPair.java \
CertOrEncCert.java \
CertRepContent.java \
CertResponse.java \
GetCRL.java \
IssuerAndSubject.java \
PKIStatusInfo.java \
RevRepContent.java \
RevRequest.java \
$(NULL)
PRIVATE_JSRCS =

Просмотреть файл

@ -1,76 +0,0 @@
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
CORE_DEPTH = ../../../../../..
MODULE = ninja
NS_USE_JDK = 1
PACKAGE = org/mozilla/jss/pkix/cms
CLASSES = \
EncapsulatedContentInfo \
ContentInfo \
DigestedData \
DigestInfo \
EncryptedContentInfo \
EncryptedData \
EnvelopedData \
IssuerAndSerialNumber \
RecipientInfo \
SignedAndEnvelopedData \
SignedData \
SignerInfo \
SignerIdentifier \
$(NULL)
JSRCS = \
EncapsulatedContentInfo.java \
ContentInfo.java \
DigestedData.java \
DigestInfo.java \
EncryptedContentInfo.java \
EncryptedData.java \
EnvelopedData.java \
IssuerAndSerialNumber.java \
RecipientInfo.java \
SignedAndEnvelopedData.java \
SignedData.java \
SignerInfo.java \
SignerIdentifier.java \
$(NULL)

Просмотреть файл

@ -1,89 +0,0 @@
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
CORE_DEPTH = ../../../../../..
MODULE = ninja
NS_USE_JDK = 1
PACKAGE = org/mozilla/jss/pkix/crmf
# These are meant to be used within Ninja only.
PRIVATE_EXPORTS = \
$(NULL)
JNI_GEN = \
$(NULL)
CLASSES = \
CertId \
CertReqMsg \
CertRequest \
CertTemplate \
Control \
EncryptedKey \
EncryptedValue \
PKIArchiveOptions \
PKIPublicationInfo \
POPOPrivKey \
POPOSigningKey \
ProofOfPossession \
ChallengeResponseException \
$(NULL)
PRIVATE_CLASSES = \
$(NULL)
JSRCS = \
CertId.java \
CertRequest.java \
CertReqMsg.java \
CertTemplate.java \
Control.java \
EncryptedKey.java \
EncryptedValue.java \
PKIArchiveOptions.java \
PKIPublicationInfo.java \
POPOPrivKey.java \
POPOSigningKey.java \
ProofOfPossession.java \
ChallengeResponseException.java \
$(NULL)
PRIVATE_JSRCS =
CSRCS = \
$(NULL)

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

@ -1,85 +0,0 @@
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
CORE_DEPTH = ../../../../../..
MODULE = ninja
NS_USE_JDK = 1
PACKAGE = org/mozilla/jss/pkix/primitive
# These are meant to be used within Ninja only.
PRIVATE_EXPORTS = \
$(NULL)
JNI_GEN = \
$(NULL)
CLASSES = \
AlgorithmIdentifier \
Attribute \
AVA \
DirectoryString \
EncryptedPrivateKeyInfo \
Name \
PBEParameter \
PrivateKeyInfo \
RDN \
SubjectPublicKeyInfo \
TooFewElementsException \
$(NULL)
PRIVATE_CLASSES = \
$(NULL)
JSRCS = \
AlgorithmIdentifier.java \
Attribute.java \
AVA.java \
DirectoryString.java \
EncryptedPrivateKeyInfo.java \
Name.java \
PBEParameter.java \
PrivateKeyInfo.java \
RDN.java \
SubjectPublicKeyInfo.java \
TooFewElementsException.java \
$(NULL)
PRIVATE_JSRCS =
CSRCS = \
$(NULL)

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1

Просмотреть файл

Просмотреть файл

@ -30,23 +30,3 @@
# may use your version of this file under either the MPL or the # may use your version of this file under either the MPL or the
# GPL. # GPL.
# #
#######################################################################
# Adjust specific variables for all platforms #
#######################################################################
LD_LIBS += \
$(LIBSECMOD) \
$(LIBCERT) \
$(LIBKEY) \
$(LIBCRYPTO) \
$(LIBHASH) \
$(LIBPLDS) \
$(LIBSECUTIL) \
$(LIBPR) \
$(LIBDBM) \
$(LIBPLC) \
$(LIBSYSTEM) \
$(LIBJSSUTIL) \
$(LIBJSSPKCS11) \
$(NULL)

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1
@ -47,9 +47,7 @@ PRIVATE_CLASSES = \
JCASigTest \ JCASigTest \
CloseDBs \ CloseDBs \
KeyWrapping \ KeyWrapping \
TestExportControlPolicy \
ListCerts \ ListCerts \
socketTest \
$(NULL) $(NULL)
JSRCS = \ JSRCS = \
@ -60,7 +58,5 @@ JSRCS = \
JCASigTest.java \ JCASigTest.java \
CloseDBs.java \ CloseDBs.java \
KeyWrapping.java \ KeyWrapping.java \
TestExportControlPolicy.java \
ListCerts.java \ ListCerts.java \
socketTest.java \
$(NULL) $(NULL)

Просмотреть файл

@ -30,29 +30,3 @@
# may use your version of this file under either the MPL or the # may use your version of this file under either the MPL or the
# GPL. # GPL.
# #
#######################################################################
# Set the LD_LIBS value to encompass all static JSS, security, and #
# dbm libraries #
#######################################################################
LD_LIBS += $(LIBSECUTIL) \
$(NULL)
#######################################################################
# Append additional LD_LIBS value to encompass all dynamic NSPR 2.0, #
# java, and system libraries #
#######################################################################
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(DLLPLDS) $(DLLPLC) $(DLLPR) $(DLLSYSTEM)
else
LD_LIBS += -L$(SOURCE_LIB_DIR) -lplds3 -lplc3 -lnspr3 $(DLLSYSTEM)
endif
#######################################################################
# Turn off any Export Control Policy for these libraries #
#######################################################################
POLICY =

Просмотреть файл

@ -38,7 +38,7 @@
#include <secitem.h> #include <secitem.h>
#include "jssutil.h" #include "jssutil.h"
#include "jss_bigint.h" #include "jss_bigint.h"
#include <jss_exceptions.h> #include "jss_exceptions.h"
#include "java_ids.h" #include "java_ids.h"
#include "_jni/org_mozilla_jss_util_Password.h" #include "_jni/org_mozilla_jss_util_Password.h"

Просмотреть файл

@ -33,7 +33,7 @@
CORE_DEPTH = ../../../../.. CORE_DEPTH = ../../../../..
MODULE = ninja MODULE = jss
NS_USE_JDK = 1 NS_USE_JDK = 1