From a877e6f16285a0146c63ec91e20c5e884245d7f9 Mon Sep 17 00:00:00 2001 From: FreddleSpl0it Date: Fri, 3 Mar 2023 10:34:53 +0100 Subject: [PATCH] Use pure perl code for xoauth2 authmech --- imapsync | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/imapsync b/imapsync index e842961..e3f3363 100755 --- a/imapsync +++ b/imapsync @@ -8902,6 +8902,7 @@ sub xoauth2 require HTML::Entities ; require JSON ; require JSON::WebToken::Crypt::RSA ; + require Crypt::OpenSSL::PKCS12 ; require Crypt::OpenSSL::RSA ; require Encode::Byte ; require IO::Socket::SSL ; @@ -8942,8 +8943,9 @@ sub xoauth2 $sync->{ debug } and myprint( "Service account: $iss\nKey file: $keyfile\nKey password: $keypass\n"); - # Get private key from p12 file (would be better in perl...) - $key = `openssl pkcs12 -in "$keyfile" -nodes -nocerts -passin pass:$keypass -nomacver`; + # Get private key from p12 file + my $pkcs12 = Crypt::OpenSSL::PKCS12->new_from_file($keyfile); + $key = $pkcs12->private_key($keypass); $sync->{ debug } and myprint( "Private key:\n$key\n"); }