Files
boc/aamos-ledger-rust/target/debug/deps/libhmac-7ee5d9ec04b5f3bf.rmeta
T

161 lines
31 KiB
Plaintext
Raw Normal View History

rust
¤{#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁdigestÁ Bp„êNR2¢[•„-9fa09ce0ec266148Á¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0Á
crypto_commonÁÑ2˸8áÝüV…Ãsãš§-7e84bbd992443341Á
generic_arrayÁç"„wÑÒÕµµ¥;è-1fbbe396c4d2fae7ÁtypenumÁ/-;@ú¨_z,Ö-6209550d9c65d0a6Á block_bufferÁl²>O;-bsò D’¶Á-fa8e2dfb5eb7e256ÁsubtleÁÞOs&¡A ¹]ujO -cb07c5ee900298efÁÀ´»À|•íoptimÁ









 


 
 




















 
!
HmacÁ-
HmacCoreÁ//_/ opad_digestÁ/ ipad_digestÁ
44ƒ
7
99
BufferKindÁ
<<KeySizeÁ
?? BlockSizeÁ
BB
OutputSizeÁ
EEæ Enew_from_sliceÁ
II
update_blocksÁ
LLfinalize_fixed_coreÁN 
 PPresetÁ

SSwrite_alg_nameÁ
 VV×simpleÁYYYYYYYYYY Y
Y Y Y
YYYYYYYYYppà YsYuuæ u·
Yyy¥Y||
Y
finalize_intoÁY×YŸYˆˆfinalize_into_resetÁ 
 IPADÁOPADÁ get_der_keyÁY
SimpleHmacÁ_opad_keyÁipad_keyÁY ˜˜ƒ6
G
H
K
K
N
N
N
R
U
U
X
X
X
w
x
{
{





Š
Š

š
Ø//Ü 1_
2ø 
3Š 
0šT‰DÔ$îø# /+-¿cØÊ_YëYûY™õè؈ûjÑ#ÆøÆ/ÆÆÆ ÆÊÆ¿cÆ+ÆÍÆ47/s9/</p?/B/|E/uI/L/P/…S/V/‚yˆØ|ø  #  /  +- ¿cÆ ÊÍ60x36Á0x5CÁ
Yí_4ÂMacÁÚùBlockÁ,ý 
BlockSizeUserÁl„DigestÁ4˜± Ê -ŒÜ /ÊŽü¬$üLI Generic implementation of Hash-based Message Authentication Code (HMAC).ÁMúüQNK To use it you will need a cryptographic hash function implementation whichÁü JG implements the [`digest`] crate traits. You can find compatible cratesÁüë<9 (e.g. [`sha2`]) in the [`RustCrypto/hashes`] repository.Á¨úü¬LI This crate provides two HMAC implementation [`Hmac`] and [`SimpleHmac`].ÁüùHE The first one is a buffered wrapper around block-level [`HmacCore`].ÁüÂJG Internally it uses efficient state representation, but works only withÁüJG hash functions which expose block-level API and consume blocks eagerlyÁüØFC (e.g. it will not work with the BLAKE2 family of hash functions).ÁüŸJG On the other hand, [`SimpleHmac`] is a bit less efficient memory-wise,ÁüêKH but works with all hash functions which implement the [`Digest`] trait.Áú # ExamplesÁüÉGD Let us demonstrate how to use HMAC using the SHA-256 hash function.Áúü•NK In the following examples [`Hmac`] is interchangeable with [`SimpleHmac`].Áäúüè To get authentication code:Áˆú ```rustÁ¬˜ use sha2::Sha256;ÁÔ® use hmac::{Hmac, Mac};ÁÌÉ use hex_literal::hex;Áãúüç# // Create alias for HMAC-SHA256Áü‹ # type HmacSha256 = Hmac<Sha256>;Á¯ úü³ IF let mut mac = HmacSha256::new_from_slice(b"my secret and secure key")Áüý 1. .expect("HMAC can take key of any size");Áü¯
! mac.update(b"input message");ÁÑ
úüÕ
KH // `result` has type `CtOutput` which is a thin wrapper around array ofÁü¡ 74 // bytes for providing constant time equality checkÁüÙ  let result = mac.finalize();Áüú FC // To get underlying array use `into_bytes`, but be careful, sinceÁüÁ NK // incorrect use of the code value may permit timing attacks which defeatsÁü
.+ // the security provided by the `CtOutput`Áü¿
)& let code_bytes = result.into_bytes();ÁÌé
 let expected = hex!("Áüƒ(% 97d2a569059bbcd8ead4444ff99071f4Áü¬(% c01d005bcefe0d3567e1be628e5fdcd9Á ");ÁüÝ-* assert_eq!(code_bytes[..], expected[..]);Á< ```ÁúÔ— To verify the message:Á²úÐ"¼Â # use sha2::Sha256;ÁäÚ # use hmac::{Hmac, Mac};ÁÜ÷ # use hex_literal::hex;Áü“%" # type HmacSha256 = Hmac<Sha256>;Áü¹Iº$üƒ1%µúü¹!È%ÛúÜß let code_bytes = hex!("Áüû(ô)ü¤(¦*×*üÕXU // `verify_slice` will return `Ok(())` if code is correct, `Err(MacError)` otherwiseÁü®/, mac.verify_slice(&code_bytes[..]).unwrap();Áž+æúÜê # Block and input sizesÁü†PM Usually it is assumed that block size is larger than output size. Due to theÁü×PM generic nature of the implementation, this edge case must be handled as wellÁü¨QN to remove potential panic. This is done by truncating hash output to the hashÁÌú block size if needed.Áúü˜&# [`digest`]: https://docs.rs/digestÁü¿" [`sha2`]: https://docs.rs/sha2Áüâ?< [`RustCrypto/hashes`]: https://github.com/RustCrypto/hashesÁDhttps://raw.githubusercontent.com/RustCrypto/media/26acc39f/logo.svgÁ„–×3lºhttps://docs.rs/hmac/0.12.1Álõ
YíÏ _Þ ìñ ù  & > ± Ê Q -ŒÜ b /Ês ŽÏ Ï Ï Þ Þ ñ ´ä  & & > > -/°\  
 š$ 

¥$ 
×1 `
ž,6‰f
ResetÁ,d+
EagerÁ,R

AlgorithmNameÁlª-
 

BufferÁ4Ï
BufferKindUserÁt×
 CoreProxyÁLçî
 CoreWrapperÁ\ò
FixedOutputCoreÁ|‡
OutputSizeUserÁt˜ 

UpdateCoreÁT¨
KeyÁÏ
! KeySizeUserÁ\Ô#
"IsLessÁ4ÿÕ$
$LeÁ†!
%¨<ó
&U256Á$”ƒ
'
HashMarkerÁTŸ°
(
InvalidLengthÁl«J
)ö:K
)KeyInitÁ<º/
* MacMarkerÁLÃø
+°
,,¾Á²µ¥¨$*žl\4oœ}tüo/\_PSDG25éìÍвµœŸüoÝz}üomp^aQT@C),êìÓÕÄÆ„õÔÚ Generic HMAC instance.Á$þ..ÍìÑ ƒÒ8íbufferÁÉ1ïÀ« FH´ßü£;8 Generic core HMAC instance, which operates over blocks.Á00 è> óîѰÑïT›Ê@Ê@Ê@üß"Ê@˜RR¢7î_ȼbÞ?”î³Ê@ØÊ@Õ$Ê@šAšAUIntÁAmsbÁžAlsbÁo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌšAšAí@Aú@žAˆAo¤¸ëW¨6ÌÆAÆAÇAUTermÁ ~é.š›@ÁÓ.Ó.Ô.B1Á jÛ85ÖËÕ½.½.¾.B0Á ÿ³2‹ŒÌ«¸F¸F¸F¸F¸F¸F¸FóÚAãA×$<“0šT‰DÔ$î123}
//Ê@¤·
//Ê@¤ï»ŸŒ×ÌÑ
//Ê@üˆÃ55 ‡A”ž ´@L³Ã@TËÙ@Tàè@|õ÷@ü "è> µA<¼ ÄA,Î ÓAd€
úF<Ã
6Ù6,.¼Ò

 4 Û
