hash_raw_keccak_sha3.adl
1 /* 2 namespace: Compile 3 expectation: Pass 4 */ 5 6 program test.alpha { 7 // Test all Keccak and SHA3 raw hash variants 8 transition main(input: u64) -> ( 9 field, scalar, address, u128, // Keccak256 raw 10 field, group, i64, // Keccak384 raw 11 field, scalar, u32, // Keccak512 raw 12 field, group, address, // SHA3-256 raw 13 field, scalar, i16 // SHA3-384 & SHA3-512 raw 14 ) { 15 let array_u64: [u64; 2] = [100u64, 200u64]; 16 17 // Keccak256 raw hashes 18 let keccak256_field_raw: field = Keccak256::hash_to_field_raw(input); 19 let keccak256_scalar_raw: scalar = Keccak256::hash_to_scalar_raw(input); 20 let keccak256_addr_raw: address = Keccak256::hash_to_address_raw(array_u64); 21 let keccak256_u128_raw: u128 = Keccak256::hash_to_u128_raw(array_u64); 22 23 // Keccak384 raw hashes 24 let keccak384_field_raw: field = Keccak384::hash_to_field_raw(input); 25 let keccak384_group_raw: group = Keccak384::hash_to_group_raw(input); 26 let keccak384_i64_raw: i64 = Keccak384::hash_to_i64_raw(array_u64); 27 28 // Keccak512 raw hashes 29 let keccak512_field_raw: field = Keccak512::hash_to_field_raw(input); 30 let keccak512_scalar_raw: scalar = Keccak512::hash_to_scalar_raw(input); 31 let keccak512_u32_raw: u32 = Keccak512::hash_to_u32_raw(array_u64); 32 33 // SHA3-256 raw hashes 34 let sha3_256_field_raw: field = SHA3_256::hash_to_field_raw(input); 35 let sha3_256_group_raw: group = SHA3_256::hash_to_group_raw(input); 36 let sha3_256_addr_raw: address = SHA3_256::hash_to_address_raw(array_u64); 37 38 // SHA3-384 & SHA3-512 raw hashes 39 let sha3_384_field_raw: field = SHA3_384::hash_to_field_raw(input); 40 let sha3_512_scalar_raw: scalar = SHA3_512::hash_to_scalar_raw(input); 41 let sha3_512_i16_raw: i16 = SHA3_512::hash_to_i16_raw(array_u64); 42 43 return ( 44 keccak256_field_raw, keccak256_scalar_raw, keccak256_addr_raw, keccak256_u128_raw, 45 keccak384_field_raw, keccak384_group_raw, keccak384_i64_raw, 46 keccak512_field_raw, keccak512_scalar_raw, keccak512_u32_raw, 47 sha3_256_field_raw, sha3_256_group_raw, sha3_256_addr_raw, 48 sha3_384_field_raw, sha3_512_scalar_raw, sha3_512_i16_raw 49 ); 50 } 51 }