Annotation of embedaddon/strongswan/src/scepclient/scep.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  * Copyright (C) 2012 Tobias Brunner
        !             3:  * Copyright (C) 2005 Jan Hutter, 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: #ifndef _SCEP_H
        !            18: #define _SCEP_H
        !            19: 
        !            20: #include <credentials/containers/pkcs7.h>
        !            21: #include <credentials/certificates/certificate.h>
        !            22: 
        !            23: /* supported SCEP operation types */
        !            24: typedef enum {
        !            25:        SCEP_PKI_OPERATION,
        !            26:        SCEP_GET_CA_CERT
        !            27: } scep_op_t;
        !            28: 
        !            29: /* SCEP pkiStatus values */
        !            30: typedef enum {
        !            31:    SCEP_SUCCESS,
        !            32:    SCEP_FAILURE,
        !            33:    SCEP_PENDING,
        !            34:    SCEP_UNKNOWN
        !            35: } pkiStatus_t;
        !            36: 
        !            37: /* SCEP messageType values */
        !            38: typedef enum {
        !            39:    SCEP_CertRep_MSG,
        !            40:    SCEP_PKCSReq_MSG,
        !            41:    SCEP_GetCertInitial_MSG,
        !            42:    SCEP_GetCert_MSG,
        !            43:    SCEP_GetCRL_MSG,
        !            44:    SCEP_Unknown_MSG
        !            45: } scep_msg_t;
        !            46: 
        !            47: /* SCEP failure reasons */
        !            48: typedef enum {
        !            49:    SCEP_badAlg_REASON =          0,
        !            50:    SCEP_badMessageCheck_REASON = 1,
        !            51:    SCEP_badRequest_REASON =      2,
        !            52:    SCEP_badTime_REASON =         3,
        !            53:    SCEP_badCertId_REASON =       4,
        !            54:    SCEP_unknown_REASON =         5
        !            55: } failInfo_t;
        !            56: 
        !            57: /* SCEP attributes */
        !            58: typedef struct {
        !            59:        scep_msg_t  msgType;
        !            60:        pkiStatus_t pkiStatus;
        !            61:        failInfo_t  failInfo;
        !            62:        chunk_t     transID;
        !            63:        chunk_t     senderNonce;
        !            64:        chunk_t     recipientNonce;
        !            65: } scep_attributes_t;
        !            66: 
        !            67: extern const scep_attributes_t empty_scep_attributes;
        !            68: 
        !            69: bool parse_attributes(chunk_t blob, scep_attributes_t *attrs);
        !            70: void scep_generate_transaction_id(public_key_t *key,
        !            71:                                                                  chunk_t *transID,
        !            72:                                                                  chunk_t *serialNumber);
        !            73: chunk_t scep_generate_pkcs10_fingerprint(chunk_t pkcs10);
        !            74: chunk_t scep_transId_attribute(chunk_t transaction_id);
        !            75: chunk_t scep_messageType_attribute(scep_msg_t m);
        !            76: chunk_t scep_senderNonce_attribute(void);
        !            77: chunk_t scep_build_request(chunk_t data, chunk_t transID, scep_msg_t msg,
        !            78:                                                certificate_t *enc_cert, encryption_algorithm_t enc_alg,
        !            79:                                                size_t key_size, certificate_t *signer_cert,
        !            80:                                                hash_algorithm_t digest_alg, private_key_t *private_key);
        !            81: bool scep_http_request(const char *url, chunk_t msg, scep_op_t op,
        !            82:                                           bool http_get_request, u_int timeout, char *src,
        !            83:                                           chunk_t *response);
        !            84: err_t scep_parse_response(chunk_t response, chunk_t transID,
        !            85:                                                  container_t **out, scep_attributes_t *attrs);
        !            86: 
        !            87: #endif /* _SCEP_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>