Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
dfcd8a67
Commit
dfcd8a67
authored
Sep 08, 2009
by
Juan Lang
Committed by
Alexandre Julliard
Sep 09, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
crypt32: Implement CertGetNameStringW for CERT_NAME_ATTR_TYPE.
parent
ef7cda72
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
0 deletions
+35
-0
str.c
dlls/crypt32/str.c
+35
-0
No files found.
dlls/crypt32/str.c
View file @
dfcd8a67
...
...
@@ -966,6 +966,25 @@ static PCERT_ALT_NAME_ENTRY cert_find_alt_name_entry(PCCERT_CONTEXT cert,
return
entry
;
}
static
DWORD
cert_get_name_from_rdn_attr
(
DWORD
encodingType
,
PCERT_NAME_BLOB
name
,
LPCSTR
oid
,
LPWSTR
pszNameString
,
DWORD
cchNameString
)
{
CERT_NAME_INFO
*
nameInfo
;
DWORD
bytes
=
0
,
ret
=
0
;
if
(
CryptDecodeObjectEx
(
encodingType
,
X509_NAME
,
name
->
pbData
,
name
->
cbData
,
CRYPT_DECODE_ALLOC_FLAG
,
NULL
,
&
nameInfo
,
&
bytes
))
{
PCERT_RDN_ATTR
nameAttr
=
CertFindRDNAttr
(
oid
,
nameInfo
);
if
(
nameAttr
)
ret
=
CertRDNValueToStrW
(
nameAttr
->
dwValueType
,
&
nameAttr
->
Value
,
pszNameString
,
cchNameString
);
LocalFree
(
nameInfo
);
}
return
ret
;
}
DWORD
WINAPI
CertGetNameStringW
(
PCCERT_CONTEXT
pCertContext
,
DWORD
dwType
,
DWORD
dwFlags
,
void
*
pvTypePara
,
LPWSTR
pszNameString
,
DWORD
cchNameString
)
{
...
...
@@ -989,6 +1008,22 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
switch
(
dwType
)
{
case
CERT_NAME_ATTR_TYPE
:
ret
=
cert_get_name_from_rdn_attr
(
pCertContext
->
dwCertEncodingType
,
name
,
pvTypePara
,
pszNameString
,
cchNameString
);
if
(
!
ret
)
{
CERT_ALT_NAME_INFO
*
altInfo
;
PCERT_ALT_NAME_ENTRY
entry
=
cert_find_alt_name_entry
(
pCertContext
,
altNameOID
,
CERT_ALT_NAME_DIRECTORY_NAME
,
&
altInfo
);
if
(
entry
)
ret
=
cert_name_to_str_with_indent
(
X509_ASN_ENCODING
,
0
,
&
entry
->
DirectoryName
,
0
,
pszNameString
,
cchNameString
);
if
(
altInfo
)
LocalFree
(
altInfo
);
}
break
;
case
CERT_NAME_SIMPLE_DISPLAY_TYPE
:
{
static
const
LPCSTR
simpleAttributeOIDs
[]
=
{
szOID_COMMON_NAME
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment