From 5eb28ca90cefe6a6b36fa3c853f189b1a5cef718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Tue, 3 Aug 2021 09:25:37 +0000 Subject: [PATCH 1/9] update README.md. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 25a33aa..9b82a8c 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,8 @@ 1. xxxx 2. xxxx 3. xxxx +#### 技术储备 +go语言相关知识 #### 参与贡献 -- Gitee From 1c41072777accd8c29db67a816edb5c477150fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:03:12 +0000 Subject: [PATCH 2/9] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20tpm2-=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E7=90=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 82ce149a3d74de1c7446737f7ec984803068776a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:04:52 +0000 Subject: [PATCH 3/9] =?UTF-8?q?add=20doc/tpm2-=E4=BA=A4=E4=BA=92=E7=90=86?= =?UTF-8?q?=E8=A7=A3/C:\Users\15938\Desktop\=E4=BB=BB=E5=8A=A1.=20?= =?UTF-8?q?=E9=92=88=E5=AF=B9=E6=B3=A8=E5=86=8C=E6=9C=9F=E9=97=B4=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E7=9A=84=E4=B8=AD=E6=96=87=E5=8C=96=E7=90=86=E8=A7=A3?= =?UTF-8?q?=E7=A4=BA=E6=84=8F=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" new file mode 100644 index 0000000..e69de29 -- Gitee From 0620679951fded325ea1269f2bc6929d905560f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:05:53 +0000 Subject: [PATCH 4/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20doc/?= =?UTF-8?q?tpm2-=E4=BA=A4=E4=BA=92=E7=90=86=E8=A7=A3/C:\Users\15938\Deskto?= =?UTF-8?q?p\=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/C:\\Users\\15938\\Desktop\\\344\273\273\345\212\241" deleted file mode 100644 index e69de29..0000000 -- Gitee From 07a9277bfbfd31d9e536e24986173b469313a64a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:06:56 +0000 Subject: [PATCH 5/9] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E7=9A=84=E4=BA=A4=E4=BA=92=E4=B8=AD=E6=96=87=E5=8C=96=E7=90=86?= =?UTF-8?q?=E8=A7=A3=20=E4=B8=BB=E8=A6=81=E5=AF=B9tpm2=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=B8=AD=E6=B3=A8=E5=86=8C=E8=BF=87=E7=A8=8B=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=BA=86=E6=B1=89=E5=8C=96=EF=BC=8C=E5=B9=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=BA=9B=E4=B8=AA=E4=BA=BA=E7=90=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...244\344\272\222\350\277\207\347\250\213.png" | Bin 0 -> 62633 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\346\263\250\345\206\214\346\234\237\351\227\264\347\232\204\344\272\244\344\272\222\350\277\207\347\250\213.png" diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\346\263\250\345\206\214\346\234\237\351\227\264\347\232\204\344\272\244\344\272\222\350\277\207\347\250\213.png" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\346\263\250\345\206\214\346\234\237\351\227\264\347\232\204\344\272\244\344\272\222\350\277\207\347\250\213.png" new file mode 100644 index 0000000000000000000000000000000000000000..120a944c880408222049e47a3fdc2e4f8442b861 GIT binary patch literal 62633 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 literal 0 HcmV?d00001 -- Gitee From a409e1da73a3bf640ec726bf880e1d7f14f8cbbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:12:29 +0000 Subject: [PATCH 6/9] =?UTF-8?q?PKI=E4=BB=A5=E5=8F=8APrivacy-CA=E7=9A=84?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9F=A5=E8=AF=86=E6=95=B4=E7=90=86=20?= =?UTF-8?q?=E5=AF=B9=E7=9B=B8=E5=85=B3=E7=9F=A5=E8=AF=86=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=BA=86=E6=95=B4=E7=90=86=E5=92=8C=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...72\347\241\200\347\237\245\350\257\206.md" | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/PKI\357\274\210\345\205\254\351\222\245\345\237\272\347\241\200\350\256\276\346\226\275\357\274\211\344\273\245\345\217\212Privacy-CA\347\233\270\345\205\263\345\237\272\347\241\200\347\237\245\350\257\206.md" diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/PKI\357\274\210\345\205\254\351\222\245\345\237\272\347\241\200\350\256\276\346\226\275\357\274\211\344\273\245\345\217\212Privacy-CA\347\233\270\345\205\263\345\237\272\347\241\200\347\237\245\350\257\206.md" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/PKI\357\274\210\345\205\254\351\222\245\345\237\272\347\241\200\350\256\276\346\226\275\357\274\211\344\273\245\345\217\212Privacy-CA\347\233\270\345\205\263\345\237\272\347\241\200\347\237\245\350\257\206.md" new file mode 100644 index 0000000..03bb3fe --- /dev/null +++ "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/PKI\357\274\210\345\205\254\351\222\245\345\237\272\347\241\200\350\256\276\346\226\275\357\274\211\344\273\245\345\217\212Privacy-CA\347\233\270\345\205\263\345\237\272\347\241\200\347\237\245\350\257\206.md" @@ -0,0 +1,114 @@ +#### PKI:Public Key Infrastructure,公钥基础设施。 +是通过使用公钥技术和数字证书来提供系统信息安全服务,并负责验证数字证书持有者身份的一种体系。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术 +PIK保证了通信数据的私密性、完整性、不可否认性和源认证性 。 +#### CA:Certificate Of Authority,认证中心。 +#### 数字证书:提供了一种发布公钥的简便途径; +是一个经证书授权中心CA数字签名的文件,包含拥有者的公钥及相关身份信息。 +==数字证书仅仅是解决了“这个公钥的持有者到底是谁”的问题==一个数字证书包括:拥有者身份信息、公钥、CA数字签名、有效期等其他信息。 +数字签名:用来确认信息发送者的身份,保证信息的完整性和抗否认性 +最简单的证书包含一个公钥、名称以及证书授权中心的数字签名。 +#### 证书类型: +##### 自签名证书:自签名证书又称为根证书,是自己颁发给自己的证书,即证书中的颁发者和主体名相同。 +##### CA证书:CA自身的证书。如果PKI系统中没有多层级CA,CA证书就是自签名证书;如果有多层级CA,则会形成一个CA层次结构,最上层的CA是根CA,它拥有一个CA“自签名”的证书。 +##### 本地证书:CA颁发给申请者的证书。 +##### 设备本地证书:设备根据CA证书给自己颁发的证书,证书中的颁发者名称是CA服务器的名称 +#### 证书格式: +##### PKCS#12:以二进制格式保存证书,可以包含私钥,也可以不包含私钥。常用的后缀有:.P12和.PFX。 +##### DER:以二进制格式保存证书,不包含私钥。常用的后缀有:.DER、.CER和.CRT。 +##### PEM:以ASCII码格式保存证书,可以包含私钥,也可以不包含私钥。常用的后缀有:.PEM、.CER和.CRT。 +### PKI的核心部分CA +#### CA介绍 +证书认证机构CA(Certificate Authority),CA是PKI的信任基础,是一个用于颁发并管理数字证书的可信实体,它是一种权威性、可信性和公正性的第三方机构,通常由服务器充当,例如windows server 2008 +CA通常采用多层次的分级结构,根据证书颁发机构的层次,可以划分为==根CA==和==从属CA== +CA的核心功能就是==发放和管理数字==,包括:证书的颁发、证书的更新、证书的撤销、证书的查询、证书的归档、证书废除列表CRL(Certificate Revocation List)的发布等。 +#####有关CA的特性: + 1.仅仅==只有一个受信任==的介绍者(证书颁发机构) + 2.CA签署==每一个人==的公钥 + 3.每个人都有==CA的公钥== +#### CA证书的颁发流程 +1.每个实体都要==获取CA的公钥==(认证CA的过程) +2.每个实体都要提交自己的公钥给CA(==注册到PKI==) +3.这个初始步骤,必须手动认证或者通过一个可信任的传输网络来执行。 +4.CA使用自己的私钥为提交的公钥做数字签名。 +5.被数字签了名的公钥(身份证书)再返回给实体。 +6.实体现在就可以通过非信任的网络来彼此交换被CA签了名的公钥了。 +7.收到的公钥都是被CA的公钥所确认的,CA的公钥在每个实体本地必须是有效的 +#### PKI的组成 +==一个PKI体系由终端实体、证书认证机构、证书注册机构和证书/CRL存储库四部分共同组成。== +#### ==PKI框架的三个重要角色== +1.终端实体(EE,End Entity):证书的最终使用者,如总部和分支的网关 +2.证书颁发机构(CA,certificate Authority):是一个权威的、可信的第三方机构,负责证书颁发、查询以及更新等工作 +3.证书注册机构(RA) +#### 证书申请过程: +==前提条件:正确部署CA服务器== +1.**同步时间**:时间是PKI系统的重中之重,必须先确保参加PKI系统的设备和主机的时间同步,才能开始PKI的部署 +当设备的时间慢与证书有效期的开始时间或者设备时间大于证书有效期的结束时间那么证书都是无效的 +==忌讳:设备时间比证书服务器的时间慢== +2.**部署证书服务器**:证书服务器是整个PKI系统的核心 +3.**客户端产生密钥对**:每个实体在申请证书之前,需要预先产生RSA的秘钥对 +4.**验证证书服务器的合法性** +5.**申请个人证书** 每个实体发送自己的个人信息和公钥到证书服务器 +6.**CA审核并签名证书** +7.**CA颁发数字证书给设备**证书服务器把签名的证书颁发给实体 +8.**设备相互交换证书** +### 对称秘钥加密:一个密钥 +#### 对称密钥加密,也叫做共享加密或机密密钥加密,使用发件人和发件人共同拥有的单个密钥 +==衡量对称算法优劣的主要尺度是其密钥的长度== +#### 将公钥加密用于数字签名 +数字签名是邮件、文件或其他数字编码信息的发件人将他们的身份与信息绑定在一起(即为信息提供签名)的方法 +##### 常用的公钥算法 +RSA-适用于数字签名和密钥交换 +DSA-仅适用于数字签名 +Diffie-Hellman-仅适用于密钥交换 +#### 单向散列算法 +散列也称散列值或消息摘要,是一种与基于密钥(对称&公钥)的加密不同的数据转换类型。散列就是通过把一个叫做散列算的单向数学函数应用于数据, +==将任意长度的一块数据转换为一个定长的、不可逆转的数字== +两种最常用的散列函数: + MD5:可产生128位的散列值的散列算法,但算法的基本原理已经泄露 + SHA-1:可产生一个160位的散列值,是流行的用于创建数字签名的单向散列算法 +### PKI:公钥基本结构 +用于管制或操纵证书与公钥及私钥的策略标准和软件 +#### 实际上,PKI是指由数字证书、证书颁发机构CA以及对电子交易所涉及的各方的合法性进行检查和验证的其他注册机构组层的一套系统 +#### 证书 +#### 公钥证书 +通常简称为证书,用于在Internet、Extranet和Intranet上进行身份验证并确保数据交换的安全,颁发证书的实体是证书的主体 +公钥证书是以数字方式签名的声明,它将公钥的值与持有相应私钥的主体(个人、设备和服务)的身份绑定在一起 +#### 证书颁发机构 +证书颁发机构(CA)是一个向个人、计算机或任何其他申请实体颁发证书的可信实体。 +证书颁发机构的类型: +自签名CA:在自签名CA中,证书中的公钥和用于验证证书的密钥是相同的 +从属CA:在从属CA中,证书中的公钥和用于核实证书的密钥是不同的 +根CA:根CA是一种特殊的CA,它受到客户无条件地信任,位于证书层次结构的最高层。 + +### ==Privacy CA== +#### 什么是受信任的CA +受信任的CA也称商业CA,是为申请证书的企业组织颁发证书的权威性第三方机构,并管理最终用户数据加密的公共密钥和证书 +#### 目前特别知名的证书颁发机构 +**DigiCert Entrust Datacard Globalsign Sectiao** +#### 什么是私密CA +私有证书颁发机构(也称私有PKI)是内部CA,通常存在于大型企业中,并自己给自己颁发证书 +私密CA在许多方面都像公共CA一样运作,但是==最明显的区别在于==: + +**私密CA颁发的证书仅受其内部用户,客户端和IT系统信任; +私密CA颁发的证书会限制对选定用户组的访问。 +您必须自己建立私密CA,并托管私密CA(或者找第三方帮您完成)** +==私密CA自签名证书最常用于以下场景==: + +**虚拟专用网络; +内网站点; +私人电子邮件签名证书; +封闭式的用户组服务; +文件共享应用程序。** +#### 公共CA与私有CA的区别在于: +==1. 应用场景不同== +受信任的CA签发的证书符合行业的基本标准,安全性高,多用于公众访问的站点,特别是电子商务系统,网银系统,证券系统等; +自签名的CA证书则适用于内网站点,适合企业内部人员的使用。 + +==2. 安全系数不同== +公共CA证书是由受信任的根证书签发,CA在签发证书前还会对证书申请者进行身份验证,确保其身份的真实性。如果已签发的证书发现有问题,CA有权吊销该证书以避免安全问题的发生。 +自签名证书是自己创建的CA签署的数字证书,它普遍存在严重的安全漏洞,极易受到攻击劫持,而且通常不受浏览器信任,因此自签名证书安全系数非常低。此外,私有CA无权吊销自签名证书。 + +==3. 成本投入不同== +由于CA包含在信任库中,您的证书将被公开信任,从公共证书机构颁发的证书只是公共信任的证书的一小部分,企业或个人用户只需要支付很少的费用就可让站点得到安全的保护和身份认证。 +相反,建立自己内部CA,是需要人力和财力成本,甚至是需要一个团队去管理内部PKI,而且还需要支付硬件,软件,许可和培训费用。 对于很多小公司来说,这会造成成本过高。 +如此看来,如果您是要保护一个可以被公众访问的域名,那么最好是选择受信任的公共CA来签发证书,因为他们的根证书存储在大多数浏览器的信任存储库中,这样会使得身份验证变得更容易。所以,为了您的重要系统安全,特别是重要的网银系统,证券系统,电子商务系统,锐成信息建议您使用正规权威的CA颁发的全球信任的SSL证书。 \ No newline at end of file -- Gitee From d9428a1826c98fe138e4247f04f5258e86790c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:31:05 +0000 Subject: [PATCH 7/9] =?UTF-8?q?=E6=97=B6=E5=BA=8F=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=9F=A5=E8=AF=86=E5=92=8C=E6=A6=82=E5=BF=B5?= =?UTF-8?q?=E7=9A=84=E7=90=86=E8=A7=A3=20=E8=A1=A5=E5=85=85=E7=9F=A5?= =?UTF-8?q?=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...77\347\224\250\346\226\271\346\263\225.md" | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\346\227\266\345\272\217\345\233\276\347\233\270\345\205\263\347\237\245\350\257\206\345\222\214\344\275\277\347\224\250\346\226\271\346\263\225.md" diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\346\227\266\345\272\217\345\233\276\347\233\270\345\205\263\347\237\245\350\257\206\345\222\214\344\275\277\347\224\250\346\226\271\346\263\225.md" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\346\227\266\345\272\217\345\233\276\347\233\270\345\205\263\347\237\245\350\257\206\345\222\214\344\275\277\347\224\250\346\226\271\346\263\225.md" new file mode 100644 index 0000000..bdc5099 --- /dev/null +++ "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\346\227\266\345\272\217\345\233\276\347\233\270\345\205\263\347\237\245\350\257\206\345\222\214\344\275\277\347\224\250\346\226\271\346\263\225.md" @@ -0,0 +1,19 @@ +### 时序图 +#### 基本概念: +时序图(Sequence Diagram)又称序列图,是一种UML交互图 + +==它通过描述对象之间发送信息的时间顺序显示多个对象之间的动态协作== +#### 几种常用的部分 +##### ①角色Actor :系统角色,可以是人或者其他系统和子系统,以一个小人图标表示 +##### ②对象(object):位于时序图的顶部,以一个矩形表示 +##### ③生命线(Lifeline):时序图中每个对象和底部中心都有一条垂直的虚线 +##### ④控制焦点(Activation):是顺序图中表示时间段的符号,在这个时间段内对象将执行相应的操作。用小矩形表示 +##### ⑤消息(Message):表示对象之间发送的信息 + + 同步消息 实线+加粗箭头 + + 异步消息 实线+箭头 + + 返回消息 虚线+箭头 +#### 在时序图中,首先把参与交互的对象放在图的上方,沿x轴方向排列,通常把发起交互的对象放在左边,较下级的对象放在右边,然后把这些对象发送和接收的消息沿y轴方向按时间顺序从上到下放置 +#### ==纵轴是时间轴,横轴是对象,对象的生命周期沿竖线向下延伸== \ No newline at end of file -- Gitee From 8a3b362b3898beb4b08de3111b7df3c811c49f46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:39:13 +0000 Subject: [PATCH 8/9] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20doc/?= =?UTF-8?q?tpm2-=E4=BA=A4=E4=BA=92=E7=90=86=E8=A7=A3/.keep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/.keep" deleted file mode 100644 index e69de29..0000000 -- Gitee From df94c646dc682d42525bcf025e567db559e0cbc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BF=A1=E8=BE=BE?= <2018970526@qq.com> Date: Sun, 8 Aug 2021 09:39:48 +0000 Subject: [PATCH 9/9] =?UTF-8?q?add=20doc/tpm2-=E4=BA=A4=E4=BA=92=E7=90=86?= =?UTF-8?q?=E8=A7=A3.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Addfiletest.txt | 1 + ...4\272\222\350\277\207\347\250\213\346\226\207\346\241\243.md" | 0 helloworld.txt | 0 3 files changed, 1 insertion(+) create mode 100644 Addfiletest.txt create mode 100644 "doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\344\272\244\344\272\222\350\277\207\347\250\213\346\226\207\346\241\243.md" create mode 100644 helloworld.txt diff --git a/Addfiletest.txt b/Addfiletest.txt new file mode 100644 index 0000000..34583e8 --- /dev/null +++ b/Addfiletest.txt @@ -0,0 +1 @@ +hello go \ No newline at end of file diff --git "a/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\344\272\244\344\272\222\350\277\207\347\250\213\346\226\207\346\241\243.md" "b/doc/tpm2-\344\272\244\344\272\222\347\220\206\350\247\243/\344\272\244\344\272\222\350\277\207\347\250\213\346\226\207\346\241\243.md" new file mode 100644 index 0000000..e69de29 diff --git a/helloworld.txt b/helloworld.txt new file mode 100644 index 0000000..e69de29 -- Gitee