Secutil 도구(Secutil.exe)

업데이트: 2007년 11월

Secutil 도구를 사용하면 강력한 이름 정보 또는 X.509 인증서에 대한 공개 키를 어셈블리에서 추출하여 코드에 포함할 수 있는 형식으로 변환할 수 있습니다.

secutil [-array | -hex] [-cmode | -vbmode]
{-strongname | -x509certificate} filename 

매개 변수

인수

설명

filename

강력한 이름의 공개 키 또는 X.509 인증서가 들어 있는 어셈블리 파일을 나타냅니다.

옵션

설명

-a[rray]

-strongname 옵션과 함께 사용하면 공개 키를 바이트 배열로 포함하는 강력한 이름 정보와 지정된 어셈블리의 이름 및 버전을 반환합니다. –x509certificate 옵션과 함께 사용하면 지정된 어셈블리의 공개 키를 X.509 인증서에 대한 바이트 배열로 반환합니다. -array 또는 -hex 옵션을 지정하지 않을 경우 기본값은 -array입니다.

-c[mode]

지정된 어셈블리에 있는 강력한 이름 정보 또는 X.509 인증서에 대한 공개 키를 반환합니다. -cmode 또는 -vbmode 옵션을 지정하지 않을 경우 기본값은 -cmode입니다.

-h[elp]

이 도구의 명령 구문 및 옵션을 표시합니다.

-hex

-strongname 옵션과 함께 사용하면 공개 키를 16진수로 인코딩된 문자열로 포함하는 강력한 이름 정보와 지정된 어셈블리의 이름 및 버전을 반환합니다. –x509certificate 옵션과 함께 사용하면 공개 키를 지정된 어셈블리의 X.509 인증서에 대한 16진수로 인코딩된 문자열로 반환합니다.

-s[trongname]

지정된 어셈블리에서 강력한 이름의 공개 키, 어셈블리 이름 및 버전 번호를 추출합니다. 기본적으로 공개 키는 C# 또는 C++의 바이트 배열 정의에 사용하기 적합한 배열 형식으로 반환됩니다. 자세한 내용은 -array–cmode 옵션을 참조하십시오.

강력한 이름의 어셈블리가 아닌 파일을 참조하면 오류가 반환됩니다.   

-v[bmode]

강력한 이름 정보 또는 X.509 인증서에 대한 공개 키를 Visual Basic에서 사용하기 적합한 배열 형식으로 반환합니다.

-x[509certificate]

지정된 어셈블리의 X.509 인증서에서 공개 키를 추출합니다. 기본적으로 공개 키는 C# 또는 C++의 바이트 배열 정의에 사용하기 적합한 배열 형식으로 반환됩니다. 자세한 내용은 -array–cmode 옵션을 참조하십시오.

Authenticode를 사용하여 서명한 파일에만 X.509 Authenticode 게시자 인증서가 들어 있습니다. 다른 형식의 파일을 참조하면 오류가 반환됩니다.

-?

이 도구의 명령 구문 및 옵션을 표시합니다.

설명

명령줄 옵션을 지정하지 않으면 이 도구의 명령 구문 및 옵션을 표시할 수 있습니다.

.NET Framework 보안 시스템에서는 관련된 증명 정보에 따라 코드의 동작을 제한할 수 있는 메커니즘이 제공됩니다. 강력한 이름과 Authenticode 게시자라는 두 가지 형식의 증명 정보는 암호화 키 및 디지털 서명 기술을 기반으로 합니다.

명령형 ID 권한 검사에서 이러한 증명 정보 형식을 사용하려면 아주 긴 이진 데이터(강력한 이름의 경우에는 공개 키 값이고, Authenticode 게시자의 경우에는 X.509 인증서)를 참조해야 합니다. 검사할 증명 정보가 들어 있는 어셈블리 파일 이름을 지정하여 Secutil.exe를 실행하고, 해당 출력 내용을 상수 정의의 형식으로 코드에 붙여넣을 수 있습니다. 그런 다음 이 상수 값을 사용하여 검사할 올바른 ID 권한을 생성할 수 있습니다. 이러한 사용 권한의 생성 방법에 대한 내용은 System.Security.Permissions.PublisherIdentityPermission 클래스System.Security.Permissions.StrongNameIdentityPermission 클래스를 참조하십시오.

예제

다음 명령을 사용하여 myFile에서 강력한 이름 정보를 추출하고 공개 키를 기본 바이트 배열 형식으로 반환합니다.

secutil -strongname myFile

출력 내용은 다음과 같습니다.

Microsoft (R) .NET Framework SecUtil 1.0.2310.0
Copyright (c) Microsoft Corp 1999-2000. All rights reserved.

Public Key = 
{ 0, 36, 0, 0, 4, 128, 0, 0, 148, 0, 0, 0, 6, 2, 0, 0, 0, 36, 0, 0, 82,
83, 65, 49, 0, 4, 0, 0, 1, 0, 1, 0, 125, 153, 220, 107, 82, 7, 120, 98,
141, 142, 191, 216, 4, 190, 9, 125, 149, 0, 18, 169, 111, 81, 149, 179,
79, 192, 204, 91, 207, 61, 87, 213, 54, 9, 203, 70, 249, 71, 6, 181, 33,
153, 60, 69, 190, 178, 223, 99, 236, 47, 217, 110, 16, 228, 107, 180, 72,
189, 147, 126, 155, 81, 88, 89, 125, 126, 30, 149, 207, 139, 216, 132,
46, 171, 8, 95, 249, 114, 196, 80, 183, 159, 173, 75, 73, 113, 195, 29,
41, 6, 49, 150, 195, 168, 228, 235, 156, 42, 215, 132, 177, 108, 211, 78,
86, 170, 16, 0, 66, 93, 100, 139, 9, 78, 60, 3, 242, 12, 35, 13, 154, 39,
50, 183, 95, 253, 208, 172 }
Name =
myFile
Version =
1.2.3.4
Success

다음 명령을 사용하여 myHelloFile의 X.509 인증서에서 공개 키를 추출한 다음 16 진수로 인코딩된 문자열로 반환합니다.

secutil -hex -x509certificate myHelloFile 

출력 내용은 다음과 같습니다.

Microsoft (R) .NET Framework SecUtil 1.0.2310.0
Copyright (c) Microsoft Corp 1999-2000. All rights reserved.

X509 Certificate =
0x308201833082012DA0030201020210B9360877C4B169244F7435304C270D4300D06092A8
64886F70D01010405003016311430120603550403130B526F6F74204167656E6379301E170
D3030313131353030333033385A170D3339313233313233353935395A30223120301E06035
5040313174A6F6527732D536F674776172652D456D706F7269756D305C300D06092A864886
F70D0101010500034B003048024100B7C23E337868D7971CEBB435B68736A6F694AFD50443
147FE18AF26029B2A8FAB3DC014D72195CA64844E26648878B32BABFE06126D1B63233C2D7
A88A38EC170203010001A34B304930470603551D010440303E801012E4092D061D1D4F008D
6121DC166463A1183016311430120603550403130B526F6F74204167656E6379821006376C
00AA00648A11CFB8D4AA5C35F4300D06092A864886F70D01010405000341005690921281BE
823AC4EC33D09ED8A2D04AE052B6022AB6DEEC67E3A6F203051AEDB8C54F3E7280D3983DC3
07560EA934966871ED5D4C9D304AC2553FD24BF3EE
Success

참고 항목

개념

증명 정보

참조

.NET Framework 도구

System.Security.Permissions.PublisherIdentityPermission

System.Security.Permissions.StrongNameIdentityPermission

SDK 명령 프롬프트