| ... | @@ -3,7 +3,6 @@ use std::convert::TryInto; |
... | @@ -3,7 +3,6 @@ use std::convert::TryInto; |
|
|
use std::env;
|
|
use std::env;
|
|
|
use std::ffi::{
|
|
use std::ffi::{
|
|
|
CStr,
|
|
CStr,
|
|
|
OsStr,
|
|
|
|
|
};
|
|
};
|
|
|
use std::io::{
|
|
use std::io::{
|
|
|
Read,
|
|
Read,
|
| ... | @@ -19,6 +18,9 @@ use std::time::{ |
... | @@ -19,6 +18,9 @@ use std::time::{ |
|
|
UNIX_EPOCH,
|
|
UNIX_EPOCH,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
#[allow(unused_imports)]
|
|
|
|
use anyhow::Context;
|
|
|
|
|
|
|
use libc::{
|
|
use libc::{
|
|
|
c_char,
|
|
c_char,
|
|
|
c_uint,
|
|
c_uint,
|
| ... | @@ -284,16 +286,23 @@ ffi!(fn pgp_init_(session: *mut Session, _in_first: bool, |
... | @@ -284,16 +286,23 @@ ffi!(fn pgp_init_(session: *mut Session, _in_first: bool, |
|
|
|
|
|
|
|
#[cfg(not(windows))]
|
|
#[cfg(not(windows))]
|
|
|
let per_user_directory = {
|
|
let per_user_directory = {
|
|
|
|
use std::ffi::OsStr;
|
|
|
use std::os::unix::ffi::OsStrExt;
|
|
use std::os::unix::ffi::OsStrExt;
|
|
|
OsStr::from_bytes(per_user_directory.to_bytes())
|
|
OsStr::from_bytes(per_user_directory.to_bytes())
|
|
|
};
|
|
};
|
|
|
#[cfg(windows)]
|
|
#[cfg(windows)]
|
|
|
let per_user_directory = {
|
|
let per_user_directory = {
|
|
|
use std::ffi::OsString;
|
|
// The engine guarantees that it is UTF-8 encoded.
|
|
|
use std::os::windows::prelude::*;
|
|
//
|
|
|
|
|
// https://gitea.pep.foundation/pEp.foundation/pEpEngine/src/commit/2f0927554ac1b7ca10e27b19650b5158d97dfc3f/src/platform_windows.cpp#L177
|
|
|
let os_string = OsString::from_wide(per_user_directory.as_bytes());
|
|
match per_user_directory.to_str() {
|
|
|
os_string.as_os_str()
|
|
Ok(s) => s,
|
|
|
|
Err(err) =>
|
|
|
|
return Err(Error::IllegalValue(
|
|
|
|
format!("\
|
|
|
|
API violation: per_user_directory not UTF-8 encoded ({:?}: {})",
|
|
|
|
per_user_directory, err))),
|
|
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
let ks = keystore::Keystore::init(Path::new(per_user_directory))?;
|
|
let ks = keystore::Keystore::init(Path::new(per_user_directory))?;
|
| ... | | ... | |