Gnuk
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.
Download
version 1.2.17. (stable)
VCS Checkout
git clone --recursive git://git.gniibe.org/gnuk/gnuk.git
Categories
Licensing
License
Verified by
Verified on
Notes
License
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.
License
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
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.--
License
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
Kind | Description |
---|---|
Required to build | polarssl (included in the source) |
Required to build | Make |
Required to build | Gcc |
Required to build | Chopstx (included in the source through a git submodule) |
Required to build | Bash |
Version comment
Reviewed at commit 4af98308e06c42dcc4e0be7a4faedc77e98de297 (version 1.2.17, tag release/1.2.17)
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.