Die Signatur von One-Shot-Verschlüsselungsmethode CCCrypt
ist dies (von CommonCryptor.h
):Wie kann ich CCCrypt berechnen AES in einem anderen Modus?
CCCryptorStatus CCCrypt(
CCOperation op, /* kCCEncrypt, etc. */
CCAlgorithm alg, /* kCCAlgorithmAES128, etc. */
CCOptions options, /* kCCOptionPKCS7Padding, etc. */
const void *key,
size_t keyLength,
const void *iv, /* optional initialization vector */
const void *dataIn, /* optional per op and alg */
size_t dataInLength,
void *dataOut, /* data RETURNED here */
size_t dataOutAvailable,
size_t *dataOutMoved)
Keiner der Parameter einen Wert CCMode
(vielleicht sneakily, da alle Aufzählungen ganze Zahlen sind?) Zu akzeptieren scheint. Ich habe versucht, es mit dem CCOptions
Parameter zu kombinieren, aber ohne Erfolg; Die beiden Enums sind keine Optionen und kombinieren nicht eindeutig.
Es ist nicht explizit dort dokumentiert, aber ich vermute von dem, was ich im Internet finde, dass der mit kCCAlgorithmAES
verwendete Modus CBC ist.
Wie kann ich den AES-Modus CCCrypt
Anwendungen ändern?
Es ist ziemlich einfach, andere Modi zu implementieren, wenn Sie den Zugriff auf EZB oder CBC haben. Die einzige Herausforderung besteht darin, den Zähler, der für jeden Block verschlüsselt ist, korrekt zu implementieren. –
@ArtjomB. Ja, nein, ich werde nicht herumgehen und Kryptomethoden selbst implementieren. So liegen nur Verhängnis und Wahnsinn. – Raphael
@zaph - Ich habe erwartet, dass Sie diese Antwort bekommen. Haben Sie nicht eine Crypto-Bibliothek, die auf Apple Common Crypto basiert? – jww