Win32 API 日本語リファレンス
ホームSecurity.Cryptography.Certificates › EncodingType

EncodingType

列挙型
基底型i4

メンバー 22

名前10進16進説明
XCN_CRYPT_STRING_BASE64HEADER00x0

文字列は、先頭と末尾の証明書ヘッダーを伴って base64 エンコードされます。Base64 は、バイナリデータを伝送するために使用されるエンコード方式です。エンコード対象のデータは 3 バイトずつ処理されます。24 ビットのバッファー内の 6 ビットごとが、テキスト文字列へのインデックスとして使用されます。使用される文字列は、エンコードするデータの種類によって異なります。次の文字列は、Multipurpose Internet Mail Extensions (MIME) 電子メールの base64 エンコードで一般的に使用されます。

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

次の例は、base64 エンコードされ、先頭と末尾のヘッダーを含む証明書を示しています。

-----BEGIN CERTIFICATE-----
MIIBqDCCARECAQAwaTELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVRleGFzMRMwEQYD
VQQHEwpMYXNDb2xpbmFzMRIwEAYDVQQKEwlNaWNyb3NvZnQxDjAMBgNVBAsTBUl0
ZWFtMREwDwYDVQQDFAhOVFZPT0RPTzCBnjANBgkqhkiG9w0BAQEFAAOBjAAwgYgC
gYBxmmAWKbLJHg5TuVyjgzWW0JsY5Shaqd7BDWtqhzy4HfRTW22f31rlm8NeSXHn
EhLiwsGgNzWHJ8no1QIYzAgpDR79oqxvgrY4WS3PXT7OLwIDAQABoAAwDQYJKoZI
hvcNAQEEBQADgYEAVcyI4jtnnV6kMiByiq4Xg99yL0U7bIpEwAf3MIZHS7wuNqfY
acfhbRj6VFHT8ObprKGPmqXJvwrBmPrEuCs4Ik6PidAAeEfoaa3naIbM73tTvKN+
WD30lAfGBr8SZixLep4pMIN/wO0eu6f30cBuoPtDnDulNT8AuQHjkJIc8Qc=
-----END CERTIFICATE----- 
XCN_CRYPT_STRING_BASE6410x1文字列は、先頭と末尾の証明書ヘッダーなしで base64 エンコードされます。
XCN_CRYPT_STRING_BINARY20x2文字列は純粋なバイナリシーケンスです。エンコードはされません。
XCN_CRYPT_STRING_BASE64REQUESTHEADER30x3

文字列は、先頭と末尾の証明書要求ヘッダーを伴って base64 エンコードされます。次の例に示します。

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
A4GNADCBiQKBgQDFUxFtzr170yxptKuGI1590Sta5z2dVElLfjAn+q4T1uZE3DiH
HXNRHW1eS9W2aeMZhRnYRi5U8eOdG3RUO4YXy4B1sqfy5I0qjjySA89ghVd/6JcA
K1nhGJL9FPJ6XKVUNLez7NpSCFlYs5foyTqyxDkHzTnQwRwkkwQ9dlbnfwIDAQAB
oIIBUzAaBgorBgEEAYI3DQIDMQwWCjUuMC4yMTk1LjIwNQYKKwYBBAGCNwIBDjEn
MCUwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMIH9BgorBgEE
AYI3DQICMYHuMIHrAgEBHloATQBpAGMAcgBvAHMAbwBmAHQAIABSAFMAQQAgAFMA
QwBoAGEAbgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIA
bwB2AGkAZABlAHIDgYkAXxNuAz6gcBaZUdef8WQ2PAroKMW8sprcKv7QD2encz6/
Wct9DZ5CkGynLGy0f+Lff7ViSDJqxYWaJ68ddqgXyAqIilF63kivPTiC6yxLaNX6
5v3cnKFx4UrUrGXZtub7M7/NuxSipOW0Vv7yCHganypxDyRzp6IhulEnL4APEH4A
AAAAAAAAADANBgkqhkiG9w0BAQUFAAOBgQBljJb1ZhWOwOLfzfHbC3yxGkXDy9w3
NA7uhQOvgntnqmSmdHP9nsM3DnxwaHb3EVxMKbAuLsSRDAE1KGqeamvQ3uFjuuL0
5q4nKhX25LyGFDSc6h1OHcv+0ugZ/9klsiViSeEGpMwllUf057o7q1Vls4HN22vM
wkcejcttDjo3Kw==
-----END NEW CERTIFICATE REQUEST-----
XCN_CRYPT_STRING_HEX40x4

