Résolution de l'erreur « Aucun en-tête DEK-Info dans le bloc » pour la clé privée PKCS8 chiffrée
Lors de la tentative de décodage d'une clé privée PKCS8 chiffrée à l'aide Allez-y, vous pouvez rencontrer l'erreur "pas d'en-tête DEK-Info dans le bloc". Cela indique que la fonction de décodage de clé n'est pas en mesure de traiter les clés privées PKCS8 chiffrées.
La génération de la clé à l'aide des commandes OpenSSL fournies semble être correcte. Cependant, la bibliothèque standard de Go ne prend pas en charge nativement le déchiffrement des clés privées PKCS8 chiffrées.
Solution :
Pour résoudre ce problème, vous pouvez utiliser une bibliothèque externe spécialement conçue pour gérer Décryptage de la clé PKCS8. Un exemple d'une telle bibliothèque est la bibliothèque « pkcs8 », disponible sur GitHub.
Supposons que vous disposiez du code suivant pour déchiffrer la clé PKCS8 à l'aide de la bibliothèque « pkcs8 » :
import "github.com/youmark/pkcs8"
func DecryptPKCS8(key []byte, password string) (*pkcs8.PrivateKey, error) {
block, _ := pem.Decode(key)
return pkcs8.Decrypt(block.Bytes, []byte(password))
}
Cette fonction prend comme arguments la clé PKCS8 chiffrée sous forme de tranche d'octets et le mot de passe de déchiffrement. Il tente ensuite de décoder le bloc PEM, qui contient les données de clé chiffrées.
Si le décodage réussit, la fonction appelle la fonction Decrypt de la bibliothèque "pkcs8" pour effectuer le décryptage proprement dit. La clé déchiffrée est ensuite renvoyée sous la forme d'une structure *pkcs8.PrivateKey.
En incorporant cette bibliothèque et en utilisant la fonction DecryptPKCS8 pour traiter les clés PKCS8 chiffrées, vous pouvez résoudre l'erreur « pas d'en-tête DEK-Info dans le bloc ».
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3