목차
질문 내용
Solution
백엔드 개발 Golang 사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.

사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.

Feb 10, 2024 pm 08:42 PM
암호화폐

无法使用自定义 crypto.Signer 实现生成 X.509 证书

php 편집기 Youzi는 X.509 인증서 생성에 관한 문제를 소개하기 위해 왔습니다. 때로는 사용자 정의 crypto.Signer 구현을 사용하여 인증서를 생성할 때 사용할 수 없는 문제가 발생할 수 있습니다. 이 문제로 인해 개발자는 해결 방법을 혼란스러워할 수 있습니다. 이 기사에서는 이 문제의 원인을 살펴보고 개발자가 자신의 X.509 인증서를 성공적으로 생성하는 데 도움이 되는 몇 가지 솔루션을 제공합니다.

질문 내용

hsm에 저장된 rsa 키 쌍을 기반으로 x.509 인증서를 생성하려고 합니다. 나는 이 pkcs #11 구현을 사용하여 hsm과 통신합니다.

내 암호화 개체는 후자에 저장되므로 수행하려는 작업에 개인 키(예: 서명)가 필요한 경우 "개인 키에 액세스"하려면 crypto.signer 인터페이스를 구현해야 합니다. 이것이 구현입니다.

으아아아

이 구현은 작동합니다. 예를 들어 csr을 생성하려면 createcertificaterequest 함수에 csr(priv any 参数),这是我提供 rsasigner 인스턴스가 있는 위치)에 서명하기 위한 개인 키가 필요합니다.

createcertificate 함수는 다소 유사하며 매개변수 pub是要生成的证书的公钥,priv는 서명자의 개인 키입니다.

아래 코드에서는 자체 서명된 x.509 인증서를 생성하려고 하므로 templateparent매개변수는 API에 따라 동일합니다.

으아아아

키 유형(rsa 또는 ec)에 관계없이 이 함수는 다음 오류를 반환합니다.

으아아아

이 오류는 crypto.signer 구현이 올바르게 완료되지 않은 경우 반환됩니다.

타원 곡선의 키 쌍을 사용하여 동일한 작업을 수행하려고 crypto.signer을 구현했지만 오류는 동일합니다.

또한 sign 함수에서 다양한 해싱 알고리즘을 시도했지만 아무 것도 변경되지 않았습니다.

CSR을 생성하는 데 사용할 수 있지만 crypto.signer 구현에서 오류가 발생한 것 같습니다.

Solution

몇 달 전에 이 문제에 대한 해결책을 찾았지만 답변을 공유할 시간은 없었지만 지금이 바로 그 때입니다.

pkcs #11을 통해 직접 서명하는 경우 여기에 참조된 digestinfo 값을 사용하여 해시 접두사를 수동으로 지정하여 해시 접두사를 관리해야 합니다. https://www.rfc-editor.org/rfc /rfc3447#page-43 .

더 정확하게는 rsassa-pkcs1-v1_5 서명의 경우 실제 서명 함수에 대한 입력은 asn.1 der 인코딩된 구조입니다. pkcs #11에는 구조를 생성하는 방법을 알고 있는 해시별 메커니즘(예: ckm_sha256_rsa_pkcs)이 있지만 모두 데이터가 해시되지 않는다고 가정합니다. 이는 암호화폐의 경우와 다릅니다. signer 인터페이스이므로 원시 서명 작업만 수행하는 일반 cka_rsa_pkcs 메커니즘을 사용해야 합니다. 이는 우리가 사용하려는 모든 해시에 대해 올바른 접두사를 제공하기만 하면 asn.1 구조를 직접 생성해야 함을 의미합니다.

crypto.signeropts 유형의 opts 매개변수를 사용하면 sign() 함수가 호출될 때 올바른 접두사가 적용된 crypto.hash 유형의 해시 함수 식별자를 검색할 수 있습니다.

으아아아

그것은 매력처럼 작동합니다. 하지만 더 좋은 일이 있습니다.

