laps-rs 0.1.2

Library for the retrieval of LAPS passwords
Documentation
# laps-rs


THIS CRATE IS WINDOWS ONLY!

Library for the retrieval of [LAPS](https://learn.microsoft.com/en-us/windows-server/identity/laps/laps-overview) passwords

Central for that are the two structs [`AdConnection`] and [`AdConnectionAsync`] which hold a connection to the Active Directory and implement `try_search()`

## Usage

In `Cargo.toml`:

```toml
[dependencies.laps_rs]
version = "0.1.0"
```

## Example

Both examples perform a search for `"computername"`

### Synchronous search

```rust
use laps_rs::{AdSettings, AdConnection, LdapProtocol, Scope};

let settings = AdSettings::new(
   "dc.test.internal",
   636,
   LdapProtocol::Secure,
   "OU=path,OU=to,OU=computers,DC=test,DC=internal",
   Scope::Subtree,
);
let mut con: AdConnection = settings.connect()?;
let password = con.try_search("computername", &settings)?;
println!("{password:?}");
```

See also [`AdConnection::try_search()`]

### Asynchronous search

```rust
use laps_rs::{AdSettings, AdConnectionAsync, LdapProtocol, Scope};

let settings = AdSettings::new(
   "dc.test.internal",
   636,
   LdapProtocol::Secure,
   "OU=path,OU=to,OU=computers,DC=test,DC=internal",
   Scope::Subtree,
);
let mut con: AdConnectionAsync = settings
   .connect_async()
   .await?;
let password = con
   .try_search("computername", &settings)
   .await?;
println!("{password:?}");
```

See also [`AdConnectionAsync::try_search()`]

## Quirks

Since it can be the case that both encrypted and unencrypted LAPS data exists for the same
computer [`process_ldap_search_result()`] will prefer the encrypted information in case of
an identical password expiration.

In any other case the password with the longer expiration will be returned.

## Current Version


0.1.2