Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide native implementations of supported algorithms #17

Open
jvz opened this issue Jan 20, 2021 · 1 comment
Open

Provide native implementations of supported algorithms #17

jvz opened this issue Jan 20, 2021 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@jvz
Copy link
Contributor

jvz commented Jan 20, 2021

After working out some proof of concept code to try out https://github.com/mit-plv/fiat-crypto for elliptic curve stuff, it turns out to be fairly straightforward to build and include native variants of the algorithms being provided in the Java API through some fairly minimal JNI boilerplate. Since every crypto algorithm tends to have a reference C implementation, most of the symmetric algorithms can be easily imported that way rather than having to be ported again (the Java implementations are ported from C in the first place).

While the plain reference implementations are likely similar in performance to the Java ones, there are several assembly optimizations available for these algorithms and can be included for supported platforms (mostly for x86-64, though some may have additional platforms optimized).

@jvz jvz added the enhancement New feature or request label Jan 20, 2021
@jvz jvz self-assigned this Jan 20, 2021
@jvz
Copy link
Contributor Author

jvz commented Feb 1, 2021

Still needs chacha-opt and poly1305-opt integrated into the build for assembler-optimized variants.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant