定制一款國密瀏覽器(10):移植SM2算法前,解決錯誤碼的定義問題

上一章中,我給大家介紹了 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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902076.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902076.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902076.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JDOM處理XML:Java程序員的“樂高積木2.0版“

各位代碼建筑師們!今天我們要玩一款比原生DOM更"Java友好"的XML積木套裝——JDOM!它像樂高得寶系列(Duplo)一樣簡單易用,卻能讓你的XML工程穩如霍格沃茨城堡!(溫馨提示:別…

【后端開發】Spring日志

文章目錄 Spring日志日志作用日志測試日志信息日志級別日志配置配置日志級別日志持久化日志文件分割 注解的使用 Spring日志 日志作用 系統監控:可以通過日志記錄這個系統的運行狀態,對數據進行分析,設置不同的規則,超過閾值時進…

探索大語言模型(LLM):Transformer 與 BERT從原理到實踐

Transformer 與 BERT:從原理到實踐 前言一、背景介紹二、核心公式推導1. 注意力機制(Attention Mechanism)2. 多頭注意力機制(Multi-Head Attention)3. Transformer 編碼器(Transformer Encoder&#xff09…

計算機網絡八股——HTTP協議與HTTPS協議

目錄 HTTP1.1簡述與特性 1. 報文清晰易讀 2. 靈活和易于擴展 3. ?狀態 Cookie和Session 4. 明?傳輸、不安全 HTTP協議發展過程 HTTP/1.1的不足 HTTP/2.0 HTTP/3.0 HTTPS協議 HTTP協議和HTTPS協議的區別 HTTPS中的加密方式 HTTPS中建立連接的方式 前言&#xff…

QML中的3D功能--入門開發

Qt Quick 提供了強大的 3D 功能支持,主要通過 Qt 3D 模塊實現。以下是 QML 中開發 3D 應用的全面指南。 1. 基本配置 環境要求 Qt 5.10 或更高版本(推薦 Qt 6.x) 啟用 Qt 3D 模塊 支持 OpenGL 的硬件 項目配置 在 .pro 文件中添加: QT += 3dcore 3drender 3dinput 3dex…

Git合并分支的兩種常用方式`git merge`和`git cherry-pick`

Git合并分支的兩種常用方式git merge和git cherry-pick 寫在前面1. git merge用途工作方式使用git命令方式合并使用idea工具方式合并 2. git cherry-pick用途工作方式使用git命令方式合并使用idea工具方式合并 3. 區別總結 寫在前面 一般我們使用git合并分支常用的就是git mer…

Web三漏洞學習(其三:rce漏洞)

靶場:NSSCTF 三、RCE漏洞 1、概述 在Web應用開發中會讓應用調用代碼執行函數或系統命令執行函數處理,若應用對用戶的輸入過濾不嚴,容易產生遠程代碼執行漏洞或系統命令執行漏洞 所以常見的RCE漏洞函數又分為代碼執行函數和系統命令執行函數…

從零開始:Python運行環境之VSCode與Anaconda安裝配置全攻略 (1)

從零開始:Python 運行環境之 VSCode 與 Anaconda 安裝配置全攻略 在當今數字化時代,Python 作為一種功能強大且易于學習的編程語言,被廣泛應用于數據科學、人工智能、Web 開發等眾多領域。為了順利開啟 Python 編程之旅,搭建一個穩…

從FPGA實現角度介紹DP_Main_link主通道原理

DisplayPort(簡稱DP)是一個標準化的數字式視頻接口標準,具有三大基本架構包含影音傳輸的主要通道(Main Link)、輔助通道(AUX)、與熱插拔(HPD)。 Main Link:用…

嵌入式軟件--stm32 DAY 2

大家學習嵌入式的時候,多多學習用KEIL寫代碼,雖然作為編譯器,大家常用vscode等常用工具關聯編碼,但目前keil仍然是主流工具之一,學習掌握十分必要。 1.再次創建項目 1.1編譯器自動生成文件 1.2初始文件 這樣下次創建新…

游戲引擎學習第234天:實現基數排序

回顧并為今天的內容設定背景 我們今天繼續進行排序的相關,雖然基本已經完成了,但還是想收尾一下,讓整個流程更完整。其實這次排序只是個借口,主要是想順便聊一聊一些計算機科學的知識點,這些內容在我們項目中平時不會…

計算機網絡——常見的網絡攻擊手段

什么是XSS攻擊,如何避免? XSS 攻擊,全稱跨站腳本攻擊(Cross-Site Scripting),這會與層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,因此有人將跨站腳本攻擊縮寫為XSS。它指的是惡意攻擊者往Web頁面…

Agent的九種設計模式 介紹

Agent的九種設計模式 介紹 一、ReAct模式 原理:將推理(Reasoning)和行動(Acting)相結合,使Agent能夠在推理的指導下采取行動,并根據行動的結果進一步推理,形成一個循環。Agent通過生成一系列的思維鏈(Thought Chains)來明確推理步驟,并根據推理結果執行相應的動作,…

LeetCode 熱題 100:回溯

46. 全排列 給定一個不含重復數字的數組 nums ,返回其 所有可能的全排列 。你可以 按任意順序 返回答案。 示例 1: 輸入:nums [1,2,3] 輸出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 輸入&#xff…

cJSON_Print 和 cJSON_PrintUnformatted的區別

cJSON_Print 和 cJSON_PrintUnformatted 是 cJSON 庫中用于將 cJSON 對象轉換為 JSON 字符串的兩個函數,它們的區別主要在于輸出的格式: 1. cJSON_Print 功能:將 cJSON 對象轉換為格式化的 JSON 字符串。 特點: 輸出的 JSON 字符…

A股周度復盤與下周策略 的deepseek提示詞模板

以下是反向整理的股票大盤分析提示詞模板,采用結構化框架數據占位符設計,可直接套用每周市場數據: 請根據一下markdown格式的模板,幫我檢索整理并輸出本周股市復盤和下周投資策略 【A股周度復盤與下周策略提示詞模板】 一、市場…

Linux下使用C++獲取硬件信息

目錄 方法獲取CPU信息:讀取"/proc/cpuinfo"文件獲取磁盤信息:讀取"/proc/diskstats"文件獲取BIOS信息有兩種方法:1、讀取文件;2、使用dmidecode命令獲取主板信息有兩種方法:1、讀取文件&#xff1…

BootStrap:進階使用(其二)

今天我要講述的是在BootStrap中第二篇關于進一步使用的方法與代碼舉例; 分頁: 對于一些大型網站而言,分頁是一個很有必要的存在,如果當數據內容過大時,則需要分頁來分擔一些,這可以使得大量內容能整合并全面地展示&a…

【技術派后端篇】技術派中的白名單機制:基于Redis的Set實現

在技術派社區中,為了保證文章的質量和社區的良性發展,所有發布的文章都需要經過審核。然而,并非所有作者的文章都需要審核,我們通過白名單機制來優化這一流程。本文將詳細介紹技術派中白名單的實現方式,以及如何利用Re…

TRAE.AI 國際版本

國際版下載地址: https://www.trae.ai/https://www.trae.ai/ 國際版本優勢:提供更多高校的AI助手模型 Claude-3.5-Sonnet Claude-3.7-Sonnet Gemini-2.5-Pro GPT-4.1 GPT-40 DeepSeek-V3-0324DeepSeek-V3DeepSeek-Reasoner(R1)