RPM build fix (reverted CI changes which will need to be un-reverted or made conditional) and vendor Rust dependencies to make builds much faster in any CI system.
This commit is contained in:
24
zeroidc/vendor/security-framework/examples/client.rs
vendored
Normal file
24
zeroidc/vendor/security-framework/examples/client.rs
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
use security_framework::secure_transport::ClientBuilder;
|
||||
use std::io::{Read, Write};
|
||||
use std::net::TcpStream;
|
||||
|
||||
fn main() {
|
||||
let stream = TcpStream::connect("google.com:443").unwrap();
|
||||
let mut stream = ClientBuilder::new()
|
||||
.handshake("google.com", stream)
|
||||
.unwrap();
|
||||
println!(
|
||||
"negotiated chipher: {:?}",
|
||||
stream.context().negotiated_cipher().unwrap()
|
||||
);
|
||||
println!(
|
||||
"negotiated version: {:?}",
|
||||
stream.context().negotiated_protocol_version().unwrap()
|
||||
);
|
||||
|
||||
stream.write_all(b"GET / HTTP/1.0\r\n\r\n").unwrap();
|
||||
stream.flush().unwrap();
|
||||
let mut buf = vec![];
|
||||
stream.read_to_end(&mut buf).unwrap();
|
||||
println!("{}", String::from_utf8_lossy(&buf));
|
||||
}
|
||||
36
zeroidc/vendor/security-framework/examples/find_internet_password.rs
vendored
Normal file
36
zeroidc/vendor/security-framework/examples/find_internet_password.rs
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
#[cfg(target_os = "macos")]
|
||||
use security_framework::os::macos::keychain::SecKeychain;
|
||||
#[cfg(target_os = "macos")]
|
||||
use security_framework::os::macos::passwords::{SecAuthenticationType, SecProtocolType};
|
||||
|
||||
fn main() {
|
||||
#[cfg(target_os = "macos")] {
|
||||
let hostname = "example.com";
|
||||
let username = "rusty";
|
||||
let res = SecKeychain::default().unwrap().find_internet_password(
|
||||
hostname,
|
||||
None,
|
||||
username,
|
||||
"",
|
||||
None,
|
||||
SecProtocolType::Any,
|
||||
SecAuthenticationType::Any,
|
||||
);
|
||||
match res {
|
||||
Ok((password, _)) => {
|
||||
println!(
|
||||
"Password for {}@{} is {} bytes long",
|
||||
username,
|
||||
hostname,
|
||||
password.len()
|
||||
);
|
||||
}
|
||||
Err(err) if err.code() == -128 => {
|
||||
eprintln!("Account was found in the Keychain, but user denied access");
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Password not found. Open Keychain Access.app and add internet password for '{}' at 'https://{}': {:?}",
|
||||
username, hostname, err);
|
||||
}
|
||||
}
|
||||
}}
|
||||
33
zeroidc/vendor/security-framework/examples/set_internet_password.rs
vendored
Normal file
33
zeroidc/vendor/security-framework/examples/set_internet_password.rs
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
#[cfg(target_os = "macos")]
|
||||
use security_framework::os::macos::keychain::SecKeychain;
|
||||
#[cfg(target_os = "macos")]
|
||||
use security_framework::os::macos::passwords::{SecAuthenticationType, SecProtocolType};
|
||||
|
||||
fn main() {
|
||||
#[cfg(target_os = "macos")] {
|
||||
let hostname = "example.com";
|
||||
let username = "rusty";
|
||||
let password = b"oxidize";
|
||||
|
||||
let res = SecKeychain::default().unwrap().set_internet_password(
|
||||
hostname,
|
||||
None,
|
||||
username,
|
||||
"",
|
||||
None,
|
||||
SecProtocolType::HTTPS,
|
||||
SecAuthenticationType::HTMLForm,
|
||||
password,
|
||||
);
|
||||
match res {
|
||||
Ok(_) => {
|
||||
println!(
|
||||
"Password set for {}@{}. You can read it using find_internet_password example",
|
||||
username, hostname
|
||||
);
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Could not set password: {:?}", err);
|
||||
}
|
||||
}
|
||||
}}
|
||||
Reference in New Issue
Block a user