A system for distributing and managing secrets

Overview

Keywhiz

license maven build

Keywhiz is a system for distributing and managing secrets. For more information, see the website.

Our Protecting infrastructure secrets with Keywhiz blog post is worth reading, as it provides some useful context.

Develop

Keywhiz requires Java 11 and MySQL 5.7 or higher.

See CONTRIBUTING for details on submitting patches.

Build Keywhiz:

mvn install

Run Keywhiz:

java -jar server/target/keywhiz-server-*-shaded.jar [COMMAND] [OPTIONS]

Useful commands to get started are migrate, add-user and server. Use with --help for a list of all available commands. Use with [COMMAND] --help to get help on a particular command.

For example, to run Keywhiz with a mysql database in development mode:

SERVER_JAR="server/target/keywhiz-server-*-shaded.jar"
KEYWHIZ_CONFIG="server/target/classes/keywhiz-development.yaml"

# Initialize dev database
java -jar $SERVER_JAR migrate $KEYWHIZ_CONFIG

# Add an administrative user
java -jar $SERVER_JAR add-user $KEYWHIZ_CONFIG

# Run server
java -jar $SERVER_JAR server $KEYWHIZ_CONFIG

To connect to a running Keywhiz instance, you will need to use the CLI.

An example helper shell script that wraps the keywhiz-cli and sets some default parameters:

#!/bin/sh

# Set the path to a compiled, shaded keywhiz-cli JAR file
KEYWHIZ_CLI_JAR="/path/to/keywhiz-cli-shaded.jar"
KEYWHIZ_SERVER_URL="https://$(hostname):4444"

# Use these flags if you want to specify a non-standard CA trust store.
# Alternatively, in development and testing specify the --devTrustStore 
# flag to use the default truststore (DO NOT use this in production, as
# the truststore is checked into Keywhiz' code).
TRUSTSTORE="-Djavax.net.ssl.trustStore=/path/to/ca-bundle.jceks"
TRUSTTYPE="-Djavax.net.ssl.trustStoreType=JCEKS"

java "$TRUSTSTORE" "$TRUSTTYPE" -jar "$KEYWHIZ_CLI_JAR" -U "$KEYWHIZ_SERVER_URL" "$@"

Keywhiz uses jOOQ to talk to its database.

If you made changes to the database model and want to regenerate sources:

mvn install -pl model/ -Pgenerate-jooq-sources

We recommend IntelliJ IDEA for development.

Clients & API

Square also maintains a Keywhiz client implementation called Keysync.

Docker

We ship a Dockerfile for building a Docker container for Keywhiz. Please see the Dockerfile for extra instructions.

License

Keywhiz is under the Apache 2.0 license. See the LICENSE file for details.

