diff options
| author | Steven Fackler <[email protected]> | 2017-02-10 19:38:51 -0800 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2017-02-10 19:38:51 -0800 |
| commit | a1d7956f828a5208f16d49871b7c1965d21a6893 (patch) | |
| tree | 651058ce347498105dfa9e3add8059c2318cc548 /openssl/src/asn1.rs | |
| parent | Merge pull request #574 from stephanbuys/macos_readme (diff) | |
| download | rust-openssl-a1d7956f828a5208f16d49871b7c1965d21a6893.tar.xz rust-openssl-a1d7956f828a5208f16d49871b7c1965d21a6893.zip | |
Add Asn1BitString
Diffstat (limited to 'openssl/src/asn1.rs')
| -rw-r--r-- | openssl/src/asn1.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/openssl/src/asn1.rs b/openssl/src/asn1.rs index fd932723..0ba54440 100644 --- a/openssl/src/asn1.rs +++ b/openssl/src/asn1.rs @@ -93,6 +93,24 @@ impl Asn1StringRef { } } +foreign_type! { + type CType = ffi::ASN1_BIT_STRING; + fn drop = ffi::ASN1_BIT_STRING_free; + + pub struct Asn1BitString; + pub struct Asn1BitStringRef; +} + +impl Asn1BitStringRef { + pub fn as_slice(&self) -> &[u8] { + unsafe { slice::from_raw_parts(ASN1_STRING_data(self.as_ptr() as *mut _), self.len()) } + } + + pub fn len(&self) -> usize { + unsafe { ffi::ASN1_STRING_length(self.as_ptr() as *mut _) as usize } + } +} + #[cfg(any(ossl101, ossl102))] use ffi::ASN1_STRING_data; |