summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux-build.yml2
-rw-r--r--.github/workflows/mac-build.yml4
-rw-r--r--.github/workflows/onefiledist.yml8
-rw-r--r--.github/workflows/win-build.yml4
-rw-r--r--libtommath/appveyor.yml3
-rw-r--r--libtommath/bn_mp_2expt.c4
-rw-r--r--libtommath/bn_mp_grow.c4
-rw-r--r--libtommath/bn_mp_init_size.c5
-rw-r--r--libtommath/bn_mp_mul_2d.c4
-rw-r--r--libtommath/bn_s_mp_mul_digs.c4
-rw-r--r--libtommath/bn_s_mp_mul_digs_fast.c4
-rw-r--r--libtommath/bn_s_mp_mul_high_digs.c4
-rw-r--r--libtommath/bn_s_mp_mul_high_digs_fast.c4
-rw-r--r--libtommath/changes.txt5
-rw-r--r--libtommath/makefile.unix2
-rw-r--r--libtommath/makefile_include.mk14
-rwxr-xr-xlibtommath/win64-arm/libtommath.dllbin69120 -> 69120 bytes
-rwxr-xr-xlibtommath/win64/libtommath.dllbin80896 -> 80896 bytes
18 files changed, 54 insertions, 21 deletions
diff --git a/.github/workflows/linux-build.yml b/.github/workflows/linux-build.yml
index 5c177aa..e3ad637 100644
--- a/.github/workflows/linux-build.yml
+++ b/.github/workflows/linux-build.yml
@@ -28,7 +28,7 @@ jobs:
working-directory: unix
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
diff --git a/.github/workflows/mac-build.yml b/.github/workflows/mac-build.yml
index 7be147e..7119f34 100644
--- a/.github/workflows/mac-build.yml
+++ b/.github/workflows/mac-build.yml
@@ -18,7 +18,7 @@ jobs:
working-directory: macosx
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
@@ -48,7 +48,7 @@ jobs:
working-directory: unix
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
diff --git a/.github/workflows/onefiledist.yml b/.github/workflows/onefiledist.yml
index 5c90701..a9f02c9 100644
--- a/.github/workflows/onefiledist.yml
+++ b/.github/workflows/onefiledist.yml
@@ -17,7 +17,7 @@ jobs:
shell: bash
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Prepare
run: |
touch generic/tclStubInit.c generic/tclOOStubInit.c
@@ -52,9 +52,9 @@ jobs:
shell: bash
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Checkout create-dmg
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
repository: create-dmg/create-dmg
ref: v1.0.8
@@ -122,7 +122,7 @@ jobs:
msystem: UCRT64
install: git mingw-w64-ucrt-x86_64-toolchain make zip
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Prepare
run: |
touch generic/tclStubInit.c generic/tclOOStubInit.c
diff --git a/.github/workflows/win-build.yml b/.github/workflows/win-build.yml
index 9c1fe43..13a1316 100644
--- a/.github/workflows/win-build.yml
+++ b/.github/workflows/win-build.yml
@@ -30,7 +30,7 @@ jobs:
# Using powershell means we need to explicitly stop on failure
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Init MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Build ${{ matrix.cfgopt }}
@@ -75,7 +75,7 @@ jobs:
msystem: MINGW64
install: git mingw-w64-x86_64-toolchain make
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
diff --git a/libtommath/appveyor.yml b/libtommath/appveyor.yml
index 08bb013..0a8e075 100644
--- a/libtommath/appveyor.yml
+++ b/libtommath/appveyor.yml
@@ -1,10 +1,9 @@
-version: 1.2.0-{build}
+version: 1.2.1-{build}
branches:
only:
- master
- develop
- /^release/
- - /^support/
- /^travis/
image:
- Visual Studio 2019
diff --git a/libtommath/bn_mp_2expt.c b/libtommath/bn_mp_2expt.c
index 0ae3df1..23de0c3 100644
--- a/libtommath/bn_mp_2expt.c
+++ b/libtommath/bn_mp_2expt.c
@@ -12,6 +12,10 @@ mp_err mp_2expt(mp_int *a, int b)
{
mp_err err;
+ if (b < 0) {
+ return MP_VAL;
+ }
+
/* zero a as per default */
mp_zero(a);
diff --git a/libtommath/bn_mp_grow.c b/libtommath/bn_mp_grow.c
index 9e904c5..2b16826 100644
--- a/libtommath/bn_mp_grow.c
+++ b/libtommath/bn_mp_grow.c
@@ -9,6 +9,10 @@ mp_err mp_grow(mp_int *a, int size)
int i;
mp_digit *tmp;
+ if (size < 0) {
+ return MP_VAL;
+ }
+
/* if the alloc size is smaller alloc more ram */
if (a->alloc < size) {
/* reallocate the array a->dp
diff --git a/libtommath/bn_mp_init_size.c b/libtommath/bn_mp_init_size.c
index d622687..9957383 100644
--- a/libtommath/bn_mp_init_size.c
+++ b/libtommath/bn_mp_init_size.c
@@ -6,6 +6,11 @@
/* init an mp_init for a given size */
mp_err mp_init_size(mp_int *a, int size)
{
+
+ if (size < 0) {
+ return MP_VAL;
+ }
+
size = MP_MAX(MP_MIN_PREC, size);
/* alloc mem */
diff --git a/libtommath/bn_mp_mul_2d.c b/libtommath/bn_mp_mul_2d.c
index 87354de..bfeaf2e 100644
--- a/libtommath/bn_mp_mul_2d.c
+++ b/libtommath/bn_mp_mul_2d.c
@@ -9,6 +9,10 @@ mp_err mp_mul_2d(const mp_int *a, int b, mp_int *c)
mp_digit d;
mp_err err;
+ if (b < 0) {
+ return MP_VAL;
+ }
+
/* copy */
if (a != c) {
if ((err = mp_copy(a, c)) != MP_OKAY) {
diff --git a/libtommath/bn_s_mp_mul_digs.c b/libtommath/bn_s_mp_mul_digs.c
index 64509d4..3682b49 100644
--- a/libtommath/bn_s_mp_mul_digs.c
+++ b/libtommath/bn_s_mp_mul_digs.c
@@ -16,6 +16,10 @@ mp_err s_mp_mul_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
mp_word r;
mp_digit tmpx, *tmpt, *tmpy;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* can we use the fast multiplier? */
if ((digs < MP_WARRAY) &&
(MP_MIN(a->used, b->used) < MP_MAXFAST)) {
diff --git a/libtommath/bn_s_mp_mul_digs_fast.c b/libtommath/bn_s_mp_mul_digs_fast.c
index b2a287b..3c4176a 100644
--- a/libtommath/bn_s_mp_mul_digs_fast.c
+++ b/libtommath/bn_s_mp_mul_digs_fast.c
@@ -26,6 +26,10 @@ mp_err s_mp_mul_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int digs)
mp_digit W[MP_WARRAY];
mp_word _W;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* grow the destination as required */
if (c->alloc < digs) {
if ((err = mp_grow(c, digs)) != MP_OKAY) {
diff --git a/libtommath/bn_s_mp_mul_high_digs.c b/libtommath/bn_s_mp_mul_high_digs.c
index 2bb2a50..c9dd355 100644
--- a/libtommath/bn_s_mp_mul_high_digs.c
+++ b/libtommath/bn_s_mp_mul_high_digs.c
@@ -15,6 +15,10 @@ mp_err s_mp_mul_high_digs(const mp_int *a, const mp_int *b, mp_int *c, int digs)
mp_word r;
mp_digit tmpx, *tmpt, *tmpy;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* can we use the fast multiplier? */
if (MP_HAS(S_MP_MUL_HIGH_DIGS_FAST)
&& ((a->used + b->used + 1) < MP_WARRAY)
diff --git a/libtommath/bn_s_mp_mul_high_digs_fast.c b/libtommath/bn_s_mp_mul_high_digs_fast.c
index a0513b4..0796f72 100644
--- a/libtommath/bn_s_mp_mul_high_digs_fast.c
+++ b/libtommath/bn_s_mp_mul_high_digs_fast.c
@@ -19,6 +19,10 @@ mp_err s_mp_mul_high_digs_fast(const mp_int *a, const mp_int *b, mp_int *c, int
mp_digit W[MP_WARRAY];
mp_word _W;
+ if (digs < 0) {
+ return MP_VAL;
+ }
+
/* grow the destination as required */
pa = a->used + b->used;
if (c->alloc < pa) {
diff --git a/libtommath/changes.txt b/libtommath/changes.txt
index cc6736c..956cdd4 100644
--- a/libtommath/changes.txt
+++ b/libtommath/changes.txt
@@ -1,3 +1,8 @@
+Sep 04th, 2023
+v1.2.1
+ -- Bugfix release because of potential integer overflow
+ c.f. PR #546 resp. CVE-2023-36328
+
Oct 22nd, 2019
v1.2.0
-- A huge refactoring of the library happened - renaming,
diff --git a/libtommath/makefile.unix b/libtommath/makefile.unix
index 4cefc7e..9336da0 100644
--- a/libtommath/makefile.unix
+++ b/libtommath/makefile.unix
@@ -21,7 +21,7 @@ RANLIB = ranlib
CFLAGS = -O2
LDFLAGS =
-VERSION = 1.2.0
+VERSION = 1.2.1
#Compilation flags
LTM_CFLAGS = -I. $(CFLAGS)
diff --git a/libtommath/makefile_include.mk b/libtommath/makefile_include.mk
index 452d37d..71f04dd 100644
--- a/libtommath/makefile_include.mk
+++ b/libtommath/makefile_include.mk
@@ -3,9 +3,9 @@
#
#version of library
-VERSION=1.2.0
-VERSION_PC=1.2.0
-VERSION_SO=3:0:2
+VERSION=1.2.1
+VERSION_PC=1.2.1
+VERSION_SO=3:1:2
PLATFORM := $(shell uname | sed -e 's/_.*//')
@@ -116,10 +116,10 @@ endif
# adjust coverage set
ifneq ($(filter $(_ARCH), i386 i686 x86_64 amd64 ia64),)
- COVERAGE = test timing
+ COVERAGE = test_standalone timing
COVERAGE_APP = ./test && ./timing
else
- COVERAGE = test
+ COVERAGE = test_standalone
COVERAGE_APP = ./test
endif
@@ -135,10 +135,6 @@ LIBPATH ?= $(PREFIX)/lib
INCPATH ?= $(PREFIX)/include
DATAPATH ?= $(PREFIX)/share/doc/libtommath/pdf
-# build & run test-suite
-check: test
- ./test
-
#make the code coverage of the library
#
coverage: LTM_CFLAGS += -fprofile-arcs -ftest-coverage -DTIMING_NO_LOGS
diff --git a/libtommath/win64-arm/libtommath.dll b/libtommath/win64-arm/libtommath.dll
index 37bccf7..aab3034 100755
--- a/libtommath/win64-arm/libtommath.dll
+++ b/libtommath/win64-arm/libtommath.dll
Binary files differ
diff --git a/libtommath/win64/libtommath.dll b/libtommath/win64/libtommath.dll
index ace8fce..8a6b1d9 100755
--- a/libtommath/win64/libtommath.dll
+++ b/libtommath/win64/libtommath.dll
Binary files differ