可変データオブジェクトを作成し、SHA1ハッシュをその中に入れるコードを見ています。ターゲットの可変データオブジェクトをで初期化すると
CFMutableDataRef hashDataRef = (CFMutableDataRef)[[NSMutableData alloc] initWithLength:SHA_DIGEST_LENGTH];
すべてが正常に動作します。その1行をに変更すると
CFMutableDataRef hashDataRef = CFDataCreateMutable(kCFAllocatorDefault, SHA_DIGEST_LENGTH);
壊れます(SHA1コマンドの後、可変データオブジェクトはまだ空のように見えます)。どちらの場合も、の作成に続く行hashDataRef
は
SHA1(CFDataGetBytePtr(inputDataRef), CFDataGetLength(inputDataRef), CFDataGetMutableBytePtr(hashDataRef));
両者に違いがあるとは思っていませんでしたが、明らかに何かが足りません。NSMutableDataとフリーダイヤルブリッジを使用せずに、必要な可変データオブジェクトを取得するための適切なCore Foundationの方法はありますか?