0.1.6 • Published 2 years ago

@tiansn/sm3-wasm v0.1.6

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

编译环境安装方法

https://developer.mozilla.org/zh-CN/docs/WebAssembly/Rust_to_wasm

编译方法

wasm-pack build --scope tiansn

注意事项

为了能支持CORS,需要修改nginx的配置,增加对X-IV头字段的支持

#
# File: cors_support.conf
# Usage:
#   - Add to /usr/local/nginx/conf
#   - In your location block, add the line: include cors_support.conf;
#

set $cors '';

#if ($http_origin ~* (https?://.*\.zdbx\.net(:[0-9]+)?)) {
#    set $cors "true";
#}
set $cors "true";

if ($request_method = 'OPTIONS') {
    set $cors "${cors}options";
}

if ($request_method = 'GET') {
    set $cors "${cors}get";
}

if ($request_method = 'POST') {
    set $cors "${cors}post";
}

if ($request_method = 'PUT') {
    set $cors "${cors}put";
}

if ($request_method = 'DELETE') {
    set $cors "${cors}delete";
}

if ($cors = "trueget") {
    add_header 'Access-Control-Allow-Origin' "$http_origin" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
}

if ($cors = "truepost") {
    add_header 'Access-Control-Allow-Origin' "$http_origin" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
    add_header 'Access-Control-Expose-Headers' 'X-SITE-ID,X-IV' always;
}

if ($cors = "trueput") {
    add_header 'Access-Control-Allow-Origin' "$http_origin" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
}

if ($cors = "truedelete") {
    add_header 'Access-Control-Allow-Origin' "$http_origin" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
}

if ($cors = "trueoptions") {
    add_header 'Access-Control-Allow-Origin' "$http_origin" always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
    add_header 'Access-Control-Max-Age' 1728000 always;
    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
    add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since,X-SITE-ID,X-IV' always;
    add_header 'Access-Control-Expose-Headers' 'X-SITE-ID,X-IV' always;
    add_header 'Content-Length' 0 always;
    add_header 'Content-Type' 'text/plain charset=UTF-8' always;
    return 204;
}

参考资料

libsm RUST的SM相关函数库 https://github.com/citahub/libsm

PHP的SM4相关函数库 https://github.com/lizhichao/sm

Rust + WebAssembly : 使用 rust 開發 WebAssembly 與 node.js server 作 aes 加解密溝通 https://humanhighway.medium.com/rust-wasm-%E4%BD%BF%E7%94%A8-rust-%E9%96%8B%E7%99%BC-webassembly-%E8%88%87-node-js-server-%E4%BD%9C%E5%8A%A0%E8%A7%A3%E5%AF%86%E6%BA%9D%E9%80%9A-34b33e3952b9

How To Create and Use Private NPM Packages https://dev.to/rxmoein/how-to-create-and-use-private-npm-packages-5f5e

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago