Golang 패키지 golang.org/x/crypto/ed25519를 사용하여 주어진 개인 키에 해당하는 공개 키는 예상과 다른 결과를 생성합니다. 특히, 라이브러리는 개인 확인 키(PVK)의 마지막 32바이트를 반환하지만, 제공된 테스트 데이터에서는 이것이 올바르지 않음을 나타냅니다.
불일치는 키에 사용되는 다양한 형식으로 인해 발생합니다. ed25519 개인 키. Golang 구현은 개인 키를 32바이트 공개 키와 32바이트 시드의 연결로 정의하는 RFC 8032 규칙을 따릅니다.
그러나 BitTorrent BEP-0044 테스트에서 제공되는 개인 키는 데이터는 시드의 SHA512 해시의 64바이트 결과이며 이러한 형식은 해싱 함수의 단방향 특성으로 인해 직접 변환될 수 없습니다.
주어진 테스트 데이터가 있는 Golang 라이브러리, 해시된 개인 키 형식에서 공개 키 및 서명의 사용자 정의 생성을 허용하는 수정된 버전의 라이브러리가 필요합니다. 이는 라이브러리에서 관련 코드를 복사하고 다른 형식을 수용하도록 구현을 수정하여 달성할 수 있습니다.
수정된 코드에는 다음이 포함됩니다.
이러한 수정된 함수를 사용하면 공개 키와 서명을 포함하는 예상 테스트 벡터입니다.
위 내용은 golang.org/x/crypto/ed25519가 BitTorrent BEP-0044 테스트 데이터에 대해 예기치 않은 공개 키를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!