Struct x509_parser::pem::Pem
source · pub struct Pem {
pub label: String,
pub contents: Vec<u8>,
}
Expand description
Representation of PEM data
Fields§
§label: String
The PEM label
contents: Vec<u8>
The PEM decoded data
Implementations§
source§impl Pem
impl Pem
sourcepub fn read(r: impl BufRead + Seek) -> Result<(Pem, usize), PEMError>
pub fn read(r: impl BufRead + Seek) -> Result<(Pem, usize), PEMError>
Read the next PEM-encoded structure, and decode the base64 data
Returns the certificate (encoded in DER) and the number of bytes read. Allocates a new buffer for the decoded data.
Note that a PEM file can contain multiple PEM blocks. This function returns the
first decoded object, starting from the current reader position.
To get all objects, call this function repeatedly until PEMError::MissingHeader
is returned.
§Examples
let file = std::fs::File::open("assets/certificate.pem").unwrap();
let subject = x509_parser::pem::Pem::read(std::io::BufReader::new(file))
.unwrap().0
.parse_x509().unwrap()
.tbs_certificate.subject.to_string();
assert_eq!(subject, "CN=lists.for-our.info");
sourcepub fn parse_x509(&self) -> Result<X509Certificate<'_>, Err<X509Error>>
pub fn parse_x509(&self) -> Result<X509Certificate<'_>, Err<X509Error>>
Decode the PEM contents into a X.509 object
sourcepub fn iter_from_buffer(i: &[u8]) -> PemIterator<Cursor<&[u8]>> ⓘ
pub fn iter_from_buffer(i: &[u8]) -> PemIterator<Cursor<&[u8]>> ⓘ
Returns an iterator over the PEM-encapsulated parts of a buffer
Only the sections enclosed in blocks starting with -----BEGIN xxx-----
and ending with -----END xxx-----
will be considered.
Lines before, between or after such blocks will be ignored.
The iterator is fallible: next()
returns a Result<Pem, PEMError>
object.
An error indicates a block is present but invalid.
If the buffer does not contain any block, iterator will be empty.
sourcepub fn iter_from_reader<R: BufRead + Seek>(reader: R) -> PemIterator<R> ⓘ
pub fn iter_from_reader<R: BufRead + Seek>(reader: R) -> PemIterator<R> ⓘ
Returns an iterator over the PEM-encapsulated parts of a reader
Only the sections enclosed in blocks starting with -----BEGIN xxx-----
and ending with -----END xxx-----
will be considered.
Lines before, between or after such blocks will be ignored.
The iterator is fallible: next()
returns a Result<Pem, PEMError>
object.
An error indicates a block is present but invalid.
If the reader does not contain any block, iterator will be empty.
Trait Implementations§
impl Eq for Pem
impl StructuralPartialEq for Pem
Auto Trait Implementations§
impl Freeze for Pem
impl RefUnwindSafe for Pem
impl Send for Pem
impl Sync for Pem
impl Unpin for Pem
impl UnwindSafe for Pem
Blanket Implementations§
source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)