Yay, this is awesome, thank you! I think the current branch will definitely need splitting, most likely I will submit the changes in three separate PRs: the types first (in `x509.extensions` on Python side and in `x509::extensions` on the Rust side), then the parsing, then the encoding (this implementation part I am least confident in anyway). Before submitting the parser and encoder, I will also try to deliver certificates for testing, so it is possible to have meaningful tests using real world data.
Thanks again and kind regards, Oleg Am Mi., 30. Okt. 2024 um 15:05 Uhr schrieb Paul Kehrer via Cryptography-dev <cryptography-dev@python.org>: > Re-sending to list since I accidentally sent this solely to Oleg! Sorry > about that Oleg. > > -Paul > > On Oct 30, 2024, at 7:02 AM, Paul Kehrer <paul.l.keh...@gmail.com> wrote: > > > We would be willing to take support for this since it’s just some asn.1 > definitions and there’s a specification associated with it. If the diff is > larger than 400 lines then for ease of review we’ll likely want to break > this into multiple PRs, but otherwise feel free to submit and we can > discuss! > > -Paul > > On Oct 30, 2024, at 5:51 AM, Oleg Höfling <oleg.hoefl...@gmail.com> wrote: > > > The spec I have at hand ist the > https://fachportal.gematik.de/fachportal-import/files/gemSpec_PKI_V2.10.2.pdf > which lists the Admission under section 4.8.3.2. Unfortunately, this spec: > 1. is written in german language and 2. is not complete, e.g. it does not > provide the ASN.1 syntax for the NamingAuthority. It is however based on > the Common PKI v2 specification which does provide the complete ASN.1 spec > (Table 29 and 29b). Link: > https://www.elektronische-vertrauensdienste.de/EVD/SharedDocuments/Downloads/QES/Common_PKI_v2.0_02.html > It is hosted by the Bundesnetzagentur as part of the eIDAS regulation and > not BSI, however I see that BSI mentions Common PKI in its glossary here: > https://www.bsi.bund.de/DE/Themen/Oeffentliche-Verwaltung/Moderner-Staat/ElektronischeSignatur/Glossar/glossar_node.html > Don't shoot the messenger, but this is all I have at hand. > > Kind regards, > > Oleg > > Am Mi., 30. Okt. 2024 um 03:29 Uhr schrieb Paul Kehrer < > paul.l.keh...@gmail.com>: > >> Is there a published spec that defines the ASN.1 syntax for these >> extensions (maybe from BSI)? We generally like to have a specification that >> we can use as a source of truth. For x509 I don’t have any objection to >> adding this assuming a spec exists. >> >> -Paul >> >> On Oct 29, 2024, at 6:54 PM, Oleg Höfling via Cryptography-dev < >> cryptography-dev@python.org> wrote: >> >> >> Dear devs, >> >> there is an X509 extension named `Admissions`, supported e.g. by OpenSSL ( >> https://docs.openssl.org/master/man3/ADMISSIONS/) and BouncyCastle ( >> https://people.eecs.berkeley.edu/~jonah/bc/index.html?org/bouncycastle/asn1/isismtt/x509/AdmissionSyntax.html). >> Would you be interested in `cryptography` supporting it as well? This is an >> extension that is used in german public healthcare and legal sectors, and I >> am working for one of them :-) I really enjoy working with `cryptography` >> for reading out and persisting X509 certificates, but dealing with the >> `Admissions` extension requires me adding extra dependencies and writing >> extra code using other libraries I do not enjoy this much. >> >> If you agree that it could be a viable addition to the project, I would >> gladly contribute the necessary bits myself. I made a proof-of-concept >> implementation for the Admissions extension in my fork of `cryptography` to >> have something to discuss: >> >> >> https://github.com/pyca/cryptography/compare/main...hoefling:cryptography:admission-extension?expand=1 >> >> Example script that creates a certificate with an admission extension >> that has some dummy values: >> https://gist.github.com/hoefling/fa290eb33b24a2e5405cf9cdeeda03bc >> >> Of course, this is far from the state where it can be reviewed, should be >> split into smaller patches, is missing tests and docs etc etc. >> >> If you reject the idea, I would try and put the code in a separate >> library that depends on `cryptography` and connect them together somehow. I >> would be grateful for any advices on that matter - maybe you already had a >> case with a third party extension for `cryptography` being built. >> >> Last but not least - I really enjoyed hacking the working prototype >> together and fiddling with the Rust backend, kudos for having such a clear >> and concise API design! >> >> Kind regards, >> >> Oleg >> _______________________________________________ >> Cryptography-dev mailing list >> Cryptography-dev@python.org >> https://mail.python.org/mailman/listinfo/cryptography-dev >> >> _______________________________________________ > Cryptography-dev mailing list > Cryptography-dev@python.org > https://mail.python.org/mailman/listinfo/cryptography-dev >
_______________________________________________ Cryptography-dev mailing list Cryptography-dev@python.org https://mail.python.org/mailman/listinfo/cryptography-dev