当前位置: 首页 > 面试题库 >

golang x509.MarshalPKIXPublicKey与x509.MarshalPKCS1PublicKey()

宣冥夜
2023-03-14
问题内容

谁能帮助我了解MarshalPKIXPublicKey()和MarshalPKCS1PublicKey()之间的区别?

根据注释:// MarshalPKIXPublicKey将公共密钥序列化为DER编码的PKIX格式。

// MarshalPKCS1PublicKey将RSA公钥转换为PKCS#1,ASN.1 DER格式。

什么是DER编码的PKIX格式?

谢谢


问题答案:

您不清楚您不了解的程度。从基础开始:

ASN.1
(抽象语法符号1)是用于定义要在系统或程序之间传递或交换的数据结构的通用方案。

DER
(可分辨编码规则)是一种定义为将ASN.1数据编码为可以通信和/或存储的字节序列,并将这些字节序列无损解码回ASN.1数据的方案。

PKCS1 又名的RFC
2313,2437,3447,8017(公开密钥密码术标准#1)是一种标准,其定义的范围内的有关使用RSA算法,其中事情附录A定义了一个名为一个ASN.1结构RSAPublicKey来表示一个RSA公共密钥,就像任何ASN.1结构一样,都可以进行DER编码。

MarshalPKCS1PublicKey将RSA公钥转换为PKCS#1,ASN.1 DER形式。

显然是指PKCS1中RSA公钥的ASN.1结构的DER编码。

PKIX
(公钥基础结构X.509)是X.509标准的Internet变体(正式而言是配置文件),最初由当时的CCITT-now-ITU-T定义,当前位于
rfc5280中。X.509和PKIX主要定义了公钥 证书
的格式,该格式将公钥与其他元数据绑定到身份。为此,它必须包含一个可以处理多种公钥算法的公钥表示,这是使用一种SubjectPublicKeyInfo结构完成的,该结构相当简单地由标识算法的AlgorithmIdentifier以及包含以下内容的BIT
STRING组成:取决于算法的实际公钥值。RSA的算法相关部分在
rfc3279 sec2.3.1中指定
如您所见,它是PKCS1的DER编码的RSAPublicKey结构。

因此 ,RSA公钥的 “ DER编码的PKIX格式” 指PKIX / X.509SubjectPublicKeyInfo结构的DER编码,其中包含RSA的algorithmIdentifier(OID1.2.840.113549.1.1.1和参数NULL)以及包含DER编码的PKCS1 RSAPublicKey。



 类似资料:
  • import "crypto/x509" x509包解析X.509编码的证书和密钥。 Constants Variables type PEMCipher type PublicKeyAlgorithm type SignatureAlgorithm type SystemRootsError func (e SystemRootsError) Error() string type Hostna

  • 下一步是验证这些证书链。1)检查所有证书是否有有效日期(简单)2)使用OCSP验证证书链(如果在证书中没有发现OCSP URL,则返回CRL)。 我使用的是Sun JCE,但似乎没有那么多可用的文档(示例)? 我首先做了一个简单的实现,它只检查链,而不经过OCSP/CRL检查。 但是在OCSP.url属性中手动设置OCSP url之后,我得到了一个java.security.cert.certPa

  • 我试图调试SAML配置。我正在设置一个SP,并提供了包括X509证书的元数据。我从国内流离失所者那里得到的SAML响应有一个RSAKey。我假设两者的模数应该匹配(以及我无法访问的私钥的模数)。 使用openssl,我可以得到模数和模数md5: x509指数:65537(0x10001) SAMLResponse具有模数和指数 如何确认x509证书模数是否与RSA模数匹配/SAMLResponse

  • 我需要用Java中的Bouncy Castle创建一个自签名X509证书,但我尝试包含的每个类都不推荐使用。我该怎么解决这个问题?还有其他课程吗?谢谢

  • 在CloudFoundry中,我对其进行了配置,以便将客户端证书转发给我的spring boot应用程序。 证书被放在头中,spring boot应用程序读取这个?,并检查CN是否被列入白名单,并发送相应的响应。不幸的是,我无法通过测试复制这种行为。我不断得到(调试输出): “在请求中找不到客户端证书” 我使用的是REST Assured,我的测试如下所示: 这个的基本uri是。客户端证书“

  • 问题内容: 是否有人对如何使用HTTPClient 4.0.1通过x509证书执行客户端身份验证有任何友好的提示? 感谢您的时间。 问题答案: 这是一些代码,助您一臂之力。该是包含客户端证书的对象。如果服务器使用的是自签名证书,或者包含的cacerts文件中的JVM认可的不是CA所签名的证书,则需要使用。否则,要使用默认的cacerts文件,请传递给truststore参数。