AEADs
AEADs copied to clipboard
Consider adding an API that takes the nonce size and tag size as parameters
We are building a Node.js runtime for the browser so you can run Node.js entirely in your browser without relying on cloud servers. That means we run arbitrary code and right now it's only possible to specify the nonce size and tag size statically via types so we are forced to always call from_slice(...). Ideally we can create it once and not rely on a match that matches nonce size and tag size, e.g.
match nonce.len() {
12 => match tag_size {
12 => AesGcm::<Aes, U12, U12>::new_from_slice(key),
...
},
...
}
So it'd be nice if we could do from_slice(key, nonce_size, tag_size).
Alternatively an operation similar to encrypt_in_place_detached could accept an additional &mut [u8] slice to write the tag into, returning an error if its length isn't in the range 12..=16 (see #541 regarding lengths of 4 and 8, which require special care to support correctly).
I think that could be done as a completely additive change. I think it's otherwise nice to have monomorphized tag sizes for type safety reasons in every other use case than "I am implementing a dynamic API for a scripting language which needs to choose the tag size completely at runtime"
Hm but that means that the tag size still needs to be configured statically right?
No, it would take a slice, and return an error if it wasn't a valid size