Iphone:如何验证消息验证码(Mac)

时间:2012-08-30 06:01:44

标签: iphone objective-c authentication aes code-signing

我有一个像这样的Java代码:

public static byte[] generateMac(byte[] key, byte[] cipherText,int offset,int length,int mac_size_bits)
{
    byte[] result = null;
    KeyParameter keyParam = null;
    try {
        keyParam = new KeyParameter(key);
        CBCBlockCipherMac blockCipherMac = new CBCBlockCipherMac(new AESEngine(),mac_size_bits);
        result = new byte[blockCipherMac.getMacSize()];
        blockCipherMac.init(keyParam);
        blockCipherMac.update(cipherText, offset, length);
        blockCipherMac.doFinal(result, 0);
    } catch (Exception e) {
        // System.out.println(e);
        return null;
    } finally {
        keyParam = null;
    }
    return result;
}

在iPhone上,我这样涂鸦:

- (NSData *)generateMac:(NSData *)key cipherText:(NSData *)cipherText offset:(int)offset length:(int)length mac_size_bits:(int)mac_size_bits

我的问题是,我应该在CBCBlockCipherMac中使用哪种方法,iPhone中的keyparameters可以让任何人帮助我吗?

1 个答案:

答案 0 :(得分:1)

其MAC加密 - AFAIK在IOS上没有单次更换/等效

查看原始文档docs 和维基百科wiki

了解算法是如何工作的,然后使用CommonCrypto复制它

- 抱歉没有更好的主意