사용자 API 키는 OAEP 패딩을 사용해야 합니다

늦게 합류했지만, 그 오류는 잘못된 것 같습니다. 이는 Node에서 제거된 기능이 아니라 특정 OpenSSL 설치 환경의 문제입니다. Node 문서를 참고하세요:

crypto.privateDecrypt()에서 crypto.constants.RSA_PKCS1_PADDING을 사용하려면 OpenSSL이 implicit rejection(rsa_pkcs1_implicit_rejection)을 지원해야 합니다.

참고: [Bug]: RSA_PKCS1_PADDING is no longer supported for private decryption · Issue #487 · bropat/eufy-security-client · GitHub

로컬에서 테스트해 보니, 암호화와 복호화 모두 패딩으로 crypto.constants.RSA_PKCS1_PADDING을 사용하도록 전환해도 저에게는 잘 작동합니다: An example of RSA Encryption implemented in Node.js · GitHub 저는 OpenSSL 3.4.0과 Node 23.6.1을 사용 중입니다.

사이트 설정을 사용하는 것의 까다로운 점은 클라이언트가 특정 인스턴스가 어떤 패딩을 지원하는지 알 수 없다는 것입니다. 이로 인해 인스턴스/서비스 간 호환성을 이해하기가 더 어려워집니다.

기존 구현을 명확히 해야 한다고 생각합니다. 즉, RSA_PKCS1_PADDING을 사용하고 있음을 명시적으로 기록하고, 이후 업그레이드에 대해 생각해 봐야 합니다. 아마도 해당 엔드포인트에 버전 관리를 도입하여 클라이언트가 해당 버전 이전/이후에 올바른 패딩을 깔끔하게 사용할 수 있도록 해야 할 수도 있습니다.

2개의 좋아요