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