Comprendre la distinction entre MarshalPKIXPublicKey() et MarshalPKCS1PublicKey()
Dans la bibliothèque standard Go, x509.MarshalPKIXPublicKey() et x509.MarshalPKCS1PublicKey () sont deux fonctions qui facilitent la sérialisation des clés publiques aux formats codés DER.
ASN.1 et DER
Avant d'approfondir les différences entre les deux fonctions , il est essentiel de comprendre deux concepts clés :
-
ASN.1 (Abstract Syntax Notation One) : Un système de notation largement utilisé pour décrire les structures de données partagées entre les systèmes.
-
DER (Distinguished Encoding Rules) : un schéma de codage spécifique utilisé pour représenter les données ASN.1 dans un format binaire compact.
MarshalPKCS1PublicKey()
- Sérialise une clé publique RSA dans la représentation codée DER de la structure PKCS#1 ASN.1.
- La norme PKCS#1 définit comment représenter les clés publiques RSA, y compris leurs module et exposant.
- Cette fonction encode la clé publique dans une chaîne codée DER à l'aide de la structure RSAPublicKey ASN.1 de PKCS#1.
MarshalPKIXPublicKey()
- Sérialise une clé publique dans la représentation codée DER de la structure SubjectPublicKeyInfo de PKIX/X.509.
- PKIX/X.509 est une variante Internet de X.509. standard, et sa structure SubjectPublicKeyInfo définit une manière plus générique de représenter divers algorithmes de clé publique.
- Pour les clés publiques RSA, cette représentation codée DER inclut l'identifiant d'algorithme pour RSA (OID 1.2.840.113549.1.1.1) et les paramètres NULL, ainsi que la structure RSAPublicKey PKCS#1 codée en DER.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!