Skip to content

spruceid/r2d2-cryptoki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

r2d2 adaptor for cryptoki

Crates.io Documentation

Session pool manager for cryptoki.

Cryptoki has a single login state for all sessions. Only when all sessions are closed, a login is needed again. This library requires a ConnectionCustomizer on the pool to ensure login is only done when needed. The SessionAuth can be converted into the appropriate ConnectionCustomizer.

Example

use r2d2_cryptoki::{*, cryptoki::{context::*, types::AuthPin}};

let pkcs11 = Pkcs11::new("libsofthsm2.so").unwrap();
pkcs11.initialize(CInitializeArgs::OsThreads).unwrap();
let slots = pkcs11.get_slots_with_token().unwrap();
let slot = slots.first().unwrap();
let session_auth = SessionAuth::RwUser(AuthPin::new("fedcba".to_string()));
let manager = SessionManager::new(pkcs11, *slot, &session_auth);

let pool_builder = Pool::builder().connection_customizer(session_auth.into_customizer());
let pool = pool_builder.build(manager).unwrap();

let session = pool.get().unwrap();
println!("{:?}", session.get_session_info().unwrap());

About

r2d2 adaptor for cryptoki

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages