Skip to content

Commit

Permalink
Update to latest BearSSL code. (esp8266#5669)
Browse files Browse the repository at this point in the history
  • Loading branch information
earlephilhower authored Jan 25, 2019
1 parent 5e4c2e9 commit a9fb6db
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 3 deletions.
60 changes: 60 additions & 0 deletions tools/sdk/include/bearssl/bearssl_ec.h
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,42 @@ extern const br_ec_impl br_ec_p256_m15;
*/
extern const br_ec_impl br_ec_p256_m31;

/**
* \brief EC implementation "m62" (specialised code) for P-256.
*
* This implementation uses custom code relying on multiplication of
* integers up to 64 bits, with a 128-bit result. This implementation is
* defined only on platforms that offer the 64x64->128 multiplication
* support; use `br_ec_p256_m62_get()` to dynamically obtain a pointer
* to that implementation.
*/
extern const br_ec_impl br_ec_p256_m62;

/**
* \brief Get the "m62" implementation of P-256, if available.
*
* \return the implementation, or 0.
*/
const br_ec_impl *br_ec_p256_m62_get(void);

/**
* \brief EC implementation "m64" (specialised code) for P-256.
*
* This implementation uses custom code relying on multiplication of
* integers up to 64 bits, with a 128-bit result. This implementation is
* defined only on platforms that offer the 64x64->128 multiplication
* support; use `br_ec_p256_m64_get()` to dynamically obtain a pointer
* to that implementation.
*/
extern const br_ec_impl br_ec_p256_m64;

/**
* \brief Get the "m64" implementation of P-256, if available.
*
* \return the implementation, or 0.
*/
const br_ec_impl *br_ec_p256_m64_get(void);

/**
* \brief EC implementation "i15" (generic code) for Curve25519.
*
Expand Down Expand Up @@ -531,6 +567,30 @@ extern const br_ec_impl br_ec_c25519_m62;
*/
const br_ec_impl *br_ec_c25519_m62_get(void);

/**
* \brief EC implementation "m64" (specialised code) for Curve25519.
*
* This implementation uses custom code relying on multiplication of
* integers up to 64 bits, with a 128-bit result. This implementation is
* defined only on platforms that offer the 64x64->128 multiplication
* support; use `br_ec_c25519_m64_get()` to dynamically obtain a pointer
* to that implementation. Due to the specificities of the curve
* definition, the following applies:
*
* - `muladd()` is not implemented (the function returns 0 systematically).
* - `order()` returns 2^255-1, since the point multiplication algorithm
* accepts any 32-bit integer as input (it clears the top bit and low
* three bits systematically).
*/
extern const br_ec_impl br_ec_c25519_m64;

/**
* \brief Get the "m64" implementation of Curve25519, if available.
*
* \return the implementation, or 0.
*/
const br_ec_impl *br_ec_c25519_m64_get(void);

/**
* \brief Aggregate EC implementation "m15".
*
Expand Down
2 changes: 1 addition & 1 deletion tools/sdk/include/bearssl/bearssl_git.h
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// Do not edit -- Automatically generated by tools/sdk/ssl/bearssl/Makefile
#define BEARSSL_GIT 79edbc8
#define BEARSSL_GIT 6778687
Binary file modified tools/sdk/lib/libbearssl.a
Binary file not shown.
2 changes: 1 addition & 1 deletion tools/sdk/ssl/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
VER_H=../include/bearssl/bearssl_git.h

all T0 clean: bearssl/README.txt
PATH=$(PATH):$(PWD)/../../xtensa-lx106-elf/bin/ && cd bearssl && make CONF=esp8266 $@
PATH="$(PATH):$(PWD)/../../xtensa-lx106-elf/bin/" && cd bearssl && make CONF=esp8266 $@

install: all version-header
cp bearssl/esp8266/libbearssl.a ../lib/.
Expand Down

0 comments on commit a9fb6db

Please sign in to comment.