ckm_rsa_pkcs 메커니즘은 rsassa-pkcs1-v1_5 유형의 서명을 제공합니다. 더 이상 새로운 제품/소프트웨어에 사용되어서는 안 되는 이 오래된 서명 체계를 스스로 조사하도록 관심 있는 독자들에게 맡깁니다.

실제로 rsassa-pss 유형 서명을 제공하는 ckm_rsa_pkcs_pss 메커니즘을 사용하는 것이 좋습니다.

이 원칙에서 출발하여 현재 제가 사용하는 구현은 다음과 같습니다.

으아아아

그래서 접두사는 더 이상 필요하지 않지만, 사용할 해시 알고리즘 식별자와 서명 알고리즘 및 사용할 mgf 간의 대응이 필요합니다.

마지막으로, 사용되는 서명 알고리즘은 더 이상 x509.sha256withrsa, x509.sha384withrsa 또는 x509.sha512withrsa이 아니라 sha256withrsapss, sha38입니다. 4withrsapss sha512withrsapss.

서명 축하드립니다.

위 내용은 사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

OKX OUYI Exchange 웹 버전 입력 링크를 클릭하십시오. OKX OUYI Exchange 웹 버전 입력 링크를 클릭하십시오. Mar 31, 2025 pm 06:21 PM

1. OKX EUYI Exchange의 웹 버전을 입력하십시오. 2. OKX EUYI Exchange 앱의 링크를 클릭하십시오. 사용자는 기존 계정에 로그인하거나 자신의 상황에 따라 새 계정을 등록하도록 선택할 수 있습니다. 실시간 시장 조건을 보거나 거래 수행 또는 자산 관리에 관계없이 OKX 웹 버전은 초보자와 재향 군인에게 적합한 간단하고 원활한 운영 경험을 제공합니다. 쉬운 경험을 보려면 지금 OKX 공식 웹 사이트를 방문하십시오

Gate.io 등록 자습서 Gate.io 등록 자습서 Mar 31, 2025 pm 11:09 PM

이 기사는 공식 웹 사이트에 액세스하는 것부터 등록 정보 작성, 등록 정보 작성, 확인, 사용자 계약 읽기 등의 모든 단계를 다루는 자세한 Gate.io 등록 자습서를 제공합니다.이 기사는 또한 2 차 검증을 설정하고 실제 인증을 설정하고 초보자의 디지털 자산 거래를 시작하는 등의 성공적인 등록을 성공적으로 등록한 후 보안 조치를 강조합니다.

Ouyi는 무엇입니까? Ouyi는 무엇입니까? Ouyi는 무엇입니까? Ouyi는 무엇입니까? Apr 01, 2025 pm 03:18 PM

OKX는 글로벌 디지털 자산 거래 플랫폼입니다. 주요 기능에는 1. 디지털 자산 구매 및 판매 (SPOT 거래), 2. 디지털 자산 간의 거래, 3. 시장 조건 및 데이터 제공, 4. 파생 상품과 같은 다양한 거래 제품 제공, 5. 자산 부가가치 서비스 제공, 6. 편리한 자산 관리.

OK 공식 포털 웹 버전 OK Exchange 공식 웹 버전 로그인 포털 OK 공식 포털 웹 버전 OK Exchange 공식 웹 버전 로그인 포털 Mar 31, 2025 pm 06:24 PM

이 기사는 OK Exchange의 공식 웹 버전을 사용하여 로그인하는 방법에 대해 자세히 설명합니다. 사용자는 브라우저에서 "OK Exchange 공식 웹 버전"을 검색하면 공식 웹 사이트를 입력 한 후 오른쪽 상단 코너의 로그인 버튼을 클릭하고 로그인하여 사용자 이름과 비밀번호를 입력 할 수 있습니다. 등록 된 사용자는 자산을 관리하고, 펀드 및 펀드를 쉽게 인출 할 수 있으며, 공식 웹 사이트 인터페이스를 쉽게 사용하고 스무어 서비스를 제공 할 수 있으며, 사용자가 쉽게 사용하여 사용자가 쉽게 서비스를 제공 할 수 있습니다. 당신은 무엇을 기다리고 있습니까? OK Exchange의 공식 웹 사이트를 방문하여 디지털 자산 여행을 시작하십시오!

