C#中的RSA加密(微控制器的softAP设置)

时间:2015-10-27 14:49:09

标签: javascript c# encryption rsa particles

我正在尝试为粒子光子配置wifi凭据(支持云的wifi微控制器)。

现有Java / ios / android / javascript方法。

但是,我需要在C#中执行此操作(对于桌面和xamarin多平台应用程序)。

我成功地设法连接到设备,检索它的ID,检索公钥和附近的wifi访问点(使用Webrequests和反序列化的json对象)

然而,我坚持使用我需要通过的wifi密码的RSA加密。

我正在尝试使用RSACryptoServiceProvider但是要加密我需要传递一个xml字符串,可能还有一个不同的(base64?)格式的密钥。似乎也需要进行某种拼接。

这是检索到的公钥(在HEX中):

  

30819F300D06092A864886F70D010101050003818D00308189028181009885DC94E34A23A2942BB9EB6721C4233E9EDCC9A967F587CEA527E1D447F48319CA6C4178DFF739C0AB079E02467DD4D3AD3214416F0983C3967EA71378D7D93A885F1575D71D009990BFFC0882FC721F4DC98A0D80B4CCF12E51066D69055E9A3C95E247BEB9DC16176A083DE7FA93C23449A3870D599DA9D507964F7FC4B90203010001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

这是github softap-js中的一项功能:

SoftAP.prototype.publicKey = function publicKey(cb) {

is(cb);
var sock = this.__sendCommand('public-key', response.bind(this));
function response(err, dat) {

    if(err) { return cb(err); }
    if(!dat) { return cb(new Error('No data received')); }
    if(dat.r !== 0) {
        return cb(new Error('Received non-zero response code'));
    }
    var buff = new Buffer(dat.b, 'hex');
    this.__publicKey = new rsa(buff.slice(22), 'pkcs1-public-der', {
        encryptionScheme: 'pkcs1'
    })
    cb(null, this.__publicKey.exportKey('pkcs8-public'));
};
return sock;

};

似乎处理公钥。我想我只是需要以某种方式将其转换为.net但我会感谢任何帮助或提示,因为我对加密一点也不熟悉。

0 个答案:

没有答案