0.1.6 • Published 2 years ago
@tiansn/sm3-wasm v0.1.6
编译环境安装方法
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