标签: public-key

如何从本机代码中的XML或模数/指数导入RSA公钥,以便与Windows CAPI的CryptVerifySignature一起使用?

在C#中,我能够通过以下任一方式对公钥进行哈希验证:

// Import from raw modulus and exponent
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) {
    RSAParameters rsaKeyInfo = new RSAParameters {Modulus = modulus, Exponent = exponent};
    rsa.ImportParameters(rsaKeyInfo);
    return rsa.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA512"), signature);
}

// Import from XML
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) {
    rsa.FromXmlString(xmlPublicKey);
    return rsa.VerifyHash(hash, CryptoConfig.MapNameToOID("SHA512"), signature);
}
Run Code Online (Sandbox Code Playgroud)

我需要知道的是,在给定入站RSA公钥的情况下,如何使用CAPI完成同样的事情?

除了了解如何将公钥导入加密提供程序的上下文之外,我还有大多数验证哈希所需的CAPI函数:

HCRYPTPROV hCryptProv;
HCRYPTHASH hHash;

CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0);
CryptCreateHash(hCryptProv, CALG_SHA512, 0, 0, &hHash);
CryptHashData(hHash, pDataToHash, lenDataToHash, 0);
CryptVerifySignature(hHash, pSignature, sigLength, NULL, CRYPT_NOHASHOID);
CryptDestroyHash(hHash);
CryptReleaseContext(hCryptProv, 0);
Run Code Online (Sandbox Code Playgroud)

谢谢!

cryptography rsa cryptoapi public-key mscapi

0
推荐指数
1
解决办法
3094
查看次数

Erlang - 解码 RSA 公钥

这个的后续。

我得到了阅读/解码工作

1> {ok, F} = file:read_file("inaimathi.rsapub").
{ok,<<"-----BEGIN RSA PUBLIC KEY-----\nmQINBE9NBIQBEADMSzN6b0FaPP0rGiLDWKfH4ehN66Z0SAIynXm6lBHjmO69pNsm\niIe4p1X9aXhr"...>>}
2> [Entry] = public_key:pem_decode(F).
[{'RSAPublicKey',<<153,2,13,4,79,77,4,132,1,16,0,204,75,
                   51,122,111,65,90,60,253,43,26,34,195,
                   88,167,...>>,
                 not_encrypted}]
Run Code Online (Sandbox Code Playgroud)

根据文档,为了从中获取可用的公钥,我必须做的最后一件事就是在其public_key:pem_entry_decode/1上运行Entry。但是,当我尝试这样做时,会出现错误。

3> public_key:pem_entry_decode(Entry).
** exception error: no match of right hand side value 
                    {error,
                        {asn1,
                            {{badmatch,{error,{asn1,{wrong_tag,{131097,16}}}}},
                             [{'OTP-PUB-KEY',dec_RSAPublicKey,2,
                                  [{file,"OTP-PUB-KEY.erl"},{line,5956}]},
                              {'OTP-PUB-KEY',decode,2,
                                  [{file,"OTP-PUB-KEY.erl"},{line,493}]},
                              {public_key,der_decode,2,
                                  [{file,"public_key.erl"},{line,166}]},
                              {erl_eval,do_apply,6,
                                  [{file,"erl_eval.erl"},{line,576}]},
                              {shell,exprs,7,[{file,"shell.erl"},{line,668}]},
                              {shell,eval_exprs,7,
                                  [{file,"shell.erl"},{line,623}]},
                              {shell,eval_loop,3,
                                  [{file,"shell.erl"},{line,608}]}]}}}
     in function  public_key:der_decode/2 (public_key.erl, line 170)
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

编辑:不认为这很重要,但有人问,所以。

我在酷睿i3运行Debian喘息从的〜2日龄结账安装二郎

erl --version

Erlang R15B02 (erts-5.9.2) [source] [64-bit] [smp:4:4] [async-threads:0] [hipe] [kernel-poll:false]
Run Code Online (Sandbox Code Playgroud)

erlang rsa gnupg public-key

0
推荐指数
1
解决办法
2361
查看次数

Git推"权限被拒绝"

我试图将我的代码推送到我的github帐户,但无论何时我尝试,我都会得到这个

Pushing to git@github.com:AlphaModder/Space-Dimension-Mod.git
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

问题:如何避免"权限被拒绝"?GitHub远程地址是否有效?

git push github public-key

0
推荐指数
1
解决办法
7659
查看次数

