Struct pkcs8::PrivateKeyInfo 
source · pub struct PrivateKeyInfo<'a> {
    pub algorithm: AlgorithmIdentifier<'a>,
    pub private_key: &'a [u8],
    pub public_key: Option<&'a [u8]>,
}Expand description
PKCS#8 PrivateKeyInfo.
ASN.1 structure containing an AlgorithmIdentifier, private key
data in an algorithm specific format, and optional attributes
(ignored by this implementation).
Supports PKCS#8 v1 as described in RFC 5208 and PKCS#8 v2 as described in RFC 5958. PKCS#8 v2 keys include an additional public key field.
§PKCS#8 v1 PrivateKeyInfo
Described in RFC 5208 Section 5:
PrivateKeyInfo ::= SEQUENCE {
        version                   Version,
        privateKeyAlgorithm       PrivateKeyAlgorithmIdentifier,
        privateKey                PrivateKey,
        attributes           [0]  IMPLICIT Attributes OPTIONAL }
Version ::= INTEGER
PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
PrivateKey ::= OCTET STRING
Attributes ::= SET OF Attribute
§PKCS#8 v2 OneAsymmetricKey
PKCS#8 OneAsymmetricKey as described in RFC 5958 Section 2:
PrivateKeyInfo ::= OneAsymmetricKey
OneAsymmetricKey ::= SEQUENCE {
    version                   Version,
    privateKeyAlgorithm       PrivateKeyAlgorithmIdentifier,
    privateKey                PrivateKey,
    attributes            [0] Attributes OPTIONAL,
    ...,
    [[2: publicKey        [1] PublicKey OPTIONAL ]],
    ...
  }
Version ::= INTEGER { v1(0), v2(1) } (v1, ..., v2)
PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
PrivateKey ::= OCTET STRING
Attributes ::= SET OF Attribute
PublicKey ::= BIT STRING
Fields§
§algorithm: AlgorithmIdentifier<'a>X.509 AlgorithmIdentifier for the private key type.
private_key: &'a [u8]Private key data.
public_key: Option<&'a [u8]>Public key data, optionally available if version is V2.
Implementations§
source§impl<'a> PrivateKeyInfo<'a>
 
impl<'a> PrivateKeyInfo<'a>
sourcepub fn new(algorithm: AlgorithmIdentifier<'a>, private_key: &'a [u8]) -> Self
 
pub fn new(algorithm: AlgorithmIdentifier<'a>, private_key: &'a [u8]) -> Self
Create a new PKCS#8 PrivateKeyInfo message.
This is a helper method which initializes attributes and public_key
to None, helpful if you aren’t using those.
sourcepub fn version(&self) -> Version
 
pub fn version(&self) -> Version
Get the PKCS#8 Version for this structure.
Version::V1 if public_key is None, Version::V2 if Some.
Trait Implementations§
source§impl<'a> Clone for PrivateKeyInfo<'a>
 
impl<'a> Clone for PrivateKeyInfo<'a>
source§fn clone(&self) -> PrivateKeyInfo<'a>
 
fn clone(&self) -> PrivateKeyInfo<'a>
1.0.0§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl<'a> Debug for PrivateKeyInfo<'a>
 
impl<'a> Debug for PrivateKeyInfo<'a>
source§impl<'a> DecodeValue<'a> for PrivateKeyInfo<'a>
 
impl<'a> DecodeValue<'a> for PrivateKeyInfo<'a>
source§fn decode_value<R: Reader<'a>>(
    reader: &mut R,
    header: Header,
) -> Result<PrivateKeyInfo<'a>>
 
fn decode_value<R: Reader<'a>>( reader: &mut R, header: Header, ) -> Result<PrivateKeyInfo<'a>>
Reader.source§impl PemLabel for PrivateKeyInfo<'_>
 
impl PemLabel for PrivateKeyInfo<'_>
source§impl<'a> Sequence<'a> for PrivateKeyInfo<'a>
 
impl<'a> Sequence<'a> for PrivateKeyInfo<'a>
source§impl<'a> TryFrom<&'a [u8]> for PrivateKeyInfo<'a>
 
impl<'a> TryFrom<&'a [u8]> for PrivateKeyInfo<'a>
source§impl TryFrom<&PrivateKeyInfo<'_>> for SecretDocument
 
impl TryFrom<&PrivateKeyInfo<'_>> for SecretDocument
source§fn try_from(private_key: &PrivateKeyInfo<'_>) -> Result<SecretDocument>
 
fn try_from(private_key: &PrivateKeyInfo<'_>) -> Result<SecretDocument>
source§impl TryFrom<PrivateKeyInfo<'_>> for SecretDocument
 
impl TryFrom<PrivateKeyInfo<'_>> for SecretDocument
source§fn try_from(private_key: PrivateKeyInfo<'_>) -> Result<SecretDocument>
 
fn try_from(private_key: PrivateKeyInfo<'_>) -> Result<SecretDocument>
Auto Trait Implementations§
impl<'a> Freeze for PrivateKeyInfo<'a>
impl<'a> RefUnwindSafe for PrivateKeyInfo<'a>
impl<'a> Send for PrivateKeyInfo<'a>
impl<'a> Sync for PrivateKeyInfo<'a>
impl<'a> Unpin for PrivateKeyInfo<'a>
impl<'a> UnwindSafe for PrivateKeyInfo<'a>
Blanket Implementations§
§impl<T> Any for Twhere
    T: 'static + ?Sized,
 
impl<T> Any for Twhere
    T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
    T: ?Sized,
 
impl<T> Borrow<T> for Twhere
    T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
source§impl<'a, T> Choice<'a> for T
 
impl<'a, T> Choice<'a> for T
source§fn can_decode(tag: Tag) -> bool
 
fn can_decode(tag: Tag) -> bool
Tag decodable as a variant of this CHOICE?§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
§unsafe fn clone_to_uninit(&self, dst: *mut T)
 
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)source§impl<'a, T> Decode<'a> for Twhere
    T: DecodeValue<'a> + FixedTag,
 
impl<'a, T> Decode<'a> for Twhere
    T: DecodeValue<'a> + FixedTag,
source§impl<T> DecodePem for Twhere
    T: DecodeOwned + PemLabel,
 
impl<T> DecodePem for Twhere
    T: DecodeOwned + PemLabel,
source§impl<T> Encode for Twhere
    T: EncodeValue + Tagged,
 
impl<T> Encode for Twhere
    T: EncodeValue + Tagged,
source§fn encoded_len(&self) -> Result<Length, Error>
 
fn encoded_len(&self) -> Result<Length, Error>
Compute the length of this value in bytes when encoded as ASN.1 DER.
source§fn encode(&self, writer: &mut dyn Writer) -> Result<(), Error>
 
fn encode(&self, writer: &mut dyn Writer) -> Result<(), Error>
Encode this value as ASN.1 DER using the provided Writer.