mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-01 05:51:32 +01:00
Up all the dependencies! Notably: - russh to the latest main now that tunnel changes are merged - secret-service-rs to 3.x and dropping our custom fork - which also fixes SDL pings Fixes https://github.com/microsoft/vscode-internalbacklog/issues/4328 Fixes https://github.com/microsoft/vscode-internalbacklog/issues/4077
43 lines
1.4 KiB
Rust
43 lines
1.4 KiB
Rust
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
#[cfg(not(feature = "vsda"))]
|
|
pub fn create_challenge() -> String {
|
|
use rand::distributions::{Alphanumeric, DistString};
|
|
Alphanumeric.sample_string(&mut rand::thread_rng(), 16)
|
|
}
|
|
|
|
#[cfg(not(feature = "vsda"))]
|
|
pub fn sign_challenge(challenge: &str) -> String {
|
|
use base64::{engine::general_purpose as b64, Engine as _};
|
|
use sha2::{Digest, Sha256};
|
|
let mut hash = Sha256::new();
|
|
hash.update(challenge.as_bytes());
|
|
let result = hash.finalize();
|
|
b64::URL_SAFE_NO_PAD.encode(result)
|
|
}
|
|
|
|
#[cfg(not(feature = "vsda"))]
|
|
pub fn verify_challenge(challenge: &str, response: &str) -> bool {
|
|
sign_challenge(challenge) == response
|
|
}
|
|
|
|
#[cfg(feature = "vsda")]
|
|
pub fn create_challenge() -> String {
|
|
use rand::distributions::{Alphanumeric, DistString};
|
|
let str = Alphanumeric.sample_string(&mut rand::thread_rng(), 16);
|
|
vsda::create_new_message(&str)
|
|
}
|
|
|
|
#[cfg(feature = "vsda")]
|
|
pub fn sign_challenge(challenge: &str) -> String {
|
|
vsda::sign(challenge)
|
|
}
|
|
|
|
#[cfg(feature = "vsda")]
|
|
pub fn verify_challenge(challenge: &str, response: &str) -> bool {
|
|
vsda::validate(challenge, response)
|
|
}
|