/** * Build the signing key for a REST/HTTP request to a storage * service for the AWS Request Signature version 4. * * @param secretAccessKey * account holder's secret access key * @param timestampISO8601 * timestamp of request creation in ISO8601 format * @param region * region to which the request will be sent * {@link "http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region"} * @return signing key according to AWS Request Signature version 4 */ public static byte[] awsV4BuildSigningKey( String secretAccessKey, String timestampISO8601, String region) { String service = "s3"; String datestampISO8601 = timestampISO8601.substring(0, 8); byte[] kDate = ServiceUtils.hmacSHA256( "AWS4" + secretAccessKey, datestampISO8601); byte[] kRegion = ServiceUtils.hmacSHA256( kDate, ServiceUtils.stringToBytes(region)); byte[] kService = ServiceUtils.hmacSHA256( kRegion, ServiceUtils.stringToBytes(service)); byte[] kSigning = ServiceUtils.hmacSHA256( kService, ServiceUtils.stringToBytes("aws4_request")); return kSigning; }
/** * Build the signing key for a REST/HTTP request to a storage * service for the AWS Request Signature version 4. * * @param secretAccessKey * account holder's secret access key * @param timestampISO8601 * timestamp of request creation in ISO8601 format * @param region * region to which the request will be sent * {@link "http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region"} * @return signing key according to AWS Request Signature version 4 */ public static byte[] awsV4BuildSigningKey( String secretAccessKey, String timestampISO8601, String region) { String service = "s3"; String datestampISO8601 = timestampISO8601.substring(0, 8); byte[] kDate = ServiceUtils.hmacSHA256( "AWS4" + secretAccessKey, datestampISO8601); byte[] kRegion = ServiceUtils.hmacSHA256( kDate, ServiceUtils.stringToBytes(region)); byte[] kService = ServiceUtils.hmacSHA256( kRegion, ServiceUtils.stringToBytes(service)); byte[] kSigning = ServiceUtils.hmacSHA256( kService, ServiceUtils.stringToBytes("aws4_request")); return kSigning; }
byte[] signingKey = SignatureUtils.awsV4BuildSigningKey( secretKey, timestampISO8601, region); String signature = ServiceUtils.toHex(ServiceUtils.hmacSHA256( signingKey, ServiceUtils.stringToBytes(stringToSign)));
byte[] signingKey = SignatureUtils.awsV4BuildSigningKey( secretKey, timestampISO8601, region); String signature = ServiceUtils.toHex(ServiceUtils.hmacSHA256( signingKey, ServiceUtils.stringToBytes(stringToSign)));
String signature = ServiceUtils.toHex(ServiceUtils.hmacSHA256( signingKey, ServiceUtils.stringToBytes(stringToSign)));
String signature = ServiceUtils.toHex(ServiceUtils.hmacSHA256( signingKey, ServiceUtils.stringToBytes(stringToSign)));