1526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt/* 2526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * TLSv1 credentials 3526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Copyright (c) 2006-2007, Jouni Malinen <j@w1.fi> 4526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 5526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * This program is free software; you can redistribute it and/or modify 6526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * it under the terms of the GNU General Public License version 2 as 7526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * published by the Free Software Foundation. 8526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 9526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * Alternatively, this software may be distributed under the terms of BSD 10526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * license. 11526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * 12526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt * See README and COPYING for more details. 13526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt */ 14526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 15526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#ifndef TLSV1_CRED_H 16526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#define TLSV1_CRED_H 17526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 18526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstruct tlsv1_credentials { 19526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt struct x509_certificate *trusted_certs; 20526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt struct x509_certificate *cert; 21526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt struct crypto_private_key *key; 22526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 23526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt /* Diffie-Hellman parameters */ 24526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt u8 *dh_p; /* prime */ 25526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt size_t dh_p_len; 26526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt u8 *dh_g; /* generator */ 27526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt size_t dh_g_len; 28526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt}; 29526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 30526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 31526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtstruct tlsv1_credentials * tlsv1_cred_alloc(void); 32526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtvoid tlsv1_cred_free(struct tlsv1_credentials *cred); 33526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint tlsv1_set_ca_cert(struct tlsv1_credentials *cred, const char *cert, 34526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const u8 *cert_blob, size_t cert_blob_len, 35526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const char *path); 36526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint tlsv1_set_cert(struct tlsv1_credentials *cred, const char *cert, 37526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const u8 *cert_blob, size_t cert_blob_len); 38526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint tlsv1_set_private_key(struct tlsv1_credentials *cred, 39526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const char *private_key, 40526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const char *private_key_passwd, 41526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const u8 *private_key_blob, 42526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt size_t private_key_blob_len); 43526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidtint tlsv1_set_dhparams(struct tlsv1_credentials *cred, const char *dh_file, 44526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt const u8 *dh_blob, size_t dh_blob_len); 45526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt 46526fc2a7dc09b4450086cdec313a5c44d36b10fdDmitry Shmidt#endif /* TLSV1_CRED_H */ 47