Должен ли я выполнить какое-либо преобразование в предоставленный ключ AES CMAC?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Должен ли я выполнить какое-либо преобразование в предоставленный ключ AES CMAC?

Сообщение Anonymous »

Мне предоставили java.util.String длиной 32 символа. Строка содержит 16 пар шестнадцатеричных символов, которые представляют собой ключ, который мне следует использовать при создании подписи сообщения AES и CMAC.
У меня проблема с подписанием правильного сообщения. с предоставленным ключом я использую библиотеку «bouncycastle». Я покажу вам свой код:

Код: Выделить всё

        KeyParameter parameter = new KeyParameter(KEY.getBytes(StandardCharsets.UTF_8));

AESEngine aes = new AESEngine();
CMac mac = new CMac(aes);
mac.init(parameter);
mac.update(message.getBytes(StandardCharsets.UTF_8), 0, message.getBytes(StandardCharsets.UTF_8).length);
byte[] out = new byte[mac.getMacSize()];
mac.doFinal(out, 0);
Партнер реализует этот самый код на C# с той же библиотекой. Мы обнаружили, что байт в Java имеет знаковое числовое представление, а в C# — нет. Попытка сделать параллельную реализацию этого немного дезориентирует меня.
Я могу получить правильные значения int[] от 0 до 255, которые мой партнер получает при обработке ключ.

Подробнее здесь: https://stackoverflow.com/questions/760 ... ovided-key
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»