WechatCrypto

Struct WechatCrypto 

Source
pub struct WechatCrypto { /* private fields */ }

Implementations§

Source§

impl WechatCrypto

Source

pub fn new(encoding_aes_key: &str) -> WechatCrypto

Source

pub fn token(self, token: &str) -> WechatCrypto

Source

pub fn receive_id(self, receive_id: &str) -> WechatCrypto

Source

pub fn get_signature( &self, timestamp: i64, nonce: &str, encrypted: &str, ) -> String

§获取签名

timestamp 时间戳 nonce 随机字符串 encrypted 加密数据

Source

pub fn get_sha1_sign(encrypt_str: &str) -> String

SHA1签名

Source

pub fn create_hmac_sha256_sign( key: &str, message: &str, ) -> LabradorResult<String>

hmac_sha256

Source

pub fn decrypt_data( session_key: &str, encrypted_data: &str, iv: &str, ) -> LabradorResult<String>

§数据解密

session_key key iv 偏移量 encrypted_data 加密数据

Source

pub fn check_signature( &self, signature: &str, timestamp: i64, nonce: &str, echo_str: &str, ) -> LabradorResult<bool>

§检查签名

timestamp 时间戳 nonce 随机字符串 echo_str 加密数据

Source

pub fn encrypt_message( &self, msg: &str, timestamp: i64, nonce: &str, ) -> LabradorResult<String>

§加密消息

timestamp 时间戳 nonce 随机字符串 msg 加密数据

Source

pub fn decrypt_message( &self, xml: &str, signature: &str, timestamp: i64, nonce: &str, ) -> LabradorResult<String>

§解密消息

xml 解密内容 nonce 随机字符串 timestamp 时间戳 signature 签名

Source

pub fn decrypt_content( &self, encrypted_content: &str, signature: &str, timestamp: i64, nonce: &str, ) -> LabradorResult<String>

§检验消息的真实性,并且获取解密后的明文.
  1. 利用收到的密文生成安全签名,进行签名验证
  2. 若验证通过,则提取xml中的加密消息
  3. 对消息进行解密
Source

pub fn decrypt_xml( &self, encrypted_xml: &str, signature: &str, timestamp: i64, nonce: &str, ) -> LabradorResult<String>

§检验消息的真实性,并且获取解密后的明文.
  1. 利用收到的密文生成安全签名,进行签名验证
  2. 若验证通过,则提取xml中的加密消息
  3. 对消息进行解密
Source

pub fn decrypt_data_refund( app_key: &str, ciphertext: &str, ) -> LabradorResult<String>

§解密退款消息

app_key 应用key ciphertext 加密数据

Trait Implementations§

Source§

impl Debug for WechatCrypto

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for WechatCrypto

Source§

fn eq(&self, other: &WechatCrypto) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for WechatCrypto

Source§

impl StructuralPartialEq for WechatCrypto

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more