1919
2020import java .net .URI ;
2121import java .security .InvalidKeyException ;
22- import java .security .PrivateKey ;
2322import java .util .function .Consumer ;
2423import software .amazon .awssdk .annotations .Immutable ;
2524import software .amazon .awssdk .annotations .SdkPublicApi ;
@@ -141,7 +140,7 @@ public SignedUrl getSignedUrlWithCannedPolicy(CannedSignerRequest request) {
141140 try {
142141 String resourceUrl = request .resourceUrl ();
143142 String cannedPolicy = SigningUtils .buildCannedPolicy (resourceUrl , request .expirationDate ());
144- byte [] signatureBytes = signPolicy (cannedPolicy .getBytes (UTF_8 ), request .privateKey ());
143+ byte [] signatureBytes = SigningUtils . signWithSha1Rsa (cannedPolicy .getBytes (UTF_8 ), request .privateKey ());
145144 String urlSafeSignature = SigningUtils .makeBytesUrlSafe (signatureBytes );
146145 URI uri = URI .create (resourceUrl );
147146 String protocol = uri .getScheme ();
@@ -267,7 +266,7 @@ public SignedUrl getSignedUrlWithCustomPolicy(CustomSignerRequest request) {
267266 request .expirationDate (),
268267 request .ipRange ());
269268
270- byte [] signatureBytes = signPolicy (policy .getBytes (UTF_8 ), request .privateKey ());
269+ byte [] signatureBytes = SigningUtils . signWithSha1Rsa (policy .getBytes (UTF_8 ), request .privateKey ());
271270 String urlSafePolicy = SigningUtils .makeStringUrlSafe (policy );
272271 String urlSafeSignature = SigningUtils .makeBytesUrlSafe (signatureBytes );
273272 URI uri = URI .create (resourceUrl );
@@ -369,7 +368,7 @@ public CookiesForCannedPolicy getCookiesForCannedPolicy(Consumer<CannedSignerReq
369368 public CookiesForCannedPolicy getCookiesForCannedPolicy (CannedSignerRequest request ) {
370369 try {
371370 String cannedPolicy = SigningUtils .buildCannedPolicy (request .resourceUrl (), request .expirationDate ());
372- byte [] signatureBytes = signPolicy (cannedPolicy .getBytes (UTF_8 ), request .privateKey ());
371+ byte [] signatureBytes = SigningUtils . signWithSha1Rsa (cannedPolicy .getBytes (UTF_8 ), request .privateKey ());
373372 String urlSafeSignature = SigningUtils .makeBytesUrlSafe (signatureBytes );
374373 String expiry = String .valueOf (request .expirationDate ().getEpochSecond ());
375374 return DefaultCookiesForCannedPolicy .builder ()
@@ -470,7 +469,7 @@ public CookiesForCustomPolicy getCookiesForCustomPolicy(CustomSignerRequest requ
470469 try {
471470 String policy = SigningUtils .buildCustomPolicy (request .resourceUrl (), request .activeDate (), request .expirationDate (),
472471 request .ipRange ());
473- byte [] signatureBytes = signPolicy (policy .getBytes (UTF_8 ), request .privateKey ());
472+ byte [] signatureBytes = SigningUtils . signWithSha1Rsa (policy .getBytes (UTF_8 ), request .privateKey ());
474473 String urlSafePolicy = SigningUtils .makeStringUrlSafe (policy );
475474 String urlSafeSignature = SigningUtils .makeBytesUrlSafe (signatureBytes );
476475 return DefaultCookiesForCustomPolicy .builder ()
@@ -483,20 +482,4 @@ public CookiesForCustomPolicy getCookiesForCustomPolicy(CustomSignerRequest requ
483482 }
484483 }
485484
486- private static byte [] signPolicy (byte [] policyToSign , PrivateKey privateKey ) throws InvalidKeyException {
487- // all CloudFront signed urls currently require the SHA1 and currently only support RSA and EC
488- switch (privateKey .getAlgorithm ()) {
489- case "RSA" :
490- return SigningUtils .signWithSha1Rsa (policyToSign , privateKey );
491- case "EC" :
492- case "ECDSA" :
493- return SigningUtils .signWithSha1ECDSA (policyToSign , privateKey );
494- default :
495- // do not attempt to use a generic Signer based on the privateKey algorithm:
496- // future supported key types likely require different hash algorithms (eg, SHA256 or higher instead of SHA1)
497- throw new IllegalArgumentException (
498- "Unsupported key algorithm for CloudFront signed URL: " + privateKey .getAlgorithm ());
499- }
500- }
501-
502485}
0 commit comments