标签: jce

EC2 Linux机器上安装的OpenJDK 8不支持ECDHE密码套件

当开始jetty-distribution-9.3.0.v20150612openjdk 1.8.0_51一个亚马逊EC2 Linux机器上运行,是所有配置的ECDHE套房不支持打印.

2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 not supported
2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 not supported
2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 not supported
2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 not supported
2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 not supported
2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 not supported
2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 not supported
2015-08-12 16:51:20 main SslContextFactory [INFO] Cipher TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 not supported
2015-08-12 …
Run Code Online (Sandbox Code Playgroud)

openjdk jetty jce java-8 jetty-9

15
推荐指数
2
解决办法
1万
查看次数

JDK 9的JCE zip文件

我想尝试JDK 9,我需要修补JCE.我在哪里可以得到JCE zip file for JDK 9?或者我可以使用JDK 8吗?我为JDK 9搜索了JCE zip,但无法找到它.提前致谢.

java jce java-8 java-9

15
推荐指数
1
解决办法
6577
查看次数

如何用java读取密码加密密钥?

我有私钥存储在PKCS8 DER格式的文件中,并受密码保护.最简单的阅读方式是什么?

这是我用来加载未加密的代码:

InputStream in = new FileInputStream(privateKeyFilename);
byte[] privateKeydata = new byte[in.available()];
in.read(privateKeydata);
in.close();
KeyFactory privateKeyFactory = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec encodedKeySpec = new PKCS8EncodedKeySpec(privateKeydata);
PrivateKey privateKey = privateKeyFactory.generatePrivate(encodedKeySpec);
Run Code Online (Sandbox Code Playgroud)

它适用于具有相同规范的未加密密钥.顺便说一下,我正在使用BouncyCastle.

我可以使用以下openssl命令查看此私钥

openssl pkcs8 -in ./privatekey.key -inform DER -passin pass:thisismypass
Run Code Online (Sandbox Code Playgroud)

请帮忙!!!

我已经在我自己对这个主题的回答中发布了一些解决方案.但是如果没有额外的库,只有BouncyCastle,任何人都可以提供帮助,我仍然无法回答问题.

java bouncycastle jce pkcs#8 private-key

14
推荐指数
1
解决办法
2万
查看次数

Java 7并且无法生成DH密钥对

我读了一篇关于当服务器发出长度超过1024位的密钥时出现错误'无法生成DH密钥对'的帖子.下载JCE无限量罐子应该可以解决这个问题.在测试环境中,我遇到了以下内容,对于同一个Web服务器,如果我使用Java 6,在执行https查询时没有出现任何错误,但是如果我使用Java 7则会得到"无法生成DH密钥对".

我尝试更换JCE无效的jar文件,但仍然得到相同的错误.自2007年以来报告了该错误,但为什么它运行Java 6而不是Java 7?要下载的文件不是正确的吗?我从以前的帖子Java获得了链接:为什么SSL握手会给出"无法生成DH密钥对"的异常?.

此时我不知道该怎么办.如果我尝试加载BouncyCastle提供程序,我会得到一个ArrayOutOfIndex异常.我的服务器只允许DH算法,所以我不能使用上面帖子中建议的其他算法.

java ssl jce

14
推荐指数
3
解决办法
6万
查看次数

Java X509证书解析和验证

我试图通过几个步骤处理X509证书并遇到几个问题.我是JCE的新手,所以我还没有完全了解所有内容.

我们希望能够根据不同的编码(PEM,DER和PCKS7)解析几个不同的X509证书.我使用FireFox(证书包括链)以PEM和PCKS7格式从https://belgium.be导出相同的证书.我已经离开了一些问题所不需要的线路

public List<X509Certificate> parse(FileInputStream fis) {  
    /*
     * Generate a X509 Certificate initialized with the data read from the inputstream. 
     * NOTE: Generation fails when using BufferedInputStream on PKCS7 certificates.
     */
    List<X509Certificate> certificates = null;
      log.debug("Parsing new certificate.");
      certificates = (List<X509Certificate>) cf.generateCertificates(fis);
    return certificates;
  }
Run Code Online (Sandbox Code Playgroud)

只要我使用FileInputStream而不是PCKS7的BufferedInputStream,这段代码工作正常,我觉得这很奇怪?但我可以忍受它.

下一步是验证这些证书链.1)检查所有证书是否都有有效日期(简单)2)使用OCSP验证证书链(如果证书中未找到OCSP URL,则回退到CRL).这是我不完全确定如何处理这个问题的地方.

我正在使用Sun JCE,但似乎没有那么多文档可用(在示例中)?

我首先做了一个简单的实现,只检查链而不经过OCSP/CRL检查.

