From 7f81375861eb65784e60d0f7a9ca5f416f67d772 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 26 Jul 2018 12:13:42 +0200 Subject: [PATCH] lib/gcrypt/MD5: move code to Hash.hxx --- Makefile.am | 1 + src/lib/gcrypt/Hash.hxx | 55 +++++++++++++++++++++++++++++++++++++++++ src/lib/gcrypt/MD5.cxx | 9 ++----- 3 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 src/lib/gcrypt/Hash.hxx diff --git a/Makefile.am b/Makefile.am index 85560db24..a240e9027 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1460,6 +1460,7 @@ if ENABLE_QOBUZ libinput_a_SOURCES += \ $(YAJL_SOURCES) \ src/lib/gcrypt/MD5.cxx src/lib/gcrypt/MD5.hxx \ + src/lib/gcrypt/Hash.hxx \ src/input/plugins/QobuzSession.hxx \ src/input/plugins/QobuzClient.cxx src/input/plugins/QobuzClient.hxx \ src/input/plugins/QobuzErrorParser.cxx src/input/plugins/QobuzErrorParser.hxx \ diff --git a/src/lib/gcrypt/Hash.hxx b/src/lib/gcrypt/Hash.hxx new file mode 100644 index 000000000..208d6e247 --- /dev/null +++ b/src/lib/gcrypt/Hash.hxx @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2018 Max Kellermann + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - 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. + * + * 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 + * FOUNDATION 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. + */ + +#ifndef GCRYPT_HASH_HXX +#define GCRYPT_HASH_HXX + +#include "util/ConstBuffer.hxx" +#include "Compiler.h" + +#include + +#include + +namespace Gcrypt { + +template +gcc_pure +auto +Hash(ConstBuffer input) noexcept +{ + std::array result; + gcry_md_hash_buffer(GCRY_MD_MD5, &result.front(), + input.data, input.size); + return result; +} + +} /* namespace Gcrypt */ + +#endif diff --git a/src/lib/gcrypt/MD5.cxx b/src/lib/gcrypt/MD5.cxx index 009d3da97..c45d3d9da 100644 --- a/src/lib/gcrypt/MD5.cxx +++ b/src/lib/gcrypt/MD5.cxx @@ -28,19 +28,14 @@ */ #include "MD5.hxx" -#include "util/ConstBuffer.hxx" - -#include +#include "Hash.hxx" #include std::array MD5(ConstBuffer input) noexcept { - std::array result; - gcry_md_hash_buffer(GCRY_MD_MD5, &result.front(), - input.data, input.size); - return result; + return Gcrypt::Hash(input); } std::array