文字列は 16 進数でエンコードされます。文字列の 4 ビットのニブルごとに、0 から 9 の数字または A から F (あるいは a から f) の英字で表現されます。次の例に示します。

3a 20 63 65 72 74 6c 69  62 5c 6c 64 61 70 2e 63
70 70 28 32 31 33 31 29  3a 20 6c 64 61 70 65 72
...
XCN_CRYPT_STRING_HEXASCII50x5

文字列は 16 進数でエンコードされ、対応する ASCII 文字が表示されます。次の例に示します。

3a 20 63 65 72 74 6c 69  62 5c 6c 64 61 70 2e 63   : certlib\ldap.c
70 70 28 32 31 33 31 29  3a 20 6c 64 61 70 65 72   pp(2131): ldaper
...
XCN_CRYPT_STRING_BASE64_ANY60x6

文字列は base64 エンコードされます。列挙型の値は次の順序で試行されます。

  1. XCN_CRYPT_STRING_BASE64HEADER
  2. XCN_CRYPT_STRING_BASE64
XCN_CRYPT_STRING_ANY70x7

列挙型の値は次の順序で試行されます。

  1. XCN_CRYPT_STRING_BASE64_ANY
  2. XCN_CRYPT_STRING_BINARY
XCN_CRYPT_STRING_BINARY の値は常に成功します。
XCN_CRYPT_STRING_HEX_ANY80x8

列挙型の値は次の順序で試行されます。

  1. XCN_CRYPT_STRING_HEXADDR
  2. XCN_CRYPT_STRING_HEXASCIIADDR
  3. XCN_CRYPT_STRING_HEXASCII
  4. XCN_CRYPT_STRING_HEX
XCN_CRYPT_STRING_BASE64X509CRLHEADER90x9

文字列は、先頭と末尾の X.509 証明書失効リスト (CRL) ヘッダーを伴って base64 エンコードされます。次の例に示します。

-----BEGIN X509 CRL-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
A4GNADCBiQKBgQDFUxFtzr170yxptKuGI1590Sta5z2dVElLfjAn+q4T1uZE3DiH
HXNRHW1eS9W2aeMZhRnYRi5U8eOdG3RUO4YXy4B1sqfy5I0qjjySA89ghVd/6JcA
K1nhGJL9FPJ6XKVUNLez7NpSCFlYs5foyTqyxDkHzTnQwRwkkwQ9dlbnfwIDAQAB
oIIBUzAaBgorBgEEAYI3DQIDMQwWCjUuMC4yMTk1LjIwNQYKKwYBBAGCNwIBDjEn
MCUwDgYDVR0PAQH/BAQDAgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMIH9BgorBgEE
AYI3DQICMYHuMIHrAgEBHloATQBpAGMAcgBvAHMAbwBmAHQAIABSAFMAQQAgAFMA
QwBoAGEAbgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIA
bwB2AGkAZABlAHIDgYkAXxNuAz6gcBaZUdef8WQ2PAroKMW8sprcKv7QD2encz6/
Wct9DZ5CkGynLGy0f+Lff7ViSDJqxYWaJ68ddqgXyAqIilF63kivPTiC6yxLaNX6
5v3cnKFx4UrUrGXZtub7M7/NuxSipOW0Vv7yCHganypxDyRzp6IhulEnL4APEH4A
AAAAAAAAADANBgkqhkiG9w0BAQUFAAOBgQBljJb1ZhWOwOLfzfHbC3yxGkXDy9w3
NA7uhQOvgntnqmSmdHP9nsM3DnxwaHb3EVxMKbAuLsSRDAE1KGqeamvQ3uFjuuL0
5q4nKhX25LyGFDSc6h1OHcv+0ugZ/9klsiViSeEGpMwllUf057o7q1Vls4HN22vM
wkcejcttDjo3Kw==
-----END X509 CRL-----
XCN_CRYPT_STRING_HEXADDR100xA

