• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
7th Mon

CCCrypt

DES などの他に、 SDK 4.3 だと AES が使える。 SDK 5.X だと AES, Blowfish が使える。

Base SDK を 5.X にして Deploy Target を 4.3 にすると、Blowfish を指定してコンパイルできるが 4.3 の環境では動かないという現象になるので注意。

典型的なコードは以下の通り。

   1  
   2  void
   3  X( int p )
   4  {//エラー判定処理
   5  }
   6  
   7  NSData*
   8  DataEncryptedByAES256( NSData* p, NSData* pKey )
   9  {	size_t	wSize = ( ( p.length + kCCBlockSizeAES128 - 1 ) / kCCBlockSizeAES128 ) * kCCBlockSizeAES128;
  10  	char	v[ wSize ];
  11  	X
  12  	(	CCCrypt
  13  		(	kCCEncrypt
  14  		,	kCCAlgorithmAES128
  15  		,	kCCOptionPKCS7Padding | kCCOptionECBMode
  16  		,	pKey.bytes
  17  		,	kCCKeySizeAES256
  18  		,	NULL
  19  		,	p.bytes
  20  		,	p.length
  21  		,	v
  22  		,	wSize
  23  		,	&wSize
  24  		)
  25  	);
  26  	return [ NSData dataWithBytes:v length:wSize ];
  27  }
  28  
  29  
  30  NSData*
  31  DataEncryptedByBlowfish( NSData* p, NSData* pKey )
  32  {	size_t	wSize = ( ( p.length + kCCBlockSizeBlowfish - 1 ) / kCCBlockSizeBlowfish ) * kCCBlockSizeBlowfish;
  33  	char	v[ wSize ];
  34  	X
  35  	(	CCCrypt
  36  		(	kCCEncrypt
  37  		,	kCCAlgorithmBlowfish
  38  		,	kCCOptionPKCS7Padding | kCCOptionECBMode
  39  		,	pKey.bytes
  40  		,	pKey.length
  41  		,	NULL
  42  		,	p.bytes
  43  		,	p.length
  44  		,	v
  45  		,	wSize
  46  		,	&wSize
  47  		)
  48  	);
  49  	return [ NSData dataWithBytes:v length:wSize ];
  50  }
  51  

posted by Face Saturn on Mon 7 May 2012 at 13:13

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry2117
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