ADDED: Support for BLAKE2 algorithms in crypto_data_hash/3.
This commit is contained in:
@@ -37,3 +37,4 @@ unicode_reader = "1.0.0"
|
|||||||
ring = "0.16.13"
|
ring = "0.16.13"
|
||||||
ripemd160 = "0.8.0"
|
ripemd160 = "0.8.0"
|
||||||
sha3 = "0.8.2"
|
sha3 = "0.8.2"
|
||||||
|
blake2 = "0.8.1"
|
||||||
|
|||||||
@@ -158,9 +158,9 @@ crypto_random_byte(B) :- '$crypto_random_byte'(B).
|
|||||||
Options is a list of:
|
Options is a list of:
|
||||||
|
|
||||||
- algorithm(+A)
|
- algorithm(+A)
|
||||||
where A is one of ripemd160, sha256, sha384, sha512,
|
where A is one of ripemd160, sha256, sha384, sha512, sha512_256,
|
||||||
sha512_256, sha3_224, sha3_256, sha3_384, sha3_512, or a
|
sha3_224, sha3_256, sha3_384, sha3_512, blake2s256, blake2b512,
|
||||||
variable. If A is a variable, then it is unified with the
|
or a variable. If A is a variable, then it is unified with the
|
||||||
default algorithm, which is an algorithm that is considered
|
default algorithm, which is an algorithm that is considered
|
||||||
cryptographically secure at the time of this writing.
|
cryptographically secure at the time of this writing.
|
||||||
- encoding(+Encoding)
|
- encoding(+Encoding)
|
||||||
@@ -219,6 +219,8 @@ hash_algorithm(sha3_224).
|
|||||||
hash_algorithm(sha3_256).
|
hash_algorithm(sha3_256).
|
||||||
hash_algorithm(sha3_384).
|
hash_algorithm(sha3_384).
|
||||||
hash_algorithm(sha3_512).
|
hash_algorithm(sha3_512).
|
||||||
|
hash_algorithm(blake2s256).
|
||||||
|
hash_algorithm(blake2b512).
|
||||||
|
|
||||||
|
|
||||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ use ring::rand::{SecureRandom, SystemRandom};
|
|||||||
use ring::{digest,hkdf,pbkdf2,aead,error};
|
use ring::{digest,hkdf,pbkdf2,aead,error};
|
||||||
use ripemd160::{Ripemd160, Digest};
|
use ripemd160::{Ripemd160, Digest};
|
||||||
use sha3::{Sha3_224, Sha3_256, Sha3_384, Sha3_512};
|
use sha3::{Sha3_224, Sha3_256, Sha3_384, Sha3_512};
|
||||||
|
use blake2::{Blake2s, Blake2b};
|
||||||
|
|
||||||
pub fn get_key() -> KeyEvent {
|
pub fn get_key() -> KeyEvent {
|
||||||
let key;
|
let key;
|
||||||
@@ -5236,6 +5237,14 @@ impl MachineState {
|
|||||||
let mut context = Sha3_512::new();
|
let mut context = Sha3_512::new();
|
||||||
context.input(&bytes);
|
context.input(&bytes);
|
||||||
Addr::HeapCell(self.heap.to_list(context.result().as_ref().iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))))
|
Addr::HeapCell(self.heap.to_list(context.result().as_ref().iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))))
|
||||||
|
} else if algorithm_str == "blake2s256" {
|
||||||
|
let mut context = Blake2s::new();
|
||||||
|
context.input(&bytes);
|
||||||
|
Addr::HeapCell(self.heap.to_list(context.result().as_ref().iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))))
|
||||||
|
} else if algorithm_str == "blake2b512" {
|
||||||
|
let mut context = Blake2b::new();
|
||||||
|
context.input(&bytes);
|
||||||
|
Addr::HeapCell(self.heap.to_list(context.result().as_ref().iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))))
|
||||||
} else if algorithm_str == "ripemd160" {
|
} else if algorithm_str == "ripemd160" {
|
||||||
let mut context = Ripemd160::new();
|
let mut context = Ripemd160::new();
|
||||||
context.input(&bytes);
|
context.input(&bytes);
|
||||||
|
|||||||
Reference in New Issue
Block a user