文字列は 16 進数でエンコードされ、16 進アドレスとして表示されます。次の例に示します。

0000  3a 20 63 65 72 74 6c 69  62 5c 6c 64 61 70 2e 63
0010  70 70 28 32 31 33 31 29  3a 20 6c 64 61 70 65 72
...
XCN_CRYPT_STRING_HEXASCIIADDR110xB

文字列は 16 進数でエンコードされ、16 進アドレスおよび対応する ASCII 文字とともに表示されます。次の例に示します。

0000  3a 20 63 65 72 74 6c 69  62 5c 6c 64 61 70 2e 63   : certlib\ldap.c
0010  70 70 28 32 31 33 31 29  3a 20 6c 64 61 70 65 72   pp(2131): ldaper
...
XCN_CRYPT_STRING_HEXRAW120xC

文字列は 16 進数でエンコードされ、区切り記号なしで表示されます。XCN_CRYPT_STRING_HEXRAW は Windows Vista でのみ使用できます。

3a20636572746c69625c6c6461702e6370702832313331293a206c6461706572...
XCN_CRYPT_STRING_BASE64URI130xD
XCN_CRYPT_STRING_ENCODEMASK2550xFF
XCN_CRYPT_STRING_CHAIN2560x100
XCN_CRYPT_STRING_TEXT5120x200
XCN_CRYPT_STRING_PERCENTESCAPE1342177280x8000000
XCN_CRYPT_STRING_HASHDATA2684354560x10000000
XCN_CRYPT_STRING_STRICT5368709120x20000000
XCN_CRYPT_STRING_NOCRLF10737418240x40000000エンコードされた文字列からキャリッジリターンおよびラインフィードの制御文字を削除します。
XCN_CRYPT_STRING_NOCR-21474836480x80000000エンコードされた文字列からキャリッジリターンの制御文字を削除します。

公式ドキュメント

