javascript中ECDH和ECDSA的单个公钥

javascript中ECDH和ECDSA的单个公钥,javascript,cryptography,elliptic-curve,ecdsa,ecdh,Javascript,Cryptography,Elliptic Curve,Ecdsa,Ecdh,使用椭圆模块,ECDH和DSA可以使用相同的曲线或使用相同的公钥吗 我可以使用曲线生成公钥,然后将其用于ECDH和ECDSA吗 在本例中,我使用2个曲线和2个公钥 从“椭圆”导入{ec}; let curve=新ec(“curve25519”); 从“椭圆”导入{eddsa}; 设eCurve=new-eddsa('ed25519'); //ECDH 设myKeys=curve.keyfromfromprivate(“abc012def999”,“hex”); 让myPubKey=myKeys.

使用
椭圆
模块,ECDH和DSA可以使用相同的曲线或使用相同的公钥吗

我可以使用曲线生成公钥,然后将其用于ECDH和ECDSA吗

在本例中,我使用2个曲线和2个公钥

从“椭圆”导入{ec};
let curve=新ec(“curve25519”);
从“椭圆”导入{eddsa};
设eCurve=new-eddsa('ed25519');
//ECDH
设myKeys=curve.keyfromfromprivate(“abc012def999”,“hex”);
让myPubKey=myKeys.getPublic();
让myPriKey=myKeys.getPrivate();
让shared=myKeys.derivate(/*外部公钥*/);
//标志
让myOtherKeys=eCurve.keyFromSecret(“abc012def999”);
让signature=myOtherKeys.sign(msgHash.toHex();
//验证签名
日志(myOtherKeys.verify(msgHash,签名));
ECDH和ECDSA只能使用一条曲线或一个公钥