Skip to content

nyantec/rfc2253-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rfc2253-rust

Build Status Crates.io

A small rust library that parses RFC2253 encoded distinguished name strings. You can use this to decode the output of openssl's x509_NAME_print_ex(..., XN_FLAG_RFC2253) or nginx's $ssl_client_s_dn and $ssl_client_i_dn variables.

Usage

Add this to your Cargo.toml file:

[dependencies]
rfc2253 = "*"

The example below shows how to parse a RFC2253 encoded distinguished name.

extern crate rfc2253;

fn main() {
  let dn_str = "C=DE,CN=Hans Tester,OU=ACME Inc.,O=ACME Inc.,L=Berlin,ST=Berlin";
  let dn = rfc2253::parse_distinguished_name_str(dn_str).unwrap();

  println!("{:?}", dn);
  assert!(dn.attributes.len() == 6);
  assert!(dn.attributes.get("CN").unwrap() == "Hans Tester");
  assert!(dn.attributes.get("C").unwrap() == "DE");
  assert!(dn.attributes.get("L").unwrap() == "Berlin");
  assert!(dn.attributes.get("ST").unwrap() == "Berlin");
  assert!(dn.attributes.get("O").unwrap() == "ACME Inc.");
  assert!(dn.attributes.get("OU").unwrap() == "ACME Inc.");
}

Build

To build the rfc2253-rust library, run cargo build:

$ cd rfc2253-rust
$ cargo build

After you have made any changes to the code, run the test suite by executing cargo test:

$ cd rfc2253-rust
$ cargo test

License

Copyright © 2018 nyantec GmbH <oss@nyantec.com>

Authors:
  Paul Asmuth <asm@nyantec.com>

Provided that these terms and disclaimer and all copyright notices
are retained or reproduced in an accompanying document, permission
is granted to deal in this work without restriction, including un‐
limited rights to use, publicly perform, distribute, sell, modify,
merge, give away, or sublicence.

This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
the utmost extent permitted by applicable law, neither express nor
implied; without malicious intent or gross negligence. In no event
may a licensor, author or contributor be held liable for indirect,
direct, other damage, loss, or other issues arising in any way out
of dealing in the work, even if advised of the possibility of such
damage or existence of a defect, except proven that it results out
of said person’s immediate fault when using the work as intended.

About

A RFC2253 parser written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages