I have used the X509 library with some success:
def run do
private_unencrypted_pem = File.read!("priv/flows/private_unencrypted.pem")
[private_key] = X509.from_pem(private_unencrypted_pem)
IO.inspect(private_key, label: "private_key")
m = %{
encrypted_aes_key:
"i/j13zUEy37M00eFJYchyIyk+HIlmLs8X6gmJLO9UfiljUmQCX1kYVPYfVRbS+5moWKtkIc0K/KG59CObmT8sMbhSXFEbnCKL7bbLka80NC5lqoill4LKrAtOaWJ/Zxbw7YjWS1+zinkIZZCbJ0OGZjH24XVgx3pVx5PYK53JDSYt6T6kUo1Kt15uc5M7zne1/T46c5YCw2BnSGDvXX+74W7T8xo+dTl6krOzFGuxNXFOYtG3coFK3Ad4eteMIhlsxpoRjFggfIWv9VuA7TT9AOQ9mdF2juN98Hu0hm3kSi5IHHGagTq+UwrspnMl76kw+GZXinjQNSI2ZV8yYYHxQ==",
encrypted_flow_data: "esYLI3l/ZREnkg3EDoipH/TeF8fL6goV1GELcV/Jv+WWVkB/5JcJ5NRoFzfnDZrTKA==",
initial_vector: "65SPDGDmgHlG4MiRzy5abQ=="
}
{:ok, cipherText} = Base.decode64(m.encrypted_aes_key)
:public_key.decrypt_private(cipherText, private_key)
end
I now get the following:
private_key: {:RSAPrivateKey, :"two-prime",
20521716780355580191550654660427168801033017999979128058505635221350308656209136095559482889939248891214276985696478264628555013673442179387450639676235923276763753945178489184101412002814944057148911035896122839963913153231089553623783047356337013294406425764168745177227849841528233456796700583848965253978778841370892407240172397435296874412542326417557014040885255496065392387262072486147756337139772431797705036236225154549695224561441211981922041229894695275663304593054518352707833166848660424321605184883485794491793623948711036778133900858257107938104282992179043651995979330716543636145006439954526445240763,
65537,
6101372529490646200350405207110844013124316885569881291789100848192788259551627581701581154316893734002322154909377588023366868203106960424866498528944824527331762906782471912846422827942218669660596785547644132882140589143655949347077416997089074935403042647890931836646240355252416633438877441388789355230952210159381055825921275221081940869473469830689864917813711227959475309631843238750002918360166052964140819289834990306960827834019082104583666169035743860983433438292667142785107052016117789083159263948861977159066001010422854460585806501949831365120461251443129509716016262603213687243268156580468396104873,
151190366275169636659156710850755871081855237513754653133885676881553005863138306361469825928422763931411709054490695520372670862263762193129823956501853620635206291633382027347117489353456935897153558861010747074354736527517171778666319726670165784090610050738948575379033685918723403262535625181590972124391,
135734288407011498129478129421886631648677888079098386018899059790453014073190770088624655395583559931425640561364135203441528615363819617475833915933485975414483867477768271128867544676095890623937965185083854342062520563606869218948617789616908888635193647838433353329362488409479692935739217245906616276493,
111084097790285920081964599247533404097433410085330638535527459499222429136546313195866381709651234094104652553394814695469503446293310299885366787516628096202548993007470762787713831077828682687943271225039130462552897954941588041661056006204461950280468363873565341740562278474119494543503905026839319616913,
40289288682448001481800174735553361390691227196891845876766458795850931271888857447457396911825182589163724092348086151525825963267656179238558328374110848524313817752491358748033329975191012104726570284655022636314482086818811158829477422851484331150654165302059050953142323985376328893280665777875420089821,
102567540933109511029738225524188193914715584345455927873497835038050930695268722174185678374967621653339377683257747663760985231626325445842500766475654732178732141643253908789737635412175714081538765312270435649325915057332637228855149308606011583122920805142192972378445966624673177556168108118988753484264,
:asn1_NOVALUE}
** (ErlangError) Erlang error: {:error, {~c"pkey.c", 1179}, ~c"Couldn't get the result"}
(crypto 5.4.2.1) crypto.erl:1607: :crypto.pkey_crypt(:rsa, <<139, 248, 245, 223, 53, 4, 203, 126, 204, 211, 71, 133, 37, 135, 33, 200, 140, 164, 248, 114, 37, 152, 187, 60, 95, 168, 38, 36, 179, 189, 81, 248, 165, 141, 73, 144, 9, 125, 100, 97, 83, 216, 125, 84, 91, 75, 238, 102, 161, 98, ...>>, [<<1, 0, 1>>, <<162, 144, 53, 31, 174, 226, 155, 127, 205, 227, 111, 224, 86, 190, 49, 167, 12, 2, 155, 192, 252, 33, 242, 162, 138, 61, 227, 59, 7, 48, 48, 20, 57, 0, 223, 186, 106, 138, 48, 116, 103, 75, 97, 158, 230, 71, 188, 103, ...>>, <<48, 85, 9, 198, 98, 187, 179, 25, 219, 127, 252, 122, 73, 176, 0, 153, 54, 227, 235, 165, 4, 17, 159, 207, 29, 164, 234, 211, 88, 254, 197, 188, 173, 122, 10, 10, 165, 180, 114, 85, 153, 132, 123, 0, 192, 92, 161, ...>>, <<215, 77, 94, 212, 206, 182, 111, 103, 65, 125, 200, 200, 28, 156, 156, 158, 211, 17, 140, 199, 66, 152, 42, 62, 176, 96, 177, 6, 205, 145, 161, 188, 29, 147, 72, 59, 180, 53, 91, 214, 148, 27, 207, 175, 10, 249, ...>>, <<193, 74, 195, 80, 188, 0, 232, 17, 152, 23, 243, 27, 74, 196, 70, 183, 8, 185, 130, 181, 190, 209, 161, 151, 220, 2, 222, 171, 94, 211, 211, 140, 248, 255, 100, 188, 191, 84, 120, 67, 246, 255, 134, 70, 135, ...>>, <<158, 48, 98, 180, 201, 12, 145, 221, 179, 232, 207, 84, 248, 112, 185, 66, 152, 162, 20, 101, 115, 48, 138, 25, 117, 78, 21, 195, 129, 214, 182, 150, 152, 196, 86, 22, 71, 217, 204, 152, 100, 73, 234, 214, ...>>, <<57, 95, 180, 187, 249, 34, 23, 192, 105, 49, 234, 178, 86, 46, 14, 131, 115, 238, 132, 178, 231, 210, 23, 178, 24, 215, 45, 59, 22, 233, 175, 104, 175, 220, 55, 13, 163, 137, 50, 45, 146, 90, 100, ...>>, <<146, 15, 159, 112, 112, 202, 238, 214, 204, 68, 134, 252, 132, 230, 56, 165, 213, 120, 240, 196, 0, 246, 98, 29, 202, 201, 7, 158, 79, 180, 183, 93, 110, 114, 198, 212, 240, 178, 71, 223, 222, 158, ...>>], [rsa_padding: :rsa_pkcs1_padding], true, false)
iex:10: (file)


















