Why isn't AES-192 implemented in the standard library?

AES has three different key sizes: 128, 192 and 256 bits. AES-128 and AES-256 are implemented in the standard library as std.crypto.core.aes.{Aes128,Aes256}. However, AES-192 is not implemented. Why isn’t AES-192 implemented?

Two answers spring to mind:

  • Nobody has needed it.
  • Nobody has implemented it.

Zig std right now tends to gain the things the Zig compiler and core tools need, and not more, until someone makes a compelling case for inclusion by providing actual data on what real-world scenarios require the thing, and not just someone taking a completionist view (Zig tends to lean to the practical side).

There are plans for a deep dive into std much later in Zig’s road to 1.0. In this phase, a lot will change about what’s missing, what’s in, what’s out, where things live, what they’re named, etc.

However, for all I know, there may be a thoughtful reason it isn’t there, but I’m guessing my answer above is pretty close to the actual answer. [NB - I’m wrong on this one – see link below]

3 Likes

Answered here:
std.crypto.core.aes: Add AES-192 · Issue #22304 · ziglang/zig

4 Likes