Gnuk

From Free Software Directory
 
Jump to: navigation, search


[edit]

Gnuk

https://www.fsij.org/gnuk/
Firmware implemeting a GPG USB Token

Gnuk supports ED25519, X25519, ECDSA. It also supports RSA-2048 (1.5 seconds for decryption / signing) and RSA-4096 (very slow: 8 seconds for decryption/signing, creating keys fail due to memory usage).

It also works on GNU/Linux with some limitations.





Licensing

License

Verified by

Verified on

Notes

Verified by

GNUtoo

Verified on

21 April 2023

Notes

tools/rsa.py:

# egcd and modinv are from wikibooks
# https://en.wikibooks.org/wiki/Algorithm_Implementation/Mathematics/Extended_Euclidean_algorithm

The https://en.wikibooks.org/wiki/Algorithm_Implementation/Mathematics/Extended_Euclidean_algorithm page then has:

   This page was last edited on 12 February 2021, at 12:29.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy.

Verified by

GNUtoo

Verified on

21 April 2023

Notes

Gnuk includes PolarSSL. The PolarSSL in the polarssl/ directory.

PolarSSL doesn't have any license declaration in its README, but it has a license in all its source files (library/*.c and include/polarssl/*.h). The only files without a license are README, LICENSE and ChangeLog.

library/aes.c:

*  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.

library/rsa.c:

*  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.

library/bignum.c:

*  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.

include/polarssl/rsa.h:

*  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.


include/polarssl/bignum.h:

*  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.

include/polarssl/aes.h:

*  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.

include/polarssl/config.h:

*  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.

include/polarssl/bn_mul.h:

*  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.

License

Other

Verified by

GNUtoo

Verified on

21 April 2023

Notes

You can use/distribute/modify/etc. this for any purpose.

Verified by

GNUtoo

Verified on

21 April 2023

Notes

gnuk also includes chopstx 2.4 through a git submodule.

At the time of writing Chopstx 2.4 has already been reviewed in the free software directory, but the information is also copied here in case the Chopstx library version is increased separately in the free software directory.

The chopstx/README file has the following:

License
=======

It is distributed under GNU General Public Licence version 3 or later
(GPLv3+), with additional permission.  Please see COPYING and
EXCEPTION.

And chopstx/EXEPTION has the following:

For released versions of Chopstx, it is OK to distribute a binary
without the copy of the GNU GPL, as the license notice of Chopstx
include following exception to GNU GPL.

--------------------
As additional permission under GNU GPL version 3 section 7, you may
distribute non-source form of the Program without the copy of the GNU
GPL normally required by section 4, provided you inform the recipients
of GNU GPL by a written offer.
--------------------

Note that "written offer" is still needed when you distribute binary
only.
--

Verified by

GNUtoo

Verified on

21 April 2023

Notes

The README contains the following:

License
=======

It is distributed under GNU General Public Licence version 3 or later
(GPLv3+).  Please see src/COPYING.
Please note that it is distributed with external source code too.
Please read relevant licenses for external source code as well.

The author(s) of Gnuk expect users of Gnuk will be able to access the
source code of Gnuk, so that users can study the code and can modify
if needed.  This doesn't mean person who has a Gnuk Token should be
able to access everything on the Token, regardless of its protections.
Private keys, and other information should be protected properly.

In tools there are few files without a license: asm-thumb/README asm-thumb/blank_check.S asm-thumb/flash_write.S asm-thumb/opt_bytes_write.S calc_precompute_table_ecc.py get_raw_public_key.py gnuk_get_random.py openocd-script/lock.tcl openocd-script/options_read.tcl openocd-script/unlock.tcl openocd-script/write.tcl

rsa_example.key




Leaders and contributors

Resources and communication

Software prerequisites

KindDescription
Required to buildpolarssl (included in the source)
Required to buildMake
Required to buildGcc
Required to buildChopstx (included in the source through a git submodule)
Required to buildBash



Version comment

Reviewed at commit 4af98308e06c42dcc4e0be7a4faedc77e98de297 (version 1.2.17, tag release/1.2.17)


Entry





"GPL-3.0-or-later" is not in the list (ACEL, AFL-3.0, AGPL-1.0, AGPL-1.0-or-later, AGPL-3.0, AGPL-3.0-or-later, AGPL-3.0-or-later-with-exception, AGPL-3.0-with-exception, AGPLv1orlater, AGPLv3, ...) of allowed values for the "License" property.




"GPL-2.0-or-later" is not in the list (ACEL, AFL-3.0, AGPL-1.0, AGPL-1.0-or-later, AGPL-3.0, AGPL-3.0-or-later, AGPL-3.0-or-later-with-exception, AGPL-3.0-with-exception, AGPLv1orlater, AGPLv3, ...) of allowed values for the "License" property.




"GPL-3.0-or-later-with-exception" is not in the list (ACEL, AFL-3.0, AGPL-1.0, AGPL-1.0-or-later, AGPL-3.0, AGPL-3.0-or-later, AGPL-3.0-or-later-with-exception, AGPL-3.0-with-exception, AGPLv1orlater, AGPLv3, ...) of allowed values for the "License" property.







"CC-BY-SA-3.0" is not in the list (ACEL, AFL-3.0, AGPL-1.0, AGPL-1.0-or-later, AGPL-3.0, AGPL-3.0-or-later, AGPL-3.0-or-later-with-exception, AGPL-3.0-with-exception, AGPLv1orlater, AGPLv3, ...) of allowed values for the "License" property.
















"{{{Submitted date}}}" contains an extrinsic dash or other characters that are invalid for a date interpretation.









Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.