private Boolean validateChain(List<X509Certificate> certificates) {
    PKIXParameters params;
    CertPath certPath;
    CertPathValidator certPathValidator;
    Boolean valid = Boolean.FALSE;

    params = new PKIXParameters(keyStore);
    params.setRevocationEnabled(false);

    certPath = cf.generateCertPath(certificates);
    certPathValidator = CertPathValidator.getInstance("PKIX"); …
Run Code Online (Sandbox Code Playgroud)

java validation jce pki x509certificate

12
推荐指数
1
解决办法
2万
查看次数

阅读pkcs12证书信息

我在阅读证书信息时遇到问题.我想以编程方式在Android中使用带有bouncycastle库的java阅读完整信息.现在,我只是在控制台中使用keytool命令:

>keytool -list -keystore 1.p12 -storetype pkcs12 -v
Run Code Online (Sandbox Code Playgroud)

有什么建议?

java bouncycastle jce pkcs#12

12
推荐指数
1
解决办法
4万
查看次数

为什么在Java中从密码派生密钥时需要SecretKeySpec?

Java中的SecretKeyvs SecretKeySpec类之间有什么区别?

文件SecretKeySpec说:

它可以用于从字节数组构造一个SecretKey

在这段代码中,如果我打印secretKey.getEncoded()secret.getEncoded()以十六进制表示,则两者都给出相同的输出.那我们为什么需要SecretKeySpec呢?

final String password = "test";
int pswdIterations = 65536  ;
int keySize = 256;
byte[] ivBytes;
byte[] saltBytes = {0,1,2,3,4,5,6};

SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");

PBEKeySpec spec = new PBEKeySpec(
                    password.toCharArray(), 
                    saltBytes, 
                    pswdIterations, 
                    keySize
                    );

SecretKey secretKey = factory.generateSecret(spec);

SecretKeySpec secret = new SecretKeySpec(secretKey.getEncoded(),"AES");
Run Code Online (Sandbox Code Playgroud)

以下是两次调用的输出getEncoded():

00367171843C185C043DDFB90AA97677F11D02B629DEAFC04F935419D832E697

java cryptography jce secret-key

12
推荐指数
3
解决办法
3万
查看次数

Java Security&BouncyCastle API令人困惑和困惑

我一直在尝试理解用于Java的BouncyCastle加密API.不幸的是,我发现Java加密通常被服务提供者接口和术语所掩盖,以至于我无法理解实际做的事情.我已经尝试过反复阅读必要的文档,但它只是难以理解,引入了许多远远超出我认为应该需要的概念.

我真正想要的是一个执行以下操作的类:

public class KeyPair {
    public byte[] public;
    public byte[] private;
}

public class RSACrypto {
    public static KeyPair generateRSAKeyPair() { /*implementation*/}
    public static byte[] encrypt(byte[] data, byte[] publicKey) { /*impl*/}
    public static byte[] decrypt(byte[] encryptedData, byte[] privateKey) { /*impl*/ }
}
Run Code Online (Sandbox Code Playgroud)

如果这是一个非常复杂的问题,请问"我真正想要的一切".关于在Java加密和BouncyCastle上阅读的地方的任何指示都是非常受欢迎的.任何有关Java加密系统实际布局的概述都非常受欢迎.

java cryptography rsa bouncycastle jce

11
推荐指数
2
解决办法
7534
查看次数

JCA/JCE和PKCS#11如何协同工作?

我想使用HSM(硬件安全模块)来创建XML文件的签名.我做了一些研究,但现在有点困惑.

你能否澄清一下这些问题:

  1. JCE中的键柄是什么意思?我已经读过它,它只是一个句柄而且密钥存储在其他地方.怎么可能?根据我的理解,我要么将密钥加载到内存中并使用它,要么签名完全由HSM完成,我只得到结果,对吧?
  2. PKCS#11标准是否定义了一种方式,以便在HSM中生成签名?我读过关于令牌的内容,但我不确定签名.
  3. 我的HSM的功能列表分别表示JCE和PKCS#11.那是什么意思?
  4. 我认为PKCS#11是一个标准,JCE定义了使用该标准的类.JCE是否指定了自己的协议?

java jce pkcs#11

11
推荐指数
1
解决办法
7604
查看次数

local_policy.jar和US_export_policy.jar与Unlimited Strength Vs Default不同.

在java平台文档http://www.oracle.com/technetwork/java/javase/jrereadme-182762.html中.关于评论

/lib/security/local_policy.jar /lib/security/US_export_policy.jar


无限强度Java密码学扩展

由于某些国家/地区的导入控制限制,Java SE Development Kit和Java SE Runtime Environment附带的Java Cryptography Extension(JCE)策略文件允许使用强大但有限的加密.

JDK网站上提供了这些文件的无限强度版本,表明对加密强度没有限制,适用于符合条件的国家/地区的用户.那些居住在符合条件的国家/地区的人可以下载无限强度版本,并使用无限强度文件替换强加密jar文件.问题

  1. 每个JDK包都附带local_policy.jar和US_export_policy.jar吗?
  2. 默认local_policy.jar和US_export_policy.jar的限制是什么.这是关键尺寸吗?
  3. 如果我需要使用128位密钥,则需要使用Unlimited Strength Java Cryptography
    Extension
  4. 有没有办法可以将这两个罐子保存在外部路径中并加载它.因为我有更多50台服务器而不是每台JDK,我宁愿将它保存在一个中心位置.

java linux jce

11
推荐指数
1
解决办法
4万
查看次数