diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 77969b1..94f1503 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -1,54 +1,28 @@ -find_package(Doxygen REQUIRED) -find_package(Sphinx REQUIRED) +find_package(Doxygen) -# Find all the public headers -get_target_property(HSMC_PUBLIC_HEADER_DIR hsmc INTERFACE_INCLUDE_DIRECTORIES) -file(GLOB_RECURSE HSMC_PUBLIC_HEADERS ../include/hsmc/*.h) +if (DOXYGEN_FOUND) + set(DOXYGEN_INPUT_DIR "${DOXYGEN_INPUT_DIR} ${PROJECT_SOURCE_DIR}/include") + set(DOXYGEN_INPUT_DIR "${DOXYGEN_INPUT_DIR} ${PROJECT_SOURCE_DIR}/src") + set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen) + set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) + set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) -set(DOXYGEN_INPUT_DIR "${DOXYGEN_INPUT_DIR} ${PROJECT_SOURCE_DIR}/include") -set(DOXYGEN_INPUT_DIR "${DOXYGEN_INPUT_DIR} ${PROJECT_SOURCE_DIR}/src") -set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen) -set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/xml/index.xml) -set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in) -set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) + #Replace variables inside @@ with the current values + configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY) -#Replace variables inside @@ with the current values -configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY) + add_custom_target(Doxygen ALL + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating API documentation with Doxygen" + VERBATIM) -file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR}) #Doxygen won't create this for us -add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE} - DEPENDS ${HSMC_PUBLIC_HEADERS} - COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT} - MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN} - COMMENT "Generating docs") + # Add an install target to install the docs + include(GNUInstallDirs) + install(DIRECTORY ${DOXYGEN_OUTPUT_DIR} + DESTINATION ${CMAKE_INSTALL_DOCDIR}) -add_custom_target(Doxygen ALL DEPENDS ${DOXYGEN_INDEX_FILE}) +else (DOXYGEN_FOUND) + message(WARNING "Doxygen need to be installed to generate the documentation") +endif(DOXYGEN_FOUND) -set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}) -set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/sphinx) -set(SPHINX_INDEX_FILE ${SPHINX_BUILD}/index.html) -# Only regenerate Sphinx when: -# - Doxygen has rerun -# - Our doc files have been updated -# - The Sphinx config has been updated -add_custom_command(OUTPUT ${SPHINX_INDEX_FILE} - COMMAND ${SPHINX_EXECUTABLE} -b html - # Tell Breathe where to find the Doxygen output - -Dbreathe_projects.hsmc=${DOXYGEN_OUTPUT_DIR}/xml - ${SPHINX_SOURCE} ${SPHINX_BUILD} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS - # Other docs files you want to track should go here (or in some variable) - ${CMAKE_CURRENT_SOURCE_DIR}/*.rst - ${DOXYGEN_INDEX_FILE} - MAIN_DEPENDENCY ${SPHINX_SOURCE}/conf.py - COMMENT "Generating documentation with Sphinx") - -# Nice named target so we can run the job easily -add_custom_target(Sphinx ALL DEPENDS ${SPHINX_INDEX_FILE}) - -# Add an install target to install the docs -include(GNUInstallDirs) -install(DIRECTORY ${SPHINX_BUILD} - DESTINATION ${CMAKE_INSTALL_DOCDIR}) \ No newline at end of file diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index 34bcfa6..e92c978 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -42,7 +42,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "HSMC API" +PROJECT_NAME = "HSMConn" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -54,7 +54,7 @@ PROJECT_NUMBER = # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = "HSMC API参考" +PROJECT_BRIEF = "HSMConn API 参考文档" # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 @@ -852,7 +852,7 @@ WARNINGS = YES # will automatically be disabled. # The default value is: YES. -WARN_IF_UNDOCUMENTED = YES +WARN_IF_UNDOCUMENTED = NO # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as documenting some parameters in @@ -1879,7 +1879,7 @@ EXTRA_SEARCH_MAPPINGS = # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. # The default value is: YES. -GENERATE_LATEX = YES +GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of @@ -2163,7 +2163,7 @@ MAN_LINKS = NO # captures the structure of the code including all documentation. # The default value is: NO. -GENERATE_XML = YES +GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index d4bb2cb..0000000 --- a/docs/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/api.rst b/docs/api.rst deleted file mode 100644 index 3a7320d..0000000 --- a/docs/api.rst +++ /dev/null @@ -1,60 +0,0 @@ -.. _apiref: - -HSMC API参考 -================== - -核心类 ------------ - -hsmc::SessionPool -~~~~~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::SessionPool - :members: - -hsmc::SessionFactory -~~~~~~~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::SessionFactory - :members: - -hsmc::Session -~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::Session - :members: - -hsmc::Connector -~~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::Connector - :members: - -hsmc::SessionImpl -~~~~~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::SessionImpl - :members: - -hsmc::PooledSessionImpl -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::PooledSessionImpl - :members: - -hsmc::PooledSessionHolder -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::PooledSessionHolder - :members: - -hsmc::ConnectorType -~~~~~~~~~~~~~~~~~~~~ - -.. doxygenenum:: hsmc::ConnectorType - -hsmc::Instrument -~~~~~~~~~~~~~~~~~ - -.. doxygenclass:: hsmc::Instrument - :members: \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 011ac58..0000000 --- a/docs/conf.py +++ /dev/null @@ -1,50 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# For the full list of built-in configuration values, see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Project information ----------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information -from typing import Any, Dict - -project = 'HSMC API' -copyright = 'Copyright © 2023 哈工大深圳数据安全研究院' -author = 'wab' -release = '1.0' - -# -- General configuration --------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration - -extensions = ["breathe"] -breathe_default_project = "hsmc" - -templates_path = ['_templates'] -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -language = 'zh_CN' - -# -- Options for HTML output ------------------------------------------------- -# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output - -#html_theme = 'sphinx_rtd_theme' -#html_show_sphinx = False -html_title = "HSMC API" -html_theme = 'furo' -html_static_path = ['_static'] -html_theme_options: Dict[str, Any] = { - "footer_icons": [ - { - "name": "GitHub", - "url": "https://github.com/hitsz-ids/hsmc", - "html": """ - - - - """, - "class": "", - }, - ], - "source_repository": "https://github.com/hitsz-ids/hsmc", - "source_branch": "main", - "source_directory": "docs/", -} \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 015ab0a..0000000 --- a/docs/index.rst +++ /dev/null @@ -1,20 +0,0 @@ - -HSMC API -========= - -欢迎访问 ``HSMC`` 的C++ API接口文档。本文档提供了 ``HSMC`` 的C++主要类及成员函数的详细说明。 - -.. note:: 本文档是由 ``Doxygen + Sphinx`` 工具自动生成。您可以通过编辑C++头文件中的注释,并重新构建即可更新API文档内容 - -.. toctree:: - :maxdepth: 1 - - intro - api - -.. toctree:: - :maxdepth: 1 - :caption: 附录 - - vendors - diff --git a/docs/intro.rst b/docs/intro.rst deleted file mode 100644 index 0795f9c..0000000 --- a/docs/intro.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. _introduction: - -HSMC是什么? -=============== - -``HSMC`` 是一个以C++语言封装的开发库(C++ Headers & Library)。面向需要进行国密改造的业务系统,为其提供异构厂商的密码设备调用能力。业务系统应用程序动态或静态链接 ``HSMC`` 库可实现对底层包括服务器密码机、签名验签服务器、时间戳服务器等设备算力的统一访问。 - - -设计理念 ------------------ - -为解决异构厂商密码设备接入问题,我们提出一种密码模块通用的连接器 ``HSM-Connector`` (简写 ``HSMC`` ),其理念源于JDBC的启发。 - -主要特性 ------------------ -* 面向对象的统一接口 -* 连接池化管理 -* 负载均衡调度 - -示例代码 ------------------ -* https://hsmc.idslab.io/docs/tutorial-basics/example \ No newline at end of file diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index 954237b..0000000 --- a/docs/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/docs/vendors.rst b/docs/vendors.rst deleted file mode 100644 index 4f0d0be..0000000 --- a/docs/vendors.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. _vendors: - -设备适配参考 -================= - -密码机模拟器 ------------- -.. doxygennamespace:: hsmc::emu - :members: - -九维数安 ------------- - -密码机 -~~~~~~~~~~~~~~ -.. doxygennamespace:: hsmc::ndsec - :members: - -签名验签服务器 -~~~~~~~~~~~~~~~~~~ -.. doxygennamespace:: hsmc::svs::ndsec - :members: - -时间戳服务器 -~~~~~~~~~~~~~~~~~~ -.. doxygennamespace:: hsmc::tss::ndsec - :members: diff --git a/include/hsmc/connector.h b/include/hsmc/connector.h index 68d2b93..982ea56 100644 --- a/include/hsmc/connector.h +++ b/include/hsmc/connector.h @@ -235,12 +235,14 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi virtual int SDF_GetDeviceInfo(void *hSessionHandle, DEVICEINFO *pstDeviceInfo) const; /// SDF_GenerateRandom + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiLength /// \param pucRandom /// \return virtual int SDF_GenerateRandom(void *hSessionHandle, unsigned int uiLength, unsigned char *pucRandom) const; /// SDF_GetPrivateKeyAccessRight + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucPassword /// \param uiPwdLength @@ -249,11 +251,13 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int uiPwdLength) const; /// SDF_ReleasePrivateKeyAccessRight + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \return virtual int SDF_ReleasePrivateKeyAccessRight(void *hSessionHandle, unsigned int uiKeyIndex) const; /// SDF_ExportSignPublicKey_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucPublicKey /// \return @@ -261,6 +265,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi RSArefPublicKey *pucPublicKey) const; /// SDF_ExportEncPublicKey_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucPublicKey /// \return @@ -268,6 +273,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi RSArefPublicKey *pucPublicKey) const; /// SDF_GenerateKeyPair_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyBits /// \param pucPublicKey /// \param pucPrivateKey @@ -276,6 +282,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi RSArefPrivateKey *pucPrivateKey) const; /// SDF_GenerateKeyWithIPK_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiIPKIndex /// \param uiKeyBits /// \param pucKey @@ -286,6 +293,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucKey, unsigned int *puiKeyLength, void **phKeyHandle) const; /// SDF_GenerateKeyWithEPK_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyBits /// \param pucPublicKey /// \param pucKey @@ -296,6 +304,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucKey, unsigned int *puiKeyLength, void **phKeyHandle) const; /// SDF_ImportKeyWithISK_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiISKIndex /// \param pucKey /// \param uiKeyLength @@ -305,6 +314,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int uiKeyLength, void **phKeyHandle) const; /// SDF_ExchangeDigitEnvelopeBaseOnRSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucPublicKey /// \param pucDEInput @@ -318,6 +328,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int *puiDELength) const; /// SDF_ExportSignPublicKey_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucPublicKey /// \return @@ -325,6 +336,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCrefPublicKey *pucPublicKey) const; /// SDF_ExportEncPublicKey_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucPublicKey /// \return @@ -332,6 +344,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCrefPublicKey *pucPublicKey) const; /// SDF_GenerateKeyPair_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiAlgID /// \param uiKeyBits /// \param pucPublicKey @@ -341,6 +354,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCrefPublicKey *pucPublicKey, ECCrefPrivateKey *pucPrivateKey) const; /// SDF_GenerateKeyWithIPK_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiIPKIndex /// \param uiKeyBits /// \param pucKey @@ -350,6 +364,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCCipher *pucKey, void **phKeyHandle) const; /// SDF_GenerateKeyWithEPK_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyBits /// \param uiAlgID /// \param pucPublicKey @@ -360,6 +375,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCrefPublicKey *pucPublicKey, ECCCipher *pucKey, void **phKeyHandle) const; /// SDF_ImportKeyWithISK_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiISKIndex /// \param pucKey /// \param phKeyHandle @@ -368,6 +384,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi void **phKeyHandle) const; /// SDF_GenerateAgreementDataWithECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiISKIndex /// \param uiKeyBits /// \param pucSponsorID @@ -382,6 +399,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCrefPublicKey *pucSponsorTmpPublicKey, void **phAgreementHandle) const; /// SDF_GenerateKeyWithECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucResponseID /// \param uiResponseIDLength /// \param pucResponsePublicKey @@ -395,6 +413,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi void **phKeyHandle) const; /// SDF_GenerateAgreementDataAndKeyWithECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiISKIndex /// \param uiKeyBits /// \param pucResponseID @@ -414,6 +433,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCrefPublicKey *pucResponsePublicKey, ECCrefPublicKey *pucResponseTmpPublicKey, void **phKeyHandle) const; /// SDF_ExchangeDigitEnvelopeBaseOnECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param uiAlgID /// \param pucPublicKey @@ -425,6 +445,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCCipher *pucEncDataOut) const; /// SDF_GenerateKeyWithKEK + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyBits /// \param uiAlgID /// \param uiKEKIndex @@ -437,6 +458,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi void **phKeyHandle) const; /// SDF_ImportKeyWithKEK + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiAlgID /// \param uiKEKIndex /// \param pucKey @@ -447,6 +469,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucKey, unsigned int uiKeyLength, void **phKeyHandle) const; /// SDF_ImportKey + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucKey /// \param uiKeyLength /// \param phKeyHandle @@ -455,11 +478,13 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi void **phKeyHandle) const; /// SDF_DestroyKey + /// \param hSessionHandle 密码机设备会话句柄 /// \param hKeyHandle /// \return virtual int SDF_DestroyKey(void *hSessionHandle, void *hKeyHandle) const; /// SDF_ExternalPublicKeyOperation_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucPublicKey /// \param pucDataInput /// \param uiInputLength @@ -471,6 +496,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucDataOutput, unsigned int *puiOutputLength) const; /// SDF_InternalPublicKeyOperation_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucDataInput /// \param uiInputLength @@ -482,6 +508,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucDataOutput, unsigned int *puiOutputLength) const; /// SDF_InternalPrivateKeyOperation_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiKeyIndex /// \param pucDataInput /// \param uiInputLength @@ -493,6 +520,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucDataOutput, unsigned int *puiOutputLength) const; /// SDF_ExternalPrivateKeyOperation_RSA + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucPrivateKey /// \param pucDataInput /// \param uiInputLength @@ -504,6 +532,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucDataOutput, unsigned int *puiOutputLength) const; /// SDF_ExternalSign_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiAlgID /// \param pucPrivateKey /// \param pucData @@ -514,6 +543,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucData, unsigned int uiDataLength, ECCSignature *pucSignature) const; /// SDF_ExternalVerify_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiAlgID /// \param pucPublicKey /// \param pucDataInput @@ -525,6 +555,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCSignature *pucSignature) const; /// SDF_InternalSign_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiISKIndex /// \param pucData /// \param uiDataLength @@ -534,6 +565,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int uiDataLength, ECCSignature *pucSignature) const; /// SDF_InternalVerify_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiIPKIndex /// \param pucData /// \param uiDataLength @@ -543,6 +575,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int uiDataLength, ECCSignature *pucSignature) const; /// SDF_ExternalEncrypt_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiAlgID /// \param pucPublicKey /// \param pucData @@ -553,6 +586,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucData, unsigned int uiDataLength, ECCCipher *pucEncData) const; /// SDF_ExternalDecrypt_ECC + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiAlgID /// \param pucPrivateKey /// \param pucEncData @@ -563,6 +597,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi ECCCipher *pucEncData, unsigned char *pucData, unsigned int *puiDataLength) const; /// SDF_Encrypt + /// \param hSessionHandle 密码机设备会话句柄 /// \param hKeyHandle /// \param uiAlgID /// \param pucIV @@ -576,6 +611,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int *puiEncDataLength) const; /// SDF_Decrypt + /// \param hSessionHandle 密码机设备会话句柄 /// \param hKeyHandle /// \param uiAlgID /// \param pucIV @@ -589,6 +625,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int *puiDataLength) const; /// SDF_CalculateMAC + /// \param hSessionHandle 密码机设备会话句柄 /// \param hKeyHandle /// \param uiAlgID /// \param pucIV @@ -602,6 +639,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int *puiMACLength) const; /// SDF_HashInit + /// \param hSessionHandle 密码机设备会话句柄 /// \param uiAlgID /// \param pucPublicKey /// \param pucID @@ -611,18 +649,21 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned char *pucID, unsigned int uiIDLength) const; /// SDF_HashUpdate + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucData /// \param uiDataLength /// \return virtual int SDF_HashUpdate(void *hSessionHandle, unsigned char *pucData, unsigned int uiDataLength) const; /// SDF_HashFinal + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucHash /// \param puiHashLength /// \return virtual int SDF_HashFinal(void *hSessionHandle, unsigned char *pucHash, unsigned int *puiHashLength) const; /// SDF_CreateFile + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucFileName /// \param uiNameLen /// \param uiFileSize @@ -632,6 +673,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int uiFileSize) const; /// SDF_ReadFile + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucFileName /// \param uiNameLen /// \param uiOffset @@ -642,6 +684,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int uiOffset, unsigned int *puiFileLength, unsigned char *pucBuffer) const; /// SDF_WriteFile + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucFileName /// \param uiNameLen /// \param uiOffset @@ -652,6 +695,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi unsigned int uiOffset, unsigned int uiFileLength, unsigned char *pucBuffer) const; /// SDF_DeleteFile + /// \param hSessionHandle 密码机设备会话句柄 /// \param pucFileName /// \param uiNameLen /// \return @@ -770,7 +814,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包数据签名验签更新 - /// \param hSessonHandle + /// \param hSessionHandle /// \param method /// \param hashMediantData /// \param hashMediantDataLen @@ -888,7 +932,7 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包消息签名验签更新 - /// \param hSessonHandle + /// \param hSessionHandle /// \param method /// \param hashMediantData /// \param hashMediantDataLen @@ -904,14 +948,10 @@ class HSMC_API Connector : public std::enable_shared_from_this, publi /// 多包消息签名验签结束 /// \param hSessionHandle /// \param method - /// \param type - /// \param certData - /// \param certDataLen /// \param hashMediantData /// \param hashMediantDataLen /// \param signData /// \param signDataLen - /// \param verifyLevel /// \return virtual int SVS_VerifySignedMessageFinal(void *hSessionHandle, int method, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, const uint8_t *signData, diff --git a/include/hsmc/session.h b/include/hsmc/session.h index b38d99f..ae36f02 100644 --- a/include/hsmc/session.h +++ b/include/hsmc/session.h @@ -122,102 +122,102 @@ class HSMC_API Session { /// 生成会话密钥并用指定索引的内部加密公钥加密输出,同时返回密钥句柄 /// 公钥加密数据时填充方式按照 PKCS#v1.5 的要求进行 /// - /// \param uiIPKIndex[in] 密码设备内部存储公钥的索引值 - /// \param uiKeyBits[in] 指定产生的会话密钥长度 - /// \param pucKey[out] 缓冲区指针,用于存放返回的密钥密文 - /// \param puiKeyLength[out] 返回的密钥密文长度 - /// \param phKeyHandle[out] 返回密钥句柄 + /// \param[in] uiIPKIndex 密码设备内部存储公钥的索引值 + /// \param[in] uiKeyBits 指定产生的会话密钥长度 + /// \param[out] pucKey 缓冲区指针,用于存放返回的密钥密文 + /// \param[out] puiKeyLength 返回的密钥密文长度 + /// \param[out] phKeyHandle 返回密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateKeyWithIPK_RSA(unsigned int uiIPKIndex, unsigned int uiKeyBits, unsigned char *pucKey, unsigned int *puiKeyLength, void **phKeyHandle) const; /// 生成会话密钥并用外部加密公钥加密输出,同时返回密钥句柄 - /// \param uiKeyBits[in] 指定产生的会话密钥长度 - /// \param pucPublicKey[in] 输入的外部RSAg公钥结构 - /// \param pucKey[out] 缓冲区指针,用于存放返回的密钥密文 - /// \param puiKeyLength[out] 返回的密钥密文长度 - /// \param phKeyHandle[out] 返回密钥句柄 + /// \param[in] uiKeyBits 指定产生的会话密钥长度 + /// \param[in] pucPublicKey 输入的外部RSAg公钥结构 + /// \param[out] pucKey 缓冲区指针,用于存放返回的密钥密文 + /// \param[out] puiKeyLength 返回的密钥密文长度 + /// \param[out] phKeyHandle 返回密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateKeyWithEPK_RSA(unsigned int uiKeyBits, RSArefPublicKey *pucPublicKey, unsigned char *pucKey, unsigned int *puiKeyLength, void **phKeyHandle) const; /// 导入会话密钥并用内部RSA私钥解密,同时返回密钥句柄 - /// \param uiISKIndex[in] 密码设备内部存储加密私钥的索引值,对应于加密时的公钥 - /// \param pucKey[in] 缓冲区指针,用于存放输入的密钥密文 - /// \param uiKeyLength[in] 输入的密钥密文长度 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] uiISKIndex 密码设备内部存储加密私钥的索引值,对应于加密时的公钥 + /// \param[in] pucKey 缓冲区指针,用于存放输入的密钥密文 + /// \param[in] uiKeyLength 输入的密钥密文长度 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_ImportKeyWithISK_RSA(unsigned int uiISKIndex, unsigned char *pucKey, unsigned int uiKeyLength, void **phKeyHandle) const; /// 将由内部加密公钥加密的会话密钥转换为由外部指定的公钥加密,可用于数字信封转换 - /// \param uiKeyIndex[in] 密码设备存储的内部 RSA 密钥对索引值 - /// \param pucPublicKey[in] 外部 RSA 公钥结构 - /// \param pucDEInput[in] 缓冲区指针,用于存放输入的会话密钥密文 - /// \param uiDELength[out] 输入的会话密钥密文长度 - /// \param pucDEOutput[out] 缓冲区指针,用于存放输出的会话密钥密文 - /// \param puiDELength[out] 输出的会话密钥密文长度 + /// \param[in] uiKeyIndex 密码设备存储的内部 RSA 密钥对索引值 + /// \param[in] pucPublicKey 外部 RSA 公钥结构 + /// \param[in] pucDEInput 缓冲区指针,用于存放输入的会话密钥密文 + /// \param[out] uiDELength 输入的会话密钥密文长度 + /// \param[out] pucDEOutput 缓冲区指针,用于存放输出的会话密钥密文 + /// \param[out] puiDELength 输出的会话密钥密文长度 /// \return 成功返回0,失败返回错误代码 int SDF_ExchangeDigitEnvelopeBaseOnRSA(unsigned int uiKeyIndex, RSArefPublicKey *pucPublicKey, unsigned char *pucDEInput, unsigned int uiDELength, unsigned char *pucDEOutput, unsigned int *puiDELength) const; /// 导出密码设备内部存储的指定索引位置的签名公钥 - /// \param uiKeyIndex[in] 密码设备存储的 ECC 密钥对索引值 - /// \param pucPublicKey[out] ECC 公钥结构 + /// \param[in] uiKeyIndex 密码设备存储的 ECC 密钥对索引值 + /// \param[out] pucPublicKey ECC 公钥结构 /// \return 成功返回0,失败返回错误代码 int SDF_ExportSignPublicKey_ECC(unsigned int uiKeyIndex, ECCrefPublicKey *pucPublicKey) const; /// 导出密码设备内部存储的指定索引位置的加密公钥 - /// \param uiKeyIndex[in] 密码设备存储的 ECC 密钥对索引值 - /// \param pucPublicKey[out] ECC 公钥结构 + /// \param[in] uiKeyIndex 密码设备存储的 ECC 密钥对索引值 + /// \param[out] pucPublicKey ECC 公钥结构 /// \return 成功返回0,失败返回错误代码 int SDF_ExportEncPublicKey_ECC(unsigned int uiKeyIndex, ECCrefPublicKey *pucPublicKey) const; /// 请求密码设备产生指定类型和模长的 ECC 密钥对 - /// \param uiAlgID[in] 指定算法标识 - /// \param uiKeyBits[in] 指定密钥长度 - /// \param pucPublicKey[out] ECC 公钥结构 - /// \param pucPrivateKey[out] ECC 私钥结构 + /// \param[in] uiAlgID 指定算法标识 + /// \param[in] uiKeyBits 指定密钥长度 + /// \param[out] pucPublicKey ECC 公钥结构 + /// \param[out] pucPrivateKey ECC 私钥结构 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateKeyPair_ECC(unsigned int uiAlgID, unsigned int uiKeyBits, ECCrefPublicKey *pucPublicKey, ECCrefPrivateKey *pucPrivateKey) const; /// 生成会话密钥并用指定索引的内部 ECC 加密公钥加密输出,同时返回密钥句柄。 - /// \param uiIPKIndex[in] 密码设备内部存储公钥的索引值 - /// \param uiKeyBits[in] 指定产生的会话密钥长度 - /// \param pucKey[out] 缓冲区指针,用于存放返回的密钥密文 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] uiIPKIndex 密码设备内部存储公钥的索引值 + /// \param[in] uiKeyBits 指定产生的会话密钥长度 + /// \param[out] pucKey 缓冲区指针,用于存放返回的密钥密文 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateKeyWithIPK_ECC(unsigned int uiIPKIndex, unsigned int uiKeyBits, ECCCipher *pucKey, void **phKeyHandle) const; /// 生成会话密钥并用外部 ECC 公钥加密输出,同时返回密钥句柄 - /// \param uiKeyBits[in] 指定产生的会话密钥长度 - /// \param uiAlgID[in] 外部 ECC 公钥的算法标识 - /// \param pucPublicKey[in] 输入的外部 ECC 公钥结构 - /// \param pucKey[out] 缓冲区指针,用于存放返回的密钥密文 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] uiKeyBits 指定产生的会话密钥长度 + /// \param[in] uiAlgID 外部 ECC 公钥的算法标识 + /// \param[in] pucPublicKey 输入的外部 ECC 公钥结构 + /// \param[out] pucKey 缓冲区指针,用于存放返回的密钥密文 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateKeyWithEPK_ECC(unsigned int uiKeyBits, unsigned int uiAlgID, ECCrefPublicKey *pucPublicKey, ECCCipher *pucKey, void **phKeyHandle) const; /// 导入会话密钥并用内部 ECC 加密私钥解密,同时返回密钥句柄 - /// \param uiISKIndex[in] 密码设备内部存储加密私钥的索引值,对应于加密时的公钥 - /// \param pucKey[in] 缓冲区指针,用于存放输入的密钥密文 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] uiISKIndex 密码设备内部存储加密私钥的索引值,对应于加密时的公钥 + /// \param[in] pucKey 缓冲区指针,用于存放输入的密钥密文 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_ImportKeyWithISK_ECC(unsigned int uiISKIndex, ECCCipher *pucKey, void **phKeyHandle) const; /// 使用 ECC 密钥协商算法,为计算会话密钥而产生协商参数,同时返回指定索引位置的 ECC /// 公钥、临时 ECC 密钥对的公钥及协商句柄 - /// \param uiISKIndex[in] 密码设备内部存储加密私钥的索引值,该私钥用于参与密钥协商 - /// \param uiKeyBits[in] 要求协商的密钥长度 - /// \param pucSponsorID[in] 参与密钥协商的发起方ID值 - /// \param uiSponsorIDLength[in] 发起方ID长度 - /// \param pucSponsorPublicKey[out] 返回的发起方ECC公钥结构 - /// \param pucSponsorTmpPublicKey[out] 返回的发起方临时 ECC 公钥结构 - /// \param phAgreementHandle[out] 返回的协商句柄,用于计算协商密钥 + /// \param[in] uiISKIndex 密码设备内部存储加密私钥的索引值,该私钥用于参与密钥协商 + /// \param[in] uiKeyBits 要求协商的密钥长度 + /// \param[in] pucSponsorID 参与密钥协商的发起方ID值 + /// \param[in] uiSponsorIDLength 发起方ID长度 + /// \param[out] pucSponsorPublicKey 返回的发起方ECC公钥结构 + /// \param[out] pucSponsorTmpPublicKey 返回的发起方临时 ECC 公钥结构 + /// \param[out] phAgreementHandle 返回的协商句柄,用于计算协商密钥 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateAgreementDataWithECC(unsigned int uiISKIndex, unsigned int uiKeyBits, unsigned char *pucSponsorID, unsigned int uiSponsorIDLength, ECCrefPublicKey *pucSponsorPublicKey, @@ -225,12 +225,12 @@ class HSMC_API Session { /// 使用ECC密钥协商算法,使用自身协商句柄和响应方的协商参数 计算会话密钥,同时返 /// 回会话密钥句柄 - /// \param pucResponseID[in] 外部输入的响应方 ID 值 - /// \param uiResponseIDLength[in] 外部输入的响应方 ID 长度 - /// \param pucResponsePublicKey[in] 外部输入的响应方 ECC 公钥结构 - /// \param pucResponseTmpPublicKey[in] 外部输入的响应方临时 ECC 公钥结构 - /// \param hAgreementHandle[in] 协商句柄,用于计算协商密钥 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] pucResponseID 外部输入的响应方 ID 值 + /// \param[in] uiResponseIDLength 外部输入的响应方 ID 长度 + /// \param[in] pucResponsePublicKey 外部输入的响应方 ECC 公钥结构 + /// \param[in] pucResponseTmpPublicKey 外部输入的响应方临时 ECC 公钥结构 + /// \param[in] hAgreementHandle 协商句柄,用于计算协商密钥 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateKeyWithECC(unsigned char *pucResponseID, unsigned int uiResponseIDLength, ECCrefPublicKey *pucResponsePublicKey, ECCrefPublicKey *pucResponseTmpPublicKey, @@ -238,17 +238,17 @@ class HSMC_API Session { /// 使用 ECC 密钥协商算法,产生协商参数并计算会话密钥,同时返回产生的协商参数和密钥 /// 句柄 - /// \param uiISKIndex[in] 密码设备内部存储加密私钥的索引值,该私钥用于参与密钥协商 - /// \param uiKeyBits[in] 协商后要求输出的密钥长度 - /// \param pucResponseID[in] 响应方 ID 值 - /// \param uiResponseIDLength[in] 响应方ID长度 - /// \param pucSponsorID[in] 发起方ID值 - /// \param uiSponsorIDLength[in] 发起方ID长度 - /// \param pucSponsorPublicKey[in] 外部输入的发起方ECC公钥结构 - /// \param pucSponsorTmpPublicKey[in] 外部输入的发起方临时 ECC 公钥结构 - /// \param pucResponsePublicKey[out] 返回的响应方 ECC 公钥结构 - /// \param pucResponseTmpPublicKey[out] 返回的响应方临时 ECC 公钥结构 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] uiISKIndex 密码设备内部存储加密私钥的索引值,该私钥用于参与密钥协商 + /// \param[in] uiKeyBits 协商后要求输出的密钥长度 + /// \param[in] pucResponseID 响应方 ID 值 + /// \param[in] uiResponseIDLength 响应方ID长度 + /// \param[in] pucSponsorID 发起方ID值 + /// \param[in] uiSponsorIDLength 发起方ID长度 + /// \param[in] pucSponsorPublicKey 外部输入的发起方ECC公钥结构 + /// \param[in] pucSponsorTmpPublicKey 外部输入的发起方临时 ECC 公钥结构 + /// \param[out] pucResponsePublicKey 返回的响应方 ECC 公钥结构 + /// \param[out] pucResponseTmpPublicKey 返回的响应方临时 ECC 公钥结构 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateAgreementDataAndKeyWithECC(unsigned int uiISKIndex, unsigned int uiKeyBits, unsigned char *pucResponseID, unsigned int uiResponseIDLength, @@ -259,32 +259,32 @@ class HSMC_API Session { ECCrefPublicKey *pucResponseTmpPublicKey, void **phKeyHandle) const; /// 将由内部加密公钥加密的会话密钥转换为由外部指定的公钥加密, 可用于数字信封转换 - /// \param uiKeyIndex[in] 密码设备存储的 ECC 密钥对索引值 - /// \param uiAlgID[in] 外部 ECC 公钥的算法标识 - /// \param pucPublicKey[in] 外部 ECC 公钥结构 - /// \param pucEncDataIn[in] 缓冲区指针,用于存放输入的会话密钥密文 - /// \param pucEncDataOut[out] 缓冲区指针,用于存放输出的会话密钥密文 + /// \param[in] uiKeyIndex 密码设备存储的 ECC 密钥对索引值 + /// \param[in] uiAlgID 外部 ECC 公钥的算法标识 + /// \param[in] pucPublicKey 外部 ECC 公钥结构 + /// \param[in] pucEncDataIn 缓冲区指针,用于存放输入的会话密钥密文 + /// \param[out] pucEncDataOut 缓冲区指针,用于存放输出的会话密钥密文 /// \return 成功返回0,失败返回错误代码 int SDF_ExchangeDigitEnvelopeBaseOnECC(unsigned int uiKeyIndex, unsigned int uiAlgID, ECCrefPublicKey *pucPublicKey, ECCCipher *pucEncDataIn, ECCCipher *pucEncDataOut) const; /// 生成会话密钥并用密钥加密密钥加密输出,同时返回密钥句柄 - /// \param uiKeyBits[in] 指定产生的会话密钥长度 - /// \param uiAlgID[in] 算法标识,指定对称加密算法 - /// \param uiKEKIndex[in] 密码设备内部存储密钥加密密钥的索引值 - /// \param pucKey[out] 缓冲区指针,用于存放返回的密钥密文 - /// \param puiKeyLength[out] 返回的密钥密文长度 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] uiKeyBits 指定产生的会话密钥长度 + /// \param[in] uiAlgID 算法标识,指定对称加密算法 + /// \param[in] uiKEKIndex 密码设备内部存储密钥加密密钥的索引值 + /// \param[out] pucKey 缓冲区指针,用于存放返回的密钥密文 + /// \param[out] puiKeyLength 返回的密钥密文长度 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_GenerateKeyWithKEK(unsigned int uiKeyBits, unsigned int uiAlgID, unsigned int uiKEKIndex, unsigned char *pucKey, unsigned int *puiKeyLength, void **phKeyHandle) const; /// 导入会话密钥并用密钥加密密钥解密,同时返回会话密钥句柄 - /// \param uiAlgID[in] 算法标识,指定对称加密算法 - /// \param uiKEKIndex[in] 密码设备内部存储密钥加密密钥的索引值 - /// \param pucKey[in] 缓冲区指针,用于存放输入的密钥密文 - /// \param uiKeyLength[in] 输入密钥密文长度 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] uiAlgID 算法标识,指定对称加密算法 + /// \param[in] uiKEKIndex 密码设备内部存储密钥加密密钥的索引值 + /// \param[in] pucKey 缓冲区指针,用于存放输入的密钥密文 + /// \param[in] uiKeyLength 输入密钥密文长度 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_ImportKeyWithKEK(unsigned int uiAlgID, unsigned int uiKEKIndex, unsigned char *pucKey, unsigned int uiKeyLength, void **phKeyHandle) const; @@ -292,25 +292,25 @@ class HSMC_API Session { /// 导入明文会话密钥,同时返回密钥句柄 /// 部分厂商HSM并不支持该操作,如BJCA /// - /// \param pucKey[in] 缓冲区指针,用于存放输入的密钥明文 - /// \param uiKeyLength[in] 输入的密钥明文长度 - /// \param phKeyHandle[out] 返回的密钥句柄 + /// \param[in] pucKey 缓冲区指针,用于存放输入的密钥明文 + /// \param[in] uiKeyLength 输入的密钥明文长度 + /// \param[out] phKeyHandle 返回的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_ImportKey(unsigned char *pucKey, unsigned int uiKeyLength, void **phKeyHandle) const; /// 销毁会话密钥,并释放为密钥句柄分配的内存等资源。 - /// \param hKeyHandle[in] 输入的密钥句柄 + /// \param[in] hKeyHandle 输入的密钥句柄 /// \return 成功返回0,失败返回错误代码 int SDF_DestroyKey(void *hKeyHandle) const; /// 指定使用外部公钥对数据进行运算 /// 数据格式由应用层封装。 /// - /// \param pucPublicKey[in] 外部RSA公钥结构 - /// \param pucDataInput[in] 缓冲区指针,用于存放输入的数据 - /// \param uiInputLength[in] 输入的数据长度 - /// \param pucDataOutput[out] 缓冲区指针,用于存放输出的数据 - /// \param puiOutputLength[out] 输出的数据长度 + /// \param[in] pucPublicKey 外部RSA公钥结构 + /// \param[in] pucDataInput 缓冲区指针,用于存放输入的数据 + /// \param[in] uiInputLength 输入的数据长度 + /// \param[out] pucDataOutput 缓冲区指针,用于存放输出的数据 + /// \param[out] puiOutputLength 输出的数据长度 /// \return 成功返回0,失败返回错误代码 int SDF_ExternalPublicKeyOperation_RSA(RSArefPublicKey *pucPublicKey, unsigned char *pucDataInput, unsigned int uiInputLength, unsigned char *pucDataOutput, @@ -318,11 +318,11 @@ class HSMC_API Session { /// 使用内部指定索引的公钥对数据进行运算 /// 索引范围仅限于内部签名密钥对,数据格式由应用层封装 - /// \param uiKeyIndex[in] 密码设备内部存储公钥的索引值 - /// \param pucDataInput[in] 缓冲区指针,用于存放外部输入的数据 - /// \param uiInputLength[in] 输入的数据长度 - /// \param pucDataOutput[out] 缓冲区指针,用于存放输出的数据 - /// \param puiOutputLength[out] 输出的数据长度 + /// \param[in] uiKeyIndex 密码设备内部存储公钥的索引值 + /// \param[in] pucDataInput 缓冲区指针,用于存放外部输入的数据 + /// \param[in] uiInputLength 输入的数据长度 + /// \param[out] pucDataOutput 缓冲区指针,用于存放输出的数据 + /// \param[out] puiOutputLength 输出的数据长度 /// \return 成功返回0,失败返回错误代码 int SDF_InternalPublicKeyOperation_RSA(unsigned int uiKeyIndex, unsigned char *pucDataInput, unsigned int uiInputLength, unsigned char *pucDataOutput, @@ -331,11 +331,11 @@ class HSMC_API Session { /// 使用内部指定索引的私钥对数据进行运算 /// 索引范围仅限于内部签名密钥对,数据格式由应用层封装 /// - /// \param uiKeyIndex[in] 密码设备内部存储私钥的索引值 - /// \param pucDataInput[in] 缓冲区指针,用于存放外部输入的数据 - /// \param uiInputLength[in] 输入的数据长度 - /// \param pucDataOutput[out] 缓冲区指针,用于存放输出的数据 - /// \param puiOutputLength[out] 输出的数据长度 + /// \param[in] uiKeyIndex 密码设备内部存储私钥的索引值 + /// \param[in] pucDataInput 缓冲区指针,用于存放外部输入的数据 + /// \param[in] uiInputLength 输入的数据长度 + /// \param[out] pucDataOutput 缓冲区指针,用于存放输出的数据 + /// \param[out] puiOutputLength 输出的数据长度 /// \return 成功返回0,失败返回错误代码 int SDF_InternalPrivateKeyOperation_RSA(unsigned int uiKeyIndex, unsigned char *pucDataInput, unsigned int uiInputLength, unsigned char *pucDataOutput, @@ -344,11 +344,11 @@ class HSMC_API Session { /// 使用外部私钥对数据进行运算 /// 部分厂商HSM不支持该操作 /// - /// \param pucPrivateKey[in] 外部RSA私钥结构 - /// \param pucDataInput[in] 缓冲区指针,用于存放输入的数据 - /// \param uiInputLength[in] 输入的数据长度 - /// \param pucDataOutput[out] 缓冲区指针,用于存放输出的数据 - /// \param puiOutputLength[out] 输出的数据长度 + /// \param[in] pucPrivateKey 外部RSA私钥结构 + /// \param[in] pucDataInput 缓冲区指针,用于存放输入的数据 + /// \param[in] uiInputLength 输入的数据长度 + /// \param[out] pucDataOutput 缓冲区指针,用于存放输出的数据 + /// \param[out] puiOutputLength 输出的数据长度 /// \return 成功返回0,失败返回错误代码 int SDF_ExternalPrivateKeyOperation_RSA(RSArefPrivateKey *pucPrivateKey, unsigned char *pucDataInput, unsigned int uiInputLength, unsigned char *pucDataOutput, @@ -356,99 +356,99 @@ class HSMC_API Session { /// 使用外部ECC私钥对数据进行签名运算 /// 输入数据为待签名数据的杂凑值,当使用SM2算法时,该输入数据为待签名数据经过SM2签名预处理的结果 - /// \param uiAlgID[in] 算法标识,指定使用的ECC算法 - /// \param pucPrivateKey[in] 外部ECC私钥结构 - /// \param pucData[in] 缓冲区指针,用于存放外部输入的数据 - /// \param uiDataLength[in] 输入的数据长度 - /// \param pucSignature[out] 缓冲区指针,用于存放输出的签名值数据 + /// \param[in] uiAlgID 算法标识,指定使用的ECC算法 + /// \param[in] pucPrivateKey 外部ECC私钥结构 + /// \param[in] pucData 缓冲区指针,用于存放外部输入的数据 + /// \param[in] uiDataLength 输入的数据长度 + /// \param[out] pucSignature 缓冲区指针,用于存放输出的签名值数据 /// \return 成功返回0,失败返回错误代码 int SDF_ExternalSign_ECC(unsigned int uiAlgID, ECCrefPrivateKey *pucPrivateKey, unsigned char *pucData, unsigned int uiDataLength, ECCSignature *pucSignature) const; /// 使用外部 ECC 公钥对 ECC 签名值进行验证运算 - /// \param uiAlgID[in] 算法标识,指定使用的ECC算法 - /// \param pucPublicKey[in] 外部ECC公钥结构 - /// \param pucDataInput[in] 缓冲区指针,用于存放外部输入的数据 - /// \param uiInputLength[in] 输入的数据长度 - /// \param pucSignature[in] 缓冲区指针,用于存放输入的签名值数据 + /// \param[in] uiAlgID 算法标识,指定使用的ECC算法 + /// \param[in] pucPublicKey 外部ECC公钥结构 + /// \param[in] pucDataInput 缓冲区指针,用于存放外部输入的数据 + /// \param[in] uiInputLength 输入的数据长度 + /// \param[in] pucSignature 缓冲区指针,用于存放输入的签名值数据 /// \return 成功返回0,失败返回错误代码 int SDF_ExternalVerify_ECC(unsigned int uiAlgID, ECCrefPublicKey *pucPublicKey, unsigned char *pucDataInput, unsigned int uiInputLength, ECCSignature *pucSignature) const; /// 使用内部 ECC 私钥对数据进行签名运算 - /// \param uiISKIndex[in] 密码设备内部存储的ECC签名私钥的索引值 - /// \param pucData[in] 缓冲区指针,用于存放外部输入的数据 - /// \param uiDataLength[in] 输入的数据长度 - /// \param pucSignature[out] 缓冲区指针,用于存放输出的签名值数据 + /// \param[in] uiISKIndex 密码设备内部存储的ECC签名私钥的索引值 + /// \param[in] pucData 缓冲区指针,用于存放外部输入的数据 + /// \param[in] uiDataLength 输入的数据长度 + /// \param[out] pucSignature 缓冲区指针,用于存放输出的签名值数据 /// \return 成功返回0,失败返回错误代码 int SDF_InternalSign_ECC(unsigned int uiISKIndex, unsigned char *pucData, unsigned int uiDataLength, ECCSignature *pucSignature) const; /// 使用内部 ECC 公钥对 ECC 签名值进行验证运算 - /// \param uiIPKIndex[in] 密码设备内部存储的ECC签名公钥的索引值 - /// \param pucData[in] 缓冲区指针,用于存放外部输入的数据 - /// \param uiDataLength[in] 输入的数据长度 - /// \param pucSignature[in] 缓冲区指针,用于存放输入的签名值数据 + /// \param[in] uiIPKIndex 密码设备内部存储的ECC签名公钥的索引值 + /// \param[in] pucData 缓冲区指针,用于存放外部输入的数据 + /// \param[in] uiDataLength 输入的数据长度 + /// \param[in] pucSignature 缓冲区指针,用于存放输入的签名值数据 /// \return 成功返回0,失败返回错误代码 int SDF_InternalVerify_ECC(unsigned int uiIPKIndex, unsigned char *pucData, unsigned int uiDataLength, ECCSignature *pucSignature) const; /// 使用外部 ECC 公钥对数据进行加密运算 - /// \param uiAlgID[in] 算法标识,指定使用的ECC算法 - /// \param pucPublicKey[in] 外部ECC公钥结构 - /// \param pucData[in] 缓冲区指针,用于存放外部输入的数据 - /// \param uiDataLength[in] 输入的数据长度 - /// \param pucEncData[out] 缓冲区指针,用于存放输出的数据密文 + /// \param[in] uiAlgID 算法标识,指定使用的ECC算法 + /// \param[in] pucPublicKey 外部ECC公钥结构 + /// \param[in] pucData 缓冲区指针,用于存放外部输入的数据 + /// \param[in] uiDataLength 输入的数据长度 + /// \param[out] pucEncData 缓冲区指针,用于存放输出的数据密文 /// \return 成功返回0,失败返回错误代码 int SDF_ExternalEncrypt_ECC(unsigned int uiAlgID, ECCrefPublicKey *pucPublicKey, unsigned char *pucData, unsigned int uiDataLength, ECCCipher *pucEncData) const; /// 使用外部ECC 私钥对数据进行解密运算 /// BJCA密码机不支持该操作 - /// \param uiAlgID[in] 算法标识,指定使用的ECC算法 - /// \param pucPrivateKey[in] 外部ECC私钥结构 - /// \param pucEncData[in] 缓冲区指针,用于存放输入的数据密文 - /// \param pucData[out] 缓冲区指针,用于存放输出的数据明文 - /// \param puiDataLength[out] 输出的数据明文长度 + /// \param[in] uiAlgID 算法标识,指定使用的ECC算法 + /// \param[in] pucPrivateKey 外部ECC私钥结构 + /// \param[in] pucEncData 缓冲区指针,用于存放输入的数据密文 + /// \param[out] pucData 缓冲区指针,用于存放输出的数据明文 + /// \param[out] puiDataLength 输出的数据明文长度 /// \return 成功返回0,失败返回错误代码 int SDF_ExternalDecrypt_ECC(unsigned int uiAlgID, ECCrefPrivateKey *pucPrivateKey, ECCCipher *pucEncData, unsigned char *pucData, unsigned int *puiDataLength) const; /// 使用指定的密钥句柄和 IV 对数据进行对称加密运算 /// 此函数不对数据进行填充处理,输入的数据必须是指定算法分组长度的整数倍 - /// \param hKeyHandle[in] 指定的密钥句柄 - /// \param uiAlgID[in] 算法标识,指定对称加密算法 - /// \param pucIV[in|out] 缓冲区指针,用于存放输入和返回的IV数据 - /// \param pucData[in] 缓冲区指针,用于存放输入的数据明文 - /// \param uiDataLength[in] 输入的数据明文长度 - /// \param pucEncData[out] 缓冲区指针,用于存放输出的数据密文 - /// \param puiEncDataLength[out] 输出的数据密文长度 + /// \param[in] hKeyHandle 指定的密钥句柄 + /// \param[in] uiAlgID 算法标识,指定对称加密算法 + /// \param[in,out] pucIV 缓冲区指针,用于存放输入和返回的IV数据 + /// \param[in] pucData 缓冲区指针,用于存放输入的数据明文 + /// \param[in] uiDataLength 输入的数据明文长度 + /// \param[out] pucEncData 缓冲区指针,用于存放输出的数据密文 + /// \param[out] puiEncDataLength 输出的数据密文长度 /// \return 成功返回0,失败返回错误代码 int SDF_Encrypt(void *hKeyHandle, unsigned int uiAlgID, unsigned char *pucIV, unsigned char *pucData, unsigned int uiDataLength, unsigned char *pucEncData, unsigned int *puiEncDataLength) const; /// 使用指定的密钥句柄和 IV 对数据进行对称解密运算 /// 此函数不对数据进行填充处理,输入的数据必须是指定算法分组长度的整数倍 - /// \param hKeyHandle[in] 指定的密钥句柄 - /// \param uiAlgID[in] 算法标识,指定对称加密算法 - /// \param pucIV[in|out] 缓冲区指针,用于存放输入和返回的IV数据 - /// \param pucEncData[in] 缓冲区指针,用于存放输入的数据密文 - /// \param uiEncDataLength[in] 输入的数据密文长度 - /// \param pucData[out] 缓冲区指针,用于存放输出的数据明文 - /// \param puiDataLength[out] 输出的数据明文长度 + /// \param[in] hKeyHandle 指定的密钥句柄 + /// \param[in] uiAlgID 算法标识,指定对称加密算法 + /// \param[in,out] pucIV 缓冲区指针,用于存放输入和返回的IV数据 + /// \param[in] pucEncData 缓冲区指针,用于存放输入的数据密文 + /// \param[in] uiEncDataLength 输入的数据密文长度 + /// \param[out] pucData 缓冲区指针,用于存放输出的数据明文 + /// \param[out] puiDataLength 输出的数据明文长度 /// \return 成功返回0,失败返回错误代码 int SDF_Decrypt(void *hKeyHandle, unsigned int uiAlgID, unsigned char *pucIV, unsigned char *pucEncData, unsigned int uiEncDataLength, unsigned char *pucData, unsigned int *puiDataLength) const; /// 使用指定的密钥句柄和 IV 对数据进行 MAC 运算 /// 此函数不对数据进行分包处理,分包数据 MAC 运算由 IV 控制最后的 MAC 值 - /// \param hKeyHandle[in] 指定的密钥句柄 - /// \param uiAlgID[in] 算法标识,指定MAC加密算法 - /// \param pucIV[in|out] 缓冲区指针,用于存放输入和返回的IV数据 - /// \param pucData[in] 缓冲区指针,用于存放输入的数据明文 - /// \param uiDataLength[in] 输入的数据明文长度 - /// \param pucMAC[out] 缓冲区指针,用于存放输出的MAC值 - /// \param puiMACLength[out] 输出的MAC值长度 + /// \param[in] hKeyHandle 指定的密钥句柄 + /// \param[in] uiAlgID 算法标识,指定MAC加密算法 + /// \param[in,out] pucIV 缓冲区指针,用于存放输入和返回的IV数据 + /// \param[in] pucData 缓冲区指针,用于存放输入的数据明文 + /// \param[in] uiDataLength 输入的数据明文长度 + /// \param[out] pucMAC 缓冲区指针,用于存放输出的MAC值 + /// \param[out] puiMACLength 输出的MAC值长度 /// \return 成功返回0,失败返回错误代码 int SDF_CalculateMAC(void *hKeyHandle, unsigned int uiAlgID, unsigned char *pucIV, unsigned char *pucData, unsigned int uiDataLength, unsigned char *pucMAC, unsigned int *puiMACLength) const; @@ -484,64 +484,64 @@ class HSMC_API Session { unsigned int uiFileSize) const; /// 读取密码设备内部存储用户数据的文件的内容 - /// \param pucFileName[in] 缓冲区指针,用于存放输入的文件名,最大长度128字节 - /// \param uiNameLen[in] 文件名长度 - /// \param uiOffset[in] 指定读取文件时的偏移值 - /// \param puiFileLength[in|out] 入参时指定读取文件内容的长度;出参时返回实际读取文件内容的长度 - /// \param pucBuffer[out] 缓冲区指针,用于存放读取的文件数据 + /// \param[in] pucFileName 缓冲区指针,用于存放输入的文件名,最大长度128字节 + /// \param[in] uiNameLen 文件名长度 + /// \param[in] uiOffset 指定读取文件时的偏移值 + /// \param[in,out] puiFileLength 入参时指定读取文件内容的长度;出参时返回实际读取文件内容的长度 + /// \param[out] pucBuffer 缓冲区指针,用于存放读取的文件数据 /// \return 成功返回0,失败返回错误代码 int SDF_ReadFile(unsigned char *pucFileName, unsigned int uiNameLen, unsigned int uiOffset, unsigned int *puiFileLength, unsigned char *pucBuffer) const; /// 向密码设备内部存储用户数据的文件中写入内容 - /// \param pucFileName[in] 缓冲区指针,用于存放输入的文件名,最大长度128字节 - /// \param uiNameLen[in] 文件名长度 - /// \param uiOffset[in] 指定写入文件时的偏移值 - /// \param uiFileLength[in] 指定写入文件内容的长度 - /// \param pucBuffer[in] 缓冲区指针,用于存放输入的写文件数据 + /// \param[in] pucFileName 缓冲区指针,用于存放输入的文件名,最大长度128字节 + /// \param[in] uiNameLen 文件名长度 + /// \param[in] uiOffset 指定写入文件时的偏移值 + /// \param[in] uiFileLength 指定写入文件内容的长度 + /// \param[in] pucBuffer 缓冲区指针,用于存放输入的写文件数据 /// \return 成功返回0,失败返回错误代码 int SDF_WriteFile(unsigned char *pucFileName, unsigned int uiNameLen, unsigned int uiOffset, unsigned int uiFileLength, unsigned char *pucBuffer) const; /// 删除指定文件名的密码设备内部存储用户数据的文件 - /// \param pucFileName[in] 缓冲区指针,用于存放输入的文件名,最大长度128字节 - /// \param uiNameLen[in] 文件名长度 + /// \param[in] pucFileName 缓冲区指针,用于存放输入的文件名,最大长度128字节 + /// \param[in] uiNameLen 文件名长度 /// \return 成功返回0,失败返回错误代码 int SDF_DeleteFile(unsigned char *pucFileName, unsigned int uiNameLen) const; /// 导出证书 - /// \param certId[in] 证书标识 - /// \param certData[out] 证书数据 - /// \param certDataLen[in|out] 为证书数据分配内存大小以及返回证书数据实际大小 + /// \param[in] certId 证书标识 + /// \param[out] certData 证书数据 + /// \param[in,out] certDataLen 为证书数据分配内存大小以及返回证书数据实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_ExportCert(const char *certId, uint8_t *certData, uint32_t *certDataLen) const; /// 解析证书 - /// \param certType[in] 证书解析项标识 - /// \param certData[in] 待解析证书数据 - /// \param certDataLen[in] 待解析证书数据长度 - /// \param certInfo[out] 解析出来的证书项值 - /// \param certInfoLen[in|out] 为证书项分配的内存大小以及返回证书项实际大小 + /// \param[in] certType 证书解析项标识 + /// \param[in] certData 待解析证书数据 + /// \param[in] certDataLen 待解析证书数据长度 + /// \param[out] certInfo 解析出来的证书项值 + /// \param[in,out] certInfoLen 为证书项分配的内存大小以及返回证书项实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_ParseCert(int certType, const uint8_t *certData, uint32_t certDataLen, uint8_t *certInfo, uint32_t *certInfoLen) const; /// 验证证书有效性 - /// \param certData[in] 待验证证书有效性的数字证书 - /// \param certDataLen[in] 待验证证书数据长度 - /// \param ocsp[in] 是否获取证书ocsp状态,默认值为FALSE - /// \param state[out] 返回证书OCSP状态标识 + /// \param[in] certData 待验证证书有效性的数字证书 + /// \param[in] certDataLen 待验证证书数据长度 + /// \param[in] ocsp 是否获取证书ocsp状态,默认值为FALSE + /// \param[out] state 返回证书OCSP状态标识 /// \return 成功返回0,失败返回错误代码 int SVS_ValidateCert(const uint8_t *certData, uint32_t certDataLen, bool ocsp, int *state) const; /// 单包数字签名 - /// \param method[in] 签名算法类型 - /// \param signKeyId[in] 签名者私钥标识 - /// \param password[in] 签名者私钥权限标识码 - /// \param data[in] 待签名数据原文 - /// \param dataLen[in] 原文长度 - /// \param signData[out] 签名值 - /// \param signDataLen[in|out] 为签名值分配的内存大小以及返回签名值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] signPrivateKeyIndex 签名者私钥索引 + /// \param[in] password 签名者私钥权限标识码 + /// \param[in] data 待签名数据原文 + /// \param[in] dataLen 原文长度 + /// \param[out] signData 签名值 + /// \param[in,out] signDataLen 为签名值分配的内存大小以及返回签名值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_SignData(int method, uint32_t signPrivateKeyIndex, const char *password, const uint8_t *data, uint32_t dataLen, uint8_t *signData, uint32_t *signDataLen) const; @@ -560,230 +560,230 @@ class HSMC_API Session { uint32_t dataLen, const uint8_t *signData, uint32_t signDataLen, int verifyLevel) const; /// 多包数据签名初始化 - /// \param method[in] 签名算法类型 - /// \param data[in] 待签名数据原文 - /// \param dataLen[in] 原文长度 - /// \param hashData[out] 杂凑中间值 - /// \param hashDataLen[in|out] 为杂凑中间值分配的内存大小以及返回杂凑中间值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] data 待签名数据原文 + /// \param[in] dataLen 原文长度 + /// \param[out] hashData 杂凑中间值 + /// \param[in,out] hashDataLen 为杂凑中间值分配的内存大小以及返回杂凑中间值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_SignDataInit(int method, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包数据签名更新 - /// \param method[in] 签名算法类型 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param data[in] 待签名数据原文 - /// \param dataLen[in] 原文长度 - /// \param hashData[out] 输出杂凑值中间值 - /// \param hashDataLen[in|out] 为杂凑值中间值分配的内存大小以及返回杂凑值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[in] data 待签名数据原文 + /// \param[in] dataLen 原文长度 + /// \param[out] hashData 输出杂凑值中间值 + /// \param[in,out] hashDataLen 为杂凑值中间值分配的内存大小以及返回杂凑值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_SignDataUpdate(int method, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包数据签名结束 - /// \param method[in] 签名算法类型 - /// \param signPrivateKeyIndex[in] 签名者私钥索引值 - /// \param password[in] 签名者私钥权限标识码 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param signData[out] 签名值 - /// \param signDataLen[in|out] 为签名值分配的内存大小以及返回签名值的实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] signPrivateKeyIndex 签名者私钥索引值 + /// \param[in] password 签名者私钥权限标识码 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[out] signData 签名值 + /// \param[in,out] signDataLen 为签名值分配的内存大小以及返回签名值的实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_SignDataFinal(int method, uint32_t signPrivateKeyIndex, const char *password, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, uint8_t *signData, uint32_t *signDataLen) const; /// 多包数据签名验签初始化 - /// \param method[in] 签名算法类型 - /// \param data[in] 待验签数据原文 - /// \param dataLen[in] 待验签数据原文长度 - /// \param hashData[out] 输出杂凑中间值 - /// \param hashDataLen[in|out] 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] data 待验签数据原文 + /// \param[in] dataLen 待验签数据原文长度 + /// \param[out] hashData 输出杂凑中间值 + /// \param[in,out] hashDataLen 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_VerifySignedDataInit(int method, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包数据签名验签更新 - /// \param method[in] 签名算法类型 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param data[in] 待验签数据原文 - /// \param dataLen[in] 原文长度 - /// \param hashData[out] 输出杂凑中间值 - /// \param hashDataLen[in|out] 为杂凑中间值分配的内存大小以及返回杂凑中间值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[in] data 待验签数据原文 + /// \param[in] dataLen 原文长度 + /// \param[out] hashData 输出杂凑中间值 + /// \param[in,out] hashDataLen 为杂凑中间值分配的内存大小以及返回杂凑中间值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_VerifySignedDataUpdate(int method, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包数据签名验签结束 - /// \param method[in] 签名算法类型 - /// \param type[in] 签名验证方式,1:使用证书,2:使用证书序列号 - /// \param certData[in] 证书数据/证书序列号 - /// \param certDataLen[in] 证书数据长度/证书序列号长度 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param signData[in] 签名值 - /// \param signDataLen[in] 签名值长度 - /// \param verifyLevel[in] 证书验证级别,0:验证有效期,1:验证有效期和证书链;2:验证有效期,证书链以及CRL + /// \param[in] method 签名算法类型 + /// \param[in] type 签名验证方式,1:使用证书,2:使用证书序列号 + /// \param[in] certData 证书数据/证书序列号 + /// \param[in] certDataLen 证书数据长度/证书序列号长度 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[in] signData 签名值 + /// \param[in] signDataLen 签名值长度 + /// \param[in] verifyLevel 证书验证级别,0:验证有效期,1:验证有效期和证书链;2:验证有效期,证书链以及CRL /// \return 成功返回0,失败返回错误代码 int SVS_VerifySignedDataFinal(int method, int type, const uint8_t *certData, uint32_t certDataLen, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, const uint8_t *signData, uint32_t signDataLen, int verifyLevel) const; /// 单包消息签名 - /// \param method[in] 签名算法类型 - /// \param signPrivateKeyIndex[in] 签名者私钥索引值 - /// \param password[in] 签名者私钥权限标识码 - /// \param data[in] 待签名原文 - /// \param dataLen[in] 待签名原文长度 - /// \param signData[out] 签名值 - /// \param signDataLen[in|out] 为签名值分配的内存大小以及返回签名值实际大小 - /// \param isHashFlag[in] 待签名原文是否已哈希 - /// \param isOriginalText[in] 是否附加原文选项 - /// \param isCertificateChain[in] 是否附加证书链选项 - /// \param isCrl[in] 是否附加黑名单选项 - /// \param isAuthenticationAttributes[in] 是否附加鉴别属性选项 + /// \param[in] method 签名算法类型 + /// \param[in] signPrivateKeyIndex 签名者私钥索引值 + /// \param[in] password 签名者私钥权限标识码 + /// \param[in] data 待签名原文 + /// \param[in] dataLen 待签名原文长度 + /// \param[out] signData 签名值 + /// \param[in,out] signDataLen 为签名值分配的内存大小以及返回签名值实际大小 + /// \param[in] isHashFlag 待签名原文是否已哈希 + /// \param[in] isOriginalText 是否附加原文选项 + /// \param[in] isCertificateChain 是否附加证书链选项 + /// \param[in] isCrl 是否附加黑名单选项 + /// \param[in] isAuthenticationAttributes 是否附加鉴别属性选项 /// \return 成功返回0,失败返回错误代码 int SVS_SignMessage(int method, uint32_t signPrivateKeyIndex, const char *password, const uint8_t *data, uint32_t dataLen, uint8_t *signData, uint32_t *signDataLen, bool isHashFlag, bool isOriginalText, bool isCertificateChain, bool isCrl, bool isAuthenticationAttributes) const; /// 单包验证消息签名 - /// \param data[in] 待验签原文 - /// \param dataLen[in] 待验签原文长度 - /// \param signData[in] 签名值 - /// \param signDataLen[in] 签名值长度 - /// \param isHashFlag[in] 待验签原文是否已哈希 - /// \param isOriginalText[in] 是否附加原文选项 - /// \param isCertificateChain[in] 是否附加证书链选项 - /// \param isCrl[in] 是否附加黑名单选项 - /// \param isAuthenticationAttributes[in] 是否附加鉴别属性选项 + /// \param[in] data 待验签原文 + /// \param[in] dataLen 待验签原文长度 + /// \param[in] signData 签名值 + /// \param[in] signDataLen 签名值长度 + /// \param[in] isHashFlag 待验签原文是否已哈希 + /// \param[in] isOriginalText 是否附加原文选项 + /// \param[in] isCertificateChain 是否附加证书链选项 + /// \param[in] isCrl 是否附加黑名单选项 + /// \param[in] isAuthenticationAttributes 是否附加鉴别属性选项 /// \return 成功返回0,失败返回错误代码 int SVS_VerifySignedMessage(const uint8_t *data, uint32_t dataLen, const uint8_t *signData, uint32_t signDataLen, bool isHashFlag, bool isOriginalText, bool isCertificateChain, bool isCrl, - bool sAuthenticationAttributes) const; + bool isAuthenticationAttributes) const; /// 多包消息签名初始化 - /// \param method[in] 签名算法类型 - /// \param data[in] 待签名原文 - /// \param dataLen[in] 原文长度 - /// \param hashData[out] 杂凑中间值 - /// \param hashDataLen[in|out] 为杂凑中间值分配的内存大小以及返回杂凑中间值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] data 待签名原文 + /// \param[in] dataLen 原文长度 + /// \param[out] hashData 杂凑中间值 + /// \param[in,out] hashDataLen 为杂凑中间值分配的内存大小以及返回杂凑中间值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_SignMessageInit(int method, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包消息签名更新 - /// \param method[in] 签名算法类型 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param data[in] 待签名原文 - /// \param dataLen[in] 原文长度 - /// \param hashData[out] 输出杂凑中间值 - /// \param hashDataLen[in|out] 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[in] data 待签名原文 + /// \param[in] dataLen 原文长度 + /// \param[out] hashData 输出杂凑中间值 + /// \param[in,out] hashDataLen 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_SignMessageUpdate(int method, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包消息签名结束 - /// \param method[in] 签名算法类型 - /// \param signPrivateKeyIndex[in] 签名者私钥索引值 - /// \param password[in] 签名者私钥权限标识码 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param signData[out] 签名值 - /// \param signDataLen[in|out] 为签名值分配的内存大小以及返回签名值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] signPrivateKeyIndex 签名者私钥索引值 + /// \param[in] password 签名者私钥权限标识码 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[out] signData 签名值 + /// \param[in,out] signDataLen 为签名值分配的内存大小以及返回签名值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_SignMessageFinal(int method, uint32_t signPrivateKeyIndex, const char *password, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, uint8_t *signData, uint32_t *signDataLen) const; /// 多包消息签名验签初始化 - /// \param method[in] 签名算法标识 - /// \param data[in] 待验签原文 - /// \param dataLen[in] 原文长度 - /// \param hashData[out] 杂凑中间值 - /// \param hashDataLen[in|out] 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 + /// \param[in] method 签名算法标识 + /// \param[in] data 待验签原文 + /// \param[in] dataLen 原文长度 + /// \param[out] hashData 杂凑中间值 + /// \param[in,out] hashDataLen 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_VerifySignedMessageInit(int method, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包消息签名验签更新 - /// \param method[in] 签名算法类型 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param data[in] 待验签原文 - /// \param dataLen[in] 原文长度 - /// \param hashData[out] 杂凑中间值 - /// \param hashDataLen[in|out] 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 + /// \param[in] method 签名算法类型 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[in] data 待验签原文 + /// \param[in] dataLen 原文长度 + /// \param[out] hashData 杂凑中间值 + /// \param[in,out] hashDataLen 为杂凑中间值分配内存大小以及返回杂凑中间值实际大小 /// \return 成功返回0,失败返回错误代码 int SVS_VerifySignedMessageUpdate(int method, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, uint32_t *hashDataLen) const; /// 多包消息签名验签结束 - /// \param method[in] 签名算法类型 - /// \param hashMediantData[in] 杂凑中间值 - /// \param hashMediantDataLen[in] 杂凑中间值长度 - /// \param signData[in] 签名值 - /// \param signDataLen[in] 签名值长度 + /// \param[in] method 签名算法类型 + /// \param[in] hashMediantData 杂凑中间值 + /// \param[in] hashMediantDataLen 杂凑中间值长度 + /// \param[in] signData 签名值 + /// \param[in] signDataLen 签名值长度 /// \return 成功返回0,失败返回错误代码 int SVS_VerifySignedMessageFinal(int method, const uint8_t *hashMediantData, uint32_t hashMediantDataLen, const uint8_t *signData, uint32_t signDataLen) const; /// 生成时间戳请求 - /// \param pucInData[in] 需要加盖时间戳的用户信息 - /// \param uiInDataLength[in] 用户信息的长度 - /// \param uiReqType[in] 请求的时间戳服务类型,0:时间戳响应应该包含时间戳服务器的证书,1:不包含 - /// \param pucTSExt[in] 时间戳请求包的其他扩展,DER编码格式 - /// \param uiTSExtLength[in] 时间戳请求包扩展的长度 - /// \param uiHashAlgID[in] 密码杂凑算法标识 - /// \param pucTSRequest[out] 时间戳请求 - /// \param puiTSRequestLength[in|out] 为时间戳请求分配的内存大小以及返回时间戳请求实际大小 + /// \param[in] pucInData 需要加盖时间戳的用户信息 + /// \param[in] uiInDataLength 用户信息的长度 + /// \param[in] uiReqType 请求的时间戳服务类型,0:时间戳响应应该包含时间戳服务器的证书,1:不包含 + /// \param[in] pucTSExt 时间戳请求包的其他扩展,DER编码格式 + /// \param[in] uiTSExtLength 时间戳请求包扩展的长度 + /// \param[in] uiHashAlgID 密码杂凑算法标识 + /// \param[out] pucTSRequest 时间戳请求 + /// \param[in,out] puiTSRequestLength 为时间戳请求分配的内存大小以及返回时间戳请求实际大小 /// \return 成功返回0,失败返回错误代码 SGD_UINT32 STF_CreateTSRequest(SGD_UINT8 *pucInData, SGD_UINT32 uiInDataLength, SGD_UINT32 uiReqType, SGD_UINT8 *pucTSExt, SGD_UINT32 uiTSExtLength, SGD_UINT32 uiHashAlgID, SGD_UINT8 *pucTSRequest, SGD_UINT32 *puiTSRequestLength) const; /// 根据时间戳请求包获取时间戳响应包 - /// \param pucTSRequest[in] 时间戳请求 - /// \param uiTSRequestLength[in] 时间戳请求的长度 - /// \param uiSignatureAlgID[in] 签名算法标识 - /// \param pucTSResponse[out] 时间戳响应 - /// \param puiTSResponseLength[in|out] 为时间戳响应分配的内存大小以及返回时间戳响应实际大小 + /// \param[in] pucTSRequest 时间戳请求 + /// \param[in] uiTSRequestLength 时间戳请求的长度 + /// \param[in] uiSignatureAlgID 签名算法标识 + /// \param[out] pucTSResponse 时间戳响应 + /// \param[in,out] puiTSResponseLength 为时间戳响应分配的内存大小以及返回时间戳响应实际大小 /// \return 成功返回0,失败返回错误代码 SGD_UINT32 STF_CreateTSResponse(SGD_UINT8 *pucTSRequest, SGD_UINT32 uiTSRequestLength, SGD_UINT32 uiSignatureAlgID, SGD_UINT8 *pucTSResponse, SGD_UINT32 *puiTSResponseLength) const; /// 验证时间戳响应是否有效 /// 对于时间戳响应中包含证书时,优先使用指定证书pucTSCert进行验证 - /// \param pucTSResponse[in] 获取的时间戳响应 - /// \param uiTSResponseLength[in] 时间戳响应的长度 - /// \param uiHashAlgID[in] 密码杂凑算法标识 - /// \param uiSignatureAlgID[in] 签名算法标识 - /// \param pucTSCert[in] TSA的证书,DER编码格式 - /// \param uiTSCertLength[in] TSA证书的长度 + /// \param[in] pucTSResponse 获取的时间戳响应 + /// \param[in] uiTSResponseLength 时间戳响应的长度 + /// \param[in] uiHashAlgID 密码杂凑算法标识 + /// \param[in] uiSignatureAlgID 签名算法标识 + /// \param[in] pucTSCert TSA的证书,DER编码格式 + /// \param[in] uiTSCertLength TSA证书的长度 /// \return 成功返回0,失败返回错误代码 SGD_UINT32 STF_VerifyTSValidity(SGD_UINT8 *pucTSResponse, SGD_UINT32 uiTSResponseLength, SGD_UINT32 uiHashAlgID, SGD_UINT32 uiSignatureAlgID, SGD_UINT8 *pucTSCert, SGD_UINT32 uiTSCertLength) const; /// 获取时间戳主要信息 - /// \param pucTSResponse[in] 获取的时间戳响应 - /// \param uiTSResponseLength[in] 时间戳响应的长度 - /// \param pucIssuerName[out] TSA的通用名 - /// \param puiIssuerNameLength[in|out] 为TSA通用名分配内存大小以及返回实际大小 - /// \param pucTime[out] 时间戳标注的时间值 - /// \param puiTimeLength[in|out] 为时间戳标注的时间值分配内存以及返回实际大小 + /// \param[in] pucTSResponse 获取的时间戳响应 + /// \param[in] uiTSResponseLength 时间戳响应的长度 + /// \param[out] pucIssuerName TSA的通用名 + /// \param[in,out] puiIssuerNameLength 为TSA通用名分配内存大小以及返回实际大小 + /// \param[out] pucTime 时间戳标注的时间值 + /// \param[in,out] puiTimeLength 为时间戳标注的时间值分配内存以及返回实际大小 /// \return 成功返回0,失败返回错误代码 SGD_UINT32 STF_GetTSInfo(SGD_UINT8 *pucTSResponse, SGD_UINT32 uiTSResponseLength, SGD_UINT8 *pucIssuerName, SGD_UINT32 *puiIssuerNameLength, SGD_UINT8 *pucTime, SGD_UINT32 *puiTimeLength) const; /// 解析时间戳详情信息 - /// \param pucTSResponse[in] 获取的时间戳响应 - /// \param uiTSResponseLength[in] 时间戳响应的长度 - /// \param uiItemNumber[in] 指定获取时间戳详细信息的项目编号 - /// \param pucItemValue[out] 解析得到的时间戳相关信息 - /// \param puiItemValueLength[in|out] 为时间戳相关信息分配的内存大小以及返回实际大小 + /// \param[in] pucTSResponse 获取的时间戳响应 + /// \param[in] uiTSResponseLength 时间戳响应的长度 + /// \param[in] uiItemNumber 指定获取时间戳详细信息的项目编号 + /// \param[out] pucItemValue 解析得到的时间戳相关信息 + /// \param[in,out] puiItemValueLength 为时间戳相关信息分配的内存大小以及返回实际大小 /// \return 成功返回0,失败返回错误代码 SGD_UINT32 STF_GetTSDetail(SGD_UINT8 *pucTSResponse, SGD_UINT32 uiTSResponseLength, SGD_UINT32 uiItemNumber, SGD_UINT8 *pucItemValue, SGD_UINT32 *puiItemValueLength) const; diff --git a/include/hsmc/session_factory.h b/include/hsmc/session_factory.h index 6620c5a..976842b 100644 --- a/include/hsmc/session_factory.h +++ b/include/hsmc/session_factory.h @@ -102,7 +102,7 @@ class HSMC_API SessionFactory final { /// 创建设备连接器 /// \param name 设备节点名称 /// \param ct 设备类型,默认为CT_HSM服务器密码机 - /// \param 设备连接器对象 + /// \return 设备连接器对象 Connector::Ptr createConnector(const std::string &name, ConnectorType ct = ConnectorType::CT_HSM); /// 设备连接器容器类型 diff --git a/src/session.cc b/src/session.cc index e1a8ec7..067f4f5 100644 --- a/src/session.cc +++ b/src/session.cc @@ -366,9 +366,9 @@ int Session::SVS_SignMessage(int method, uint32_t signPrivateKeyIndex, const cha int Session::SVS_VerifySignedMessage(const uint8_t *data, uint32_t dataLen, const uint8_t *signData, uint32_t signDataLen, bool isHashFlag, bool isOriginalText, - bool isCertificateChain, bool isCrl, bool sAuthenticationAttributes) const { + bool isCertificateChain, bool isCrl, bool isAuthenticationAttributes) const { return pImpl_->SVS_VerifySignedMessage(data, dataLen, signData, signDataLen, isHashFlag, isOriginalText, - isCertificateChain, isCrl, sAuthenticationAttributes); + isCertificateChain, isCrl, isAuthenticationAttributes); } int Session::SVS_SignMessageInit(int method, const uint8_t *data, uint32_t dataLen, uint8_t *hashData, @@ -439,4 +439,4 @@ SGD_UINT32 Session::STF_GetTSDetail(SGD_UINT8 *pucTSResponse, SGD_UINT32 uiTSRes SGD_UINT8 *pucItemValue, SGD_UINT32 *puiItemValueLength) const { return pImpl_->STF_GetTSDetail(pucTSResponse, uiTSResponseLength, uiItemNumber, pucItemValue, puiItemValueLength); } -} // namespace hsmc \ No newline at end of file +} // namespace hsmc diff --git a/src/vendors/ndsec/session_impl.cc b/src/vendors/ndsec/session_impl.cc index ab32786..d27e0bd 100644 --- a/src/vendors/ndsec/session_impl.cc +++ b/src/vendors/ndsec/session_impl.cc @@ -22,8 +22,8 @@ namespace hsmc { namespace ndsec { -SessionImpl::SessionImpl(::hsmc::Connector::Ptr connector) - : ::hsmc::SessionImpl(connector), hSession_(nullptr) { +SessionImpl::SessionImpl(hsmc::Connector::Ptr connector) + : hsmc::SessionImpl(std::move(connector)), hSession_(nullptr) { } SessionImpl::~SessionImpl() = default;