Tag: diffie hellman

在执行Diffie-Hellman密钥交换时,预主秘密不匹配

我正在尝试将DHE_DSS应用到go的crypto / tls包中。 不幸的是,我似乎无法得到PreMasterSecret(Z)是相同的,我的基本工作stream程是: 接收服务器密钥交换消息 提取P,G,Ys 使用提供的数字签名进行validation 准备客户端密钥交换消息 创build客户端的Xc 生成Yc(Yc = G ^ Xc%P) 生成Z(Z = Ys ^ Xc%P) 发回Yc,像这样打包: ckx := make([]byte, len(yC)+2) ckx[0] = byte(len(Yc)>>8) ckx[1] = byte(len(Yc)) copy(ckx[2:], yBytes) 但是,当我用gnutls-servdebugging这两个PreMasterSecrets(Z)是不同的。 我是否需要签署退回的Yc,或者以另一种方式包装? 我不能在RFC 5246中看到任何build议。 < – 编辑 – > 这是我的一些修改: https://08766345559465695203.googlegroups.com/attach/48587532c74b4348/crypto.patch?part=4&view=1&vt=ANaJVrHbwydqEZc3zjUWqQ5C8Q5zEkWXZLdL0w6JJG3HYntOlBurUTY7mc9xR9OTfE0bJxs4eeL5a5SGd2jj9eIfXcwJQgLvJchXOgkYKBBynbPfshY8kuQ