mirror of
https://github.com/esp8266/Arduino.git
synced 2025-12-03 05:41:13 +03:00
* Deprecate SPIFFS, move examples to LittleFS SPIFFS has been a great filesystem, but it has significant problems in many cases (and it's also pretty slow). Development seems to have slowed/stopped on the upstream version, and we're not able to provide support or fix the known issues with it as-is. Deprecate SPIFFS variable. Update all examples to use LittleFS instead of SPIFFS. Also, minor cleanup on very old examples which has obsolete delays waiting for the Serial port to come up, or which were stuck at 9600 baud because of their ancient AVR heritage. Fixes #7095 * Remove leftover debug code * Clean up comments in some examples * Update documentation on SPIFFS deprecation * Fix host tests to avoid deprecation warnings * Fix cut-n-paste error * Restore SpeedTest.ino, adjust to allow custom FSes Co-authored-by: Develo <deveyes@gmail.com>
70 lines
2.1 KiB
C++
70 lines
2.1 KiB
C++
/*
|
|
CertStoreBearSSL.h - Library for Arduino ESP8266
|
|
Copyright (c) 2018 Earle F. Philhower, III
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library 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
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef _CERTSTORE_BEARSSL_H
|
|
#define _CERTSTORE_BEARSSL_H
|
|
|
|
#include <Arduino.h>
|
|
#include <BearSSLHelpers.h>
|
|
#include <bearssl/bearssl.h>
|
|
#include <FS.h>
|
|
|
|
// Base class for the certificate stores, which allow use
|
|
// of a large set of certificates stored on FS or SD card to
|
|
// be dynamically used when validating a X509 certificate
|
|
|
|
namespace BearSSL {
|
|
|
|
class CertStore {
|
|
public:
|
|
CertStore() { };
|
|
~CertStore();
|
|
|
|
// Set the file interface instances, do preprocessing
|
|
int initCertStore(FS &fs, const char *indexFileName, const char *dataFileName);
|
|
|
|
// Installs the cert store into the X509 decoder (normally via static function callbacks)
|
|
void installCertStore(br_x509_minimal_context *ctx);
|
|
|
|
protected:
|
|
FS *_fs = nullptr;
|
|
char *_indexName = nullptr;
|
|
char *_dataName = nullptr;
|
|
X509List *_x509 = nullptr;
|
|
|
|
// These need to be static as they are callbacks from BearSSL C code
|
|
static const br_x509_trust_anchor *findHashedTA(void *ctx, void *hashed_dn, size_t len);
|
|
static void freeHashedTA(void *ctx, const br_x509_trust_anchor *ta);
|
|
|
|
// The binary format of the index file
|
|
class CertInfo {
|
|
public:
|
|
uint8_t sha256[32];
|
|
uint32_t offset;
|
|
uint32_t length;
|
|
};
|
|
static CertInfo _preprocessCert(uint32_t length, uint32_t offset, const void *raw);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
#endif
|
|
|