Comments
  • Add Dockerfile

    Add Dockerfile

    Can be useful for testing everything compiles & building.

    WARNING: this does not work yet, but I am no jdbc/flyaway expert so idk

    I figured I would open and if you want it you can help me fix, but if not just close this no worries :)

    I think the problem is, the model pom.xml is trying to create a database then use it.

    Failing in the container with:

    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO] 
    [INFO] Keywhiz (Parent) ................................... SUCCESS [  7.557 s]
    [INFO] Keywhiz Testing .................................... SUCCESS [  8.528 s]
    [INFO] Keywhiz API ........................................ SUCCESS [  2.565 s]
    [INFO] Keywhiz Client ..................................... SUCCESS [  0.443 s]
    [INFO] Keywhiz CLI ........................................ SUCCESS [  6.017 s]
    [INFO] Keywhiz HKDF ....................................... SUCCESS [  0.443 s]
    [INFO] Keywhiz Model ...................................... FAILURE [  1.460 s]
    [INFO] Keywhiz Server ..................................... SKIPPED
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 27.591 s
    [INFO] Finished at: 2015-04-28T19:21:04+00:00
    [INFO] Final Memory: 41M/707M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.flywaydb:flyway-maven-plugin:3.2:migrate (default) on project keywhiz-model: org.flywaydb.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource (jdbc:postgresql:keywhizdb_test) for user 'root': Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. -> [Help 1]
    [ERROR] 
    

    Let me know if you want the full stack trace. But it's probably just some java thing I don't know.

    opened by jessfraz 26
  • Examples don't work out of the box

    Examples don't work out of the box

    Keywhiz server and CLI compile fine, and I can log in to the webui with both a user from the development sample SQL and a user I added my self in the database. However I can't seem to use keywhiz.cli to log in.

    danny@MacBook-Pro ~/src/keywhiz ±master » ./cli/target/keywhiz-cli-*-SNAPSHOT-shaded.jar -U https://localhost:4444/ login      130 ↵
    password for 'danny':
    Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1917)
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:301)
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:295)
        at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1369)
        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:156)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:925)
        at sun.security.ssl.Handshaker.process_record(Handshaker.java:860)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1043)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1343)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
        at com.squareup.okhttp.Connection.upgradeToTls(Connection.java:241)
        at com.squareup.okhttp.Connection.connect(Connection.java:158)
        at com.squareup.okhttp.Connection.connectAndSetOwner(Connection.java:174)
        at com.squareup.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:120)
        at com.squareup.okhttp.internal.http.RouteSelector.next(RouteSelector.java:131)
        at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:312)
        at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:235)
        at com.squareup.okhttp.Call.getResponse(Call.java:262)
        at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:219)
        at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:192)
        at com.squareup.okhttp.Call.execute(Call.java:79)
        at keywhiz.client.KeywhizClient.httpPost(KeywhizClient.java:272)
        at keywhiz.client.KeywhizClient.login(KeywhizClient.java:111)
        at keywhiz.cli.CommandExecutor.executeCommand(CommandExecutor.java:121)
        at keywhiz.cli.CliMain.main(CliMain.java:68)
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
        at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
        at sun.security.validator.Validator.validate(Validator.java:260)
        at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
        at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
        at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
        at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1351)
        ... 22 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:145)
        at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131)
        at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
        ... 28 more
    

    This is a 100% stock server with just the development user and my "danny" user added. I'm assuming this is because the certificate i'm testing with it not actually signed by a trusted root CA?

    It also seems there is little-to-no documentation around actually adding your own CA to the server. I believe this would live in "derivation.jceks" but i'm not sure.

    Any guidance as to how one would actually use keywhiz in production would be greatly appreciated. I'm working on secrets management right now, and keywhiz seems to be the 'answer' to that if I can make it work in production.

    opened by daniellockard 13
  • how to retrieve secret using Web service call from java

    how to retrieve secret using Web service call from java

    Hi, I want to consume a secret from java api.when i try to consume it from RestClient then i am getting reply as unauthorized.

    Can you help how to do it.

    question 
    opened by hshyamh4 12
  • Keywhiz 0.10.2 having error

    Keywhiz 0.10.2 having error "java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider" ...

    I was able to compile the latest version of Keywhiz 0.10.2 successfully.

    But when I try to run it, I got an error: "java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider"

    Do you know why that happen and how to fix it?

    $ java -javaagent:/opt/jolokia-jvm-1.3.6-agent.jar -jar /opt/keywhiz-server-0.10.2-SNAPSHOT-shaded.jar server /opt/keywhiz-master/server/target/classes/keywhiz-stg.yml I> No access restrictor found, access to any MBean is allowed Jolokia: Agent started with URL http://127.0.0.1:8778/jolokia/ java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider at keywhiz.ServiceModule.configure(ServiceModule.java:63) at com.google.inject.AbstractModule.configure(AbstractModule.java:61) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:344) at com.google.inject.spi.Elements.getElements(Elements.java:103) at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:137) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103) at com.google.inject.Guice.createInjector(Guice.java:87) at com.google.inject.Guice.createInjector(Guice.java:69) at com.google.inject.Guice.createInjector(Guice.java:59) at keywhiz.KeywhizService.run(KeywhizService.java:114) at keywhiz.KeywhizService.run(KeywhizService.java:71) at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:43) at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87) at io.dropwizard.cli.Cli.run(Cli.java:78) at io.dropwizard.Application.run(Application.java:93) at keywhiz.KeywhizService.main(KeywhizService.java:78) Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 16 more [keywhiz@keywhiz-233048331-1-258246470 ~]$

    $ java --version openjdk 11.0.3 2019-04-16 LTS OpenJDK Runtime Environment 18.9 (build 11.0.3+7-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.3+7-LTS, mixed mode, sharing) [keywhiz@keywhiz-233048331-1-258246470 ~]$

    Any idea?

    Thank you in advance,

    Flavio.

    opened by FlavioImbertDomingos 10
  • Adds endpoint to SecretResource which displays secret versions

    Adds endpoint to SecretResource which displays secret versions

    SecretResource now accepts GET requests for a list of versions of a given secret, ordered with the most recently created version first. This list can be restricted by passing indices to the GET request; it will then return only the versions between these indices in the list (inclusive).

    opened by jbpeirce 9
  • Add endpoint for automation clients to read secret contents

    Add endpoint for automation clients to read secret contents

    Automation clients can already access the contents of any secret by assigning it to themselves (since they have complete control of group, client, and secret ACLs), reading it through the SecretDeliveryResource, and unassigning it from themselves. This new endpoint directly exposes the ability for automation endpoints to read secrets in one call rather than three, and thus avoids the need to write to Keywhiz (with the assigns and unassigns) in order to read from it. It logs all uses of this endpoint to the audit log.

    opened by jbpeirce 8
  • Warn in keywhiz-cli when data is piped into update without the --content flag

    Warn in keywhiz-cli when data is piped into update without the --content flag

    This makes the update command print a warning if content appears to have been piped into it (stdin could be read from without blocking) but the --content flag was not specified. It does not update the secret with the input content if the flag was not specified, however.

    opened by jbpeirce 8
  • Add endpoint to list secrets in batches

    Add endpoint to list secrets in batches

    This adds an endpoint to both the automation and admin APIs to list secrets in batches, specified by an index into a list of the secrets sorted by creation date from oldest to newest, and a number of secrets after that index to retrieve.

    The fact that an index of 0 retrieves the oldest secret is not necessarily the most convenient for a user querying secrets. However, if the automation endpoint is used to iterate over secrets in batches, querying from newest to oldest would run into unexpected repeated secrets, and overlooked new secrets, if a secret was created between one batch and the next. Querying from oldest to newest avoids this potential bug.

    opened by jbpeirce 7
  • Instructions around db-seed data are unclear

    Instructions around db-seed data are unclear

    The docs say "(Optional) Import some development data:" but it seems like if you fail to do this you can't log in with the dev username/password. I just wasted a bunch of time trying to figure our what the username/password was because I failed to run db-seed. I think the instructions should be explicit that this is really necessary to set up the dev account.

    opened by alexcole 7
  • cli doesn't build on windows

    cli doesn't build on windows

    My guess is that the entire project isn't compatible with Windows, but at least from the start, when I run mvn clean verify from the parent, I get an error in the cli module. Going in to that module specifically and running mvn clean verify produces the following output on my machine (Win7, jdk1.8.0_60+JCE):

    C:\Users\Me\dev\java\keywhiz\cli [master ≡]
    λ mvn clean verify
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Keywhiz CLI 0.7.9-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ keywhiz-cli ---
    [INFO] Deleting C:\Users\Me\dev\java\keywhiz\cli\target
    [INFO]
    [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-unlimited-crypto-policy) @ keywhiz-cli ---
    [INFO]
    [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven) @ keywhiz-cli ---
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ keywhiz-cli ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 2 resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ keywhiz-cli ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 22 source files to C:\Users\Me\dev\java\keywhiz\cli\target\classes
    [INFO]
    [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ keywhiz-cli ---
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 4 resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ keywhiz-cli ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 9 source files to C:\Users\Me\dev\java\keywhiz\cli\target\test-classes
    [INFO]
    [INFO] --- maven-surefire-plugin:2.14.1:test (default-test) @ keywhiz-cli ---
    [INFO] Surefire report directory: C:\Users\Me\dev\java\keywhiz\cli\target\surefire-reports
    
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running keywhiz.cli.commands.AddActionTest
    2015-11-04 21:05:01,799 - Creating secret 'newSecret' with version '1576915baeb123e0'.
    2015-11-04 21:05:01,837 - Creating group 'newGroup'.
    2015-11-04 21:05:01,844 - Creating secret 'newSecret' with version '1576915bc725a9a1'.
    2015-11-04 21:05:01,850 - Creating client 'newClient'.
    2015-11-04 21:05:01,868 - Creating secret 'newSecret' with version '1576915bcdfd8e14'.
    2015-11-04 21:05:01,880 - Creating secret 'newSecret' with version ''.
    2015-11-04 21:05:01,905 - Creating secret 'newSecret' with version '1576915bdc6dc6b4'.
    2015-11-04 21:05:01,906 - Allowing group 'newGroup' access to secret 'newSecret'.
    2015-11-04 21:05:01,914 - Creating secret 'newSecret' with version '1576915bea18e06a'.
    Tests run: 17, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.397 sec
    Running keywhiz.cli.commands.AssignActionTest
    2015-11-04 21:05:01,943 - Creating client 'non-existent-client-name'.
    2015-11-04 21:05:01,944 - Enrolling client 'non-existent-client-name' in group 'group'.
    2015-11-04 21:05:01,947 - Enrolling client 'existing-client-name' in group 'group'.
    2015-11-04 21:05:01,951 - Allowing group 'group' access to secret 'secret'.
    Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec
    Running keywhiz.cli.commands.DeleteActionTest
    Please confirm deletion of secret 'secret': Y/N
    Please confirm deletion of secret 'secret': Y/N
    Please confirm deletion of secret 'secret': Y/N
    2015-11-04 21:05:01,965 - Deleting group 'Web'.
    2015-11-04 21:05:01,976 - Deleting client 'newClient'.
    Please confirm deletion of secret 'secret': Y/N
    2015-11-04 21:05:01,978 - Deleting secret 'secret'.
    Tests run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec
    Running keywhiz.cli.commands.DescribeActionTest
    Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec
    Running keywhiz.cli.commands.ListActionTest
    Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
    Running keywhiz.cli.commands.UnassignActionTest
    2015-11-04 21:05:02,079 - Evicting client 'client-name' from group 'group-name'.
    2015-11-04 21:05:02,081 - Revoke group 'group-name' access to secret 'secret-name..1576915c401e87fb'.
    Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec
    Running keywhiz.cli.JsonCookieTest
    Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.129 sec
    Running keywhiz.cli.UtilitiesTest
    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec
    Running keywhiz.client.ClientUtilsTest
    Tests run: 6, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.869 sec <<< FAILURE!
    testLoadCookiesWithFile(keywhiz.client.ClientUtilsTest)  Time elapsed: 0.022 sec  <<< ERROR!
    java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:/Users/Me/dev/java/keywhiz/cli/target/test-classes/fixtures/cookies.json
            at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
            at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
            at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
            at java.nio.file.Paths.get(Paths.java:84)
            at keywhiz.client.ClientUtilsTest.testLoadCookiesWithFile(ClientUtilsTest.java:129)
    
    testSaveAndLoadCookies(keywhiz.client.ClientUtilsTest)  Time elapsed: 0.054 sec  <<< ERROR!
    java.lang.UnsupportedOperationException: null
            at java.nio.file.Files.setPosixFilePermissions(Files.java:2044)
            at keywhiz.cli.ClientUtils.saveCookies(ClientUtils.java:131)
            at keywhiz.client.ClientUtilsTest.testSaveAndLoadCookies(ClientUtilsTest.java:138)
    
    testSaveCookies(keywhiz.client.ClientUtilsTest)  Time elapsed: 0.001 sec  <<< ERROR!
    java.lang.UnsupportedOperationException: null
            at java.nio.file.Files.setPosixFilePermissions(Files.java:2044)
            at keywhiz.cli.ClientUtils.saveCookies(ClientUtils.java:131)
            at keywhiz.client.ClientUtilsTest.testSaveCookies(ClientUtilsTest.java:113)
    
    
    Results :
    
    Tests in error:
      ClientUtilsTest.testLoadCookiesWithFile:129 » InvalidPath Illegal char <:> at ...
      ClientUtilsTest.testSaveAndLoadCookies:138 » UnsupportedOperation
      ClientUtilsTest.testSaveCookies:113 » UnsupportedOperation
    
    Tests run: 70, Failures: 0, Errors: 3, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 17.749 s
    [INFO] Finished at: 2015-11-04T15:05:03-06:00
    [INFO] Final Memory: 46M/369M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.14.1:test (default-test) on project keywhiz-cli: There are test failures.
    [ERROR]
    [ERROR] Please refer to C:\Users\Me\dev\java\keywhiz\cli\target\surefire-reports for the individual test results.
    [ERROR] -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
    
    opened by klauern 7
  • Bump flyway-maven-plugin from 7.15.0 to 8.2.1

    Bump flyway-maven-plugin from 7.15.0 to 8.2.1

    Bumps flyway-maven-plugin from 7.15.0 to 8.2.1.

    Release notes

    Sourced from flyway-maven-plugin's releases.

    Flyway 8.2.1

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.2.1

    CLI artifact available here

    Flyway 8.2.0

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.2.0

    CLI artifact available here

    Flyway 8.1.0

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.1.0

    CLI artifact available here

    Flyway 8.0.5

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.0.5

    CLI artifact available here

    Flyway 8.0.4

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.0.4

    CLI artifact available here

    Flyway 8.0.3

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.0.3

    CLI artifact available here

    Flyway 8.0.2

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.0.2

    CLI artifact available here

    Flyway 8.0.1

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.0.1

    CLI artifact available here

    Flyway 8.0.0

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.0.0

    CLI artifact available here

    Flyway 8.0.0-beta3

    See https://flywaydb.org/documentation/learnmore/releaseNotes#8.0.0-beta3

    CLI artifact available here

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 6
  • Bump mockito-core from 4.8.1 to 4.11.0

    Bump mockito-core from 4.8.1 to 4.11.0

    Bumps mockito-core from 4.8.1 to 4.11.0.

    Release notes

    Sourced from mockito-core's releases.

    v4.11.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.11.0

    v4.10.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.10.0

    v4.9.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.9.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump easymock from 5.0.0 to 5.1.0

    Bump easymock from 5.0.0 to 5.1.0

    Bumps easymock from 5.0.0 to 5.1.0.

    Release notes

    Sourced from easymock's releases.

    5.1.0

    Main a performance fix caused by ByteBuddy causing OOME.

    Change log

    • Typecache for create mock classes (#353)
    • Bump versions-maven-plugin from 2.14.1 to 2.14.2 (#352)
    • Bump wagon-ssh-external from 3.5.2 to 3.5.3 (#351)
    • Bump byte-buddy from 1.12.19 to 1.12.20 (#350)
    • Bump versions-maven-plugin from 2.14.0 to 2.14.1 (#349)
    • Bump versions-maven-plugin from 2.13.0 to 2.14.0 (#348)
    • Bump testng from 7.5 to 7.7.0 (#347)
    • Bump maven-dependency-plugin from 3.3.0 to 3.4.0 (#345)
    • Bump checkstyle from 10.4 to 10.5.0 (#344)
    • java.lang.NullPointerException at org.easymock.internal.ClassProxyFactory.classPackage(ClassProxyFactory.java:178) (#343)
    • EasyMock 5.0.1 OOM on large project (#338)
    • Bump spotbugs-maven-plugin from 4.7.2.1 to 4.7.3.0 (#337)
    • Bump checkstyle from 10.3.4 to 10.4 (#336)
    • Bump maven-shade-plugin from 3.4.0 to 3.4.1 (#335)
    • Add cache for mocked types. (#334)
    • Mock serialization doesn't work (#312)

    5.0.1

    Quick fix allowing package-private methods to be mocked.

    Change log

    • Mocking package-private methods not working in 5.0.0 (#331)
    • Bump versions-maven-plugin from 2.12.0 to 2.13.0 (#333)
    • Bump nokogiri from 1.13.8 to 1.13.9 in /website (#332)
    • Bump spotbugs from 4.7.2 to 4.7.3 (#330)
    • Bump maven-javadoc-plugin from 3.2.0 to 3.4.1 (#329)
    • Bump nexus-staging-maven-plugin from 1.6.8 to 1.6.13 (#328)
    • Bump maven-compiler-plugin from 3.8.1 to 3.10.1 (#327)
    • Bump animal-sniffer-maven-plugin from 1.20 to 1.22 (#326)
    • Bump maven-deploy-plugin from 3.0.0-M1 to 3.0.0 (#325)
    • Bump maven-pmd-plugin from 3.14.0 to 3.19.0 (#324)
    • Bump maven-resources-plugin from 3.2.0 to 3.3.0 (#323)
    • Bump maven-site-plugin from 3.9.1 to 3.12.1 (#322)
    • Bump exec-maven-plugin from 3.0.0 to 3.1.0 (#321)
    • Bump maven-remote-resources-plugin from 1.7.0 to 3.0.0 (#319)
    Commits
    • f1b53a1 Move to version 5.1.0
    • b08bff3 Test fails. Probably PowerMock do not create null packages anymore
    • c9e2dd1 Make sure class without a package, like the ones PowerMock creates are workin...
    • 8eaac71 Remove unused imports
    • a6f7834 Update github pages
    • a48158b Ignore animal sniffer when it goes wrong
    • 94a5d5e Rename to ClassMockingData since it represents more reality
    • 0c2b5c2 Mocks are now serializable
    • 05d6994 We need to separate handlers between mocks of the same class but not need to ...
    • 3e0ebf5 Attempt to use TypeCache. ClassProxyFactoryTest is failing
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump slf4j.version from 1.7.36 to 2.0.6

    Bump slf4j.version from 1.7.36 to 2.0.6

    Bumps slf4j.version from 1.7.36 to 2.0.6. Updates jul-to-slf4j from 1.7.36 to 2.0.6

    Commits
    • 5ff6f2c prepare for release 2.0.6
    • 2f4aa75 fix SLF4J-575
    • 363f0a5 remove unused parts
    • 171679b SLF4J-574: Add full OSGi headers, especially "uses" clauses
    • 921b5b3 fix FUNDING file
    • e02244c fix FUNDING file
    • 441d458 fix FUNDING file
    • f5e741b add FUNDING file
    • 2e71327 remove unused log4j dependency in the version definition section of pom.xml
    • 3ff2a30 start work on 2.0.6-SNAPSHOT
    • Additional commits viewable in compare view

    Updates log4j-over-slf4j from 1.7.36 to 2.0.6

    Commits
    • 5ff6f2c prepare for release 2.0.6
    • 2f4aa75 fix SLF4J-575
    • 363f0a5 remove unused parts
    • 171679b SLF4J-574: Add full OSGi headers, especially "uses" clauses
    • 921b5b3 fix FUNDING file
    • e02244c fix FUNDING file
    • 441d458 fix FUNDING file
    • f5e741b add FUNDING file
    • 2e71327 remove unused log4j dependency in the version definition section of pom.xml
    • 3ff2a30 start work on 2.0.6-SNAPSHOT
    • Additional commits viewable in compare view

    Updates slf4j-api from 1.7.36 to 2.0.6

    Commits
    • 5ff6f2c prepare for release 2.0.6
    • 2f4aa75 fix SLF4J-575
    • 363f0a5 remove unused parts
    • 171679b SLF4J-574: Add full OSGi headers, especially "uses" clauses
    • 921b5b3 fix FUNDING file
    • e02244c fix FUNDING file
    • 441d458 fix FUNDING file
    • f5e741b add FUNDING file
    • 2e71327 remove unused log4j dependency in the version definition section of pom.xml
    • 3ff2a30 start work on 2.0.6-SNAPSHOT
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump unboundid-ldapsdk from 6.0.5 to 6.0.7

    Bump unboundid-ldapsdk from 6.0.5 to 6.0.7

    Bumps unboundid-ldapsdk from 6.0.5 to 6.0.7.

    Release notes

    Sourced from unboundid-ldapsdk's releases.

    UnboundID LDAP SDK for Java 6.0.6

    We have just released version 6.0.6 of the UnboundID LDAP SDK for Java. It is available for download from GitHub and SourceForge, and it is available in the Maven Central Repository. You can find the release notes at https://docs.ldap.com/ldap-sdk/docs/release-notes.html, but here’s a summary of the changes included in this version:

    General Updates

    • We fixed an issue that could cause request failures when closing a connection operating in asynchronous mode with outstanding operations.

    • We fixed an issue that could interfere with the ability to get a default SSLContext on Java 17 when running in FIPS 140-2-compliant mode.

    • We updated LDAPConnectionOptions to add support for a new system property that can enable certificate hostname verification by default without any code changes.

    • We updated the LDAP command-line tool framework to add a new --verifyCertificateHostnames argument to enable hostname verification when performing TLS negotiation.

    • We improved the class-level Javadoc documentation for the SSLUtil class to provide a better overview of TLS protocol versions, TLS cipher suites, key managers, trust managers, and certificate hostname verification, and to provide better examples that illustrate best practices for establishing secure connections.

    • We fixed an issue in the JNDI compatibility support for controls, as well as extended requests and responses. Even though the implementation was based on the JNDI documentation, it appears that at least OpenJDK implementations do not abide by that documentation. The LDAP SDK is now compatible with the observed behavior rather than the documentation, although a system property can be used to revert to the former behavior.

    • We updated the SearchRequest class to add constructors that allow you to provide the search base DN with a DN object (as an alternative to existing constructors that allow you to specify it as a String).

    • We fixed an issue in the command-line tool framework in which an Error (for example, OutOfMemoryError) could cause the tool to report a NullPointerException rather than information about the underlying error.

    • We fixed an issue in the IA5 argument value validator that could allow it to accept argument values with non-ASCII characters.

    • We fixed an issue in the DNS hostname argument value validator that could prevent it from properly validating the last component of a fully qualified domain name, or the only component of an unqualified name.

    • We updated the identify-references-to-missing-entries tool to provide an option to generate an LDIF file with changes that can be used to remove identified references.

    • We updated the SelfSignedCertificateGenerator class to perform better validation for the subject alternative DNS names that it includes in a certificate.

    • We updated the manage-certificates generate-self-signed-certificate command to rename the --replace-existing-certificate argument to be --use-existing-key-pair. The former argument name still works, but it is hidden from the usage.

    • We included a native-image/resource-config.json file in the LDAP SDK jar file manifest, which can be used by the GraalVM native-image tool to ensure that appropriate resource files are included in the resulting image.

    Updates Specific to Use With the Ping Identity Directory Server

    • We updated the summarize-access-log tool to report on many more things, including the most common IP addresses for failed bind attempts, the most consecutive failed binds, information about work queue wait times, information about request and response controls, the number of components in search filters, and search filters that may indicate injection attempts.

    • We updated support for the audit data security administrative task to make it possible to specify the number and/or age of previous reports to retain.

    • We fixed issues that prevented specifying the criticality of the administrative operation and join request controls.

    Changelog

    Sourced from unboundid-ldapsdk's changelog.

              <div align="right">
    

    ${TARGET="offline"} LDAP SDK Home Page ${TARGET="offline"} Product Information

              <h2>Release Notes</h2>
    
          &lt;h3&gt;Version 6.0.7&lt;/h3&gt;
    
      &amp;lt;p&amp;gt;
        The following changes were made between the 6.0.6 and 6.0.7 releases:
      &amp;lt;/p&amp;gt;
    
      &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;
          Fixed a bug in the SearchResultEntry.equals method that could prevent a
          SearchResultEntry object (which is a subclass of Entry) from being considered
          equal to an Entry that is not a SearchResultEntry.
          &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;/li&amp;gt;
    
        &amp;lt;li&amp;gt;
          Fixed an issue with the Entry.applyModifications method in which it could fail
          with a NOT_ALLOWED_ON_RDN result if the provided entry was missing one or more
          attribute values used in its RDN.
          &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;/li&amp;gt;
    
        &amp;lt;li&amp;gt;
          Fixed a bug in the argument parser's support for mutually dependent arguments.
          In a mutually dependent argument set, if any one of the arguments is provided,
          then all of the other arguments in the set must also be provided, but there was
          a problem with support for sets containing three or more elements.  In such
          cases, the argument parser would only enforce that at least two arguments from
          the set were present.
          &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;/li&amp;gt;
    
        &amp;lt;li&amp;gt;
          Added JSONObject methods for retrieving fields by name using case-insensitive
          matching.  By default, JSON field names are treated in a case-sensitive manner,
          but new methods allow them to be retrieved in a case-insensitive manner.
          Because a JSON object may have multiple fields with names differing only by
          case, there are a few options for handling the possibility of conflicts,
          including returning only the first match found and ignoring subsequent matches,
          throwing an exception if multiple matches are found, or returning a map
          containing all matching name-value pairs.
          &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;/li&amp;gt;
    

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump maven-dependency-plugin from 3.3.0 to 3.4.0

    Bump maven-dependency-plugin from 3.3.0 to 3.4.0

    Bumps maven-dependency-plugin from 3.3.0 to 3.4.0.

    Commits
    • 8fecf8a [maven-release-plugin] prepare release maven-dependency-plugin-3.4.0
    • f2e192a [MDEP-809] Fix JavaDoc for verbose parameter of tree mojo
    • f9b3ab7 Bump plexus-utils from 3.4.2 to 3.5.0
    • e741282 Refresh setup-custom-ear-lifecycle test
    • a3c64de Fix tests for new plexus-archiver
    • d78f6e1 Bump plexus-archiver from 4.2.2 to 4.6.0
    • 50a4b70 [MDEP-674] Add IDE build support (#257)
    • 0eabeef Bump project version to 3.4.0-SNAPSHOT
    • b8af16f Bump mockito-core from 4.8.1 to 4.9.0
    • 23bfa03 Bump maven-dependency-tree from 3.2.0 to 3.2.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
Releases(v0.10.1)
Employee Management System using Spring Boot, Spring Security, Thymeleaf and MySQL database.

Employee Management System Employee Management System using Spring Boot, Spring Security, Thymeleaf and MySQL database. YouTube Video Series Employee

Ramesh Fadatare 62 Jan 1, 2023
Writeup and exploit for installed app to system privilege escalation on Android 12 Beta through CVE-2021-0928

Writeup and exploit for installed app to system privilege escalation on Android 12 Beta through CVE-2021-0928, a `writeToParcel`/`createFromParcel` serialization mismatch in `OutputConfiguration`

null 52 Dec 30, 2022
A simple HWID authentication system for your minecraft mod.

HWID-Authentication-System A simple HWID authentication system for your minecraft mod. This is a simple mod which can prevent unwanted users from runn

null 43 Dec 10, 2022
A simple HWID authentication system for your minecraft mod.

HWID-Authentication-System A simple HWID authentication system for your minecraft mod. This is a simple mod which can prevent unwanted users from runn

null 43 Dec 10, 2022
A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Bastiaan Jansen 106 Dec 30, 2022
Open Source Identity and Access Management For Modern Applications and Services

Keycloak Keycloak is an Open Source Identity and Access Management solution for modern Applications and Services. This repository contains the source

Keycloak 14.6k Jan 5, 2023
This application can recognize the sign language alphabets and help people who do not understand sign language to communicate with the speech and hearing impaired.

Sign Language Recognition App This application can recognize the sign language alphabets and help people who do not understand sign language to commun

Mihir Gandhi 12 Oct 7, 2021
JAP is an open source authentication middleware, it is highly decoupled from business code and has good modularity and flexiblity. Developers could integrate JAP into web applications effortlessly.

?? JAP 是什么? JAP 是一款开源的登录中间件,基于模块化设计,并且与业务高度解耦,使用起来非常灵活,开发者可以毫不费力地将 JAP 集

Fujie 140 Dec 1, 2022
Examples and HowTos for BouncyCastle and Java Cryptography Extension (JCE)

CryptographicUtilities Examples and HowTos for BouncyCastle and Java Cryptography Extension (JCE) See class "/src/main/java/de/soderer/utilities/crypt

null 1 Dec 19, 2021
Make a customized list of exercises, create and save workouts, and be led through your routine. This application is currently under development.

HIIT Workout Builder ABOUT This application allows you to create and be led through customized high-intensity interval training (HIIT) sessions. The a

null 1 Nov 28, 2022
Toloka has a powerful open API, it allows you to integrate an on-demand workforce directly into your processes, and to build scalable and fully automated human-in-the-loop ML pipelines.

Toloka Java SDK Documentation Website | API Documentation | Platform Designed by engineers for engineers, Toloka lets you integrate an on-demand workf

Toloka 10 Apr 27, 2022
A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Bastiaan Jansen 106 Dec 30, 2022
Time-Based One-Time Password (RFC 6238) and HMAC-Based One-Time Password (RFC 4226) reference implementations and more.

Crypto Time-Based One-Time Password (RFC 6238) and HMAC-Based One-Time Password (RFC 4226) reference implementations and more. Getting Started TOTP ge

Oliver Yasuna 1 May 12, 2022
Java JWT: JSON Web Token for Java and Android

Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand library for creating and verifying JSON Web Tokens (JW

null 8.8k Dec 30, 2022
Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium

kalium - Java binding to the Networking and Cryptography (NaCl) library A Java binding to Networking and Cryptography library by Daniel J. Bernstein.

Bruno Oliveira da Silva 206 Oct 5, 2022
Password4j is a user-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various cryptographic hash functions.

Password4j is a Java user-friendly cryptographic library for hashing and checking passwords with different Key derivation functions (KDFs) and Cryptog

Password4J 246 Jan 5, 2023
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Dec 29, 2022
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Google 12.9k Jan 3, 2023
JSON Web Token (JWT) implementation for Java with support for signatures (JWS), encryption (JWE) and web keys (JWK).

Nimbus JOSE+JWT Nimbus JOSE+JWT is a popular open source (Apache 2.0) Java library which implements the Javascript Object Signing and Encryption (JOSE

Connect2ID 35 Jul 1, 2022