[][src]Crate pkcs8

Pure Rust implementation of Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification (RFC 5208).

About

This is a minimalistic library targeting no_std platforms and small code size. It supports decoding/encoding of the following types without the use of a heap:

When the alloc feature is enabled, the following additional types are available which provide more convenient decoding/encoding support:

When the pem feature is enabled, it also supports decoding/encoding documents from "PEM encoding" format as defined in RFC 7468.

Supported Algorithms

This crate has been tested against keys generated by OpenSSL for the following algorithms:

  • ECC (id-ecPublicKey)
  • Ed25519 (Ed25519)
  • RSA (rsaEncryption)

It may work with other algorithms which use an optional OID for AlgorithmIdentifier parameters.

Encrypted private keys are presently unsupported.

Minimum Supported Rust Version

This crate requires Rust 1.46 at a minimum.

Structs

AlgorithmIdentifier

X.509 AlgorithmIdentifier

ObjectIdentifier

Object identifier (OID)

PrivateKeyDocumentalloc

PKCS#8 private key document

PrivateKeyInfo

PKCS#8 PrivateKeyInfo

PublicKeyDocumentalloc

SPKI public key document

SubjectPublicKeyInfo

X.509 SubjectPublicKeyInfo (SPKI)

Enums

AlgorithmParameters

The parameters field of AlgorithmIdentifier.

Error

Error type

Traits

FromPrivateKey

Parse a private key object from a PKCS#8 encoded document.

FromPublicKey

Parse a public key object from an encoded SPKI document.

ToPrivateKeyalloc

Serialize a private key object to a PKCS#8 encoded document.

ToPublicKeyalloc

Serialize a public key object to a SPKI-encoded document.

Type Definitions

Result

Result type