Closed behrtam closed 2 years ago
Do you know what kind of key it was (RSA, DSA, etc) and what size it was?
Actually, from the trace, it must have been an RSA key. If you can determine the key size, that would be helpful for improving the error message.
SHA-256 with RSA Encryption ( 1.2.840.113549.1.1.11 ), Key Size=2.048 bits
Could you try a 4096 bit key and see if it errors? 2048 is pretty small for 2022. I recently renewed my code signing cert and Sectigo wouldn’t let me use a 2048 bit key. Perhaps Apple decided to error out on shorter keys now?
4096 bits does run into the same error.
We are using oscrypto
via pyas2lib.as2
... will try to find some time to work on a minimal setup to reproduce this.
Is the certificate an RSAPSS cert?
I can recreate with a super simple self signed cert:
openssl req -newkey rsa:2048 -keyout test.key -x509 -out test.cer \
-subj "/C=US/ST=CA/L=Thousand Oaks/O=test/OU=RegOps/CN=test" \
-sha256 -days 1095
from oscrypto import asymmetric
with open("config/test.cer", "rb") as readme:
cert = readme.read()
encryption_cert = asymmetric.load_certificate(cert)
print(encryption_cert.byte_size)
Traceback (most recent call last):
File "/Users/abassett/work/ez_fda_as2/tests/test_oscrypto.py", line 8, in <module>
print(encryption_cert.byte_size)
File "/Users/abassett/venvs/oscrypto/lib/python3.10/site-packages/oscrypto/_asymmetric.py", line 234, in byte_size
return self.public_key.byte_size
File "/Users/abassett/venvs/oscrypto/lib/python3.10/site-packages/oscrypto/_mac/asymmetric.py", line 265, in public_key
handle_sec_error(res)
File "/Users/abassett/venvs/oscrypto/lib/python3.10/site-packages/oscrypto/_mac/_security.py", line 57, in handle_sec_error
raise exception_class(output)
OSError: OSStatus 53899264
Appears to fire these messages in console:
Those might be a red herring? But they're also interspersed with these MacOS error issues:
It looks like it might be due to this deprecation? https://developer.apple.com/documentation/security/1396096-seccertificatecopypublickey
I did a sloppy port to SecCertificateCopyKey and it seems like it might be working. I'll try to pull together a proper PR.
Setup: macOS 12.1, oscrypto 1.2.1, Python 3.9.5
Not sure where to even start to look for this problem. Running the newest mac version on arm and not Intel. The OSStatus 62385568 did not give me any clues.