diff options
| author | Ronald Kinard <[email protected]> | 2017-02-23 20:00:32 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-02-23 20:00:32 -0600 |
| commit | 32fc84424df4079488dd2ebd4f3d3a1a2d2e3a66 (patch) | |
| tree | 8a19d618313da99138f783b465a1a805dae1f57d | |
| parent | Merge pull request #18 from FenrirWolf/time (diff) | |
| parent | Partial sslc service implementation (diff) | |
| download | archived-ctru-rs-32fc84424df4079488dd2ebd4f3d3a1a2d2e3a66.tar.xz archived-ctru-rs-32fc84424df4079488dd2ebd4f3d3a1a2d2e3a66.zip | |
Merge pull request #20 from panicbit/service_ssl
Partial sslc service implementation
| -rw-r--r-- | ctru-rs/src/services/mod.rs | 2 | ||||
| -rw-r--r-- | ctru-rs/src/services/sslc.rs | 38 |
2 files changed, 40 insertions, 0 deletions
diff --git a/ctru-rs/src/services/mod.rs b/ctru-rs/src/services/mod.rs index bb96484..f8c99d2 100644 --- a/ctru-rs/src/services/mod.rs +++ b/ctru-rs/src/services/mod.rs @@ -2,6 +2,8 @@ pub mod apt; pub mod fs; pub mod hid; pub mod gspgpu; +pub mod sslc; pub use self::hid::Hid; pub use self::apt::Apt; +pub use self::sslc::SslC; diff --git a/ctru-rs/src/services/sslc.rs b/ctru-rs/src/services/sslc.rs new file mode 100644 index 0000000..b3ce848 --- /dev/null +++ b/ctru-rs/src/services/sslc.rs @@ -0,0 +1,38 @@ +use libctru::services::sslc::*; +use Result; + +// TODO: Implement remaining functions + +pub struct SslC(()); + +impl SslC { + /// Initialize sslc + pub fn init() -> Result<Self> { + unsafe { + let r = sslcInit(0); + if r < 0 { + Err(r.into()) + } else { + Ok(SslC(())) + } + } + } + + /// Fill `buf` with `buf.len()` random bytes + pub fn generate_random_data(&self, buf: &mut [u8]) -> Result<()> { + unsafe { + let r = sslcGenerateRandomData(buf.as_ptr() as _, buf.len() as u32); + if r < 0 { + Err(r.into()) + } else { + Ok(()) + } + } + } +} + +impl Drop for SslC { + fn drop(&mut self) { + unsafe { sslcExit() }; + } +} |