Webserver+3d print

Dependents:   Nucleo

Revision:
0:8918a71cdbe9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cyclone_ssl/tls_misc.h	Sat Feb 04 18:15:49 2017 +0000
@@ -0,0 +1,114 @@
+/**
+ * @file tls_misc.h
+ * @brief Helper functions (TLS client and server)
+ *
+ * @section License
+ *
+ * Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.
+ *
+ * This file is part of CycloneSSL Open.
+ *
+ * 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 2
+ * 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, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ * @author Oryx Embedded SARL (www.oryx-embedded.com)
+ * @version 1.7.6
+ **/
+
+#ifndef _TLS_MISC_H
+#define _TLS_MISC_H
+
+//Dependencies
+#include "tls.h"
+#include "x509.h"
+
+//TLS related functions
+void tlsProcessError(TlsContext *context, error_t errorCode);
+
+error_t tlsGenerateRandomValue(TlsContext *context, TlsRandom *random);
+
+error_t tlsSetVersion(TlsContext *context, uint16_t version);
+error_t tlsSetCipherSuite(TlsContext *context, uint16_t identifier);
+error_t tlsSetCompressionMethod(TlsContext *context, uint8_t identifier);
+
+error_t tlsSelectSignHashAlgo(TlsContext *context,
+   TlsSignatureAlgo signAlgo, const TlsSignHashAlgos *supportedSignAlgos);
+
+error_t tlsSelectNamedCurve(TlsContext *context,
+   const TlsEllipticCurveList *curveList);
+
+error_t tlsInitHandshakeHash(TlsContext *context);
+void tlsUpdateHandshakeHash(TlsContext *context, const void *data, size_t length);
+
+error_t tlsFinalizeHandshakeHash(TlsContext *context, const HashAlgo *hash,
+   const void *hashContext, const char_t *label, uint8_t *output);
+
+error_t tlsComputeVerifyData(TlsContext *context, TlsConnectionEnd entity);
+
+error_t tlsInitEncryptionEngine(TlsContext *context);
+error_t tlsInitDecryptionEngine(TlsContext *context);
+
+error_t tlsWriteMpi(const Mpi *a, uint8_t *data, size_t *length);
+error_t tlsReadMpi(Mpi *a, const uint8_t *data, size_t size, size_t *length);
+
+error_t tlsWriteEcPoint(const EcDomainParameters *params,
+   const EcPoint *a, uint8_t *data, size_t *length);
+
+error_t tlsReadEcPoint(const EcDomainParameters *params,
+   EcPoint *a, const uint8_t *data, size_t size, size_t *length);
+
+error_t tlsGenerateRsaSignature(const RsaPrivateKey *key,
+   const uint8_t *digest, uint8_t *signature, size_t *signatureLength);
+
+error_t tlsVerifyRsaSignature(const RsaPublicKey *key,
+   const uint8_t *digest, const uint8_t *signature, size_t signatureLength);
+
+error_t tlsGenerateDsaSignature(const PrngAlgo *prngAlgo, void *prngContext, const DsaPrivateKey *key,
+   const uint8_t *digest, size_t digestLength, uint8_t *signature, size_t *signatureLength);
+
+error_t tlsVerifyDsaSignature(const DsaPublicKey *key, const uint8_t *digest,
+   size_t digestLength, const uint8_t *signature, size_t signatureLength);
+
+error_t tlsGenerateEcdsaSignature(const EcDomainParameters *params,
+   const PrngAlgo *prngAlgo, void *prngContext, const Mpi *key, const uint8_t *digest,
+   size_t digestLength, uint8_t *signature, size_t *signatureLength);
+
+error_t tlsVerifyEcdsaSignature(const EcDomainParameters *params,
+   const EcPoint *key, const uint8_t *digest, size_t digestLength,
+   const uint8_t *signature, size_t signatureLength);
+
+error_t tlsGeneratePskPremasterSecret(TlsContext *context);
+error_t tlsGenerateKeys(TlsContext *context);
+
+error_t tlsPrf(const uint8_t *secret, size_t secretLength, const char_t *label,
+   const uint8_t *seed, size_t seedLength, uint8_t *output, size_t outputLength);
+
+error_t tlsPrf2(const HashAlgo *hash, const uint8_t *secret, size_t secretLength,
+   const char_t *label, const uint8_t *seed, size_t seedLength, uint8_t *output, size_t outputLength);
+
+bool_t tlsIsCertificateAcceptable(const TlsCertDesc *cert,
+   const uint8_t *certTypes, size_t numCertTypes, const TlsSignHashAlgos *signHashAlgos,
+   const TlsEllipticCurveList *curveList, const TlsCertAuthorities *certAuthorities);
+
+error_t tlsGetCertificateType(const X509CertificateInfo *certInfo, TlsCertificateType *certType,
+   TlsSignatureAlgo *certSignAlgo, TlsHashAlgo *certHashAlgo, TlsEcNamedCurve *namedCurve);
+
+const TlsExtension *tlsGetExtension(const uint8_t *data, size_t length, uint16_t type);
+const char_t *tlsGetVersionName(uint16_t version);
+const HashAlgo *tlsGetHashAlgo(uint8_t hashAlgoId);
+const EcCurveInfo *tlsGetCurveInfo(uint16_t namedCurve);
+TlsEcNamedCurve tlsGetNamedCurve(const uint8_t *oid, size_t length);
+
+#endif
+