Utils
Set of Java tools :
- Decentralized identifier generation (similar to UUID, but with hash possibilities and some enforcement)
- XML, YAML and properties class mapping
- Timer
- Get size of Java memory objects
- OS tools (OS version, trace route, hardrive tools, network speed)
- DNS checking and email validation tool
- Progress monitor with progress bar wrapper to enable multi-plateform compatibility
- Cryptography tools
- Home interface that use of three Implementations : Java native JCE, GNU CRYPT, BouncyCastle (+ BouncyCastle FIPS and BouncyCastle PQC)
- Encryption algorithms does not need signed JAR to work. So the release work on official Oracle JVM.
- MessageDigest algorithms
- Symmetric signatures
- Asymmetric signatures
- Symmetric encryptions
- Asymmetric encryptions and key wrappers
- Key agreements
- DRBG
- JPAKE algorithm and home secret message exchanger
- Login thanks to a symmetric signature process
- Login thanks to an asymmetric signature process
- Use of post quantum algorithms (New Hope key exchanger, Sphincs, McEliece)
- Availability of hybrid assymetric key pairs. One hybrid key pair assemble two key pairs : one used with a non post quantum algorithm, and one another used with a post quantum algorithm. Hybrid algorithms like asymmetric encrytion, asymmetric signatures, key agreements, key wrappers, ... enable to use two algorithms (non PQC and PQC) at the same time, in order to keep well-tested non post quantum algorithms with new expérimental post quantum algorithms.
- Compatible with Java 8 and newer
- Random input/output streams (byte array, file).
- Random cache file output stream which enables to write data into a byte array until an amount of data was reached. Then, when this amount was reached, use instead a file output stream.
Changes
Requirements under Ubuntu/Debian :
- Please install the package ethtool, rng-tools, mtr(only debian)
How to use it ?
With Gradle :
Adapt into your build.gradle file, the next code :
...
dependencies {
...
api(group:'com.distrimind.util', name: 'Utils', version: '6.3.1-STABLE')
...
//choose one of these optional drivers for GnuCrypto algorithms
testImplementation(group:'gnu', name: 'Gnu-Crypt', version: '1.3.0')
}
...
Librairies are available on Maven Central. You can check signatures of dependencies with this public GPG key. You can also use the next repository :
...
repositories {
...
maven {
url "https://artifactory.distri-mind.fr:443/artifactory/gradle-release/"
}
...
}
...
To know what last version has been uploaded, please refer to versions availables into this repository
With Maven :
Adapt into your pom.xml file, the next code :
...
<project>
...
<dependencies>
...
<dependency>
<groupId>com.distrimind.util</groupId>
<artifactId>Utils</artifactId>
<version>6.3.1-STABLE</version>
</dependency>
<!-- choose one of these optional drivers for GnuCrypto algorithms-->
<dependency>
<groupId>gnu</groupId>
<artifactId>Gnu-Crypt</artifactId>
<version>1.3.0</version>
</dependency>
...
</dependencies>
...
</project>
...
Librairies are available on Maven Central. You can check signatures of dependencies with this public GPG key. You can also use the next repository :
...
<repositories>
...
<repository>
<id>DistriMind-Public</id>
<url>https://artifactory.distri-mind.fr:443/artifactory/gradle-release/</url>
</repository>
...
</repositories>
...
To know what last version has been uploaded, please refer to versions availables into this repository
License
This code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 only (GPL-3.0-only), as published by the Free Software Foundation.
**Linking Exception for Jason Mahdjoub and Affiliated Entities ** In addition to the terms of the GPL-3.0-only, a linking exception is provided for this code. This exception applies exclusively to Jason Mahdjoub and any affiliated entity, including but not limited to an enterprise, a company, or an association created or co-created by Jason Mahdjoub. The details of this exception are specified in the file whose name starts with LINKING-EXCEPTION (or a file with a similar name). This file included with this code.
This code 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 version 3 for more details.
You should have received a copy of the GNU General Public License version 3 along with this code, with a file whose name starts with COPYING (or with a file which have a similar name). If not, the GPL-3.0-only is also available here: http://www.gnu.org/licenses/. The linking exception is provided in the file whose name starts with LINKING-EXCEPTION (or with a file which have a similar name).