aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/chacha8.h
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-12-07 13:27:11 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-12-25 19:28:03 +0000
commit1e5491e942d0a372ebebe9ef3d40941fc4a4fbb6 (patch)
treed13f404893c3994db28935da90947fbea1fc7cd5 /src/crypto/chacha8.h
parentMerge pull request #2936 (diff)
downloadmonero-1e5491e942d0a372ebebe9ef3d40941fc4a4fbb6.tar.xz
Add a chacha20 variant to go with chacha8
Diffstat (limited to 'src/crypto/chacha8.h')
-rw-r--r--src/crypto/chacha8.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/src/crypto/chacha8.h b/src/crypto/chacha8.h
deleted file mode 100644
index dcbe6a933..000000000
--- a/src/crypto/chacha8.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2014-2017, The Monero Project
-//
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification, are
-// permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this list of
-// conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice, this list
-// of conditions and the following disclaimer in the documentation and/or other
-// materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be
-// used to endorse or promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
-
-#pragma once
-
-#include <stdint.h>
-#include <stddef.h>
-
-#define CHACHA8_KEY_SIZE 32
-#define CHACHA8_IV_SIZE 8
-
-#if defined(__cplusplus)
-#include <memory.h>
-
-#include "common/memwipe.h"
-#include "hash.h"
-
-namespace crypto {
- extern "C" {
-#endif
- void chacha8(const void* data, size_t length, const uint8_t* key, const uint8_t* iv, char* cipher);
-#if defined(__cplusplus)
- }
-
- using chacha8_key = tools::scrubbed_arr<uint8_t, CHACHA8_KEY_SIZE>;
-
-#pragma pack(push, 1)
- // MS VC 2012 doesn't interpret `class chacha8_iv` as POD in spite of [9.0.10], so it is a struct
- struct chacha8_iv {
- uint8_t data[CHACHA8_IV_SIZE];
- };
-#pragma pack(pop)
-
- static_assert(sizeof(chacha8_key) == CHACHA8_KEY_SIZE && sizeof(chacha8_iv) == CHACHA8_IV_SIZE, "Invalid structure size");
-
- inline void chacha8(const void* data, std::size_t length, const chacha8_key& key, const chacha8_iv& iv, char* cipher) {
- chacha8(data, length, key.data(), reinterpret_cast<const uint8_t*>(&iv), cipher);
- }
-
- inline void generate_chacha8_key(const void *data, size_t size, chacha8_key& key) {
- static_assert(sizeof(chacha8_key) <= sizeof(hash), "Size of hash must be at least that of chacha8_key");
- tools::scrubbed_arr<char, HASH_SIZE> pwd_hash;
- crypto::cn_slow_hash(data, size, pwd_hash.data());
- memcpy(&key, pwd_hash.data(), sizeof(key));
- }
-
- inline void generate_chacha8_key(std::string password, chacha8_key& key) {
- return generate_chacha8_key(password.data(), password.size(), key);
- }
-}
-
-#endif