이 문제에 대한 해결책을 찾지 못했기 때문에 여기가 내 첫 번째 질문입니다. 바라건대 누군가이 문제에 대한 해답을 갖고 있기를 바랍니다.라이브러리 pyApenSSL을 사용하여 DSA에 메시지 등록
DSA (디지털 서명 알고리즘) 및 pyOpenSSL 래퍼를 사용하여 메시지에 서명하고 확인하려고합니다. 나는 다음과 같은 결과를 얻을 것이다이 코드 조각을 실행 한 후
from OpenSSL.crypto import TYPE_DSA, Error, PKey
from OpenSSL.crypto import FILETYPE_PEM, sign
from Crypto.Hash import SHA
key = PKey()
key.generate_key(TYPE_DSA, 1024)
message = "abc"
digest = SHA.new(message).digest()
data_to_sign = base64.b64encode(digest)
signature = sign(key, data_to_sign, 'sha1')
:
나는 아래의 예를 만들었습니다나는 해결책을 발견했습니다
OpenSSL.crypto.Error: [('digital envelope routines', 'EVP_SignFinal', 'wrong public key type')]
EVP_Sign * 및 EVP_Verify *는 이전 인터페이스입니다. 새로운 OpenSSL 장비 인'EVP_DigestSign *'과'EVP_DigestVerify *'를 사용해야합니다. – jww
DSA가 TLS 1.3에서 삭제됩니다. 분명히, 아무도 그것을 사용하고 있습니다. RSA 및 ECDSA를 사용하십시오. TLS 1.3 *은'ed25519'를 포함 할 수도 있습니다. – jww