Устранение ошибки «Нет заголовка DEK-Info в блоке» для зашифрованного закрытого ключа PKCS8
При попытке декодировать зашифрованный закрытый ключ PKCS8 с помощью Go, вы можете столкнуться с ошибкой «в блоке нет заголовка DEK-Info». Это указывает на то, что функция декодирования ключа не может обрабатывать зашифрованные закрытые ключи PKCS8.
Генерация ключа с использованием предоставленных команд OpenSSL выглядит корректной. Однако стандартная библиотека Go не поддерживает расшифровку зашифрованных закрытых ключей PKCS8.
Решение:
Чтобы решить эту проблему, вы можете использовать внешнюю библиотеку, специально разработанную для обработки Расшифровка ключа PKCS8. Примером такой библиотеки является библиотека «pkcs8», доступная на GitHub.
Предположим, у вас есть следующий код для расшифровки ключа PKCS8 с использованием библиотеки «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))
}
Эта функция принимает в качестве аргументов зашифрованный ключ PKCS8 в виде байтового фрагмента и пароль для расшифровки. Затем он пытается декодировать блок PEM, который содержит зашифрованные данные ключа.
Если декодирование прошло успешно, функция вызывает функцию Decrypt из библиотеки «pkcs8» для выполнения фактического дешифрования. Расшифрованный ключ затем возвращается в виде структуры *pkcs8.PrivateKey.
Включив эту библиотеку и используя функцию DecryptPKCS8 для обработки зашифрованных ключей PKCS8, вы можете устранить ошибку «нет заголовка DEK-Info в блоке».
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3