From my debugging sessions, I can tell that nothing is added to filter the key streams in here (containsKeyName false and encryptedKey null): // If encryptedData contains keyName we will use only for keys with given kid if (keyInfo.containsKeyName()) { List<String> keyNames = getKeyName...