EncodingType 列挙型は、表示目的でバイト配列に適用されるエンコードの種類を指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum EncodingType : int {
    XCN_CRYPT_STRING_BASE64HEADER = 0,
    XCN_CRYPT_STRING_BASE64 = 1,
    XCN_CRYPT_STRING_BINARY = 2,
    XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3,
    XCN_CRYPT_STRING_HEX = 4,
    XCN_CRYPT_STRING_HEXASCII = 5,
    XCN_CRYPT_STRING_BASE64_ANY = 6,
    XCN_CRYPT_STRING_ANY = 7,
    XCN_CRYPT_STRING_HEX_ANY = 8,
    XCN_CRYPT_STRING_BASE64X509CRLHEADER = 9,
    XCN_CRYPT_STRING_HEXADDR = 10,
    XCN_CRYPT_STRING_HEXASCIIADDR = 11,
    XCN_CRYPT_STRING_HEXRAW = 12,
    XCN_CRYPT_STRING_BASE64URI = 13,
    XCN_CRYPT_STRING_ENCODEMASK = 255,
    XCN_CRYPT_STRING_CHAIN = 256,
    XCN_CRYPT_STRING_TEXT = 512,
    XCN_CRYPT_STRING_PERCENTESCAPE = 134217728,
    XCN_CRYPT_STRING_HASHDATA = 268435456,
    XCN_CRYPT_STRING_STRICT = 536870912,
    XCN_CRYPT_STRING_NOCRLF = 1073741824,
    XCN_CRYPT_STRING_NOCR = -2147483648
} EncodingType;
public enum EncodingType : int
{
    XCN_CRYPT_STRING_BASE64HEADER = 0,
    XCN_CRYPT_STRING_BASE64 = 1,
    XCN_CRYPT_STRING_BINARY = 2,
    XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3,
    XCN_CRYPT_STRING_HEX = 4,
    XCN_CRYPT_STRING_HEXASCII = 5,
    XCN_CRYPT_STRING_BASE64_ANY = 6,
    XCN_CRYPT_STRING_ANY = 7,
    XCN_CRYPT_STRING_HEX_ANY = 8,
    XCN_CRYPT_STRING_BASE64X509CRLHEADER = 9,
    XCN_CRYPT_STRING_HEXADDR = 10,
    XCN_CRYPT_STRING_HEXASCIIADDR = 11,
    XCN_CRYPT_STRING_HEXRAW = 12,
    XCN_CRYPT_STRING_BASE64URI = 13,
    XCN_CRYPT_STRING_ENCODEMASK = 255,
    XCN_CRYPT_STRING_CHAIN = 256,
    XCN_CRYPT_STRING_TEXT = 512,
    XCN_CRYPT_STRING_PERCENTESCAPE = 134217728,
    XCN_CRYPT_STRING_HASHDATA = 268435456,
    XCN_CRYPT_STRING_STRICT = 536870912,
    XCN_CRYPT_STRING_NOCRLF = 1073741824,
    XCN_CRYPT_STRING_NOCR = -2147483648,
}
Public Enum EncodingType As Integer
    XCN_CRYPT_STRING_BASE64HEADER = 0
    XCN_CRYPT_STRING_BASE64 = 1
    XCN_CRYPT_STRING_BINARY = 2
    XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3
    XCN_CRYPT_STRING_HEX = 4
    XCN_CRYPT_STRING_HEXASCII = 5
    XCN_CRYPT_STRING_BASE64_ANY = 6
    XCN_CRYPT_STRING_ANY = 7
    XCN_CRYPT_STRING_HEX_ANY = 8
    XCN_CRYPT_STRING_BASE64X509CRLHEADER = 9
    XCN_CRYPT_STRING_HEXADDR = 10
    XCN_CRYPT_STRING_HEXASCIIADDR = 11
    XCN_CRYPT_STRING_HEXRAW = 12
    XCN_CRYPT_STRING_BASE64URI = 13
    XCN_CRYPT_STRING_ENCODEMASK = 255
    XCN_CRYPT_STRING_CHAIN = 256
    XCN_CRYPT_STRING_TEXT = 512
    XCN_CRYPT_STRING_PERCENTESCAPE = 134217728
    XCN_CRYPT_STRING_HASHDATA = 268435456
    XCN_CRYPT_STRING_STRICT = 536870912
    XCN_CRYPT_STRING_NOCRLF = 1073741824
    XCN_CRYPT_STRING_NOCR = -2147483648
End Enum
import enum

class EncodingType(enum.IntEnum):
    XCN_CRYPT_STRING_BASE64HEADER = 0
    XCN_CRYPT_STRING_BASE64 = 1
    XCN_CRYPT_STRING_BINARY = 2
    XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3
    XCN_CRYPT_STRING_HEX = 4
    XCN_CRYPT_STRING_HEXASCII = 5
    XCN_CRYPT_STRING_BASE64_ANY = 6
    XCN_CRYPT_STRING_ANY = 7
    XCN_CRYPT_STRING_HEX_ANY = 8
    XCN_CRYPT_STRING_BASE64X509CRLHEADER = 9
    XCN_CRYPT_STRING_HEXADDR = 10
    XCN_CRYPT_STRING_HEXASCIIADDR = 11
    XCN_CRYPT_STRING_HEXRAW = 12
    XCN_CRYPT_STRING_BASE64URI = 13
    XCN_CRYPT_STRING_ENCODEMASK = 255
    XCN_CRYPT_STRING_CHAIN = 256
    XCN_CRYPT_STRING_TEXT = 512
    XCN_CRYPT_STRING_PERCENTESCAPE = 134217728
    XCN_CRYPT_STRING_HASHDATA = 268435456
    XCN_CRYPT_STRING_STRICT = 536870912
    XCN_CRYPT_STRING_NOCRLF = 1073741824
    XCN_CRYPT_STRING_NOCR = -2147483648
