From 18355de6259488dea58a2d608c9aa2fa1f3cbd58 Mon Sep 17 00:00:00 2001
From: Steffen Jaeckel <s@jaeckel.eu>
Date: Sat, 29 Dec 2018 17:56:20 +0100
Subject: [PATCH] Update file headers

[skip ci]
---
 bn_error.c                            | 3 +--
 bn_fast_mp_invmod.c                   | 3 +--
 bn_fast_mp_montgomery_reduce.c        | 3 +--
 bn_fast_s_mp_mul_digs.c               | 3 +--
 bn_fast_s_mp_mul_high_digs.c          | 3 +--
 bn_fast_s_mp_sqr.c                    | 3 +--
 bn_mp_2expt.c                         | 3 +--
 bn_mp_abs.c                           | 3 +--
 bn_mp_add.c                           | 3 +--
 bn_mp_add_d.c                         | 3 +--
 bn_mp_addmod.c                        | 3 +--
 bn_mp_and.c                           | 3 +--
 bn_mp_clamp.c                         | 3 +--
 bn_mp_clear.c                         | 3 +--
 bn_mp_clear_multi.c                   | 3 +--
 bn_mp_cmp.c                           | 3 +--
 bn_mp_cmp_d.c                         | 3 +--
 bn_mp_cmp_mag.c                       | 3 +--
 bn_mp_cnt_lsb.c                       | 3 +--
 bn_mp_complement.c                    | 3 +--
 bn_mp_copy.c                          | 3 +--
 bn_mp_count_bits.c                    | 3 +--
 bn_mp_div.c                           | 3 +--
 bn_mp_div_2.c                         | 3 +--
 bn_mp_div_2d.c                        | 3 +--
 bn_mp_div_3.c                         | 3 +--
 bn_mp_div_d.c                         | 3 +--
 bn_mp_dr_is_modulus.c                 | 3 +--
 bn_mp_dr_reduce.c                     | 3 +--
 bn_mp_dr_setup.c                      | 3 +--
 bn_mp_exch.c                          | 3 +--
 bn_mp_export.c                        | 3 +--
 bn_mp_expt_d.c                        | 3 +--
 bn_mp_expt_d_ex.c                     | 3 +--
 bn_mp_exptmod.c                       | 3 +--
 bn_mp_exptmod_fast.c                  | 3 +--
 bn_mp_exteuclid.c                     | 3 +--
 bn_mp_fread.c                         | 3 +--
 bn_mp_fwrite.c                        | 3 +--
 bn_mp_gcd.c                           | 3 +--
 bn_mp_get_bit.c                       | 3 +--
 bn_mp_get_double.c                    | 3 +--
 bn_mp_get_int.c                       | 3 +--
 bn_mp_get_long.c                      | 3 +--
 bn_mp_get_long_long.c                 | 3 +--
 bn_mp_grow.c                          | 3 +--
 bn_mp_import.c                        | 3 +--
 bn_mp_init.c                          | 3 +--
 bn_mp_init_copy.c                     | 3 +--
 bn_mp_init_multi.c                    | 3 +--
 bn_mp_init_set.c                      | 3 +--
 bn_mp_init_set_int.c                  | 3 +--
 bn_mp_init_size.c                     | 3 +--
 bn_mp_invmod.c                        | 3 +--
 bn_mp_invmod_slow.c                   | 3 +--
 bn_mp_is_square.c                     | 3 +--
 bn_mp_jacobi.c                        | 3 +--
 bn_mp_karatsuba_mul.c                 | 3 +--
 bn_mp_karatsuba_sqr.c                 | 3 +--
 bn_mp_kronecker.c                     | 3 +--
 bn_mp_lcm.c                           | 3 +--
 bn_mp_lshd.c                          | 3 +--
 bn_mp_mod.c                           | 3 +--
 bn_mp_mod_2d.c                        | 3 +--
 bn_mp_mod_d.c                         | 3 +--
 bn_mp_montgomery_calc_normalization.c | 3 +--
 bn_mp_montgomery_reduce.c             | 3 +--
 bn_mp_montgomery_setup.c              | 3 +--
 bn_mp_mul.c                           | 3 +--
 bn_mp_mul_2.c                         | 3 +--
 bn_mp_mul_2d.c                        | 3 +--
 bn_mp_mul_d.c                         | 3 +--
 bn_mp_mulmod.c                        | 3 +--
 bn_mp_n_root.c                        | 3 +--
 bn_mp_n_root_ex.c                     | 3 +--
 bn_mp_neg.c                           | 3 +--
 bn_mp_or.c                            | 3 +--
 bn_mp_prime_fermat.c                  | 3 +--
 bn_mp_prime_frobenius_underwood.c     | 3 +--
 bn_mp_prime_is_divisible.c            | 3 +--
 bn_mp_prime_is_prime.c                | 3 +--
 bn_mp_prime_miller_rabin.c            | 3 +--
 bn_mp_prime_next_prime.c              | 3 +--
 bn_mp_prime_rabin_miller_trials.c     | 3 +--
 bn_mp_prime_random_ex.c               | 3 +--
 bn_mp_prime_strong_lucas_selfridge.c  | 3 +--
 bn_mp_radix_size.c                    | 3 +--
 bn_mp_radix_smap.c                    | 3 +--
 bn_mp_rand.c                          | 3 +--
 bn_mp_read_radix.c                    | 3 +--
 bn_mp_read_signed_bin.c               | 3 +--
 bn_mp_read_unsigned_bin.c             | 3 +--
 bn_mp_reduce.c                        | 3 +--
 bn_mp_reduce_2k.c                     | 3 +--
 bn_mp_reduce_2k_l.c                   | 3 +--
 bn_mp_reduce_2k_setup.c               | 3 +--
 bn_mp_reduce_2k_setup_l.c             | 3 +--
 bn_mp_reduce_is_2k.c                  | 3 +--
 bn_mp_reduce_is_2k_l.c                | 3 +--
 bn_mp_reduce_setup.c                  | 3 +--
 bn_mp_rshd.c                          | 3 +--
 bn_mp_set.c                           | 3 +--
 bn_mp_set_double.c                    | 3 +--
 bn_mp_set_int.c                       | 3 +--
 bn_mp_set_long.c                      | 3 +--
 bn_mp_set_long_long.c                 | 3 +--
 bn_mp_shrink.c                        | 3 +--
 bn_mp_signed_bin_size.c               | 3 +--
 bn_mp_sqr.c                           | 3 +--
 bn_mp_sqrmod.c                        | 3 +--
 bn_mp_sqrt.c                          | 3 +--
 bn_mp_sqrtmod_prime.c                 | 3 +--
 bn_mp_sub.c                           | 3 +--
 bn_mp_sub_d.c                         | 3 +--
 bn_mp_submod.c                        | 3 +--
 bn_mp_tc_and.c                        | 3 +--
 bn_mp_tc_div_2d.c                     | 3 +--
 bn_mp_tc_or.c                         | 3 +--
 bn_mp_tc_xor.c                        | 3 +--
 bn_mp_to_signed_bin.c                 | 3 +--
 bn_mp_to_signed_bin_n.c               | 3 +--
 bn_mp_to_unsigned_bin.c               | 3 +--
 bn_mp_to_unsigned_bin_n.c             | 3 +--
 bn_mp_toom_mul.c                      | 3 +--
 bn_mp_toom_sqr.c                      | 3 +--
 bn_mp_toradix.c                       | 3 +--
 bn_mp_toradix_n.c                     | 3 +--
 bn_mp_unsigned_bin_size.c             | 3 +--
 bn_mp_xor.c                           | 3 +--
 bn_mp_zero.c                          | 3 +--
 bn_prime_tab.c                        | 3 +--
 bn_reverse.c                          | 3 +--
 bn_s_mp_add.c                         | 3 +--
 bn_s_mp_exptmod.c                     | 3 +--
 bn_s_mp_mul_digs.c                    | 3 +--
 bn_s_mp_mul_high_digs.c               | 3 +--
 bn_s_mp_sqr.c                         | 3 +--
 bn_s_mp_sub.c                         | 3 +--
 bncore.c                              | 3 +--
 helper.pl                             | 3 +--
 tommath.h                             | 3 +--
 tommath_class.h                       | 3 +--
 tommath_private.h                     | 3 +--
 tommath_superclass.h                  | 3 +--
 144 files changed, 144 insertions(+), 288 deletions(-)

