crypt-api

Provides interfaces for encrypting and decrypting bytes, text, and files

MIT License

Stars
3

Overview

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

License

The source code comes under the liberal MIT License.

gradle dependency

Replace the variable ${latestVersion} with the current latest version:

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 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:

<properties>
        ...
    <!-- CRYPT-API version -->
    <crypt-api.version>${latestVersion}</crypt-api.version>
        ...
</properties>
        ...
    <dependencies>
        ...
        <!-- CRYPT-API DEPENDENCY -->
        <dependency>
            <groupId>io.github.astrapi69</groupId>
            <artifactId>crypt-api</artifactId>
            <version>${crypt-api.version}</version>
        </dependency>
        ...
    </dependencies>

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:

<major>.<minor>.<patch>

For detailed information on versioning for this project you can visit this wiki page.

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

To share your changes, submit a pull request.

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.

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
sonatype repository
Special thanks to sonatype repository for providing a free maven repository service for open source projects
javadoc.io
Javadocs
Special thanks to javadoc.io for providing a free javadoc documentation for open source projects