Итак, я пытаюсь проанализировать файл формата der, чтобы извлечь открытый ключ. У меня есть три алгоритма: RSA, EDDSA и ECDSA. Приведенный ниже код работает для RSA, но не для EDDSA и ECDSA. Я получаю следующую ошибку:
Ошибка: невозможно прочитать открытый ключ. Неизвестный OID. at
push../node_modules/node-forge/lib/rsa.js.pki.publicKeyFromAsn1
Ниже приведена функция, которую я написал который анализирует der для извлечения открытого ключа. Я думаю, что это общий вариант, но не знаю, почему он не работает для ecdsa и eddsa.
const uploadDer = (file: any): boolean => {
const fileReader = new FileReader();
fileReader.onload = () => {
const arrayBuffer = fileReader.result as ArrayBuffer;
try {
const uint8Array = new Uint8Array(arrayBuffer);
const byteBuffer = forge.util.createBuffer(uint8Array);
const asnObject = forge.asn1.fromDer(byteBuffer);
const publicKeyObject = forge.pki.publicKeyFromAsn1(asnObject);
const fileContent = forge.pki.publicKeyToPem(publicKeyObject);
console.log('fileContent--> ', fileContent);
const pemSections = forge.pem.decode(fileContent);
const lastPemSection = pemSections[pemSections.length - 1];
const publicKey = forge.util.encode64(lastPemSection.body);
props.change('publicKey', publicKey);
} catch (error) {
props.change('publicKey', '');
return dispatch(
showNotification({
id: uuidv1(),
title: 'statusTitle',
message: 'uploadKeypairFailedMessage',
type: NotificationTypes.error,
})
);
}
};
fileReader.onerror = (error) => {
console.error('onerror', error);
};
fileReader.readAsArrayBuffer(file);
return false;
};
Подробнее здесь: https://stackoverflow.com/questions/793 ... asn-object
Невозможно извлечь открытый ключ из объекта ASN. ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как проанализировать объект ASN.1 и получить данные с помощью jumpycastle в Java
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-