diff --git a/bn_error.c b/bn_error.c
index 05b398a..697875f 100644
--- a/bn_error.c
+++ b/bn_error.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 static const struct {
diff --git a/bn_fast_mp_invmod.c b/bn_fast_mp_invmod.c
index be1a810..3c8088f 100644
--- a/bn_fast_mp_invmod.c
+++ b/bn_fast_mp_invmod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes the modular inverse via binary extended euclidean algorithm,
diff --git a/bn_fast_mp_montgomery_reduce.c b/bn_fast_mp_montgomery_reduce.c
index 3454f58..eb5d90b 100644
--- a/bn_fast_mp_montgomery_reduce.c
+++ b/bn_fast_mp_montgomery_reduce.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes xR**-1 == x (mod N) via Montgomery Reduction
diff --git a/bn_fast_s_mp_mul_digs.c b/bn_fast_s_mp_mul_digs.c
index 1da314c..4736799 100644
--- a/bn_fast_s_mp_mul_digs.c
+++ b/bn_fast_s_mp_mul_digs.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Fast (comba) multiplier
diff --git a/bn_fast_s_mp_mul_high_digs.c b/bn_fast_s_mp_mul_high_digs.c
index 45d30ca..06c076c 100644
--- a/bn_fast_s_mp_mul_high_digs.c
+++ b/bn_fast_s_mp_mul_high_digs.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* this is a modified version of fast_s_mul_digs that only produces
diff --git a/bn_fast_s_mp_sqr.c b/bn_fast_s_mp_sqr.c
index 3614a44..5be8e9d 100644
--- a/bn_fast_s_mp_sqr.c
+++ b/bn_fast_s_mp_sqr.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* the jist of squaring...
diff --git a/bn_mp_2expt.c b/bn_mp_2expt.c
index 6737a55..42f5746 100644
--- a/bn_mp_2expt.c
+++ b/bn_mp_2expt.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes a = 2**b
diff --git a/bn_mp_abs.c b/bn_mp_abs.c
index 7c60014..f12d261 100644
--- a/bn_mp_abs.c
+++ b/bn_mp_abs.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* b = |a|
diff --git a/bn_mp_add.c b/bn_mp_add.c
index af53713..f04388a 100644
--- a/bn_mp_add.c
+++ b/bn_mp_add.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* high level addition (handles signs) */
diff --git a/bn_mp_add_d.c b/bn_mp_add_d.c
index 69cbd12..ecdb791 100644
--- a/bn_mp_add_d.c
+++ b/bn_mp_add_d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* single digit addition */
diff --git a/bn_mp_addmod.c b/bn_mp_addmod.c
index b7907e5..f8e4dda 100644
--- a/bn_mp_addmod.c
+++ b/bn_mp_addmod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* d = a + b (mod c) */
diff --git a/bn_mp_and.c b/bn_mp_and.c
index 24f380e..789bb58 100644
--- a/bn_mp_and.c
+++ b/bn_mp_and.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* AND two ints together */
diff --git a/bn_mp_clamp.c b/bn_mp_clamp.c
index 1bdfdc9..0953f4b 100644
--- a/bn_mp_clamp.c
+++ b/bn_mp_clamp.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* trim unused digits
diff --git a/bn_mp_clear.c b/bn_mp_clear.c
index fc01cb8..1f360b2 100644
--- a/bn_mp_clear.c
+++ b/bn_mp_clear.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* clear one (frees)  */
diff --git a/bn_mp_clear_multi.c b/bn_mp_clear_multi.c
index 9d7d9da..c96b4ac 100644
--- a/bn_mp_clear_multi.c
+++ b/bn_mp_clear_multi.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #include <stdarg.h>
diff --git a/bn_mp_cmp.c b/bn_mp_cmp.c
index d6e3761..fdcb8d5 100644
--- a/bn_mp_cmp.c
+++ b/bn_mp_cmp.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* compare two ints (signed)*/
diff --git a/bn_mp_cmp_d.c b/bn_mp_cmp_d.c
index 9816018..643cac6 100644
--- a/bn_mp_cmp_d.c
+++ b/bn_mp_cmp_d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* compare a digit */
diff --git a/bn_mp_cmp_mag.c b/bn_mp_cmp_mag.c
index a5f629a..7f6ce27 100644
--- a/bn_mp_cmp_mag.c
+++ b/bn_mp_cmp_mag.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* compare maginitude of two ints (unsigned) */
diff --git a/bn_mp_cnt_lsb.c b/bn_mp_cnt_lsb.c
index 8e8f488..5d9b327 100644
--- a/bn_mp_cnt_lsb.c
+++ b/bn_mp_cnt_lsb.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 static const int lnz[16] = {
diff --git a/bn_mp_complement.c b/bn_mp_complement.c
index 9dfddc3..5a5a969 100644
--- a/bn_mp_complement.c
+++ b/bn_mp_complement.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* b = ~a */
diff --git a/bn_mp_copy.c b/bn_mp_copy.c
index 718febd..51e0239 100644
--- a/bn_mp_copy.c
+++ b/bn_mp_copy.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* copy, b = a */
diff --git a/bn_mp_count_bits.c b/bn_mp_count_bits.c
index 11b84b2..f7a05df 100644
--- a/bn_mp_count_bits.c
+++ b/bn_mp_count_bits.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* returns the number of bits in an int */
diff --git a/bn_mp_div.c b/bn_mp_div.c
index 0d459d1..44e3cb9 100644
--- a/bn_mp_div.c
+++ b/bn_mp_div.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #ifdef BN_MP_DIV_SMALL
diff --git a/bn_mp_div_2.c b/bn_mp_div_2.c
index 7ced424..e679d00 100644
--- a/bn_mp_div_2.c
+++ b/bn_mp_div_2.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* b = a/2 */
diff --git a/bn_mp_div_2d.c b/bn_mp_div_2d.c
index 3fb822c..912faaf 100644
--- a/bn_mp_div_2d.c
+++ b/bn_mp_div_2d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* shift right by a certain bit count (store quotient in c, optional remainder in d) */
diff --git a/bn_mp_div_3.c b/bn_mp_div_3.c
index c5ca137..33a3432 100644
--- a/bn_mp_div_3.c
+++ b/bn_mp_div_3.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* divide by three (based on routine from MPI and the GMP manual) */
diff --git a/bn_mp_div_d.c b/bn_mp_div_d.c
index 3020ab2..d30ce33 100644
--- a/bn_mp_div_d.c
+++ b/bn_mp_div_d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 static int s_is_power_of_two(mp_digit b, int *p)
diff --git a/bn_mp_dr_is_modulus.c b/bn_mp_dr_is_modulus.c
index b01c77c..4d0c8ce 100644
--- a/bn_mp_dr_is_modulus.c
+++ b/bn_mp_dr_is_modulus.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* determines if a number is a valid DR modulus */
diff --git a/bn_mp_dr_reduce.c b/bn_mp_dr_reduce.c
index da36b85..da24d17 100644
--- a/bn_mp_dr_reduce.c
+++ b/bn_mp_dr_reduce.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* reduce "x" in place modulo "n" using the Diminished Radix algorithm.
diff --git a/bn_mp_dr_setup.c b/bn_mp_dr_setup.c
index afcdaf0..f8c7e7e 100644
--- a/bn_mp_dr_setup.c
+++ b/bn_mp_dr_setup.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* determines the setup value */
diff --git a/bn_mp_exch.c b/bn_mp_exch.c
index b846928..2f33877 100644
--- a/bn_mp_exch.c
+++ b/bn_mp_exch.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* swap the elements of two integers, for cases where you can't simply swap the
diff --git a/bn_mp_export.c b/bn_mp_export.c
index e55101a..ea48e90 100644
--- a/bn_mp_export.c
+++ b/bn_mp_export.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* based on gmp's mpz_export.
diff --git a/bn_mp_expt_d.c b/bn_mp_expt_d.c
index 7aff105..e0df09c 100644
--- a/bn_mp_expt_d.c
+++ b/bn_mp_expt_d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* wrapper function for mp_expt_d_ex() */
diff --git a/bn_mp_expt_d_ex.c b/bn_mp_expt_d_ex.c
index 53e880c..5a6f7b2 100644
--- a/bn_mp_expt_d_ex.c
+++ b/bn_mp_expt_d_ex.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* calculate c = a**b  using a square-multiply algorithm */
diff --git a/bn_mp_exptmod.c b/bn_mp_exptmod.c
index ec0cf7e..c400b7e 100644
--- a/bn_mp_exptmod.c
+++ b/bn_mp_exptmod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 
diff --git a/bn_mp_exptmod_fast.c b/bn_mp_exptmod_fast.c
index a63ebd5..4de9c5f 100755
--- a/bn_mp_exptmod_fast.c
+++ b/bn_mp_exptmod_fast.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes Y == G**X mod P, HAC pp.616, Algorithm 14.85
diff --git a/bn_mp_exteuclid.c b/bn_mp_exteuclid.c
index b13ee30..c23a6c1 100644
--- a/bn_mp_exteuclid.c
+++ b/bn_mp_exteuclid.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Extended euclidean algorithm of (a, b) produces
diff --git a/bn_mp_fread.c b/bn_mp_fread.c
index 7652aac..9c935cb 100644
--- a/bn_mp_fread.c
+++ b/bn_mp_fread.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #ifndef LTM_NO_FILE
diff --git a/bn_mp_fwrite.c b/bn_mp_fwrite.c
index 8df2134..9f0c3df 100644
--- a/bn_mp_fwrite.c
+++ b/bn_mp_fwrite.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #ifndef LTM_NO_FILE
diff --git a/bn_mp_gcd.c b/bn_mp_gcd.c
index 0a5000e..05030c2 100644
--- a/bn_mp_gcd.c
+++ b/bn_mp_gcd.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Greatest Common Divisor using the binary method */
diff --git a/bn_mp_get_bit.c b/bn_mp_get_bit.c
index 0b86f8d..ab732c4 100644
--- a/bn_mp_get_bit.c
+++ b/bn_mp_get_bit.c
@@ -10,8 +10,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Checks the bit at position b and returns MP_YES
diff --git a/bn_mp_get_double.c b/bn_mp_get_double.c
index 8ce314f..3ed5a71 100644
--- a/bn_mp_get_double.c
+++ b/bn_mp_get_double.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 double mp_get_double(const mp_int *a)
diff --git a/bn_mp_get_int.c b/bn_mp_get_int.c
index 4f99363..13eddbf 100644
--- a/bn_mp_get_int.c
+++ b/bn_mp_get_int.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* get the lower 32-bits of an mp_int */
diff --git a/bn_mp_get_long.c b/bn_mp_get_long.c
index 7a455df..a4d05d6 100644
--- a/bn_mp_get_long.c
+++ b/bn_mp_get_long.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* get the lower unsigned long of an mp_int, platform dependent */
diff --git a/bn_mp_get_long_long.c b/bn_mp_get_long_long.c
index 04bde20..4201b4d 100644
--- a/bn_mp_get_long_long.c
+++ b/bn_mp_get_long_long.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* get the lower unsigned long long of an mp_int, platform dependent */
diff --git a/bn_mp_grow.c b/bn_mp_grow.c
index d336ba1..1d92b29 100644
--- a/bn_mp_grow.c
+++ b/bn_mp_grow.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* grow as required */
diff --git a/bn_mp_import.c b/bn_mp_import.c
index e28d20e..066c5b3 100644
--- a/bn_mp_import.c
+++ b/bn_mp_import.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* based on gmp's mpz_import.
diff --git a/bn_mp_init.c b/bn_mp_init.c
index cdc0bd2..7520089 100644
--- a/bn_mp_init.c
+++ b/bn_mp_init.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* init a new mp_int */
diff --git a/bn_mp_init_copy.c b/bn_mp_init_copy.c
index 3d3e6cd..4739a98 100644
--- a/bn_mp_init_copy.c
+++ b/bn_mp_init_copy.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* creates "a" then copies b into it */
diff --git a/bn_mp_init_multi.c b/bn_mp_init_multi.c
index d254696..7f8bd04 100644
--- a/bn_mp_init_multi.c
+++ b/bn_mp_init_multi.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #include <stdarg.h>
diff --git a/bn_mp_init_set.c b/bn_mp_init_set.c
index 4bce757..36606af 100644
--- a/bn_mp_init_set.c
+++ b/bn_mp_init_set.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* initialize and set a digit */
diff --git a/bn_mp_init_set_int.c b/bn_mp_init_set_int.c
index 10c5bb7..7d81811 100644
--- a/bn_mp_init_set_int.c
+++ b/bn_mp_init_set_int.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* initialize and set a digit */
diff --git a/bn_mp_init_size.c b/bn_mp_init_size.c
index ccca5b9..9b933fb 100644
--- a/bn_mp_init_size.c
+++ b/bn_mp_init_size.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* init an mp_init for a given size */
diff --git a/bn_mp_invmod.c b/bn_mp_invmod.c
index 8dd188c..f1a482d 100644
--- a/bn_mp_invmod.c
+++ b/bn_mp_invmod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* hac 14.61, pp608 */
diff --git a/bn_mp_invmod_slow.c b/bn_mp_invmod_slow.c
index 49ed095..e60cf04 100644
--- a/bn_mp_invmod_slow.c
+++ b/bn_mp_invmod_slow.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* hac 14.61, pp608 */
diff --git a/bn_mp_is_square.c b/bn_mp_is_square.c
index 6e3cb56..5363a47 100644
--- a/bn_mp_is_square.c
+++ b/bn_mp_is_square.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Check if remainders are possible squares - fast exclude non-squares */
diff --git a/bn_mp_jacobi.c b/bn_mp_jacobi.c
index f62e1e4..1eb3dd4 100644
--- a/bn_mp_jacobi.c
+++ b/bn_mp_jacobi.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes the jacobi c = (a | n) (or Legendre if n is prime)
diff --git a/bn_mp_karatsuba_mul.c b/bn_mp_karatsuba_mul.c
index af12c55..cb75bca 100644
--- a/bn_mp_karatsuba_mul.c
+++ b/bn_mp_karatsuba_mul.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* c = |a| * |b| using Karatsuba Multiplication using
diff --git a/bn_mp_karatsuba_sqr.c b/bn_mp_karatsuba_sqr.c
index 99a31b8..c219a37 100644
--- a/bn_mp_karatsuba_sqr.c
+++ b/bn_mp_karatsuba_sqr.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Karatsuba squaring, computes b = a*a using three
diff --git a/bn_mp_kronecker.c b/bn_mp_kronecker.c
index e873daa..a20fa74 100644
--- a/bn_mp_kronecker.c
+++ b/bn_mp_kronecker.c
@@ -10,8 +10,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /*
diff --git a/bn_mp_lcm.c b/bn_mp_lcm.c
index 3798afc..cb9fa3d 100644
--- a/bn_mp_lcm.c
+++ b/bn_mp_lcm.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes least common multiple as |a*b|/(a, b) */
diff --git a/bn_mp_lshd.c b/bn_mp_lshd.c
index 649df90..6762a10 100644
--- a/bn_mp_lshd.c
+++ b/bn_mp_lshd.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* shift left a certain amount of digits */
diff --git a/bn_mp_mod.c b/bn_mp_mod.c
index 21acf8c..fa022a7 100644
--- a/bn_mp_mod.c
+++ b/bn_mp_mod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* c = a mod b, 0 <= c < b if b > 0, b < c <= 0 if b < 0 */
diff --git a/bn_mp_mod_2d.c b/bn_mp_mod_2d.c
index bf69221..759198b 100644
--- a/bn_mp_mod_2d.c
+++ b/bn_mp_mod_2d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* calc a value mod 2**b */
diff --git a/bn_mp_mod_d.c b/bn_mp_mod_d.c
index 5252c4f..f58b6b5 100644
--- a/bn_mp_mod_d.c
+++ b/bn_mp_mod_d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 int mp_mod_d(const mp_int *a, mp_digit b, mp_digit *c)
diff --git a/bn_mp_montgomery_calc_normalization.c b/bn_mp_montgomery_calc_normalization.c
index 8b0a320..848378c 100644
--- a/bn_mp_montgomery_calc_normalization.c
+++ b/bn_mp_montgomery_calc_normalization.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /*
diff --git a/bn_mp_montgomery_reduce.c b/bn_mp_montgomery_reduce.c
index 2def073..382c7cc 100644
--- a/bn_mp_montgomery_reduce.c
+++ b/bn_mp_montgomery_reduce.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes xR**-1 == x (mod N) via Montgomery Reduction */
diff --git a/bn_mp_montgomery_setup.c b/bn_mp_montgomery_setup.c
index cd53b6d..26c632a 100644
--- a/bn_mp_montgomery_setup.c
+++ b/bn_mp_montgomery_setup.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* setups the montgomery reduction stuff */
diff --git a/bn_mp_mul.c b/bn_mp_mul.c
index e7613a3..f83b1b7 100644
--- a/bn_mp_mul.c
+++ b/bn_mp_mul.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* high level multiplication (handles sign) */
diff --git a/bn_mp_mul_2.c b/bn_mp_mul_2.c
index e0f051f..2ed5516 100644
--- a/bn_mp_mul_2.c
+++ b/bn_mp_mul_2.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* b = a*2 */
diff --git a/bn_mp_mul_2d.c b/bn_mp_mul_2d.c
index 42c6535..9ea548d 100644
--- a/bn_mp_mul_2d.c
+++ b/bn_mp_mul_2d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* shift left by a certain bit count */
diff --git a/bn_mp_mul_d.c b/bn_mp_mul_d.c
index d6bddfd..936e133 100644
--- a/bn_mp_mul_d.c
+++ b/bn_mp_mul_d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* multiply by a digit */
diff --git a/bn_mp_mulmod.c b/bn_mp_mulmod.c
index ca9ef3e..4192452 100644
--- a/bn_mp_mulmod.c
+++ b/bn_mp_mulmod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* d = a * b (mod c) */
diff --git a/bn_mp_n_root.c b/bn_mp_n_root.c
index 16232d8..c14771f 100644
--- a/bn_mp_n_root.c
+++ b/bn_mp_n_root.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* wrapper function for mp_n_root_ex()
diff --git a/bn_mp_n_root_ex.c b/bn_mp_n_root_ex.c
index 9fd7098..ebc08ba 100644
--- a/bn_mp_n_root_ex.c
+++ b/bn_mp_n_root_ex.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* find the n'th root of an integer
diff --git a/bn_mp_neg.c b/bn_mp_neg.c
index 612b9c7..9020525 100644
--- a/bn_mp_neg.c
+++ b/bn_mp_neg.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* b = -a */
diff --git a/bn_mp_or.c b/bn_mp_or.c
index 151dfff..a0f2711 100644
--- a/bn_mp_or.c
+++ b/bn_mp_or.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* OR two ints together */
diff --git a/bn_mp_prime_fermat.c b/bn_mp_prime_fermat.c
index 7cd39bd..63ced96 100644
--- a/bn_mp_prime_fermat.c
+++ b/bn_mp_prime_fermat.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* performs one Fermat test.
diff --git a/bn_mp_prime_frobenius_underwood.c b/bn_mp_prime_frobenius_underwood.c
index 541c694..4ceb51e 100644
--- a/bn_mp_prime_frobenius_underwood.c
+++ b/bn_mp_prime_frobenius_underwood.c
@@ -10,8 +10,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /*
diff --git a/bn_mp_prime_is_divisible.c b/bn_mp_prime_is_divisible.c
index 706521e..0e6e2f3 100644
--- a/bn_mp_prime_is_divisible.c
+++ b/bn_mp_prime_is_divisible.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* determines if an integers is divisible by one
diff --git a/bn_mp_prime_is_prime.c b/bn_mp_prime_is_prime.c
index ce6958a..63d3725 100644
--- a/bn_mp_prime_is_prime.c
+++ b/bn_mp_prime_is_prime.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* portable integer log of two with small footprint */
diff --git a/bn_mp_prime_miller_rabin.c b/bn_mp_prime_miller_rabin.c
index 5d94e36..a12e533 100644
--- a/bn_mp_prime_miller_rabin.c
+++ b/bn_mp_prime_miller_rabin.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Miller-Rabin test of "a" to the base of "b" as described in
diff --git a/bn_mp_prime_next_prime.c b/bn_mp_prime_next_prime.c
index 44ab116..28256ca 100644
--- a/bn_mp_prime_next_prime.c
+++ b/bn_mp_prime_next_prime.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* finds the next prime after the number "a" using "t" trials
diff --git a/bn_mp_prime_rabin_miller_trials.c b/bn_mp_prime_rabin_miller_trials.c
index 785a60b..1c0a748 100644
--- a/bn_mp_prime_rabin_miller_trials.c
+++ b/bn_mp_prime_rabin_miller_trials.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 
diff --git a/bn_mp_prime_random_ex.c b/bn_mp_prime_random_ex.c
index 13fdcdf..b0b4632 100644
--- a/bn_mp_prime_random_ex.c
+++ b/bn_mp_prime_random_ex.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* makes a truly random prime of a given size (bits),
diff --git a/bn_mp_prime_strong_lucas_selfridge.c b/bn_mp_prime_strong_lucas_selfridge.c
index 0f5bf70..ca15e3c 100644
--- a/bn_mp_prime_strong_lucas_selfridge.c
+++ b/bn_mp_prime_strong_lucas_selfridge.c
@@ -10,8 +10,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /*
diff --git a/bn_mp_radix_size.c b/bn_mp_radix_size.c
index 1e286ed..8583faa 100644
--- a/bn_mp_radix_size.c
+++ b/bn_mp_radix_size.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* returns size of ASCII reprensentation */
diff --git a/bn_mp_radix_smap.c b/bn_mp_radix_smap.c
index 6e9f64a..15730fe 100644
--- a/bn_mp_radix_smap.c
+++ b/bn_mp_radix_smap.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* chars used in radix conversions */
diff --git a/bn_mp_rand.c b/bn_mp_rand.c
index af017f2..b66d1b0 100644
--- a/bn_mp_rand.c
+++ b/bn_mp_rand.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* First the OS-specific special cases
diff --git a/bn_mp_read_radix.c b/bn_mp_read_radix.c
index 02ba113..200601e 100644
--- a/bn_mp_read_radix.c
+++ b/bn_mp_read_radix.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* read a string [ASCII] in a given radix */
diff --git a/bn_mp_read_signed_bin.c b/bn_mp_read_signed_bin.c
index 3a0e231..e97a1d0 100644
--- a/bn_mp_read_signed_bin.c
+++ b/bn_mp_read_signed_bin.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* read signed bin, big endian, first byte is 0==positive or 1==negative */
diff --git a/bn_mp_read_unsigned_bin.c b/bn_mp_read_unsigned_bin.c
index f29e7e6..648762a 100644
--- a/bn_mp_read_unsigned_bin.c
+++ b/bn_mp_read_unsigned_bin.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* reads a unsigned char array, assumes the msb is stored first [big endian] */
diff --git a/bn_mp_reduce.c b/bn_mp_reduce.c
index 3f93387..cbf8641 100644
--- a/bn_mp_reduce.c
+++ b/bn_mp_reduce.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* reduces x mod m, assumes 0 < x < m**2, mu is
diff --git a/bn_mp_reduce_2k.c b/bn_mp_reduce_2k.c
index f5c74b8..af673e6 100644
--- a/bn_mp_reduce_2k.c
+++ b/bn_mp_reduce_2k.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* reduces a modulo n where n is of the form 2**p - d */
diff --git a/bn_mp_reduce_2k_l.c b/bn_mp_reduce_2k_l.c
index cbdfad7..afdc321 100644
--- a/bn_mp_reduce_2k_l.c
+++ b/bn_mp_reduce_2k_l.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* reduces a modulo n where n is of the form 2**p - d
diff --git a/bn_mp_reduce_2k_setup.c b/bn_mp_reduce_2k_setup.c
index 11248a3..166a965 100644
--- a/bn_mp_reduce_2k_setup.c
+++ b/bn_mp_reduce_2k_setup.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* determines the setup value */
diff --git a/bn_mp_reduce_2k_setup_l.c b/bn_mp_reduce_2k_setup_l.c
index 04c7634..5584b48 100644
--- a/bn_mp_reduce_2k_setup_l.c
+++ b/bn_mp_reduce_2k_setup_l.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* determines the setup value */
diff --git a/bn_mp_reduce_is_2k.c b/bn_mp_reduce_is_2k.c
index 14612c0..8be985e 100644
--- a/bn_mp_reduce_is_2k.c
+++ b/bn_mp_reduce_is_2k.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* determines if mp_reduce_2k can be used */
diff --git a/bn_mp_reduce_is_2k_l.c b/bn_mp_reduce_is_2k_l.c
index 7c9cacf..da4aeda 100644
--- a/bn_mp_reduce_is_2k_l.c
+++ b/bn_mp_reduce_is_2k_l.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* determines if reduce_2k_l can be used */
diff --git a/bn_mp_reduce_setup.c b/bn_mp_reduce_setup.c
index 92d03fc..134d8a3 100644
--- a/bn_mp_reduce_setup.c
+++ b/bn_mp_reduce_setup.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* pre-calculate the value required for Barrett reduction
diff --git a/bn_mp_rshd.c b/bn_mp_rshd.c
index d17ad00..61ab8c0 100644
--- a/bn_mp_rshd.c
+++ b/bn_mp_rshd.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* shift right a certain amount of digits */
diff --git a/bn_mp_set.c b/bn_mp_set.c
index dc03f4c..590a100 100644
--- a/bn_mp_set.c
+++ b/bn_mp_set.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* set to a digit */
diff --git a/bn_mp_set_double.c b/bn_mp_set_double.c
index c78cb22..76f6293 100644
--- a/bn_mp_set_double.c
+++ b/bn_mp_set_double.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559)
diff --git a/bn_mp_set_int.c b/bn_mp_set_int.c
index 4d6e580..4f01e25 100644
--- a/bn_mp_set_int.c
+++ b/bn_mp_set_int.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* set a 32-bit const */
diff --git a/bn_mp_set_long.c b/bn_mp_set_long.c
index f842632..35be8e7 100644
--- a/bn_mp_set_long.c
+++ b/bn_mp_set_long.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* set a platform dependent unsigned long int */
diff --git a/bn_mp_set_long_long.c b/bn_mp_set_long_long.c
index 7c77501..850f33c 100644
--- a/bn_mp_set_long_long.c
+++ b/bn_mp_set_long_long.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* set a platform dependent unsigned long long int */
diff --git a/bn_mp_shrink.c b/bn_mp_shrink.c
index b2e9d89..ff7905f 100644
--- a/bn_mp_shrink.c
+++ b/bn_mp_shrink.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* shrink a bignum */
diff --git a/bn_mp_signed_bin_size.c b/bn_mp_signed_bin_size.c
index 529482f..89cd43e 100644
--- a/bn_mp_signed_bin_size.c
+++ b/bn_mp_signed_bin_size.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* get the size for an signed equivalent */
diff --git a/bn_mp_sqr.c b/bn_mp_sqr.c
index 237c919..63bb2e2 100644
--- a/bn_mp_sqr.c
+++ b/bn_mp_sqr.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* computes b = a*a */
diff --git a/bn_mp_sqrmod.c b/bn_mp_sqrmod.c
index f3ed8a8..953829e 100644
--- a/bn_mp_sqrmod.c
+++ b/bn_mp_sqrmod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* c = a * a (mod b) */
diff --git a/bn_mp_sqrt.c b/bn_mp_sqrt.c
index ec1b785..55b5c79 100644
--- a/bn_mp_sqrt.c
+++ b/bn_mp_sqrt.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* this function is less generic than mp_n_root, simpler and faster */
diff --git a/bn_mp_sqrtmod_prime.c b/bn_mp_sqrtmod_prime.c
index 6502f78..cc4da3b 100644
--- a/bn_mp_sqrtmod_prime.c
+++ b/bn_mp_sqrtmod_prime.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Tonelli-Shanks algorithm
diff --git a/bn_mp_sub.c b/bn_mp_sub.c
index 9ef1059..df31951 100644
--- a/bn_mp_sub.c
+++ b/bn_mp_sub.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* high level subtraction (handles signs) */
diff --git a/bn_mp_sub_d.c b/bn_mp_sub_d.c
index 1ac9859..d8ac250 100644
--- a/bn_mp_sub_d.c
+++ b/bn_mp_sub_d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* single digit subtraction */
diff --git a/bn_mp_submod.c b/bn_mp_submod.c
index 0325b9d..ba9ee6f 100644
--- a/bn_mp_submod.c
+++ b/bn_mp_submod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* d = a - b (mod c) */
diff --git a/bn_mp_tc_and.c b/bn_mp_tc_and.c
index d1f1b91..9834dc6 100644
--- a/bn_mp_tc_and.c
+++ b/bn_mp_tc_and.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* two complement and */
diff --git a/bn_mp_tc_div_2d.c b/bn_mp_tc_div_2d.c
index ea190c3..4ff0acf 100644
--- a/bn_mp_tc_div_2d.c
+++ b/bn_mp_tc_div_2d.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* two complement right shift */
diff --git a/bn_mp_tc_or.c b/bn_mp_tc_or.c
index f177c39..0941468 100644
--- a/bn_mp_tc_or.c
+++ b/bn_mp_tc_or.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* two complement or */
diff --git a/bn_mp_tc_xor.c b/bn_mp_tc_xor.c
index a2c67a2..cdb1d40 100644
--- a/bn_mp_tc_xor.c
+++ b/bn_mp_tc_xor.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* two complement xor */
diff --git a/bn_mp_to_signed_bin.c b/bn_mp_to_signed_bin.c
index 22a938e..04e3b84 100644
--- a/bn_mp_to_signed_bin.c
+++ b/bn_mp_to_signed_bin.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* store in signed [big endian] format */
diff --git a/bn_mp_to_signed_bin_n.c b/bn_mp_to_signed_bin_n.c
index 417a380..d13fede 100644
--- a/bn_mp_to_signed_bin_n.c
+++ b/bn_mp_to_signed_bin_n.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* store in signed [big endian] format */
diff --git a/bn_mp_to_unsigned_bin.c b/bn_mp_to_unsigned_bin.c
index aa719ae..ab57514 100644
--- a/bn_mp_to_unsigned_bin.c
+++ b/bn_mp_to_unsigned_bin.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* store in unsigned [big endian] format */
diff --git a/bn_mp_to_unsigned_bin_n.c b/bn_mp_to_unsigned_bin_n.c
index 43676e8..c53e7fb 100644
--- a/bn_mp_to_unsigned_bin_n.c
+++ b/bn_mp_to_unsigned_bin_n.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* store in unsigned [big endian] format */
diff --git a/bn_mp_toom_mul.c b/bn_mp_toom_mul.c
index ff7df02..32b5e43 100644
--- a/bn_mp_toom_mul.c
+++ b/bn_mp_toom_mul.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* multiplication using the Toom-Cook 3-way algorithm
diff --git a/bn_mp_toom_sqr.c b/bn_mp_toom_sqr.c
index edc89cd..8595db5 100644
--- a/bn_mp_toom_sqr.c
+++ b/bn_mp_toom_sqr.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* squaring using Toom-Cook 3-way algorithm */
diff --git a/bn_mp_toradix.c b/bn_mp_toradix.c
index 8c05e75..c6e1c65 100644
--- a/bn_mp_toradix.c
+++ b/bn_mp_toradix.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* stores a bignum as a ASCII string in a given radix (2..64) */
diff --git a/bn_mp_toradix_n.c b/bn_mp_toradix_n.c
index 27cb401..84431f2 100644
--- a/bn_mp_toradix_n.c
+++ b/bn_mp_toradix_n.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* stores a bignum as a ASCII string in a given radix (2..64)
diff --git a/bn_mp_unsigned_bin_size.c b/bn_mp_unsigned_bin_size.c
index bc9b853..d716c8f 100644
--- a/bn_mp_unsigned_bin_size.c
+++ b/bn_mp_unsigned_bin_size.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* get the size for an unsigned equivalent */
diff --git a/bn_mp_xor.c b/bn_mp_xor.c
index b502eb0..bfcdbb9 100644
--- a/bn_mp_xor.c
+++ b/bn_mp_xor.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* XOR two ints together */
diff --git a/bn_mp_zero.c b/bn_mp_zero.c
index 78f165b..89f7c29 100644
--- a/bn_mp_zero.c
+++ b/bn_mp_zero.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* set to zero */
diff --git a/bn_prime_tab.c b/bn_prime_tab.c
index f23afcb..5c0e192 100644
--- a/bn_prime_tab.c
+++ b/bn_prime_tab.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 const mp_digit ltm_prime_tab[] = {
diff --git a/bn_reverse.c b/bn_reverse.c
index 5b49172..2990528 100644
--- a/bn_reverse.c
+++ b/bn_reverse.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* reverse an array, used for radix code */
diff --git a/bn_s_mp_add.c b/bn_s_mp_add.c
index 8a3bc82..979e470 100644
--- a/bn_s_mp_add.c
+++ b/bn_s_mp_add.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* low level addition, based on HAC pp.594, Algorithm 14.7 */
diff --git a/bn_s_mp_exptmod.c b/bn_s_mp_exptmod.c
index 52a6422..b22cde8 100644
--- a/bn_s_mp_exptmod.c
+++ b/bn_s_mp_exptmod.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #ifdef MP_LOW_MEM
diff --git a/bn_s_mp_mul_digs.c b/bn_s_mp_mul_digs.c
index 442c803..332e974 100644
--- a/bn_s_mp_mul_digs.c
+++ b/bn_s_mp_mul_digs.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* multiplies |a| * |b| and only computes upto digs digits of result
diff --git a/bn_s_mp_mul_high_digs.c b/bn_s_mp_mul_high_digs.c
index e6efd4e..509682b 100644
--- a/bn_s_mp_mul_high_digs.c
+++ b/bn_s_mp_mul_high_digs.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* multiplies |a| * |b| and does not compute the lower digs digits
diff --git a/bn_s_mp_sqr.c b/bn_s_mp_sqr.c
index 4cab045..b3d0fd0 100644
--- a/bn_s_mp_sqr.c
+++ b/bn_s_mp_sqr.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* low level squaring, b = a*a, HAC pp.596-597, Algorithm 14.16 */
diff --git a/bn_s_mp_sub.c b/bn_s_mp_sub.c
index fbce7ca..88e44dc 100644
--- a/bn_s_mp_sub.c
+++ b/bn_s_mp_sub.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* low level subtraction (assumes |a| > |b|), HAC pp.595 Algorithm 14.9 */
diff --git a/bncore.c b/bncore.c
index 916712d..c97b8e1 100644
--- a/bncore.c
+++ b/bncore.c
@@ -9,8 +9,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* Known optimal configurations
diff --git a/helper.pl b/helper.pl
index 673889f..5afeb82 100755
--- a/helper.pl
+++ b/helper.pl
@@ -90,8 +90,7 @@ sub check_comments {
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 MARKER
   my $last_comment = <<'MARKER';
diff --git a/tommath.h b/tommath.h
index 6323c1f..555b4e3 100644
--- a/tommath.h
+++ b/tommath.h
@@ -7,8 +7,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 #ifndef BN_H_
 #define BN_H_
diff --git a/tommath_class.h b/tommath_class.h
index aa9f828..7dfd838 100644
--- a/tommath_class.h
+++ b/tommath_class.h
@@ -7,8 +7,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 #if !(defined(LTM1) && defined(LTM2) && defined(LTM3))
diff --git a/tommath_private.h b/tommath_private.h
index 133aea9..3546370 100644
--- a/tommath_private.h
+++ b/tommath_private.h
@@ -7,8 +7,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 #ifndef TOMMATH_PRIV_H_
 #define TOMMATH_PRIV_H_
diff --git a/tommath_superclass.h b/tommath_superclass.h
index 718c75d..7b98ed6 100644
--- a/tommath_superclass.h
+++ b/tommath_superclass.h
@@ -7,8 +7,7 @@
  * Michael Fromberger but has been written from scratch with
  * additional optimizations in place.
  *
- * The library is free for all purposes without any express
- * guarantee it works.
+ * SPDX-License-Identifier: Unlicense
  */
 
 /* super class file for PK algos */