diff --git a/README.md b/README.md index 7ecb3ae79..180949767 100644 --- a/README.md +++ b/README.md @@ -82,10 +82,7 @@ From maven: (https://search.maven.org/artifact/software.amazon.awssdk.crt/aws-cr The `aws-crt` JAR in Maven Central is a large "uber" jar that contains compiled C libraries for many different platforms (Windows, Linux, etc). If size is an issue, you can pick a smaller platform-specific JAR by setting the ``. -The classifier `fips-compat` provides an "uber" jar with FIPS compliance on *some platforms*. **WARNING:** Platforms without FIPS compliance are also included in this jar, for compatibility's sake. Check `CRT.isFIPS()` at runtime to ensure you are on a FIPS compliant platform. The current breakdown is: -* **FIPS compliant**: linux-aarch_64, linux-x86_64 -* **NOT compliant**: linux-armv6, linux-armv7, linux-armv7-musl, linux-aarch_64-musl, linux-x86_32, linux-x86_64-musl, osx-aarch_64, osx-x86_64, windows-x86_32, windows-x86_64 - +Sample to use classifier from aws-crt: ``` xml @@ -105,7 +102,7 @@ The classifier `fips-compat` provides an "uber" jar with FIPS compliance on *som ``` -### Available platform classifiers +### Available classifiers - linux-armv6 (no auto-detect) - linux-armv7 (no auto-detect) @@ -119,7 +116,7 @@ The classifier `fips-compat` provides an "uber" jar with FIPS compliance on *som - osx-x86_64 - windows-x86_32 - windows-x86_64 -- fips-compat (no auto-detect) +- fips-where-available (no auto-detect) ### Auto-detect @@ -151,6 +148,18 @@ a classifier-based jar, you must specify the classifier name yourself. ``` +## FIPS Compliance + +Currently the classifier `fips-where-available` provides an "uber" jar with FIPS compliance on *some platforms*. + +Platforms without FIPS compliance are also included in this jar, for compatibility's sake. Check `CRT.isFIPS()` at runtime to ensure you are on a FIPS compliant platform. The current breakdown is: +* **FIPS compliant**: linux-aarch_64, linux-x86_64 +* **NOT compliant**: linux-armv6, linux-armv7, linux-armv7-musl, linux-aarch_64-musl, linux-x86_32, linux-x86_64-musl, osx-aarch_64, osx-x86_64, windows-x86_32, windows-x86_64 + +> [!WARNING] +> The classifier, and platforms with FIPS compliance are subject to change in the future. + + ## System Properties - To enable logging, set `aws.crt.log.destination` or `aws.crt.log.level`: diff --git a/codebuild/cd/deploy-platform-specific-jars.sh b/codebuild/cd/deploy-platform-specific-jars.sh index a8f79b2e8..ace977573 100755 --- a/codebuild/cd/deploy-platform-specific-jars.sh +++ b/codebuild/cd/deploy-platform-specific-jars.sh @@ -13,7 +13,7 @@ else DEPLOY_REPOSITORY_URL=https://aws.oss.sonatype.org:443/service/local/staging/deployByRepositoryId/${STAGING_REPO_ID} fi -CLASSIFIERS_ARRAY=("linux-armv6" "linux-armv7" "linux-aarch_64" "linux-x86_32" "linux-x86_64" "osx-aarch_64" "osx-x86_64" "windows-x86_32" "windows-x86_64" "linux-x86_64-musl" "linux-armv7-musl" "linux-aarch_64-musl" "fips-compat") +CLASSIFIERS_ARRAY=("linux-armv6" "linux-armv7" "linux-aarch_64" "linux-x86_32" "linux-x86_64" "osx-aarch_64" "osx-x86_64" "windows-x86_32" "windows-x86_64" "linux-x86_64-musl" "linux-armv7-musl" "linux-aarch_64-musl" "fips-where-available") for str in ${CLASSIFIERS_ARRAY[@]}; do FILES="${FILES}target/aws-crt-1.0.0-SNAPSHOT-$str.jar," diff --git a/codebuild/cd/fips-compat-jar-build.yml b/codebuild/cd/fips-where-available-jar-build.yml similarity index 93% rename from codebuild/cd/fips-compat-jar-build.yml rename to codebuild/cd/fips-where-available-jar-build.yml index eb2b67d4e..d4284c33b 100644 --- a/codebuild/cd/fips-compat-jar-build.yml +++ b/codebuild/cd/fips-where-available-jar-build.yml @@ -14,13 +14,13 @@ phases: # upload artifacts to S3 - export GIT_TAG=$(git describe --tags) - mkdir -p target/cmake-build/lib - # prepare fips-compat uber jar, download the regular libs + # prepare fips-where-available uber jar, download the regular libs - aws s3 cp --recursive s3://aws-crt-java-pipeline/${GIT_TAG}/lib $CODEBUILD_SRC_DIR/aws-crt-java/target/cmake-build/lib # Override with the FIPS libs - aws s3 cp --recursive s3://aws-crt-java-pipeline/${GIT_TAG}/fips_lib $CODEBUILD_SRC_DIR/aws-crt-java/target/cmake-build/lib # Run a test to make sure we get the FIPS libs - CRT_FIPS=ON mvn test -Dtest=software.amazon.awssdk.crt.test.SystemInfoTest#testIsFIPS -Dshared-lib.skip=true - - mvn -B package -DskipTests -Dshared-lib.skip=true -Dcrt.classifier=fips-compat + - mvn -B package -DskipTests -Dshared-lib.skip=true -Dcrt.classifier=fips-where-available post_build: commands: diff --git a/codebuild/cd/test-platform-specific-jar-snapshot.sh b/codebuild/cd/test-platform-specific-jar-snapshot.sh index 9cd8aca19..c4d4b2c83 100644 --- a/codebuild/cd/test-platform-specific-jar-snapshot.sh +++ b/codebuild/cd/test-platform-specific-jar-snapshot.sh @@ -2,7 +2,7 @@ set -ex -PLATFORM_ARRAY=("linux-armv6" "linux-armv7" "linux-aarch_64" "linux-x86_32" "linux-x86_64" "osx-aarch_64" "osx-x86_64" "windows-x86_32" "windows-x86_64" "linux-x86_64-musl" "linux-armv7-musl" "linux-aarch_64-musl" "fips-compat") +PLATFORM_ARRAY=("linux-armv6" "linux-armv7" "linux-aarch_64" "linux-x86_32" "linux-x86_64" "osx-aarch_64" "osx-x86_64" "windows-x86_32" "windows-x86_64" "linux-x86_64-musl" "linux-armv7-musl" "linux-aarch_64-musl" "fips-where-available") # test uber jar mvn -B dependency:get -DrepoUrl=https://aws.oss.sonatype.org/content/repositories/snapshots -Dartifact=software.amazon.awssdk.crt:aws-crt:${CRT_VERSION}-SNAPSHOT -Dtransitive=false