diff --git a/features/fedramp_extensions.feature b/features/fedramp_extensions.feature
index ad786a87a..ae708c504 100644
--- a/features/fedramp_extensions.feature
+++ b/features/fedramp_extensions.feature
@@ -29,6 +29,16 @@ Examples:
| control-implementation-status-PASS.yaml |
| deployment-mode-FAIL.yaml |
| deployment-mode-PASS.yaml |
+ | has-security-impact-level-FAIL.yaml |
+ | has-security-impact-level-PASS.yaml |
+ | has-security-objective-availability-FAIL.yaml |
+ | has-security-objective-availability-PASS.yaml |
+ | has-security-objective-confidentiality-FAIL.yaml |
+ | has-security-objective-confidentiality-PASS.yaml |
+ | has-security-objective-integrity-FAIL.yaml |
+ | has-security-objective-integrity-PASS.yaml |
+ | has-security-sensitivity-level-FAIL.yaml |
+ | has-security-sensitivity-level-PASS.yaml |
| information-type-system-FAIL.yaml |
| information-type-system-PASS.yaml |
| interconnection-direction-FAIL.yaml |
@@ -65,6 +75,11 @@ Examples:
| component-type |
| control-implementation-status |
| deployment-model |
+ | has-security-impact-level |
+ | has-security-objective-availability |
+ | has-security-objective-confidentiality |
+ | has-security-objective-integrity |
+ | has-security-sensitivity-level |
| information-type-system |
| interconnection-direction |
| interconnection-security |
diff --git a/src/validations/constraints/content/ssp-all-INVALID.xml b/src/validations/constraints/content/ssp-all-INVALID.xml
index f02dfc1dd..fad641cb0 100644
--- a/src/validations/constraints/content/ssp-all-INVALID.xml
+++ b/src/validations/constraints/content/ssp-all-INVALID.xml
@@ -59,7 +59,7 @@
- moderate
+
Financial Information
@@ -80,13 +80,10 @@
-
-
- moderate
- moderate
- moderate
-
-
+
+
+
+
diff --git a/src/validations/constraints/fedramp-external-constraints.xml b/src/validations/constraints/fedramp-external-constraints.xml
index f8a7babf9..e7ba18eae 100644
--- a/src/validations/constraints/fedramp-external-constraints.xml
+++ b/src/validations/constraints/fedramp-external-constraints.xml
@@ -19,4 +19,26 @@
+
+
+
+
+
+
+ An OSCAL SSP document must specify a FIPS 199 categorization.
+
+
+ An OSCAL SSP document must specify a security impact level.
+
+
+ An OSCAL SSP must specify a confidentiality security objective.
+
+
+ An OSCAL SSP must specify an integrity security objective.
+
+
+ An OSCAL SSP must specify an availability security objective.
+
+
+
diff --git a/src/validations/constraints/unit-tests/has-security-impact-level-FAIL.yaml b/src/validations/constraints/unit-tests/has-security-impact-level-FAIL.yaml
new file mode 100644
index 000000000..d4554c2a0
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-impact-level-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for has-security-impact-level
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-impact-level
+ content: ../content/ssp-all-INVALID.xml
+ expectations:
+ - constraint-id: has-security-impact-level
+ result: fail
diff --git a/src/validations/constraints/unit-tests/has-security-impact-level-PASS.yaml b/src/validations/constraints/unit-tests/has-security-impact-level-PASS.yaml
new file mode 100644
index 000000000..dd112dba4
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-impact-level-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for has-security-impact-level
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-impact-level
+ content: ../content/ssp-all-VALID.xml
+ expectations:
+ - constraint-id: has-security-impact-level
+ result: pass
diff --git a/src/validations/constraints/unit-tests/has-security-objective-availability-FAIL.yaml b/src/validations/constraints/unit-tests/has-security-objective-availability-FAIL.yaml
new file mode 100644
index 000000000..3d2cbe5b6
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-objective-availability-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for has-security-objective-availability
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-objective-availability
+ content: ../content/ssp-all-INVALID.xml
+ expectations:
+ - constraint-id: has-security-objective-availability
+ result: fail
diff --git a/src/validations/constraints/unit-tests/has-security-objective-availability-PASS.yaml b/src/validations/constraints/unit-tests/has-security-objective-availability-PASS.yaml
new file mode 100644
index 000000000..44c596ae1
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-objective-availability-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for has-security-objective-availability
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-objective-availability
+ content: ../content/ssp-all-VALID.xml
+ expectations:
+ - constraint-id: has-security-objective-availability
+ result: pass
diff --git a/src/validations/constraints/unit-tests/has-security-objective-confidentiality-FAIL.yaml b/src/validations/constraints/unit-tests/has-security-objective-confidentiality-FAIL.yaml
new file mode 100644
index 000000000..eece5be1b
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-objective-confidentiality-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for has-security-objective-confidentiality
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-objective-confidentiality
+ content: ../content/ssp-all-INVALID.xml
+ expectations:
+ - constraint-id: has-security-objective-confidentiality
+ result: fail
diff --git a/src/validations/constraints/unit-tests/has-security-objective-confidentiality-PASS.yaml b/src/validations/constraints/unit-tests/has-security-objective-confidentiality-PASS.yaml
new file mode 100644
index 000000000..67bacc8f8
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-objective-confidentiality-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for has-security-objective-confidentiality
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-objective-confidentiality
+ content: ../content/ssp-all-VALID.xml
+ expectations:
+ - constraint-id: has-security-objective-confidentiality
+ result: pass
diff --git a/src/validations/constraints/unit-tests/has-security-objective-integrity-FAIL.yaml b/src/validations/constraints/unit-tests/has-security-objective-integrity-FAIL.yaml
new file mode 100644
index 000000000..cdbc8be6d
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-objective-integrity-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for has-security-objective-integrity
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-objective-integrity
+ content: ../content/ssp-all-INVALID.xml
+ expectations:
+ - constraint-id: has-security-objective-integrity
+ result: fail
diff --git a/src/validations/constraints/unit-tests/has-security-objective-integrity-PASS.yaml b/src/validations/constraints/unit-tests/has-security-objective-integrity-PASS.yaml
new file mode 100644
index 000000000..c509dc75c
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-objective-integrity-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for has-security-objective-integrity
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-objective-integrity
+ content: ../content/ssp-all-VALID.xml
+ expectations:
+ - constraint-id: has-security-objective-integrity
+ result: pass
diff --git a/src/validations/constraints/unit-tests/has-security-sensitivity-level-FAIL.yaml b/src/validations/constraints/unit-tests/has-security-sensitivity-level-FAIL.yaml
new file mode 100644
index 000000000..756fc8bdb
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-sensitivity-level-FAIL.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Negative Test for has-security-sensitivity-level
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-sensitivity-level
+ content: ../content/ssp-all-INVALID.xml
+ expectations:
+ - constraint-id: has-security-sensitivity-level
+ result: fail
diff --git a/src/validations/constraints/unit-tests/has-security-sensitivity-level-PASS.yaml b/src/validations/constraints/unit-tests/has-security-sensitivity-level-PASS.yaml
new file mode 100644
index 000000000..be4216b92
--- /dev/null
+++ b/src/validations/constraints/unit-tests/has-security-sensitivity-level-PASS.yaml
@@ -0,0 +1,9 @@
+test-case:
+ name: Positive Test for has-security-sensitivity-level
+ description: >-
+ This test case validates the behavior of constraint
+ has-security-sensitivity-level
+ content: ../content/ssp-all-VALID.xml
+ expectations:
+ - constraint-id: has-security-sensitivity-level
+ result: pass