https://github.com/astrapi69/crypt-api
Provides interfaces for encrypting and decrypting bytes, text, and files
https://github.com/astrapi69/crypt-api
Last synced: 10 months ago
JSON representation
Provides interfaces for encrypting and decrypting bytes, text, and files
- Host: GitHub
- URL: https://github.com/astrapi69/crypt-api
- Owner: astrapi69
- License: mit
- Created: 2018-12-22T13:00:56.000Z (about 7 years ago)
- Default Branch: develop
- Last Pushed: 2024-07-22T15:19:45.000Z (over 1 year ago)
- Last Synced: 2024-10-12T11:14:49.212Z (over 1 year ago)
- Language: Java
- Size: 374 KB
- Stars: 3
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Overview
[](https://github.com/astrapi69/crypt-api/actions/workflows/gradle.yml)
[](https://codecov.io/gh/astrapi69/crypt-api)
[](https://github.com/astrapi69/crypt-api/issues)
[](https://maven-badges.herokuapp.com/maven-central/io.github.astrapi69/crypt-api)
[](http://www.javadoc.io/doc/io.github.astrapi69/crypt-api)
[](http://opensource.org/licenses/MIT)
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GVBTWLRAZ7HB8)
[](https://hitsofcode.com/github/astrapi69/crypt-api/view?branch=develop)
The Crypt API library is a comprehensive cryptographic library containing various classes and interfaces for encryption, decryption, blockchain, algorithms, keys, mechanisms, and providers. Below is an overview of its main components.
### Core Classes and Interfaces
- **Encryption and Decryption Interfaces**:
- `Encryptor`
- `Decryptor`
- `Cryptor`
- **Specific Implementations for Different Data Types**:
- `ByteArrayEncryptor`
- `StringEncryptor`
- `FileEncryptor`
- `ByteArrayDecryptor`
- `StringDecryptor`
- `FileDecryptor`
- **Generic Classes for Object Encryption/Decryption**:
- `GenericObjectEncryptor`
- `GenericObjectDecryptor`
### Blockchain Related Interfaces
- **Interfaces for Blockchain Components**:
- `IBlock`
- `IAddress`
- `ITransaction`
- `INode`
### Algorithm Related Classes
- **Algorithm Representations**:
- `Algorithm`
- `AlgorithmWithParams`
- `KeyAlgorithm`
- **Specific Algorithm Implementations**:
- `CompoundAlgorithm`
- `PBEAlgorithm`
- `PBKDF2Algorithm`
### Key Management
- **Classes for Key Management**:
- `KeyStringEntry`
- `KeyFormat`
- `KeyType`
- `KeyFileFormat`
- `KeySize`
- **Specific Algorithms for Key Generation and Management**:
- `PemType`
- `KeyPairGeneratorAlgorithm`
- `SecretKeyFactoryAlgorithm`
### Mechanisms
- **Different Cryptographic Mechanisms**:
- `Mechanism`
- `PBEMechanism`
- `SaslServerMechanism`
- `GSSAPIMechanism`
- `SaslClientMechanism`
- `ExemptionMechanism`
### Providers
- **Security Providers**:
- `SecurityProvider`
> Please support this project by simply putting a Github
Star ⭐
>
> Share this library with friends on Twitter and everywhere else you can
>
> If you love this project [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GVBTWLRAZ7HB8)
## License
The source code comes under the liberal MIT License.
## gradle dependency
Replace the variable ${latestVersion} with the current latest version: [](https://maven-badges.herokuapp.com/maven-central/io.github.astrapi69/crypt-api)
You can first define the version in the ext section and add than the following gradle dependency
to your project `build.gradle` if you want to import the core functionality of crypt-api:
define version in file gradle.properties
```
cryptApiVersion=${latestVersion}
```
or in build.gradle ext area
```
cryptApiVersion = "${latestVersion}"
```
then add the dependency to the dependencies area
```
implementation("io.github.astrapi69:crypt-api:$cryptApiVersion")
```
# with new libs.versions.toml file
If you use the new libs.versions.toml file for new automatic catalog versions update
```
[versions]
crypt-api-version=${latestVersion}
[libraries]
crypt-api = { module = "io.github.astrapi69:crypt-api", version.ref = "crypt-api-version" }
```
then add the dependency to the dependencies area
```
implementation libs.crypt.api
```
## Maven dependency
Maven dependency is now on sonatype.
Check out [sonatype repository](https://oss.sonatype.org/index.html#nexus-search;gav~io.github.astrapi69~crypt-api~~~) for latest snapshots and releases.
Add the following maven dependency to your project `pom.xml` if you want to import the core functionality of crypt-api:
Than you can add the dependency to your dependencies:
...
${latestVersion}
...
...
...
io.github.astrapi69
crypt-api
${crypt-api.version}
...
## Semantic Versioning
The versions of crypt-api are maintained with the Simplified Semantic Versioning guidelines.
Release version numbers will be incremented in the following format:
`..`
For detailed information on versioning for this project you can visit this [wiki page](https://github.com/astrapi69/mvn-parent-projects/wiki/Simplified-Semantic-Versioning).
## Want to Help and improve it? ###
The source code for crypt-api are on GitHub. Please feel free to fork and send pull requests!
Create your own fork of [astrapi69/crypt-api/fork](https://github.com/astrapi69/crypt-api/fork)
To share your changes, [submit a pull request](https://github.com/astrapi69/crypt-api/pull/new/develop).
Don't forget to add new units tests on your changes.
## Contacting the Developers
Do not hesitate to contact the crypt-api developers with your questions, concerns, comments, bug reports, or feature requests.
- Feature requests, questions and bug reports can be reported at the [issues page](https://github.com/astrapi69/crypt-api/issues).
## Note
No animals were harmed in the making of this library.
# Donations
This project is kept as an open source product and relies on contributions to remain being
developed. If you like this library, please consider a donation
over paypal:
or over bitcoin(BTC) with this address:
bc1ql2y99q7e8psndhcc3gferk03esw3qqf677rhjy

or over FIO with this address:
FIO7tFMUVAA9cHiPPqKMfMXiSxHrbpiFyRYqTketNuM67aULuwjop

or over Ethereum(ETH) with:
0xc057D159D3C8f3311E73568b334FF6fE82EB2b7D

or over Ethereum Classic(ETC) with:
0xF708cA86D86C246B69c3F4BAe431eBbe0c2bfddD

or over Dogecoin(DOGE) with:
D5yi4Um8cpakd6yPRm2hGWuQ5nrVzhSSW1

or over Monero(XMR) with:
49bqeRQ7Bf49oJFVC72pqpe5hFbb62pfXDYPdLsadGGF81KZW2ZfrPZ8PbAVu5X2v1TYAspeczMya3cYQysNS4usRRPQHVw

or over flattr:
## Credits
|**Nexus Sonatype repositories**|
| :---: |
|[](https://oss.sonatype.org/index.html#nexus-search;gav~io.github.astrapi69~crypt-api~~~)|
|Special thanks to [sonatype repository](https://www.sonatype.com) for providing a free maven repository service for open source projects|
|
|
|**javadoc.io**|
| :---: |
|[](http://www.javadoc.io/doc/io.github.astrapi69/crypt-api)|
|Special thanks to [javadoc.io](http://www.javadoc.io) for providing a free javadoc documentation for open source projects|
|
|