virgil-crypto 2.3.0 → 3.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -0
- data/.gitmodules +0 -0
- data/.travis.yml +13 -0
- data/Gemfile +0 -0
- data/README.md +113 -9
- data/Rakefile +0 -0
- data/ext/native/src/.clang-format +37 -0
- data/ext/native/src/.gitignore +3 -0
- data/ext/native/src/.travis.yml +2 -1
- data/ext/native/src/CMakeLists.txt +66 -63
- data/ext/native/src/ChangeLog +114 -2
- data/ext/native/src/Dockerfile_Golang +29 -8
- data/ext/native/src/Jenkinsfile +61 -50
- data/ext/native/src/LICENSE +0 -0
- data/ext/native/src/README.md +137 -167
- data/ext/native/src/VERSION +1 -1
- data/ext/native/src/benchmark.md +140 -0
- data/ext/native/src/benchmark/CMakeLists.txt +0 -0
- data/ext/native/src/benchmark/benchmark_cipher.cxx +0 -0
- data/ext/native/src/benchmark/benchmark_hash.cxx +0 -0
- data/ext/native/src/benchmark/benchmark_keys.cxx +0 -0
- data/ext/native/src/benchmark/benchmark_pythia.cxx +61 -0
- data/ext/native/src/benchmark/benchmark_random.cxx +0 -0
- data/ext/native/src/benchmark/benchmark_signer.cxx +0 -0
- data/ext/native/src/ci/install-dependencies.sh +8 -12
- data/ext/native/src/ci/publish-docs.sh +107 -22
- data/ext/native/src/ci/travis-deployment-key.enc +0 -0
- data/ext/native/src/cmake/TransitiveArgs.cmake +78 -0
- data/ext/native/src/cmake/TransitiveToolchainArgs.cmake +105 -0
- data/ext/native/src/cmake/add_mono_metadata.cmake +103 -0
- data/ext/native/src/cmake/apple.cmake +56 -11
- data/ext/native/src/cmake/aux_source_directory_to_file.cmake +0 -0
- data/ext/native/src/cmake/check_pointer_size.cmake +0 -0
- data/ext/native/src/cmake/copy_all_files.cmake +0 -0
- data/ext/native/src/cmake/file_regex_replace.cmake +0 -0
- data/ext/native/src/cmake/find_host_utils.cmake +0 -0
- data/ext/native/src/cmake/uppercase_first_char.cmake +0 -0
- data/ext/native/src/cmake/uppercase_namespaces.cmake +3 -0
- data/ext/native/src/cmake/virgil_depends.cmake +0 -0
- data/ext/native/src/cmake/virgil_depends_local.cmake +2 -0
- data/ext/native/src/docs/.gitignore +0 -0
- data/ext/native/src/lib/CMakeLists.txt +59 -1
- data/ext/native/src/lib/Doxyfile.in +1 -1
- data/ext/native/src/lib/Info.plist.in +0 -0
- data/ext/native/src/lib/cmake/config.cmake.in +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilByteArrayUtils.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilChunkCipher.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilCipherBase.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilContentInfo.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilCrypto.h +13 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilCryptoError.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilCustomParams.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilKeyPair.h +30 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilSignerBase.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilStreamCipher.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilStreamSigner.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilTinyCipher.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/VirgilVersion.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/VirgilAsymmetricCipher.h +17 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/VirgilHKDF.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/VirgilPBKDF.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/VirgilSystemCryptoError.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/asn1/VirgilAsn1Compatible.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/cms/VirgilCMSContent.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/cms/VirgilCMSContentInfo.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/cms/VirgilCMSEncryptedContent.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/cms/VirgilCMSEnvelopedData.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/cms/VirgilCMSKeyTransRecipient.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/foundation/cms/VirgilCMSPasswordRecipient.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFS.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSEncryptedMessage.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSInitiatorPrivateInfo.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSInitiatorPublicInfo.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSPrivateKey.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSPublicKey.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSResponderPrivateInfo.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSResponderPublicInfo.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pfs/VirgilPFSSession.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/primitive/VirgilOperationCipher.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/primitive/VirgilOperationDH.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/primitive/VirgilOperationHash.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/primitive/VirgilOperationKDF.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/primitive/VirgilOperationRandom.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/VirgilPythia.h +181 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/VirgilPythiaBlindResult.h +89 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/VirgilPythiaContext.h +72 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/VirgilPythiaError.h +161 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/VirgilPythiaProveResult.h +89 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/VirgilPythiaTransformResult.h +91 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/VirgilPythiaTransformationKeyPair.h +87 -0
- data/ext/native/src/lib/include/virgil/crypto/pythia/virgil_pythia_c.h +203 -0
- data/ext/native/src/lib/include/virgil/crypto/stream/VirgilBytesDataSink.h +0 -0
- data/ext/native/src/lib/include/virgil/crypto/stream/VirgilBytesDataSource.h +0 -0
- data/ext/native/src/lib/mainpage.dox +6 -0
- data/ext/native/src/lib/module.modulemap +7 -0
- data/ext/native/src/lib/src/VirgilAsn1Alg.cxx +0 -0
- data/ext/native/src/lib/src/VirgilAsn1Alg.h +0 -0
- data/ext/native/src/lib/src/VirgilAsn1Compatible.cxx +0 -0
- data/ext/native/src/lib/src/VirgilAsymmetricCipher.cxx +82 -0
- data/ext/native/src/lib/src/VirgilByteArrayUtils.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCMSContent.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCMSContentInfo.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCMSEncryptedContent.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCMSEnvelopedData.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCMSKeyTransRecipient.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCMSPasswordRecipient.cxx +0 -0
- data/ext/native/src/lib/src/VirgilChunkCipher.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCipherBase.cxx +0 -0
- data/ext/native/src/lib/src/VirgilConfig.cxx +51 -0
- data/ext/native/src/lib/src/VirgilConfig.h.in +43 -1
- data/ext/native/src/lib/src/VirgilContentInfo.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCryptoError.cxx +0 -0
- data/ext/native/src/lib/src/VirgilCustomParams.cxx +0 -0
- data/ext/native/src/lib/src/VirgilDataSink.cxx +0 -0
- data/ext/native/src/lib/src/VirgilHKDF.cxx +0 -0
- data/ext/native/src/lib/src/VirgilKeyPair.cxx +19 -0
- data/ext/native/src/lib/src/VirgilOID.h +0 -0
- data/ext/native/src/lib/src/VirgilPBKDF.cxx +0 -0
- data/ext/native/src/lib/src/VirgilSignerBase.cxx +0 -0
- data/ext/native/src/lib/src/VirgilStreamCipher.cxx +0 -0
- data/ext/native/src/lib/src/VirgilStreamSigner.cxx +0 -0
- data/ext/native/src/lib/src/VirgilSystemCryptoError.cxx +0 -0
- data/ext/native/src/lib/src/VirgilTagFilter.cxx +0 -0
- data/ext/native/src/lib/src/VirgilTagFilter.h +0 -0
- data/ext/native/src/lib/src/VirgilTinyCipher.cxx +0 -0
- data/ext/native/src/lib/src/VirgilVersion.cxx.in +0 -0
- data/ext/native/src/lib/src/mbedtls_context.h +0 -0
- data/ext/native/src/lib/src/mbedtls_context_policy_spec.h +0 -0
- data/ext/native/src/lib/src/mbedtls_type_utils.h +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFS.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSEncryptedMessage.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSInitiatorPrivateInfo.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSInitiatorPublicInfo.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSPrivateKey.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSPublicKey.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSResponderPrivateInfo.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSResponderPublicInfo.cxx +0 -0
- data/ext/native/src/lib/src/pfs/VirgilPFSSession.cxx +0 -0
- data/ext/native/src/lib/src/primitive/VirgilOperationCipher.cxx +0 -0
- data/ext/native/src/lib/src/primitive/VirgilOperationDH.cxx +0 -0
- data/ext/native/src/lib/src/primitive/VirgilOperationHash.cxx +0 -0
- data/ext/native/src/lib/src/primitive/VirgilOperationKDF.cxx +0 -0
- data/ext/native/src/lib/src/primitive/VirgilOperationRandom.cxx +0 -0
- data/ext/native/src/lib/src/pythia/VirgilPythia.cxx +202 -0
- data/ext/native/src/lib/src/pythia/VirgilPythiaContext.cxx +116 -0
- data/ext/native/src/lib/src/pythia/VirgilPythiaError.cxx +58 -0
- data/ext/native/src/lib/src/pythia/virgil_pythia_c.cxx +129 -0
- data/ext/native/src/lib/src/stream/VirgilBytesDataSink.cxx +0 -0
- data/ext/native/src/lib/src/stream/VirgilBytesDataSource.cxx +0 -0
- data/ext/native/src/lib/src/utils.h +3 -2
- data/ext/native/src/libs_ext/mbedtls/configs/config.h +0 -0
- data/ext/native/src/libs_ext/mbedtls/configs/config_desktop.h +0 -0
- data/ext/native/src/libs_ext/mbedtls/mbedtls.cmake +0 -0
- data/ext/native/src/{cmake/cmake_args.cmake → libs_ext/pythia/pythia.cmake} +24 -28
- data/ext/native/src/libs_ext/rapidjson/rapidjson.cmake +0 -0
- data/ext/native/src/libs_ext/tinyformat/cmake/config.cmake.in +0 -0
- data/ext/native/src/libs_ext/tinyformat/tinyformat.cmake +0 -0
- data/ext/native/src/migration-2.0.md +0 -0
- data/ext/native/src/tests/CMakeLists.txt +0 -0
- data/ext/native/src/tests/catch.hpp +0 -0
- data/ext/native/src/tests/data/test_data_pfs_with_otc.json +0 -0
- data/ext/native/src/tests/data/test_data_pfs_without_otc.json +0 -0
- data/ext/native/src/tests/deterministic_keys.h +293 -0
- data/ext/native/src/tests/rsa_keys.h +229 -123
- data/ext/native/src/tests/test_asn1_writer.cxx +0 -0
- data/ext/native/src/tests/test_asymmetric_cipher.cxx +65 -0
- data/ext/native/src/tests/test_base64.cxx +0 -0
- data/ext/native/src/tests/test_byte_array_utils.cxx +0 -0
- data/ext/native/src/tests/test_chunk_cipher.cxx +0 -0
- data/ext/native/src/tests/test_cipher.cxx +8 -4
- data/ext/native/src/tests/test_cipher_base.cxx +0 -0
- data/ext/native/src/tests/test_contract_copy_move.cxx +4 -1
- data/ext/native/src/tests/test_data_pfs.h +0 -0
- data/ext/native/src/tests/test_hash.cxx +0 -0
- data/ext/native/src/tests/test_hkdf.cxx +0 -0
- data/ext/native/src/tests/test_key_pair.cxx +65 -3
- data/ext/native/src/tests/test_pbe.cxx +0 -0
- data/ext/native/src/tests/test_pbkdf.cxx +0 -0
- data/ext/native/src/tests/test_pfs.cxx +0 -0
- data/ext/native/src/tests/test_pythia.cxx +157 -0
- data/ext/native/src/tests/test_random.cxx +0 -0
- data/ext/native/src/tests/test_runner.cxx +0 -0
- data/ext/native/src/tests/test_signer.cxx +0 -0
- data/ext/native/src/tests/test_stream_cipher.cxx +0 -0
- data/ext/native/src/tests/test_stream_data_source.cxx +0 -0
- data/ext/native/src/tests/test_symmetric_cipher.cxx +0 -0
- data/ext/native/src/tests/test_tag_filter.cxx +0 -0
- data/ext/native/src/tests/test_tiny_cipher.cxx +0 -0
- data/ext/native/src/utils/build.bat +0 -0
- data/ext/native/src/utils/build.sh +238 -68
- data/ext/native/src/utils/zip.vbs +0 -0
- data/ext/native/src/virgil-crypto.sublime-project +15 -0
- data/ext/native/src/wrappers/asmjs/CMakeLists.txt +0 -8
- data/ext/native/src/wrappers/emsdk/CMakeLists.txt +2 -2
- data/ext/native/src/wrappers/emsdk/error.js +0 -0
- data/ext/native/src/wrappers/emsdk/example.html +152 -31
- data/ext/native/src/wrappers/emsdk/helpers.js +140 -135
- data/ext/native/src/wrappers/emsdk/patch_embind.pl +0 -0
- data/ext/native/src/wrappers/emsdk/wrapper.cxx +55 -0
- data/ext/native/src/wrappers/go/CMakeLists.txt +6 -5
- data/ext/native/src/wrappers/java/CMakeLists.txt +27 -4
- data/ext/native/src/wrappers/java/src/JniLoader.java +167 -0
- data/ext/native/src/wrappers/java/src/VirgilStreamDataSink.java +0 -0
- data/ext/native/src/wrappers/java/src/VirgilStreamDataSource.java +0 -0
- data/ext/native/src/wrappers/net/CMakeLists.txt +41 -8
- data/ext/native/src/wrappers/net/cmake/UseCSharp.cmake +5 -5
- data/ext/native/src/wrappers/net/src/VirgilStreamDataSink.cs +0 -0
- data/ext/native/src/wrappers/net/src/VirgilStreamDataSource.cs +0 -0
- data/ext/native/src/wrappers/nodejs/checksum.txt +66 -0
- data/ext/native/src/wrappers/php/CMakeLists.txt +2 -5
- data/ext/native/src/wrappers/php/tests/CMakeLists.txt +6 -0
- data/ext/native/src/wrappers/php/tests/VirgilChunkCipher_Test.php.in +0 -0
- data/ext/native/src/wrappers/php/tests/VirgilCustomParams_Test.php.in +0 -0
- data/ext/native/src/wrappers/php/tests/VirgilKDF_Test.php.in +0 -0
- data/ext/native/src/wrappers/php/tests/VirgilPBE_Test.php.in +0 -0
- data/ext/native/src/wrappers/php/tests/VirgilPBKDF_Test.php.in +0 -0
- data/ext/native/src/wrappers/php/tests/VirgilPythia_Test.php.in +87 -0
- data/ext/native/src/wrappers/php/tests/VirgilStreamCipher_Test.php.in +0 -0
- data/ext/native/src/wrappers/php/tests/VirgilStreamSigner_Test.php.in +0 -0
- data/ext/native/src/wrappers/php/tests/VirgilVersion_Test.php.in +0 -0
- data/ext/native/src/wrappers/python/CMakeLists.txt +4 -1
- data/ext/native/src/wrappers/ruby/CMakeLists.txt +4 -1
- data/ext/native/src/wrappers/swig/common.i +0 -0
- data/ext/native/src/wrappers/swig/csharp/FixedArray.i +0 -0
- data/ext/native/src/wrappers/swig/csharp/VirgilByteArray.i +0 -0
- data/ext/native/src/wrappers/swig/csharp/common.i +0 -0
- data/ext/native/src/wrappers/swig/csharp/csharphead.swg.in +0 -0
- data/ext/native/src/wrappers/swig/go/common.i.in +7 -0
- data/ext/native/src/wrappers/swig/java/VirgilByteArray.i +0 -0
- data/ext/native/src/wrappers/swig/java/common.i +6 -0
- data/ext/native/src/wrappers/swig/php/common.i +0 -0
- data/ext/native/src/wrappers/swig/php/php7/VirgilByteArray.i +0 -0
- data/ext/native/src/wrappers/swig/util.i +0 -0
- data/ext/native/src/wrappers/swig/wrapper.i.in +18 -7
- data/ext/native/src/wrappers/webasm/CMakeLists.txt +0 -8
- data/ext/rakefile.rb +77 -56
- data/lib/virgil/crypto.rb +53 -9
- data/lib/virgil/crypto/access_token_signer.rb +79 -0
- data/lib/virgil/crypto/bytes.rb +81 -17
- data/lib/virgil/crypto/card_crypto.rb +115 -0
- data/lib/virgil/crypto/crypto_exception.rb +40 -0
- data/lib/virgil/crypto/hash_algorithm.rb +82 -0
- data/lib/virgil/crypto/key_pair.rb +41 -0
- data/lib/virgil/crypto/key_pair_type.rb +98 -0
- data/lib/virgil/crypto/private_key.rb +40 -0
- data/lib/virgil/crypto/private_key_exporter.rb +67 -0
- data/lib/virgil/crypto/public_key.rb +40 -0
- data/lib/virgil/crypto/{virgil_stream_data_sink.rb → stream_data_sink.rb} +12 -12
- data/lib/virgil/crypto/{virgil_stream_data_source.rb → stream_data_source.rb} +12 -12
- data/lib/virgil/crypto/validation.rb +59 -0
- data/lib/virgil/crypto/version.rb +35 -1
- data/lib/virgil/crypto/virgil_crypto.rb +595 -0
- data/lib/virgil/native_crypto.rb +80 -60
- data/lib/virgil/os.rb +40 -6
- data/secrets.tar.enc +0 -0
- data/virgil-crypto.gemspec +6 -7
- metadata +62 -12
- data/ext/native/src/cmake/android.toolchain.cmake +0 -1697
@@ -0,0 +1,58 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (C) 2015-2018 Virgil Security Inc.
|
3
|
+
*
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* (1) Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
*
|
13
|
+
* (2) Redistributions in binary form must reproduce the above copyright
|
14
|
+
* notice, this list of conditions and the following disclaimer in
|
15
|
+
* the documentation and/or other materials provided with the
|
16
|
+
* distribution.
|
17
|
+
*
|
18
|
+
* (3) Neither the name of the copyright holder nor the names of its
|
19
|
+
* contributors may be used to endorse or promote products derived from
|
20
|
+
* this software without specific prior written permission.
|
21
|
+
*
|
22
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR
|
23
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
24
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
25
|
+
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
26
|
+
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
27
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
28
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
29
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
30
|
+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
31
|
+
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
33
|
+
*
|
34
|
+
* Lead Maintainer: Virgil Security Inc. <support@virgilsecurity.com>
|
35
|
+
*/
|
36
|
+
|
37
|
+
#include <virgil/crypto/pythia/VirgilPythiaError.h>
|
38
|
+
|
39
|
+
#include <array>
|
40
|
+
#include <mbedtls/error.h>
|
41
|
+
|
42
|
+
using virgil::crypto::pythia::VirgilPythiaErrorCategory;
|
43
|
+
|
44
|
+
|
45
|
+
const VirgilPythiaErrorCategory& virgil::crypto::pythia::pythia_error_category() noexcept {
|
46
|
+
static VirgilPythiaErrorCategory inst;
|
47
|
+
return inst;
|
48
|
+
}
|
49
|
+
|
50
|
+
const char* VirgilPythiaErrorCategory::name() const noexcept {
|
51
|
+
return "virgil/crypto/pythia";
|
52
|
+
}
|
53
|
+
|
54
|
+
std::string VirgilPythiaErrorCategory::message(int ev) const noexcept {
|
55
|
+
return std::string(
|
56
|
+
"Pythia library has return error. This is unexpected behaviour, please contact "
|
57
|
+
"support team.");
|
58
|
+
}
|
@@ -0,0 +1,129 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (C) 2015-2018 Virgil Security Inc.
|
3
|
+
*
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* (1) Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
*
|
13
|
+
* (2) Redistributions in binary form must reproduce the above copyright
|
14
|
+
* notice, this list of conditions and the following disclaimer in
|
15
|
+
* the documentation and/or other materials provided with the
|
16
|
+
* distribution.
|
17
|
+
*
|
18
|
+
* (3) Neither the name of the copyright holder nor the names of its
|
19
|
+
* contributors may be used to endorse or promote products derived from
|
20
|
+
* this software without specific prior written permission.
|
21
|
+
*
|
22
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR
|
23
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
24
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
25
|
+
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
26
|
+
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
27
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
28
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
29
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
30
|
+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
31
|
+
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
32
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
33
|
+
*
|
34
|
+
* Lead Maintainer: Virgil Security Inc. <support@virgilsecurity.com>
|
35
|
+
*/
|
36
|
+
|
37
|
+
#if VIRGIL_CRYPTO_FEATURE_PYTHIA
|
38
|
+
|
39
|
+
#include <virgil/crypto/pythia/virgil_pythia_c.h>
|
40
|
+
|
41
|
+
#include <virgil/crypto/pythia/VirgilPythiaContext.h>
|
42
|
+
|
43
|
+
#include <pythia/pythia_wrapper.h>
|
44
|
+
|
45
|
+
using virgil::crypto::pythia::VirgilPythiaContext;
|
46
|
+
|
47
|
+
|
48
|
+
int virgil_pythia_blind(
|
49
|
+
const pythia_buf_t* password, pythia_buf_t* blinded_password,
|
50
|
+
pythia_buf_t* blinding_secret) {
|
51
|
+
|
52
|
+
VirgilPythiaContext context;
|
53
|
+
return pythia_w_blind(password, blinded_password, blinding_secret);
|
54
|
+
}
|
55
|
+
|
56
|
+
int virgil_pythia_deblind(
|
57
|
+
const pythia_buf_t* transformed_password, const pythia_buf_t* blinding_secret,
|
58
|
+
pythia_buf_t* deblinded_password) {
|
59
|
+
|
60
|
+
VirgilPythiaContext context;
|
61
|
+
return pythia_w_deblind(transformed_password, blinding_secret, deblinded_password);
|
62
|
+
}
|
63
|
+
|
64
|
+
int virgil_pythia_compute_transformation_key_pair(const pythia_buf_t* transformation_key_id,
|
65
|
+
const pythia_buf_t* pythia_secret,
|
66
|
+
const pythia_buf_t* pythia_scope_secret,
|
67
|
+
pythia_buf_t* transformation_private_key,
|
68
|
+
pythia_buf_t* transformation_public_key) {
|
69
|
+
|
70
|
+
VirgilPythiaContext context;
|
71
|
+
return pythia_w_compute_transformation_key_pair(
|
72
|
+
transformation_key_id, pythia_secret, pythia_scope_secret,
|
73
|
+
transformation_private_key, transformation_public_key);
|
74
|
+
}
|
75
|
+
|
76
|
+
int virgil_pythia_transform(
|
77
|
+
const pythia_buf_t* blinded_password, const pythia_buf_t* tweak,
|
78
|
+
const pythia_buf_t* transformation_private_key,
|
79
|
+
pythia_buf_t* transformed_password, pythia_buf_t* transformed_tweak) {
|
80
|
+
|
81
|
+
VirgilPythiaContext context;
|
82
|
+
return pythia_w_transform(
|
83
|
+
blinded_password, tweak, transformation_private_key,
|
84
|
+
transformed_password, transformed_tweak);
|
85
|
+
}
|
86
|
+
|
87
|
+
int virgil_pythia_prove(
|
88
|
+
const pythia_buf_t* transformed_password, const pythia_buf_t* blinded_password,
|
89
|
+
const pythia_buf_t* transformed_tweak, const pythia_buf_t* transformation_private_key,
|
90
|
+
const pythia_buf_t* transformation_public_key, pythia_buf_t* proof_value_c, pythia_buf_t* proof_value_u) {
|
91
|
+
|
92
|
+
VirgilPythiaContext context;
|
93
|
+
return pythia_w_prove(
|
94
|
+
transformed_password, blinded_password, transformed_tweak, transformation_private_key,
|
95
|
+
transformation_public_key, proof_value_c, proof_value_u);
|
96
|
+
}
|
97
|
+
|
98
|
+
int virgil_pythia_verify(
|
99
|
+
const pythia_buf_t* transformed_password, const pythia_buf_t* blinded_password,
|
100
|
+
const pythia_buf_t* tweak, const pythia_buf_t* transformation_public_key,
|
101
|
+
const pythia_buf_t* proof_value_c, const pythia_buf_t* proof_value_u, int* verified) {
|
102
|
+
|
103
|
+
VirgilPythiaContext context;
|
104
|
+
return pythia_w_verify(
|
105
|
+
transformed_password, blinded_password, tweak, transformation_public_key, proof_value_c,
|
106
|
+
proof_value_u, verified);
|
107
|
+
}
|
108
|
+
|
109
|
+
int virgil_pythia_get_password_update_token(
|
110
|
+
const pythia_buf_t* previous_transformation_private_key,
|
111
|
+
const pythia_buf_t* new_transformation_private_key,
|
112
|
+
pythia_buf_t* password_update_token) {
|
113
|
+
|
114
|
+
VirgilPythiaContext context;
|
115
|
+
return pythia_w_get_password_update_token(
|
116
|
+
previous_transformation_private_key, new_transformation_private_key,
|
117
|
+
password_update_token);
|
118
|
+
}
|
119
|
+
|
120
|
+
int virgil_pythia_update_deblinded_with_token(
|
121
|
+
const pythia_buf_t* deblinded_password, const pythia_buf_t* password_update_token,
|
122
|
+
pythia_buf_t* updated_deblinded_password) {
|
123
|
+
|
124
|
+
VirgilPythiaContext context;
|
125
|
+
return pythia_w_update_deblinded_with_token(
|
126
|
+
deblinded_password, password_update_token, updated_deblinded_password);
|
127
|
+
}
|
128
|
+
|
129
|
+
#endif /* VIRGIL_CRYPTO_FEATURE_PYTHIA */
|
File without changes
|
File without changes
|
@@ -44,11 +44,12 @@
|
|
44
44
|
#if !defined(_MSC_VER) || _MSC_VER < 1800
|
45
45
|
|
46
46
|
#include <memory>
|
47
|
+
#include <utility>
|
47
48
|
|
48
49
|
namespace std {
|
49
50
|
template<typename T, typename... Args>
|
50
|
-
|
51
|
-
return
|
51
|
+
unique_ptr<T> make_unique(Args&& ... args) {
|
52
|
+
return unique_ptr<T>(new T(forward<Args>(args)...));
|
52
53
|
}
|
53
54
|
}
|
54
55
|
|
File without changes
|
File without changes
|
File without changes
|
@@ -34,31 +34,27 @@
|
|
34
34
|
# Lead Maintainer: Virgil Security Inc. <support@virgilsecurity.com>
|
35
35
|
#
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
list (APPEND ${cmake_var} -D${ARG_NAME}:${ARG_TYPE}=${ARG_VALUE})
|
62
|
-
|
63
|
-
set (${cmake_var} ${${cmake_var}} PARENT_SCOPE)
|
64
|
-
endfunction (APPEND_CMAKE_ARG)
|
37
|
+
cmake_minimum_required (VERSION @CMAKE_VERSION@ FATAL_ERROR)
|
38
|
+
|
39
|
+
project ("@VIRGIL_DEPENDS_PACKAGE_NAME@-depends")
|
40
|
+
|
41
|
+
include (ExternalProject)
|
42
|
+
|
43
|
+
# Configure additional CMake parameters
|
44
|
+
file (APPEND "@VIRGIL_DEPENDS_ARGS_FILE@"
|
45
|
+
"set (RELIC_USE_PTHREAD @VIRGIL_CRYPTO_FEATURE_PYTHIA_MT@ CACHE INTERNAL \"\")\n"
|
46
|
+
"set (RELIC_USE_EXT_RNG ON CACHE INTERNAL \"\")\n"
|
47
|
+
"set (ENABLE_TESTING OFF CACHE INTERNAL \"\")\n"
|
48
|
+
"set (CMAKE_INSTALL_LIBDIR lib CACHE INTERNAL \"\")\n"
|
49
|
+
)
|
50
|
+
|
51
|
+
ExternalProject_Add (${PROJECT_NAME}
|
52
|
+
DOWNLOAD_DIR "@VIRGIL_DEPENDS_PACKAGE_DOWNLOAD_DIR@"
|
53
|
+
GIT_REPOSITORY https://github.com/VirgilSecurity/pythia.git
|
54
|
+
GIT_TAG 2a10901d76658a606c70b2c5359dd31b16953b93
|
55
|
+
PREFIX "@VIRGIL_DEPENDS_PACKAGE_BUILD_DIR@"
|
56
|
+
CMAKE_ARGS "@VIRGIL_DEPENDS_CMAKE_ARGS@"
|
57
|
+
)
|
58
|
+
|
59
|
+
add_custom_target ("${PROJECT_NAME}-build" ALL COMMENT "Build package ${PROJECT_NAME}")
|
60
|
+
add_dependencies ("${PROJECT_NAME}-build" ${PROJECT_NAME})
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,293 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (C) 2015-2016 Virgil Security Inc.
|
3
|
+
*
|
4
|
+
* Lead Maintainer: Virgil Security Inc. <support@virgilsecurity.com>
|
5
|
+
*
|
6
|
+
* All rights reserved.
|
7
|
+
*
|
8
|
+
* Redistribution and use in source and binary forms, with or without
|
9
|
+
* modification, are permitted provided that the following conditions are
|
10
|
+
* met:
|
11
|
+
*
|
12
|
+
* (1) Redistributions of source code must retain the above copyright
|
13
|
+
* notice, this list of conditions and the following disclaimer.
|
14
|
+
*
|
15
|
+
* (2) Redistributions in binary form must reproduce the above copyright
|
16
|
+
* notice, this list of conditions and the following disclaimer in
|
17
|
+
* the documentation and/or other materials provided with the
|
18
|
+
* distribution.
|
19
|
+
*
|
20
|
+
* (3) Neither the name of the copyright holder nor the names of its
|
21
|
+
* contributors may be used to endorse or promote products derived from
|
22
|
+
* this software without specific prior written permission.
|
23
|
+
*
|
24
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR
|
25
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
26
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
27
|
+
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
28
|
+
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
29
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
30
|
+
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
31
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
32
|
+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
33
|
+
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
34
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
35
|
+
*/
|
36
|
+
|
37
|
+
/**
|
38
|
+
* @file rsa_keys.h
|
39
|
+
* @brief Hardcoded constants of deterministic keys.
|
40
|
+
*
|
41
|
+
* Deterministic keys can be generated via 'VirgilAsymmentricCipher::genKeyPairFromKeyMaterial()' method and
|
42
|
+
* 'VirgilKeyPair::genKeyPairFromKeyMaterial()' method.
|
43
|
+
*
|
44
|
+
* @note Key Material that was used to generated this keys is 512 byte array of 0xAB.
|
45
|
+
*/
|
46
|
+
|
47
|
+
#ifndef VIRGIL_CRYPTO_TEST_DETERMINISTIC_KEYS_H
|
48
|
+
#define VIRGIL_CRYPTO_TEST_DETERMINISTIC_KEYS_H
|
49
|
+
|
50
|
+
|
51
|
+
constexpr char kDeterministic_KeyMaterial[] =
|
52
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
53
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
54
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
55
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
56
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
57
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
58
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
59
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
60
|
+
"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB"
|
61
|
+
"ABABABABABABABABABABABABABABABABAB";
|
62
|
+
|
63
|
+
constexpr char kDeterministic_RSA_256_Public[] =
|
64
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
65
|
+
"MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAPLAt35Fu5IUBPwiWpg+Tm/dvEeCmC+E\n"
|
66
|
+
"O6tYbFB5L/eFAgMBAAE=\n"
|
67
|
+
"-----END PUBLIC KEY-----\n";
|
68
|
+
|
69
|
+
constexpr char kDeterministic_RSA_256_Private[] =
|
70
|
+
"-----BEGIN RSA PRIVATE KEY-----\n"
|
71
|
+
"MIGqAgEAAiEA8sC3fkW7khQE/CJamD5Ob928R4KYL4Q7q1hsUHkv94UCAwEAAQIg\n"
|
72
|
+
"JDBKqo5mug41+Ah/DPcs5gIKh11bkbxbfWQBRkObvHkCEQD5+UWLcmapCpsVWxN2\n"
|
73
|
+
"NVoPAhEA+JrheiLtEfm66C3YNou5KwIRAPmxA8WZ3W/m9ygq1FLUUgMCEEppEVQd\n"
|
74
|
+
"YBghR3B3SGALMkECEB3Y4ry/oh3PUw+3u/7f7Qs=\n"
|
75
|
+
"-----END RSA PRIVATE KEY-----\n";
|
76
|
+
|
77
|
+
|
78
|
+
constexpr char kDeterministic_RSA_8192_Public[] =
|
79
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
80
|
+
"MIIEIjANBgkqhkiG9w0BAQEFAAOCBA8AMIIECgKCBAEA58IFLmkTgewY9qQM/+4g\n"
|
81
|
+
"MNAg+hchp5DtifltVXImahSr3H3god7mMO9BENV+eoGdgGqPcMf7OwFGJHtBuy5M\n"
|
82
|
+
"rEQ4dLO7o+HTFD9XuTltD0tPQghsH2ruRB6Nq20Gg8LSAPkq1imS/2qCXBs/8JYt\n"
|
83
|
+
"gQazh+KJzdZgMhKReM2V6QRCsMlU8geFgWk+igafCu+aufKuc9zFpzYJgeZr+vpu\n"
|
84
|
+
"TJIR6EkjBbOOwwpg76Gsk1j0BB2uN/z9e/mNcdZszQKf0PRj2AHT+zH+k7igaVCc\n"
|
85
|
+
"UwHHxmYSdtaUD2ZfpouczDsNvrlTX5zhWYrQ7gwuKYvBvOlit9L5e9iLElq5S63L\n"
|
86
|
+
"fYmySm+cDOnZvckD7+nKARZ+aiCO6MPGrGE6M9m0FZXentaAd2RblpYr69C0jfi1\n"
|
87
|
+
"O9V0uHYJ6Fn0ME/cOdOiHq+7KgkxZZ9EpUgV4LlBmgQ4mwXAbcGfrChudH3bLo8j\n"
|
88
|
+
"aOm3xRbBQBKBsJ3p0k2VQdhxN7vavtT71oLr/7SRFfAN+2P3/qHbwRHcixUcPYNZ\n"
|
89
|
+
"64ZaTJiC4eqiFhUtGUPeoXmQ/YaTQxB7IE8RF9E+FrAsJIB5CCui3ASMDhSwwdeC\n"
|
90
|
+
"4zoYTpLlJaq81AXDbuyFqeGqEwe1yxLDMsLp6vflJcBHcCgcJm2SJlW87QT8EviC\n"
|
91
|
+
"CiBh1oXaZSDR1MAlvhkA5f0ni8D5X2CmalbY9Rr4Ixuw4GoNTegB9OH0L5q1arme\n"
|
92
|
+
"o6yUfgm63SxTnh5EED3m8bPFjfewKBut9NnE0ZEB3FYpOW/LIdoKKQS2oC5O0kEJ\n"
|
93
|
+
"f7jOKK6jGuqxNqyI3JuNskYpotnqPBkBcG6ZiuZkjOJ94XAFM9thW3iCIMaWO18g\n"
|
94
|
+
"GOIuqaP9vpkiA9fsVSOK47Pf2sOxmQo5LCm/6cjKQWun0gHPJTcXoGrfCfkLfDZH\n"
|
95
|
+
"EigtNK0mZ2N1C75vBzIqnDZPguTIbuxBYzLpi/qXWjjkNfAvDWRnsahp0RQw7Dhi\n"
|
96
|
+
"f16rwh5/zKFhW3ZKqTB4YraGUiVVIgVYLIn4ZwLiv4Js/FaCmG+2brgqdvxfB5zN\n"
|
97
|
+
"XfdpBhWTb8S06QBoOhJ2Saw9CvyiT31c34n2vfkrpKlshOvZJQcOVmZX0Fxey2Y3\n"
|
98
|
+
"VQvIanh/DpA2dAllWpA4jAMW3wIDTVv16+PzzrgC1nprbSDah5jSD5aReInORy4q\n"
|
99
|
+
"L3VBVae3KiYy6AR93nqsAVN6mu0Zs6pDdIbh554hT1yxxtSsn4pKbWIk6UggTICy\n"
|
100
|
+
"Z4YZ+w5ZfAtKurLyBC6SjL0wyChSsx/q+BeDFVHOL15jI1/kqB+CrJJTLDJmhshX\n"
|
101
|
+
"7b9f1uBWBRBq4hPJuyHlX1voIrdplbn7zfttzb8SgOFUAFKJFPUKPSa9zFjKwxuE\n"
|
102
|
+
"3wIDAQAB\n"
|
103
|
+
"-----END PUBLIC KEY-----\n";
|
104
|
+
|
105
|
+
constexpr char kDeterministic_RSA_8192_Private[] =
|
106
|
+
"-----BEGIN RSA PRIVATE KEY-----\n"
|
107
|
+
"MIISKAIBAAKCBAEA58IFLmkTgewY9qQM/+4gMNAg+hchp5DtifltVXImahSr3H3g\n"
|
108
|
+
"od7mMO9BENV+eoGdgGqPcMf7OwFGJHtBuy5MrEQ4dLO7o+HTFD9XuTltD0tPQghs\n"
|
109
|
+
"H2ruRB6Nq20Gg8LSAPkq1imS/2qCXBs/8JYtgQazh+KJzdZgMhKReM2V6QRCsMlU\n"
|
110
|
+
"8geFgWk+igafCu+aufKuc9zFpzYJgeZr+vpuTJIR6EkjBbOOwwpg76Gsk1j0BB2u\n"
|
111
|
+
"N/z9e/mNcdZszQKf0PRj2AHT+zH+k7igaVCcUwHHxmYSdtaUD2ZfpouczDsNvrlT\n"
|
112
|
+
"X5zhWYrQ7gwuKYvBvOlit9L5e9iLElq5S63LfYmySm+cDOnZvckD7+nKARZ+aiCO\n"
|
113
|
+
"6MPGrGE6M9m0FZXentaAd2RblpYr69C0jfi1O9V0uHYJ6Fn0ME/cOdOiHq+7Kgkx\n"
|
114
|
+
"ZZ9EpUgV4LlBmgQ4mwXAbcGfrChudH3bLo8jaOm3xRbBQBKBsJ3p0k2VQdhxN7va\n"
|
115
|
+
"vtT71oLr/7SRFfAN+2P3/qHbwRHcixUcPYNZ64ZaTJiC4eqiFhUtGUPeoXmQ/YaT\n"
|
116
|
+
"QxB7IE8RF9E+FrAsJIB5CCui3ASMDhSwwdeC4zoYTpLlJaq81AXDbuyFqeGqEwe1\n"
|
117
|
+
"yxLDMsLp6vflJcBHcCgcJm2SJlW87QT8EviCCiBh1oXaZSDR1MAlvhkA5f0ni8D5\n"
|
118
|
+
"X2CmalbY9Rr4Ixuw4GoNTegB9OH0L5q1armeo6yUfgm63SxTnh5EED3m8bPFjfew\n"
|
119
|
+
"KBut9NnE0ZEB3FYpOW/LIdoKKQS2oC5O0kEJf7jOKK6jGuqxNqyI3JuNskYpotnq\n"
|
120
|
+
"PBkBcG6ZiuZkjOJ94XAFM9thW3iCIMaWO18gGOIuqaP9vpkiA9fsVSOK47Pf2sOx\n"
|
121
|
+
"mQo5LCm/6cjKQWun0gHPJTcXoGrfCfkLfDZHEigtNK0mZ2N1C75vBzIqnDZPguTI\n"
|
122
|
+
"buxBYzLpi/qXWjjkNfAvDWRnsahp0RQw7Dhif16rwh5/zKFhW3ZKqTB4YraGUiVV\n"
|
123
|
+
"IgVYLIn4ZwLiv4Js/FaCmG+2brgqdvxfB5zNXfdpBhWTb8S06QBoOhJ2Saw9Cvyi\n"
|
124
|
+
"T31c34n2vfkrpKlshOvZJQcOVmZX0Fxey2Y3VQvIanh/DpA2dAllWpA4jAMW3wID\n"
|
125
|
+
"TVv16+PzzrgC1nprbSDah5jSD5aReInORy4qL3VBVae3KiYy6AR93nqsAVN6mu0Z\n"
|
126
|
+
"s6pDdIbh554hT1yxxtSsn4pKbWIk6UggTICyZ4YZ+w5ZfAtKurLyBC6SjL0wyChS\n"
|
127
|
+
"sx/q+BeDFVHOL15jI1/kqB+CrJJTLDJmhshX7b9f1uBWBRBq4hPJuyHlX1voIrdp\n"
|
128
|
+
"lbn7zfttzb8SgOFUAFKJFPUKPSa9zFjKwxuE3wIDAQABAoIEAEZCT4fOWxecF8VN\n"
|
129
|
+
"3pMIAcJKlnS65n0CNsEJWNf6jyLBuYhSsPLhvC9BmRwdXQaOnMz9gRbTyZoNvNH6\n"
|
130
|
+
"e+bfFmdzFxpqEoyQPYl52oJQontsfU6rdvvfUvRbvt8lYkA3o6qf3xil6eZ8x6Bc\n"
|
131
|
+
"snmhTZI8Edk0GErKnscPUgKpcLT/kag+oP3uwc6FtWvqrfSGxwVwSOrfFxymCSPU\n"
|
132
|
+
"Uw/3M9EKx1sAMRndYX5HezOqc8MHyJIm3VYj4EThVrwYIUvVa9XRASPPChCxC1iF\n"
|
133
|
+
"NDw5L+sKMyI2d4qHasNwabb3xEU18ejMDjaCPN8Ecmp4TtZRhB5dMow/7VpaP28F\n"
|
134
|
+
"Cf+jZHlecSqXw1s22cfrVMI6wf6qbxCFZk2ybFx97UMi0LFqid7lcHTBe/Ke/Bm1\n"
|
135
|
+
"X8dairbk80mon0BNZPXwf/cX7aIX7EnGF6+TJSBmRhumjfi/Jtn4WGnttRZf+3xd\n"
|
136
|
+
"W0E2K6n2kLuzNkrSUXbVqLkUxBb+IvSegqYvs1lIv3r5prJb4CFCIUCUmSZi39Va\n"
|
137
|
+
"RQFw/KWmSWHHKoaKtzCyosVyCeAyFn6FecdvC6Sz057A1G3UYs1+FTMg53KD/mGW\n"
|
138
|
+
"bC+XwhpY1l2bstREepJcXO8XzT2/J+w0/iveOEb/SCLvnAxhykZ6Im6T8Sal/2xr\n"
|
139
|
+
"gm/N3r5rKr36PkdCN9qjlc2XjuopzULUAj3Q3BQWfy9ouDSyU3vh5911+U0ahLJk\n"
|
140
|
+
"iWryFS0FABhOSIGmSoH1HSIFe5dgjmZgjWLH6jeye8xB9jx5ckrZ4SEye+r3kFar\n"
|
141
|
+
"hZaGCukLoEWuCOV0uHIjiQxV7NSbEOufuuPDBgjXunasxHkLiCCton1i4i2WW1ww\n"
|
142
|
+
"CdHQ71K/btZvBEx9lpFXvaN2y9u0FV1vHyuNs0nlqAe5uH6ieFuLYhKjGkrueqS1\n"
|
143
|
+
"HiFxqpxAaH6IgXTRcrIH2y1vc42G0EYbqlij0geUtSLG2Z3GUM8AaKIOMRfEJLF0\n"
|
144
|
+
"VfSwk/V/WU01uMavtrqjGU8/Dd6PlYdMVAft2sHOoYQSNBpGZwS5IqvmSiE5MDzp\n"
|
145
|
+
"BMFEzi2FeOroaFy7zdn+Fuu/Z1BtCDOj2GZNn1uakI3xWtyYQ0ais9YDO5kU6vbx\n"
|
146
|
+
"kEUza1Iw4i36Jir2LaJO6/6VfWPdsp4ZFB5qntro8iODxzK+0KI7g2CAAjLvWY//\n"
|
147
|
+
"Xe/onTqVOoQ7Gc4oaOSweBcEd9v2nfLSK2irxvPR8vW5beTd8ij/ldCgiEMOCRQQ\n"
|
148
|
+
"OXKT5O45Fm01YkjcaHksT0d3zGE2hKA+F47ZDHkmbIsJlgLGnWdXzde1Rox54azQ\n"
|
149
|
+
"E3MU1zkTClLZUhAyswKYBxpyEwG+wfl5o+SWXgfZOzpUSJv07Wf5p1bKmMuvyNdl\n"
|
150
|
+
"6Zv2OEECggIBAPn5RYtyZqkKmxVbE3Y1WftrdI0w44w9gC9qSoEoUnULg+UGVCl8\n"
|
151
|
+
"Z2R8uz31fL9DF4ShH6TMkMvU+Culq+RDVhDHoaX3a06TliW3kIznx/ew1Xes0jH+\n"
|
152
|
+
"dIFltQYVb9fiQEQ6onaPsQxEmW6LyGohpLzMbE7qsdEzBeQbMNhCu2UxGnm457e+\n"
|
153
|
+
"66bV+s0K2FlG7abmGyRH2eqc9Wpk/UxYRsUK+qwAlwOpHJGWRjryVrod0LwrqwRl\n"
|
154
|
+
"aWB2c/xJwkgGwOT2REdWUh82HmymDehDwhYWThbRkbiPgmIddISXQF/zveeTjn4T\n"
|
155
|
+
"1pMRbLWmYANyYwAsu0X6fvnIaJMO6LJIdvNTByTozhgY0wP3sFCkSU2nhtBf/wEK\n"
|
156
|
+
"26QMHUiX4MH9EaC6V7iaOZde5MtnV94T8IU8z7q68faqCEUWxu31IT7m8Ecu9B/a\n"
|
157
|
+
"YWnLPM+KlNn6KgMfw4gejfrxRocPTT/dfNSRNhhS5v69JlLefCjWGxoJT1FtpWZO\n"
|
158
|
+
"JKiiuEcJev+SvTJdZUYHvMAAEsxAotUPmub8LHf6f/cNo9ZNaY+TkGctncsEOWnD\n"
|
159
|
+
"mb0X1mtViqXv+GsfYMvNV89dozQA1wMMUymgAZTdcyBlJwewFBbH0VZn7atgbCu4\n"
|
160
|
+
"nLqfk4LR9PgScJSsXqQV4ZvbpZ3esRTE1VJeqP8Y6QqdLLT9QacrBfnpAoICAQDt\n"
|
161
|
+
"WFQXKPsZZkwjLyLhXOVsf8O3RP0oNjl+GPJ0fC+ZweDgJ/9c6TYqcy+ZNhaw3vQA\n"
|
162
|
+
"7RBHGepFcorqDeA9G91swqtoSG8URAFPUh7p767pGmnKBSJmcuzb+aHckAk2/b2Q\n"
|
163
|
+
"y4awMCttKJAc8lhVKGTBSRlRby5p24r7yskM2vfumrEpzzXffeAN4FFOkBLRTZv/\n"
|
164
|
+
"UHH2lEhkG74GSJ/9NdlkemQYSymGDLyUBVqk9EE38KSwzdPMYehA90mOc7Nj1X4a\n"
|
165
|
+
"cawYT5564mojbln+3Sb82oCL9g2AnnKPshBzXed1CnotoDie3M/+PijeHcPd2o6+\n"
|
166
|
+
"FOXDpQ1rvpDIa8tUo9o82vDzwfec5g/Oiu3Rv04lVTAjwDOzkkN8TQoTf3pI8Xn6\n"
|
167
|
+
"Q5qauImJFObHI0V/5RrU2DDOXQDRAfgTFmaZ08yrQPSjhXkVLYeYcWLl8B+0n9O8\n"
|
168
|
+
"izFCImZRFTZUuVy1LcsWgrL4rwHiVXWZKo9ZEYmkcL8m4X6AXPuFq2GX44aexK3C\n"
|
169
|
+
"htG06sQHTMGDfRMQEnSLxYg26ONz8+RKWwPcZhin+KGwp53zF9x7Xt6vWamYfF00\n"
|
170
|
+
"R8wd2Lvz/f4bAW8Uk7PcnNBNoh9keP7GbMnVc7ZlfGjhRz9gWD6p9IiAZdYC8x0Q\n"
|
171
|
+
"3pDhj2GXrz1KgIHd+5N852iBD/fM1BOKPKEZXW8DhwKCAgBKKArbjXqrFzxen4As\n"
|
172
|
+
"hzNEhOI0qJY4ml4Wst+bZUzg8COWo8P/8qnxg5dAkD0LuGmXrPzoNM+XyHw+5o0R\n"
|
173
|
+
"0HAN1ks8IyQwUVQvqD83reMCtfD96cUJk8UYRgXn4iAl2TbbhtF/fq01SHyD8O/p\n"
|
174
|
+
"nEV0xOg0mSdbOlm7C933qgRRxrll9ta3Cep6uewHO/pmscX6xzSyFKavFRUxFPiX\n"
|
175
|
+
"13BXMCShNiOWsGqLPhtjjVTxLbsot4OqcDNMrJdH9tGt8GL1CaHDz/XY0INCFBj4\n"
|
176
|
+
"GHHRf5h26IDkUZ6KYNaaJwyv6m0h8AJLoLL9OiQX112QaDS6boq3/dIBY9SyG7Ao\n"
|
177
|
+
"g5rWIIF0D6RkPakL+kTSB4q/gL1bv760nnX+OqHNUVEZ+2tpVR6E4yvGnh4dwXCt\n"
|
178
|
+
"rxihTiMJ8D+rv1FovZMSMLBGKtiJJYLCmFRhwCswHpp999rSxm+JSBcypLUZiA6Q\n"
|
179
|
+
"rbJElTeJC77/PznJR7tpmeq8VJq1O2Pf77qsVGl6mXNlsjByaoaKueziwKLS+THV\n"
|
180
|
+
"JyX69EB071la/y7lel2gfFRQZ5XyDjTCDYbkM9gmS2AwTfpSPSLIEwjDubGa0cz3\n"
|
181
|
+
"WIarSI5vjSqEJ73mZ/PttiWCDp7RQm+UoNXN/10RaBvWJBJF6MTCxMMDK6v8I35A\n"
|
182
|
+
"/QuTvgVAeDFaNrp2jtMVNow1UQKCAgEAlLybxf/Ki/pNkGcDptM+eyX+EqXLOB3z\n"
|
183
|
+
"HZCosFL6yZJ0SEUIhMMpTKTumUcKJUEzDDmDz+rvoyHK6C5V7jW+J2A/ZpSt97c+\n"
|
184
|
+
"UuUVtmib5jzFOvLIwgcXZCsmQkCJZcrRtyG0gElPjZKz7U/6BzPPIEmc8imInpIU\n"
|
185
|
+
"oQJNyB6Y7RBIIflWu334oPmIOoGTKVNHhVJ2eJ4oV4QDK5DrohTS7WK9w3Omy/jD\n"
|
186
|
+
"XMeWLHVdQZ8uthXmuthIYh4WHI1pSBEMe6nsvTd4C25EMXwALfWNbzvG/u7tO0MQ\n"
|
187
|
+
"a/ic0o9wcypjsqALm5KpTZzKo5dnnWpPtdMGwfp3VKQRu2fB/oLISwaxpTBS6iJK\n"
|
188
|
+
"mZb6vkzyvfaKunzCabApVoY44Ess6PVbCXjANGGc3ykYDoeOED4U+Hma7FfgIRro\n"
|
189
|
+
"yZ1qItBWHKQSKz+Dx7/Gj8POxGYcmGbom+lmrxk7oWh3qdSXwnq2IJ87ZRjXR21i\n"
|
190
|
+
"yt+fAaQ567E0OTtquSqL/RKPkE3nmSuL8LHoTUYqHqD9TFdfUN0f6E+bsz1y/MFE\n"
|
191
|
+
"uUwcOUxJ+0mWmkwQcbzsUOv9BUpdO9AD4LV1tuaRsq/jRC073VtKheBHsb79iUtB\n"
|
192
|
+
"7jtSqM9g6Gx0lWi+0LO8YWl6+WvYF/Ueq+muRYxDDnmlIUEzIVd87/NczDSjh9sH\n"
|
193
|
+
"e8PO+URSQ5UCggIAQ+WJdHOL0IEImdxfm0g3BwH4KyUScx83fWb2/+BxKD91MhqR\n"
|
194
|
+
"Mr5mroPl5qItIkJdv+LKX2p6j4MKgszwExB23oCY5OwPTTbudEofkKwLyU6uCj9m\n"
|
195
|
+
"980hTMaXIarbTYzaOq8c+qjTsRpkIs8T2Gv05E/gM+EuzVPrHtSSp81k6511V+CG\n"
|
196
|
+
"6I56u1XKr02CEYFbgRuVopbkjoMmF8HfuoEHxF2P55mFucgPB6qDm+bYow5avGoM\n"
|
197
|
+
"vT2M1eWajzB9xYHdFfSmy/r5iz99kqGQ241i9eDlQiXbiBU9mjkd0GsuBqAz2bXo\n"
|
198
|
+
"kR5J5SOGgeDp45zKgQ3k+ySCYbN7ghORnI5+x2Khu0wJDdM/7bRqsIbOUnxwJUZ8\n"
|
199
|
+
"pLenq5Kq4k1a9WhaPBQB8OGHQICeWKJq+nSCyUMvMhsuT9Z2sNdv3hsFRB7PRsEf\n"
|
200
|
+
"yPxypQq69G56CtNJTex1QQtk2cSSxCXl5zGeMRokPUXFusYGGLh5C/IO/lKf5x1s\n"
|
201
|
+
"bh7bA3e+5kcyevzelwD4MXWmUFqfjJ5YmLiDDCS0qUzDtLkVi2A2+Jo9gleL8ADb\n"
|
202
|
+
"8jfnwJBI7F7gu5JSc/AYjUsr1cHg6683I6q/zb6GaX8fM6wlZEy1/K9yvEOajaUM\n"
|
203
|
+
"JsKJdlAK9DEjJSaVTDFHlK1sLY+SfNDU0Y5SAuZnnmmtJGP5atTRnyktv/U=\n"
|
204
|
+
"-----END RSA PRIVATE KEY-----\n";
|
205
|
+
|
206
|
+
|
207
|
+
constexpr char kDeterministic_EC_SECP192R1_Public[] =
|
208
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
209
|
+
"MEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEKJVTlIvk+QQNlr/Af9uCQG3/VJdF\n"
|
210
|
+
"io8yY5+jyOqtQY9ND1kc5rw7uXWfVXX9A/85\n"
|
211
|
+
"-----END PUBLIC KEY-----\n";
|
212
|
+
|
213
|
+
constexpr char kDeterministic_EC_SECP192R1_Private[] =
|
214
|
+
"-----BEGIN EC PRIVATE KEY-----\n"
|
215
|
+
"MF8CAQEEGHn5RYtyZqkKmxVbE3Y1WftrdI0w44w9gKAKBggqhkjOPQMBAaE0AzIA\n"
|
216
|
+
"BCiVU5SL5PkEDZa/wH/bgkBt/1SXRYqPMmOfo8jqrUGPTQ9ZHOa8O7l1n1V1/QP/\n"
|
217
|
+
"OQ==\n"
|
218
|
+
"-----END EC PRIVATE KEY-----\n";
|
219
|
+
|
220
|
+
|
221
|
+
constexpr char kDeterministic_EC_SECP521R1_Public[] =
|
222
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
223
|
+
"MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQA83FedxqHmVpjcsTm63/Lyb/tOU35\n"
|
224
|
+
"GTDJxFYrz9Gy5xQtoHH815VHLBPb/d+NXNOlhxHOLcldLA/Dq1rI7+jeYzcAb0yu\n"
|
225
|
+
"yL39PAmjAPVLdr8R2VVsPxd+agQW0SJDzygWyEWxHK2rZPoOUamYTEVH2kVfBcdK\n"
|
226
|
+
"p7lK0IuGLnjxyF8gCp8=\n"
|
227
|
+
"-----END PUBLIC KEY-----\n";
|
228
|
+
|
229
|
+
constexpr char kDeterministic_EC_SECP521R1_Private[] =
|
230
|
+
"-----BEGIN EC PRIVATE KEY-----\n"
|
231
|
+
"MIHcAgEBBEIA8/KLFuTNUhU2KrYm7Gqz9tbpGmHHGHsAXtSVAlCk6hcHygyoUvjO\n"
|
232
|
+
"yPl2e+r5foYvCUI/SZkhl6nwV0tXyIasIY+gBwYFK4EEACOhgYkDgYYABADzcV53\n"
|
233
|
+
"GoeZWmNyxObrf8vJv+05TfkZMMnEVivP0bLnFC2gcfzXlUcsE9v9341c06WHEc4t\n"
|
234
|
+
"yV0sD8OrWsjv6N5jNwBvTK7Ivf08CaMA9Ut2vxHZVWw/F35qBBbRIkPPKBbIRbEc\n"
|
235
|
+
"ratk+g5RqZhMRUfaRV8Fx0qnuUrQi4YuePHIXyAKnw==\n"
|
236
|
+
"-----END EC PRIVATE KEY-----\n";
|
237
|
+
|
238
|
+
|
239
|
+
constexpr char kDeterministic_EC_BP512R1_Public[] =
|
240
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
241
|
+
"MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEYcWHH2onaD/P8wdWagF9C8tc\n"
|
242
|
+
"RgqGPGWb4mjK6vRh98ImV+mRAoO0Lfs23hF36xgJhyg01jf1fNVpjVIITsLjhEtH\n"
|
243
|
+
"ucgPQm3I/SKNb0qrRL6zSGcctH028EsNgZyYmm8T+7JCK3zS21POvmmwVBvMxkYD\n"
|
244
|
+
"jrtpeVmtvnpZZ4oMwK0=\n"
|
245
|
+
"-----END PUBLIC KEY-----\n";
|
246
|
+
|
247
|
+
constexpr char kDeterministic_EC_BP512R1_Private[] =
|
248
|
+
"-----BEGIN EC PRIVATE KEY-----\n"
|
249
|
+
"MIHaAgEBBEB5+UWLcmapCpsVWxN2NVn7a3SNMOOMPYAvakqBKFJ1C4PlBlQpfGdk\n"
|
250
|
+
"fLs99Xy/QxeEoR+kzJDL1PgrpavkQ1YQoAsGCSskAwMCCAEBDaGBhQOBggAEYcWH\n"
|
251
|
+
"H2onaD/P8wdWagF9C8tcRgqGPGWb4mjK6vRh98ImV+mRAoO0Lfs23hF36xgJhyg0\n"
|
252
|
+
"1jf1fNVpjVIITsLjhEtHucgPQm3I/SKNb0qrRL6zSGcctH028EsNgZyYmm8T+7JC\n"
|
253
|
+
"K3zS21POvmmwVBvMxkYDjrtpeVmtvnpZZ4oMwK0=\n"
|
254
|
+
"-----END EC PRIVATE KEY-----\n";
|
255
|
+
|
256
|
+
|
257
|
+
constexpr char kDeterministic_EC_SECP256K1_Public[] =
|
258
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
259
|
+
"MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE+9D+eNiEeNEr54F8w4pDadPviB9g6XQ1\n"
|
260
|
+
"tfUFsfGTjzEBMVvQdY9iiG3hFkvHW5b5AqWKC4O1C8c0C5G7mXrSEA==\n"
|
261
|
+
"-----END PUBLIC KEY-----\n";
|
262
|
+
|
263
|
+
constexpr char kDeterministic_EC_SECP256K1_Private[] =
|
264
|
+
"-----BEGIN EC PRIVATE KEY-----\n"
|
265
|
+
"MHQCAQEEIHn5RYtyZqkKmxVbE3Y1WftrdI0w44w9gC9qSoEoUnULoAcGBSuBBAAK\n"
|
266
|
+
"oUQDQgAE+9D+eNiEeNEr54F8w4pDadPviB9g6XQ1tfUFsfGTjzEBMVvQdY9iiG3h\n"
|
267
|
+
"FkvHW5b5AqWKC4O1C8c0C5G7mXrSEA==\n"
|
268
|
+
"-----END EC PRIVATE KEY-----\n";
|
269
|
+
|
270
|
+
|
271
|
+
constexpr char kDeterministic_FAST_EC_X25519_Public[] =
|
272
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
273
|
+
"MCowBQYDK2VuAyEA1l8vn0g1OjUbDfqnon6PxMiRVtX+/95JmyxEzJnO4Vw=\n"
|
274
|
+
"-----END PUBLIC KEY-----\n";
|
275
|
+
|
276
|
+
constexpr char kDeterministic_FAST_EC_X25519_Private[] =
|
277
|
+
"-----BEGIN PRIVATE KEY-----\n"
|
278
|
+
"MC4CAQAwBQYDK2VuBCIEIHn5RYtyZqkKmxVbE3Y1WftrdI0w44w9gC9qSoEoUnUL\n"
|
279
|
+
"-----END PRIVATE KEY-----\n";
|
280
|
+
|
281
|
+
|
282
|
+
constexpr char kDeterministic_FAST_EC_ED25519_Public[] =
|
283
|
+
"-----BEGIN PUBLIC KEY-----\n"
|
284
|
+
"MCowBQYDK2VwAyEA1eQkkQRZQagM4xOddC68mndhtJu4+IunGaYXc+C+gjg=\n"
|
285
|
+
"-----END PUBLIC KEY-----\n";
|
286
|
+
|
287
|
+
constexpr char kDeterministic_FAST_EC_ED25519_Private[] =
|
288
|
+
"-----BEGIN PRIVATE KEY-----\n"
|
289
|
+
"MC4CAQAwBQYDK2VwBCIEIHn5RYtyZqkKmxVbE3Y1WftrdI0w44w9gC9qSoEoUnUL\n"
|
290
|
+
"-----END PRIVATE KEY-----\n";
|
291
|
+
|
292
|
+
|
293
|
+
#endif /* VIRGIL_CRYPTO_TEST_DETERMINISTIC_KEYS_H */
|