JSEncrypt 每次为相同的消息和公钥生成不同的输出

我有一段简单的 JavaScript:

<html>
  <script type="text/javascript" src="http://cdn.rawgit.com/travist/jsencrypt/v2.1.0/bin/jsencrypt.js"></script>
  <script type="text/javascript">

    var message = "This is my message"

    // we create a new JSEncrypt object for rsa encryption
    var rsaEncrypt = new JSEncrypt();

    var publicKey = "-----BEGIN PUBLIC KEY-----" +
      "\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQK" +
      "BgQCQDxDFOYJpkCaqeX4CBVNCtBjX\nMZgGMo" +
      "lSs2wYrVu1ixr36KpeJcRcYhz+AnyhnUpYkgk" +
      "+hEqJtDSNirU5Dk5oVYYi\ngf2uLogV5Tp/ka" +
      "K49r9vtxldcHraZIgNQjcdeQUd/viKd/3DvM8" +
      "naWR/mTG0nCBE\nrEQkATW/xXynJh/COQIDAQ" +
      "AB\n-----END PUBLIC KEY-----"

    rsaEncrypt.setPublicKey(publicKey);

    var encryptedMessage = rsaEncrypt.encrypt(message);

    console.log(encryptedMessage)
  </script>
</html>
Run Code Online (Sandbox Code Playgroud)

我觉得每次运行时都应该在控制台中产生相同的输出,但事实并非如此。

示例输出:

abqE+YkCMKFWgsazbZpfGvoXLci9FL/wZLYUMR6ZFkolsvJC5MdJgq5yn+AXXy8xlKHDOry6czAaOQOTl2HXdKSfsypc8nqDU8Sx5PuEgMYjvJ/dEyfU6jVuxfH1Qmuk6aOGVHePNfDlC4kSjgp1RXToSP5NqAEi24EuMx3uulI=

OzZM03Pki3o631KOuZ5nyQKu1xXRbLHhrR0WnjE5Ns5SssoiCEwlrS+svtP0cbZaYWZJc+FlZQNFUam4iC233BKnY5Nrr5Ppj14eaBvJ4x3FR8FiLwtyEW7nTzisAS7Ys2RKPjUzmkiOCZHwIpXnUO10KVo8763+JIuDB0cDPS4=
Run Code Online (Sandbox Code Playgroud)

谁能解释这种行为?

javascript encryption public-key-encryption public-key

0
推荐指数
1
解决办法
2879
查看次数

需要一个有效的Ruby基本RSA私有公钥示例

我已经成功创建了私钥和公钥,并对消息进行了编码,但是在解码消息时,我抛出了错误

到目前为止,我的代码是:

require 'openssl'
require 'base64'


key = OpenSSL::PKey::RSA.generate(2048)

pri_key = key
pub_key = key.public_key

string = 'Hello World!';

rsa_public_key = OpenSSL::PKey::RSA.new(pub_key)
encrypted_string = Base64.encode64(rsa_public_key.public_encrypt(string))

puts "Encrypted Message:"
puts encrypted_string

# This creates an error
my_string = pri_key.private_decrypt(encrypted_string)


puts "The decoded message"
puts my_string
Run Code Online (Sandbox Code Playgroud)

打印编码后的消息后抛出此错误

Example Decrypt.txt:25:in `private_decrypt': data greater than mod len (OpenSSL::PKey::RSAError)
        from Example Decrypt.txt:25:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby encryption rsa public-key private-key

0
推荐指数
1
解决办法
512
查看次数

如何将以太坊地址转换为公钥

我需要像这样转换以太坊地址

0xB34080739D5B656D76089f9f21b374BA5dafA373

像这样的公钥

e2d3a3a43e71eb541e12504cee22ed74024969b46b9e68ea7f9e5384fe96fc04

我是这样得到地址的

from web3 import Web3

w3 = Web3(Web3.HTTPProvider('https://sokol.poa.network'))

addr = w3.toHex(w3.sha3(text=public_key)[12:])
Run Code Online (Sandbox Code Playgroud)

也许有一个图书馆可以做到这一点?请帮忙

python public-key ethereum

0
推荐指数
1
解决办法
2140
查看次数

更改EC2实例的私钥

我有两个带有私钥的服务器(实例),我想更改这些密钥而不停止服务器(实例)或创建新的密钥。

这可能吗?

amazon-ec2 amazon-web-services public-key key-pair private-key

0
推荐指数
1
解决办法
145
查看次数