// EncodingType
pub const XCN_CRYPT_STRING_BASE64HEADER: i32 = 0;
pub const XCN_CRYPT_STRING_BASE64: i32 = 1;
pub const XCN_CRYPT_STRING_BINARY: i32 = 2;
pub const XCN_CRYPT_STRING_BASE64REQUESTHEADER: i32 = 3;
pub const XCN_CRYPT_STRING_HEX: i32 = 4;
pub const XCN_CRYPT_STRING_HEXASCII: i32 = 5;
pub const XCN_CRYPT_STRING_BASE64_ANY: i32 = 6;
pub const XCN_CRYPT_STRING_ANY: i32 = 7;
pub const XCN_CRYPT_STRING_HEX_ANY: i32 = 8;
pub const XCN_CRYPT_STRING_BASE64X509CRLHEADER: i32 = 9;
pub const XCN_CRYPT_STRING_HEXADDR: i32 = 10;
pub const XCN_CRYPT_STRING_HEXASCIIADDR: i32 = 11;
pub const XCN_CRYPT_STRING_HEXRAW: i32 = 12;
pub const XCN_CRYPT_STRING_BASE64URI: i32 = 13;
pub const XCN_CRYPT_STRING_ENCODEMASK: i32 = 255;
pub const XCN_CRYPT_STRING_CHAIN: i32 = 256;
pub const XCN_CRYPT_STRING_TEXT: i32 = 512;
pub const XCN_CRYPT_STRING_PERCENTESCAPE: i32 = 134217728;
pub const XCN_CRYPT_STRING_HASHDATA: i32 = 268435456;
pub const XCN_CRYPT_STRING_STRICT: i32 = 536870912;
pub const XCN_CRYPT_STRING_NOCRLF: i32 = 1073741824;
pub const XCN_CRYPT_STRING_NOCR: i32 = -2147483648;
// EncodingType
const (
	XCN_CRYPT_STRING_BASE64HEADER int32 = 0
	XCN_CRYPT_STRING_BASE64 int32 = 1
	XCN_CRYPT_STRING_BINARY int32 = 2
	XCN_CRYPT_STRING_BASE64REQUESTHEADER int32 = 3
	XCN_CRYPT_STRING_HEX int32 = 4
	XCN_CRYPT_STRING_HEXASCII int32 = 5
	XCN_CRYPT_STRING_BASE64_ANY int32 = 6
	XCN_CRYPT_STRING_ANY int32 = 7
	XCN_CRYPT_STRING_HEX_ANY int32 = 8
	XCN_CRYPT_STRING_BASE64X509CRLHEADER int32 = 9
	XCN_CRYPT_STRING_HEXADDR int32 = 10
	XCN_CRYPT_STRING_HEXASCIIADDR int32 = 11
	XCN_CRYPT_STRING_HEXRAW int32 = 12
	XCN_CRYPT_STRING_BASE64URI int32 = 13
	XCN_CRYPT_STRING_ENCODEMASK int32 = 255
	XCN_CRYPT_STRING_CHAIN int32 = 256
	XCN_CRYPT_STRING_TEXT int32 = 512
	XCN_CRYPT_STRING_PERCENTESCAPE int32 = 134217728
	XCN_CRYPT_STRING_HASHDATA int32 = 268435456
	XCN_CRYPT_STRING_STRICT int32 = 536870912
	XCN_CRYPT_STRING_NOCRLF int32 = 1073741824
	XCN_CRYPT_STRING_NOCR int32 = -2147483648
)
const
  XCN_CRYPT_STRING_BASE64HEADER = 0;
  XCN_CRYPT_STRING_BASE64 = 1;
  XCN_CRYPT_STRING_BINARY = 2;
  XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3;
  XCN_CRYPT_STRING_HEX = 4;
  XCN_CRYPT_STRING_HEXASCII = 5;
  XCN_CRYPT_STRING_BASE64_ANY = 6;
  XCN_CRYPT_STRING_ANY = 7;
  XCN_CRYPT_STRING_HEX_ANY = 8;
  XCN_CRYPT_STRING_BASE64X509CRLHEADER = 9;
  XCN_CRYPT_STRING_HEXADDR = 10;
  XCN_CRYPT_STRING_HEXASCIIADDR = 11;
  XCN_CRYPT_STRING_HEXRAW = 12;
  XCN_CRYPT_STRING_BASE64URI = 13;
  XCN_CRYPT_STRING_ENCODEMASK = 255;
  XCN_CRYPT_STRING_CHAIN = 256;
  XCN_CRYPT_STRING_TEXT = 512;
  XCN_CRYPT_STRING_PERCENTESCAPE = 134217728;
  XCN_CRYPT_STRING_HASHDATA = 268435456;
  XCN_CRYPT_STRING_STRICT = 536870912;
  XCN_CRYPT_STRING_NOCRLF = 1073741824;
  XCN_CRYPT_STRING_NOCR = -2147483648;
