ICertRequest2::提交 CSR 数据 ASCII 到 BSTR 的兼容性
我的 certrequest 是 PEM base64 数据。 请参阅下面的数据。
1)我的理解是这是一个 ASCII 数据类型而不是 统一码格式。 请澄清。
-----开始新的证书请求----- MIIBTjCBuAIBADARMQ8wDQYDVQQDEwZ3dTAwMzEwgZ0wDQYJKoZIhvcNAQEBBQAD 吉萨米格哈奥GBAKP48eljetv3fVicT6g6hKjmLpsySJaZ/NnepEJEqtQQNbwsluhW yWxhHWzPoNPV9uqjZBW7EnqYjxyPp1A0vOK35uxmmcNrgmuSjO1WBkD0YVZwzh2u OovRCOwJKklQtJnQWoM+yT8CyBVk7raVJOrLDMC8FR5AMknVCIlt7HppAgEDoAAw DQYJKoZIhvcNAQEFBQADgYEAAK5G10e39GxiNiPXdrOAwtuIiLd1UTWn3VYY7nYY 74LhydUBjo0Xi6HBTTNVlpNoRB9GOe5P1Qgq0EJ6gLIrIFY+Gxdl2Y4lSo7FmpxB +87bRCLpC3mxQltNm97ZysmS4I4diYhPDSS/2ackeH2cBgAtQVG9KsuZ41qxUQ10 EY8= -----结束新证书请求-----
2) 如果上述数据是 ASCII 格式,我如何将其转换为 BSTR,如 ICertRequest2::Submit 要求数据为 unicode 字符串。
3)我可以将ASCII数据直接转换为BSTR吗
谢谢 拉吉
I have my certrequest as a PEM base64 data. See data below.
1) My understanding is that this is an ASCII data type and not in
UNICODE format. Please clarify.
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBTjCBuAIBADARMQ8wDQYDVQQDEwZ3dTAwMzEwgZ0wDQYJKoZIhvcNAQEBBQAD
gYsAMIGHAoGBAKP48eljetv3fVicT6g6hKjmLpsySJaZ/NnepEJEqtQQNbwsluhW
yWxhHWzPoNPV9uqjZBW7EnqYjxyPp1A0vOK35uxmmcNrgmuSjO1WBkD0YVZwzh2u
OovRCOwJKklQtJnQWoM+yT8CyBVk7raVJOrLDMC8FR5AMknVCIlt7HppAgEDoAAw
DQYJKoZIhvcNAQEFBQADgYEAAK5G10e39GxiNiPXdrOAwtuIiLd1UTWn3VYY7nYY
74LhydUBjo0Xi6HBTTNVlPNoRB9GOe5P1Qgq0EJ6gLIriFY+Gxdl2Y4lSo7FmpxB
+87bRCLpC3mxQltNm97ZysmS4I4diYhPDSS/2acKeH2cBgAtQVG9KsuZ41qxUQ10
EY8=
-----END NEW CERTIFICATE REQUEST-----
2) If the above data is in ASCII, how can i convert it to BSTR, as
ICertRequest2::Submit requires the data to be unicode string.
3) Can i convert the ASCII data directly to BSTR
Thanks
Raj
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要么:
使用
MultiByteToWideChar
在调用SysAllocString
(或SysAllocStringLen
)之前使用
_bstr_t
或CComBSTR
是 BSTR 的 C++ 包装器。
Either:
Use
MultiByteToWideChar
before callingSysAllocString
(orSysAllocStringLen
)Use
_bstr_t
orCComBSTR
which are C++ wrappers for BSTRs.US-ASCII 是 UTF-8 的子集。 任何ASCII字符的编码形式都是UTF-8编码,因此不需要转换。
只需按原样传递字符串,设置
CR_IN_BASE64HEADER
标志即可。US-ASCII is a subset of UTF-8. The encoded form of any ASCII character is the UTF-8 encoding, so no conversion is needed.
Simply pass the string as-is, setting the
CR_IN_BASE64HEADER
flag.