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

AES modes #11

Open
prusnak opened this issue Oct 16, 2017 · 8 comments
Open

AES modes #11

prusnak opened this issue Oct 16, 2017 · 8 comments

Comments

@prusnak
Copy link

prusnak commented Oct 16, 2017

Is there a demand or plan to add various AES modes?

@gmaxwell
Copy link
Contributor

Is there a demand or plan to add various AES modes?

You tell us if there is a demand? :) Which modes, in particular? Most modes are fairly trivial. For CTR modes a different AES implementation approach may be best (in particular one that runs several blocks in parallel can be more efficient) although CTR modes are .. yuck.

@jonasschnelli
Copy link

libbtc has a CBC implementation based on ctaes (only 256). https://github.com/libbtc/libbtc/blob/master/src/aes256_cbc.c

I think there is a demand... I heard of serval developers who are doing (or did) an CBC implementation on top of ctaes.

@sipa
Copy link
Contributor

sipa commented Oct 28, 2017

I believe at least CTR and CBC mode should be included here. It's sort of incomplete and dangerous to use without.

@prusnak
Copy link
Author

prusnak commented Oct 28, 2017

CBC, CFB and CTR would be really nice to have.

@gmaxwell
Copy link
Contributor

SIV perhaps, it would be a shame to support ultra-footgunny CTR and not also support at least something relatively safe.

@kristapsk
Copy link
Contributor

What's status of this? Still considered a good idea to include some AES modes here, just nobody has time and interest?

At my dayjob, we currently are looking for some AES library to use both at server and embedded end and this looks like a good candidate. And if we implement CBC anyway, I might as well send a PR here.

@sipa
Copy link
Contributor

sipa commented Jul 31, 2018

I would gladly include constant-time CBC here.

sipa added a commit that referenced this issue Aug 18, 2020
8835446 Implement constant time AES CBC (Kristaps Kaupe)

Pull request description:

  Tried to not change anything in existing code, except for making `AES_encrypt()` and `AES_decrypt()` public.

  Related to #11.

ACKs for top commit:
  sipa:
    ACK 8835446
  gmaxwell:
    ACK 8835446

Tree-SHA512: aab1b44989610a86458dfa782f99803051ce000ff843c4ac13f3ef9f9e4ec0b3d6cfa72fef12c079af9c9f70167def39b4bc66f3b8d37a1ff14a84562616032a
@sipa
Copy link
Contributor

sipa commented Aug 18, 2020

CBC mode is implemented in #14.

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

No branches or pull requests

5 participants