https://github.com/RustCrypto/formats
Cryptography-related format encoders/decoders: DER, PEM, PKCS, PKIX
https://github.com/RustCrypto/formats
Last synced: 9 months ago
JSON representation
Cryptography-related format encoders/decoders: DER, PEM, PKCS, PKIX
- Host: GitHub
- URL: https://github.com/RustCrypto/formats
- Owner: RustCrypto
- Created: 2021-09-13T16:40:25.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-04-08T13:03:10.000Z (10 months ago)
- Last Synced: 2025-04-14T12:21:21.438Z (10 months ago)
- Language: Rust
- Homepage:
- Size: 8.4 MB
- Stars: 266
- Watchers: 13
- Forks: 142
- Open Issues: 63
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
- fucking-awesome-cryptography - formats - Cryptography-related format encoders/decoders: DER, PEM, PKCS, PKIX. (Frameworks and Libs / Rust)
- awesome-cryptography - formats - Cryptography-related format encoders/decoders: DER, PEM, PKCS, PKIX. (Frameworks and Libs / Rust)
README
# [RustCrypto]: Formats [![Project Chat][chat-image]][chat-link] [![dependency status][deps-image]][deps-link]
Cryptography-related format encoders/decoders (e.g. PKCS, PKIX)
## Crates
| Name | crates.io | Docs | Description |
|---------------|-------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| `base16ct` | [](https://crates.io/crates/base16ct) | [](https://docs.rs/base16ct) | Constant-time hexadecimal encoder/decoder |
| `base32ct` | [](https://crates.io/crates/base32ct) | [](https://docs.rs/base32ct) | Constant-time Base32 encoder/decoder |
| `base64ct` | [](https://crates.io/crates/base64ct) | [](https://docs.rs/base64ct) | Constant-time Base64 encoder/decoder with support for several variants |
| `cms` | [](https://crates.io/crates/cms) | [](https://docs.rs/cms) | Implementation of the Cryptographic Message Syntax (CMS) as described in [RFC 5652], [RFC 5911], and in [RFC 3274]. |
| `const‑oid` | [](https://crates.io/crates/const-oid) | [](https://docs.rs/const-oid) | Const-friendly implementation of the ISO/IEC Object Identifier (OID) standard as defined in [ITU X.660] |
| `der` | [](https://crates.io/crates/der) | [](https://docs.rs/der) | Decoder and encoder of the Distinguished Encoding Rules (DER) for Abstract Syntax Notation One (ASN.1) as described in [ITU X.690] |
| `pem‑rfc7468` | [](https://crates.io/crates/pem-rfc7468) | [](https://docs.rs/pem-rfc7468) | Strict PEM encoding for PKIX/PKCS/CMS objects |
| `pkcs1` | [](https://crates.io/crates/pkcs1) | [](https://docs.rs/pkcs1) | Implementation of PKCS#1: RSA Cryptography Specifications Version 2.2 ([RFC 8017]) |
| `pkcs5` | [](https://crates.io/crates/pkcs5) | [](https://docs.rs/pkcs5) | Implementation of PKCS#5: Password-Based Cryptography Specification Version 2.1 ([RFC 8018]) |
| `pkcs8` | [](https://crates.io/crates/pkcs8) | [](https://docs.rs/pkcs8) | Implementation of PKCS#8(v2): Private-Key Information Syntax Specification ([RFC 5208]) and asymmetric key packages ([RFC 5958]) |
| `sec1` | [](https://crates.io/crates/sec1) | [](https://docs.rs/sec1) | [SEC1: Elliptic Curve Cryptography] encoding formats |
| `spki` | [](https://crates.io/crates/spki) | [](https://docs.rs/spki) | X.509 Subject Public Key Info ([RFC 5280 Section 4.1]) describing public keys as well as their associated AlgorithmIdentifiers (i.e. OIDs) |
| `tai64` | [](https://crates.io/crates/tai64) | [](https://docs.rs/tai64) | TAI64(N) Timestamps |
| `tls_codec` | [](https://crates.io/crates/tls_codec) | [](https://docs.rs/tls_codec) | TLS codec as defined in [RFC 8446 Section 3] as well as some extensions required by MLS. |
| `x509-cert` | [](https://crates.io/crates/x509-cert) | [](https://docs.rs/x509-cert) | X.509 Public Key Infrastructure Certificate format as described in [RFC 5280] |
## License
All crates licensed under either of
- [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
- [MIT license](http://opensource.org/licenses/MIT)
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
[//]: # "badges"
[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg
[chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/300570-formats
[deps-image]: https://deps.rs/repo/github/RustCrypto/formats/status.svg
[deps-link]: https://deps.rs/repo/github/RustCrypto/formats
[//]: # "links"
[rustcrypto]: https://github.com/rustcrypto
[itu x.660]: https://www.itu.int/rec/T-REC-X.660
[itu x.690]: https://www.itu.int/rec/T-REC-X.690
[rfc 2986]: https://datatracker.ietf.org/doc/html/rfc2986
[rfc 3274]: https://datatracker.ietf.org/doc/html/rfc3274
[rfc 4251]: https://datatracker.ietf.org/doc/html/rfc4251
[rfc 4253]: https://datatracker.ietf.org/doc/html/rfc4253
[rfc 5208]: https://datatracker.ietf.org/doc/html/rfc5208
[rfc 5280 section 4.1]: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1
[rfc 5280]: https://datatracker.ietf.org/doc/html/rfc5280
[rfc 5652]: https://datatracker.ietf.org/doc/html/rfc5652
[rfc 5911]: https://datatracker.ietf.org/doc/html/rfc5911
[rfc 5958]: https://datatracker.ietf.org/doc/html/rfc5958
[rfc 8017]: https://datatracker.ietf.org/doc/html/rfc8017
[rfc 8018]: https://datatracker.ietf.org/doc/html/rfc8018
[rfc 8933]: https://datatracker.ietf.org/doc/html/rfc8933
[rfc 8446 section 3]: https://datatracker.ietf.org/doc/html/rfc8446#section-3
[sec1: elliptic curve cryptography]: https://www.secg.org/sec1-v2.pdf