As part of figuring out IDP-616, I see that the key used to seal data is determined by readUTF() : final String keyAlias = inputDataStream.readUTF(); For my own education, I wondered how readUTF() returns the key from the wrapped data, and I just don't get it. So, Scott, if you have any free cycles, feel free to clue me in, whenever. Thanks !