diff options
author | chriseth <c@ethdev.com> | 2016-11-15 06:12:14 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2016-11-15 06:25:12 +0800 |
commit | 2ecf348a9d00af8757efd1310b71c7c7e8f34cb7 (patch) | |
tree | ad37b4c90212875b014a21ebec6c4aa221e40bd7 /libdevcore/SHA3.cpp | |
parent | 8944b092f8de074ec2c98434cb4c76d804146bd6 (diff) | |
download | dexon-solidity-2ecf348a9d00af8757efd1310b71c7c7e8f34cb7.tar dexon-solidity-2ecf348a9d00af8757efd1310b71c7c7e8f34cb7.tar.gz dexon-solidity-2ecf348a9d00af8757efd1310b71c7c7e8f34cb7.tar.bz2 dexon-solidity-2ecf348a9d00af8757efd1310b71c7c7e8f34cb7.tar.lz dexon-solidity-2ecf348a9d00af8757efd1310b71c7c7e8f34cb7.tar.xz dexon-solidity-2ecf348a9d00af8757efd1310b71c7c7e8f34cb7.tar.zst dexon-solidity-2ecf348a9d00af8757efd1310b71c7c7e8f34cb7.zip |
Move swarmHash to its own file.
Diffstat (limited to 'libdevcore/SHA3.cpp')
-rw-r--r-- | libdevcore/SHA3.cpp | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/libdevcore/SHA3.cpp b/libdevcore/SHA3.cpp index 96c7b764..3b12f39f 100644 --- a/libdevcore/SHA3.cpp +++ b/libdevcore/SHA3.cpp @@ -238,47 +238,4 @@ bool keccak256(bytesConstRef _input, bytesRef o_output) return true; } -bytes toLittleEndian(size_t _size) -{ - bytes encoded(8); - for (size_t i = 0; i < 8; ++i) - encoded[i] = (_size >> (8 * i)) & 0xff; - return encoded; -} - -h256 swarmHashSimple(bytesConstRef _data, size_t _size) -{ - return keccak256(toLittleEndian(_size) + _data.toBytes()); -} - -h256 swarmHash(bytes const& _input) -{ - bytes data = _input; - size_t lastChunkSize = 0; - size_t level = 0; - do - { - bytes innerNodes; - size_t i = 0; - do - { - size_t bytes = std::min<size_t>(0x1000, data.size() - i); - size_t size = bytes << (7 * level); - if (i + 0x1000 >= data.size()) - { - // last node - size = level == 0 ? bytes : ((bytes - 32) << (7 * level)) + lastChunkSize; - lastChunkSize = size; - } - innerNodes += swarmHashSimple(bytesConstRef(_input.data() + i, bytes), size).asBytes(); - i += 0x1000; - } - while (i < data.size()); - data = std::move(innerNodes); - level++; - } - while (data.size() > 32); - return h256(data); -} - } |