Skip to content

Commit

Permalink
samples
Browse files Browse the repository at this point in the history
  • Loading branch information
kennykerr committed Apr 30, 2024
1 parent be13308 commit e386c51
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 28 deletions.
10 changes: 5 additions & 5 deletions crates/samples/windows/kernel_event/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
use windows::{
Win32::Foundation::CloseHandle,
core::Owned,
Win32::System::Threading::{CreateEventW, SetEvent, WaitForSingleObject},
};

fn main() -> windows::core::Result<()> {
unsafe {
let event = CreateEventW(None, true, false, None)?;
SetEvent(event)?;
WaitForSingleObject(event, 0);
CloseHandle(event)
let event = Owned::new(CreateEventW(None, true, false, None)?);
SetEvent(*event)?;
WaitForSingleObject(*event, 0);
}
Ok(())
}
10 changes: 4 additions & 6 deletions crates/samples/windows/overlapped/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ fn main() -> Result<()> {

let mut string = filename.as_path().to_str().unwrap().to_owned();
string.push('\0');
let file = CreateFileA(
let file = Owned::new(CreateFileA(
PCSTR(string.as_ptr()),
// See: https://github.com/microsoft/win32metadata/issues/1457
FILE_GENERIC_READ.0,
Expand All @@ -19,7 +19,7 @@ fn main() -> Result<()> {
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
None,
)?;
)?);

let mut overlapped = OVERLAPPED {
Anonymous: OVERLAPPED_0 {
Expand All @@ -35,18 +35,16 @@ fn main() -> Result<()> {

let mut buffer: [u8; 12] = Default::default();

if let Err(error) = ReadFile(file, Some(&mut buffer), None, Some(&mut overlapped)) {
if let Err(error) = ReadFile(*file, Some(&mut buffer), None, Some(&mut overlapped)) {
assert_eq!(error.code(), ERROR_IO_PENDING.into());
}

WaitForSingleObject(overlapped.hEvent, 2000);

let mut bytes_copied = 0;
GetOverlappedResult(file, &overlapped, &mut bytes_copied, false)?;
GetOverlappedResult(*file, &overlapped, &mut bytes_copied, false)?;
assert!(bytes_copied == 12);

CloseHandle(file)?;

println!("{}", String::from_utf8_lossy(&buffer));
}

Expand Down
3 changes: 1 addition & 2 deletions crates/samples/windows/privileges/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ fn main() -> Result<()> {
let mut bytes_required = 0;
_ = GetTokenInformation(token, TokenPrivileges, None, 0, &mut bytes_required);

let buffer = LocalAlloc(LPTR, bytes_required as usize)?;
let buffer = Owned::new(LocalAlloc(LPTR, bytes_required as usize)?);

GetTokenInformation(
token,
Expand All @@ -37,7 +37,6 @@ fn main() -> Result<()> {
println!("{}", name.display())
}

LocalFree(buffer);
Ok(())
}
}
31 changes: 16 additions & 15 deletions crates/tests/bcrypt/tests/win.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ use windows::{core::*, Win32::Security::Cryptography::*};
#[test]
fn test() -> Result<()> {
unsafe {
let mut rng = Default::default();
BCryptOpenAlgorithmProvider(&mut rng, BCRYPT_RNG_ALGORITHM, None, Default::default())
let mut rng = Owned::default();
BCryptOpenAlgorithmProvider(&mut *rng, BCRYPT_RNG_ALGORITHM, None, Default::default())
.ok()?;

let mut des = Default::default();
BCryptOpenAlgorithmProvider(&mut des, BCRYPT_3DES_ALGORITHM, None, Default::default())
let mut des = Owned::default();
BCryptOpenAlgorithmProvider(&mut *des, BCRYPT_3DES_ALGORITHM, None, Default::default())
.ok()?;

let mut object_len = [0; 4];
let mut bytes_copied = 0;
BCryptGetProperty(
des,
*des,
BCRYPT_OBJECT_LENGTH,
Some(&mut object_len),
&mut bytes_copied,
Expand All @@ -24,14 +24,14 @@ fn test() -> Result<()> {
let object_len = u32::from_le_bytes(object_len);

let mut shared_secret = vec![0; object_len as usize];
BCryptGenRandom(rng, &mut shared_secret, Default::default()).ok()?;
BCryptGenRandom(*rng, &mut shared_secret, Default::default()).ok()?;

let mut encrypt_key = Default::default();
BCryptGenerateSymmetricKey(des, &mut encrypt_key, None, &shared_secret, 0).ok()?;
let mut encrypt_key = Owned::default();
BCryptGenerateSymmetricKey(*des, &mut *encrypt_key, None, &shared_secret, 0).ok()?;

let mut block_len = [0; 4];
BCryptGetProperty(
des,
*des,
BCRYPT_BLOCK_LENGTH,
Some(&mut block_len),
&mut bytes_copied,
Expand All @@ -47,7 +47,7 @@ fn test() -> Result<()> {

let mut encrypted_len = 0;
BCryptEncrypt(
encrypt_key,
*encrypt_key,
Some(&send_buffer),
None,
None,
Expand All @@ -59,7 +59,7 @@ fn test() -> Result<()> {

let mut encrypted = vec![0; encrypted_len as usize];
BCryptEncrypt(
encrypt_key,
*encrypt_key,
Some(&send_buffer),
None,
None,
Expand All @@ -69,12 +69,12 @@ fn test() -> Result<()> {
)
.ok()?;

let mut decrypt_key = Default::default();
BCryptGenerateSymmetricKey(des, &mut decrypt_key, None, &shared_secret, 0).ok()?;
let mut decrypt_key = Owned::default();
BCryptGenerateSymmetricKey(*des, &mut *decrypt_key, None, &shared_secret, 0).ok()?;

let mut decrypted_len = 0;
BCryptDecrypt(
decrypt_key,
*decrypt_key,
Some(&encrypted),
None,
None,
Expand All @@ -86,7 +86,7 @@ fn test() -> Result<()> {

let mut decrypted = vec![0; decrypted_len as usize];
BCryptDecrypt(
decrypt_key,
*decrypt_key,
Some(&encrypted),
None,
None,
Expand All @@ -100,6 +100,7 @@ fn test() -> Result<()> {
std::str::from_utf8(trim_null_end(&decrypted)).expect("Not a valid message");
assert_eq!(send_message, receive_message);
}

Ok(())
}

Expand Down

0 comments on commit e386c51

Please sign in to comment.