1
15
16 package software.amazon.awssdk.auth.signer.internal;
17
18 import java.time.Instant;
19 import software.amazon.awssdk.annotations.Immutable;
20 import software.amazon.awssdk.annotations.SdkInternalApi;
21 import software.amazon.awssdk.utils.DateUtils;
22
23
27 @Immutable
28 @SdkInternalApi
29 public final class SignerKey {
30
31 private final long daysSinceEpoch;
32
33 private final byte[] signingKey;
34
35 public SignerKey(Instant date, byte[] signingKey) {
36 if (date == null) {
37 throw new IllegalArgumentException(
38 "Not able to cache signing key. Signing date to be is null");
39 }
40 if (signingKey == null) {
41 throw new IllegalArgumentException(
42 "Not able to cache signing key. Signing Key to be cached are null");
43 }
44 this.daysSinceEpoch = DateUtils.numberOfDaysSinceEpoch(date.toEpochMilli());
45 this.signingKey = signingKey.clone();
46 }
47
48 public boolean isValidForDate(Instant other) {
49 return daysSinceEpoch == DateUtils.numberOfDaysSinceEpoch(other.toEpochMilli());
50 }
51
52
55 public byte[] getSigningKey() {
56 return signingKey.clone();
57 }
58 }
59