Crypto API の 鍵コンテナ名の最大長

Cryppto APIではどのくらいの長さの鍵コンテナ名が使用できるのか?
鍵生成ツール [CryptGenRSAKey] を使用し実際に検証してみた。

C:\temp\CryptGenRSAKey>CryptGenRSAKey.exe /?
CryptoAPIでRSA鍵ペアを作成しCSPの鍵コンテナに格納します。

CryptGenRSAKey [/N:鍵コンテナ名] [/P:CSP] [/M] [/X] [/L:鍵長(bit)] [/F:ファイル
名] [/?]
  /N:鍵コンテナ名  鍵を格納する鍵コンテナ名を指定します。未指定の場合は既定を使
用。
  /P:CSP           使用するCSP値。未指定の場合PROV_RSA_FULL=1。
                   PROV_RSA_FULL     = 1
                   PROV_RSA_SCHANNEL = 12
                   PROV_RSA_AES      = 24
  /M               鍵をグローバルな領域に格納します。未指定の場合はユーザ毎の領
域に格納します。
  /X               秘密鍵をエクスポート可能にします。
  /L:鍵長(bit)     鍵のサイズをビットで指定します。未指定の場合2048。
  /F:ファイル名    出力する公開鍵ファイル名。未指定の場合は出力しません。
  /?               使用方法を表示します。

(例)
  CryptGenRSAKey /N:TestProvider /L:4096 /F:test.file
  CryptGenRSAKey /N:"Test Provider" /L:4096 /F:"c:\Sample Dir\test.file"

—–250バイト——————————————————————-
C:\temp\CryptGenRSAKey>CryptGenRSAKey.exe /M /N:"1234567890123456789012345678901
23456789012345678901234567890123456789012345678901234567890123456789012345678901
23456789012345678901234567890123456789012345678901234567890123456789012345678901
23456789012345678901234567890123456789012345678901234567890"
Generate Time=188

—–260バイト——————————————————————-

C:\temp\CryptGenRSAKey>CryptGenRSAKey.exe /M /N:"1234567890123456789012345678901
23456789012345678901234567890123456789012345678901234567890123456789012345678901
23456789012345678901234567890123456789012345678901234567890123456789012345678901
234567890123456789012345678901234567890123456789012345678901234567890"
Generate Time=453

—–261バイト——————————————————————-

C:\temp\CryptGenRSAKey>CryptGenRSAKey.exe /M /N:"1234567890123456789012345678901
23456789012345678901234567890123456789012345678901234567890123456789012345678901
23456789012345678901234567890123456789012345678901234567890123456789012345678901
2345678901234567890123456789012345678901234567890123456789012345678901"
Error[8009001f]=Keyset パラメータが無効です。

C:\temp\CryptGenRSAKey>

結果的には260バイトまで成功。

※上記の上から

250バイト → ○成功
260バイト → ○成功
261バイト → ×失敗

下記のMSDNのドキュメントでは"最大長はANSIキャラクタでMAX_PATHサイズ※"と記載されている。 ※260

Key Storage and Retrieval (Windows)
http://msdn.microsoft.com/en-us/library/bb204778%28VS.85%29.aspx

> The following are some of the differences between the CryptoAPI and CNG key containers.
> The CNG KSP and key names are limited to MAX_PATH Unicode characters. The CryptoAPI CSP and key names are limited to MAX_PATH ANSI characters.

広告

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中