4
6Ñ
üà Ç88 ‡A”Ý
´@Lò Ã@TŠ
Ù@TŸ
è@|´
÷@üÎ
"è> È µA<û
ÄA,ÓAd¿úF<#%üÌ:: ‡A”¯´@LÄÃ@TÜÙ@Tñè@|†÷@ü "è> µA<ÍÄA,ßÓAdúF<Ô;˜)+99‘AüÿÉ== ‡A”›´@L°Ã@TÈÙ@TÝè@|ò÷@üŒ"è> µA<¹ÄA,ËÓAdýúF<À>$(*<<ÚAü—Ë@@ ‡A”µ´@LÊÃ@TâÙ@T÷è@|Œ÷@ü¦"è> œµA<ÓÄA,åÓAd—úF<ÚA(*??ÚAü³ÌCC ‡A”Ò´@LçÃ@TÿÙ@T”è@|©÷@üÃ"è> ¸µA<ðÄA,ÓAd´úF<÷D!(*|†TBBÊ@!üÓÅFF ‡A”ë´@L€Ã@T˜Ù@T­è@|Â÷@üÜ"è> صA<‰ÄA,ÓAdÍúF<GH01HG35üµ¸œ œ GenericArrayÁdataÁ2=d×úÙ—¨$E ÁE
GÑkeyÁ¼ü®< 
¨Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
JJKö: „O5ϸ{±E ÅE