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
7bcfc123
Commit
7bcfc123
authored
Jul 19, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
crypt32/tests: Use nameless unions/structs.
parent
a0b9b4ee
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
48 deletions
+42
-48
chain.c
dlls/crypt32/tests/chain.c
+1
-1
encode.c
dlls/crypt32/tests/encode.c
+0
-0
msg.c
dlls/crypt32/tests/msg.c
+36
-42
oid.c
dlls/crypt32/tests/oid.c
+5
-5
No files found.
dlls/crypt32/tests/chain.c
View file @
7bcfc123
...
@@ -5154,7 +5154,7 @@ static void check_ssl_policy(void)
...
@@ -5154,7 +5154,7 @@ static void check_ssl_policy(void)
/* And again authenticating a client, but specify the size of the policy
/* And again authenticating a client, but specify the size of the policy
* parameter.
* parameter.
*/
*/
U
(
sslPolicyPara
)
.
cbSize
=
sizeof
(
sslPolicyCheck
);
sslPolicyPara
.
cbSize
=
sizeof
(
sslPolicyCheck
);
sslPolicyPara
.
dwAuthType
=
AUTHTYPE_CLIENT
;
sslPolicyPara
.
dwAuthType
=
AUTHTYPE_CLIENT
;
CHECK_CHAIN_POLICY_STATUS_ARRAY
(
CERT_CHAIN_POLICY_SSL
,
NULL
,
sslPolicyCheck
,
CHECK_CHAIN_POLICY_STATUS_ARRAY
(
CERT_CHAIN_POLICY_SSL
,
NULL
,
sslPolicyCheck
,
&
oct2007
,
&
policyPara
);
&
oct2007
,
&
policyPara
);
...
...
dlls/crypt32/tests/encode.c
View file @
7bcfc123
This diff is collapsed.
Click to expand it.
dlls/crypt32/tests/msg.c
View file @
7bcfc123
...
@@ -1105,12 +1105,10 @@ static void test_signed_msg_open(void)
...
@@ -1105,12 +1105,10 @@ static void test_signed_msg_open(void)
certInfo
.
Issuer
.
cbData
=
0
;
certInfo
.
Issuer
.
cbData
=
0
;
certInfo
.
SerialNumber
.
cbData
=
0
;
certInfo
.
SerialNumber
.
cbData
=
0
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_ISSUER_SERIAL_NUMBER
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_ISSUER_SERIAL_NUMBER
;
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
Issuer
.
cbData
=
signer
.
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
=
sizeof
(
encodedCommonName
);
sizeof
(
encodedCommonName
);
signer
.
SignerId
.
IssuerSerialNumber
.
Issuer
.
pbData
=
encodedCommonName
;
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
Issuer
.
pbData
=
encodedCommonName
;
signer
.
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
=
sizeof
(
serialNum
);
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
SerialNumber
.
cbData
=
signer
.
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
pbData
=
serialNum
;
sizeof
(
serialNum
);
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
SerialNumber
.
pbData
=
serialNum
;
msg
=
CryptMsgOpenToEncode
(
PKCS_7_ASN_ENCODING
,
0
,
CMSG_SIGNED
,
&
signInfo
,
msg
=
CryptMsgOpenToEncode
(
PKCS_7_ASN_ENCODING
,
0
,
CMSG_SIGNED
,
&
signInfo
,
NULL
,
NULL
);
NULL
,
NULL
);
ok
(
msg
!=
NULL
,
"CryptMsgOpenToEncode failed: %lx
\n
"
,
GetLastError
());
ok
(
msg
!=
NULL
,
"CryptMsgOpenToEncode failed: %lx
\n
"
,
GetLastError
());
...
@@ -1642,8 +1640,8 @@ static void test_signed_msg_encoding(void)
...
@@ -1642,8 +1640,8 @@ static void test_signed_msg_encoding(void)
certInfo
.
SerialNumber
.
cbData
=
0
;
certInfo
.
SerialNumber
.
cbData
=
0
;
certInfo
.
Issuer
.
cbData
=
0
;
certInfo
.
Issuer
.
cbData
=
0
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_KEY_IDENTIFIER
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_KEY_IDENTIFIER
;
U
(
signer
.
SignerId
)
.
KeyId
.
cbData
=
sizeof
(
serialNum
);
signer
.
SignerId
.
KeyId
.
cbData
=
sizeof
(
serialNum
);
U
(
signer
.
SignerId
)
.
KeyId
.
pbData
=
serialNum
;
signer
.
SignerId
.
KeyId
.
pbData
=
serialNum
;
msg
=
CryptMsgOpenToEncode
(
PKCS_7_ASN_ENCODING
,
0
,
CMSG_SIGNED
,
&
signInfo
,
msg
=
CryptMsgOpenToEncode
(
PKCS_7_ASN_ENCODING
,
0
,
CMSG_SIGNED
,
&
signInfo
,
NULL
,
NULL
);
NULL
,
NULL
);
ok
(
msg
!=
NULL
,
"CryptMsgOpenToEncode failed: %lx
\n
"
,
GetLastError
());
ok
(
msg
!=
NULL
,
"CryptMsgOpenToEncode failed: %lx
\n
"
,
GetLastError
());
...
@@ -1866,12 +1864,10 @@ static void test_signed_msg_get_param(void)
...
@@ -1866,12 +1864,10 @@ static void test_signed_msg_get_param(void)
certInfo
.
SerialNumber
.
cbData
=
0
;
certInfo
.
SerialNumber
.
cbData
=
0
;
certInfo
.
Issuer
.
cbData
=
0
;
certInfo
.
Issuer
.
cbData
=
0
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_ISSUER_SERIAL_NUMBER
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_ISSUER_SERIAL_NUMBER
;
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
Issuer
.
cbData
=
signer
.
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
=
sizeof
(
encodedCommonName
);
sizeof
(
encodedCommonName
);
signer
.
SignerId
.
IssuerSerialNumber
.
Issuer
.
pbData
=
encodedCommonName
;
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
Issuer
.
pbData
=
encodedCommonName
;
signer
.
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
=
sizeof
(
serialNum
);
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
SerialNumber
.
cbData
=
signer
.
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
pbData
=
serialNum
;
sizeof
(
serialNum
);
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
SerialNumber
.
pbData
=
serialNum
;
ret
=
CryptAcquireContextA
(
&
signer
.
hCryptProv
,
cspNameA
,
NULL
,
ret
=
CryptAcquireContextA
(
&
signer
.
hCryptProv
,
cspNameA
,
NULL
,
PROV_RSA_FULL
,
CRYPT_NEWKEYSET
);
PROV_RSA_FULL
,
CRYPT_NEWKEYSET
);
if
(
!
ret
&&
GetLastError
()
==
NTE_EXISTS
)
if
(
!
ret
&&
GetLastError
()
==
NTE_EXISTS
)
...
@@ -1911,8 +1907,8 @@ static void test_signed_msg_get_param(void)
...
@@ -1911,8 +1907,8 @@ static void test_signed_msg_get_param(void)
* the CMS version.
* the CMS version.
*/
*/
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_KEY_IDENTIFIER
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_KEY_IDENTIFIER
;
U
(
signer
.
SignerId
)
.
KeyId
.
cbData
=
sizeof
(
serialNum
);
signer
.
SignerId
.
KeyId
.
cbData
=
sizeof
(
serialNum
);
U
(
signer
.
SignerId
)
.
KeyId
.
pbData
=
serialNum
;
signer
.
SignerId
.
KeyId
.
pbData
=
serialNum
;
ret
=
CryptAcquireContextA
(
&
signer
.
hCryptProv
,
cspNameA
,
NULL
,
ret
=
CryptAcquireContextA
(
&
signer
.
hCryptProv
,
cspNameA
,
NULL
,
PROV_RSA_FULL
,
CRYPT_NEWKEYSET
);
PROV_RSA_FULL
,
CRYPT_NEWKEYSET
);
if
(
!
ret
&&
GetLastError
()
==
NTE_EXISTS
)
if
(
!
ret
&&
GetLastError
()
==
NTE_EXISTS
)
...
@@ -2520,32 +2516,32 @@ static void compare_cms_signer_info(const CMSG_CMS_SIGNER_INFO *got,
...
@@ -2520,32 +2516,32 @@ static void compare_cms_signer_info(const CMSG_CMS_SIGNER_INFO *got,
{
{
if
(
got
->
SignerId
.
dwIdChoice
==
CERT_ID_ISSUER_SERIAL_NUMBER
)
if
(
got
->
SignerId
.
dwIdChoice
==
CERT_ID_ISSUER_SERIAL_NUMBER
)
{
{
ok
(
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
Issuer
.
cbData
==
ok
(
got
->
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
==
U
(
expected
->
SignerId
)
.
IssuerSerialNumber
.
Issuer
.
cbData
,
expected
->
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
,
"Expected issuer size %ld, got %ld
\n
"
,
"Expected issuer size %ld, got %ld
\n
"
,
U
(
expected
->
SignerId
)
.
IssuerSerialNumber
.
Issuer
.
cbData
,
expected
->
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
,
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
Issuer
.
cbData
);
got
->
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
);
ok
(
!
memcmp
(
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
Issuer
.
pbData
,
ok
(
!
memcmp
(
got
->
SignerId
.
IssuerSerialNumber
.
Issuer
.
pbData
,
U
(
expected
->
SignerId
)
.
IssuerSerialNumber
.
Issuer
.
pbData
,
expected
->
SignerId
.
IssuerSerialNumber
.
Issuer
.
pbData
,
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
Issuer
.
cbData
),
got
->
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
),
"Unexpected issuer
\n
"
);
"Unexpected issuer
\n
"
);
ok
(
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
SerialNumber
.
cbData
==
ok
(
got
->
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
==
U
(
expected
->
SignerId
)
.
IssuerSerialNumber
.
SerialNumber
.
cbData
,
expected
->
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
,
"Expected serial number size %ld, got %ld
\n
"
,
"Expected serial number size %ld, got %ld
\n
"
,
U
(
expected
->
SignerId
)
.
IssuerSerialNumber
.
SerialNumber
.
cbData
,
expected
->
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
,
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
SerialNumber
.
cbData
);
got
->
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
);
ok
(
!
memcmp
(
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
SerialNumber
.
pbData
,
ok
(
!
memcmp
(
got
->
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
pbData
,
U
(
expected
->
SignerId
)
.
IssuerSerialNumber
.
SerialNumber
.
pbData
,
expected
->
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
pbData
,
U
(
got
->
SignerId
)
.
IssuerSerialNumber
.
SerialNumber
.
cbData
),
got
->
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
),
"Unexpected serial number
\n
"
);
"Unexpected serial number
\n
"
);
}
}
else
else
{
{
ok
(
U
(
got
->
SignerId
).
KeyId
.
cbData
==
U
(
expected
->
SignerId
)
.
KeyId
.
cbData
,
ok
(
got
->
SignerId
.
KeyId
.
cbData
==
expected
->
SignerId
.
KeyId
.
cbData
,
"expected key id size %ld, got %ld
\n
"
,
"expected key id size %ld, got %ld
\n
"
,
U
(
expected
->
SignerId
).
KeyId
.
cbData
,
U
(
got
->
SignerId
)
.
KeyId
.
cbData
);
expected
->
SignerId
.
KeyId
.
cbData
,
got
->
SignerId
.
KeyId
.
cbData
);
ok
(
!
memcmp
(
U
(
expected
->
SignerId
)
.
KeyId
.
pbData
,
ok
(
!
memcmp
(
expected
->
SignerId
.
KeyId
.
pbData
,
U
(
got
->
SignerId
).
KeyId
.
pbData
,
U
(
got
->
SignerId
)
.
KeyId
.
cbData
),
got
->
SignerId
.
KeyId
.
pbData
,
got
->
SignerId
.
KeyId
.
cbData
),
"unexpected key id
\n
"
);
"unexpected key id
\n
"
);
}
}
}
}
...
@@ -2785,12 +2781,10 @@ static void test_decode_msg_get_param(void)
...
@@ -2785,12 +2781,10 @@ static void test_decode_msg_get_param(void)
signer
.
dwVersion
=
1
;
signer
.
dwVersion
=
1
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_ISSUER_SERIAL_NUMBER
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_ISSUER_SERIAL_NUMBER
;
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
Issuer
.
cbData
=
signer
.
SignerId
.
IssuerSerialNumber
.
Issuer
.
cbData
=
sizeof
(
encodedCommonName
);
sizeof
(
encodedCommonName
);
signer
.
SignerId
.
IssuerSerialNumber
.
Issuer
.
pbData
=
encodedCommonName
;
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
Issuer
.
pbData
=
encodedCommonName
;
signer
.
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
cbData
=
sizeof
(
serialNum
);
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
SerialNumber
.
cbData
=
signer
.
SignerId
.
IssuerSerialNumber
.
SerialNumber
.
pbData
=
serialNum
;
sizeof
(
serialNum
);
U
(
signer
.
SignerId
).
IssuerSerialNumber
.
SerialNumber
.
pbData
=
serialNum
;
signer
.
HashAlgorithm
.
pszObjId
=
oid_rsa_md5
;
signer
.
HashAlgorithm
.
pszObjId
=
oid_rsa_md5
;
CryptMsgGetParam
(
msg
,
CMSG_CMS_SIGNER_INFO_PARAM
,
0
,
buf
,
&
size
);
CryptMsgGetParam
(
msg
,
CMSG_CMS_SIGNER_INFO_PARAM
,
0
,
buf
,
&
size
);
compare_cms_signer_info
((
CMSG_CMS_SIGNER_INFO
*
)
buf
,
&
signer
);
compare_cms_signer_info
((
CMSG_CMS_SIGNER_INFO
*
)
buf
,
&
signer
);
...
@@ -2871,8 +2865,8 @@ static void test_decode_msg_get_param(void)
...
@@ -2871,8 +2865,8 @@ static void test_decode_msg_get_param(void)
signer
.
dwVersion
=
CMSG_SIGNED_DATA_V3
;
signer
.
dwVersion
=
CMSG_SIGNED_DATA_V3
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_KEY_IDENTIFIER
;
signer
.
SignerId
.
dwIdChoice
=
CERT_ID_KEY_IDENTIFIER
;
U
(
signer
.
SignerId
)
.
KeyId
.
cbData
=
sizeof
(
serialNum
);
signer
.
SignerId
.
KeyId
.
cbData
=
sizeof
(
serialNum
);
U
(
signer
.
SignerId
)
.
KeyId
.
pbData
=
serialNum
;
signer
.
SignerId
.
KeyId
.
pbData
=
serialNum
;
signer
.
HashAlgorithm
.
pszObjId
=
oid_rsa_md5
;
signer
.
HashAlgorithm
.
pszObjId
=
oid_rsa_md5
;
CryptMsgGetParam
(
msg
,
CMSG_CMS_SIGNER_INFO_PARAM
,
0
,
buf
,
&
size
);
CryptMsgGetParam
(
msg
,
CMSG_CMS_SIGNER_INFO_PARAM
,
0
,
buf
,
&
size
);
compare_cms_signer_info
((
CMSG_CMS_SIGNER_INFO
*
)
buf
,
&
signer
);
compare_cms_signer_info
((
CMSG_CMS_SIGNER_INFO
*
)
buf
,
&
signer
);
...
...
dlls/crypt32/tests/oid.c
View file @
7bcfc123
...
@@ -543,8 +543,8 @@ static void test_findOIDInfo(void)
...
@@ -543,8 +543,8 @@ static void test_findOIDInfo(void)
if
(
info
)
if
(
info
)
{
{
ok
(
!
strcmp
(
info
->
pszOID
,
test
->
oid
),
"Unexpected OID %s, expected %s
\n
"
,
info
->
pszOID
,
test
->
oid
);
ok
(
!
strcmp
(
info
->
pszOID
,
test
->
oid
),
"Unexpected OID %s, expected %s
\n
"
,
info
->
pszOID
,
test
->
oid
);
ok
(
U
(
*
info
).
Algid
==
test
->
algid
||
broken
(
U
(
*
info
).
Algid
==
test
->
broken_algid
),
ok
(
info
->
Algid
==
test
->
algid
||
broken
(
info
->
Algid
==
test
->
broken_algid
),
"Unexpected Algid %d, expected %d
\n
"
,
U
(
*
info
).
Algid
,
test
->
algid
);
"Unexpected Algid %d, expected %d
\n
"
,
info
->
Algid
,
test
->
algid
);
}
}
}
}
...
@@ -559,8 +559,8 @@ static void test_findOIDInfo(void)
...
@@ -559,8 +559,8 @@ static void test_findOIDInfo(void)
wine_dbgstr_w
(
L"sha256ECDSA"
),
wine_dbgstr_w
(
info
->
pwszName
));
wine_dbgstr_w
(
L"sha256ECDSA"
),
wine_dbgstr_w
(
info
->
pwszName
));
ok
(
info
->
dwGroupId
==
CRYPT_SIGN_ALG_OID_GROUP_ID
,
ok
(
info
->
dwGroupId
==
CRYPT_SIGN_ALG_OID_GROUP_ID
,
"Expected CRYPT_SIGN_ALG_OID_GROUP_ID, got %lu
\n
"
,
info
->
dwGroupId
);
"Expected CRYPT_SIGN_ALG_OID_GROUP_ID, got %lu
\n
"
,
info
->
dwGroupId
);
ok
(
U
(
*
info
).
Algid
==
CALG_OID_INFO_CNG_ONLY
,
ok
(
info
->
Algid
==
CALG_OID_INFO_CNG_ONLY
,
"Expected CALG_OID_INFO_CNG_ONLY, got %d
\n
"
,
U
(
*
info
).
Algid
);
"Expected CALG_OID_INFO_CNG_ONLY, got %d
\n
"
,
info
->
Algid
);
data
=
(
DWORD
*
)
info
->
ExtraInfo
.
pbData
;
data
=
(
DWORD
*
)
info
->
ExtraInfo
.
pbData
;
ok
(
info
->
ExtraInfo
.
cbData
==
8
,
"Expected 8, got %ld
\n
"
,
info
->
ExtraInfo
.
cbData
);
ok
(
info
->
ExtraInfo
.
cbData
==
8
,
"Expected 8, got %ld
\n
"
,
info
->
ExtraInfo
.
cbData
);
...
@@ -581,7 +581,7 @@ static void test_findOIDInfo(void)
...
@@ -581,7 +581,7 @@ static void test_findOIDInfo(void)
ok
(
!
strcmp
(
info
->
pszOID
,
oid_ecc_public_key
),
"got %s.
\n
"
,
info
->
pszOID
);
ok
(
!
strcmp
(
info
->
pszOID
,
oid_ecc_public_key
),
"got %s.
\n
"
,
info
->
pszOID
);
ok
(
!
wcscmp
(
info
->
pwszName
,
L"ECC"
),
"got %s.
\n
"
,
wine_dbgstr_w
(
info
->
pwszName
));
ok
(
!
wcscmp
(
info
->
pwszName
,
L"ECC"
),
"got %s.
\n
"
,
wine_dbgstr_w
(
info
->
pwszName
));
ok
(
info
->
dwGroupId
==
CRYPT_PUBKEY_ALG_OID_GROUP_ID
,
"got %lu.
\n
"
,
info
->
dwGroupId
);
ok
(
info
->
dwGroupId
==
CRYPT_PUBKEY_ALG_OID_GROUP_ID
,
"got %lu.
\n
"
,
info
->
dwGroupId
);
ok
(
U
(
*
info
).
Algid
==
CALG_OID_INFO_PARAMETERS
,
"got %d.
\n
"
,
U
(
*
info
).
Algid
);
ok
(
info
->
Algid
==
CALG_OID_INFO_PARAMETERS
,
"got %d.
\n
"
,
info
->
Algid
);
ok
(
!
info
->
ExtraInfo
.
cbData
,
"got %ld.
\n
"
,
info
->
ExtraInfo
.
cbData
);
ok
(
!
info
->
ExtraInfo
.
cbData
,
"got %ld.
\n
"
,
info
->
ExtraInfo
.
cbData
);
ok
(
!
wcscmp
(
info
->
pwszCNGAlgid
,
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
),
"got %s.
\n
"
,
wine_dbgstr_w
(
info
->
pwszCNGAlgid
));
ok
(
!
wcscmp
(
info
->
pwszCNGAlgid
,
CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM
),
"got %s.
\n
"
,
wine_dbgstr_w
(
info
->
pwszCNGAlgid
));
ok
(
info
->
pwszCNGExtraAlgid
&&
!
wcscmp
(
info
->
pwszCNGExtraAlgid
,
L""
),
"got %s.
\n
"
,
ok
(
info
->
pwszCNGExtraAlgid
&&
!
wcscmp
(
info
->
pwszCNGExtraAlgid
,
L""
),
"got %s.
\n
"
,
...
...
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