일부 라이브러리에서는 다음과 같은 pgp 키 쌍을 생성할 수 있습니다.
var options = {
curve: 'secp256k1',
userId: 'Hamlet <[email protected]>',
passphrase: 'To be, or not to be: that is the question',
material: {
key: privateKey,
subkey: privateKey
}
};
openpgp.generateKeyPair(options).then(function(keypair) {
// success
var privkey = keypair.privateKeyArmored;
var pubkey = keypair.publicKeyArmored;
//.........
즉, user_id/passphrase 외에 일부 초기 개인 키/자료가 주어지면 pgp 키를 생성하거나 변환할 수 있습니다.
Linux와 함께 제공되는 표준 gpg 유틸리티를 사용하여 동일한 작업을 수행할 수 있는 방법이 있는지 궁금합니다. userId 및 passphrase를 매개변수로 허용한다는 것을 알고 있지만 해당 라이브러리의 "자료" 개인 키에 해당하는 매개변수를 매개변수로 허용합니까?
아니면 openpg 키 쌍 생성과 동일한 결과를 얻기 위해 더 많은 단계를 포함하는 방법이 있습니까?
답변1
예.
GNUPG는 기존 키를 사용할 수 있습니다. 대화형 인터페이스를 사용하는 경우 메뉴 항목을 표시하려면 "전문가" 옵션을 활성화해야 합니다. GNUPG 2.2.1을 사용하는 경우 다음과 유사한 내용이 표시됩니다.
$gpg --expert --full-gen-key
gpg (GnuPG) 2.2.1; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC and ECC
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(13) Existing key
Your selection?
기존 PGP 키 자료를 사용하려면 옵션 13을 선택하십시오. 시작 키의 키 핸들을 알아야 합니다. GPG와 함께 사용되는 기존 PGP 키의 경우:
$gpg --with-keygrip --list-secret-keys [keyid]
내가 이해한 바에 따르면 이것은 새로운 기능이므로 모든 버그가 아직 해결되지 않았을 수 있습니다. 이것이 아마도 전문가 메뉴에 숨겨져 있는 이유일 것입니다. 제가 직접 테스트한 몇 가지 간단한 테스트에서는 RSA 키에서는 작동하지만 Curve 25519 키에서는 작동하지 않는 것으로 나타났습니다.