Browse Source

Start keypair framework conversion

tags/1.2.0
Vsevolod Stakhov 8 years ago
parent
commit
ce62c022fc

+ 3
- 1
src/libcryptobox/CMakeLists.txt View File

@@ -85,7 +85,9 @@ ENDIF(HAVE_SSE41)

CONFIGURE_FILE(platform_config.h.in platform_config.h)
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
SET(LIBCRYPTOBOXSRC ${CMAKE_CURRENT_SOURCE_DIR}/cryptobox.c)
SET(LIBCRYPTOBOXSRC ${CMAKE_CURRENT_SOURCE_DIR}/cryptobox.c
${CMAKE_CURRENT_SOURCE_DIR}/keypair.c
${CMAKE_CURRENT_SOURCE_DIR}/keypairs_cache.c)

SET(RSPAMD_CRYPTOBOX ${LIBCRYPTOBOXSRC} ${CHACHASRC} ${POLYSRC} ${SIPHASHSRC}
${CURVESRC} ${BLAKE2SRC} ${EDSRC} PARENT_SCOPE)

+ 19
- 0
src/libcryptobox/keypair.c View File

@@ -0,0 +1,19 @@
/*-
* Copyright 2016 Vsevolod Stakhov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#include "config.h"
#include "keypair.h"
#include "keypair_private.h"

+ 72
- 0
src/libcryptobox/keypair.h View File

@@ -0,0 +1,72 @@
/*-
* Copyright 2016 Vsevolod Stakhov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef SRC_LIBCRYPTOBOX_KEYPAIR_H_
#define SRC_LIBCRYPTOBOX_KEYPAIR_H_

#include "config.h"
#include "cryptobox.h"
#include "ucl.h"

/**
* Keypair type
*/
enum rspamd_cryptobox_keypair_type {
RSPAMD_KEYPAIR_KEX = 0,
RSPAMD_KEYPAIR_SIGN
};

/**
* Algorithm used for keypair
*/
enum rspamd_cryptobox_keypair_algorithm {
RSPAMD_KEYPAIR_NIST = 0,
RSPAMD_KEYPAIR_25519
};

/**
* Opaque structure for the full (public + private) keypair
*/
struct rspamd_cryptobox_keypair;
/**
* Opaque structure for public only keypair
*/
struct rspamd_cryptobox_keypair_public;

/**
* Creates new full keypair
* @param type type of the keypair
* @param alg algorithm for the keypair
* @return fresh keypair generated
*/
struct rspamd_cryptobox_keypair* rspamd_keypair_new (
enum rspamd_cryptobox_keypair_type type,
enum rspamd_cryptobox_keypair_algorithm alg);

/**
* Increase refcount for the specific keypair
* @param kp
* @return
*/
struct rspamd_cryptobox_keypair* rspamd_keypair_ref (
struct rspamd_cryptobox_keypair *kp);

/**
* Decrease refcount for the specific keypair (or destroy when refcount == 0)
* @param kp
*/
void rspamd_keypair_unref (struct rspamd_cryptobox_keypair *kp);

#endif /* SRC_LIBCRYPTOBOX_KEYPAIR_H_ */

src/libutil/keypair_private.h → src/libcryptobox/keypair_private.h View File


src/libutil/keypairs_cache.c → src/libcryptobox/keypairs_cache.c View File


src/libutil/keypairs_cache.h → src/libcryptobox/keypairs_cache.h View File


+ 0
- 1
src/libutil/CMakeLists.txt View File

@@ -7,7 +7,6 @@ SET(LIBRSPAMDUTILSRC
${CMAKE_CURRENT_SOURCE_DIR}/fstring.c
${CMAKE_CURRENT_SOURCE_DIR}/hash.c
${CMAKE_CURRENT_SOURCE_DIR}/http.c
${CMAKE_CURRENT_SOURCE_DIR}/keypairs_cache.c
${CMAKE_CURRENT_SOURCE_DIR}/logger.c
${CMAKE_CURRENT_SOURCE_DIR}/map.c
${CMAKE_CURRENT_SOURCE_DIR}/mem_pool.c

Loading…
Cancel
Save