pub struct LdapClient { /* private fields */ }Expand description
LDAP client for directory operations.
Encodes requests and decodes responses using ASN.1/BER. Does not manage network transport directly; callers provide a send/receive mechanism.
Implementations§
Source§impl LdapClient
impl LdapClient
Sourcepub fn encode_bind_request(&mut self, dn: &str, password: &str) -> Vec<u8>
pub fn encode_bind_request(&mut self, dn: &str, password: &str) -> Vec<u8>
Encode a simple bind request (DN + password).
Returns the BER-encoded LDAPMessage bytes.
Sourcepub fn parse_bind_response(
&mut self,
data: &[u8],
) -> Result<LdapResultCode, KernelError>
pub fn parse_bind_response( &mut self, data: &[u8], ) -> Result<LdapResultCode, KernelError>
Parse a bind response. Returns the result code.
Sourcepub fn bind(&mut self, dn: &str, password: &str) -> (Vec<u8>, LdapResultCode)
pub fn bind(&mut self, dn: &str, password: &str) -> (Vec<u8>, LdapResultCode)
Convenience: encode bind, parse response, return result.
Sourcepub fn encode_search_request(
&mut self,
base_dn: &str,
scope: SearchScope,
filter: &LdapFilter,
attributes: &[&str],
) -> Vec<u8>
pub fn encode_search_request( &mut self, base_dn: &str, scope: SearchScope, filter: &LdapFilter, attributes: &[&str], ) -> Vec<u8>
Encode a search request.
Returns BER-encoded LDAPMessage bytes.
Sourcepub fn decode_search_result(
&self,
data: &[u8],
) -> Result<SearchResult, KernelError>
pub fn decode_search_result( &self, data: &[u8], ) -> Result<SearchResult, KernelError>
Parse search result entries from a response buffer.
A search operation may return multiple SearchResultEntry messages followed by a SearchResultDone. This parses a single message.
Sourcepub fn search(
&mut self,
scope: SearchScope,
filter: &LdapFilter,
attributes: &[&str],
) -> Vec<u8>
pub fn search( &mut self, scope: SearchScope, filter: &LdapFilter, attributes: &[&str], ) -> Vec<u8>
Convenience: build a search request with the client’s base DN.
Sourcepub fn encode_compare_request(
&mut self,
dn: &str,
attribute: &str,
value: &str,
) -> Vec<u8>
pub fn encode_compare_request( &mut self, dn: &str, attribute: &str, value: &str, ) -> Vec<u8>
Encode a compare request.
Sourcepub fn encode_modify_request(
&mut self,
dn: &str,
modifications: &[(ModifyOperation, &str, &[&str])],
) -> Vec<u8>
pub fn encode_modify_request( &mut self, dn: &str, modifications: &[(ModifyOperation, &str, &[&str])], ) -> Vec<u8>
Encode a modify request.
modifications is a list of (operation, attribute, values) tuples.
Sourcepub fn encode_add_request(
&mut self,
dn: &str,
attributes: &[(&str, &[&str])],
) -> Vec<u8>
pub fn encode_add_request( &mut self, dn: &str, attributes: &[(&str, &[&str])], ) -> Vec<u8>
Encode an add request.
attributes is a list of (attribute_name, values).
Sourcepub fn encode_delete_request(&mut self, dn: &str) -> Vec<u8>
pub fn encode_delete_request(&mut self, dn: &str) -> Vec<u8>
Encode a delete request.
Sourcepub fn encode_unbind_request(&mut self) -> Vec<u8>
pub fn encode_unbind_request(&mut self) -> Vec<u8>
Encode an unbind request.