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;