Как я могу использовать свой собственный ключ для шифрования данных с помощью ecdeffiehellmancng
Моя задача состоит в том, чтобы зашифровать данные с помощью криптографии эллиптической кривой в .Net (специфичной для клиента), я попытался использовать образец от Microsoft, но он, похоже, каждый раз генерирует свой собственный ключ. Мне нужно использовать свой собственный ключ для этого процесса, например, создать пароль "S3curEChaNNel_01?" и преобразовать его в байт, а затем использовать в качестве ключа, но я не могу найти способ сделать это.
Using alice As New ECDiffieHellmanCng() Dim abData() As Byte Dim Str = txtKey.Text 'custom password abData = System.Text.Encoding.Default.GetBytes(Str) Str = System.Text.Encoding.Default.GetString(abData) Dim bobPublicKey() As Byte Dim bobKey() As Byte Dim bob As New ECDiffieHellmanCng() bob.KeyDerivationFunction = ECDiffieHellmanKeyDerivationFunction.Hash bob.HashAlgorithm = CngAlgorithm.Sha256 bobPublicKey = bob.PublicKey.ToByteArray() bob.HmacKey = abData bobKey = bob.DeriveKeyMaterial(CngKey.Create(CngAlgorithm.Sha256)) 'at this line i get an exception, "The requested operation is not supported." 'Dim aliceKey As Byte() = alice.DeriveKeyMaterial(CngKey.Create(CngAlgorithm.Sha256)) Dim encryptedMessage As Byte() = Nothing Dim iv As Byte() = Nothing txtOutput.Text = ByteArrayToString(Encrypt(bobKey, txtPlainStr.Text, encryptedMessage, iv)) End Using
Пожалуйста, помогите мне, любой рабочий образец будет очень признателен
Что я уже пробовал:
Я пробовал использовать
бобки = Боб.DeriveKeyMaterial(CngKey.Импорт (abData, CngKeyBlobFormat.EccPrivateBlob))
и
бобки = Боб.DeriveKeyMaterial(CngKey.Импорт (abData, CngKeyBlobFormat.EccPublicBlob))