<div dir="ltr">Dear folks<div><br></div><div><div><a href="https://named-data.net/doc/NDN-packet-spec/current/signature.html#signaturesha256withrsa">https://named-data.net/doc/NDN-packet-spec/current/signature.html#signaturesha256withrsa</a> sayL<br></div><div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>SignatureSha256WithRsa is the basic signature algorithm that MUST be supported by any NDN-compliant software.</div><div>It defines an RSA public key signature that is calculated over SHA256 hash of the Name, MetaInfo, Content, and SignatureInfo TLVs.</div></blockquote><div><br></div><div>Looking over <a href="https://diafygi.github.io/webcrypto-examples/">WebCrypto</a>, there are two variants of RSA suitable for signing:</div><div><ul><li>RSASSA-PKCS1-v1_5<br></li><li>RSA-PSS<br></li></ul></div><div>Which RSA variant is being defined by SignatureSha256WithRsa?</div><div>(yes, I could try each with existing implementations, but the protocol is supposed to define everything unambiguously)<br></div><div><br></div><div><br></div><div>Then, <a href="https://diafygi.github.io/webcrypto-examples/">WebCryptoAPI Live Table</a> discourages new applications from using either variant of RSA, and recommends using ECDSA and HMAC.</div><div>Also, the <a href="https://named-data.net/ndnsec/ndn-testbed-root-v2.ndncert.txt">testbed root key</a> is SignatureSha256WithEcdsa since Dec 2017.</div><div>I think it's time to amend this statement:</div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>SignatureSha256WithRsa MUST be supported by any NDN-compliant software.</div></blockquote><div><br></div><div>My suggestion is:</div><div><ul><li>SignatureSha256WithEcdsa with P-256 curve is required.<br></li><li>Other ECDSA curves are optional.</li><li>Other signing algorithms such as 

SignatureSha256WithRsa are optional.

</li></ul></div><div><br></div><div>Yours, Junxiao</div></div>