aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/bn.rs
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2016-11-06 14:07:34 -0800
committerSteven Fackler <[email protected]>2016-11-06 14:07:34 -0800
commitb83edbad0d2a1074ea956e2049f4814894ea85c7 (patch)
treed1f5a85ff30ffd9c274328d752ba8baa98148b5a /openssl/src/bn.rs
parentSupport client CA advertisement (diff)
downloadrust-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.rs9
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);