Hi Akihiro,
The patch looks mostly good now, thanks. I have a few minor comments.
On 20.04.2017 13:58, Akihiro Sagawa wrote:
+struct schan_alg_id_name {
- ALG_ID alg_id;
- const char* name;
- const WCHAR *nameW;
+};
Using an array here like const WCHAR nameW[8]; would make later initialization nicer by not requiring multiple string variables.
+static int comp_alg_id(const void *a, const void *b) +{
- const struct schan_alg_id_name *lhs = a;
- const struct schan_alg_id_name *rhs = b;
- return (int)lhs->alg_id - (int)rhs->alg_id;
+}
+static void* get_alg_name(ALG_ID id, BOOL wide) +{
- static const WCHAR ecdsaW[] = {'E','C','D','S','A',0};
- static const WCHAR rsaW[] = {'R','S','A',0};
- static const WCHAR desW[] = {'D','E','S',0};
- static const WCHAR rc2W[] = {'R','C','2',0};
- static const WCHAR triple_desW[] = {'3','D','E','S',0};
- static const WCHAR aesW[] = {'A','E','S',0};
- static const WCHAR rc4W[] = {'R','C','4',0};
- static const struct schan_alg_id_name alg_name_map[] = {
{ CALG_ECDSA, "ECDSA", ecdsaW },
{ CALG_RSA_SIGN, "RSA", rsaW },
{ CALG_DES, "DES", desW },
{ CALG_RC2, "RC2", rc2W },
{ CALG_3DES, "3DES", triple_desW },
{ CALG_AES_128, "AES", aesW },
{ CALG_AES_192, "AES", aesW },
{ CALG_AES_256, "AES", aesW },
{ CALG_RC4, "RC4", rc4W },
- };
- const struct schan_alg_id_name *res;
- struct schan_alg_id_name key;
- key.alg_id = id;
- res = bsearch(&key, alg_name_map,
sizeof(alg_name_map)/sizeof(alg_name_map[0]), sizeof(alg_name_map[0]),
comp_alg_id);
You could use id directly as a key. You don't need it to be of schan_alg_id_name* type, the key may be just ALG_ID.
Thanks, Jacek