FIPS 140-2 compatible JVM with NSS

2016-11-15 Thread eldad . joseph
Hi,

We are trying to generate a FIPS compliant JVM using NSS as our cryptographic 
provider. We compiled NSS 3.25, JDK 1.8u112 and made the below settings.

We removed all other providers from java.security, and left only NSS as 
provider of JCE and JSSE.

Our questions:
1 - Is it actually needed to have NSS as the only provider in order to have a 
FIPS compatible JVM? If not, what should be the location?
2 - We are getting Jar verification error due to X.509 not found (log below). 
What could be the reason?

Thanks you for your help,
  Eldad,


nss.cfg==
name = NSSfips
nssLibraryDirectory = C:\NSS\lib
nssSecmodDirectory = C:\NSS\db
nssModule = fips
=

=java.security===
security.provider.1=sun.security.pkcs11.SunPKCS11 C:\\NSS\\nss.cfg
security.provider.2=com.sun.net.ssl.internal.ssl.Provider SunPKCS11-NSSfips
#commented:
#security.provider.3=sun.security.provider.Sun
#security.provider.4=com.sun.crypto.provider.SunJCE
#security.provider.4=sun.security.rsa.SunRsaSign
#security.provider.6=sun.security.ec.SunEC
#security.provider.7=sun.security.jgss.SunProvider 
#security.provider.8=com.sun.security.sasl.Provider
#security.provider.9=org.jcp.xml.dsig.internal.dom.XMLDSigRI
#security.provider.10=sun.security.smartcardio.SunPCSC
===

=error log==
Exception in thread "main" java.lang.ExceptionInInitializerError

at javax.crypto.JarVerifier.(JarVerifier.java:228)
... 14 more
Caused by: java.security.PrivilegedActionException: 
java.security.cert.CertificateException: X.509 not found
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JarVerifier.(JarVerifier.java:186)
... 14 more
Caused by: java.security.cert.CertificateException: X.509 not found
at java.security.cert.CertificateFactory.getInstance(Unknown Source)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:192)
at javax.crypto.JarVerifier$1.run(JarVerifier.java:187)
... 16 more
Caused by: java.security.NoSuchAlgorithmException: X.509 CertificateFactory not 
available
at sun.security.jca.GetInstance.getInstance(Unknown Source)
... 19 more
===
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto


TrueKey extension (by Intel) is no longer accepted by Firefox

2016-11-15 Thread spadrine
I get this message when trying to add the extension. Somehow after an update, 
my True Key app extension is no longer accepted. I've been using it 
successfully in Firefox for almost a year now. 

"The owner of downloads.truekey.com has configured their website improperly. To 
protect your information from being stolen, Firefox has not connected to this 
website."

TrueKey/McAffee tech support (1st tier) has been unable to resolve this issue.
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto


Computing IKEv2's SKEYSEED=PRF(Ni | Nr, {g^ir}) using NSS's CKA_SIGN

2016-11-15 Thread Andrew Cagney
Hi,

I'm trying to use CKA_SIGN to compute things like:

  SKEYSEED = PRF(Ni | Nr, {g^ir})
  SKEYSEED = PRF({SK_d (old)}, {g^ir (new)} | Ni | Nr)

(PRF=HMAC_SHA1 say) where, with my current code:

   Ni|Nr is raw bytes (nonces put on the wire)
   {g^ir} and g^ir (new)} are the output from DH locked up in a symkey
   {SK_d (old)} is a symkey obtained from earlier PRF++ calculations

However I'm finding:

- PK11_CreateContextBySymKey(CKM_SHA_1_HMAC, CKA_SIGN, ...) requires a
PK11SymKey, but for the first equation I've only got bytes (Ni|Nr)
  So I made a PK11SymKey from NI|Nr (magic) and then used
PK11_CreateContextBySymKey().
  Is there an interface that accepts raw bytes?

- PK11_DigestKey({g^ir}} fails; it seems it only works for CKA_DIGEST?
  So I converted {g^ir} to raw bytes (more magic) and then used PK11_Digest()
  Should PK11_DigestKey() work here?

- PK11_Final() returns raw bytes, but here I'd prefer to keep the
result locked up in a PK11SymKey - the value is likely going to be fed
into a further PRF call.
  So I turned the raw bytes into a key (magic).
  Is there a way to get the final output as a PK11SymKey?

After that the output seems to match the existing code.

Andrew
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto