libsodium的低级绑定-C/C++开发

  • U2_128638
    了解作者
  • 55.9KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-21 00:51
    上传日期
钠-天然钠的低水平结合。 npm install sodium-native该项目的目标是围绕libsodium的薄,稳定,无阳离子的包装。 所公开的所有方法或多或少都是钠与钠的低水平结合的直接翻译。 npm install sodium-native该项目的目标是围绕libsodium的薄,稳定,无阳离子的包装。 公开的所有方法或多或少都是libsodium c-api的直接翻译。 这意味着大多数数据类型都是缓冲区,您必须管理分配返回值并将它们作为参数传入,以便将它们作为返回值接收。 这使得该API比其他libsodium包装器更难使用,但也意味着
sodium-native-master.zip
  • sodium-native-master
  • libsodium
  • test
  • fixtures
  • mprotect_noaccess.js
    150B
  • mprotect_readonly.js
    183B
  • mprotect_readwrite.js
    317B
  • crypto_stream.js
    12.8KB
  • crypto_hash_sha256.js
    1023B
  • helpers.js
    3.3KB
  • core_ed25519.js
    12.2KB
  • crypto_aead_xchacha20poly1305_ietf.js
    12.3KB
  • crypto_aead_chacha20poly1305_ietf.js
    11.9KB
  • crypto_auth.js
    540B
  • memory.js
    3.3KB
  • crypto_secretbox.js
    2.9KB
  • crypto_onetimeauth.js
    1.2KB
  • crypto_pwhash.js
    9.3KB
  • crypto_kdf.js
    928B
  • vectors.js
    42B
  • crypto_stream_chacha20.js
    12.5KB
  • crypto_hash_sha512.js
    1.1KB
  • crypto_sign.js
    3.1KB
  • randombytes.js
    1.8KB
  • crypto_hash.js
    533B
  • crypto_stream_chacha20_ietf.js
    13.6KB
  • crypto_shorthash.js
    505B
  • crypto_generichash.js
    4.9KB
  • sodium-test.js
    38B
  • crypto_box.js
    3.9KB
  • crypto_kx.js
    4.3KB
  • crypto_secretstream.js
    7.5KB
  • padding.js
    1.7KB
  • crypto_pwhash_scryptsalsa208sha256.js
    10.8KB
  • crypto_scalarmult.js
    1.2KB
  • binding.gyp
    720B
  • .gitmodules
    91B
  • example.js
    823B
  • preinstall.js
    4.3KB
  • configure
    141B
  • binding.c
    123.8KB
  • postinstall.js
    1.9KB
  • CONTRIBUTING.md
    1.2KB
  • .travis.yml
    1.6KB
  • LICENSE
    1.1KB
  • macros.h
    9.6KB
  • README.md
    2KB
  • .gitignore
    27B
  • index.js
    75B
  • CHANGELOG.md
    5.7KB
  • package.json
    1.3KB
内容介绍
# sodium-native [![build status](https://travis-ci.org/sodium-friends/sodium-native.svg?branch=master)](https://travis-ci.org/sodium-friends/sodium-native) Low level bindings for [libsodium](https://github.com/jedisct1/libsodium). ``` npm install sodium-native ``` The goal of this project is to be thin, stable, unopionated wrapper around libsodium. All methods exposed are more or less a direct translation of the libsodium c-api. This means that most data types are buffers and you have to manage allocating return values and passing them in as arguments intead of receiving them as return values. This makes this API harder to use than other libsodium wrappers out there, but also means that you'll be able to get a lot of perf / memory improvements as you can do stuff like inline encryption / decryption, re-use buffers etc. This also makes this library useful as a foundation for more high level crypto abstractions that you want to make. ## Usage ``` js var sodium = require('sodium-native') var nonce = Buffer.alloc(sodium.crypto_secretbox_NONCEBYTES) var key = sodium.sodium_malloc(sodium.crypto_secretbox_KEYBYTES) // secure buffer var message = Buffer.from('Hello, World!') var ciphertext = Buffer.alloc(message.length + sodium.crypto_secretbox_MACBYTES) sodium.randombytes_buf(nonce) // insert random data into nonce sodium.randombytes_buf(key) // insert random data into key // encrypted message is stored in ciphertext. sodium.crypto_secretbox_easy(ciphertext, message, nonce, key) console.log('Encrypted message:', ciphertext) var plainText = Buffer.alloc(ciphertext.length - sodium.crypto_secretbox_MACBYTES) if (!sodium.crypto_secretbox_open_easy(plainText, ciphertext, nonce, key)) { console.log('Decryption failed!') } else { console.log('Decrypted message:', plainText, '(' + plainText.toString() + ')') } ``` ## Documentation Complete documentation may be found on the [sodium-friends website](https://sodium-friends.github.io/docs/docs/getstarted) ## License MIT
评论
    相关推荐
    • c++ 类似npm工具
      在运行前,可以对程序进行动态库依赖检测,如果缺失,会自动下载缺失的动态库。这些动态库应该是常用的库。欢迎光临http://www.freebell.cn官网。里面有很多各类工具。
    • 内存处理文件系统-C/C++开发
      内存进程文件系统:内存进程文件系统(MemProcFS)是一种将虚拟内存作为文件访问虚拟文件系统的简便方法。 无需存储即可轻松地进行简单的单击和单击内存分析内存进程文件系统:内存进程文件系统(MemProcFS)是一种...
    • using使用JSI为React Native提供快速简便的多线程-C/C++开发
      安装npm install react-native-multithreading npx pod-i react-native-multithreading using使用JSI进行React Native的快速简便的多线程。 安装npm install react-native-multithreading npx pod-install需要一个...
    • RedisJSON-Redis的JSON数据类型-C/C++开发
      RedisJSON RedisJSON是一个Redis模块,它实现ECMA-404 JSON数据交换标准作为本机数据类型。 它允许从Redis密钥(文档)存储,更新和获取JSON值。 主RedisJSON RedisJSON是一个Redis模块,它实现ECMA-404 JSON数据...
    • Rive的Wasm / JS运行时-C/C++开发
      Rive的Wasm / JS运行时rive-wasm Rive的Wasm / JS运行时子模块此存储库使用子模块。 要克隆它,您可以运行以下命令:git clone --recurse-submodules [受电子邮件保护]:rive-app / rive-wasm.git构建Rive的Wasm构建...
    • 使用libsodium加密自解密html文件中的文件-C/C++开发
      这个软件包可以加密任意文件,例如PDF报告或RMarkdown导出,并将它们嵌入到可以使用libsodium对其自身进行解密的html文档中。 ... ... ... 使用风险自负。 反馈和错误报告非常欢迎!...安装#install.packages(“ htmlvault”)...
    • 网格优化库,可使网格更小,更快地渲染-C/C++开发
      :rabbit:meshoptimizer用途当GPU渲染三角形网格时,GPU管线的各个阶段都必须处理顶点和索引数据。 这些阶段的效率取决于您提供给它们的数据。...您可以从C / C ++或其他语言通过FFI(例如P / Invoke)使用它。
    • macOS系统范围的音频均衡器:headphone:-C/C++开发
      适用于Mac的eqMac2系统级均衡器+ 127k(旧)警告! 无线设备的音量错误修复此错误之前,您可能会遇到音量突然突然变化的情况。当前系统范围的音频源对所有设备的Volume Booster音量平衡支持基本EQ-3频段(低音,中音...
    • 交互式grep源代码。 http://livegrep.com/的来源-C/C++开发
      Livegrep Livegrep是一款受Google Code Search启发的工具,用于以千兆字节为单位的源存储库的交互式...livegrep供应商和/或使用bazel获取其所有依赖关系,因此只需要相对较新的C ++编译器即可构建。 一旦有了这些依赖
    • GaussDB_100_1.0.1-DATABASE-REDHAT-64bit.tar.gz
      guassdb100在redhat上安装包,单机部署的包,安装步骤请看我的文中介绍,经过大量实验搭建总结出来的文档