<div dir="ltr"><div class="gmail_default" style="font-size:small">I am doing some work with a JOSE-ish encryption container. The traditional scheme is</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Generate symmetric master key</div><div class="gmail_default" style="font-size:small">Encrypt master key under recipient(s) public key to create key blob.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">For each chunk of data to be encrypted:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Generate session key</div><div class="gmail_default" style="font-size:small">Wrap (i.e. encrypt) session key under master key.</div><div class="gmail_default" style="font-size:small">Derive encryption key from session key, generate random IV</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Now usually in JOSE, these are options. Well, I do not believe in options. I would rather have as few code paths as possible. So rather than make the keywrap step , I always require keywrap, I always require keygen. that way there is only one possible way for A to talk to B with a particular set of features.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I sometimes need key derivation,<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"> (e,g, when I am stepping up from 128 bit to 256 bit or when I have encrypted metadata) So I always require it.</span></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Now given that I need the key derivation step, is there any reason not to use it to generate the IV as well as the encryption key?</div></div>