Return to pki.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / src / pki |
1.1 ! misho 1: /* ! 2: * Copyright (C) 2015-2017 Tobias Brunner ! 3: * Copyright (C) 2009 Martin Willi ! 4: * HSR Hochschule fuer Technik Rapperswil ! 5: * ! 6: * This program is free software; you can redistribute it and/or modify it ! 7: * under the terms of the GNU General Public License as published by the ! 8: * Free Software Foundation; either version 2 of the License, or (at your ! 9: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. ! 10: * ! 11: * This program is distributed in the hope that it will be useful, but ! 12: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ! 13: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ! 14: * for more details. ! 15: */ ! 16: ! 17: /** ! 18: * @defgroup pki pki ! 19: * ! 20: * @addtogroup pki ! 21: * @{ ! 22: */ ! 23: ! 24: #ifndef PKI_H_ ! 25: #define PKI_H_ ! 26: ! 27: #include "command.h" ! 28: ! 29: #include <library.h> ! 30: #include <selectors/traffic_selector.h> ! 31: #include <credentials/keys/private_key.h> ! 32: ! 33: /** ! 34: * Convert a form string to a encoding type ! 35: */ ! 36: bool get_form(char *form, cred_encoding_type_t *enc, credential_type_t type); ! 37: ! 38: /** ! 39: * Calculate start/end lifetime for certificates. ! 40: * ! 41: * If both nbstr and nastr are given, span is ignored. Otherwise missing ! 42: * arguments are calculated, or assumed to be now. ! 43: * ! 44: * @param format strptime() format, NULL for default: %d.%m.%y %T ! 45: * @param nbstr string describing notBefore datetime, or NULL ! 46: * @param nastr string describing notAfter datetime, or NULL ! 47: * @param span lifetime span, from notBefore to notAfter ! 48: * @param nb calculated notBefore time ! 49: * @param na calculated notAfter time ! 50: * @return TRUE of nb/na calculated successfully ! 51: */ ! 52: bool calculate_lifetime(char *format, char *nbstr, char *nastr, time_t span, ! 53: time_t *nb, time_t *na); ! 54: ! 55: /** ! 56: * Set output file mode appropriate for credential encoding form on Windows ! 57: */ ! 58: void set_file_mode(FILE *stream, cred_encoding_type_t enc); ! 59: ! 60: /** ! 61: * Determine the signature scheme and parameters for the given private key and ! 62: * hash algorithm and whether to use PSS padding for RSA. ! 63: * ! 64: * @param private private key ! 65: * @param digest hash algorithm (if HASH_UNKNOWN a default is determined ! 66: * based on the key) ! 67: * @param pss use PSS padding for RSA keys ! 68: * @return allocated signature scheme and parameters (NULL if none ! 69: * found) ! 70: */ ! 71: signature_params_t *get_signature_scheme(private_key_t *private, ! 72: hash_algorithm_t digest, bool pss); ! 73: ! 74: /** ! 75: * Create a traffic selector from a CIDR or range string. ! 76: * ! 77: * @param str input string, either a.b.c.d/e or a.b.c.d-e.f.g.h ! 78: * @return traffic selector, NULL on error ! 79: */ ! 80: traffic_selector_t* parse_ts(char *str); ! 81: ! 82: #endif /** PKI_H_ @}*/