@@ -3,67 +3,67 @@ Code.require_file("../test_helper.exs", __DIR__)
33defmodule Mix.LocalTest do
44 use MixTest.Case
55
6- # openssl rsa -in elixirest .pem -pubout > elixirest .pub
6+ # openssl rsa -in elixirtest .pem -pubout > elixirtest .pub
77 @ public_key """
88 -----BEGIN PUBLIC KEY-----
9- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA37moKP1dGGLhsP3d8Fwv
10- W25SoYZUY2K+Iq7A0OBV36Rnb8yW3BWjfh5YtmPvUCfYUbNCW2HTMMgBntkQ4YmN
11- B9tHVZazl2uX9lGCfZZPFc/9umvKRojCPkMN81MfTxqnY0oaLHr6DB86RsWHB+ld
12- 782Xf+nd9q3LFdUl8SGlKX7uzfVWd4EWYNcL7aLeLSupZWeNg8uVmY3zua0EgIlQ
13- XryalIOZb/R+pwprWZoftCl+20FGYi/mJpo/idFtXsR0sJKF4X0W3NORT9RIRbs9
14- WdjiFi+eIP7Nm8KSF4pbaXCqSmVf9cgvUuGTxc9/P5GcIPAlkcsSrE5peLyUCk5f
15- 2QIDAQAB
9+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkIaIn8uhwSVp9d+aV+GL
10+ tFjMt0TylxDu6x5jwjDvXCD3Of6VAriqcdXDJAqGPN1C4HNTxfihYpLZB+qXCNQM
11+ oEa/I1h6OB5CXb8zIOl2Yriforr9LS+EkP+1xVmz7w7lNAagD0rJyJrTDbYDV+2Y
12+ EnRq84FpZc/+7z6ojc3RMh9x/5t9jDE4Ft3NCujCmGsy2AcBlMpAQkcNveyplNmu
13+ fZH2vId8h8t6rABwEZgSazHObkcHwE3bndynFO7zXvBu6ebNUDuU3DrDJ1Iepy9I
14+ jEuZ6h13j7hL5l+j+9bGRQtasWgwvCkCGD+/2Lz4Ehox58voDCzAK09rsCwQ6gAT
15+ CQIDAQAB
1616 -----END PUBLIC KEY-----
1717 """
1818
19- # openssl genrsa -aes256 -out elixirtest.pem -passout stdin 2048
19+ # openssl genrsa -aes256 -out elixirtest.pem -passout pass:secret12 2048
2020 @ private_key """
21- -----BEGIN RSA PRIVATE KEY-----
22- Proc-Type: 4,ENCRYPTED
23- DEK-Info: AES-256-CBC,48BA5153DA2F120ECE063B33C1204A49
24-
25- 5gp3daNWujH7o9S/dJQEt9TYTRP0pPZtU55PlZrzWt52optr7XHW/ENOm84g5J70
26- QCPELp12jfQsNiPwbVWXKy2zD3QlNiAelf65hqLWJTWli7XIXfdP46VXOu67OKf9
27- Ziw4HQ+AdBEwFt20wJst77iy17sNlyxp5DhNDonnSizzIowgUAJkoNI5aBUU6D8X
28- KTSIftZW35Z4SudkazdoHepEfItZTI8mB4rvfn71Q4oOBA1rAuUUmdPWoPBfUHDa
29- hvIp2T2Q8zZYqm0+SjDxZUYOOreE7fuf5NSLhHHt7+jyWQmtaVxnOWms72G+9xT0
30- NGmOEB0WEg1kBsUbYOXXwyCAZhNA6MaKCtgjQczRTK+geS1xNaFc9FDEk3ZjN4Z8
31- PxrKQoqo+2aQGVcatZWCom80Dci3bIv7iZNA/y1rjfBn+MeitMOGscP7/CBrJAbI
32- bh1mvCu0McSnqlN0a+EuCVfJQYFMzjibpRVzKAST0QeaxXd5QxHfcPFPBLOpiVWc
33- NjHaZsHORyoJbUKGA4rgOiSB63mv7SDRA2mvxWpwV/+6MuwBah6t6CGoEsAr1Hbn
34- 1ySt5w27bw3QEf2KTiuxDubo8UrF0eYzP5A9MH8vRpSRZHg8T3SBVfPJ/pM16Lnn
35- 5BaMUdxDFJeet5HUYoke9Zm3udh2BvwGiKhzc9Pbw/EcsCcvChMimRTasqTaRf+S
36- uIm0Un7o+7kTuvBo2y87j2urCEUzft5QqEynbkR7p3vZnwoLLj+supXh3V8ivW4s
37- Z6ql+ukRcWd/ode+lbSiYfAJCLc1tCqJ3kTnMnADJBlL0TX7YnwBwWuwwPuZgeAv
38- F6nnBE1SBQ1WK+bjSVzIqmNFqsZw34wgpnz2heX0q8msF5pzd6EIeA+uz86k8XYh
39- 4eVZYGXxa4Exodh/MqEpRuN1ytWDXvHULh0gml7xwZC3R50UD8uBNt5RGjXUkjXc
40- V0atKuvgzVlsB4xbDhVP7EVYHBF02NfNOsvo7kh0Yl1IcT/42UaCGYuU1o9zotPv
41- 9b3SHz/HOmBVj2uCdR5XZ4EolP5Iv9vqIDt9DsuDpOyO+AFOww0FnJNCQ1Hmfb0T
42- qBYPv994oSPYLCGR4a8i/xfmmV8KbAIVEgK3AMbz8RxKr3WBWXWnzQdr4+y4EG24
43- hSnR52XQ42edv/fkqf9ez+fKNQ9i7PtlPE96Q21NeLMNKHh43X8hJFDh+oPz3Aio
44- YSNMCZnoyRdrjBRCsVBpnyoLmuhWwG9RlcrEj3G0BxYPh/weaBOAKAHjSr28yuUj
45- yIa8uddszC6XHSiVUgu7SGO8gQmq++eNdckjX/pEug5MjcWLUqaUg6+YLFWY6NLf
46- uDPOYuivq7ErtKTvP2xl3TBEDKhdfqxA2+RFxbBDmKjffZnRkcknQsxhlzAdbg22
47- Jwa2B1nrfjJpX5F+1Av2jHQGbIKMqZzv8fo1binMKpptFzokbWEOjcPCb3tPuomG
48- ZRkW3qO2pdyYX2N7VXYG9tGi2HrN/oFrWnHPoYF23v85V8WxNkODOCpTz85e6R5v
49- PVu+FCNFj5weEOTRhtEQyJo7mU5qIRwYeZvVxiC6W+XeFs95wdBE/Lvpg8yZ8D9d
50- -----END RSA PRIVATE KEY-----
21+ -----BEGIN ENCRYPTED PRIVATE KEY-----
22+ MIIFNTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQjNQQlREZJuQveXPa
23+ 0ACpEwICCAAwDAYIKoZIhvcNAgkFADAdBglghkgBZQMEASoEEFoBWTpEyO8y6xdG
24+ fuud2AIEggTQDQRXrxBpj1yIbnLcP7i43Gat2tEM+XXkvqbzwL+CdjfEzaqiBGwc
25+ FEyWnJj5hENWtNq/AAwzcEALa3QdLJ2W+tX/hc5r1vILpy2oW0vPKfv4yadNyPWq
26+ UzolKKU3MbREP4KXsuAVYepolRWAcWSZKozYBm9HUPwsSyM6E9K0aWmNr/YBbZPE
27+ UEA949Pq6buQvwT2Gj/6FQlutEvJMuY8woM2I/RKSVHeSoB8FWJGSNd7ZY2DN7DG
28+ o6kmhK0OVjxx0SYQwUm++4gh3yFRX6vnTf8ZADOwCOJE/hjMfqivNelJHGojYAD2
29+ 0c3zdo0HGvVghg2bzUxhc0HJqUFiUDNW1W3AVBrUJiQgHQb/ENYaMrd6klrslHDV
30+ cnPkz+dZAq/WC3KFqufkSmHxU97dDs9G6hKdm80JVEdPG4aMJvHzVL6SvS+g/e7r
31+ IJGZCFGch9SbikmESKegIfyLJYQrfjuLdXWPHx9J+LAmtRTA1xPwLH/aqCr9ahBB
32+ JCl4RaezF0BH2GYLAV+Ailpy2jqsC3v9RW8vpQmU227H8ERFu9ZcWhZITbRhbjRB
33+ oh3ERnOmvU3VWIXQ0j1cm9Qjl52y8HZJxef2dYsW8nmTSRj32gi9UnEsyOFL9FB7
34+ KcFDq6o+go4nIfsmaAEOF1Hh01JZkbuX1SgmHvGRbNksTuljP/XZn7Wzz7fTcVZR
35+ NsTgMbBl1+ctDHUBT7YzsHeEx8tZvLPDP8lO23aEnmRb6bHD4hVorUEM/kOpSm6g
36+ DNP0buYGEAu4rZrp+5s46Y/RVAIhU4+663jqzmbmwOwEcuOJJCJn8eUGVweAgWX3
37+ 1PQTfpkk7RLxxuLeMHxEIynxyZNpSgfX0VGKe5UtplwcTQL8VgeZHayDxnhFwtSm
38+ lBfPIM/i4kj7RonuehyPjuBA6n1CyqRVqc49c/3kVMgovqvbUQxQ7TtSfzfkhVyV
39+ yRnRxcek+6Gctoahas5DPQl7y8jnwgg5qvUjYo6GIwBoxLUzIw+0MBn7gdMYHNmh
40+ Xd9XZpRilAMJF5ynr2QyaE95XaQ3yK62FPgmIDdzfnN7es169O4SiXsgUyaSWsx9
41+ VxOHP4r0j6epWLH4W11MQEj4Bb8wG//pCD5Kz2xvwhWaKjkqzuqGDaXSOTKV0FQM
42+ NG5GbNNELNCy/ocvlsaC+acWcOfsx4f6yovCGVTpTr+wjbDqd1kEBoRTuyTPY+6P
43+ 0OU1Vf2GpMA2NDw0ZUOAllGVLrgD+326bu7ipePgiT8SiPNNsagMJNCSk5d3C4+K
44+ bc0hakF/MIjPs3a+5/2mwtxk3QYYCIHITN8SIj+kFd7WMXALyClgWt3tcKwLTgMa
45+ BSatAvwsoi2kiBu2A49msvka7YD8fENhtUl8vU12ZZdTih1chyPDifgfRgOfkZFW
46+ a1XiLKjnWqeBqvJ3hBKuXweN6P7nvZidBYSESl3yrM00pA97Eta2in7ok80MRYH3
47+ bsqzC636h43Mu8PbTKGpK66j1ts6uY9YONAGfGCcfj/wyBWuqNViv7vK38th8wj8
48+ AG4rKyIlKxbFwo4Oh3jZTbfVF1Azl8pr0rK2P3W/EhfvWIrZVfB4Upy0wL6MjysE
49+ RZ/57N2wFq4KBb9x9hCMFxignWmgyzPK+1J0iPRkSmpn9P/SzywDBIg=
50+ -----END ENCRYPTED PRIVATE KEY-----
5151 """
5252
5353 @ csv """
54- 1.2.5,ABC,0.9.0
55- 1.2.3,DEF,1.0.0
56- 1.2.4,GHI,1.0.0
54+ 1.2.5,ABC,0.9.0,26
55+ 1.2.3,DEF,1.0.0,26
56+ 1.2.4,GHI,1.0.0,26
5757 """
5858
5959 # openssl dgst -sha512 -sign elixirtest.pem hex-1.x.csv | openssl base64 > elixirtest.csv.signed
6060 @ csv_signed """
61- VRydmXOdEXQcKJu/SK/nKnE00T+s/T4mpXrYROMSXhD/s8ClvdimnGg61ie3YBS6
62- LXOjlEhbtMHRM2rTOUvv4z7FcyzwvSxSjunlVi2g3c1pVOZ78MonnYhGb44tZw/q
63- SOVmV+jJhc9EZFMIAAM3plMoyssyw2pMh7ZB/DxCQTIem3Qf0Ujzc2bYkLVlw7R+
64- 1Rn6dcYEgCzyldVkAUMaYBwieyweWALA+YVDCMudJJK2J7p1OnuoPSVV+N3OkB/Z
65- T6Jj5ljD+54XnuxAMcgCoF9lpOwXscnw/Ma+8JqIoWo0jNFE3ji+8dGCUzQUdSe8
66- llLXgJJE2tGpDhEXBA3idg ==
61+ by/3VaN+DEeF9gwEy0Z3tO4wIHrtiH7m04HKvinWBSGa6jBceha6XZ/aHWPrvLoi
62+ 57U4tRHF/MjqipWuVYbhbUyXX+xpLMJP8XQq6JtN9gRdsHC1CdhOn5sA9V6iLHN0
63+ cdVarW0S8f2BnblEDEqZoB2xh5MefB27bdBiGRyz6A1nS8FNgW9t/6olYKXyJhUd
64+ FUC1JW2a82zQQCYM002BFKP4an4ycfhvOGcAU0cI2wXHioU/fE7kO7JBcmC1ac2u
65+ wTPfMaAZTD01HPyhgcThPDNAxEqOh0MbJcioskP+dt1Yz66BArlRVeDZJY7Mw9kS
66+ ur8isg6GlfiFa35j+khY9A ==
6767 """
6868
6969 # We don't actually use it but it exists for documentation purposes.
@@ -83,7 +83,7 @@ defmodule Mix.LocalTest do
8383 File . write! ( "csv" , @ csv )
8484 File . write! ( "csv.signed" , @ csv_signed )
8585
86- assert { "1.0.0" , "1.2.4" , "GHI" } =
86+ assert { "1.0.0" , "1.2.4" , "GHI" , "26" } =
8787 Mix.Local . find_matching_versions_from_signed_csv! ( "name" , nil , "csv" )
8888 end )
8989 end
@@ -94,10 +94,10 @@ defmodule Mix.LocalTest do
9494 File . write! ( "csv" , @ csv )
9595 File . write! ( "csv.signed" , @ csv_signed )
9696
97- assert { "0.9.0" , "1.2.5" , "ABC" } =
97+ assert { "0.9.0" , "1.2.5" , "ABC" , "26" } =
9898 Mix.Local . find_matching_versions_from_signed_csv! ( "name" , "1.2.5" , "csv" )
9999
100- assert { "1.0.0" , "1.2.3" , "DEF" } =
100+ assert { "1.0.0" , "1.2.3" , "DEF" , "26" } =
101101 Mix.Local . find_matching_versions_from_signed_csv! ( "name" , "1.2.3" , "csv" )
102102
103103 assert_raise Mix.Error , "Could not find a version of name matching: 1.3.0" , fn ->
@@ -109,7 +109,9 @@ defmodule Mix.LocalTest do
109109 @ tag :tmp_dir
110110 test "raise on bad signature" , % { tmp_dir: tmp_dir } do
111111 File . cd! ( tmp_dir , fn ->
112- csv_signed = String . replace ( @ csv_signed , "VRy" , "BAD" )
112+ << _ , _ , _ >> <> rest = @ csv_signed
113+ csv_signed = "BAD" <> rest
114+
113115 File . write! ( "csv" , @ csv )
114116 File . write! ( "csv.signed" , csv_signed )
115117
0 commit comments