// EncodingType
pub const XCN_CRYPT_STRING_BASE64HEADER: i32 = 0;
pub const XCN_CRYPT_STRING_BASE64: i32 = 1;
pub const XCN_CRYPT_STRING_BINARY: i32 = 2;
pub const XCN_CRYPT_STRING_BASE64REQUESTHEADER: i32 = 3;
pub const XCN_CRYPT_STRING_HEX: i32 = 4;
pub const XCN_CRYPT_STRING_HEXASCII: i32 = 5;
pub const XCN_CRYPT_STRING_BASE64_ANY: i32 = 6;
pub const XCN_CRYPT_STRING_ANY: i32 = 7;
pub const XCN_CRYPT_STRING_HEX_ANY: i32 = 8;
pub const XCN_CRYPT_STRING_BASE64X509CRLHEADER: i32 = 9;
pub const XCN_CRYPT_STRING_HEXADDR: i32 = 10;
pub const XCN_CRYPT_STRING_HEXASCIIADDR: i32 = 11;
pub const XCN_CRYPT_STRING_HEXRAW: i32 = 12;
pub const XCN_CRYPT_STRING_BASE64URI: i32 = 13;
pub const XCN_CRYPT_STRING_ENCODEMASK: i32 = 255;
pub const XCN_CRYPT_STRING_CHAIN: i32 = 256;
pub const XCN_CRYPT_STRING_TEXT: i32 = 512;
pub const XCN_CRYPT_STRING_PERCENTESCAPE: i32 = 134217728;
pub const XCN_CRYPT_STRING_HASHDATA: i32 = 268435456;
pub const XCN_CRYPT_STRING_STRICT: i32 = 536870912;
pub const XCN_CRYPT_STRING_NOCRLF: i32 = 1073741824;
pub const XCN_CRYPT_STRING_NOCR: i32 = -2147483648;
const
  XCN_CRYPT_STRING_BASE64HEADER* = 0
  XCN_CRYPT_STRING_BASE64* = 1
  XCN_CRYPT_STRING_BINARY* = 2
  XCN_CRYPT_STRING_BASE64REQUESTHEADER* = 3
  XCN_CRYPT_STRING_HEX* = 4
  XCN_CRYPT_STRING_HEXASCII* = 5
  XCN_CRYPT_STRING_BASE64_ANY* = 6
  XCN_CRYPT_STRING_ANY* = 7
  XCN_CRYPT_STRING_HEX_ANY* = 8
  XCN_CRYPT_STRING_BASE64X509CRLHEADER* = 9
  XCN_CRYPT_STRING_HEXADDR* = 10
  XCN_CRYPT_STRING_HEXASCIIADDR* = 11
  XCN_CRYPT_STRING_HEXRAW* = 12
  XCN_CRYPT_STRING_BASE64URI* = 13
  XCN_CRYPT_STRING_ENCODEMASK* = 255
  XCN_CRYPT_STRING_CHAIN* = 256
  XCN_CRYPT_STRING_TEXT* = 512
  XCN_CRYPT_STRING_PERCENTESCAPE* = 134217728
  XCN_CRYPT_STRING_HASHDATA* = 268435456
  XCN_CRYPT_STRING_STRICT* = 536870912
  XCN_CRYPT_STRING_NOCRLF* = 1073741824
  XCN_CRYPT_STRING_NOCR* = -2147483648
