2013-10-22 75 views
4

我们有要求公开RSA公钥作为HTTP资源 - 所以 http://myhost.com/publickeys/akeyid 返回一个公钥。RSA公钥如何通过HTTP公开?

我想用正确的Internet媒体类型返回它。那应该是什么?我承认我发现密码RFC非常难以理解。

作为奖励,我该如何使用java.security标准库轻松地将该格式转换为该格式?

(这是很容易从和到一个SubjectPublicKeyInfo进行字节数组去如使用java.security.RSAPublicKey.getEncoded()序列化的字节和一个java.security.spec.X509EncodedKeySpec反序列化这些相同的字节中http://tools.ietf.org/html/rfc3280#section-4.1定义;但我无法找到该格式的注册媒体类型,这表明我应该使用其他格式(x.509证书?)。但是,然后我很难找出如何进行翻译。)

谢谢。

回答

1

一个替代方案将是编码PKCS#1格式的RSA公共密钥为PEM文件,然后使用MIME类型:

"application/x-pem-file" 

参考文献:

注意:“application/x-pem-file”未注册ered ...显然! ...但是在许多“文件类型”的目录中被引用。


你或许应该提供超过HTTPS ...

+0

真正的关键,而我们,谢谢。 –

+0

application/x-pem-file看起来像我们将要得到的最接近的,谢谢。对于二进制DER编码的公钥没有媒体类型,因为这对我们来说是理想的。我想因为PEM不是一个标准,也没有什么能阻止我们定义我们自己的... –

+0

...或者你可以使用application/octet-stream –