.. _program_listing_file_caprock_keys.h: Program Listing for File keys.h =============================== |exhale_lsh| :ref:`Return to documentation for file ` (``caprock/keys.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * This file is part of caprock. * * Author(s): Jens Finkhaeuser * * Copyright (c) 2022 Interpeer gUG (haftungsbeschränkt). * * SPDX-License-Identifier: GPL-3.0-only * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . **/ #ifndef CAPROCK_KEYS_H #define CAPROCK_KEYS_H #include #include #ifdef __cplusplus extern "C" { #endif // __cplusplus typedef struct caprock_key caprock_key; typedef struct caprock_key_pair { caprock_key * pubkey; caprock_key * privkey; } caprock_key_pair; CAPROCK_API void caprock_key_init(caprock_key ** key); CAPROCK_API caprock_key_pair caprock_key_init_pair(); CAPROCK_API int caprock_key_is_valid(caprock_key const * key); CAPROCK_API int caprock_key_is_public(caprock_key const * key); CAPROCK_API int caprock_key_is_private(caprock_key const * key); CAPROCK_API caprock_error_t caprock_key_read_public(caprock_key * pubkey, void const * buffer, size_t bufsize, char const * password); CAPROCK_API caprock_error_t caprock_key_read_private(caprock_key * privkey, void const * buffer, size_t bufsize, char const * password); CAPROCK_API caprock_error_t caprock_key_read_pair(caprock_key_pair * pair, void const * buffer, size_t bufsize, char const * password); CAPROCK_API caprock_error_t caprock_key_extract_public(caprock_key ** pubkey, caprock_key_pair const * pair); typedef enum { CIH_ANY = 0, CIH_224 = 1, CIH_256 = 2, CIH_384 = 3, CIH_512 = 4, } caprock_identifier_hash_length; CAPROCK_API caprock_error_t caprock_key_identifier_public( caprock_field_identifier tag, void * buffer, size_t * bufsize, caprock_key const * pubkey, caprock_identifier_hash_length hash_length); CAPROCK_API caprock_error_t caprock_key_identifier_pair( caprock_field_identifier tag, void * buffer, size_t * bufsize, caprock_key_pair const * pair, caprock_identifier_hash_length hash_length); CAPROCK_API void caprock_key_free(caprock_key ** key); CAPROCK_API void caprock_key_free_pair(caprock_key_pair * pair); #ifdef __cplusplus } // extern "C" #endif // __cplusplus #endif // guard