feat: 增加二维码前缀
diff --git a/dlsmk/src/lib.rs b/dlsmk/src/lib.rs
index c8b6cba..9a0c320 100644
--- a/dlsmk/src/lib.rs
+++ b/dlsmk/src/lib.rs
@@ -48,6 +48,8 @@
use dlqrcode::DaliQrCode;
+ static QR_PREFIX : &str = "DLSMK_";
+
fn put_data(env: &JNIEnv, map: &JMap, key: &str, value: &str) {
map.put(
*env.new_string(key).unwrap(),
@@ -105,6 +107,18 @@
}
};
+ if !qrcode.starts_with(QR_PREFIX) {
+ put_data(&env, &qrdata, "error", "qrcode prefix error");
+ return JNI_FALSE;
+ }
+ let qrcode = match qrcode.strip_prefix(QR_PREFIX) {
+ Some(q) => String::from(q),
+ None => {
+ put_data(&env, &qrdata, "error", "qrcode prefix error");
+ return JNI_FALSE;
+ }
+ };
+
debug!("TOTP step <{}> , skew <{}>", step, skew);
let decoder = match DaliQrCode::new(key, None, Some(step), Some(skew), None) {
Ok(d) => d,