上一章中,我給大家介紹了 SM4 在 BoringSSL 上的移植要點,本來計劃本章介紹 SM2 算法的移植要點。在移植 SM2 過程中,遇到了一個攔路虎,所以先掃除這個攔路虎,這就是錯誤碼的定義問題。
在銅鎖中,引入了幾個錯誤碼和錯誤字符串,在文件 sm2_err.c 中:
static const ERR_STRING_DATA SM2_str_reasons[] = {{ERR_PACK(ERR_LIB_SM2, 0, SM2_R_ASN1_ERROR), "asn1 error"},{ERR_PACK(ERR_LIB_SM2, 0, SM2_R_BAD_SIGNATURE), "bad signature"},{ERR_PACK(ERR_LIB_SM2, 0, SM2_R_BUFFER_TOO_SMALL), "buffer too small"},{ERR_PACK(ERR_LIB_SM2, 0, SM2_R_DIST_ID_TOO_LARGE), "dist id too large"},{ERR_PACK(ERR_LIB_SM2, 0, SM2_R_ID_NOT_SET), "id not set"},{ERR_PAC