小编Pet*_*olm的帖子

使用Node.js/crypto生成ECDSA签名

我有使用jsrsasignJKK格式的密钥为ECDSA签名生成连接(rs)签名的代码:

const sig = new Signature({ alg: 'SHA256withECDSA' });
sig.init(KEYUTIL.getKey(key));
sig.updateHex(dataBuffer.toString('hex'));
const asn1hexSig = sig.sign();
const concatSig = ECDSA.asn1SigToConcatSig(asn1hexSig);
return new Buffer(concatSig, 'hex');
Run Code Online (Sandbox Code Playgroud)

似乎工作.我也有SubtleCrypto用于实现同样的事情的代码:

importEcdsaKey(key, 'sign') // importKey JWK -> raw
.then((privateKey) => subtle.sign(
    { name: 'ECDSA', hash: {name: 'SHA-256'} },
    privateKey,
    dataBuffer
))
Run Code Online (Sandbox Code Playgroud)

这两个都返回128字节的缓冲区; 并且他们交叉验证(即我可以验证jsrsasign签名,SubtleCrypto反之亦然).但是,当我Sign在Node.js crypto模块中使用该类时,我似乎得到了一些完全不同的东西.

key = require('jwk-to-pem')(key, {'private': true});
const sign = require('crypto').createSign('sha256');
sign.update(dataBuffer);
return sign.sign(key);
Run Code Online (Sandbox Code Playgroud)

这里我得到一个可变长度的缓冲区,大约70个字节; 它没有交叉验证jsrsa(抱怨rs签名的长度无效).

我怎样才能得到一个RS签名,通过所产生jsrsasignSubtleCrypto使用节点crypto …

cryptography node.js ecdsa

7
推荐指数
1
解决办法
5383
查看次数

找不到lint-gradle-api.jar(com.android.tools.lint:lint-gradle-api:26.1.2)

我的React Native构建突然失败并出现错误,尽管一天前工作正常但没有任何相关的更改.

FAILURE: Build failed with an exception.

* What went wrong: A problem occurred configuring project ':react-native-document-scanner'.
> Could not resolve all artifacts for configuration ':react-native-document-scanner:classpath'.
   > Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar
Run Code Online (Sandbox Code Playgroud)

之前曾多次提出过类似的问题,但通常的解决方案是添加google()到该repositories部分.然而

  1. 我们的repositories部分已包含google()
  2. google() 已经出现了 jcenter()

片段来自build.gradle:

buildscript {
    repositories {
        // ...
        google()
        maven { url 'https://maven.google.com' }
        mavenLocal()
        mavenCentral()
        maven { url "https://jitpack.io" }
        jcenter()
    }
}

// ...

allprojects { …
Run Code Online (Sandbox Code Playgroud)

gradle android-gradle-plugin react-native

6
推荐指数
1
解决办法
1651
查看次数