2015-10-02 2 views
-3

Я пытаюсь вычислить КЦРрасчет AES КЦР Java Свифта

byte[] key={0x09,0x11,0x12,0x34,0x56,0x78,0x00,0x01,0x01,0x13,0x14,0x36,0x58,0x7A,0x02,0x03}; 
AES mAES=new AES(); 
mAES.AesInit(key); 
byte[] response = mAES.calcCMAC(challenge); 

Swift Я использую Lib CryptoSwift

let key = [0x09,0x11,0x12,0x34,0x56,0x78,0x00,0x01,0x01,0x13,0x14,0x36,0x58,0x7A,0x02,0x03] as [UInt8] 
let message:NSData = NSData.fromHexString("DA55C255") 
let mac = Authenticator.Poly1305(key: key).authenticate(message.arrayOfBytes()) 

Но это не работает, как ожидалось.

ожидаемый результат

вызов isDA55C255
Response isED7CA01A

+1

Что не работает? Каковы ваши результаты? Чем они отличаются от ожидаемых результатов? – nhgrif

+2

Что заставляет вас думать, что Poly1305 и CMAC - это то же самое? Они не. –

ответ

0

мы не находим решения, мы создали наш собственный Classe

https://gist.github.com/bolom/b426a0163943b576175b

+0

Почему вы перепрофилируете AES в Swift, когда есть сертифицированная FIPS версия как часть Common Crypto (CCCrypt), и она на порядок быстрее? – zaph

+0

Метод 'Int8sToHex' нарушен, рассмотрите замену его на что-то вроде:' public func Int8sToHex (var Int8s: [Int8]) -> String {'' var hexString = "" '' для var j: Int = 0; j zaph

+0

i don ' t найти какой-нибудь пример, который позволил бы мне caculate CMAC AES. Если у вас есть код, который. Пожалуйста, покажи мне – Bolo