gpt4 book ai didi

webrtc - 不确定以编程方式生成的自签名 ECDSA 证书是否符合与 WebRTC 一起使用以及指纹计算是否正确

转载 作者:行者123 更新时间:2023-12-04 09:36:46 27 4
gpt4 key购买 nike

应该很清楚,我是证书和密码学的新手。
我正在尝试以编程方式生成自签名证书,以便在 SFU 的实现中与 WebRTC 一起使用。 RFC at Section 4.9 ,关于用于 WebRTC 的证书的主题,声明:

The following values MUST be supported by a user agent: { name:"RSASSA-PKCS1-v1_5", modulusLength: 2048, publicExponent: newUint8Array([1, 0, 1]), hash: "SHA-256" }, and { name: "ECDSA",namedCurve: "P-256" }.


在 C 中以编程方式创建 ECDSA 证书并保存后,我对创建的证书文件运行以下命令:
  openssl x509 -in /tmp/ecdsa_certificate -text  #Linux command-line
我得到输出:
  Certificate:
Data:
Version: 1 (0x0)
Serial Number: 1 (0x1)
Signature Algorithm: ecdsa-with-SHA256
Issuer: C = IN, O = XYZ Tech., CN = localhost
Validity
Not Before: Jun 23 17:28:14 2020 GMT
Not After : Jun 23 17:28:14 2021 GMT
Subject: C = IN, O = XYZ Tech., CN = localhost
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:d9:c8:cc:93:13:54:3d:e6:40:d7:2f:33:da:f2:
d4:e4:62:83:a4:ec:ad:98:f5:d5:2e:cf:3b:e8:5f:
ad:da:b9:e0:59:f0:19:59:84:b8:47:45:b4:21:56:
30:c8:1d:0b:9b:2d:02:e2:f5:4d:c7:57:2e:e6:a6:
f9:c4:c4:a7:5c
ASN1 OID: secp256k1
Signature Algorithm: ecdsa-with-SHA256
30:44:02:20:58:0a:49:7d:e3:0f:d7:56:6a:5c:af:f8:bd:1d:
5e:54:bb:15:10:ec:05:3a:3a:db:79:8f:e6:70:86:6d:3d:f1:
02:20:4f:89:5f:df:21:46:1b:da:6b:40:04:98:2c:df:35:ff:
e5:3d:52:d5:07:76:bf:23:a4:01:b7:28:bf:f5:83:30
-----BEGIN CERTIFICATE-----
MIIBTTCB9QIBATAKBggqhkjOPQQDAjA1MQswCQYDVQQGEwJJTjESMBAGA1UECgwJ
WFlaIFRlY2guMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMjAwNjIzMTcyODE0WhcN
MjEwNjIzMTcyODE0WjA1MQswCQYDVQQGEwJJTjESMBAGA1UECgwJWFlaIFRlY2gu
MRIwEAYDVQQDDAlsb2NhbGhvc3QwVjAQBgcqhkjOPQIBBgUrgQQACgNCAATZyMyT
E1Q95kDXLzPa8tTkYoOk7K2Y9dUuzzvoX63aueBZ8BlZhLhHRbQhVjDIHQubLQLi
9U3HVy7mpvnExKdcMAoGCCqGSM49BAMCA0cAMEQCIFgKSX3jD9dWalyv+L0dXlS7
FRDsBTo623mP5nCGbT3xAiBPiV/fIUYb2mtABJgs3zX/5T1S1Qd2vyOkAbcov/WD
MA==
-----END CERTIFICATE-----
此证书是否符合 WebRTC 对 DTLS 握手的要求。似乎只有公钥和证书的指纹才对 WebRTC 的使用有影响。
问题2:
我尝试使用以下函数计算证书上的指纹:
   if (X509_digest(certificate, EVP_sha256(), rfingerprint, &fingerprintSize) !=0 )
printf("Error in X509_digest\n");
printf("finger print size is %d\n", fingerprintSize);
它显示的指纹大小仅为 7!在大多数 SDP 中,我看到指纹属性要长得多。任何意见?

最佳答案

在 Pion 上工作时,我和你在同一条船上 asinix :) 这是我在测试 WebRTC 东西时在本地生成的内容。

  openssl ecparam -out key.pem -name prime256v1 -genkey
openssl req -new -sha256 -key key.pem -out server.csr
openssl x509 -req -sha256 -days 365 -in server.csr -signkey key.pem -out cert.pem
如果你遇到困难,你也可以做 RSA!也许只是为了阻止您构建 MVP :)
现在实现是 Pure Go,但是你可以看到我们做 CGO 的第一个版本 here
我不确定你的东西在哪里不同,但可以随意复制/比较(不需要归属)!

关于webrtc - 不确定以编程方式生成的自签名 ECDSA 证书是否符合与 WebRTC 一起使用以及指纹计算是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62540779/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com