rust-chain 0.2.8

rust library for writing EOS rust smart contracts
Documentation
use crate::vmapi::crypto;

use crate::structs::*;

use crate::serializer::{
    Packer as _,
    Encoder
};

use crate::vec;

///
pub fn assert_sha256(data: &[u8], hash: &Checksum256) {
    crypto::assert_sha256(data.as_ptr(), data.len() as u32, hash);
}

///
pub fn assert_sha1(data: &[u8], hash: &Checksum160) {
    crypto::assert_sha1(data.as_ptr(), data.len() as u32, hash);
}

///
pub fn assert_sha512(data: &[u8], hash: &Checksum512) {
    crypto::assert_sha512(data.as_ptr(), data.len() as u32, hash);
}

pub fn assert_ripemd160(data: &[u8], hash: &Checksum160) {
    crypto::assert_ripemd160(data.as_ptr(), data.len() as u32, hash)
}

///
pub fn sha256(data: &[u8]) -> Checksum256 {
    let mut hash: Checksum256 = Default::default();
    crypto::sha256(data.as_ptr(), data.len() as u32, &mut hash);
    return hash;
}

///
pub fn sha1( data: &[u8]) -> Checksum160 {
    let mut hash: Checksum160 = Checksum160::default();
    crypto::sha1(data.as_ptr(), data.len() as u32, &mut hash);
    return hash;
}

///
pub fn sha512( data: &[u8]) -> Checksum512 {
    let mut hash: Checksum512 = Checksum512::default();
    crypto::sha512(data.as_ptr(), data.len() as u32, & mut hash);
    return hash;
}

///
pub fn ripemd160(data: &[u8]) -> Checksum160 {
    let mut hash: Checksum160 = Checksum160::default();
    crypto::ripemd160(data.as_ptr(), data.len() as u32, &mut hash);
    return hash;
}

///
pub fn recover_key( digest: &Checksum256 , sig: &Signature) -> PublicKey {
    let mut pubkey = vec![0u8; 34];
    let _sig = Encoder::pack(sig);

    crypto::recover_key(digest, _sig.as_ptr(), _sig.len(), pubkey.as_mut_ptr(), pubkey.len());
    let mut ret = PublicKey::default();
    ret.unpack(&pubkey);
    return ret;
}

///
pub fn assert_recover_key(digest: &Checksum256, sig: &Signature, pubkey: &PublicKey) {
    let _sig = Encoder::pack(sig);
    let _pubkey = Encoder::pack(pubkey);
    crypto::assert_recover_key(digest, _sig.as_ptr(), _sig.len(), _pubkey.as_ptr(), _pubkey.len());
}