enum EncodingType : int {
    XCN_CRYPT_STRING_BASE64HEADER = 0,
    XCN_CRYPT_STRING_BASE64 = 1,
    XCN_CRYPT_STRING_BINARY = 2,
    XCN_CRYPT_STRING_BASE64REQUESTHEADER = 3,
    XCN_CRYPT_STRING_HEX = 4,
    XCN_CRYPT_STRING_HEXASCII = 5,
    XCN_CRYPT_STRING_BASE64_ANY = 6,
    XCN_CRYPT_STRING_ANY = 7,
    XCN_CRYPT_STRING_HEX_ANY = 8,
    XCN_CRYPT_STRING_BASE64X509CRLHEADER = 9,
    XCN_CRYPT_STRING_HEXADDR = 10,
    XCN_CRYPT_STRING_HEXASCIIADDR = 11,
    XCN_CRYPT_STRING_HEXRAW = 12,
    XCN_CRYPT_STRING_BASE64URI = 13,
    XCN_CRYPT_STRING_ENCODEMASK = 255,
    XCN_CRYPT_STRING_CHAIN = 256,
    XCN_CRYPT_STRING_TEXT = 512,
    XCN_CRYPT_STRING_PERCENTESCAPE = 134217728,
    XCN_CRYPT_STRING_HASHDATA = 268435456,
    XCN_CRYPT_STRING_STRICT = 536870912,
    XCN_CRYPT_STRING_NOCRLF = 1073741824,
    XCN_CRYPT_STRING_NOCR = -2147483648,
}
#define global XCN_CRYPT_STRING_BASE64HEADER        0x0
#define global XCN_CRYPT_STRING_BASE64              0x1
#define global XCN_CRYPT_STRING_BINARY              0x2
#define global XCN_CRYPT_STRING_BASE64REQUESTHEADER 0x3
#define global XCN_CRYPT_STRING_HEX                 0x4
#define global XCN_CRYPT_STRING_HEXASCII            0x5
#define global XCN_CRYPT_STRING_BASE64_ANY          0x6
#define global XCN_CRYPT_STRING_ANY                 0x7
#define global XCN_CRYPT_STRING_HEX_ANY             0x8
#define global XCN_CRYPT_STRING_BASE64X509CRLHEADER 0x9
#define global XCN_CRYPT_STRING_HEXADDR             0xA
#define global XCN_CRYPT_STRING_HEXASCIIADDR        0xB
#define global XCN_CRYPT_STRING_HEXRAW              0xC
#define global XCN_CRYPT_STRING_BASE64URI           0xD
#define global XCN_CRYPT_STRING_ENCODEMASK          0xFF
#define global XCN_CRYPT_STRING_CHAIN               0x100
#define global XCN_CRYPT_STRING_TEXT                0x200
#define global XCN_CRYPT_STRING_PERCENTESCAPE       0x8000000
#define global XCN_CRYPT_STRING_HASHDATA            0x10000000
#define global XCN_CRYPT_STRING_STRICT              0x20000000
#define global XCN_CRYPT_STRING_NOCRLF              0x40000000
#define global XCN_CRYPT_STRING_NOCR                0x80000000