Binance Binance 컴퓨터 버전 입구 Binance Binance 컴퓨터 버전 PC 공식 웹 사이트 로그인 입구 Binance Binance 컴퓨터 버전 입구 Binance Binance 컴퓨터 버전 PC 공식 웹 사이트 로그인 입구 Mar 31, 2025 pm 04:36 PM

이 기사는 Binance PC 버전에 로그인 및 등록에 대한 완전한 안내서를 제공합니다. 먼저 Binance PC 버전으로 로그하는 단계에 대해 자세히 설명했습니다. 브라우저에서 "Binance 공식 웹 사이트"를 검색하고 로그인 버튼을 클릭하고 이메일 및 비밀번호를 입력하십시오 (2FA 활성화 검증 코드를 입력 할 수 있음) 로그인 할 수 있습니다. 두 번째로 기사는 "등록"버튼을 클릭하고 이메일 주소를 클릭하고 강한 비밀번호를 설정하고 이메일 주소를 확인하십시오. 마지막으로,이 기사는 또한 계정 보안을 강조하여 사용자에게 공식 도메인 이름, 네트워크 환경에주의를 기울이고 비밀번호를 정기적으로 업데이트하여 계정 보안 및 시장 조건보기, 거래 수행 및 자산 관리와 같은 Binance PC 버전에서 제공하는 다양한 기능을 더 잘 활용하도록 상기시킵니다.

가상 통화 앱 소프트웨어에 권장되는 웹 사이트는 무엇입니까? 가상 통화 앱 소프트웨어에 권장되는 웹 사이트는 무엇입니까? Mar 31, 2025 pm 09:06 PM

이 기사는 Binance Academy, OKX Learn, Coingecko, Cryptoslate, Coindesk, Investopedia, Coinmarketcap, Huobi University, Coinbase Learn 및 Cryptocompare를 포함하여 잘 알려진 가상 통화 관련 앱 추천 웹 사이트 10 개를 권장합니다. 이 웹 사이트는 가상 통화 시장 데이터, 가격 추세 분석 등과 같은 정보를 제공 할뿐만 아니라 기본 블록 체인 지식, 거래 전략 및 다양한 거래 플랫폼 앱의 튜토리얼 및 리뷰를 포함한 풍부한 학습 리소스를 제공하여 사용자가 더 잘 이해하고 이용할 수 있도록 도와줍니다.

통화 거래 네트워크 공식 웹 사이트 컬렉션 2025 통화 거래 네트워크 공식 웹 사이트 컬렉션 2025 Mar 31, 2025 pm 03:57 PM

세계 최고 중 하나이며 SPOT, 계약 및 Web3 지갑과 같은 모든 범주의 거래를 지원합니다. 보안이 높고 취급 수수료가 낮습니다. 규정 준수와 높은 유동성으로 유명한 오랜 역사를 가진 포괄적 인 거래 플랫폼은 다국어 서비스를 지원합니다. 업계 리더는 유동성이 강한 통화 거래, 레버리지, 옵션 등을 다루며 BNB 공제 수수료를 지원합니다.

Web3 Transaction은 어떤 플랫폼에서? Web3 Transaction은 어떤 플랫폼에서? Mar 31, 2025 pm 07:54 PM

이 기사에는 Binance, Okx, Gate.io, Kraken, Bybit, Coinbase, Kucoin, Bitget, Gemini 및 Bitstamp를 포함한 상위 10 개의 잘 알려진 Web3 Trading 플랫폼이 나와 있습니다. 이 기사는 통화 수, 거래 유형 (스팟, 선물, 옵션, NFT 등), 처리 수수료, 보안, 규정 준수, 사용자 그룹 등과 같은 각 플랫폼의 특성을 투자자가 가장 적합한 거래 플랫폼을 선택할 수 있도록 도와줍니다. 고주파 거래자, 계약 거래 애호가 또는 규정 준수 및 보안에 중점을 둔 투자자이든, 참조 정보를 찾을 수 있습니다.

See all articles