Struct monero::cryptonote::hash::Hash
source · Expand description
Result of the Keccak-256 hashing function.
Tuple Fields§
§0: [u8; 32]
Implementations§
source§impl Hash
impl Hash
sourcepub const fn repeat_byte(byte: u8) -> Hash
pub const fn repeat_byte(byte: u8) -> Hash
Returns a new fixed hash where all bits are set to the given byte.
sourcepub fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
pub fn as_bytes_mut(&mut self) -> &mut [u8] ⓘ
Extracts a mutable byte slice containing the entire fixed hash.
sourcepub const fn as_fixed_bytes(&self) -> &[u8; 32]
pub const fn as_fixed_bytes(&self) -> &[u8; 32]
Extracts a reference to the byte array containing the entire fixed hash.
sourcepub fn as_fixed_bytes_mut(&mut self) -> &mut [u8; 32]
pub fn as_fixed_bytes_mut(&mut self) -> &mut [u8; 32]
Extracts a reference to the byte array containing the entire fixed hash.
sourcepub const fn to_fixed_bytes(self) -> [u8; 32]
pub const fn to_fixed_bytes(self) -> [u8; 32]
Returns the inner bytes array.
sourcepub fn as_mut_ptr(&mut self) -> *mut u8
pub fn as_mut_ptr(&mut self) -> *mut u8
Returns a mutable raw pointer to the value.
sourcepub fn assign_from_slice(&mut self, src: &[u8])
pub fn assign_from_slice(&mut self, src: &[u8])
sourcepub fn from_slice(src: &[u8]) -> Self
pub fn from_slice(src: &[u8]) -> Self
source§impl Hash
impl Hash
Utilities using the byteorder
crate.
sourcepub fn to_low_u64_be(&self) -> u64
pub fn to_low_u64_be(&self) -> u64
Returns the lowest 8 bytes interpreted as big-endian.
Note
For hash type with less than 8 bytes the missing bytes are interpreted as being zero.
sourcepub fn to_low_u64_le(&self) -> u64
pub fn to_low_u64_le(&self) -> u64
Returns the lowest 8 bytes interpreted as little-endian.
Note
For hash type with less than 8 bytes the missing bytes are interpreted as being zero.
sourcepub fn to_low_u64_ne(&self) -> u64
pub fn to_low_u64_ne(&self) -> u64
Returns the lowest 8 bytes interpreted as native-endian.
Note
For hash type with less than 8 bytes the missing bytes are interpreted as being zero.
sourcepub fn from_low_u64_be(val: u64) -> Self
pub fn from_low_u64_be(val: u64) -> Self
Creates a new hash type from the given u64
value.
Note
- The given
u64
value is interpreted as big endian. - Ignores the most significant bits of the given value if the hash type has less than 8 bytes.
sourcepub fn from_low_u64_le(val: u64) -> Self
pub fn from_low_u64_le(val: u64) -> Self
Creates a new hash type from the given u64
value.
Note
- The given
u64
value is interpreted as little endian. - Ignores the most significant bits of the given value if the hash type has less than 8 bytes.
sourcepub fn from_low_u64_ne(val: u64) -> Self
pub fn from_low_u64_ne(val: u64) -> Self
Creates a new hash type from the given u64
value.
Note
- The given
u64
value is interpreted as native endian. - Ignores the most significant bits of the given value if the hash type has less than 8 bytes.
source§impl Hash
impl Hash
Utilities using the rand
crate.
sourcepub fn randomize_using<R>(&mut self, rng: &mut R)where
R: Rng + ?Sized,
pub fn randomize_using<R>(&mut self, rng: &mut R)where
R: Rng + ?Sized,
Assign self
to a cryptographically random value using the
given random number generator.
sourcepub fn random_using<R>(rng: &mut R) -> Selfwhere
R: Rng + ?Sized,
pub fn random_using<R>(rng: &mut R) -> Selfwhere
R: Rng + ?Sized,
Create a new hash with cryptographically random content using the given random number generator.
source§impl Hash
impl Hash
sourcepub fn new(input: impl AsRef<[u8]>) -> Hash
pub fn new(input: impl AsRef<[u8]>) -> Hash
Hash a stream of bytes with the Keccak-256 hash function.
sourcepub fn as_scalar(&self) -> PrivateKey
pub fn as_scalar(&self) -> PrivateKey
Return the scalar of the hash as a little endian number modulo l
(curve order).
sourcepub fn hash_to_scalar(input: impl AsRef<[u8]>) -> PrivateKey
pub fn hash_to_scalar(input: impl AsRef<[u8]>) -> PrivateKey
Hash a stream of bytes and return its scalar representation.
The hash function H
is the same Keccak function that is used in CryptoNote. When the
value of the hash function is interpreted as a scalar, it is converted into a little-endian
integer and taken modulo l
.
Trait Implementations§
source§impl<'r> BitAndAssign<&'r Hash> for Hash
impl<'r> BitAndAssign<&'r Hash> for Hash
source§fn bitand_assign(&mut self, rhs: &'r Hash)
fn bitand_assign(&mut self, rhs: &'r Hash)
&=
operation. Read moresource§impl BitAndAssign<Hash> for Hash
impl BitAndAssign<Hash> for Hash
source§fn bitand_assign(&mut self, rhs: Hash)
fn bitand_assign(&mut self, rhs: Hash)
&=
operation. Read moresource§impl<'r> BitOrAssign<&'r Hash> for Hash
impl<'r> BitOrAssign<&'r Hash> for Hash
source§fn bitor_assign(&mut self, rhs: &'r Hash)
fn bitor_assign(&mut self, rhs: &'r Hash)
|=
operation. Read moresource§impl BitOrAssign<Hash> for Hash
impl BitOrAssign<Hash> for Hash
source§fn bitor_assign(&mut self, rhs: Hash)
fn bitor_assign(&mut self, rhs: Hash)
|=
operation. Read moresource§impl<'r> BitXorAssign<&'r Hash> for Hash
impl<'r> BitXorAssign<&'r Hash> for Hash
source§fn bitxor_assign(&mut self, rhs: &'r Hash)
fn bitxor_assign(&mut self, rhs: &'r Hash)
^=
operation. Read moresource§impl BitXorAssign<Hash> for Hash
impl BitXorAssign<Hash> for Hash
source§fn bitxor_assign(&mut self, rhs: Hash)
fn bitxor_assign(&mut self, rhs: Hash)
^=
operation. Read moresource§impl<'de> Deserialize<'de> for Hash
impl<'de> Deserialize<'de> for Hash
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Distribution<Hash> for Standard
impl Distribution<Hash> for Standard
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Hash
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Hash
T
, using rng
as the source of randomness.source§impl Ord for Hash
impl Ord for Hash
source§impl PartialEq<Hash> for Hash
impl PartialEq<Hash> for Hash
source§impl PartialOrd<Hash> for Hash
impl PartialOrd<Hash> for Hash
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl Copy for Hash
impl Eq for Hash
Auto Trait Implementations§
impl RefUnwindSafe for Hash
impl Send for Hash
impl Sync for Hash
impl Unpin for Hash
impl UnwindSafe for Hash
Blanket Implementations§
source§impl<T> ToHex for Twhere
T: AsRef<[u8]>,
impl<T> ToHex for Twhere
T: AsRef<[u8]>,
source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
self
into the result. Lower case
letters are used (e.g. f9b4ca
)source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
self
into the result. Upper case
letters are used (e.g. F9B4CA
)