Hello, I'd like to show the interoperability between openssl 3.4.1 and Python 3.13/cryptography 44.0.1 library (which generally works). I signed with DSA a short message using Python/Cryptography with:
message (in French): Je tente de signer un message un peu plus gros que le precedent def sign(message, sk): chosen_hash = hashes.SHA256() hasher = hashes.Hash(chosen_hash) hasher.update(message) digest = hasher.finalize() signature = sk.sign( digest, utils.Prehashed(chosen_hash) ) return signature with the DSA key -----BEGIN PRIVATE KEY----- MIIBSwIBADCCASsGByqGSM44BAEwggEeAoGBAJeeE6sU5RBpDfNHj9J9abda8TYk BZNBtnWBfPvsqsuiMpqPWOrs5N9m5kKZuKSF639XlHVKeCCh+k1YfOw02qZuP7w8 Q8v87FrMW5b9o35DeqGDlHyjYCdYRnDjM7Gs8VfAl1+8PCb1AbOhscF/ojP5lrqj n9m2XbAHe+afCRLXAhUA9krLBVX+ckL7mb+KrhD3JehLGHsCgYB3jMw4QDHsQDnR VZoo+NeAe5LkJeZbPMOrxHQ6H9LX0kKuAo1lZarkql3ACWyVLo9ytb2KPDCw4r0I taj1C742ty8FjlreC/E8vsArflV5joUyx7hlmV8Xuirpp2E0rC/feUXJ/zbnpGCc vrA823h8UZ2ehQoGnj1tfBBihk7ivQQXAhUAmeKg5l0VXaVoBLsLH6c0vpC4uBs= -----END PRIVATE KEY----- The signature of the message is saved as a byte array in a file test.sig. The verification with openssl fails with the message Verification failure after the command openssl dgst -verify dsa_public_key.pem -signature test.sig test.txt I ASN.1 decoded the pica signature which prints RSAPrivateKey SEQUENCE (2 items) version Version INTEGER (160 bit) modulus INTEGER (160 bit) And the same decoding holds as well for a signature obtained with OpenSSL (with different values) but the latter is successfully verified. Bellow are two DSA signatures of the message in base64 pyca: MC4CFQDGylJyxlks53gkzb0wFv86MjlbowIVALAkqD4+JoqYQdb//f6YhSQZ/f4S openssl : MC4CFQCq1x7axNVxFr7Y7fR/TZRBHHEMWQIVAKOkA3I6y1gEzBHBA/Ng99JIDeMs I asked the question on crypto stackexchange with two comments: one replying the openssl verification works on python3.10.6/pyca3.4.8 on Ubuntu22.04 the other confirms that OpenSSL accepts the openssl signature but refuses the pyca signature with Verification failure. Thanks in advance for any answer/explanation of this failure and direct replies since I am not a subscriber of the list. Bruno Martin _______________________________________________ Cryptography-dev mailing list Cryptography-dev@python.org https://mail.python.org/mailman/listinfo/cryptography-dev