Я шифрую свои данные с помощью AES с ключом и случайным IV. Этот ключ я шифрую с помощью RSA и включаю его в свой EncryptedData
, как показано ниже. Мне также нужно включить IV, но как включить его с синтаксисом шифрования XML, поскольку элемент KeyInfo
уже занят элементом EncryptedKey
?Как обеспечить вектор инициализации синтаксисом шифрования XML
<?xml version='1.0' encoding='UTF-8'?>
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbf" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
<KeySize>256</KeySize>
<OAEPparams>AA==</OAEPparams>
<DigestMethod xmlns="http://www.w3.org/2000/09/xmldsig#"
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
</EncryptionMethod>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>client provided public key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>...</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>...</CipherValue>
</CipherData>
</EncryptedData>
Да, этот параграф меня немного смутил, особенно «IV, если таковые имеются, может быть указано как с данными шифрования, как элемент содержимого алгоритма или где-либо еще». часть. Итак, я просто добавляю IV к элементу CipherValue Element, разделенному пробелом? – DarsVaeda
@ 4485670 для пользовательских алгоритмов. В специфицированных алгоритмах IV идет перед зашифрованными данными, как говорится в следующем абзаце. Так что это совершенно ясно. –
Хорошо, спасибо за это. – DarsVaeda