易水风萧个人学习

风萧萧兮易水寒,壮士一去兮不复还

实现一个手写的 TLS 1.2 客户端

从来不信什么一夜成名,一夜暴富,只信一分耕耘一分收获。 如果有一天,你的努力配得上你的梦想,那么你的梦想也绝对不会辜负你的努力

基础函数// prf12 实现 TLS 1.2 的伪随机函数 PRF(secret, label, seed)// 根据 RFC 5246 Section 5 定义:PRF(secret, label, seed) = P_<hash>(secret, label + seed)// 其中 P_hash 基于 HMAC 的迭代构造// 参数说明:// - secret: 共享......

结合实例学习TLS1.2协议

失去的东西,其实从来未曾真正地属于你,也不必惋惜,始终真心真意

完整流程ClientHello --------> ServerHello Certificate* ......

TLS扩展入门学习笔记

每一滴眼泪都承载着无尽的哀伤,如同秋叶飘落般无奈

https://datatracker.ietf.org/doc/html/rfc6066#autoid-5 TLS协议本身并未提供某些场景所需的功能,RFC 6066针对以下六个核心需求定义了相应扩展: 需求场景 对应扩展 客户端需告知服务器其正在访问的服务器名称(虚拟主机场景) server_name(SNI) 受内存/带宽限制的客户端希望协商更小的分片长度 max_......

TLS1.2协议入门学习笔记

失望并不可怕,怕的是一次次失望过后,平静安慰自己,心存侥幸试着继续相信

文档参考来源:https://datatracker.ietf.org/doc/html/rfc5246 https://datatracker.ietf.org/doc/html/rfc6066 概述TLS 握手协议包含下述步骤: 交换 Hello 消息,协商密码算法、交换随机数,并检查是否可恢复会话; 交换所需密码参数,使客户端与服务器协商得出预主密钥; 交换证书与密码相关信息,供客户......

antlr v4入门学习笔记

回忆是一座桥却是通往寂寞的牢‌,每次回望都心如刀绞却忘不掉

环境搭建与第一个程序环境准备 安装 Java: ANTLR4 基于 Java,需要先安装 Java 运行时环境 (JRE) 或开发工具包 (JDK)。 获取 ANTLR4: 命令行方式: 从官网下载 ANTLR4 的完整 Jar 包。为了方便,可以在系统里配置好 antlr4 和 grun 命令别名。 IDE 插件方式 (推荐): 在 IntelliJ IDEA 或 VSCode 中搜索并安......

RSP系统中的OID与密钥派生

不多不少的拥有,不早不晚的相遇,不繁不简的生活,不藏不显的心境,一切刚刚好。刚刚好,才会遇见最美好

smdpOid (SM-DP+ 对象标识符)定义: smdpOid 是一个对象标识符(OID),用于在GSMA RSP生态系统中唯一标识一个SM-DP+。它类似于一个全局唯一的ID,确保与其他SM-DP+区分开来。 作用: 会话关联与认证:在ES9+.CancelSession等流程中,SM-DP+会验证收到的smdpOid是否与自身证书中的OID一致,确保该会话请求是针对正确的SM-D......

RSP与eIM系统中签名验证过程与证书的使用

每次都是这样,没有例外‌,在最需要有人依靠的时候,往往最后都是自己一个人挺过去

核心概念与概览这些签名都是用于保障eSIM远程配置与管理流程中数据的完整性 (Integrity)、真实性 (Authenticity) 和抗抵赖性 (Non-repudiation)。它们通过非对称加密(ECDSA算法)实现,由发送方使用私钥签名,接收方使用公钥验签。 不同签名的作用对象(被签名的数据)、生成方、验签方各不相同,共同构成了一个复杂的信任链。 详细对比表格 签名名称 作......

X509证书中证书算法OID作用及说明

时间可以改变未来,却改变不了过去

证书中OID类型在 X.509 证书的上下文中,通常涉及两类与 ECC 相关的 OID:公钥算法 OID(声明这是一个 ECC 密钥)和命名曲线 OID(声明具体使用的是哪条椭圆曲线)。 获取目标 OID公钥算法 OID在证书的 SubjectPublicKeyInfo 字段中,ECC 的公钥算法 OID 是 1.2.840.10045.2.1(id-ecPublicKey)。它会在 ASN......

Golang中make与new及数组切片详解

世界真的很小,好像一转身,就不知道会遇见谁;世界真的很大,好像一转身,就不知道谁会消失

make 与 new用法简析在 Go 语言中,make 和 new 都是用于内存分配的内建函数,但它们的适用类型、返回值和初始化行为有本质区别。 make 与 new 的共同点 都是内建函数:无需导入任何包即可直接使用。 都在堆上分配内存:用于创建变量并返回一个(或指向)已初始化的值。 均用于初始化:但初始化的“深度”不同。 make 与 new 的核心区别 特性 new make ......

Go自定义错误用法详解

所有的期待和失望都是因为你把自己看得太重要了

Go 中自定义 error 的详细说明基础自定义 error最简单的自定义 error 方式: // 方式1:使用字符串type MyError stringfunc (e MyError) Error() string { return string(e)}// 使用func doSomething() error { return MyError......