0

私はこの問題に数日間苦労してきましたが、理解できないようです

CCCrypt を使用して暗号化された文字列を復号化しようとしました。暗号化された文字列を Base64 エンコードでエンコードしました。キーと iv があります。暗号化は、PKCS7Padding を使用した AES256 CBC です。

これは私が今使っているコードです:

- (NSData *)AES256DecryptWithKey:(NSString *)key
{
    char keyPtr[kCCKeySizeAES128+1];
    bzero(keyPtr, sizeof(keyPtr));

    NSUInteger dataLength = [self length];

    size_t bufferSize = dataLength + kCCBlockSizeAES128;
    void *buffer = malloc( bufferSize );

    unsigned char *iv = [@"IV String" cStringUsingEncoding:NSUTF8StringEncoding];

    size_t numBytesDecrypted = 0;

    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
                                      kCCAlgorithmAES128,
                                      kCCOptionPKCS7Padding,
                                      keyPtr, kCCKeySizeAES256,
                                      iv,
                                      [self bytes],
                                      dataLength,
                                      buffer,
                                      bufferSize,
                                      &numBytesDecrypted);

    if( cryptStatus == kCCSuccess )
    {
        return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];
    }

    free( buffer );
    return nil;
}

しかし、cryptStatus0 を返し続け、その理由を理解する方法が見つかりませんでした。私は何を間違っていますか?

前もって感謝します!

4

0 に答える 0