diff options
| author | Steven Fackler <[email protected]> | 2016-11-06 14:07:34 -0800 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2016-11-06 14:07:34 -0800 |
| commit | b83edbad0d2a1074ea956e2049f4814894ea85c7 (patch) | |
| tree | d1f5a85ff30ffd9c274328d752ba8baa98148b5a /openssl/src/bn.rs | |
| parent | Support client CA advertisement (diff) | |
| download | rust-openssl-b83edbad0d2a1074ea956e2049f4814894ea85c7.tar.xz rust-openssl-b83edbad0d2a1074ea956e2049f4814894ea85c7.zip | |
Start on an X509Builder
Diffstat (limited to 'openssl/src/bn.rs')
| -rw-r--r-- | openssl/src/bn.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/openssl/src/bn.rs b/openssl/src/bn.rs index d52be884..ec0b1aba 100644 --- a/openssl/src/bn.rs +++ b/openssl/src/bn.rs @@ -6,6 +6,7 @@ use std::{fmt, ptr}; use std::ops::{Add, Div, Mul, Neg, Rem, Shl, Shr, Sub, Deref}; use {cvt, cvt_p, cvt_n}; +use asn1::Asn1Integer; use crypto::CryptoString; use error::ErrorStack; use types::{OpenSslType, OpenSslTypeRef}; @@ -492,6 +493,14 @@ impl BigNumRef { Ok(CryptoString::from_null_terminated(buf)) } } + + /// Returns an `Asn1Integer` containing the value of `self`. + pub fn to_asn1_integer(&self) -> Result<Asn1Integer, ErrorStack> { + unsafe { + cvt_p(ffi::BN_to_ASN1_INTEGER(self.as_ptr(), ptr::null_mut())) + .map(|p| Asn1Integer::from_ptr(p)) + } + } } type_!(BigNum, BigNumRef, ffi::BIGNUM, ffi::BN_free); |