From 65df30f420b1c58b9567dad0bc22fe187c663a43 Mon Sep 17 00:00:00 2001 From: bberto Date: Tue, 1 Jun 2021 15:45:00 +0200 Subject: [PATCH] fixes gh-953 (#963) --- .../bootstrap/encrypt/TextEncryptorUtils.java | 4 ++-- .../EncryptionBootstrapConfigurationTests.java | 12 ++++++++++++ .../src/test/resources/server.p12 | Bin 0 -> 2421 bytes 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 spring-cloud-context/src/test/resources/server.p12 diff --git a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java index e59068af..5571e46d 100644 --- a/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java +++ b/spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/TextEncryptorUtils.java @@ -120,8 +120,8 @@ public abstract class TextEncryptorUtils { if (keyStore.getLocation() != null) { if (keyStore.getLocation().exists()) { return new RsaSecretEncryptor( - new KeyStoreKeyFactory(keyStore.getLocation(), keyStore.getPassword().toCharArray()) - .getKeyPair(keyStore.getAlias(), keyStore.getSecret().toCharArray()), + new KeyStoreKeyFactory(keyStore.getLocation(), keyStore.getPassword().toCharArray(), + keyStore.getType()).getKeyPair(keyStore.getAlias(), keyStore.getSecret().toCharArray()), rsaProperties.getAlgorithm(), rsaProperties.getSalt(), rsaProperties.isStrong()); } diff --git a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java index 024fad3f..a9d7b71b 100644 --- a/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java +++ b/spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionBootstrapConfigurationTests.java @@ -49,6 +49,18 @@ public class EncryptionBootstrapConfigurationTests { context.close(); } + @Test + public void rsaPkcs12KeyStore() { + ConfigurableApplicationContext context = new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class) + .web(WebApplicationType.NONE) + .properties("encrypt.keyStore.location:classpath:/server.p12", "encrypt.keyStore.password:letmein", + "encrypt.keyStore.alias:mytestkey", "encrypt.keyStore.type:PKCS12") + .run(); + TextEncryptor encryptor = context.getBean(TextEncryptor.class); + then(encryptor.decrypt(encryptor.encrypt("foo"))).isEqualTo("foo"); + context.close(); + } + @Test public void rsaKeyStoreWithRelaxedProperties() { ConfigurableApplicationContext context = new SpringApplicationBuilder(EncryptionBootstrapConfiguration.class) diff --git a/spring-cloud-context/src/test/resources/server.p12 b/spring-cloud-context/src/test/resources/server.p12 new file mode 100644 index 0000000000000000000000000000000000000000..9f3153ac1030381cddb12da8aded5f499164e9c9 GIT binary patch literal 2421 zcmY+Ec{mh`8pdZ~82i42FqTeYjHSu0QNt*ElPzKtvdm=55@VSprAdZD$yO-)F45Q- zhZ_5G$=E_vhGdAi?tSh(_ntq#?|q)%`+e`9FMy2ORY|}kuy}zSz+4hk zij4#nKf=NY68p`+S?um?BzBi0?07U-2={-!c({O|ToT(Jg2cu`oP==w7axU7v5CMT z=NkuwPsptZnizGaDdXg(dt5+ZK!*(*iH!!u1NmlFwcBo^>w9@ZEqdIBQRZk?^bq|0 z#*E{0X0+n93HM?fVa6XXzpfJWujECnl~ayy(HrNKg`R$Ix%w~xe!T)pQE)nGI!Bxf z{0F8ACv;!+&JP;K0WL#Xi>2V$?c$ zyJlqlIClB?+0tWij0d}!QqD52@& zrqGy>vst!f)ocY43uu=c#Qt!pFJ=^%va|K}0~`X=NX<~M>)-n3+;t!4)5UzPce3Li zd!6A}x=;Xm6o2Ih%&Yqq0XA4d5qWAFtoe4Tj|{&@eKABR5v%4X{@UBoH#2ny^_X<| zoDD_2Ej+($vU-#1kK$NxoP%xp1|+;^2@8JrFQGG*sC}CuQ8zZ#L80ZF<+U$qk@1%W zPd*OpBRVE~qFrs@3}>pM?|Yhub-!%A3#WA+`ss-YHgtas4e@FT0(=|}e@0ThgjzZ+}s30fg<6!Iiu^ zZ$720t5q4<6nlt_yiBqo+ieLxn4l?FIfh*tK&3`Fsm4|IUZ`V)7*tVRP%c{9+eHN2~}Oe>tV0?Ylv!F_jF z=9lv7g%5Se_ru9~=)u<)ZwEL((K1LjZA>*%PBMRYu_ zZk@1WX_i)09hD4!=Gbf!0Bk@$Wy`Ld%kFl)H*ezRTcrNI{Gcwp`CE;%q4-E^P)k*M ztZkKwtt^SIwHxmLb=^OL#a{;+H$~m*q4)&W_@|%fx#D=$$w)gif z6Rg8R*tu12WAXQ_YT~$Dr#B<$O>6ncZp!%%BjFi-XFls3ao>*7!W(h*{UwI@N=qM! zU`ftvYVksk5c3?wjm4E9)uFjr+cZ&Fk-!TDO{Y)jwX58GB#8eg7ZmU1@b2c|`FBAR z>#-VA9&W4lqeV6JC|zw{SBA7P>GB6}2hlkGB0^Xq9;B2{-A|Hb_%Q5pcdn=+3+^N? z95;Bq{-n*N{_Lx)N{Hq`u>6i%*Gfb9$FEzDe^wUXF$O}U-yJy|D^5i4IRV$rnyr$| zV`7rns4-Lo{S%YcR(FeWa_HWR@G)M!LI6A<0uTc51Oy*#zax$K{}WLS5jG*L58hKw1F5Nr(A7a|Yaz9f z2ogB!uN)3YE(uINLia&Hz>$#t=K%lKvygxFtfRD&sGYwzcDk2AtxwIdYso=YN~kW;zM%k4qUa7517^UZ|km|-(5 zrIx#)qa1I?!bKUVbmn9GVl{bV3TIDpVEagWiF(A~GtLmtQZtz%`RFi=KyK=+*Uf5+ zWy2Sh)Fiey7;?mZ(NLT8B5y-5})YvXfU*Nt-2;AhSRX>^xWyRXn~(u zGAHxM_aZ8|uP+Q(cb@s>HnskM{z;rd20Vn5{N&b~EQOPF4)cE>@W#+~nkRxCspQREQFZ^Z~0H4UGZJ(z6jRa{2w41agc*VOsF#KNd%%<<>ZDrkKVof$iYM)j0R({3q8e31Wc=pmxNekMw z{Gr(AsiJPVxMVx2cPG0UAN6*7LrSc6Nyd)m>L>#p1Kl*=^FqKR0#@&OoU6b5X3&LG zQh99>m74QNi1z- z1D9!DovWCJt8gY_DT;$Y$3;j-R3=*Mg^2*%HS;V1JtrbxZ|VOuIQ+E>_706L%d7jx zXhFNQ3!z-_QqEg7^bIpnr9(@mKYlU;M+_w!>GNt^7ETYn?r*6p zr5ILqZCm`J#>{um8doZ&gw>pxO)fsxx7aQUU7GrRNJXw080(lCINX+EVw