首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openpgp.js关于wp8误差的讨论

openpgp.js关于wp8误差的讨论
EN

Stack Overflow用户
提问于 2015-05-15 08:19:29
回答 1查看 148关注 0票数 0

我在我的应用程序中使用了一个openPgpJs库,它是由Apache创建的。

下面是代码的一部分:

代码语言:javascript
复制
        var publicKey = openpgp.key.readArmored(_publicKey);
        openpgp.encryptMessage(publicKey.keys, text).then(function (pgpMessage) {
            // success
            callback(pgpMessage);
        }).catch(function (error) {
            // failure
            console.error(error);
        });

它工作得很好,但在WP8上却不行。如果失败,将导致openpgp var未定义。在该库源代码中,有这样的代码:

代码语言:javascript
复制
!function (e) {
"object" == typeof exports ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : "undefined" != typeof window ? window.openpgp = e() : "undefined" != typeof global ? global.openpgp = e() : "undefined" != typeof self && (self.openpgp = e())

}

因此,应该定义openpgp。我怎么才能让它起作用?

更新,我添加了var openpgp = window.openpgp;,错误消失了。现在它无法加密消息,而且很难调试,因为库代码被缩小了

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-18 13:08:47

所以,对于任何有同样问题的人来说。

  1. 使用var openpgp = window.openpgp;避免“未定义”错误。
  2. 下一个问题是getRandomValues函数内部--有一个异常No secure random number generator available.。为了避免此错误,我将最后一个(有例外)语句更改为

var sjcl = window.sjcl; if (sjcl.random.isReady()) { var buf = new Uint8Array(1); bytes = sjcl.random.randomWords(buf.length); buf.set(bytes); }else{ var bytes = []; for (var i = 0; i < buf.length; i++) { bytes.push(isaac.rand()); buf.set(bytes); } } @ZeroG对这个问题的回答:确保javascript中的随机数字安全?

希望它能对某人有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30254759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档