<PP xmlns="https://niap-ccevs.org/cc/v1" xmlns:cc="https://niap-ccevs.org/cc/v1" xmlns:sec="https://niap-ccevs.org/cc/v1/section" xmlns:h="http://www.w3.org/1999/xhtml" boilerplate="yes" target-product="Mobile Device">
	
  <PPReference>
    <ReferenceTable>
      <PPTitle>Protection Profile for Mobile Device Fundamentals</PPTitle>
      <PPVersion>4.0</PPVersion>
      <PPAuthor>National Information Assurance Partnership</PPAuthor>
      <PPPubDate>2025-01-31</PPPubDate>
      <Keywords>mobile device, security functionality</Keywords>
    </ReferenceTable>
  </PPReference>
  <RevisionHistory>
    <entry>
      <version>1.0</version>
      <date>2013-10-21</date>
      <subject>Initial Release</subject>
    </entry>
    <entry>
      <version>1.1</version>
      <date>2014-01-12</date>
      <subject>Typographical changes and additional clarifications in application notes. Removed
        assignment from FCS_TLS_EXT.1 and limited testing to those ciphersuites in both
        FCS_TLS_EXT.1 and FCS_TLS_EXT.2.</subject>
    </entry>
    <entry>
      <version>2.0</version>
      <date>2015-09-14</date>
      <subject> Included changes based on Technical Rapid Response Team Decisions. Clarified many
        requirements and evaluation activities. Mandated objective requirements:<h:br/>
        <h:ul>
          <h:li>Application Access Control (FDP_ACF_EXT.1.2)</h:li>
          <h:li>VPN Information Flow Control (FDP_IFC_EXT.1)</h:li>
        </h:ul> Added new objective requirements:<h:br/>
        <h:ul>
          <h:li>Suite B cryptography for IEEE 802.11</h:li>
          <h:li>Certificate enrollment</h:li>
          <h:li>Protection of additional key material types</h:li>
          <h:li>Heap overflow protection</h:li>
          <h:li>Bluetooth requirements</h:li>
          <h:li>Cryptographic operation services for applications</h:li>
          <h:li>Remote Attestation (FPT_NOT_EXT.1)</h:li>
        </h:ul> Added transition dates for some objective requirements.<h:br/> Included
        hardware-isolated REK and key storage selections.<h:br/> Allowed key derivation by
        REK.<h:br/> Clarified FTP_ITC_EXT.1 and added FDP_UPC_EXT.1.<h:br/> Mandated HTTPS and
        TLS for application use. (FDP_UPC_EXT.1)<h:br/> Removed Dual_EC_DRBG as an approved
       DRBG.<h:br/> Adopted new TLS requirements. <h:br/> Mandated TSF Wipe upon authentication
        failure limit and required number of authentication failures be maintained across
        reboot.<h:br/> Clarified Management Class.<h:br/> Included more domain isolation
        discussion and tests.<h:br/> Updated Audit requirements and added Auditable Events
        table.<h:br/> Added SFR Category Mapping Table.<h:br/> Updated Use Case
        Templates.<h:br/> Moved Glossary to Introduction. </subject>
    </entry>
    <entry>
      <version>3.0</version>
      <date>2015-09-17</date>
      <subject>Included changes based on Technical Rapid Response Team Decisions.<h:br/> Clarified
        many requirements and evaluation activities.<h:br/> Mandated objective requirements:<h:br/>
        <h:ul>
          <h:li>Generation of Audit Records (FAU_GEN.1)</h:li>
          <h:li>Audit Storage Protection (FAU_STG.1)</h:li>
          <h:li>Audit Storage Overwrite (FAU_STG.4)</h:li>
          <h:li>Lock Screen DAR (FDP_DAR_EXT.2)</h:li>
          <h:li>Discard Bluetooth Connection Attempts from Bluetooth Addresses with Existing
            Connection (FIA_BLT_EXT.3)</h:li>
          <h:li>JTAG Disablement (FPT_JTA)</h:li>
        </h:ul> Added new objective requirements:<h:br/>
        <h:ul>
          <h:li>Application Backup</h:li>
          <h:li>Biometric Authentication Factor</h:li>
          <h:li>Access Control</h:li>
          <h:li>User Authentication</h:li>
          <h:li>Bluetooth Encryption</h:li>
        </h:ul> WLAN client requirements moved to Extended Package for WLAN Client.<h:br/> Added
        SFRs to support BYOD Use Case<h:br/> BYOD Use Case<h:br/> Updated key destruction SFR
      </subject>
    </entry>
    <entry>
      <version>3.1</version>
      <date>2017-04-05</date>
      <subject> Included changes based on Technical Rapid Response Team Decisions and incorporated
        Technical Decisions.<h:br/> Modified biometric requirements: <h:ul>
          <h:li>FIA_UAU.5 - Added iris, face, voice and vein as supported modalities, in addition
            to fingerprint (allowed in version 3)</h:li>
          <h:li>FIA_BMG_EXT.1.1 - Clarified AA to specify that vendor evidence is acceptable and
            expectations of evidence provided. </h:li>
          <h:li>FIA_BMG_EXT.1.2 - SAFAR was changed to an assignment of a SAFAR no greater than
            1:500. </h:li>
          <h:li>FIA_AFL_EXT.1 - Updated to allow each biometric modality to utilize an individual
            or shared counter.</h:li>
        </h:ul> FCS_TLSC_EXT.1.1 - Removed TLS ciphersuites that utilized SHA1 and updated
        optional ciphersuites to be uniformed across PPs.<h:br/> FCS_STG_EXT.2.2 - Modified to
        require long term trusted channel key material be encrypted by an approved method.<h:br/>
        FIA_UAU_EXT.1.1 - Modified to allow the long term trusted channel key material to be
        available prior to password being entered at start-up.<h:br/>
      </subject>
    </entry>
    <entry>
      <version>3.2</version>
      <date>2021-04-15</date>
      <subject>Removed TLS SFRs and used TLS Functional Package<h:br/> Removed Bluetooth SFRs
        and utilized Bluetooth Module. Bluetooth SFR moved to Implementation Dependent.<h:br/>
        FPT_TUD_EXT.4.2 renumbered to <xref to="fel-app-verify-how"/><h:br/>
      </subject>
    </entry>
    <entry>
      <version>3.3</version>
      <date>2022-09-12</date>
      <subject>Integrated Biometrics cPP Module, Included changes based on Technical Rapid Response Team Decisions and open issues from GitHub.<h:br/>      
      <h:li>Removed biometric definitions from Tech Terms</h:li>
      <h:li>Removed FDP_PBA</h:li>
      <h:li>Removed FIA_BMG</h:li>
      <h:li>Updated FIA_UAU.5 to support bio cPP module</h:li>
      <h:li>Moved FTA_TAB.1 to mandatory</h:li>
      <h:li>Moved FAU_SAR.1 to mandatory</h:li>
      <h:li>Added ECD</h:li>
      <h:li>Updated WLAN Client reference from Extended Package to Module</h:li>
        <h:li>Removed Diffie-Hellman group 14 selection from FCS_CKM.1.1 and FCS_CKM_EXT.7.1</h:li>
      </subject>
    </entry>
    <entry>
      <version>4.0</version>
      <date>2024-09-20</date> 
      <subject>
        <h:ul>
          <h:li>Updated to conform to CC:2022.</h:li>
          <h:li>Updated TLS package references.</h:li>
          <h:li>Incorporated X.509 package.</h:li>
          <h:li>Incorporated applicable technical decisions.</h:li>
          <h:li>Updated cryptographic algorithm strengths to conform to CNSA.</h:li>
        </h:ul>
      </subject>
    </entry>
  </RevisionHistory>
  <release-notes><h:h3>TDs Applied</h:h3></release-notes><include-pkg id="tls">
    <git>
      <url>https://github.com/commoncriteria/tls</url>
      <branch>release-2.1</branch>
    </git>
    <url>https://www.niap-ccevs.org/static_html/protection-profile/519</url>
  </include-pkg>
  <include-pkg id="X509">
    <git>
      <url>https://github.com/commoncriteria/X509</url>
      <branch>release-1.0</branch>
    </git>
    <url>https://www.niap-ccevs.org/protectionprofiles/511</url>
  </include-pkg>
    <modules>
    <module id="mod-vpnclient">
      <git>
	<url>https://github.com/commoncriteria/vpnclient</url>
	<branch>master</branch>
      </git>
      <url>https://www.niap-ccevs.org/protectionprofiles/487</url>
    </module>
      <module id="mod-bluetooth">
        <git>
          <url>https://github.com/commoncriteria/bluetooth</url>
          <branch>master</branch>
        </git>
        <url>https://www.niap-ccevs.org/protectionprofiles/425</url>
      </module>
      <module id="mod-mdmagent">
        <git>
          <url>https://github.com/commoncriteria/mdmagent</url>
          <branch>master</branch>
        </git>
        <url>https://www.niap-ccevs.org/protectionprofiles/441</url>
      </module>
      <module id="mod-wlanclient">
        <git>
          <url>https://github.com/commoncriteria/wlanclient</url>
          <branch>master</branch>
        </git>
        <url>https://www.niap-ccevs.org/protectionprofiles/463</url>
      </module>
    <module id="mod-biometrics" name="cPP-Module for Biometric Enrollment and Verification" product="Biometric Devices" short="Biometric cPP" version="2.0">
      <url>https://github.com/biometricITC/cPP-biometrics/blob/master/Protection%20Profile/BiocPP.adoc</url>
    </module>
  </modules>
  
  <pp-preferences>
    <audit-events-in-sfrs/>
  </pp-preferences>
  
  <sec:Introduction boilerplate="no">
    <sec:Objectives_of_Document>
The scope of this Protection Profile (PP) is to describe the security functionality of mobile devices in terms of [CC] and to define functional and assurance requirements for such devices.		
    </sec:Objectives_of_Document>
    <tech-terms>
      <!--<term full="Adaptive Template"> A type of authentication template that evolves with each sample that is verified and introduced into the biometrics database or gallery. </term> ToDo: Remove per bio cPP module -->
      <term abbr="AES" full="Advanced Encryption Standard"/>
      <term abbr="AEAD" full="Authenticated Encryption with Associated Data"/>
      <term abbr="ASLR" full="Address Space Layout Randomization"> An anti-exploitation feature,
        which loads memory mappings into unpredictable locations. ASLR makes it more difficult for
        an attacker to redirect control to code that they have introduced into the address space of
        a process or the kernel.</term>
      <term full="Administrator"> The Administrator is responsible for management activities,
        including setting the policy that is applied by the enterprise on the Mobile Device. This
        administrator is likely to be acting remotely and could be the Mobile Device Management
        (MDM) Administrator acting through an MDM agent. If the device is unenrolled, the user is
        the administrator.</term>
      <term abbr="ANSI" full="American National Standards Institute"/>
      <term abbr="AP" full="Application Processor"/>
      <term abbr="API" full="Application Programming Interface"/>
      <!-- <term abbr="ASLR" full="Address Space Layout Randomization"/>  -->
      <!-- <term full="Authentication Template"> A digital representation of an individual’s distinct
        characteristics, representing information extracted from a biometric sample. Such templates
        are used during biometric authentication and verification as the basis for comparison.
        Unlike enrollment templates, these templates can be adaptive.</term> ToDo: Remove per bio cPP module -->
      <term full="Auxiliary Boot Modes"> Auxiliary boot modes are states in which the device
        provides power to one or more components to provide an interface that enables an
        unauthenticated user to interact with either a specific component or several components that
        exist outside of the device’s fully authenticated, operational state.</term>
      <term full="Biometric Authentication Factor" abbr="BAF" plural="BAFs"> Authentication factor, which uses
        biometric sample, matched to a biometric authentication template to help establish
        identity.</term>
      <!-- <term full="Biometric Data"> Digital data created during a biometric process. It encompasses
        raw sensor observations, biometric samples, models, templates, or similarity scores,
        among other data. This data is used to describe the information collected during an
        enrollment, verification, or identification process, but does not apply to end user
        information such as user name, password (unless tied to the biometric modality), demographic
        information, and authorizations.</term> ToDo: Remove per bio cPP module -->
      <!-- <term full="Biometric Sample"> Information or computer data obtained from a biometric sensor
        device or captured from an individual to the sensor.</term> ToDo: Remove per bio cPP module -->
      <!-- <term full="Biometric System"> Multiple individual components (such as sensor, matching
        algorithm, and result display) that combine to make a fully operational system completely
        contained within the TOE. A biometric system is automated and capable of: <h:ol>
          <h:li>Capturing a biometric sample from an end user</h:li>
          <h:li>Extracting and processing the biometric data from that sample</h:li>
          <h:li>Generating various templates based on processing of that sample during enrollment,
            or, if adaptive, during verification as well</h:li>
          <h:li>Storing the extracted information in a database on the device</h:li>
          <h:li>Comparing the biometric data with data contained in one or more authentication
            templates</h:li>
          <h:li>Deciding how well they match and indicating whether or not an identification or
            verification of identity has been achieved.</h:li>
        </h:ol></term> ToDo: Remove per bio cPP module -->
      <term abbr="BP" full="Baseband Processor" plural="BPs"/>
      <term abbr="BR/EDR" full="(Bluetooth) Basic Rate/Enhanced Data Rate"/>
      <term abbr="BYOD" full="Bring Your Own Device"/>
      <term abbr="CA" full="Certificate Authority"/>
      <term abbr="CBC" full="Cipher Block Chaining"/>
      <term abbr="CCM" full="Counter with CBC-Message Authentication Code"/>
      <term abbr="CCMP" full="CCM Protocol"/>
      <term abbr="CMC" full="Certificate Management over Cryptographic Message Syntax (CMS)"/>
      <term abbr="CNSA" full="Commercial National Security Algorithm Suite"/>
      <term abbr="CPU" full="Central Processing Unit" plural="CPUs"/>
      <term abbr="CRL" full="Certificate Revocation List"/>
      
      <term full="Common Application Developer"> Application developers (or software companies)
        often produce many applications under the same name. Mobile devices often allow shared
        resources by such applications where otherwise resources would not be shared. </term>
      <term full="Data"> Program/application or data files that are stored or transmitted by a
        server or Mobile Device (MD). </term>
      <term full="Data Encryption Key" abbr="DEK" plural="DEKs">A key used to encrypt data-at-rest.</term>
      <term full="Developer Modes"> Developer modes are states in which additional services are
        available to a user in order to provide enhanced system access for debugging of software. </term>
      <term abbr="DAR" full="Data At Rest"/>
      <term abbr="DEK" full="Data Encryption Key"/>
      <term abbr="DEP" full="Data Execution Prevention"/>
      <term abbr="DH" full="Diffie-Hellman"/>
      <term abbr="DNS" full="Domain Name System"/>
      <term abbr="DSA" full="Digital Signature Algorithm"/>
      <term abbr="DTLS" full="Datagram Transport Layer Security"/>
      <term full="Encrypted Software Keys"> These keys are stored in the main file system encrypted
        by another key and can be changed and sanitized.</term>
      <term full="Enrolled State"> The state in which the Mobile Device is managed with active
        policy settings from the administrator.</term>
      <!-- <term full="Enrollment (Biometrics)"> The process of collecting a biometric sample from an end
        user, converting it into an enrollment or authentication template, and storing it in the
        biometric system’s database. If an enrollment template is generated, it is used during the
        enrollment process for later comparison to other enrollment templates already stored. If
        there are multiple enrollment templates, they may be fused, averaged, or otherwise, in order
        to create authentication templates, which are used for later comparison in
        verification.</term> ToDo: Remove per bio cPP module -->
      <!-- <term full="Enrollment Template"> A digital representation of an individual’s distinct
        characteristics, representing information extracted from a biometric sample. Such templates
        are generated during the enrollment process and utilized in various ways (including
        averaging, fusion, etc.) in order to generate an authentication template.</term>
      <term full="Enterprise Applications"> Applications that are provided and managed by the
        enterprise.</term> ToDo: Remove per bio cPP module -->
      <term full="Enterprise Data"> Enterprise data is any data residing in the enterprise servers,
        or temporarily stored on Mobile Devices to which the Mobile Device user is allowed access
        according to security policy defined by the enterprise and implemented by the
        administrator.</term>
      <term full="Ephemeral Keys"> These keys are stored in volatile memory.</term>
      <term abbr="EAP" full="Extensible Authentication Protocol"/>
      <term abbr="EAPOL" full="EAP Over LAN"/>
      <term abbr="ECDH" full="Elliptic Curve Diffie Hellman"/>
      <term abbr="ECDSA" full="Elliptic Curve Digital Signature Algorithm"/>
      <term abbr="EEPROM" full="Electrically Erasable Programmable Read-Only Memory "/>
      <term abbr="EST" full="Enrollment over Secure Transport"/>
      <!-- <term full="False Accept Rate" abbr="FAR" plural="FARs"> A statistic used to measure biometric performance
        when operating in verification, defined as the percentage of times a system produces a false
        accept, which occurs when an individual is incorrectly matched to another individual’s
        existing biometric. For example, Mallory claims to be Alice and the system verifies the
        claim.</term> ToDo: Remove per bio cPP module -->
      <!-- <term full="False Reject Rate" abbr="FRR"> A statistic used to measure biometric performance
        in verification, defined as the percentage of times the system produces a false reject. A
        false reject occurs when an individual is not matched to his or her own existing biometric
        template. For example, John claims to be John, but the system incorrectly denies the
        claim.</term> ToDo: Remove per bio cPP module -->
      <term abbr="FIPS" full="Federal Information Processing Standards"/>
      <term abbr="FM" full="Frequency Modulation"/>
      <term abbr="FQDN" full="Fully Qualified Domain Name"/>
      <!-- <term full="Features (Biometrics)"> Distinctive mathematical characteristics derived from a
      biometric sample, used to generate enrollment or authentication templates.</term> ToDo: Remove per bio cPP module -->
      <term full="Finite Field Cryptography" abbr="FFC"/>
      <term full="File Encryption Key" abbr="FEK" plural="FEKs"> A DEK used to encrypt a file or a director when
        File Encryption is used. FEKs are unique to each encrypted file or directory. </term>
      <term abbr="GCM" full="Galois Counter Mode"/>
      <term abbr="GPS" full="Global Positioning System"/>
      <term abbr="GPU" full="Graphics Processing Unit"/>
      <term full="Hardware-Isolated Keys"> The OS can only access these keys by reference, if
        at all, during runtime. </term>
      <term abbr="HDMI" full="High Definition Multimedia Interface"/>
      <term abbr="HMAC" full="Keyed-Hash Message Authentication Code"/>
      <term abbr="HTTPS" full="HyperText Transfer Protocol Secure"/>
      <term full="Hybrid Authentication"> A hybrid authentication factor is one where a user has to
        submit a combination of a biometric sample and a PIN or password and both must pass. If either factor fails, the entire attempt fails. The user shall not be made aware of which factor failed, if either fails.</term>
      <term full="Immutable Hardware Key"> These keys are stored as hardware-protected raw key and
        cannot be changed or sanitized.</term>
      <term abbr="IEEE" full="Institute of Electrical and Electronics Engineers"/>
      <term abbr="IP" full="Internet Protocol"/>
      <term abbr="IPC" full="Inter-Process Communication"/>
      <term abbr="IPsec" full="Internet Protocol Security"/>
      <term abbr="KAT" full="Known Answer Test" plural="KATs"/>
      <term full="Key Chaining"> The method of using multiple layers of encryption keys to protect
        data. A top layer key encrypts a lower layer key, which encrypts the data; this method can
      have any number of layers.</term>
      <term full="Key Derivation Function" abbr="KDF"/>
      <term full="Key Encryption Key" abbr="KEK"> A key used to encrypt other keys, such as DEKs or
        storage that contains keys.</term>
      <!-- <term full="Liveness Detection"> A technique used to ensure that the biometric sample
        submitted is from an end user. A liveness detection method can help protect the system
        against some types of spoofing attacks.</term> ToDo: Remove per bio cPP module -->
      <term full="Locked State"> Powered on but most functionality is unavailable for use. User
        authentication is required to access functionality.</term>
      <term abbr="LE" full="(Bluetooth) Low Energy"/>
      <term abbr="LTE" full="Long Term Evolution"/>
      <term full="Mobile Device" abbr="MD"> A device which is composed of a hardware platform and
        its system software. The device typically provides wireless connectivity and may include
        software for functions like secure messaging, email, web, VPN (Virtual Private Network) connection, and VoIP (Voice
        over IP), for access to the protected enterprise network, enterprise data and applications,
        and for communicating to other Mobile Devices. </term>
      <term full="Mobile Device Management" abbr="MDM"> Mobile device management (MDM) products
        allow enterprises to apply security policies to mobile devices. This system consists of two
        primary components: the MDM server and the MDM agent. </term>
      <term abbr="MMI" full="Man-Machine Interface"/>
      <term abbr="MMU" full="Memory Management Unit"/>
      <term abbr="MMS" full="Multimedia Messaging Service"/>
      <term full="MDM Agent">The MDM agent is installed on a Mobile Device as an application or is
        part of the Mobile Device’s OS. The MDM agent establishes a secure connection back to the
        MDM server controlled by the administrator.</term>
      <term full="Minutia Point"> Friction ridge characteristics that are used to individualize a
        fingerprint image. Minutia are the points where friction ridges begin, terminate, or split
        into two or more ridges. In many fingerprint systems, the minutia points are compared for
        recognition purposes.</term>
      <term full="Mobile Device User (User)"> The individual authorized to physically control and
        operate the Mobile Device. Depending on the use case, this can be the device owner or an
        individual authorized by the device owner.</term>
      <term full="Modality (Biometrics)"> A type or class of biometric system, such as fingerprint
        recognition, facial recognition, iris recognition, voice recognition, signature/sign, and
        others.</term>
      <term full="Mutable Hardware Key"> These keys are stored as hardware-protected raw key and can
      be changed or sanitized.</term>
      <term full="Network Time Protocol" abbr="NTP"/>
      <!-- <term full="NIST Fingerprint Image Quality" abbr="NFIQ"> A machine-learning algorithm that
        reflects the predictive positive or negative contribution of an individual sample to the
        overall performance of a fingerprint matching system. <h:br/> NFIQ 1.0 scores are
        calculated on a scale from 1 to 5, where NFIQ = 1 indicates high quality samples and NFIQ =
        5 indicates poor quality samples <xref to="NFIQ1.0"/>. <h:br/> NFIQ 2.0 scores are
        calculated on a scale from 0 to 100, where NFIQ = 0 indicates poor quality samples and NFIQ
        = 100 indicates high quality samples <xref to="NFIQ2.0"/>. </term> ToDo: Remove per bio cPP module -->
      <term abbr="NFC" full="Near Field Communication"/>
      <term abbr="NIST" full="National Institute of Standards and Technology"/>
      <term abbr="NX" full="Never Execute"/>
      <term full="Operating System" abbr="OS"> Software that runs at the highest privilege level
        and can directly control hardware resources. Modern Mobile Devices typically have at least
        two primary operating systems: one, which runs on the application processor and one,
        which runs on the cellular baseband processor. The OS of the application processor handles most
        user interactions and provides the execution environment for apps. The OS of the cellular
        baseband processor handles communications with the cellular network and may control other
        peripherals. The term OS, without context, may be assumed to refer to the OS of the
        application processor. </term>
      <term abbr="OCSP" full="Online Certificate Status Protocol"/>
      <term abbr="OID" full="Object Identifier"/>
      <term abbr="OTA" full="Over the Air"/>
      <term full="Password Authentication Factor"> A type of authentication factor requiring the
        user to provide a secret set of characters to gain access.</term>
      <term full="PIN Authentication Factor"> A PIN is a set of numeric or alphabetic characters that may be used
        in addition to a biometric factor to provide a hybrid authentication factor. At this time it
        is not considered as a stand-alone authentication mechanism. A PIN is distinct from a password in that the allowed character set and required length of a PIN
      is typically smaller than that of a password as it is designed to be input quickly.</term>
      <term abbr="PIV" full="Personal Identity Verification"/>
      <!-- <term full="Presentation Attack Detection" abbr="PAD"> A technique used to ensure that the
        biometric sample submitted is from an end user. A presentation attack detection method can
        help protect the system against some types of spoofing attacks. </term> ToDo: Remove per bio cPP module -->
      <term full="Powered Off State"> The device has been shut down such that no TOE function can be
        performed.</term>
      <term abbr="PAE" full="Port Access Entity"/>
      <term abbr="PBKDF" full="Password-Based Key Derivation Function"/>
      <term abbr="PSK" full="Pre-Shared Key" plural="PSKs"/>
      <term abbr="PRF" full="Pseudorandom Function"/>
      <term abbr="PMK" full="Pairwise Master Key"/>
      <term abbr="PTK" full="Pairwise Temporal Key"/>
      <term abbr="PD" full="Protected Data"> Protected data is all non-TSF data, including all user
        or enterprise data. Some or all of this data may be considered sensitive data as well. </term>
      <!--  <term full="Rich Operating System (Rich OS)"> This term is a synonym used to refer to the
        primary operating system of the application processor defined above under "Operating System
        (OS)". This term is used to distinguish the primary operating system from an operating
        system executing in a smaller, isolated execution environment that may be present on the
        processor.</term>-->
      <term full="Root Encryption Key" abbr="REK" plural="REKs"> A key tied to the device used to encrypt other
        keys. </term>
      <term abbr="RA" full="Registration Authority"/>
      <term abbr="RBG" full="Random Bit Generator"/>
      <term abbr="ROM" full="Read-only memory"/>
      <term abbr="RSA" full="Rivest Shamir Adleman Algorithm"/>
      <term full="Sensitive data"> Sensitive data shall be identified in the TSS section of the
        Security Target (ST) by the ST author. Sensitive data is a subset or all of the Protected
        data. Sensitive data may include all user or enterprise data or may be specific application
        data such as emails, messaging, documents, calendar items, and contacts. Sensitive data is
        protected while in the locked state (FDP_DAR_EXT.2). </term>
      <!-- Will need to do something with this. Currently have SW keys defined. Need Protective keys or sensitive keys. Likely will need to be introduced when we reference the DSC. -->
      <!--  <term full="Sensitive keys"> Sensitive keys must minimally include some or all keys in software-based key storage.</term>-->
      <term full="Software Keys"> The OS access the raw bytes of these keys during runtime.</term>
      <term abbr="SHA" full="Secure Hash Algorithm"/>
      <term abbr="SMS" full="Short Messaging Service"/>
      <term abbr="SPI" full="Security Parameter Index"/>
      <term abbr="SSH" full="Secure Shell"/>
      <term abbr="SSID" full="Service Set Identifier"/>
      <!--     <term abbr="ST" full="Security Target"/>  -->
      <term abbr="SAFAR" full="System Authentication False Accept Rate" plural="SAFARs"/>
      <term abbr="SoC" full="System On a Chip" plural="SoCs"/>
      <!-- <term full="Template (Biometrics)"> A digital representation of an individual’s distinct
        characteristics, representing information extracted from a biometric sample. This PP further
        defines enrollment templates and authentication templates.</term> ToDo: Remove per bio cPP module -->
      <!-- <term full="Threshold"> A user setting for biometric systems operating in verification.
        Thresholds are also used in enrollment if enrollment templates are created and compared to
        each other. The acceptance or rejection of biometric data in verification is dependent on
        the match score falling above or below the threshold. The threshold is adjustable so that
        the biometric system can be more or less strict, depending on the requirements of any given
        biometric application.</term> ToDo: Remove per bio cPP module -->
      <term full="Trust Anchor Database"> A list of trusted root Certificate Authority
        certificates.</term>
      <term full="TSF Data"> Data for the operation of the TSF upon which the enforcement of the
        requirements relies.</term>
      <term abbr="TLS" full="Transport Layer Security"/>
  <!--     <term abbr="TSF" full="TOE Security Functionality"/>
      <term abbr="TSS" full="TOE Summary Specification"/>  -->
      <term full="Unenrolled State"> The state in which the Mobile Device is not managed. </term>
      <term full="Unlocked State"> Powered on and device functionality is available for use. Implies
        user authentication has occurred (when so configured).</term>
      <term abbr="URI" full="Uniform Resource Identifier"/>
      <term abbr="USB" full="Universal Serial Bus"/>
      <term abbr="USSD" full="Unstructured Supplementary Service Data"/>
      <term full="Verification (Biometrics)"> A task where the biometric system attempts to confirm
        an individual’s claimed identity by comparing a submitted sample to one or more previously
        enrolled authentication templates.</term>
      <term abbr="VPN" full="Virtual Private Network"/>
      <!-- <term abbr="Wi-Fi" full="Wireless Fidelity"/> -->
      <term abbr="XCCDF" full="eXtensible Configuration Checklist Description Format"/>
      <term abbr="XTS" full="XEX (XOR Encrypt XOR) Tweakable Block Cipher with Ciphertext Stealing"/>
    </tech-terms>
    <section title="Scope of Document" id="scope"> 
      
      
      The scope of the PP within the
      development and evaluation process is described in the Common Criteria for Information
      Technology Security Evaluation <xref g="CC"/>. In particular, a PP defines the IT security
      requirements of a generic type of TOE and specifies the functional and assurance security
      measures to be offered by that TOE to meet stated requirements <xref g="CC"/>. </section>
    <section title="Intended Readership" id="intread"> The target audiences of this PP are Mobile
      Device developers, CC consumers, evaluators and schemes. </section>
    <section title="TOE Overview" id="toeov"> This assurance standard specifies information security
      requirements for Mobile Devices for use in an enterprise. A Mobile Device in the context of
      this assurance standard is a device, which is composed of a hardware platform and its system
      software. The device typically provides wireless connectivity
      <!-- Future: expand on what RF wireless includes -->and may include software for functions
      like secure messaging, email, web, VPN connection, and VoIP (Voice over IP), for access to the
      protected enterprise network, enterprise data and applications, and for communicating to other
      Mobile Devices. <h:br/><h:br/>
      <xref to="NetEnv"/> illustrates the network operating environment of the Mobile Device. <h:br/><h:br/>
      <figure entity="images/figure1.jpg" title="Mobile Device Network Environment" id="NetEnv"/>
      <h:br/>
      <h:br/> Examples of a "Mobile Device" that should claim conformance to this Protection
      Profile include smartphones, tablet computers, and other Mobile Devices with similar
      capabilities. <h:br/><h:br/> The Mobile Device provides essential services, such as
      cryptographic services, data-at-rest protection, and key storage services to support the
      secure operation of applications on the device. Additional security features such as security
      policy enforcement, application mandatory access control, anti-exploitation features, user
      authentication, and software integrity protection are implemented in order to address threats.
      <h:br/><h:br/> This assurance standard describes these essential security services
      provided by the Mobile Device and serves as a foundation for a secure mobile architecture. The
      wireless connectivity shall be validated against the <xref to="mod-wlanclient"/>. If the
      mobile device contains Bluetooth functionality (i.e., has Bluetooth hardware), the Bluetooth
      connectivity shall be evaluated against the <xref to="mod-bluetooth"/>.
	  As illustrated in <xref to="TOE"/>, it is expected that a typical deployment would also include either
      third-party or bundled components. Whether these components are bundled as part of the Mobile
      Device by the manufacturer or developed by a third-party, they must be separately validated
      against the related assurance standards such as <xref to="mod-mdmagent"/>, <xref to="mod-vpnclient"/>, and <xref to="mod-wlanclient"/>. It is the responsibility of the architect of
      the overall secure mobile architecture to ensure validation of these components. Additional
      applications that may come pre-installed on the Mobile Device that are not validated are
      considered to be potentially flawed, but not malicious. Examples include email client and web
      browser. <h:br/><h:br/>
      <figure entity="images/figure2.jpg" title="Optional Additional Mobile Device Components" id="TOE"/>
      <h:br/>
    </section>

    <sec:Use_Cases>
		<h:p>
        The Mobile Device may be operated in a number of use cases. 
        This section provides use case templates that list those selections,
        assignments, and objective requirements that best support the use cases identified by this
        PP.
        In addition to providing essential security services, the Mobile Device
        includes the necessary security functionality to support configurations for these various use
        cases.
        Each use case may require additional configuration and applications to achieve the
        desired security.
        A selection of these use cases is elaborated below.
      </h:p><h:p>
        Several of the use case templates include objective requirements that are strongly desired for
        the indicated use cases.
        Readers can expect those requirements to be made mandatory in a
        future revision of this protection profile, and industry should aim to include that security
        functionality in products in the near-term.
      </h:p><h:p> 
        As of publication of this version of the PP, meeting the requirements in 
        <xref to="Security_Requirements"/> is necessary for all use cases.
      </h:p>
		
      <usecases>
      <usecase title="Enterprise-owned device for general-purpose enterprise use and limited personal use" id="uc-enterprise">
      <description>
      <h:p>
        An enterprise-owned device for general-purpose business use is commonly
        called <h:i>Corporately Owned, Personally Enabled (COPE)</h:i>.
        This use case entails a significant degree of enterprise control over configuration 
        and, possibly, software inventory.
        The enterprise elects to provide users with Mobile Devices and additional applications (such as
        VPN or email clients) in order to maintain control of their Enterprise data and security of
        their networks.
        Users may use Internet connectivity to browse the web or access corporate mail
        or run enterprise applications, but this connectivity may be under significant control of the
        enterprise.
      </h:p>
        <h:p>
        A TOE that conforms to this use case is expected to make the following SFR claims:
        </h:p>
        <h:table>
          <h:tr>
            <h:td><h:b>Requirement</h:b></h:td>
            <h:td><h:b>Action</h:b></h:td>
          </h:tr>
          <h:tr>
          <h:td>FCS_STG_EXT.1.2</h:td>
          <h:td>Do not select "the user".</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-location"/> (configuration of location)</h:td>
            <h:td>At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-unlockBanner"/> (configuration of unlock banner)</h:td>
            <h:td>At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-USB"/> (configuration of USB data functions)</h:td>
            <h:td>Include in ST and select "USB mass storage mode" at minimum. At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-tethering"/> (configuration of tethering)</h:td>
            <h:td>Include in ST and select "USB tethering..." At minimum, specify the Admin column in the table as being associated with this function. Additionally, if the TOE claims conformance to <xref to="mod-bluetooth"/>, select "Bluetooth tethering." </h:td>
          </h:tr>
          <h:tr>
            <h:td>FPT_BBD_EXT.1</h:td>
            <h:td>Include in ST.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FPT_TST_EXT.2/POSTKERNEL</h:td>
            <h:td>Include in ST and select "all executable code" in FPT_TST_EXT.2.1/POSTKERNEL</h:td>
          </h:tr>
          <h:tr>
            <h:td>FPT_TUD_EXT.5</h:td>
            <h:td>Include in ST.</h:td>
          </h:tr>
        </h:table>
        <h:p>If an SFR is not listed here, this use case does not mandate or prohibit any of its available selections or assignments.</h:p>
      </description>
        <!-- 
      <config>
        <not><ref-id>import-user</ref-id></not>
        <ref-id>mf-location</ref-id>
        <guidance><ref-id>a-server</ref-id>Include personal Hotspot connections in the assignment</guidance>
        <ref-id>mf-unlockBanner</ref-id>
        <ref-id>s-usbstore</ref-id>
        <ref-id>s-tether</ref-id>
        <ref-id>fc-ap_med</ref-id>
        <ref-id>s-all-exe</ref-id>
        <ref-id>fc-crypt-veri</ref-id>
        <ref-id>fc-banner</ref-id>
      </config>
        -->
      </usecase>
<!--
      <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="serverProtocols"/></h:td><h:td>Include in ST. Assign personal Hotspot
          connections (if feature exists).</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="unlockBanner"
          /></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="USB"
          /></h:td><h:td>Include in ST. Select "USB Mass storage mode."</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="hotspot"
          /></h:td><h:td>Include in ST. Select "USB tethering."</h:td></h:tr>
      
      <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="serverProtocols"/></h:td><h:td>Include in ST. Assign personal Hotspot
          connections (if feature exists).</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="unlockBanner"
          /></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="USB"
          /></h:td><h:td>Include in ST. Select "USB Mass storage mode."</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="hotspot"
          /></h:td><h:td>Include in ST. Select both options.</h:td></h:tr>
      <h:tr><h:td>FPT_BBD_EXT.1.1</h:td><h:td>Include in
        ST.</h:td></h:tr>
      <h:tr><h:td>FPT_TST_EXT.2.1/POSTKERNEL</h:td><h:td>Include in ST and
          Select "all executable code stored in mutable media."</h:td></h:tr>
      <h:tr><h:td>FPT_TUD_EXT.4.1</h:td><h:td>Include in
        ST.</h:td></h:tr>
      <h:tr><h:td>FTA_TAB.1.1</h:td><h:td>Include in
        ST.</h:td></h:tr>
    </h:table>
  </section>-->

  <usecase title="Enterprise-owned device for specialized, high security use" id="uc-secure">
      <description>
      <h:p>
    An enterprise-owned device with intentionally limited network connectivity, tightly controlled configuration, and limited software inventory is appropriate for specialized, high-security use cases. For example, the device may not be permitted connectivity to any external peripherals. It may only be able to communicate via its Wi-Fi or cellular radios with the enterprise-run network, which may not even permit connectivity to the Internet. Use of the device may entail compliance with policies that are more restrictive than those in any general-purpose use case, yet may mitigate risks to highly sensitive information. As in the previous case, the enterprise will look for additional applications providing enterprise connectivity and services to have a similar level of assurance as the platform.
      </h:p>
        <h:p>
          A TOE that conforms to this use case is expected to make the following SFR claims:
        </h:p>
        <h:table>
          <h:tr>
            <h:td><h:b>Requirement</h:b></h:td>
            <h:td><h:b>Action</h:b></h:td>
          </h:tr>
          <h:tr>
            <h:td>FCS_CKM.1.1/AKG</h:td>
            <h:td>If "RSA" is selected, the selection for cryptographic algorithm parameters must include, but is not limited to, "3072."</h:td>
          </h:tr>
          <h:tr>
            <h:td>FCS_CKM_EXT.7.1/LOCKED</h:td>
            <h:td>Do not select "ECDH-Ed."</h:td>
          </h:tr>
          <h:tr>
            <h:td>FCS_TLSC_EXT.1.2 (<xref to="tls"/>)</h:td>
            <h:td>Select "TLS_RSA_WITH_AES_256_GCM_SHA384" or "TLS_ECDHE_ECDSA_WITH AES_256_GCM_SHA384".</h:td>
          </h:tr>
          <h:tr>
            <h:td>FIA_X509_EXT.2.2 (<xref to="X509"/>)</h:td>
            <h:td>Select either "administrator is allowed to configure certificate acceptance" or "certificate is not accepted".</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-vpn"/> (VPN protection)</h:td>
            <h:td>At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-radios"/> (configuration of radios)</h:td>
            <h:td>Assign all radios on TOE. At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-audioVisual"/> (configuration of audio and visual collection devices)</h:td>
            <h:td>Complete the assignment with all audio and visual collection devices present on the TOE. At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-certWipe"/> (removal of certificates from certificate store )</h:td>
            <h:td>Assign all X.509v3 certificates in the Trust Anchor Database.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-notifications"/> (configuration of notifications)</h:td>
            <h:td>Select "all notifications".</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-dar"/> (configuration of Data at Rest)</h:td>
            <h:td>At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-location"/> (configuration of location)</h:td>
            <h:td>At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-externalPorts"/> (configuration of externally accessible hardware ports)</h:td>
            <h:td>Include in ST. Assign at least USB.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-unenroll"/> (unenroll the TOE from management)</h:td>
            <h:td>Include in ST. At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-alwaysOnVPN"/> (configuration of always on VPN)</h:td>
            <h:td>Include in ST (if IPsec is selected in FTP_ITC_EXT.1).</h:td>
          </h:tr>   
          <h:tr>
            <h:td>FMT_SMF_EXT.2.1</h:td>
            <h:td>Select "wipe of protected data" and "wipe of sensitive data".</h:td>
          </h:tr>
          <h:tr>
            <h:td>FAU_SEL.1.1</h:td>
            <h:td>Include in ST. Select "event type", "success of auditable security events", and "failure of auditable security events".</h:td>
          </h:tr>
          <h:tr>
            <h:td>FCS_SRV_EXT.2.1</h:td>
            <h:td>Include in ST.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FPT_AEX_EXT.5.1</h:td>
            <h:td>Include in ST.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FPT_AEX_EXT.5.2</h:td>
            <h:td>Include in ST.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FPT_BBD_EXT.1.1</h:td>
            <h:td>Include in ST.</h:td>
          </h:tr>        
        </h:table>
        <h:p>If an SFR is not listed here, this use case does not mandate or prohibit any of its available selections or assignments.</h:p>
    

      </description>
    <!-- 
      <config>
  <or>
    <and>
      <guidance><ref-id>a-keygen-rsa-size</ref-id>Set to 3072</guidance>
      <or>
        <ref-id>s-rek-sym</ref-id><ref-id>s-rek-256</ref-id>
      </or>	
      <or>
        <ref-id>s-kek-sym-256</ref-id>
        <guidance><ref-id>a-kek-asym-size</ref-id>256</guidance>
      </or>
    </and>
    <and>
      <ref-id>s-keygen-ecc</ref-id>
      <or>
        <and><ref-id>s-rek-sym</ref-id><ref-id>s-rek-256</ref-id></and>
        <and><ref-id>s-rek-asym</ref-id><ref-id>s-rek-192</ref-id></and>
      </or>	
      <or>
        <ref-id>s-kek-sym-256</ref-id>
        <guidance><ref-id>a-kek-asym-size</ref-id>256</guidance>
      </or>
            <doc ref="tls"><ref-id>s-tls-secp384</ref-id></doc>
    </and>
  </or>
  <or><ref-id>s-locked-ecc-800-56A</ref-id><ref-id>s-locked-rsa</ref-id></or>
  <ref-id>s-encrypt-256</ref-id>
  <ref-id>s-rbg-256</ref-id>
  <ref-id>s-dar-256</ref-id>
  <or><ref-id>s-revoke-admin</ref-id><ref-id>s-revoke-deny</ref-id></or>
  <ref-id>mf-vpn</ref-id>
  <guidance><ref-id>a-mf-radios</ref-id>assign all radios on TSF</guidance>
  <guidance><ref-id>a-audiovisual-devs</ref-id>assign all audio or visual collection devices on TSF</guidance>
  <ref-id>mf-dar</ref-id>
  <ref-id>mf-location</ref-id>
  <ref-id>mf-unenroll</ref-id>
  
<ref-id>mf-alwaysOnVPN</ref-id> 
      </config> -->
  </usecase>
<!-- 
  <section id="usecase2" title="[USE CASE 2] Enterprise-owned device for specialized, high-security use">
    <ctr id="uc2" ctr-type="Table">: High Security Template</ctr>
    <h:table>
      <h:tr class="header"><h:td>Requirement</h:td><h:td>Action</h:td></h:tr>
      <h:tr><h:td>FCS_CKM.1.1</h:td><h:td>Select RSA with key size of 3072 or select ECC schemes.</h:td></h:tr>
      <h:tr><h:td>FCS_CKM.2.1/UNLOCKED</h:td><h:td>Select ECC schemes, if ECC schemes are selected in FCS_CKM.1.1.</h:td></h:tr>
      <h:tr><h:td>FCS_CKM.2.1/LOCKED</h:td><h:td>Select "RSA schemes" or select "ECC schemes that meet NIST SP 800-56A Revision 3".</h:td></h:tr>
      <h:tr><h:td>FCS_CKM_EXT.1.1</h:td><h:td>If "symmetric" is selected then "256 bits" must be selected. If "asymmetric" is selected and RSA scheme is selected in FCS_CKM.1.1 then "128 bits" can be selected. If "asymmetric" is selected and ECC scheme is selected in FCS_CKM.1.1, then "192 bits" can be selected. </h:td></h:tr>
      <h:tr><h:td>FCS_CKM_EXT.2.1</h:td><h:td>Select 256 bits.</h:td></h:tr>
      <h:tr><h:td>FCS_CKM_EXT.3.1</h:td><h:td>If asymmetric KEKs is selected and RSA scheme is selected in FCS_CKM.1.1 then assign 128 bits security strength. If asymmetric KEKs is selected and ECC scheme is selected in FCS_CKM.1.1 then assign 192 bits security strength. If symmetric KEKs is selected, select 256 bit security strength.</h:td></h:tr>
      <h:tr><h:td>FCS_COP.1.1/ENCRYPT</h:td><h:td>Select 256 bits.</h:td></h:tr>
      <h:tr><h:td>FCS_COP.1.1/Hash</h:td><h:td>Select SHA-384.</h:td></h:tr>
      <h:tr><h:td>FCS_COP.1.1/SIGN</h:td><h:td>Assign a key size of 3072 for RSA or select ECDSA schemes.</h:td></h:tr>
      <h:tr><h:td>FCS_CKM_EXT.8</h:td><h:td>Select 256 bits.</h:td></h:tr>
      <h:tr><h:td>FCS_RBG_EXT.1.2</h:td><h:td>Select 256 bits.</h:td></h:tr>
      <h:tr><h:td>FCS_TLSC_EXT.1.1 (TLS Package)</h:td><h:td>Select TLS_RSA_WITH_AES_256_GCM_SHA384 or TLS_ECDHE_ECDSA_WITH AES_256_GCM_SHA384.</h:td></h:tr>
      <h:tr><h:td>FCS_TLSC_EXT.2.1 (TLS Package)</h:td><h:td>Select secp384r1, if included in ST (if ECC schemes are selected in FCS_CKM.1.1). </h:td></h:tr>
      <h:tr><h:td>FDP_DAR_EXT.1.2</h:td><h:td>Select 256 bits.</h:td></h:tr>
      <h:tr><h:td>FIA_X509_EXT.2.2</h:td><h:td>Select either "allow the administrator to choose..." or "not accept the certificate".</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 <xref to=""/><xref to="vpn"/></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 <xref to=""/><xref to="radios"/></h:td><h:td>Assign all radios on TSF. </h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 <xref to=""/><xref to="audioVisual"/></h:td><h:td>Assign all audio or visual collection devices on TSF.</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 <xref to=""/><xref to="dar"/></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 <xref to=""/><xref to="location"/></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 <xref to=""/><xref to="unenroll"/></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_MOF_EXT.1.2 <xref to=""/><xref to="alwaysOnVPN"/></h:td><h:td>Include in ST (if IPsec is selected in FTP_ITC_EXT.1).</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="certWipe"/></h:td><h:td>Assign all X.509v3 certificates in the Trust Anchor Database.</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="notifications"/></h:td><h:td>Select "f. all notifications".</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="externalPorts"/></h:td><h:td>Include in ST. Assign at least USB. </h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="serverProtocols"/></h:td><h:td>Include in ST. Assign all protocols where the TSF acts as a server. </h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="unlockBanner" /></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.2.1</h:td><h:td>Select "wipe of protected data" and "wipe of sensitive data".</h:td></h:tr>
      <h:tr><h:td>FAU_SAR.1.1</h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FAU_SAR.1.2</h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FAU_SEL.1.1</h:td><h:td>Include in ST. Select "event type", "success of auditable security events", and "failure of auditable security events".</h:td></h:tr>
      <h:tr><h:td>FCS_SRV_EXT.2.1</h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FPT_AEX_EXT.5.1</h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FPT_AEX_EXT.5.2</h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FPT_BBD_EXT.1.1</h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FTA_TAB.1.1</h:td><h:td>Include in ST.</h:td></h:tr>
    </h:table>
  </section>
  <section id="usecase3" title="[USE CASE 3] Personally-owned device for personal and enterprise use">
    <ctr id="uc3" ctr-type="Table">: BYOD Template</ctr>
    <h:table>
      <h:tr class="header"><h:td>Requirement</h:td><h:td>Action</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="vpn"/></h:td><h:td>Select "b. on a per-app basis", "c. on a per-groups of application basis" or both</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="audioVisual"/></h:td><h:td>Select "b. on a per-app basis", "c. on a per-groups of application basis" or both</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="entAppRemove"/></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="wipeEntData"/></h:td><h:td>Include in ST.</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to=""/><xref to="unenroll"/></h:td><h:td>Include in ST (M-M-)</h:td></h:tr>
      <h:tr><h:td>FMT_SMF_EXT.2.1</h:td><h:td>Select "Remove Enterprise Applications"</h:td></h:tr>
      <h:tr><h:td>FDP_ACF_EXT.1.2</h:td><h:td>Select "Groups of Applications"</h:td></h:tr>
      <h:tr><h:td>FDP_ACF_EXT.2.1</h:td><h:td>Include in ST.</h:td></h:tr>
    </h:table>
  </section>

-->
    <usecase id="uc-personal" title="Personally-owned device for personal and enterprise use">
      <description>
      <h:p>
      A personally-owned device that is used for both personal activities and enterprise data is commonly called Bring Your Own Device (BYOD). The device may be provisioned for access to enterprise resources after significant personal usage has occurred. Unlike in the enterprise-owned cases, the enterprise is limited in what security policies it can enforce because the user purchased the device primarily for personal use and is unlikely to accept policies that limit the functionality of the device. However, because the enterprise allows the user full (or nearly full) access to the enterprise network, the enterprise will require their own security controls to ensure that enterprise resources are protected from potential threats posed by the personal activities on the device. These controls could potentially be enforced by a separation mechanism built-in to the device itself to distinguish between enterprise and personal activities, or by a third-party application that provides access to enterprise resources and leverages security capabilities provided by the mobile device. 
      </h:p><h:p>
          A TOE that conforms to this use case is expected to make the following SFR claims:
        </h:p>
        <h:table>
          <h:tr>
            <h:td><h:b>Requirement</h:b></h:td>
            <h:td><h:b>Action</h:b></h:td>
          </h:tr>
          <h:tr>
            <h:td>FDP_ACF_EXT.1.2</h:td>
            <h:td>Select "groups of applications" in each of the first two selections.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-vpn"/> (VPN protection)</h:td>
            <h:td>Do not select "no other method."</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-audioVisual"/> (configuration of audio and visual collection devices)</h:td>
            <h:td>Do not select "no other method."</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-wipeEntData"/> (wipe Enterprise data)</h:td>
            <h:td>Include in ST. At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-unenroll"/> (unenroll the TOE from management)</h:td>
            <h:td>Include in ST. At minimum, specify the Admin column in the table as being associated with this function.</h:td>
          </h:tr>
          <h:tr>
            <h:td>FMT_SMF_EXT.2.1</h:td>
            <h:td>Select "remove Enterprise applications."</h:td>
          </h:tr>
          <h:tr>
            <h:td>FDP_ACF_EXT.1.2</h:td>
            <h:td>Select "Groups of Applications"</h:td>
          </h:tr>    
        </h:table>
        <h:p>If an SFR is not listed here, this use case does not mandate or prohibit any of its available selections or assignments.</h:p>
      
      
    </description>
      <!-- 
    <config>
      <or><ref-id>s-vpn-per-app</ref-id><ref-id>s-vpn-per-appgroup</ref-id><and><ref-id>s-vpn-per-app</ref-id><ref-id>s-vpn-per-appgroup</ref-id></and></or>
      <or><ref-id>s-audiovisual-per-app</ref-id><ref-id>s-audiovisual-per-appgroup</ref-id><and><ref-id>s-audiovisual-per-app</ref-id><ref-id>s-audiovisual-per-appgroup</ref-id></and></or>
      <ref-id>mf-entAppRemove</ref-id>
      <ref-id>mf-wipeEntData</ref-id>
      <ref-id>mf-unenroll</ref-id>
      <ref-id>s-smf-ext-2-rem-ent-app</ref-id>
      <ref-id>fdp_group</ref-id>
      <ref-id>fc_access_control_system</ref-id>
      -->
      <!-- <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to="mf-entAppRemove"/></h:td><h:td>Include in ST.</h:td></h:tr> -->
      <!-- <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to="mf-wipeEntData"/></h:td><h:td>Include in ST.</h:td></h:tr> -->
      <!-- <h:tr><h:td>FMT_SMF_EXT.1.1 <xref to="mf-unenroll"/></h:td><h:td>Include in ST (M-M-)</h:td></h:tr> -->
      <!-- <h:tr><h:td>FMT_SMF_EXT.2.1</h:td><h:td>Select "Remove Enterprise Applications"</h:td></h:tr> -->
      <!-- <h:tr><h:td>FDP_ACF_EXT.1.2</h:td><h:td>Select "Groups of Applications"</h:td></h:tr> -->
      <!-- <h:tr><h:td>FDP_ACF_EXT.2.1</h:td><h:td>Include in ST.</h:td></h:tr> -->
<!-- 
    </config>
      -->
      </usecase>
      <usecase id="uc-personal-limited" title="Personally-owned device for personal and limited enterprise use">
        <description>
        <h:br/>
        <h:p>
        A personally-owned device that is used for both personal activities and enterprise data is commonly called Bring Your Own Device (BYOD). This device may be provisioned for limited access to enterprise resources such as enterprise email. Because the user does not have full access to the enterprise or enterprise data, the enterprise may not need to enforce any security policies on the device. However, the enterprise may want secure email and web browsing with assurance that the services being provided to those clients by the Mobile Device are not compromised.</h:p>
          <h:p>No specific SFR claims are mandated or prohibited for a TOE that meets this use case.</h:p>
        </description>
      </usecase>
      </usecases>
    </sec:Use_Cases>

    <section title="Package Usage" id="package-usage">
      This section contains selections and assignments that are required when the listed Functional Packages are claimed by this PP. 
     
      
      <package-usage-list>

        <package-usage ref="tls">
          <usage id="usage-tls-protocols" title="TLS Protocol Claims required in FCS_TLS_EXT.1">
            <description>To support FTP_ITC_EXT.1 and FDP_UPC_EXT.1/APPS, the ST author shall claim support for TLS as a client. If DTLS is claimed in FTP_ITC_EXT.1, the ST author shall also claim support for DTLS as a client. Support for TLS as a server or DTLS as a server shall not be claimed.</description>
          <config>
            <ref-id>dummy-ref-id</ref-id>
          </config>
          </usage>
          <usage id="usage-tls-support-mutual-auth" title="TLS Client Claims required in FCS_TLSC_EXT.1">
            <description>To support FTP_ITC_EXT.1 and FDP_UPC_EXT.1/APPS, the ST author shall claim support for mutual authentication in FCS_TLSC_EXT.1.1. To support FCS_HTTPS_EXT.1.3, the ST author shall claim how the TOE handles invalid certificates in a manner that is consistent with the claims made in FCS_HTTPS_EXT.1.3. Regardless of the claims made for FCS_HTTPS_EXT.1.3, to support FDP_UPC_EXT.1/APPS, the ST author shall claim in FCS_TLSC_EXT.1.6 that invalid certificates are rejected with no exceptions in this specific case.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-tls-mutual-auth" title="Necessity of claiming FCS_TLSC_EXT.2">
            <description>Because support for TLS client mutual authentication is required, the ST author shall claim FCS_TLSC_EXT.2.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-tls-support-mutual-auth" title="DTLS Client Claims required in FCS_DTLSC_EXT.1">
            <description>To support FTP_ITC_EXT.1 and FDP_UPC_EXT.1/APPS specifically in the case where DTLS is claimed in FTP_ITC_EXT.1.1, the ST author shall claim support for mutual authentication in FCS_DTLSC_EXT.1.1.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-tls-mutual-auth" title="Necessity of claiming FCS_DTLSC_EXT.2 if DTLS is Supported">
            <description>DTLS support is not mandatory. However, if DTLS is claimed in FTP_ITC_EXT.1 or FDP_UPC_EXT.1/APPS, it is necessary for the TOE to support mutual authentication as a DTLS client. In this case, FCS_DTLS_EXT.2 shall be claimed as a result of the selections made in FCS_DTLSC_EXT.1.1.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
        
        </package-usage>
        <package-usage ref="X509">
          <usage id="usage-x509-validation" title="Certificate Validation and Assertion Required in FIA_XCU_EXT.1.1">
            <description>
              The ST author shall select the options to verify and assert certificate identities.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>   
            </config>
          </usage>
          <usage id="usage-x509-noplatform" title="No Platform-Provided Functionality Claims Permitted">
            <description>Because the TOE is the entire mobile device and encompasses the platform, the ST author shall not claim platform-provided functionality. In other words, any applicable SFRs 
              shall select the option to implement or provide the functionality, rather than rely on a platform. These may include one or more of the following, depending on the TOE, but apply to all package requirements that have such a selection:
              <h:ul>
                <h:li>FIA_CMCC_EXT.1</h:li>
                <h:li>FIA_CMPC_EXT.1</h:li>
                <h:li>FIA_ESTC_EXT.1</h:li>
                <h:li>FIA_X509_EXT.1</h:li>
                <h:li>FIA_X509_EXT.2</h:li>
                <h:li>FIA_X509_EXT.3</h:li>
              </h:ul>
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>   
            </config>
          </usage>
          <usage id="usage-x509-notca" title="No CA Claims Permitted">
            <description>
              The ST author shall select the option to request a certificate from an external CA in FIA_XCU_EXT.2.1 and shall not select any options elsewhere in the package that involve claiming the ability to be a CA. 
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-revocation-sigalgs" title="Limitations on Signature Algorithms in FIA_X509_EXT.1.1">
            <description>
              The TOE must utilize appropriate cryptographic algorithms that conform to CNSA standards. Thus, the ST author shall select to utilize no other algorithms outside of those defined in RFC 8603 for certificate or CRL signatures. 
              Additionally, the ST author shall not select to use ECDSA with SHA-512 signatures for OCSP responses, and shall select to utilize no other algorithms for OCSP responses.
            </description>
            <config>
            <ref-id>dummy-ref-id</ref-id>
          </config>
          </usage>
          <usage id="usage-x509-extensions" title="Required Extension Processing for FIA_X509_EXT.1.2">
            <description>
              The ST author shall select the options to process the basicConstraints and extendedKeyUsage extensions. Other extensions may be selected as appropriate without restriction.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-revocation-methods" title="CRL or OCSP-based Revocation Required for FIA_X509_EXT.1.3 ">
            <description>
              The ST author shall select only from options involving CRL or OCSP in FIA_X509_EXT.1.3.
            </description> 
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-revocation-connections" title="Connections to CRL or OCSP Servers Required for FIA_X509_EXT.1.4">
            <description>
              The ST author shall not select options related to not obtaining revocation status information. Revocation information must be obtained from a network connection via a supported CRL or OCSP function; CA retrieval or local status selections shall not be chosen.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-eku-values" title="Restrictions on Acceptable Key Usage Values for FIA_X509_EXT.1.5">
            <description>
              The ST author shall not select the option to pass certificate information to supported functions and shall select the option to verify certificates by evaluating the extendedKeyUsage field in the leaf certificate. <h:br/>
              Additionally, the ST author shall not select the option to validate certificates against any rules for S/MIME certificates.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-functions" title="Restrictions on Acceptable Functions for FIA_X509_EXT.2.1">
            <description>
              The ST author shall not select options that involve the S/MIME or SSH protocols. If the TOE supports TSF integrity testing (i.e., FPT_TST_EXT.3 is claimed), FIA_X509_EXT.2.1 must include a claim that X.509 certificates are supported for code signing for software integrity testing. If the TOE supports trusted update verification using code signing certificates (i.e., FPT_TST_EXT.4 is claimed in the context of the TOE's own updates), FIA_X509_EXT.2.1 must include a claim that X.509 certificates are supported for code signing for system software updates. If the TOE supports code signing for mobile apps (i.e., FPT_TUD_EXT.4 is claimed in the context of external apps), the assignment in FIA_X509_EXT.2.1 must be completed to reference "code signing for mobile applications."
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-acquisition-purposes" title="Restrictions on Acceptable Purposes for Certificate Acquisition for FIA_XCU_EXT.2.1">
            <description>
              The ST author shall not select options that involve the S/MIME or SSH protocols.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>

        </package-usage>
      </package-usage-list>
    </section>
    <!--
	  <section title="TOE Usage" id="toeus"> The Mobile Device may be operated in a number of use
      cases. <xref to="use"/> provides use case templates that list those selections,
      assignments, and objective requirements that best support the use cases identified by this
      Protection Profile. In addition to providing essential security services, the Mobile Device
      includes the necessary security functionality to support configurations for these various use
      cases. Each use case may require additional configuration and applications to achieve the
      desired security. A selection of these use cases is elaborated below. <h:br/><h:br/>
      Several of the use case templates include objective requirements that are strongly desired for
      the indicated use cases. Readers can expect those requirements to be made mandatory in a
      future revision of this protection profile, and industry should aim to include that security
      functionality in products in the near-term. <h:br/><h:br/> As of publication of this
      version of the Protection Profile, meeting the requirements in <xref to="Security_Requirements"/> is
      necessary for all use cases. <h:br/><h:br/>
      <h:b>[<ctr ctr-type="USE CASE" id="uc_entgenpurp"/>] Enterprise-owned device for
        general-purpose enterprise use and limited personal use</h:b>
      <h:br/><h:br/> An enterprise-owned device for general-purpose business use is commonly
      called Corporately Owned, Personally Enabled (COPE). This use case entails a significant
      degree of enterprise control over configuration and, possibly, software inventory. The
      enterprise elects to provide users with Mobile Devices and additional applications (such as
      VPN or email clients) in order to maintain control of their Enterprise data and security of
      their networks. Users may use Internet connectivity to browse the web or access corporate mail
      or run enterprise applications, but this connectivity may be under significant control of the
      enterprise. <h:br/><h:br/>
      <h:b>[<ctr ctr-type="USE CASE" id="uc_enthisec"/>] Enterprise-owned device for specialized,
        high-security use</h:b>
      <h:br/><h:br/> An enterprise-owned device with intentionally limited network connectivity,
      tightly controlled configuration, and limited software inventory is appropriate for
      specialized, high-security use cases. For example, the device may not be permitted
      connectivity to any external peripherals. It may only be able to communicate via its Wi-Fi or
      cellular radios with the enterprise-run network, which may not even permit connectivity to the
      Internet. Use of the device may entail compliance with policies that are more restrictive than
      those in any general-purpose use case, yet may mitigate risks to highly sensitive information.
      As in the previous case, the enterprise will look for additional applications providing
      enterprise connectivity and services to have a similar level of assurance as the platform. <h:br/><h:br/>
      <h:b>[<ctr ctr-type="USE CASE" id="uc_pergenpurp"/>] Personally-owned device for personal
        and enterprise use</h:b>
      <h:br/><h:br/> A personally-owned device, which is used, for both personal activities and
      enterprise data is commonly called Bring Your Own Device (BYOD). The device may be provisioned
      for access to enterprise resources after significant personal usage has occurred. Unlike in
      the enterprise-owned cases, the enterprise is limited in what security policies it can enforce
      because the user purchased the device primarily for personal use and is unlikely to accept
      policies that limit the functionality of the device. However, because the enterprise allows
      the user full (or nearly full) access to the enterprise network, the enterprise will require
      their own security controls to ensure that enterprise resources are protected from potential
      threats posed by the personal activities on the device. These controls could potentially be
      enforced by a separation mechanism built-in to the device itself to distinguish between
      enterprise and personal activities, or by a third-party application that provides access to
      enterprise resources and leverages security capabilities provided by the mobile device. Based
      upon the operational environment and the acceptable risk level of the enterprise, those
      security functional requirements outlined in <xref to="Security_Requirements"/> of this PP along with the
      selections in the Use Case 3 template defined in <xref to="use"/> are sufficient for
      the secure implementation of this BYOD use case. <h:br/><h:br/>
      <h:b>[<ctr ctr-type="USE CASE" id="uc_perlim"/>] Personally-owned device for personal and
        limited enterprise use</h:b>
      <h:br/><h:br/> A personally-owned device, which is used, for both personal activities and
      enterprise data is commonly called Bring Your Own Device (BYOD). This device may be
      provisioned for limited access to enterprise resources such as enterprise email. Because the
      user does not have full access to the enterprise or enterprise data, the enterprise may not
      need to enforce any security policies on the device. However, the enterprise may want secure
      email and web browsing with assurance that the services being provided to those clients by the
      Mobile Device are not compromised. Based upon the operational environment and the acceptable
      risk level of the enterprise, those security functional requirements outlined in 
      <xref to="Security_Requirements"/> of this PP are sufficient for the secure implementation of this BYOD use
      case. </section>
      -->
    
    
    <section title="Product Features Mapped to Implementation-dependent Requirements" id="sec-features">
      The feature(s) enumerated below, if implemented by the TOE, require that additional SFRs be claimed in the ST.<h:br/>
      <implements>
        <feature id="bluetooth" title="Bluetooth">
          <description>Bluetooth is a short-range wireless technology standard that is commonly used for exchanging data between devices over short distances. Most, if not all, mobile devices include Bluetooth hardware.<h:br/></description>
        </feature>
        <feature id="key-agreement-support" title="Key Agreement Support">
          <description>A conformant TOE is required to implement trusted communications. Depending on the specific protocols used and the supported connection parameters for these protocols, it may be necessary to implement one or more key agreement algorithms as part of key establishment.<h:br/></description>
        </feature>
      </implements>			
    </section>
    
</sec:Introduction>
  <sec:Conformance_Claims boilerplate="no">
    <!-- The new CClaimsInfo construct -->
    <CClaimsInfo cc-version="cc-2022r1" cc-approach="direct-rationale">
      <cc-st-conf>exact</cc-st-conf>       
      <cc-pt2-conf>extended</cc-pt2-conf>
      <cc-pt3-conf>extended</cc-pt3-conf>
      <cc-pp-conf/>
      <cc-pp-config-with>       
        <Mod-cc-ref>PP-Module for VPN Client, version 3.0</Mod-cc-ref>  
        <Mod-cc-ref>PP-Module for Bluetooth, version 2.0</Mod-cc-ref>
        <Mod-cc-ref>PP-Module for MDM Agent, version 2.0</Mod-cc-ref>
        <Mod-cc-ref>PP-Module for WLAN Client, version 2.0</Mod-cc-ref>
        <Mod-cc-ref>cPP-Module for Biometric Enrolment and Verification, version 2.0</Mod-cc-ref>  
      </cc-pp-config-with>
      <cc-pkg-claim>
        <FP-cc-ref conf="conformant">Functional Package for Transport Layer Security Version 2.1</FP-cc-ref>
        <FP-cc-ref conf="conformant">Functional Package for X.509 Version 1.0</FP-cc-ref>        
      </cc-pkg-claim>
    </CClaimsInfo>	
    
  </sec:Conformance_Claims>

  <!-- <sec:Conformance_Claims boilerplate="no"> -->
  <!--   <cclaims> -->
  <!--     <cclaim name="Conformance Statement"> -->
  <!--       <description><h:p> An ST must claim exact conformance to this PP, as defined in the CC and CEM -->
  <!--       addenda for Exact Conformance, Selection-Based SFRs, and Optional SFRs (dated May 2017).</h:p> -->
  <!-- 	<h:p> -->
  <!--         The following PP-Modules are allowed to be specified in a PP-Configuration with this PP. -->
  <!--         <h:ul> -->
  <!--               <h:li id="mod-vpnclient">PP-Module for VPN Client, Version 2.4</h:li> -->
  <!--               <h:li id ="mod-bluetooth">PP-Module for Bluetooth, Version 1.0</h:li> -->
  <!--               <h:li id="agentPPMod">PP-Module for MDM Agent, Version 1.0</h:li> -->
  <!--               <h:li id="mod-wlanclient">PP-Module for Wireless Local Access Network (WLAN) Client, Version 1.0</h:li> -->
  <!--               <h:li id="mod-biometrics">cPP-Module for Biometric Enrollment and Verification, Version 1.1</h:li> -->
  <!--         </h:ul> -->
  <!-- 	</h:p> -->
  <!--       </description> -->
  <!--     </cclaim> -->
  <!--     <cclaim name="CC Conformance Claims"> -->
  <!--       <description>This PP is conformant to Parts 2 (extended) and 3 (extended) of Common -->
  <!--         Criteria Version 3.1, Revision 5.</description> -->
  <!--     </cclaim> -->
  <!--     <cclaim name="PP Claim"> -->
  <!--       <description>This PP does not claim conformance to any Protection Profile.</description> -->
  <!--       <!-\- TODO: Need to determine how to reference the Biometric cPP. UPDATE:its a module so the entry above might suffice?-\-> -->
  <!--     </cclaim> -->
  <!--     <cclaim name="Package Claim"> -->
  <!--       <description>This PP is conformant to the following packages: -->
  <!--         <h:ul> -->
  <!--           <h:li id="tls">Functional Package for TLS, Version 1.1</h:li>             -->
  <!--         </h:ul> -->
  <!--       </description> -->
  <!--     </cclaim> -->
  <!--   </cclaims> -->
  <!-- </sec:Conformance_Claims> -->
  <sec:Security_Problem_Definition>
    <section title="Threats" id="thr"> Mobile devices are subject to the threats of traditional
      computer systems along with those entailed by their mobile nature. The threats considered in
      this PP are those of network eavesdropping, network attacks, physical access,
      malicious or flawed applications, persistent presence, and backup
      <!--  biometric impersonation, revocation of biometric credentials, and revocation of biometric template  -->as
      detailed in the following sections. 
      <threats>
        
        <threat name="T.MALICIOUS_APP">
          <description> Applications loaded onto the Mobile Device may include malicious or
            exploitable code. This code could be included intentionally or unknowingly by the
            developer, perhaps as part of a software library. Malicious apps may attempt to
            exfiltrate data to which they have access. They may also conduct attacks against the
            platform’s system software, which will provide them with additional privileges and the
            ability to conduct further malicious activities. Malicious applications may be able to
            control the device's sensors (GPS, camera, microphone) to gather intelligence about the
            user's surroundings even when those activities do not involve data resident or
            transmitted from the device. Flawed applications may give an attacker access to perform
            network-based or physical attacks that otherwise would have been prevented.</description>
          
          <addressed-by>FAU_GEN.1</addressed-by>
          <rationale>FAU_GEN.1 helps mitigate the threat of a malicious app by logging evidence of potential malicious activity.</rationale>
          <addressed-by>FAU_SAR.1</addressed-by>
          <rationale>FAU_SAR.1 helps mitigate the threat of a malicious app by providing a mechanism to read the audit trail.</rationale>          
          <addressed-by>FAU_STG.2</addressed-by>
          <rationale>FAU_STG.2 helps mitigate the threat of a malicious app by maintaining the availability of the audit trail.</rationale>
          <addressed-by>FAU_STG.5</addressed-by>
          <rationale>FAU_STG.5 helps mitigate the threat of a malicious app by maintaining the availability of the audit trail.</rationale>
          <addressed-by>FCS_COP.1/SKC</addressed-by>
          <rationale>FCS_COP.1/SKC helps mitigate the threat of a malicious app by implementing trusted cryptographic algorithm services that can be invoked by applications.</rationale>
          
          <addressed-by>FCS_RBG.6</addressed-by>
          <rationale>FCS_RBG.6 helps mitigate the threat of a malicious app by providing a secure and legitimate interface that can be invoked by apps to perform DRBG functionality.</rationale>
          <addressed-by>FCS_SRV_EXT.1</addressed-by>
          <rationale>FCS_SRV_EXT.1 helps mitigate the threat of a malicious app by providing a secure and legitimate interface that can be invoked by apps to perform cryptographic functionality.</rationale>
          <addressed-by>FDP_ACF_EXT.1</addressed-by>
          <rationale>FDP_ACF_EXT.1 helps mitigate the threat of a malicious app by restricting the system services that are accessible to applications.</rationale>
          <addressed-by>FMT_MOF_EXT.1</addressed-by>
          <rationale>FMT_MOF_EXT.1 helps mitigate the threat of a malicious app by limiting the management functions that are available to a given user.</rationale>
          <addressed-by>FMT_SMF_EXT.1</addressed-by>
          <rationale>FMT_SMF_EXT.1 helps mitigate the threat of a malicious app by defining the management functions that are provided by the TOE.</rationale>
          <addressed-by>FMT_SMF_EXT.2</addressed-by>
          <rationale>FMT_SMF_EXT.2 helps mitigate the threat of a malicious app by ensuring that sensitive data is purged from the TOE when it is no longer enrolled in mobile device management.</rationale>
          <addressed-by>FPT_AEX_EXT.1</addressed-by>
          <rationale>FPT_AEX_EXT.1 helps mitigate the threat of a malicious app by using address space layout randomization for all applications.</rationale>
          <addressed-by>FPT_AEX_EXT.2</addressed-by>
          <rationale>FPT_AEX_EXT.2 helps mitigate the threat of a malicious app by enforcing memory access permissions.</rationale>
          <addressed-by>FPT_AEX_EXT.3</addressed-by>
          <rationale>FPT_AEX_EXT.3 helps mitigate the threat of a malicious app by implementing stack-based buffer overflow protection running on non-privileged domains.</rationale>
          <addressed-by>FPT_AEX_EXT.4</addressed-by>
          <rationale>FPT_AEX_EXT.4 helps mitigate the threat of a malicious app by enforcing address space isolation.</rationale>
          <addressed-by>FPT_NOT_EXT.1</addressed-by>
          <rationale>FPT_NOT_EXT.1 helps mitigate the threat of a malicious app by failing to a secure state when self-test failures occur.</rationale>
          <addressed-by>FPT_STM.1</addressed-by>
          <rationale>FPT_STM.1 helps mitigate the threat of a malicious app by providing reliable time stamps for the audit trail.</rationale>
          <addressed-by>FPT_TST_EXT.1</addressed-by>
          <rationale>FPT_TST_EXT.1 helps mitigate the threat of a malicious app by performing self-tests that may detect a compromise of the TSF.</rationale>
          <addressed-by>FPT_TST_EXT.2/PREKERNEL</addressed-by>
          <rationale>FPT_TST_EXT.2/PREKERNEL helps mitigate the threat of a malicious app by performing self-tests that may detect a compromise of the TSF.</rationale>
          <addressed-by>FPT_TUD_EXT.1</addressed-by>
          <rationale>FPT_TUD_EXT.1 helps mitigate the threat of a malicious app by enforcing mechanisms that allow for the identification of the TSF and of applications running on it.</rationale>
          <addressed-by>FPT_TUD_EXT.2</addressed-by>
          <rationale>FPT_TUD_EXT.2 helps mitigate the threat of a malicious app by enforcing mechanisms that allow for maintaining the authenticity and integrity of the TSF.</rationale>
          <addressed-by>FPT_TUD_EXT.3</addressed-by>
          <rationale>FPT_TUD_EXT.3 helps mitigate the threat of a malicious app by enforcing mechanisms that allow for maintaining the authenticity and integrity of installed apps.</rationale>
          
          <addressed-by>FAU_SEL.1 (objective)</addressed-by>
          <rationale>FAU_SEL.1 helps mitigate the threat of a network attack by allowing the TSF to determine the behavior that indicates potential malicious activity in the audit trail.</rationale>       
          <addressed-by>FCS_SRV_EXT.2 (objective)</addressed-by>
          <rationale>FCS_SRV_EXT.2 helps mitigate the threat of a malicious app by providing a secure and legitimate interface that can be invoked by apps to interact with protected storage.</rationale>
          <addressed-by>FDP_ACF_EXT.3 (objective)</addressed-by>
          <rationale>FDP_ACF_EXT.3 helps mitigate the threat of a malicious app by enforcing policies on applications that prohibit write and execute permissions from being granted simultaneously.</rationale>
          <addressed-by>FDP_BCK_EXT.1 (objective)</addressed-by>
          <rationale>FDP_BCK_EXT.1 helps mitigate the threat of a malicious app by determining which data to include in backup operations.</rationale>
          <addressed-by>FDP_BLT_EXT.1 (objective)</addressed-by>
          <rationale>FDP_BLT_EXT.1 helps mitigate the threat of a malicious app by managing which applications communicate with Bluetooth devices.</rationale>
          <addressed-by>FMT_SMF_EXT.3 (objective)</addressed-by>
          <rationale>FMT_SMF_EXT.3 helps mitigate the threat of a malicious app by providing a current list of authorized administrators and their authorized management functions.</rationale>
          <addressed-by>FPT_AEX_EXT.5 (objective)</addressed-by>
          <rationale>FPT_AEX_EXT.5 helps mitigate the threat of a malicious app by enforcing kernel level ASLR.</rationale>
          <addressed-by>FPT_AEX_EXT.6 (objective)</addressed-by>
          <rationale>FPT_AEX_EXT.6 helps mitigate the threat of a malicious app by preventing non-privileged execution domains from being writable and executable.</rationale>
          <!-- Removed for github issue #43 and #113, can be added back if heap protections become common
          <addressed-by>FPT_AEX_EXT.7 (objective)</addressed-by>
          <rationale>FPT_AEX_EXT.7 helps mitigate the threat of a malicious app by enforcing heap-based buffer overflow protections.</rationale>
          -->
          <addressed-by>FPT_BBD_EXT.1 (objective)</addressed-by>
          <rationale>FPT_BBD_EXT.1 helps mitigate the threat of a malicious app by preventing the application processor's executable memory from being modified by the baseband processor.</rationale>
          <addressed-by>FPT_BLT_EXT.1 (objective)</addressed-by>
          <rationale>FPT_BLT_EXT.1 helps mitigate the threat of a malicious app by enforcing least functionality of the TOE's Bluetooth interface.</rationale>
          <addressed-by>FPT_NOT_EXT.2 (objective)</addressed-by>
          <rationale>FPT_NOT_EXT.2 helps mitigate the threat of a malicious app by enforcing remote attestation to ensure that the TSF has not been compromised.</rationale>
          <addressed-by>FPT_TST_EXT.2/POSTKERNEL (objective)</addressed-by>
          <rationale>FPT_TST_EXT.2/POSTKERNEL helps mitigate the threat of a malicious app by verifying the integrity of executable code after the kernel is loaded.</rationale>
          <addressed-by>FPT_TUD_EXT.5 (objective)</addressed-by>
          <rationale>FPT_TUD_EXT.5 helps mitigate the threat of a malicious app by enforcing installation of only trusted mobile application software.</rationale>
          <addressed-by> FPT_TUD_EXT.6 (objective)</addressed-by>
          <rationale>FPT_TUD_EXT.6 helps mitigate the threat of a malicious app by preventing intentional rollback of software updates.</rationale>
          
          <addressed-by>FDP_ACF_EXT.2 (selection-based)</addressed-by>
          <rationale>FDP_ACF_EXT.2 helps mitigate the threat of a malicious app by providing separate copies of system resources for different application groups.</rationale>
          <addressed-by>FPT_TST_EXT.3 (selection-based)</addressed-by>
          <rationale>FPT_TST_EXT.3 helps mitigate the threat of a malicious app by preventing the execution of untrusted application code.</rationale>
          <addressed-by>FPT_TUD_EXT.4 (selection-based)</addressed-by>
          <rationale>FPT_TUD_EXT.4 helps mitigate the threat of a malicious app by preventing the execution of untrusted updates.</rationale>
          
          <!--
          <objective-refer ref="O.PROTECTED_COMMS">
            <rationale>The threat T.MALICIOUS_APP is countered by O.PROTECTED_COMMS as this provides the
              capability to communicate using one (or more) standard protocols as a means to
              maintain the confidentiality of data that are transmitted outside of the
              TOE.</rationale>
          </objective-refer>
          <objective-refer ref="O.CONFIG">
            <rationale>The threat T.MALICIOUS_APP is countered by O.CONFIG as this provides the
              capability to configure and apply security policies to ensure the Mobile Device can
              protect user and enterprise data that it may store or process.</rationale>
          </objective-refer>
          <objective-refer ref="O.AUTH">
            <rationale>The threat T.MALICIOUS_APP is countered by O.AUTH as this provides the
              capability to authenticate the user and endpoints of a trusted path to ensure they are
              communicating with an authorized entity with appropriate privileges.</rationale>
          </objective-refer>
          <objective-refer ref="O.INTEGRITY">
            <rationale>The threat T.MALICIOUS_APP is countered by O.INTEGRITY as this provides the
              capability to perform self-tests to ensure the integrity of critical functionality,
              software/firmware and data has been maintained.</rationale>
          </objective-refer>
          <objective-refer ref="O.PRIVACY">
            <rationale>The threat T.MALICIOUS_APP is countered by O.PRIVACY as this provides
              separation and privacy between user activities.</rationale>
          </objective-refer>
          -->
        </threat>
        
        <threat name="T.NETWORK_ATTACK">
          <description> An attacker is positioned on a wireless communications channel or elsewhere
            on the network infrastructure. Attackers may initiate communications with the Mobile
            Device or alter communications between the Mobile Device and other endpoints in order to
            compromise the Mobile Device. These attacks include malicious software update of any
            applications or system software on the device. These attacks also include malicious web
            pages or email attachments, which are usually delivered to devices over the
            network.</description>
          
          <addressed-by>FAU_GEN.1</addressed-by>
          <rationale>FAU_GEN.1 helps mitigate the threat of a network attack by maintaining an audit trail of potential malicious activity.</rationale>
          <addressed-by>FAU_SAR.1</addressed-by>
          <rationale>FAU_SAR.1 helps mitigate the threat of a network attack by providing a mechanism to read the audit trail.</rationale>
          <addressed-by>FAU_STG.2</addressed-by>
          <rationale>FAU_STG.2 helps mitigate the threat of a network attack by maintaining the availability of the audit trail.</rationale>
          <addressed-by>FAU_STG.5</addressed-by>
          <rationale>FAU_STG.5 helps mitigate the threat of a network attack by maintaining the availability of the audit trail.</rationale>          
          <addressed-by>FCS_CKM.1/AKG</addressed-by>
          <rationale>FCS_CKM.1/AKG helps mitigate the threat of a network attack by ensuring the generation of strong keys used for trusted communications.</rationale>
          <addressed-by>FCS_CKM.1/SKG</addressed-by>
          <rationale>FCS_CKM.1/SKG helps mitigate the threat of a network attack by ensuring the generation of strong keys used for trusted communications.</rationale>          
          <addressed-by>FCS_CKM.2</addressed-by>
          <rationale>FCS_CKM.2 helps mitigate the threat of a network attack by implementing secure methods to perform key distribution for trusted communications.</rationale>
          <addressed-by>FCS_CKM_EXT.6</addressed-by>
          <rationale>FCS_CKM_EXT.6 helps mitigate the threat of network eavesdrop by using salts using where appropriate for cryptographic functions.</rationale>
          <addressed-by>FCS_COP.1/AEAD</addressed-by>
          <rationale>FCS_COP.1/AEAD helps mitigate the threat of network attack by implementing a method to encrypt data in transit.</rationale>
          <addressed-by>FCS_COP.1/Hash</addressed-by>
          <rationale>FCS_COP.1/Hash helps mitigate the threat of a network attack by ensuring that secure hash algorithms are used for trusted communications.</rationale>
          <addressed-by>FCS_COP.1/KeyedHash</addressed-by>
          <rationale>FCS_COP.1/KeyedHash helps mitigate the threat of a network attack by ensuring that secure HMAC algorithms are used for trusted communications.</rationale>
          <addressed-by>FCS_COP.1/SigGen</addressed-by>
          <rationale>FCS_COP.1/SigGen helps mitigate the threat of a network attack by ensuring that secure digital signature algorithms are used for trusted communications.</rationale>
          <addressed-by>FCS_COP.1/SigVer</addressed-by>
          <rationale>FCS_COP.1/SigVer helps mitigate the threat of a network attack by ensuring that secure digital signature algorithms are used for trusted communications.</rationale>
        
          
          <addressed-by>FCS_HTTPS_EXT.1</addressed-by>
          <rationale>FCS_HTTPS_EXT.1 helps mitigate the threat of a network attack by implementing a secure protocol (HTTPS) for trusted communications.</rationale>
          <addressed-by>FCS_RBG.1</addressed-by>
          <rationale>FCS_RBG.1 helps mitigate the threat of a network attack by ensuring that keys used for trusted communications are generated using a secure DRBG.</rationale>
          <addressed-by>FCS_RBG.6</addressed-by>
          <rationale>FCS_RBG.6 helps mitigate the threat of a network attack by providing a secure DRBG service for third-party applications running on the TOE which may use this service to generate their own cryptographic keys for trusted communications.</rationale>
          <addressed-by>FCS_SRV_EXT.1</addressed-by>
          <rationale>FCS_SRV_EXT.1 helps mitigate the threat of a network attack by ensuring applications have the proper mechanism to perform cryptographic operations.</rationale>
          <addressed-by>FDP_IFC_EXT.1</addressed-by>
          <rationale>FDP_IFC_EXT.1 helps mitigate the threat of a network attack by ensuring that the TOE has the ability to enforce the use of an IPsec VPN for all network traffic.</rationale> 
          <addressed-by>FDP_STG_EXT.1</addressed-by>
          <rationale>FDP_STG_EXT.1 helps mitigate the threat of network eavesdrop by protecting the X.509 certificates used for trusted communications.</rationale>  
          <addressed-by>FDP_UPC_EXT.1/APPS</addressed-by>
          <rationale>FDP_UPC_EXT.1/APPS helps mitigate the threat of network eavesdrop by implementing a means for applications to communicate securely via a trusted channel.</rationale> 
          <addressed-by>FMT_MOF_EXT.1</addressed-by>
          <rationale>FMT_MOF_EXT.1 helps mitigate the threat of a network attack by limiting the management functions that are available to a given user.</rationale>
          <addressed-by>FMT_SMF_EXT.1</addressed-by>
          <rationale>FMT_SMF_EXT.1 helps mitigate the threat of a network attack by providing a list of specific management functions.</rationale>
          <addressed-by>FMT_SMF_EXT.2</addressed-by>
          <rationale>FMT_SMF_EXT.2 helps mitigate the threat of a network attack by specifying the remediation actions allowed upon enrollment.</rationale>
          <addressed-by>FPT_FLS.1</addressed-by>
          <rationale>FPT_FLS.1 helps mitigate the threat of a network attack by ensuring that a malfunctioning DRBG function cannot be used to generate potentially insecure keys.</rationale>
          <addressed-by>FPT_STM.1</addressed-by>
          <rationale>FPT_STM.1 helps mitigate the threat of a malicious app by providing reliable time stamps for the audit trail.</rationale>
          <addressed-by>FPT_TST.1</addressed-by>
          <rationale>FPT_TST.1 helps mitigate the threat of a network attack by implementing a mechanism to detect when the DRBG may be failing to generate secure cryptographic keys.</rationale>
          <addressed-by>FTA_SSL_EXT.1</addressed-by>
          <rationale>FTA_SSL_EXT.1 helps mitigate the threat of a network attack by managing the transition to a locked state after a set time or operation.</rationale>      
          <addressed-by>FTP_ITC_EXT.1</addressed-by>
          <rationale>FTP_ITC_EXT.1 helps mitigate the threat of a network attack by requiring the TSF to implement trusted protocols for network communication.</rationale>
          
          <addressed-by>FAU_SEL.1 (objective)</addressed-by>
          <rationale>FAU_SEL.1 helps mitigate the threat of a network attack by allowing the TSF to determine the behavior that indicates potential malicious activity in the audit trail.</rationale>
          <addressed-by>FCS_RBG_EXT.2 (objective)</addressed-by>
          <rationale>FCS_RBG_EXT.2 helps mitigate the threat of a network attack by ensuring the DRBG state at power-off and startup remains the same.</rationale>
          <addressed-by>FCS_SRV_EXT.2 (objective)</addressed-by>
          <rationale>FCS_SRV_EXT.2 helps mitigate the threat of a network attack by ensuring applications have the proper mechanism to perform cryptographic operations with keys in secure storage.</rationale>
          <addressed-by>FDP_BLT_EXT.1 (objective)</addressed-by>
          <rationale>FDP_BLT_EXT.1 helps mitigate the threat of a network attack by managing which applications communicate with Bluetooth devices.</rationale>
          <addressed-by>FPT_BLT_EXT.1 (objective)</addressed-by>
          <rationale>FPT_BLT_EXT.1 helps mitigate the threat of a network attack by enforcing least functionality of the TOE's Bluetooth interface.</rationale>
          <addressed-by>FTA_TAB.1 (objective)</addressed-by>
          <rationale>FTA_TAB.1 helps mitigate the threat of a network attack by providing actionable consequences for misuse of the TSF.</rationale>
          
          <addressed-by>FCS_CKM_EXT.7/UNLOCKED (implementation-dependent)</addressed-by>
          <rationale>FCS_CKM_EXT.7/UNLOCKED helps mitigate the threat of a network attack by performing key establishment for trusted communications.</rationale>
          
          <addressed-by>FDP_UPC_EXT.1/BLUETOOTH (implementation-dependent)</addressed-by>
          <rationale>FDP_UPC_EXT.1/BLUETOOTH helps mitigate the threat of a network attack by protecting communication channels using Bluetooth functionality via a trusted channel.</rationale>   
          
       
          
          <addressed-by>FCS_RBG.2 (selection-based)</addressed-by>      
          <rationale>FCS_RBG.2 helps mitigate the threat of a network attack by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.3 (selection-based)</addressed-by>
          <rationale>FCS_RBG.3 helps mitigate the threat of a network attack by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.4 (selection-based)</addressed-by>
          <rationale>FCS_RBG.4 helps mitigate the threat of a network attack by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.5 (selection-based)</addressed-by>
          <rationale>FCS_RBG.5 helps mitigate the threat of a network attack by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>          
     
        </threat>
        
        <threat name="T.NETWORK_EAVESDROP">
          <description> An attacker is positioned on a wireless communications channel or elsewhere
            on the network infrastructure. Attackers may monitor and gain access to data exchanged
            between the Mobile Device and other endpoints, resulting in
            modification or disclosure of sensitive communications. </description>
          
          <addressed-by>FCS_CKM.1/AKG</addressed-by>
          <rationale>FCS_CKM.1/AKG helps mitigate the threat of network eavesdrop by ensuring the generation of strong keys used for trusted communications.</rationale>
          <addressed-by>FCS_CKM.1/SKG</addressed-by>
          <rationale>FCS_CKM.1/SKG helps mitigate the threat of network eavesdrop by ensuring the generation of strong keys used for trusted communications.</rationale>          
          <addressed-by>FCS_CKM.2</addressed-by>
          <rationale>FCS_CKM.2 helps mitigate the threat of a network eavesdrop by implementing secure methods to perform key distribution for trusted communications.</rationale>
          <addressed-by>FCS_CKM_EXT.6</addressed-by>
          <rationale>FCS_CKM_EXT.6 helps mitigate the threat of network eavesdrop by using salts using where appropriate for cryptographic functions.</rationale><addressed-by>FCS_COP.1/AEAD</addressed-by>
          <rationale>FCS_COP.1/AEAD helps mitigate the threat of network eavesdrop by implementing a method to encrypt data in transit.</rationale>
          <addressed-by>FCS_COP.1/Hash</addressed-by>
          <rationale>FCS_COP.1/Hash helps mitigate the threat of network eavesdrop by ensuring that secure hash algorithms are used for trusted communications.</rationale>
          <addressed-by>FCS_COP.1/KeyedHash</addressed-by>
          <rationale>FCS_COP.1/KeyedHash helps mitigate the threat of a network eavesdrop by ensuring that secure HMAC algorithms are used for trusted communications.</rationale>
          <addressed-by>FCS_COP.1/SigGen</addressed-by>
          <rationale>FCS_COP.1/SigGen helps mitigate the threat of network eavesdrop by ensuring that secure digital signature algorithms are used for trusted communications.</rationale>
          <addressed-by>FCS_COP.1/SigVer</addressed-by>
          <rationale>FCS_COP.1/SigVer helps mitigate the threat of network eavesdrop by ensuring that secure digital signature algorithms are used for trusted communications.</rationale>
          
          <addressed-by>FCS_HTTPS_EXT.1</addressed-by>
          <rationale>FCS_HTTPS_EXT.1 helps mitigate the threat of network eavesdrop by implementing a secure protocol (HTTPS) for trusted communications.</rationale>
          <addressed-by>FCS_RBG.6</addressed-by>
          <rationale>FCS_RBG.6 helps mitigate the threat of a network eavesdrop by providing a secure DRBG service for third-party applications running on the TOE which may use this service to generate their own cryptographic keys for trusted communications.</rationale>
          <addressed-by>FCS_SRV_EXT.1</addressed-by>
          <rationale>FCS_SRV_EXT.1 helps mitigate the threat of network eavesdrop by ensuring applications have the proper mechanism to perform cryptographic operations.</rationale>
          <addressed-by>FDP_IFC_EXT.1</addressed-by>
          <rationale>FDP_IFC_EXT.1 helps mitigate the threat of network eavesdrop by ensuring that the TOE has the ability to enforce the use of an IPsec VPN for all network traffic.</rationale> 
          <addressed-by>FDP_STG_EXT.1</addressed-by>
          <rationale>FDP_STG_EXT.1 helps mitigate the threat of network eavesdrop by protecting the X.509 certificates used for trusted communications.</rationale>  
          <addressed-by>FDP_UPC_EXT.1/APPS</addressed-by>
          <rationale>FDP_UPC_EXT.1/APPS helps mitigate the threat of network eavesdrop by implementing a means for applications to communicate securely via a trusted channel.</rationale> 
          <addressed-by>FIA_X509_EXT.6</addressed-by>
          <rationale>FIA_X509_EXT.6 helps mitigate the threat of network eavesdrop by defining a secure mechanism by which the TSF can acquire certificates for its own use.</rationale>
          <addressed-by>FPT_FLS.1</addressed-by>
          <rationale>FPT_FLS.1 helps mitigate the threat of network eavesdrop by ensuring that a malfunctioning DRBG function cannot be used to generate potentially insecure keys.</rationale>      
          <addressed-by>FPT_TST.1</addressed-by>
          <rationale>FPT_TST.1 helps mitigate the threat of network eavesdrop by implementing a mechanism to detect when the DRBG may be failing to generate secure cryptographic keys.</rationale>          
          <addressed-by>FTP_ITC_EXT.1</addressed-by>
          <rationale>FTP_ITC_EXT.1 helps mitigate the threat of network eavesdrop by requiring the TSF to implement trusted protocols for network communication.</rationale>  
          
          <addressed-by>FCS_RBG_EXT.2 (Objective)</addressed-by>      
          <rationale>FCS_RBG_EXT.2 helps mitigate the threat of network eavesdrop by defining requirements for secure DRBG implementation.</rationale>
          <addressed-by>FCS_RBG_EXT.3 (Objective)</addressed-by>      
          <rationale>FCS_RBG_EXT.3 helps mitigate the threat of network eavesdrop by defining requirements for secure DRBG implementation.</rationale>
          <addressed-by>FDP_BLT_EXT.1 (Objective)</addressed-by>      
          <rationale>FDP_BLT_EXT.1 helps mitigate the threat of network eavesdrop by managing which applications communicate with Bluetooth devices.</rationale>
          <addressed-by>FPT_BLT_EXT.1 (Objective)</addressed-by>      
          <rationale>FPT_BLT_EXT.1 helps mitigate the threat of network eavesdrop by enforcing least functionality of the TOE's Bluetooth interface.</rationale>
          
          <addressed-by>FCS_CKM_EXT.7/UNLOCKED (implementation-dependent)</addressed-by>
          <rationale>FCS_CKM_EXT.7/UNLOCKED helps mitigate the threat of network eavesdrop by performing key establishment for trusted communications.</rationale>
          
          <addressed-by>FDP_UPC_EXT.1/BLUETOOTH (implementation-dependent)</addressed-by>
          <rationale>FDP_UPC_EXT.1/BLUETOOTH helps mitigate the threat of network eavesdrop by protecting communication channels using Bluetooth functionality via a trusted channel.</rationale>   
          
          <addressed-by>FCS_RBG.2 (selection-based)</addressed-by>      
          <rationale>FCS_RBG.2 helps mitigate the threat of network eavesdrop by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.3 (selection-based)</addressed-by>      
          <rationale>FCS_RBG.3 helps mitigate the threat of network eavesdrop by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.4 (selection-based)</addressed-by>      
          <rationale>FCS_RBG.4 helps mitigate the threat of network eavesdrop by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.5 (selection-based)</addressed-by>      
          <rationale>FCS_RBG.5 helps mitigate the threat of network eavesdrop by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>

        </threat>
        
        <threat name="T.PERSISTENT_PRESENCE">
          <description> Persistent presence on a device by an attacker implies that the device has
            lost integrity and cannot regain it. The device has likely lost this integrity due to
            some other threat vector, yet the continued access by an attacker constitutes an
            on-going threat in itself. In this case, the device and its data may be controlled by an
            adversary as well as by its legitimate owner.</description>
          
          <addressed-by>FCS_COP.1/AEAD</addressed-by>
          <rationale>FCS_COP.1/AEAD helps mitigate the threat of persistent presence by implementing mechanisms to detect integrity violations of TSF data.</rationale>
          <addressed-by>FCS_COP.1/KeyWrap</addressed-by>
          <rationale>FCS_COP.1/KeyWrap helps mitigate the threat of persistent presence by implementing mechanisms to detect integrity violations of TSF data.</rationale>
          <addressed-by>FCS_STG_EXT.3</addressed-by>
          <rationale>FCS_STG_EXT.3 helps mitigate the threat of persistent presence by enforcing integrity protection on stored TSF data.</rationale>
          <addressed-by>FMT_MOF_EXT.1</addressed-by>
          <rationale>FMT_MOF_EXT.1 helps mitigate the threat of persistent presence by enforcing limitations on TSF usage when it is enrolled in mobile device management.</rationale>
          <addressed-by>FMT_SMF_EXT.1</addressed-by>
          <rationale>FMT_SMF_EXT.1 helps mitigate the threat of persistent presence by defining the management functions that are supported by the TOE.</rationale>
          <addressed-by>FMT_SMF_EXT.2</addressed-by>
          <rationale>FMT_SMF_EXT.2 helps mitigate the threat of persistent presence by maintaining a secure state of the TOE if it is unenrolled from mobile device management.</rationale>
          <addressed-by>FPT_NOT_EXT.1</addressed-by>
          <rationale>FPT_NOT_EXT.1 helps mitigate the threat of persistent presence by having the TOE enter a secure failure state when self-test integrity failures occur.</rationale>
          <addressed-by>FPT_TST_EXT.1</addressed-by>
          <rationale>FPT_TST_EXT.1 helps mitigate the threat of a persistent presence by performing self-tests to verify the integrity of the TSF.</rationale>
          <addressed-by>FPT_TST_EXT.2/PREKERNEL</addressed-by>
          <rationale>FPT_TST_EXT.2/PREKERNEL  helps mitigate the threat of a persistent presence by performing self-tests to verify the integrity of the TSF.</rationale>
          <addressed-by>FPT_TUD_EXT.2</addressed-by>
          <rationale>FPT_TUD_EXT.2 helps mitigate the threat of a persistent presence by ensuring that only legitimate updates are applied to the TOE.</rationale>
          <addressed-by>FPT_TUD_EXT.3</addressed-by>
          <rationale>FPT_TUD_EXT.3 helps mitigate the threat of a persistent presence by ensuring mobile application software updates are digitally signed prior to installation.</rationale>
          
          <addressed-by>FPT_TUD_EXT.5 (objective)</addressed-by>
          <rationale>FPT_TUD_EXT.5 helps mitigate the threat of a persistent presence by enforcing mobile application software verification by X.509v3 prior to installation.</rationale>
          <addressed-by> FPT_TUD_EXT.6 (objective)</addressed-by>
          <rationale>FPT_TUD_EXT.6 helps mitigate the threat of a persistent presence by preventing intentional rollback of software updates.</rationale>
          
          <addressed-by>FPT_TST_EXT.3 (selection-based)</addressed-by>
          <rationale>FPT_TST_EXT.3 helps mitigate the threat of a persistent presence by preventing the execution of untrusted application code.</rationale>
          <addressed-by>FPT_TUD_EXT.4 (selection-based)</addressed-by>
          <rationale>FPT_TUD_EXT.4 helps mitigate the threat of a persistent presence by preventing the execution of untrusted updates.</rationale>
          
          <!--
          <objective-refer ref="O.INTEGRITY">
            <rationale>The threat T.PERSISTENT_PRESENCE is countered by O.INTEGRITY as this provides
              the capability to perform self-tests to ensure the integrity of critical
              functionality, software/firmware and data has been maintained.</rationale>
          </objective-refer>
          <objective-refer ref="O.PRIVACY">
            <rationale>The threat T.PERSISTENT_PRESENCE is countered by O.PRIVACY as this provides
              separation and privacy between user activities.</rationale>
          </objective-refer>
          -->
        </threat>
         
        <threat name="T.PHYSICAL_ACCESS">
          <description> An attacker, with physical access, may attempt to access user data on the
            Mobile Device including credentials. These physical access threats may involve attacks,
            which attempt to access the device through external hardware ports, impersonate the user
            authentication mechanisms, through its user interface, and also through direct and
            possibly destructive access to its storage media. Note: Defending against device re-use
            after physical compromise is out of scope for this PP.</description>
          
          <addressed-by>FCS_CKM.2</addressed-by>
          <rationale>FCS_CKM.2 helps mitigate the threat of physical access by implementing secure methods to perform key distribution for trusted communications.</rationale>
          <addressed-by>FCS_CKM.6</addressed-by>
          <rationale>FCS_CKM.6 helps mitigate the threat of physical access by ensuring that keys used for trusted communications are destroyed in a secure manner.</rationale>
          <addressed-by>FCS_CKM_EXT.1</addressed-by>
          <rationale>FCS_CKM_EXT.1 helps mitigate the threat of physical access by implementing a method of protecting data at rest while the TOE is in a locked state.</rationale>
          <addressed-by>FCS_CKM_EXT.7/LOCKED</addressed-by>
          <rationale>FCS_CKM_EXT.7/LOCKED helps mitigate the threat of physical access by implementing a method of protecting data at rest while the TOE is in a locked state.</rationale>
          <addressed-by>FCS_CKM_EXT.3</addressed-by>
          <rationale>FCS_CKM_EXT.3 helps mitigate the threat of physical access by implementing a method of protecting data at rest while the TOE is in a locked state.</rationale>
          <addressed-by>FCS_CKM_EXT.5</addressed-by>
          <rationale>FCS_CKM_EXT.5 helps mitigate the threat of physical access by implementing a secure mechanism to erase protected data from the TOE.</rationale>
          <addressed-by>FCS_CKM_EXT.6</addressed-by>
          <rationale>FCS_CKM_EXT.6 helps mitigate the threat of physical access by generating salts using DRBG.</rationale>                            
          <addressed-by>FCS_CKM_EXT.8</addressed-by>
          <rationale>FCS_CKM_EXT.8 helps mitigate the threat of physical access by performing password conditioning to increase the difficulty of deriving a key from a password.</rationale>
          <addressed-by>FCS_COP.1/AEAD</addressed-by>
          <rationale>FCS_COP.1/AEAD helps mitigate the threat of physical access by using AEAD encryption to protect data at rest.</rationale>
          <addressed-by>FCS_COP.1/Hash</addressed-by>
          <rationale>FCS_COP.1/Hash helps mitigate the threat of physical access by implementing an integrity mechanism used to verify stored keys.</rationale>
          <addressed-by>FCS_COP.1/KeyedHash</addressed-by>
          <rationale>FCS_COP.1/KeyedHash helps mitigate the threat of physical access by implementing an integrity mechanism used to verify stored keys.</rationale>
          <addressed-by>FCS_COP.1/SigGen</addressed-by>
          <rationale>FCS_COP.1/SigGen helps mitigate the threat of physical access by implementing an authenticity and integrity mechanism used to verify stored keys.</rationale>
          <addressed-by>FCS_COP.1/SigVer</addressed-by>
          <rationale>FCS_COP.1/SigVer helps mitigate the threat of physical access by implementing an authenticity and integrity mechanism used to verify stored keys.</rationale>
          <addressed-by>FCS_COP.1/SKC</addressed-by>
          <rationale>FCS_COP.1/SKC helps mitigate the threat of physical access by using symmetric encryption to protect data at rest.</rationale>
          <addressed-by>FCS_IV_EXT.1</addressed-by>
          <rationale>FCS_IV_EXT.1 helps mitigate the threat of physical access by ensuring that appropriate IVs are used for symmetric keys.</rationale>
          <addressed-by>FCS_RBG.1</addressed-by>
          <rationale>FCS_RBG.1 helps mitigate the threat of physical access by ensuring that keys used for protected storage are generated using a secure DRBG.</rationale>
          <addressed-by>FCS_STG_EXT.1</addressed-by>
          <rationale>FCS_STG_EXT.1 helps mitigate the threat of physical access by implementing a secure key storage for keys used to protect data at rest.</rationale>
          <addressed-by>FCS_STG_EXT.2</addressed-by>
          <rationale>FCS_STG_EXT.2 helps mitigate the threat of physical access by enforcing confidentiality for key storage.</rationale>
          <addressed-by>FCS_STG_EXT.3</addressed-by>
          <rationale>FCS_STG_EXT.3 helps mitigate the threat of physical access by enforcing integrity for key storage.</rationale>
          <addressed-by>FDP_DAR_EXT.1</addressed-by>
          <rationale>FDP_DAR_EXT.1 helps mitigate the threat of physical access by encrypting sensitive data at rest.</rationale>
          <addressed-by>FDP_DAR_EXT.2</addressed-by>
          <rationale>FDP_DAR_EXT.2 helps mitigate the threat of physical access by allowing data to be marked as sensitive such that it is encrypted while at rest.</rationale>
          <addressed-by>FIA_AFL_EXT.1</addressed-by>
          <rationale>FIA_AFL_EXT.1 helps mitigate the threat of physical access by limiting the extent to which brute force authentication attempts to the TOE can be made.</rationale>   
          <addressed-by>FIA_PMG_EXT.1</addressed-by>
          <rationale>FIA_PMG_EXT.1 helps mitigate the threat of physical access by defining strong password characteristics.</rationale>      
          <addressed-by>FIA_TRT_EXT.1</addressed-by>
          <rationale>FIA_AFL_EXT.1 helps mitigate the threat of physical access by limiting the extent to which brute force authentication attempts to the TOE can be made.</rationale>      
          <addressed-by>FIA_UAU.5</addressed-by>
          <rationale>FIA_UAU.5 helps mitigate the threat of physical access by defining the supported authentication mechanisms.</rationale>
          <addressed-by> FIA_UAU.6/CREDENTIAL</addressed-by>
          <rationale>FIA_UAU.6/CREDENTIAL helps mitigate the threat of physical access by implementing functionality to require re-authentication before any attempted changes 
            to authenticated mechanisms.</rationale>
          <addressed-by>FIA_UAU.6/LOCKED</addressed-by>
          <rationale>FIA_UAU.6/LOCKED helps mitigate the threat of physical access by implementing functionality to require re-authentication in certain conditions.</rationale>
          <addressed-by>FIA_UAU.7</addressed-by>
          <rationale>FIA_UAU.7 helps mitigate the threat of physical access by providing only limited information during authentication.</rationale>      
          <addressed-by>FIA_UAU_EXT.1</addressed-by>
          <rationale>FIA_UAU_EXT.1 helps mitigate the threat of physical access by preventing decryption prior to proper authorization to the device.</rationale>      
          <addressed-by>FIA_UAU_EXT.2</addressed-by>
          <rationale>FIA_UAU_EXT.2 helps mitigate the threat of physical access by requiring successful authentication before allowing the user to take action on the TOE.</rationale>      
          <addressed-by>FPT_FLS.1</addressed-by>
          <rationale>FPT_FLS.1 helps mitigate the threat of physical access by ensuring that a malfunctioning DRBG function cannot be used to generate potentially insecure keys.</rationale>
          <addressed-by>FPT_JTA_EXT.1</addressed-by>
          <rationale>FPT_JTA_EXT.1 helps mitigate the threat of physical access by specifying the mechanism used to control access to JTAG.</rationale>
          <addressed-by>FPT_KST_EXT.1</addressed-by>
          <rationale>FPT_KST_EXT.1 helps mitigate the threat of physical access by ensuring plaintext key material is not stored in readable non-volatile memory.</rationale>
          <addressed-by>FPT_KST_EXT.2</addressed-by>
          <rationale>FPT_KST_EXT.2 helps mitigate the threat of physical access by preventing transmission of plaintext key material outside the secure boundary of the TOE.</rationale>
          <addressed-by>FPT_KST_EXT.3</addressed-by>
          <rationale>FPT_KST_EXT.3 helps mitigate the threat of physical access by ensuring TOE users cannot export plaintext keys.</rationale>
          <addressed-by>FPT_TST.1</addressed-by>
          <rationale>FPT_TST.1 helps mitigate the threat of physical access by implementing a mechanism to detect when the DRBG may be failing to generate secure cryptographic keys.</rationale>
          <addressed-by>FTA_SSL_EXT.1</addressed-by>
          <rationale>FTA_SSL_EXT.1 helps mitigate the threat of physical access by managing the transition to a locked state after a set time or operation.</rationale>      

          <addressed-by>FIA_UAU_EXT.4 (optional)</addressed-by>
          <rationale>FIA_UAU_EXT.4 helps mitigate the threat of physical access by enforcing a secondary authentication mechanism for accessing enterprise resources.</rationale>
          
          <addressed-by>FCS_CKM_EXT.7/UNLOCKED (implementation-dependent)</addressed-by>
          <rationale>FCS_CKM_EXT.7/UNLOCKED helps mitigate the threat of physical access by implementing a method of protecting data at rest while the TOE is in a locked state.</rationale>
        <!--  
          <addressed-by>FIA_BMG_EXT.2 (objective)</addressed-by>
          <rationale>FIA_BMG_EXT.2 helps mitigate the threat of physical access by ensuring that biometric authentication cannot be exploited by an improper user.</rationale>
          <addressed-by>FIA_BMG_EXT.3 (objective)</addressed-by>
          <rationale>FIA_BMG_EXT.3 helps mitigate the threat of physical access by ensuring that biometric authentication cannot be exploited by an improper user.</rationale>
          <addressed-by>FIA_BMG_EXT.4 (objective)</addressed-by>
          <rationale>FIA_BMG_EXT.4 helps mitigate the threat of physical access by ensuring that biometric authentication cannot be exploited by an improper user.</rationale>
          <addressed-by>FIA_BMG_EXT.5 (objective)</addressed-by>
          <rationale>FIA_BMG_EXT.5 helps mitigate the threat of physical access by ensuring that biometric authentication cannot be exploited by an improper user.</rationale>
          <addressed-by>FIA_BMG_EXT.6 (objective)</addressed-by>
          <rationale>FIA_BMG_EXT.6 helps mitigate the threat of physical access by ensuring that biometric authentication cannot be exploited by an improper user.</rationale>
-->
          <addressed-by>FCS_CKM_EXT.9 (selection-based)</addressed-by>      
          <rationale>FCS_CKM_EXT.9 helps mitigate the threat of physical access by ensuring that the TOE's root encryption key used for storage encryption cannot be disclosed.</rationale>
          <addressed-by>FCS_RBG.2 (selection-based)</addressed-by>      
          <rationale>FCS_RBG.2 helps mitigate the threat of physical access by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.3 (selection-based)</addressed-by>
          <rationale>FCS_RBG.3 helps mitigate the threat of physical access by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.4 (selection-based)</addressed-by>
          <rationale>FCS_RBG.4 helps mitigate the threat of physical access by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>
          <addressed-by>FCS_RBG.5 (selection-based)</addressed-by>
          <rationale>FCS_RBG.5 helps mitigate the threat of physical access by ensuring that the TOE's DRBG is seeded with sufficient entropy to ensure the generation of strong cryptographic keys.</rationale>          

          <!--
          <objective-refer ref="O.STORAGE">
            <rationale>The threat T.PHYSICAL_ACCESS is countered by O.STORAGE as this provides the
              capability to encrypt all user and enterprise data and authentication keys to ensure
              the confidentiality of data that it stores.</rationale>
          </objective-refer>
          <objective-refer ref="O.AUTH">
            <rationale>The threat T.PHYSICAL_ACCESS is countered by O.AUTH as this provides the
              capability to authenticate the user prior to accessing protected functionality and
              data. </rationale>
          </objective-refer>
          -->
        </threat>
      </threats>
    </section>
    <section title="Assumptions" id="assp"> The specific conditions listed below are assumed to
      exist in the TOE’s Operational Environment. These include both practical realities in the
      development of the TOE security requirements and the essential environmental conditions on the
      use of the TOE. 
      <assumptions>
        <assumption name="A.CONFIG">
          <description>It is assumed that the TOE’s security functions are configured correctly in a
            manner to ensure that the TOE security policies will be enforced on all applicable
            network traffic flowing among the attached networks.</description>
          <objective-refer ref="OE.CONFIG">
            <rationale>The operational environment objective OE.CONFIG is realized through A.CONFIG.</rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.NOTIFY">
          <description>It is assumed that the mobile user will immediately notify the administrator
            if the Mobile Device is lost or stolen.</description>
          <objective-refer ref="OE.NOTIFY">
            <rationale>The operational environment objective OE.NOTIFY is realized through A.NOTIFY.
            </rationale>
          </objective-refer>
        </assumption>
        <assumption name="A.PRECAUTION">
          <description>It is assumed that the mobile user exercises precautions to reduce the risk
            of loss or theft of the Mobile Device.</description>
          <objective-refer ref="OE.PRECAUTION">
            <rationale>The operational environment objective OE.PRECAUTION is realized through
              A.PRECAUTION. </rationale>
          </objective-refer>
        </assumption>
        <!-- Add for MDM Agent Module; and probably should have had it from the beginning -->
        <assumption name="A.PROPER_USER">
          <description> Mobile Device users are not willfully negligent or hostile, and use the
            device within compliance of a reasonable Enterprise security policy. </description>
          <objective-refer ref="OE.PROPER_USER">
            <rationale>The operational environment objective OE.PROPER_USER is realized through
              A.PROPER_USER. </rationale>
          </objective-refer>
        </assumption>
      </assumptions>
    </section>
    <sec:osp title="Organizational Security Policies"> 
      <OSPs/>
    </sec:osp>
  </sec:Security_Problem_Definition>
  <sec:Security_Objectives>

    <section title="Security Objectives for the Operational Environment" id="sooe"> 
      The following
      security objectives for the operational environment assist the OS in correctly providing its
      security functionality. These track with the assumptions about the environment. 
      <SOEs>
        <SOE name="OE.CONFIG">
          <description>TOE administrators will configure the Mobile Device security functions
            correctly to create the intended security policy</description>
        </SOE>
        <SOE name="OE.NOTIFY">
          <description>The Mobile User will immediately notify the administrator if the Mobile
            Device is lost or stolen.</description>
        </SOE>
        <SOE name="OE.PRECAUTION">
          <description>The mobile device user exercises precautions to reduce the risk of loss or theft of
            the Mobile Device.</description>
        </SOE>
        <SOE name="OE.PROPER_USER">
          <description>Administrators take measures to ensure that mobile device users are adequately vetted against malicious intent and are made aware of the expectations for appropriate use of the device.</description>      
        </SOE>
      </SOEs>
    </section>
    <section title="Security Objectives Rationale" id="SOR"/><!-- Note: This section is supposed to be empty and is populated from the rationale tags in the other sections --> 
  </sec:Security_Objectives>
  <sec:Security_Requirements>
    <section title="Security Functional Requirements" id="sfr">

      <!-- 5.1.1 Auditable Events for Mandatory SFRs -->
      <section id="ss-audit-table" title="Auditable Events for Mandatory SFRs">
        <audit-table id="t-audit-mandatory" table="mandatory"/>
      </section>
      
      <sec:fau title="Class FAU: Security Audit">
        <f-component cc-id="fau_gen.1" name="Audit Data Generation">
          <f-element id="fel-audit-gen">
            <title>The TSF shall be able to generate audit data of the following auditable events:<h:br/>
              <h:ul>
                <h:li>Start-up and shutdown of the audit functions</h:li>
                <h:li>All auditable events for the [<h:i>not specified</h:i>] level of audit</h:li>
                [<h:li><h:i>All administrative actions</h:i></h:li>
                <h:li><h:i>Start-up and shutdown of the OS</h:i></h:li>
                <h:li><h:i>Insertion or removal of removable media</h:i></h:li>
                <h:li><h:i>Specifically defined auditable events in <xref g="t-audit-mandatory"/></h:i></h:li>
                <h:li><h:i>Auditable events as defined in the <xref to="tls"/>;</h:i></h:li>
                <h:li><h:i>Auditable events as defined in the <xref to="X509"/>;</h:i></h:li>                
                <h:li><h:i><selectables linebreak="yes">
                  <selectable>Audit data reaching <assignable>integer value less than 100</assignable> percent of audit capacity</selectable>
                  <selectable>Auditable events defined in <xref g="t-audit-objective"/> for Objective SFRs</selectable>
                  <selectable>Auditable events defined in <xref g="t-audit-feat-based"/> for Implementation-Dependent SFRs</selectable>
                  <selectable>Auditable events defined in <xref g="t-audit-sel-based"/> for Selection-Based SFRs</selectable>
                  <selectable exclusive="yes">no additional auditable events</selectable>
                    </selectables>]</h:i></h:li>
              </h:ul>
            </title>
            <note role="application"> Administrator actions are defined as functions labeled as
              mandatory for FMT_MOF_EXT.1.2 (i.e., ‘M-MM’ in <xref to="fmt_smf"/>). If the TSF
              does not support removable media, number 4 is implicitly met. <h:br/><h:br/> The
              TSF must generate audit data for all events contained in <xref g="t-audit-mandatory"/>. For all other audit tables (i.e., tables for non-mandatory SFRs and references to functional packages), the ST author includes the audit events (if any) for the SFRs that are claimed in the ST. <h:br/><h:br/>
              <h:b><xref g="t-audit-mandatory"/> Application Note:</h:b><h:br/> FPT_TST_EXT.1 –
              Audit of self-tests is required only at initial start-up. Since the TOE "transitions
              to non-operational mode" upon failure of a self-test, per FPT_NOT_EXT.1, this is
              considered equivalent evidence to audit data for the failure of a self-test.
              <h:br/><h:br/> FDP_DAR_EXT.1 - "None" must be selected, if the TOE utilizes whole
              volume encryption for protected data, since it is not feasible to audit when the
              encryption/decryption fails. If the TOE utilizes file-based encryption for protected
              data and audits when this encryption/decryption fails, then that auditable event should
              be selected.<h:br/><h:br/>

              For FMT_SMF_EXT.1, it is acceptable
              for the initiation of the software update to be audited without indicating the outcome
              (success or failure) of the update.<h:br/>
            </note>
          </f-element>
          <f-element id="fel-audit-what">
            <title>The TSF shall record within the audit data at least the following information: <h:ul>

                <h:li>Date and time of the event</h:li>
                <h:li>Type of event</h:li>
                <h:li>Subject identity</h:li>
                <h:li>The outcome (success or failure) of the event</h:li>
                <refinement><h:li>Additional information in <xref g="t-audit-mandatory"/></h:li>
                  <h:li>Additional information defined in the <xref to="tls"/>;</h:li>
                  <h:li>Additional information defined in the <xref to="X509"/>;</h:li>   
                <h:li>
                  <selectables linebreak="yes">
                    <selectable>Additional information defined in <xref g="t-audit-objective"/> for Objective SFRs</selectable>
                    <selectable>Additional information defined in <xref g="t-audit-feat-based"/> for Implementation-Dependent SFRs</selectable>
                    <selectable>Additional information defined in <xref g="t-audit-sel-based"/> for Selection-Based SFRs</selectable>
                    <selectable exclusive="yes">no additional information</selectable>
                  </selectables></h:li></refinement>
            </h:ul>
            </title>
            <note role="application"> The subject identity is usually the process name/ID. The event
              type is often indicated by a severity level, for example, ‘info’, ‘warning’, or
              ‘error’. <h:br/><h:br/>
	    
	    <!--
	      <rule id="r-no-add-audit">
		<if><ref-id>s-audit-gen-no-add-audit</ref-id></if>
		<then><ref-id>s-audit-no-add-info</ref-id></then>
	      </rule>
	      -->
              <h:br/><h:br/>
	      
	      For each audit event selected from <xref g="t-audit-objective"/>, <xref g="t-audit-feat-based"/>, or <xref g="t-audit-sel-based"/> in
              FAU_GEN.1.1, if additional information is required to be recorded within the audit
              data, it should be included in this selection.

	    </note>
            <aactivity>
              <TSS> The evaluator shall check the TSS and ensure that it lists all of the auditable
                events and provides a format for audit data. Each audit data format type must
                be covered, along with a brief description of each field. The evaluator shall check
                to make sure that every audit event type mandated by the PP is described and that
                the description of the fields contains the information required in FAU_GEN.1.2.
                <h:br/><h:br/>
              </TSS>
              <Guidance> The evaluator shall also make a determination of the administrative actions
                that are relevant in the context of this PP including those listed in the Management
                section. The evaluator shall examine the administrative guide and make a
                determination of which administrative commands are related to the configuration
                (including enabling or disabling) of the mechanisms implemented in the TOE that are
                necessary to enforce the requirements defined in the PP. The evaluator shall
                document the methodology or approach taken while determining which actions in the
                administrative guide are security relevant with respect to this PP. The evaluator
                may perform this activity as part of the activities associated with ensuring the
                AGD_OPE guidance satisfies the requirements.<h:br/><h:br/>
              </Guidance>
              <Tests> The evaluator shall test the TOE’s ability to correctly generate audit data
                by having the TOE generate audit data for the events listed in the provided table
                and administrative actions. This should include all instances of an event. The
                evaluator shall test that audit data are generated for the establishment and
                termination of a channel for each of the cryptographic protocols contained in the
                ST. For administrative actions, the evaluator shall test that each action determined
                by the evaluator above to be security relevant in the context of this PP is
                auditable. When verifying the test results, the evaluator shall ensure the audit
                data generated during testing match the format defined in the administrative
                guide, and that the fields defined in FAU_GEN.1.2 are contained in the audit
                data. <h:br/><h:br/> Note that the testing here can be accomplished in
                conjunction with the testing of the security mechanisms directly. For example,
                testing performed to ensure that the administrative guidance provided is correct
                verifies that AGD_OPE.1 is satisfied and should address the invocation of the
                administrative actions that are needed to verify the audit data are generated as
                expected. <h:br/><h:br/>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fau_sar.1" name="Audit Review">
          <f-element id="fau-sar-1e1">
            <title>The TSF shall provide [<h:i>the administrator</h:i>] with the
              capability to read [<h:i>all audited events and data contents</h:i>]
              from the audit data.</title>
            <note role="application"><h:p> The administrator must have access to read the audit data,
              perhaps through an API or via an MDM agent that transfers the local records stored
              on the TOE to the MDM server, where the enterprise administrator may then view them.</h:p></note>
          </f-element>
          <f-element id="fel-audit-provide">
            <title>The TSF shall provide the audit data in a manner suitable for the user <!--ToDo: administrator? -->to interpret the information.</title>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluation activity for this requirement is performed in conjunction with
                test for function <xref to="mf-auditLogs"/> of FMT_SMF_EXT.1. </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fau_sel.1" name="Selective Audit" status="objective">
          <f-element id="fel-audit-select">
            <title>The TSF shall be able to select the set of events to be audited from the set of
              all auditable events based on the following attributes
              <h:ol type="a">
                <h:li>[<h:i>event type</h:i>]</h:li>
                <h:li>[<h:i>success of auditable security events</h:i></h:li>
                <h:li><h:i>failure of auditable security events</h:i></h:li>
                <h:li><h:i><assignable>other attributes</assignable></h:i>]</h:li>              
              </h:ol>
            </title>
            <note role="application"> The intent of this requirement is to identify all criteria
              that can be selected to trigger an audit event. This can be configured through an
              interface on the TSF for a user or administrator to invoke. For the ST author, the
              assignment is used to list any additional criteria or "none". </note>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance> The evaluator shall review the administrative guidance to ensure that the
                guidance itemizes all event types, as well as describes all attributes that are to
                be selectable in accordance with the requirement, to include those attributes listed
                in the assignment. The administrative guidance shall also contain instructions on
                how to set the pre-selection as well as explain the syntax (if present) for
                multi-value pre-selection. The administrative guidance shall also identify those
                audit data that are always recorded, regardless of the selection criteria
                currently being enforced.<h:br/><h:br/>
              </Guidance>
              <Tests> The evaluator shall also perform the following tests:<h:br/>
                <testlist>
                  <test>For each attribute listed in the requirement, the evaluator shall devise a
                    test to show that selecting the attribute causes only audit events with that
                    attribute (or those that are always recorded, as identified in the
                    administrative guidance) to be recorded.</test><h:br/>
                  <test>[conditional] If the TSF supports specification of more complex audit
                    pre-selection criteria (e.g., multiple attributes, logical expressions using
                    attributes) then the evaluator shall devise tests showing that this capability
                    is correctly implemented. The evaluator shall also, in the test plan, provide a
                    short narrative justifying the set of tests as representative and sufficient to
                    exercise the capability.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>All modifications to the audit configuration that
	    occur while the audit collection functions are operating</audit-event-descr>
	  </audit-event>
        </f-component>
        <f-component cc-id="fau_stg.2" name="Protected Audit Data Storage">
          <f-element id="fel-audit-store">
            <title>The TSF shall protect the stored audit data in the audit trail from unauthorized deletion.</title>
          </f-element>
          <f-element id="fel-audit-mod">
            <title>The TSF shall be able to [<h:i>prevent</h:i>] unauthorized
              modifications to the stored audit data in the audit trail.</title>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS lists the location of all logs and the
                access controls of those files such that unauthorized modification and deletion are
                prevented.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall attempt to delete the audit trail in a manner that the
                    access controls should prevent (as an unauthorized user) and shall verify that
                    the attempt fails.</test>
                  <test>The evaluator shall attempt to modify the audit trail in a manner that the
                    access controls should prevent (as an unauthorized application) and shall verify
                    that the attempt fails.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fau_stg.5" name="Prevention of Audit Data Loss">
          <f-element id="fel-audit-loss">
            <title>The TSF shall [<h:i>overwrite the oldest stored audit records</h:i>] <h:s>[assignment: other actions to be taken in case of audit storage
              failure and conditions for the actions]</h:s> if the audit data storage is full.</title>
            <aactivity>
              <TSS> The evaluator shall examine the TSS to ensure that it describes the size limits
                on the audit records, the detection of a full audit trail, and the actions taken
                by the TSF when the audit trail is full. The evaluator shall ensure that the
                actions results in the deletion or overwrite of the oldest stored record.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
      </sec:fau>
     
      <sec:fcs title="Class FCS: Cryptographic Support"> 
        This section describes how keys are generated, derived, combined, released and destroyed. There are two major types of keys: DEKs and KEKs. (A REK is considered a KEK.)
         DEKs are used to protect data (as in the DAR protection described in FDP_DAR_EXT.1 and FDP_DAR_EXT.2). KEKs are used to protect other keys – DEKs, other KEKs, and other types of keys stored by the user or applications.
         The following diagram shows an example key hierarchy to illustrate the concepts of this profile. 
         This example is not meant as an approved design, but ST authors will be expected to provide a diagram illustrating their key hierarchy in order to demonstrate that they meet the requirements of this profile. 
         Please note if <xref to="uau_biometric"/> is selected in FIA_UAU.5.1, each BAF claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/> shall be illustrated in the key hierarchy diagram, to include a description of when and how the BAF is used to release keys.
	 If <xref to="uau_hybr"/> is selected in FIA_UAU.5.1, meaning that a PIN or password must be used in conjunction with the BAF, this interaction shall be included.<h:br/>
        <figure entity="images/figure3.jpg" title="An Illustrative Key Hierarchy" id="Keys"/>
        
        <f-component id="sfr-fcs-ckm-1-akg" cc-id="fcs_ckm.1" iteration="AKG" name="Cryptographic           Key Generation - Asymmetric Key">
          <f-element id="fel-asym-gen">
            <title>
              The TSF shall generate <h:b>asymmetric</h:b> cryptographic keys in accordance with
              a specified cryptographic key generation algorithm<selectables>
                <tabularize id="fcs-ckm-1-ak-sels" title="Allowable Choices for FCS_CKM.1/AKG">
                  <textcol>Identifier</textcol>
                  <selectcol>Cryptographic Key Generation Algorithm</selectcol>
                  <reqtext>and specified cryptographic <h:b>algorithm parameters</h:b> <h:s>key sizes</h:s></reqtext>
                  <selectcol>Cryptographic Algorithm Parameters</selectcol>
                  <reqtext>that meet the following: </reqtext>
                  <selectcol>List of Standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-ckm-1-ak-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_CKM.1/AKG.</reqtext>
                </tabularize>
                
                <!-- RSA -->
                <selectable id="sel-fcs-ckm-ak-rsa">
                  <col>RSA</col>
                  <col>RSA</col>
                  <col>Modulus of size <selectables>
                    <selectable id="sel-exp-ak-rsa-3072">3072</selectable>
                    <selectable id="sel-exp-ak-rsa-4096">4096</selectable>
                    <selectable id="sel-exp-ak-rsa-6144">6144</selectable>
                    <selectable id="sel-exp-ak-rsa-8192">8192</selectable>
                  </selectables> bits
                  </col>
                  <col>NIST FIPS PUB 186-5 (Section A.1.1)</col>
                </selectable>
                
                <!-- ECC-ERB - Extra Random Bits -->
                <selectable id="sel-fcs-ckm-ak-ecdsa-erb">
                  <col>ECC-ERB</col>
                  <col>ECC-ERB - Extra Random Bits</col>
                  <col>Elliptic Curve <selectables>
                    <selectable id="sel-exp-ak-edcsa-erb-P256">P-256</selectable>
                    <selectable id="sel-exp-ak-edcsa-erb-P384">P-384</selectable>
                    <selectable id="sel-exp-ak-edcsa-erb-P521">P-521</selectable></selectables>
                  </col>
                  <col>
                    FIPS PUB 186-5 (Section A.2.1)<h:p/>
                    NIST SP 800-186 (Section 3) [NIST Curves]
                  </col>
                </selectable>
                
                <!-- ECC-RS - Rejection Sampling -->
                <selectable id="sel-fcs-ckm-ak-ecdsa-rs">
                  <col>ECC-RS</col>
                  <col>ECC-RS - Rejection Sampling</col>
                  <col>Elliptic Curve <selectables>
                    <selectable id="sel-exp-ak-edcsa-rs-P256">P-256</selectable>
                    <selectable id="sel-exp-ak-edcsa-rs-P384">P-384</selectable>
                    <selectable id="sel-exp-ak-edcsa-rs-P521">P-521</selectable></selectables>
                  </col>
                  <col>
                    FIPS PUB 186-5 (Section A.2.2)<h:p/>
                    NIST SP 800-186 (Section 3) [NIST Curves]
                  </col>
                </selectable>
                
                <!-- FFC-ERB - Extra Random Bits -->
                <selectable id="sel-fcs-ckm-ak-ffc-erb">
                  <col>FFC-ERB</col>
                  <col>FFC-ERB - Extra Random Bits</col>
                  <col>Static domain parameters approved for <selectables>
                    <selectable>IKE Groups <selectables>
                      <selectable id="sel-dp-ak-ffc-erb-modp3072">MODP-3072</selectable>
                      <selectable id="sel-dp-ak-ffc-erb-modp4096">MODP-4096</selectable>
                      <selectable id="sel-dp-ak-ffc-erb-modp6144">MODP-6144</selectable>
                      <selectable id="sel-dp-ak-ffc-erb-modp8192">MODP-8192</selectable>
                    </selectables></selectable>
                    <selectable>TLS Groups <selectables>
                      <selectable id="sel-dp-ak-ffc-erb-ffdhe3072">ffdhe3072</selectable>
                      <selectable id="sel-dp-ak-ffc-erb-ffdhe4096">ffdhe4096</selectable>
                      <selectable id="sel-dp-ak-ffc-erb-ffdhe6144">ffdhe6144</selectable>
                      <selectable id="sel-dp-ak-ffc-erb-ffdhe8192">ffdhe8192</selectable>
                    </selectables></selectable></selectables>
                  </col>
                  <col>
                    NIST SP 800-56A Revision 3 (Section 5.6.1.1.3) [key pair generation]<h:p/>
                    <selectables>
                      <selectable>RFC 3526 [IKE groups]</selectable>
                      <selectable>RFC 7919 [TLS groups]</selectable></selectables>
                  </col>
                </selectable>
                
                <!-- FFC-RS - Rejection Sampling -->
                <selectable id="sel-fcs-ckm-ak-ffc-rs">
                  <col>FFC-RS</col>
                  <col>FFC-RS - Rejection Sampling</col>
                  <col>Static domain parameters approved for <selectables>
                    <selectable>IKE Groups <selectables>
                      <selectable id="sel-dp-ak-ffc-rs-modp3072">MODP-3072</selectable>
                      <selectable id="sel-dp-ak-ffc-rs-modp4096">MODP-4096</selectable>
                      <selectable id="sel-dp-ak-ffc-rs-modp6144">MODP-6144</selectable>
                      <selectable id="sel-dp-ak-ffc-rs-modp8192">MODP-8192</selectable>
                    </selectables></selectable>
                    <selectable>TLS Groups <selectables>
                      <selectable id="sel-dp-ak-ffc-rs-ffdhe3072">ffdhe3072</selectable>
                      <selectable id="sel-dp-ak-ffc-rs-ffdhe4096">ffdhe4096</selectable>
                      <selectable id="sel-dp-ak-ffc-rs-ffdhe6144">ffdhe6144</selectable>
                      <selectable id="sel-dp-ak-ffc-rs-ffdhe8192">ffdhe8192</selectable>
                    </selectables></selectable></selectables>
                  </col>
                  <col>
                    NIST SP 800-56A Revision 3 (Section 5.6.1.1.3) [key pair generation]<h:p/>
                    <selectables>
                      <selectable>RFC 3526 [IKE groups]</selectable>
                      <selectable>RFC 7919 [TLS groups]</selectable></selectables>
                  </col>
                </selectable>
                
                <!-- EdDSA -->
                <selectable id="sel-fcs-ckm-ak-lms">
                  <col>EdDSA</col>
                  <col>EdDSA</col>
                  <col>Domain parameters approved for elliptic curves [<h:i>Edwards25519</h:i>]
                  </col>
                  <col>NIST FIPS PUB 186-5 (section 6.2.1)[key-pair generation]<h:p/>
                    NIST SP 800-186 (Section 3.2.3)[Edwards Curves]
                  </col>
                </selectable>
                
                
                <!-- LMS -->
                <selectable id="sel-fcs-ckm-ak-lms">
                  <col>LMS</col>
                  <col>LMS</col>
                  <col>Private key size = <selectables>
                    <selectable><h:i>192 bits with</h:i> <selectables>
                      <selectable>SHA-256/192</selectable>
                      <selectable>SHAKE256/192</selectable>
                    </selectables></selectable>
                    <selectable>256 bits with <selectables>
                      <selectable>SHA-256</selectable>
                      <selectable>SHAKE256</selectable>
                    </selectables></selectable>
                  </selectables><h:p/>
                    Winternitz parameter = <selectables>
                      <selectable>1</selectable>
                      <selectable>2</selectable>
                      <selectable>4</selectable>
                      <selectable>8</selectable></selectables><h:p/>
                    Tree height = <selectables>
                      <selectable>5</selectable>
                      <selectable>10</selectable>
                      <selectable>15</selectable>
                      <selectable>20</selectable>
                      <selectable>25</selectable></selectables>
                  </col>
                  <col>RFC 8554 [LMS]<h:p/>
                    NIST SP 800-208 [parameters]
                  </col>
                </selectable>
                
                <!-- ML-KEM Key Generation -->
                <selectable id="sel-fcs-ckm-ak-mlkem">
                  <col>ML-KEM</col>
                  <col>ML-KEM KeyGen</col>
                  <col>Parameter set = ML-KEM-1024</col>
                  <col>NIST FIPS 203 (Section 7.1)</col>
                </selectable>
                
                <!-- ML-DSA Key Generation -->
                <selectable id="sel-fcs-ckm-ak-mldsa">
                  <col>ML-DSA</col>
                  <col>ML-DSA KeyGen</col>
                  <col>Parameter set = ML-DSA-87</col>
                  <col>NIST FIPS 204 (Section 5.1)</col>
                </selectable>
                
                <!-- XMSS -->
                <selectable id="sel-fcs-ckm-ak-xmss">
                  <col>XMSS</col>
                  <col>XMSS</col>
                  <col>Private key size = <selectables>
                    <selectable>192 bits with <selectables>
                      <selectable>SHA-256/192</selectable>
                      <selectable>SHAKE256/192</selectable>
                    </selectables></selectable>
                    <selectable>256 bits with <selectables>
                      <selectable>SHA-256</selectable>
                      <selectable>SHAKE256</selectable>
                    </selectables></selectable>
                  </selectables><h:p/>
                    Tree height = <selectables>
                      <selectable>10</selectable>
                      <selectable>16</selectable>
                      <selectable>20</selectable>
                    </selectables>
                  </col>
                  <col>RFC 8391 [XMSS]<h:p/>
                    NIST SP 800-208 [parameters]
                  </col>
                </selectable>
              </selectables>
            </title>
            <note role="application">
<h:p>
              For RSA the choice of the modulus implies the resulting key sizes of the public and private keys generated using the specified standard methods. RSA key generation with modulus size 2048 bits is no longer permitted by CNSA.
	      </h:p><h:p>
              For Finite Field Cryptography (FFC) DSA, ST authors should consult schemes for
              guidelines on use. FIPS PUB 186-5 does not approve DSA for digital signature
              generation but allows DSA for digital signature verification for legacy purposes.
              “FFC-ERB” or “FFC–RS” may be claimed only for generating private and public keys when
              “DH” is claimed in FCS_CKM_EXT.7/LOCKED or FCS_CKM_EXT.7/UNLOCKED.
	      </h:p><h:p>For ECC selections, “P-256” may only be selected if the <xref to="mod-bluetooth"/> is included in the ST and P-256 may only be used specifically for Bluetooth functions.
	      </h:p><h:p>
	        When generating ECC keys pairs for key agreement and if “ECDH” is claimed in FCS_CKM_EXT.7/LOCKED or FCS_CKM_EXT.7/UNLOCKED, then “ECC–ERB” or “ECC–RS” must be claimed. The sizes of the private key, which is a scalar, and the public key, which is a point on the elliptic curve, are determined by the choice of the curve.
	      </h:p><h:p>
              When generating ECC key pairs for digital signature generation and if “ECDSA” is claimed in FCS_COP.1/SigGen, then “ECC–ERB” or “ECC–RS” must be claimed. The sizes of the private key, which is a scalar, and the public key, which is a point on the elliptic curve, are determined by the choice of the curve.
              </h:p>
            </note>
            <aactivity>
	      <TSS>
						The evaluator shall examine the TSS to verify that it describes how the TOE generates a key
						based on output from a random bit generator as defined in FCS_RBG.1. The evaluator shall
						review the TSS to verify that it describes how the functionality described by FCS_RBG.1 is
						invoked. If support for P-256 is claimed, the evaluator shall examine the TSS to verify that it is only used for Bluetooth functions.<h:p/>
						The evaluator shall examine the TSS to verify that it identifies the usage and key lifecycle
						for keys generated using each selected algorithm.<h:p/>
						The evaluator shall examine the TSS to verify that any one-time values such as nonces or masks
						are constructed in accordance with the relevant standards.<h:p/>
						If the TOE uses the generated key in a key chain or hierarchy then the evaluator shall verify that the
						TSS describes how the key is used as part of the key chain or hierarchy.
					</TSS>
					<Guidance>
						The evaluator shall verify that the guidance instructs the administrator how to configure the TOE to
						generate keys for the selected key generation algorithms for all key types and uses identified in
						the TSS.
					</Guidance>
					<Tests>
						The following tests are conditional based on the selections made in the SFR. 
						The evaluator shall perform the following tests or witness respective tests 
						executed by the developer. The tests must be executed on a platform that is as 
						close as practically possible to the operational platform (but which may be 
						instrumented in terms of, for example, use of a debug mode). Where the test is
						not carried out on the TOE itself, the test platform shall be identified and the
						differences between test environment and TOE execution environment shall be 
						described.<h:p/>			
					
						<h:br/><h:b>RSA Key Generation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">RSA</h:td>
								<h:td valign="top">RSA</h:td>
								<h:td valign="top">Modulus of size [<h:b>selection:</h:b> <h:i>3072, 4096, 6144, 8192</h:i>] bits</h:td>
								<h:td valign="top">NIST FIPS PUB 186-5 (Section A.1.1)</h:td>
							</h:tr>
						</h:table><h:p/>						
						FIPS PUB 186-5 Key Pair generation specifies five methods for generating the 
						primes <h:i>p</h:i> and <h:i>q</h:i>.<h:p/>
						These are:<h:ol> 
						<h:li>Random provable primes</h:li>
						<h:li>Random probable primes</h:li>
						<h:li>Provable primes with conditions based on auxiliary provable primes</h:li>
						<h:li>Probable primes with conditions based on auxiliary provable primes</h:li>
						<h:li>Probable primes with conditions based on auxiliary probable primes</h:li>
						</h:ol><h:p/>
						In addition to the key generation method, the input parameters are:<h:ul>
						<h:li>Modulus [3072, 4096, 6144, 8192]</h:li>
						<h:li>Hash algorithm [SHA-384, SHA-512] (methods 1, 3, 4 only)</h:li>
						<h:li>Rabin-Miller prime test [2<h:sup>100</h:sup>, 2<h:sup>Security String</h:sup>] (methods 2, 4, 5 only)</h:li> 
						<h:li><h:i>p</h:i> mod 8 value [0,1,3,5,7]</h:li>
						<h:li><h:i>q</h:i> mod 8 value [0,1,3,5,7]</h:li>
						<h:li>Private key format [standard, Chinese Remainder Theorem]</h:li>
						<h:li>Public exponent [fixed value, random]</h:li></h:ul><h:p/>
						The evaluator shall verify the ability of the TSF to correctly produce values
						for the RSA key components, including the public verification exponent <h:i>e</h:i>, the
						private prime factors <h:i>p</h:i> and <h:i>q</h:i>, the public modulus <h:i>n</h:i>, and 
						the calculation of the private signature exponent <h:i>d</h:i>.<h:p/>
						
						<h:br/><h:i><h:b>Testing for Random Provable Primes and Conditional Methods</h:b></h:i><h:p/> 
						To test the key generation method for the random provable primes method and for
						all the primes with conditions methods (methods 1, 3-5), the evaluator shall seed 
						the TSF key generation routine with sufficient data to deterministically 
						generate the RSA key pair. <h:p/>
						For each supported combination of the above input parameters, the evaluator
						shall have the TSF generate 25 key pairs. The evaluator shall verify the
						correctness of the TSF’s implementation by comparing values generated by the TSF 
						with those generated by a known good implementation using the same input 
						parameters.<h:p/>
						<h:br/><h:i><h:b>Testing for Random Probable Primes Method</h:b></h:i><h:p/>
						If the TOE generates random probable primes (method 2) then, if possible, the 
						random probable primes method should also be verified against a known good
						implementation as described above. If verification against a known good
						implementation is not possible, the evaluator shall have the TSF generate 25 key
						pairs for each supported key length nlen and verify that all of the following 
						are true.<h:p/><h:ul>
						<h:li><h:i>n</h:i> = <h:i>p</h:i>*<h:i>q</h:i></h:li>
						<h:li><h:i>p</h:i> and <h:i>q</h:i> are probably prime according to Miller-Rabin tests with error
							probability &lt;2<h:sup>(-125)</h:sup></h:li>
						<h:li>2<h:sup>16</h:sup> &lt; <h:i>e</h:i> &lt; 2<h:sup>256</h:sup> and <h:i>e</h:i> is an odd integer</h:li>
						<h:li>GCD(<h:i>p</h:i>-1,<h:i>e</h:i>) = 1</h:li>
						<h:li>GCD(<h:i>q</h:i>-1,<h:i>e</h:i>) = 1</h:li>
						<h:li>|<h:i>p</h:i>-<h:i>q</h:i>| &gt; 2<h:sup>(<h:i>nlen</h:i>/2 – 100)</h:sup></h:li>
						<h:li><h:i>p</h:i> ≥ squareroot(2)*( 2<h:sup>(<h:i>nlen</h:i>/2 -1)</h:sup> )</h:li>
						<h:li><h:i>q</h:i> ≥ squareroot(2)*( 2<h:sup>(<h:i>nlen</h:i>/2 -1)</h:sup> )</h:li>
						<h:li>2<h:sup>(<h:i>nlen</h:i>/2)</h:sup> &lt; d &lt; LCM(<h:i>p</h:i>-1,<h:i>q</h:i>-1)</h:li>
						<h:li>e*d = 1 mod LCM(<h:i>p</h:i>-1,<h:i>q</h:i>-1)</h:li></h:ul>
 
						<h:br/><h:b>Elliptic Curve Key Generation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">ECC-ERB</h:td>
							  <h:td valign="top">ECC – Extra Random Bits</h:td>
								<h:td valign="top">Elliptic Curve [<h:b>selection:</h:b> <h:i>P-256, P-384, P-521</h:i>]</h:td>
								<h:td valign="top">NIST FIPS PUB 186-5 (Section A.2.1)<h:p/>
													NIST SP 800-186 (Section 3) [NIST Curves]</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">ECC-RS</h:td>
							  <h:td valign="top">ECC – Rejection Sampling</h:td>
							  <h:td valign="top">Elliptic Curve [<h:b>selection:</h:b> <h:i>P-256, P-384, P-521</h:i>]</h:td>
								<h:td valign="top">NIST FIPS PUB 186-5 (Section A.2.2)<h:p/>
													NIST SP 800-186 (Section 3) [NIST Curves]</h:td>
							</h:tr>
						</h:table><h:p/>						
						To test the TOE’s ability to generate asymmetric cryptographic keys using
						elliptic curves, the evaluator shall perform the ECC Key Generation Test 
						and the ECC Key Validation Test using the following input parameters.<h:ul>
						<h:li>Elliptic curve [P-256, P-384, P-521]</h:li>
						<h:li>Key pair generation method [extra random bits, rejection sampling]</h:li></h:ul><h:p/>
						
						<h:br/><h:i><h:b>ECC Key Generation Test</h:b></h:i><h:br/>
						For each supported combination of the above input parameters the evaluator shall
						require the implementation under test to generate 10 private and public key pairs
						(<h:i>d, Q</h:i>). The private key, <h:i>d</h:i>, shall be generated using a
						random bit generator as defined in FCS_RBG.1. The private key, <h:i>d</h:i>, is
						used to compute the public key, <h:i>Q'</h:i>. The evaluator shall confirm that
						0&lt;<h:i>d</h:i>&lt;<h:i>n</h:i> (where <h:i>n</h:i> is the order of the group),
						and the computed value <h:i>Q'</h:i> is then compared to the generated 
						public and private key pairs’ public key, <h:i>Q</h:i>, to confirm that <h:i>Q</h:i> is 
						equal to <h:i>Q'</h:i>.<h:p/>					
						
						<h:br/><h:i><h:b>ECC Key Validation Test</h:b></h:i><h:br/>
						For each supported combination of the above parameters the evaluator shall
						generate 12 private and public key pairs using the key generation function of a 
						known good implementation. For each set of 12 public keys, the evaluator shall
						modify four public key values by shifting <h:i>x</h:i> or <h:i>y</h:i> out of 
						range by adding the order of the field and modify four other public key values 
						by shifting <h:i>x</h:i> or <h:i>y</h:i> so that they are still in bounds, but 
						not on the curve. The remaining public key values are left unchanged (i.e., 
						correct). To determine correctness, the evaluator shall submit the public keys
						to the public key validation (PKV) function of the TOE and confirm that 
						the results correspond as expected for the modified and unmodified values.<h:p/>
					
						<h:br/><h:b>Finite Field Cryptography Key Generation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">FFC-ERB</h:td>
								<h:td valign="top">FFC – Extra Random Bits</h:td>
								<h:td valign="top">Static domain parameters approved for [<h:b>selection:</h:b>
									<h:i>IKE groups [<h:b>selection:</h:b> MODP-3072, MODP-4096, 
									MODP-6144, MODP-8192], TLS groups [<h:b>selection:</h:b>  
									ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]</h:i>]]</h:td>
								<h:td valign="top">NIST SP 800-56A Revision 3 (Section 5.6.1.1.3) [key pair generation]<h:p/>
												[<h:b>selection:</h:b> <h:i>RFC 3526 [IKE groups], RFC 7919 [TLS groups]</h:i>]</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">FFC-RS</h:td>
								<h:td valign="top">FFC – Rejection Sampling</h:td>
								<h:td valign="top">Static domain parameters approved for [<h:b>selection:</h:b>
								  IKE groups [<h:b>selection:</h:b> <h:i>MODP-3072, MODP-4096, 
									MODP-6144, MODP-8192], TLS groups [<h:b>selection:</h:b>  
								    ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]]</h:i>]</h:td>
								<h:td valign="top">NIST SP 800-56A Revision 3 (Section 5.6.1.1.4) [key pair generation]<h:p/>
								  [<h:b>selection:</h:b> <h:i>RFC 3526 [IKE groups], RFC 7919 [TLS groups]</h:i>]</h:td>
							</h:tr>
						</h:table><h:p/>						
						To test the TOE’s ability to generate asymmetric cryptographic keys using finite
						fields, the evaluator shall perform the Safe Primes Generation Test and the Safe
						Primes Validation Test using the following input parameter:<h:ul>
						<h:li>Fields/Groups [MODP-3072, MODP-4096, MODP-6144, MODP-8192,  
							ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]</h:li></h:ul><h:p/>
					
						<h:br/><h:i><h:b>Safe Primes Generation Test</h:b></h:i><h:br/>
						For each supported safe primes group, generate 10 key pairs. The evaluator shall 
						verify the correctness of the TSF’s implementation by comparing values generated
						by the TSF with those generated by a known good implementation using the same 
						input parameters.<h:p/>
						
						<h:br/><h:i><h:b>Safe Primes Verification Test</h:b></h:i><h:br/>
						For each supported safe primes group, use a known good implementation to generate
						10 key pairs. For each set of 10, the evaluator shall modify three so they are 
						incorrect. The remaining values are left unmodified (i.e., correct). To
						determine correctness, the evaluator shall submit the key pairs to the public 
						key validation (PKV) function of the TOE and shall confirm that the results
						correspond as expected for the modified and unmodified values.<h:p/>
		
		
		<!-- EdDSA -->
					  <h:br/><h:b>EdDSA Key Generation</h:b><h:p/>
					  <h:table border="1">
					    <h:tr class="header" bgcolor="#cccccc">
					      <h:td valign="top">Identifier</h:td>
					      <h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
					      <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
					      <h:td valign="top">List of Standards</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td valign="top">EdDSA</h:td>
					      <h:td valign="top">EdDSA</h:td>
					      <h:td valign="top">Edwards25519
					      </h:td>
					      <h:td valign="top">NIST FIPS PUB 186-5 [EdDSA]<h:p/>NISTP 800-186 [parameters]</h:td>
					    </h:tr>
					  </h:table><h:p/>						
		<h:p>
		The evaluator shall require the implementation under test (IUT) to generate 10 private/public key pairs. The private key shall be generated as defined in RFC 7748 using an approved random bit generator (RBG) and shall be written in little-endian order (least significant byte first). To determine correctness, the evaluator shall submit the generated key pairs to the public key verification (PKV) function of a known good implementation.
		</h:p><h:p>
		Note: Assuming the PKV function of the good implementation will (using little-endian order):<h:ol type="a">
		  <h:li>Confirm the private and public keys are 32-byte values</h:li>
		  <h:li>Confirm the three least significant bits of the first byte of the private key are zero</h:li>
		  <h:li>Confirm the most significant bit of the last byte is zero</h:li>
		  <h:li>Confirm the second most significant bit of the last byte is one</h:li>
		  <h:li>Calculate the expected public key from the private key and confirm it matches the supplied public key</h:li>
		</h:ol></h:p>
		The evaluator shall generate 10 private/public key pairs using the key generation function of a known good implementation and modify 5 of the public key values so that they are incorrect, leaving five values unchanged (i.e. correct). The evaluator shall obtain in response a set of 10 PASS/FAIL values.
		
		
					  <h:br/><h:b>LMS Key Generation</h:b><h:p/>
					  <h:table border="1">
					    <h:tr class="header" bgcolor="#cccccc">
					      <h:td valign="top">Identifier</h:td>
					      <h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
					      <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
					      <h:td valign="top">List of Standards</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td valign="top">LMS</h:td>
					      <h:td valign="top">LMS Key Generation</h:td>
					      <h:td valign="top">Private key size = [<h:b>selection:</h:b>  
					        192 bits with [<h:b>selection:</h:b> <h:i>SHA-256/192, SHAKE256/192],
					          256 bits with [<h:b>selection:</h:b> SHA-256, SHAKE256]</h:i>]; 
					        Winternitz parameter = [<h:b>selection:</h:b> <h:i>1, 2, 4, 8</h:i>]; 
					        Tree height = [<h:b>selection:</h:b> <h:i>5, 10, 15, 20, 25</h:i>]
					      </h:td>
					      <h:td valign="top">RFC 8554 [LMS]<h:p/>NIST SP 800-208 [parameters]</h:td>
					    </h:tr>
					  </h:table><h:p/>
						To test the TOE’s ability to generate asymmetric cryptographic keys using LMS, the
						evaluator shall perform the LMS Key Generation Test using the following input parameters:
						<h:ul>
						<h:li>Hash algorithm [SHA-256/192, SHAKE256/192, SHA-256, SHAKE256]</h:li>
						<h:li>Winternitz [1, 2, 4, 8]</h:li>
						<h:li>Tree height [5, 10, 15, 20, 25]</h:li></h:ul><h:p/>
						<h:br/><h:i><h:b>LMS Key Generation Test</h:b></h:i><h:br/>
						For each supported combination of the hash algorithm, Winternitz parameter, and tree height, the
						evaluator shall generate one public key for each of the test cases. The number of test cases
						depends on the tree height:
						<h:b><h:div style="text-align: center;">
							<ctr ctr-type="Table" pre="Table " id="lms-test-cases">: Number of LMS Test Cases</ctr>
							</h:div>
						</h:b>
							
						<h:table border="1" style="width:50%">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Height</h:td>
								<h:td valign="top">Number of test cases</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">5</h:td>
								<h:td valign="top">5</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">10</h:td>
								<h:td valign="top">4</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">15</h:td>
								<h:td valign="top">3</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">20</h:td>
								<h:td valign="top">2</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">25</h:td>
								<h:td valign="top">1</h:td>
							</h:tr>
						</h:table><h:p/>						
						The evaluator shall verify the correctness of the TSF’s implementation by
						comparing the public key generated by the TSF with that generated by a known
						good implementation using the same input parameters.<h:p/>


						<h:br/><h:b>ML-KEM Key Generation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">ML-KEM</h:td>
								<h:td valign="top">ML-KEM Key Generation</h:td>
								<h:td valign="top">Parameter set = [ML-KEM-1024]</h:td>
								<h:td valign="top">NIST FIPS PUB 203 (Section 7.1)</h:td>
							</h:tr>
						</h:table><h:p/>						
						To test the TOE’s ability to generate asymmetric cryptographic keys using ML-KEM,
						the evaluator shall perform the Algorithm Functional Test using the following 
						input parameters:<h:ul>
						<h:li>Parameter set [ML-KEM-1024]</h:li>
						<h:li>Random seed d [32 bytes]</h:li>
						<h:li>Random seed z [32 bytes]</h:li></h:ul><h:p/>
						<h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
						For each supported parameter set the evaluator shall require the implementation under test to
						generate 25 key pairs using 25 different randomly generated pairs of 32-byte seed values (<h:i>d, z</h:i>).
						To determine correctness, the evaluator shall compare the resulting key pairs (<h:i>ek, dk</h:i>) with those
						generated using a known good implementation using the same inputs.<h:p/>

						<h:br/><h:b>ML-DSA Key Generation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">ML-DSA</h:td>
								<h:td valign="top">ML-DSA Key Generation</h:td>
								<h:td valign="top">Parameter set = ML-DSA-87</h:td>
								<h:td valign="top">NIST FIPS PUB 204 (Section 5.1)</h:td>
							</h:tr>
						</h:table><h:p/>						
							To test the TOE’s ability to generate asymmetric cryptographic keys using ML-DSA, 
							the evaluator shall perform the Algorithm Functional Test using the following
							input parameters:<h:ul>
							<h:li>Parameter set [ML-DSA-87]</h:li>
							<h:li>Random seed [32 bytes]</h:li></h:ul><h:p/>
							<h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
							For each supported parameter set the evaluator shall require the implementation 
							under test to generate 25 key pairs using 25 different randomly generated 32-byte 
							seed values. To determine correctness, the evaluator shall compare the resulting
							key pairs with those generated using a known good implementation using the same 
							inputs.<h:p/>	

						<h:br/><h:b>XMSS Key Generation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Key Generation Algorithm</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">XMSS</h:td>
								<h:td valign="top">XMSS</h:td>
							  <h:td valign="top">Private key size = [<h:b>selection:</h:b> <h:i>192 bits
									with [<h:b>selection:</h:b> SHA-256/192, SHAKE256/192], 256 bits 
									with [<h:b>selection:</h:b> SHA-256, SHAKE256]</h:i>], tree height = 
							    [<h:b>selection:</h:b> <h:i>10, 16, 20</h:i>]</h:td>
								<h:td valign="top">RFC 8391 [XMSS]<h:p/>
									NIST SP 800-208 [parameters]</h:td>
							</h:tr>
						</h:table><h:p/>
						To test the TOE’s ability to generate asymmetric cryptographic keys using 
						XMSS, the evaluator shall perform the XMSS Key 
						Generation Test using the following input parameters:<h:ul>
						<h:li>Hash algorithm [SHA-256/192, SHAKE256/192, SHA-256, SHAKE256]</h:li>
						<h:li>Tree height [10, 16, 20] (XMSS only)</h:li></h:ul><h:p/>

						<h:b><h:div style="text-align: center;">
							<ctr ctr-type="Table" pre="Table " id="xmss-akg-test-cases">: Number of Test Cases for XMSS<h:sup>MT</h:sup></ctr>
						</h:div></h:b>
						<h:table border="1" style="width:50%">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Height</h:td>
								<h:td valign="top">Number of test cases</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">10</h:td>
								<h:td valign="top">5</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">16</h:td>
								<h:td valign="top">4</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">20</h:td>
								<h:td valign="top">3</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">40</h:td>
								<h:td valign="top">2</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">60</h:td>
								<h:td valign="top">1</h:td>
							</h:tr>
						</h:table><h:p/>						

						<h:br/><h:i><h:b>XMSS Key Generation Test</h:b></h:i><h:br/>
						For each supported combination of hash algorithm and tree height, the evaluator 
						shall generate one public key for each test case. The number of test cases
						depends on the tree height as defined in <xref to="xmss-akg-test-cases"/>.<h:p/>

						The evaluator shall verify the correctness of the TSF’s implementation by comparing 
						values generated by the TSF with those generated by a known good implementation using 
						the same input parameters.<h:p/>
						
						Note: The number of test cases is limited due to the extreme amount of time it can
						take to generate XMSS trees.<h:p/>
					</Tests>
	    </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
        <!-- FCS_CKM.1/SKG Cryptographic Key Generation - Symmetric Key -->
        <f-component id="sfr-fcs-ckm-1-skg" cc-id="fcs_ckm.1" iteration="SKG" name="Cryptographic Key Generation - Symmetric Key">
          <f-element id="fcs-ckm-1e1-skg">
            <title>
              The TSF shall generate <h:b>symmetric</h:b> cryptographic keys in accordance with
              a specified cryptographic key generation algorithm<selectables>
                <tabularize id="fcs-ckm-1-skg-sels" title="Allowable Choices for FCS_CKM.1/SKG">
                  <textcol>Identifier</textcol>
                  <selectcol>Cryptographic Key Generation Algorithm</selectcol>
                  <reqtext>and specified cryptographic key sizes</reqtext>
                  <selectcol>Cryptographic Key Sizes</selectcol>
                  <reqtext>that meet the following: </reqtext>
                  <selectcol>List of standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-ckm-1-skg-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_CKM.1/SKG.</reqtext>
                </tabularize>
                
                <!-- RSK -->
                <selectable id="sel-fcs-ckm-sk-rsk">
                  <col>RSK</col>
                  <col>Direct Generation from a Random Bit Generator as defined in FCS_RBG.1</col>
                  <col><selectables>
                    <selectable id="sel-exp-skg-256">256</selectable>
                    <selectable id="sel-exp-skg-256">384</selectable>
                    <selectable id="sel-exp-skg-512">512</selectable></selectables> bits
                  </col>
                  <col>NIST SP 800-133 Revision 2 (Section 6.1)[Direct generation of symmetric keys]</col>
                </selectable>
              </selectables>
            </title>
            <aactivity>
              <TSS>
                The evaluator shall examine the TSS to verify that it describes how the TOE obtains a symmetric
                cryptographic key through direct generation from a random bit generator as defined in
                FCS_RBG.1. The evaluator shall review the TSS to verify that it describes how the functionality
                described by FCS_RBG.1 is invoked.<h:p/>
                The evaluator shall examine the TSS to verify that it identifies the usage, and key lifecycle for
                keys generated using each selected algorithm.<h:p/>		
                If the TOE uses the generated key in a key chain/hierarchy then the evaluator shall verify that the
                TSS describes how the key is used as part of the key chain/hierarchy.
              </TSS>
              <Guidance>
                The evaluator shall verify that the AGD instructs the administrator how to configure the TOE to
                use the DRBG to generate symmetric keys for all uses identified in the ST.
              </Guidance>
              <Tests>
                The following tests are conditional based upon the selections made in the SFR.
                The evaluator shall perform the following test or witness respective tests 
                executed by the developer. The tests must be executed on a platform that is as 
                close as practically possible to the operational platform (but which may be 
                instrumented in terms of, for example, use of a debug mode). Where the test 
                is not carried out on the TOE itself, the test platform shall be identified and
                the differences between test environment and TOE execution environment shall be
                described.<h:p/>
                To test the TOE’s ability to generate symmetric cryptographic keys using a 
                random bit generator, the evaluator shall configure the symmetric cryptographic 
                key generation capability for each claimed key size. The evaluator shall use the
                description of the DRBG interface to verify that the TOE requests and receives an
                amount of DRBG output greater than or equal to the requested key size.
              </Tests>				
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_ckm.2" name="Cryptographic Key Distribution">          
          <f-element id="fel-crypt-key-estab">
            <title>The TSF shall distribute cryptographic keys in accordance with the specified cryptographic 
              key distribution method <h:b>key wrapping as defined in FCS_COP.1/KeyWrap</h:b> and <selectables>
                <selectable id="sel-ckm-2-encap">key encapsulation as defined in FCS_COP.1/KeyEncap</selectable>                
                <selectable id="sel-ckm-2-no-other"><h:b>no other methods</h:b></selectable>
              </selectables> that meets the following: [<h:i>none</h:i>].
            </title>
            <note role="application">
              <h:p>
                Key encapsulation is used in support of TLS when ML-KEM is used as the method of key establishment. Key wrapping is used in support of wireless LAN communications so it is always required. If "key encapsulation..." is selected, FCS_COP.1/KeyEncap is claimed.
              </h:p>
            </note>
            <aactivity>
              <TSS>
                The evaluator shall ensure that the TSS documents that the security strength supported by
                the selected key distribution methods is sufficient for the security strength of the keys
                distributed through those methods.<h:p/>
                It is not necessary to identify the services that use each key distribution method here. That
                information should be documented in the requirements for the individual services and
                protocols that invoke key distribution.
              </TSS>
              <Guidance>
                The evaluator shall verify that the AGD guidance instructs the administrator
                how to configure the TOE to use the selected key distribution methods.
              </Guidance>
              <Tests>
                Specific testing for this component is covered by testing for the claimed components in
                FCS_COP.1/KeyEncap or FCS_COP.1/KeyWrap, depending on selections made.
              </Tests>
            </aactivity>
            <!--
            <rule id="r-key-rsa">
              <if><ref-id>s-keyestab-rsa</ref-id></if>
              <then><ref-id>s-keygen-rsa</ref-id></then>
            </rule>
            <rule id="r-key-ecc">
              <if><ref-id>s-keyestab-ecc</ref-id></if>
              <then><ref-id>s-keygen-ecc</ref-id></then>
            </rule>
            <rule id="r-key-ffc">
              <if><ref-id>s-keyestab-ffc</ref-id></if>
              <then><ref-id>s-keygen-ffc</ref-id></then>
            </rule>
            -->
          </f-element>
          <audit-event/>
        </f-component>
       
        <f-component cc-id="fcs_ckm.6" name="Timing and Event of Cryptographic Key Destruction">
          <f-element id="fel-key-kill-when">
            <title>The TSF shall destroy [<h:i>all plaintext keys and keying material</h:i>] when 
              <selectables>
                <selectable>no longer needed</selectable>
                <selectable><assignable>other circumstances for destruction</assignable></selectable>
              </selectables>.
            </title>
          </f-element>
            <f-element id="fel-key-kill-how">
              <title> The TSF shall destroy <h:b>plaintext</h:b> cryptographic keys and keying material specified by FCS_CKM.6.1 in accordance with a specified cryptographic key destruction method
              
                  [<h:i>in accordance with the following rules: <h:ul>
                    <h:li>For volatile memory, the destruction shall be executed by a single direct overwrite consisting of <selectables>
                      <selectable>a pseudo-random pattern using the TSF or platform DRBG (as defined in FCS_RBG.1)</selectable>
                      <selectable>zeroes</selectable>
                    </selectables></h:li>
                    <h:li>For non-volatile EEPROM, the destruction shall be executed by a single direct overwrite consisting of a pseudo-random pattern using the 
                      TSF or platform DRBG (as defined in FCS_RBG.1), followed by a read-verify.</h:li>
                    <h:li>For non-volatile flash memory, that is not wear-leveled, the destruction shall be executed by a <selectables>
                      <selectable>single direct overwrite consisting of zeroes followed by a read-verify</selectable>
                      <selectable>block erase that erases the reference to memory that stores data as well as the data itself</selectable>
                    </selectables>
                    </h:li>
                    <h:li>For non-volatile flash memory that is wear-leveled, the destruction shall be executed by a <selectables>
                      <selectable>single direct overwrite consisting of zeroes</selectable>
                      <selectable>block erase</selectable>
                    </selectables></h:li>
                    <h:li>For non-volatile memory other than EEPROM and flash, the destruction shall be executed by a single direct overwrite with a random pattern that 
                      is changed before each write</h:li></h:ul></h:i>] that meets the following: [<h:i>no standard</h:i>].
              </title>
              <note role="application">
                <h:p>
                For the purposes of this requirement, keying material refers to authentication data, passwords, secret/private symmetric keys, private asymmetric keys, data used to derive keys, values derived from passwords, etc. “Plaintext keying material” may refer to a KEK that is used to encrypt other keying material. Destruction of encrypted keying material may be accomplished by destroying the KEK used to encrypt it. If different mechanisms are used for destroying different keying material, all relevant claims should be selected and the TSS should identify which keying material is destroyed by which mechanism. 
                </h:p><h:p>
                  There are multiple situations in which plaintext keying material is no longer needed, including when the TOE is powered off, when the wipe when trusted channels are disconnected, when keying material is no longer needed by the trusted channel per the protocol, and when transitioning to the locked state (for those values derived from the Password Authentication Factor or that key material which is protected by the password-derived or biometric-unlocked KEK as defined in FCS_STG_EXT.2 – see Figure 3). For keys (or key material used to derive those keys) protecting sensitive data received in the locked state, "no longer needed" includes "while in the locked state." The assignment for "other circumstances for destruction" is completed for any user or Administrator directed key destruction such as initiating the wipe function or other manual destruction.
                </h:p><h:p>
                  Key storage areas in non-volatile storage can be overwritten with any value that renders the keys unrecoverable. The value used can be all zeroes, all ones, or any other pattern or combination of values significantly different than the value of the key itself. When ‘a value that does not contain any keying material’ is chosen, it means that the TOE uses some other specified data not drawn from a source that may contain keying material or reveal information about it or any other TSF-protected data. In other words, the data used for overwriting is carefully selected and not taken from a general ‘pool’ that might contain current or residual data that itself requires confidentiality protection. If multiple copies exist, all copies must be destroyed. 
                </h:p>
              </note>

            <aactivity>
              <TSS><h:p>
                The evaluator shall verify that the TSS identifies all plaintext keys and keying material stored by the TOE, the type of memory in which it is stored, and when and how the keying material is erased. If the TOE uses one or more KEKs to protect stored keying material, the evaluator shall verify that the TSS describes the destruction of that keying material, either directly or by destruction of the KEK used to encrypt it.</h:p><h:p>
                If different types of memory are used to store the materials to be protected, the evaluator shall check to ensure that the TSS describes the clearing procedure in terms of the memory in which the data are stored (for example, "secret keys stored on flash are cleared by overwriting once with zeros, while secret keys stored on the internal persistent storage device are cleared by overwriting one time with a random pattern that is changed before each write"). For block erases, the evaluator shall also ensure that the TSS identifies the block erase command that is used and shall verify that the command used also addresses any copies of the plaintext key material that may be created, e.g. in order to optimize the use of Flash memory.
                </h:p>
              </TSS>
              <Guidance/>
              <Tests>
                <h:p><h:b>Evaluation Activity Note:</h:b> The following tests likely require the TOE developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on the end consumer version of the TOE.</h:p>
                <h:p>
                  The evaluator shall perform the following tests for all keys and key material subject to destruction by the TOE. For these tests, the evaluator shall utilize an appropriate development environment (e.g., a virtual machine) and development tools (debuggers, simulators, etc.) to test that keys are cleared, including all copies of
                  the key that may have been created internally by the TOE during normal cryptographic
                  processing with that key.</h:p>
                <testlist>
                  <test> Applied to each key held as plaintext in volatile memory and subject to
                    destruction by overwrite by the TOE (whether or not the plaintext value is
                    subsequently encrypted for storage in volatile or non-volatile memory). In the
                    case where the only selection made for the destruction method key was removal of
                    power, then this test is unnecessary. The evaluator shall: <h:br/>
                    <h:ol>
                      <h:li>Record the value of the key in the TOE subject to clearing.</h:li>
                      <h:li>Cause the TOE to perform a normal cryptographic processing with the
                        key from Step #1.</h:li>
                      <h:li>Cause the TOE to clear the key.</h:li>
                      <h:li>Cause the TOE to stop the execution but not exit.</h:li>
                      <h:li>Cause the TOE to dump the entire memory of the TOE into a binary
                        file.</h:li>
                      <h:li>Search the content of the binary file created in Step #5 for instances
                        of the known key value from Step #1.</h:li>
                      <h:li>Break the key value from Step #1 into 3 similar sized pieces and
                        perform a search using each piece.</h:li>
                    </h:ol>
                    <h:br/> Steps 1-6 ensure that the complete key does not exist anywhere in
                    volatile memory. If a copy is found, then the test fails. <h:br/><h:br/>
                    Step 7 ensures that partial key fragments do not remain in memory. If a fragment
                    is found, there is a minuscule chance that it is not within the context of a key
                    (e.g., some random bits that happen to match). If this is the case the test
                    should be repeated with a different key in Step #1. If a fragment is found the
                    test fails. <h:br/><h:br/>
                  </test>
                  <test> Applied to each key held in non-volatile memory and subject to destruction
                    by overwrite by the TOE. The evaluator shall use special tools (as needed),
                    provided by the TOE developer if necessary, to view the key storage location: <h:br/>
                    <h:ol>
                      <h:li>Record the value of the key in the TOE subject to clearing.</h:li>
                      <h:li>Cause the TOE to perform a normal cryptographic processing with the
                        key from Step #1.</h:li>
                      <h:li>Cause the TOE to clear the key.</h:li>
                      <h:li>Search the non-volatile memory the key was stored in for instances of
                        the known key value from Step #1. If a copy is found, then the test
                        fails.</h:li>
                      <h:li>Break the key value from Step #1 into 3 similar sized pieces and
                        perform a search using each piece. If a fragment is found then the test is
                        repeated (as described for test 1 above), and if a fragment is found in the
                        repeated test then the test fails.</h:li>
                    </h:ol>
                    <h:br/><h:br/>
                  </test>
                  <test> Applied to each key held as non-volatile memory and subject to destruction
                    by overwrite by the TOE. The evaluator shall use special tools (as needed),
                    provided by the TOE developer if necessary, to view the key storage location: <h:br/>
                    <h:ol>
                      <h:li>Record the storage location of the key in the TOE subject to
                        clearing.</h:li>
                      <h:li>Cause the TOE to perform a normal cryptographic processing with the
                        key from Step #1.</h:li>
                      <h:li>Cause the TOE to clear the key.</h:li>
                      <h:li>Read the storage location in Step #1 of non-volatile memory to ensure
                        the appropriate pattern is utilized. </h:li>
                    </h:ol>
                    <h:br/> The test succeeds if correct pattern is used to overwrite the key in
                    the memory location. If the pattern is not found the test fails. </test>
                </testlist>
              </Tests>
            </aactivity>
            </f-element>
            <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FCS_CKM_EXT" title="Cryptographic Key Management">
          <fam-behavior>This family defines requirements for management of cryptographic keys that are not addressed by FCS_CKM in CC Part 2.
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fcs_ckm_ext.1" name="Cryptographic Key Support">
          
          <comp-lev> requires the TSF to implement a Root Encryption Key (REK).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
          <h:ul>
            <h:li>Generation of a REK.</h:li>
          </h:ul></audit>
          <dependencies>FCS_RBG.1 Random Bit Generation</dependencies>
          
          <!-- fcs_ckm_ext.1.1-->
          <f-element id="fel-mut-hard">
            <title>The TSF shall support <selectables>
                <selectable id="s-immutable-hardware">immutable hardware</selectable>
                <selectable id="s-mutable-hardware">mutable hardware</selectable></selectables> REKs with a <selectables>
                <selectable id="s-rek-sym">symmetric</selectable>
                <selectable id="s-rek-asym">asymmetric</selectable></selectables> key of strength <selectables>

                <selectable id="s-rek-192">192 bits</selectable>
                <selectable id="s-rek-256">256 bits</selectable></selectables>. </title>
	        <ext-comp-def-title><title>The TSF shall support <assignable>description of REKs</assignable></title>
		</ext-comp-def-title>
          </f-element>
          <f-element id="fel-rek-iso">
            <title>Each REK shall be hardware-isolated from the OS on the TSF in runtime. </title>
          </f-element>
          <f-element id="fel-rek-gen">
            <title>Each REK shall be generated by a DRBG in accordance with FCS_RBG.1. </title>
            <note role="application"> Either asymmetric or symmetric keys are allowed; the ST author
              makes the selection appropriate for the device. Symmetric keys must be of size 
              256 bits in order to correspond with FCS_COP.1/SKC. Asymmetric keys may be of any
              strength corresponding to FCS_CKM.1/AKG. <h:br/><h:br/>

	      The raw key material of
              "immutable hardware" REKs is computationally processed by hardware and software
              cannot access the raw key material. 
	      If <xref to="s-mutable-hardware"/> is selected
              in FCS_CKM_EXT.1.1, FCS_CKM_EXT.9 must be included in the ST. <h:br/><h:br/>

	      The
              lack of a public/documented API for importing or exporting the REK, when a
              private/undocumented API exists, is not sufficient to meet this requirement.
              <h:br/><h:br/> The DRBG used to generate a REK may be a DRBG native to the hardware
              key container or may be an off-device DRBG. If performed by an off-device DRBG, the
              device manufacturer must not be able to access a REK after the manufacturing process
              has been completed. The Evaluation Activities for these two cases differ. </note>
            <aactivity>
              <TSS> The evaluator shall review the TSS to determine that a REK is supported by the
                TOE, that the TSS includes a description of the protection provided by the TOE for a
                REK, and that the TSS includes a description of the method of generation of a REK.
                <h:br/><h:br/> The evaluator shall verify that the description of the protection
                of a REK describes how any reading, import, and export of that REK is prevented.
                For example, if the hardware protecting the REK is removable, the description
                should include how other devices are prevented from reading the REK. The evaluator
                shall verify that the TSS describes how encryption/decryption/derivation actions are
                isolated so as to prevent applications and system-level processes from reading the
                REK while allowing encryption/decryption/derivation by the key.<h:br/><h:br/>
                The evaluator shall verify that the description includes how the OS is
                prevented from accessing the memory containing REK key material, which software is
                allowed access to the REK, how any other software in the execution environment is
                prevented from reading that key material, and what other mechanisms prevent the REK
                key material from being written to shared memory locations between the OS and
                the separate execution environment. <h:br/><h:br/> If key derivation is
                performed using a REK, the evaluator shall ensure that the TSS description includes
                a description of the key derivation function and shall verify the key derivation
                uses an approved derivation mode and key expansion algorithm as defined in 
                FCS_CKM_EXT.3.2. <h:br/><h:br/> The evaluator shall verify that the generation
                of a REK meets the FCS_RBG.1 requirement: <h:br/>
                <h:ul>
                  <h:li>If REKs is/are generated on-device, the TSS shall include a description
                    of the generation mechanism including what triggers a generation, how the
                    functionality described by FCS_RBG.1 is invoked, and whether a separate
                    instance of the DRBG is used for REKs.</h:li>
                  <h:li>If REKs is/are generated off-device, the TSS shall include evidence that
                    the DRBG meets FCS_RBG.1. This will likely necessitate a second set of DRBG
                    documentation equivalent to the documentation provided for the DRBG Evaluation
                    Activities. In addition, the TSS shall describe the manufacturing process that
                    prevents the device manufacturer from accessing any REKs.</h:li>
                </h:ul><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr><selectables onlyone="yes"><selectable>Generation of a REK</selectable><selectable>None</selectable></selectables></audit-event-descr>
	  </audit-event>
        </f-component>
        <f-component cc-id="fcs_ckm_ext.2" name="Cryptographic Key Random Generation">
          
          <comp-lev> requires the TSF to specify the mechanism it uses to generate Data Encryption Keys (DEKs).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG.1 Random Bit Generation</dependencies>
          
          
          <f-element id="fel-dek-gen">
            <title>All DEKs shall be <selectables>
              <selectable>randomly generated by a method defined in FCS_RBG.1,</selectable>
                <selectable> from the combination of a randomly generated DEK with another DEK or
                  salt in a way that preserves the effective entropy of each factor by 
                  <selectables linebreak="yes">
                    <selectable>using an XOR operation,</selectable>
                    <selectable>concatenating the keys and using a KDF (as described in SP 800-108),</selectable>
                    <selectable id="s-dek-800-56">concatenating the keys and using a KDF (as described in SP 800-56C)</selectable>
                  </selectables>
                </selectable>
              </selectables> with entropy corresponding to the security strength of AES key sizes of 256 bits.
            </title>
	    <ext-comp-def-title><title>
		All DEKs shall be <assignable>generation mechanism</assignable> with entropy corresponding
		to the security strength of AES key sizes of 256 bits.
	    </title></ext-comp-def-title>
            <note role="application"> The intent of this requirement is to ensure that the DEK
              cannot be recovered with less work than a full exhaust of the key space for AES. The
              key generation capability of the TOE uses a DRBG implemented on the TOE device
              (FCS_RBG.1). A DEK is used in addition to the KEK so that
              authentication factors can be changed without having to re-encrypt all of the user
              data on the device.<h:br/><h:br/> The ST author selects all applicable DEK
              generation types implemented by the TOE.<h:br/><h:br/> SP 800-56C specifies a two-step key derivation
              procedure that employs an extraction-then-expansion technique for deriving keying
              material from a shared secret generated during a key establishment scheme. The
              Randomness Extraction step as described in Section 5 of SP 800-56C is followed by Key
              Expansion using the key derivation functions defined in SP 800-108 (as described in
              Section 6 of SP 800-56C).
            </note>
            <aactivity>
              <TSS>
                The evaluator shall ensure that the documentation of the product's encryption key
                management is detailed enough that, after reading, the product's key management hierarchy is clear 
                and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure
                that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as 
                separate proprietary evidence rather than being included in the TSS.<h:br/><h:br/> 
                The evaluator shall also examine the key hierarchy section of the TSS to ensure that
                the formation of all DEKs is described and that the key sizes match that described
                by the ST author. The evaluator shall examine the key hierarchy section of the TSS
                to ensure that each DEK is generated or combined from keys of equal or greater
                security strength using one of the selected methods.<h:br/>                
                
                <h:ul>
                  <h:li>If the symmetric DEK is generated by a DRBG, the evaluator shall review
                    the TSS to determine that it describes how the functionality described by
                    FCS_RBG.1 is invoked. The evaluator uses the description of the DRBG
                    functionality in FCS_RBG.1 or documentation available for the operational
                    environment to determine that the key size being requested is greater than or
                    equal to the key size and mode to be used for the encryption/decryption of the
                    data.</h:li>
                  <h:li>If the DEK is formed from a combination, the evaluator shall verify that
                    the TSS describes the method of combination and that this method is either an
                    XOR or a KDF to justify that the effective entropy of each factor is preserved. 
                    The evaluator shall also verify that each combined value was originally generated 
                    from an Approved DRBG described in FCS_RBG.1.</h:li>
                  <h:li>If <xref to="s-dek-800-56"/> is selected,
		  the evaluator shall ensure the TSS includes a description of the
                    randomness extraction step.</h:li>
                </h:ul> The description must include how an approved untruncated MAC function is
                being used for the randomness extraction step and the evaluator shall verify the TSS
                describes that the output length (in bits) of the MAC function is at least as large
                as the targeted security strength (in bits) of the parameter set employed by the key
                establishment scheme (see Tables 1-3 of SP 800-56C).<h:br/><h:br/> The
                description must include how the MAC function being used for the randomness
                extraction step is related to the PRF used in the key expansion and verify the TSS
                description includes the correct MAC function:<h:ul>
                  <h:li>If an HMAC-hash is used in the randomness extraction step, then the same
                    HMAC-hash (with the same hash function hash) is used as the PRF in the key
                    expansion step.</h:li>
                  <h:li>If an AES-CMAC is used in the
                    randomness extraction step, then AES-CMAC with a 128-bit key is used as the PRF
                    in the key expansion step.</h:li>
                  <h:li>The description must include the lengths of the salt values being used in
                    the randomness extraction step and the evaluator shall verify the TSS
                    description includes correct salt lengths:</h:li>
                  <h:li>If an HMAC-hash is being used as the MAC, the salt length can be any value
                    up to the maximum bit length permitted for input to the hash function
                    hash.</h:li>
                  <h:li>If an AES-CMAC is being used as the MAC, the salt length shall be the same
                    length as the AES key (i.e., 256 bits).</h:li>
                </h:ul> (conditional) If a KDF is used, the evaluator shall ensure that the TSS
                includes a description of the key derivation function and shall verify the key
                derivation uses an approved derivation mode and key expansion algorithm as defined in 
                SP 800-108 or SP 800-56C.<h:br/><h:br/>
              </TSS>
              <Guidance> The evaluator uses the description of the DRBG functionality in
                FCS_RBG.1 or documentation available for the operational environment to
                determine that the key size being generated or combined is identical to the key size
                and mode to be used for the encryption/decryption of the
                data.<h:br/><h:br/></Guidance>
              <Tests> If a KDF is used, the evaluator shall perform one or more of the following
                tests to verify the correctness of the key derivation function, depending on the
                modes that are supported. <xref to="notations"/> maps the data fields to the
                notations used in SP 800-108 and SP 800-56C.<h:br/><h:br/>
                <h:b>
                  <ctr ctr-type="Table" id="notations">: Notations used in SP 800-108 and SP
                    800-56C</ctr>
                </h:b><h:br/>
                <h:table>
                  <h:tr class="header"><h:td>Data Fields</h:td><h:td>Notations
                    </h:td><h:td/></h:tr>
                  <h:tr class="header"><h:td/><h:td>SP 800-108</h:td><h:td>SP
                      800-56C</h:td></h:tr>
                  <h:tr><h:td>Pseudorandom
                      function</h:td><h:td>PRF</h:td><h:td>PRF</h:td></h:tr>
                  <h:tr><h:td>Counter
                    length</h:td><h:td>r</h:td><h:td>r</h:td></h:tr>
                  <h:tr><h:td>Length of output of
                      PRF</h:td><h:td>h</h:td><h:td>h</h:td></h:tr>
                  <h:tr><h:td>Length of derived keying
                      material</h:td><h:td>L</h:td><h:td>L</h:td></h:tr>
                  <h:tr><h:td>Length of input values</h:td><h:td>l length</h:td><h:td>l
                      length</h:td></h:tr>
                  <h:tr><h:td>Pseudorandom input values I</h:td><h:td>K1 (key derivation
                      key)</h:td><h:td>Z (shared secret)</h:td></h:tr>
                  <h:tr><h:td>Pseudorandom salt
                      values</h:td><h:td>n/a</h:td><h:td>s</h:td></h:tr>
                  <h:tr><h:td>Randomness extraction
                      MAC</h:td><h:td>n/a</h:td><h:td>MAC</h:td></h:tr>
                </h:table>
                <h:br/><h:br/>
                <h:b>Counter Mode Tests:</h:b><h:br/><h:br/> The evaluator shall determine
                the following characteristics of the key derivation function:<h:ul>
                  <h:li>One or more pseudorandom functions that are supported by the
                    implementation (PRF).</h:li>
                  <h:li>One or more of the values {8, 16, 24, 32} that equal the length of the
                    binary representation of the counter (r).</h:li>
                  <h:li>The length (in bits) of the output of the PRF (h).</h:li>
                  <h:li>Minimum and maximum values for the length (in bits) of the derived keying
                    material (L). These values can be equal if only one value of L is supported.
                    These must be evenly divisible by h.</h:li>
                  <h:li>Up to two values of L that are NOT evenly divisible by h.</h:li>
                  <h:li>Location of the counter relative to fixed input data: before, after, or in
                    the middle.</h:li>
                  <h:ul>
                    <h:li>Counter before fixed input data: fixed input data string length (in
                      bytes), fixed input data string value.</h:li>
                    <h:li>Counter after fixed input data: fixed input data string length (in
                      bytes), fixed input data string value.</h:li>
                    <h:li> Counter in the middle of fixed input data: length of data before
                      counter (in bytes), length of data after counter (in bytes), value of string
                      input before counter, value of string input after counter.</h:li>
                  </h:ul>
                  <h:li>The length (I_length) of the input values I.</h:li>
                </h:ul> For each supported combination of I_length, MAC, salt, PRF, counter
                location, value of r, and value of L, the evaluator shall generate 10 test vectors
                that include pseudorandom input values I, and pseudorandom salt values. If there is
                only one value of L that is evenly divisible by h, the evaluator shall generate 20
                test vectors for it. For each test vector, the evaluator shall supply this data to
                the TOE in order to produce the keying material output. <h:br/><h:br/> The
                results from each test may either be obtained by the evaluator directly or by
                supplying the inputs to the implementer and receiving the results in response. To
                determine correctness, the evaluator shall compare the resulting values to those
                obtained by submitting the same inputs to a known good implementation. <h:br/><h:br/>
                <h:b> Feedback Mode Tests:</h:b><h:br/><h:br/> The evaluator shall determine
                the following characteristics of the key derivation function: <h:ul>
                  <h:li>One or more pseudorandom functions that are supported by the
                    implementation (PRF).</h:li>
                  <h:li>The length (in bits) of the output of the PRF (h).</h:li>
                  <h:li>Minimum and maximum values for the length (in bits) of the derived keying
                    material (L). These values can be equal if only one value of L is supported.
                    These must be evenly divisible by h.</h:li>
                  <h:li>Up to two values of L that are NOT evenly divisible by h.</h:li>
                  <h:li>Whether or not zero-length IVs are supported.</h:li>
                  <h:li>Whether or not a counter is used, and if so:</h:li>
                  <h:ul>
                    <h:li>One or more of the values {8, 16, 24, 32} that equal the length of the
                      binary representation of the counter (r).</h:li>
                    <h:li> Location of the counter relative to fixed input data: before, after, or
                      in the middle.</h:li>
                    <h:ul>
                      <h:li>Counter before fixed input data: fixed input data string length (in
                        bytes), fixed input data string value.</h:li>
                      <h:li>Counter after fixed input data: fixed input data string length (in
                        bytes), fixed input data string value.</h:li>
                      <h:li>Counter in the middle of fixed input data: length of data before
                        counter (in bytes), length of data after counter (in bytes), value of string
                        input before counter, value of string input after counter.</h:li>
                    </h:ul>
                  </h:ul>
                  <h:li>The length (I_length) of the input values I.</h:li>
                </h:ul> For each supported combination of I_length, MAC, salt, PRF, counter
                location (if a counter is used), value of r (if a counter is used), and value of L,
                the evaluator shall generate 10 test vectors that include pseudorandom input values
                I and pseudorandom salt values. If the KDF supports zero-length IVs, five of these
                test vectors will be accompanied by pseudorandom IVs and the other five will use
                zero-length IVs. If zero-length IVs are not supported, each test vector will be
                accompanied by an pseudorandom IV. If there is only one value of L that is evenly
                divisible by h, the evaluator shall generate 20 test vectors for
                it.<h:br/><h:br/> For each test vector, the evaluator shall supply this data to
                the TOE in order to produce the keying material output. The results from each test
                may either be obtained by the evaluator directly or by supplying the inputs to the
                implementer and receiving the results in response. To determine correctness, the
                evaluator shall compare the resulting values to those obtained by submitting the
                same inputs to a known good implementation.<h:br/><h:br/>
                <h:b> Double Pipeline Iteration Mode Tests:</h:b><h:br/><h:br/> The
                evaluator shall determine the following characteristics of the key derivation
                function: <h:ul>
                  <h:li>One or more pseudorandom functions that are supported by the
                    implementation (PRF).</h:li>
                  <h:li>The length (in bits) of the output of the PRF (h).</h:li>
                  <h:li>Minimum and maximum values for the length (in bits) of the derived keying
                    material (L). These values can be equal if only one value of L is supported.
                    These must be evenly divisible by h.</h:li>
                  <h:li>Up to two values of L that are NOT evenly divisible by h.</h:li>
                  <h:li>Whether or not a counter is used, and if so:</h:li>
                  <h:ul>
                    <h:li>One or more of the values {8, 16, 24, 32} that equal the length of the
                      binary representation of the counter (r).</h:li>
                    <h:li>Location of the counter relative to fixed input data: before, after, or
                      in the middle.</h:li>
                    <h:ul>
                      <h:li> Counter before fixed input data: fixed input data string length (in
                        bytes), fixed input data string value.</h:li>
                      <h:li> Counter after fixed input data: fixed input data string length (in
                        bytes), fixed input data string value.</h:li>
                      <h:li> Counter in the middle of fixed input data: length of data before
                        counter (in bytes), length of data after counter (in bytes), value of string
                        input before counter, value of string input after counter.</h:li>
                    </h:ul>
                  </h:ul>
                  <h:li>The length (I_length) of the input values I.</h:li>
                </h:ul> For each supported combination of I_length, MAC, salt, PRF, counter
                location (if a counter is used), value of r (if a counter is used), and value of L,
                the evaluator shall generate 10 test vectors that include pseudorandom input values
                I, and pseudorandom salt values. If there is only one value of L that is evenly
                divisible by h, the evaluator shall generate 20 test vectors for
                it.<h:br/><h:br/> For each test vector, the evaluator shall supply this data to
                the TOE in order to produce the keying material output. The results from each test
                may either be obtained by the evaluator directly or by supplying the inputs to the
                implementer and receiving the results in response. To determine correctness, the
                evaluator shall compare the resulting values to those obtained by submitting the
                same inputs to a known good implementation.<h:br/><h:br/>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fcs_ckm_ext.3" name="Cryptographic Key Generation">
          
          <comp-lev> requires the TSF to generate and manage the strength of Key Encryption Keys (KEKs).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation<h:br/>
            FCS_COP.1 Cryptographic Operation<h:br/>
            FCS_RBG.1 Random Bit Generation<h:br/>
          </dependencies>
          
          
          <f-element id="fel-kek-asym">
            <title>The TSF shall use <selectables>
                <selectable id="s-kek-asym"><snip>asymmetric KEKs</snip> of <assignable id="a-kek-asym-size">security strength greater than or equal
                    to 192 bits</assignable> security strength</selectable>
                <selectable id="s-kek-sym"><snip>symmetric KEKs</snip> of 256-bit security strength corresponding to at least the security strength
                  of the keys encrypted by the KEK</selectable>
            </selectables>. </title>
	    <ext-comp-def-title>
	      <title>The TSF shall use <assignable>description of KEKs</assignable>.</title>
	    </ext-comp-def-title>
            <note role="application"> The ST author selects all applicable KEK types implemented by
              the TOE. </note>
          </f-element>
          <f-element id="fel-kek-gen">
            <title>The TSF shall generate all KEKs using one of the following methods:
                  <h:ul><h:li>Derive the KEK from a Password Authentication Factor as defined in 
                    FCS_CKM_EXT.8 and </h:li></h:ul>
              <selectables linebreak="yes">
                <selectable>Generate the KEK using a DRBG that meets this profile (as defined in
                  FCS_RBG.1)</selectable>
                <selectable>Generate the KEK using a key generation scheme that meets this profile
                  (as defined in FCS_CKM.1/AKG or FCS_CKM.1/SKG)</selectable>
                <selectable>Combine the KEK from other KEKs in a way that preserves the effective
                  entropy of each factor by <selectables>
                    <selectable>using an XOR operation</selectable>
                    <selectable>concatenating the keys and using a KDF (as described in SP
                      800-108)</selectable>
                    <selectable>concatenating the keys and using a KDF (as described in SP
                      800-56C)</selectable>
                    <selectable>encrypting one key with another</selectable></selectables>
                </selectable>
              </selectables>. </title>
            <ext-comp-def-title>
              <title>The TSF shall generate all KEKs using one of the following methods:
                <h:ul><h:li>Derive the KEK from a Password Authentication Factor as defined in 
                  FCS_COP.1.1 and </h:li></h:ul>
                <selectables linebreak="yes">
                  <selectable>Generate the KEK using a DRBG that meets this profile (as defined in
                    FCS_RBG.1)</selectable>
                  <selectable>Generate the KEK using a key generation scheme that meets this profile
                    (as defined in FCS_CKM.1/AKG or FCS_CKM.1/SKG)</selectable>
                  <selectable>Combine the KEK from other KEKs in a way that preserves the effective
                    entropy of each factor by <selectables>
                      <selectable>using an XOR operation</selectable>
                      <selectable>concatenating the keys and using a KDF (as described in SP
                        800-108)</selectable>
                      <selectable>concatenating the keys and using a KDF (as described in SP
                        800-56C)</selectable>
                      <selectable>encrypting one key with another</selectable>
                    </selectables>
                  </selectable>
                </selectables>. </title>
            </ext-comp-def-title>
            <note role="application"> The conditioning of passwords is performed in accordance with
              FCS_CKM_EXT.8. <h:br/><h:br/> It is expected that key generation derived
              from conditioning, using a DRBG or generation scheme, and through combination, will
              each be necessary to meet the requirements set out in this document. In particular,
                <xref to="Keys"/> has KEKs of each type: KEK_3 is generated, KEK_1 is derived
              from a Password Authentication Factor, and KEK_2 is combined from two KEKs. In <xref to="Keys"/>, KEK_3 may either be a symmetric key generated from a DRBG or an
              asymmetric key generated using a key generation scheme as defined in FCS_CKM.1/AKG.
              <h:br/><h:br/> If combined, the ST author should describe which method of
              combination is used in order to justify that the effective entropy of each factor is
              preserved. <h:br/><h:br/>SP 800-56C specifies a two-step key derivation procedure that
              employs an extraction-then-expansion technique for deriving keying material from a
              shared secret generated during a key establishment scheme. The Randomness Extraction
              step as described in Section 5 of SP 800-56C is followed by Key Expansion using the
              key derivation functions defined in SP 800-108 (as described in Section 6 of SP
              800-56C). </note>
            <aactivity>
              <TSS> The evaluator shall examine the key hierarchy section of the TSS to ensure that
                the formation of all KEKs are described and that the key sizes match that described
                by the ST author. The evaluator shall examine the key hierarchy section of the TSS
                to ensure that each key (DEKs, software-based key storage, and KEKs) is encrypted by
                keys of equal or greater security strength using one of the selected
                methods.<h:br/><h:br/> The evaluator shall review the TSS to verify that it
                contains a description of the conditioning used to derive KEKs. This description must
                include the size and storage location of salts. This activity may be performed in
                combination with that for FCS_CKM_EXT.8.<h:br/><h:br/> (conditional) If
                the symmetric KEK is generated by a DRBG, the evaluator shall review the TSS to
                determine that it describes how the functionality described by FCS_RBG.1 is
                invoked. The evaluator uses the description of the DRBG functionality in
                FCS_RBG.1 or documentation available for the operational environment to
                determine that the key size being requested is greater than or equal to the key size
                and mode to be used for the encryption/decryption of the data.<h:br/><h:br/>
                (conditional) If the KEK is generated according to an asymmetric key scheme, the
                evaluator shall review the TSS to determine that it describes how the functionality
                described by FCS_CKM.1/AKG is invoked. The evaluator uses the description of the key
                generation functionality in FCS_CKM.1/AKG or documentation available for the operational
                environment to determine that the key strength being requested is greater than or
                equal to 112 bits.<h:br/><h:br/> (conditional) If the KEK is formed from a
                combination, the evaluator shall verify that the TSS describes the method of
                combination and that this method is either an XOR, a KDF, or
                encryption.<h:br/><h:br/> (conditional) If a KDF is used, the evaluator shall
                ensure that the TSS includes a description of the key derivation function and shall
                verify the key derivation uses an approved derivation mode and key expansion
                algorithm as defined in SP 800-108. <h:br/><h:br/> (conditional) If
                <xref to="s-dek-800-56"/> is selected,
                the evaluator shall ensure the TSS includes a description of the randomness
                extraction step. The description must include <h:ul>
                  <h:li>How an approved untruncated MAC function is being used for the randomness
                    extraction step and the evaluator shall verify the TSS describes that the output
                    length (in bits) of the MAC function is at least as large as the targeted
                    security strength (in bits) of the parameter set employed by the key
                    establishment scheme (see Tables 1-3 of SP 800-56C).</h:li>
                  <h:li>How the MAC function being used for the randomness extraction step is
                    related to the PRF used in the key expansion and verify the TSS description
                    includes the correct MAC function:</h:li>
                  <h:ul>
                    <h:li>If an HMAC-hash is used in the randomness extraction step, then the same
                      HMAC-hash (with the same hash function hash) is used as the PRF in the key
                      expansion step.</h:li>
                    <h:li>If an AES-CMAC (with key length 128, 192, or 256 bits) is used in the
                      randomness extraction step, then AES-CMAC with a 128-bit key is used as the
                      PRF in the key expansion step.</h:li>
                  </h:ul>
                  <h:li>The lengths of the salt values being used in the randomness extraction
                    step and the evaluator shall verify the TSS description includes correct salt
                    lengths:</h:li>
                  <h:ul>
                    <h:li>If an HMAC-hash is being used as the MAC, the salt length can be any
                      value up to the maximum bit length permitted for input to the hash function
                      hash.</h:li>
                    <h:li>If an AES-CMAC is being used as the MAC, the salt length shall be the
                      same length as the AES key (i.e., 256 bits). </h:li>
                  </h:ul>
                </h:ul><h:br/>
                The evaluator shall also ensure that the documentation of the product's encryption key
                management is detailed enough that, after reading, the product's key management hierarchy is clear 
                and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure
                that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as 
                separate proprietary evidence rather than being included in the TSS.<h:br/><h:br/>  
              </TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> If a KDF is used, the evaluator shall perform one or more of the following
                tests to verify the correctness of the key derivation function, depending on the
                modes that are supported. <xref to="KDF"/> maps the data fields to the
                notations used in SP 800-108 and SP 800-56C. <h:br/><h:br/>
                <h:b>
                  <ctr ctr-type="Table" id="KDF">: Notations used in SP 800-108 and SP 800-56C</ctr>
                </h:b><h:br/>
                <h:table>
                  <h:tr class="header"><h:td>Data Fields</h:td><h:td colspan="2">Notations</h:td></h:tr>
                  <h:tr class="header"><h:td/><h:td>SP 800-108</h:td><h:td>SP
                      800-56C</h:td></h:tr>
                  <h:tr><h:td>Pseudorandom
                      function</h:td><h:td>PRF</h:td><h:td>PRF</h:td></h:tr>
                  <h:tr><h:td>Counter
                    length</h:td><h:td>r</h:td><h:td>r</h:td></h:tr>
                  <h:tr><h:td>Length of output of
                      PRF</h:td><h:td>h</h:td><h:td>h</h:td></h:tr>
                  <h:tr><h:td>Length of derived keying
                      material</h:td><h:td>L</h:td><h:td>L</h:td></h:tr>
                  <h:tr><h:td>Length of input
                      values</h:td><h:td>I_length</h:td><h:td>I_length</h:td></h:tr>
                  <h:tr><h:td>Pseudorandom input values I</h:td><h:td>K<h:sub>1</h:sub>
                      (key derivation key)</h:td><h:td>Z (shared secret)</h:td></h:tr>
                  <h:tr><h:td>Pseudorandom salt
                      values</h:td><h:td>n/a</h:td><h:td>s</h:td></h:tr>
                  <h:tr><h:td>Randomness extraction
                      MAC</h:td><h:td>n/a</h:td><h:td>MAC</h:td></h:tr>
                </h:table>
                <h:br/><h:br/>
                <h:b>Counter Mode Tests:</h:b>
                <h:br/><h:br/> The evaluator shall determine the following characteristics of
                the key derivation function:<h:ul>
                  <h:li>One or more pseudorandom functions that are supported by the
                    implementation (PRF).</h:li>
                  <h:li>One or more of the values {8, 16, 24, 32} that equal the length of the
                    binary representation of the counter (r).</h:li>
                  <h:li>The length (in bits) of the output of the PRF (h).</h:li>
                  <h:li>Minimum and maximum values for the length (in bits) of the derived keying
                    material (L). These values can be equal if only one value of L is supported.
                    These must be evenly divisible by h.</h:li>
                  <h:li>Up to two values of L that are NOT evenly divisible by h.</h:li>
                  <h:li>Location of the counter relative to fixed input data: before, after, or in
                    the middle.<h:ul>
                      <h:li>Counter before fixed input data: fixed input data string length (in
                        bytes), fixed input data string value.</h:li>
                      <h:li>Counter after fixed input data: fixed input data string length (in
                        bytes), fixed input data string value.</h:li>
                      <h:li>Counter in the middle of fixed input data: length of data before
                        counter (in bytes), length of data after counter (in bytes), value of string
                        input before counter, value of string input after counter.</h:li>
                    </h:ul></h:li>
                  <h:li>The length (I_length) of the input values I.</h:li>
                </h:ul><h:br/> For each supported combination of I_length, MAC, salt, PRF,
                counter location, value of r, and value of L, the evaluator shall generate 10 test
                vectors that include pseudorandom input values I, and pseudorandom salt values. If
                there is only one value of L that is evenly divisible by h, the evaluator shall
                generate 20 test vectors for it. For each test vector, the evaluator shall supply
                this data to the TOE in order to produce the keying material
                output.<h:br/><h:br/> The results from each test may either be obtained by the
                evaluator directly or by supplying the inputs to the implementer and receiving the
                results in response. To determine correctness, the evaluator shall compare the
                resulting values to those obtained by submitting the same inputs to a known good
                implementation. <h:br/><h:br/>
                <h:b>Feedback Mode Tests:</h:b>
                <h:br/> The evaluator shall determine the following characteristics of the key
                derivation function:<h:br/><h:ul>
                  <h:li>One or more pseudorandom functions that are supported by the
                    implementation (PRF).</h:li>
                  <h:li>The length (in bits) of the output of the PRF (h).</h:li>
                  <h:li>Minimum and maximum values for the length (in bits) of the derived keying
                    material (L). These values can be equal if only one value of L is supported.
                    These must be evenly divisible by h.</h:li>
                  <h:li>Up to two values of L that are NOT evenly divisible by h.</h:li>
                  <h:li>Whether or not zero-length IVs are supported.</h:li>
                  <h:li>Whether or not a counter is used, and if so: <h:ul>
                      <h:li>One or more of the values {8, 16, 24, 32} that equal the length of the
                        binary representation of the counter (r).</h:li>
                      <h:li>Location of the counter relative to fixed input data: before, after,
                        or in the middle.</h:li>
                      <h:ul>
                        <h:li>Counter before fixed input data: fixed input data string length (in
                          bytes), fixed input data string value.</h:li>
                        <h:li>Counter after fixed input data: fixed input data string length (in
                          bytes), fixed input data string value.</h:li>
                        <h:li>Counter in the middle of fixed input data: length of data before
                          counter (in bytes), length of data after counter (in bytes), value of
                          string input before counter, value of string input after counter.</h:li>
                      </h:ul>
                    </h:ul>
                  </h:li>
                  <h:li>The length (I_length) of the input values I.</h:li>
                </h:ul><h:br/> For each supported combination of I_length, MAC, salt, PRF,
                counter location (if a counter is used), value of r (if a counter is used), and
                value of L, the evaluator shall generate 10 test vectors that include pseudorandom
                input values I and pseudorandom salt values. If the KDF supports zero-length IVs,
                five of these test vectors will be accompanied by pseudorandom IVs and the other
                five will use zero-length IVs. If zero-length IVs are not supported, each test
                vector will be accompanied by an pseudorandom IV. If there is only one value of L
                that is evenly divisible by h, the evaluator shall generate 20 test vectors for
                it.<h:br/><h:br/> For each test vector, the evaluator shall supply this data to
                the TOE in order to produce the keying material output. The results from each test
                may either be obtained by the evaluator directly or by supplying the inputs to the
                implementer and receiving the results in response. To determine correctness, the
                evaluator shall compare the resulting values to those obtained by submitting the
                same inputs to a known good implementation.<h:br/><h:br/>
                <h:b>Double Pipeline Iteration Mode Tests:</h:b><h:br/> The evaluator shall
                determine the following characteristics of the key derivation function:<h:br/><h:ul>
                  <h:li>One or more pseudorandom functions that are supported by the
                    implementation (PRF).</h:li>
                  <h:li>The length (in bits) of the output of the PRF (h).</h:li>
                  <h:li>Minimum and maximum values for the length (in bits) of the derived keying
                    material (L). These values can be equal if only one value of L is supported.
                    These must be evenly divisible by h.</h:li>
                  <h:li>Up to two values of L that are NOT evenly divisible by h.</h:li>
                  <h:li>Whether or not a counter is used, and if so:<h:ul>
                      <h:li>One or more of the values {8, 16, 24, 32} that equal the length of the
                        binary representation of the counter (r).</h:li>
                      <h:li>Location of the counter relative to fixed input data: before, after,
                        or in the middle. <h:ul>
                          <h:li>Counter before fixed input data: fixed input data string length
                            (in bytes), fixed input data string value.</h:li>
                          <h:li>Counter after fixed input data: fixed input data string length (in
                            bytes), fixed input data string value.</h:li>
                          <h:li>Counter in the middle of fixed input data: length of data before
                            counter (in bytes), length of data after counter (in bytes), value of
                            string input before counter, value of string input after
                            counter.</h:li>
                        </h:ul>
                      </h:li>
                    </h:ul>
                  </h:li>
                  <h:li>The length (I_length) of the input values I.</h:li>
                </h:ul><h:br/> For each supported combination of I_length, MAC, salt, PRF,
                counter location (if a counter is used), value of r (if a counter is used), and
                value of L, the evaluator shall generate 10 test vectors that include pseudorandom
                input values I, and pseudorandom salt values. If there is only one value of L that
                is evenly divisible by h, the evaluator shall generate 20 test vectors for it.
                <h:br/><h:br/> For each test vector, the evaluator shall supply this data to the
                TOE in order to produce the keying material output. The results from each test may
                either be obtained by the evaluator directly or by supplying the inputs to the
                implementer and receiving the results in response. To determine correctness, the
                evaluator shall compare the resulting values to those obtained by submitting the
                same inputs to a known good implementation. </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_ckm_ext.5" name="TSF Wipe">
          
          <comp-lev> requires the TSF to implement a cryptographic or other mechanism to make TSF data unreadable.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
          <h:ul>
            <h:li>TSF wipe of protected data.</h:li>
            <h:li>TSF wipe of enterprise data.</h:li>
          </h:ul></management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
          <h:ul>
            <h:li>Failure of the wipe.</h:li>
          </h:ul></audit>
          <dependencies>
            FCS_CKM.6 Timing and Event of Cryptographic Key Destruction<h:br/>
            FCS_RBG.1 Random Bit Generation
          </dependencies>
          
          <f-element id="fel-wipe-how">
            <title>The TSF shall wipe all protected data by <selectables linebreak="yes">
               <selectable>Cryptographically erasing the encrypted DEKs or the KEKs in non-volatile memory by following the requirements in FCS_CKM.6.2,</selectable>
                <selectable>Overwriting all protected data according to the following rules: <h:ul>
                    <h:li>For EEPROM, the destruction shall be executed by a single direct overwrite consisting of a pseudo random pattern using the TSF’s DRBG (as defined in FCS_RBG.1), followed by a read-verify.</h:li>
                    <h:li>For flash memory, that is not wear-leveled, the destruction shall be executed <selectables>
                        <selectable>by a single direct overwrite consisting of zeros followed by a read-verify</selectable>
                        <selectable>by a block erase that erases the reference to memory that stores data as well as the data itself</selectable></selectables>.</h:li>
                    <h:li>For flash memory, that is wear-leveled, the destruction shall be executed <selectables>
                        <selectable>by a single direct overwrite consisting of zeros</selectable>
                        <selectable>by a block erase</selectable>
                        </selectables>. 
                      </h:li>
                   <h:li>For non-volatile memory other than EEPROM and flash, the destruction shall be executed by a single direct overwrite with a random pattern that is changed before each write. </h:li>
                  </h:ul>
                </selectable>
              </selectables>. 
            </title>
            <note role="Application"> 
              Protected data is all non-TSF data, including all user or enterprise data.
			 Some or all of this data may be considered sensitive data as well.
            </note>
          </f-element>
          <f-element id="fel-wipe-power">
            <title>The TSF shall perform a power cycle on conclusion of the wipe procedure. </title>
            
            <aactivity>
              <TSS> 
                The evaluator shall check to ensure the TSS describes how the device is wiped, the type of clearing procedure that is performed (cryptographic erase or overwrite) and, if overwrite is performed, the overwrite procedure (overwrite with zeros, overwrite three or more times by a different alternating pattern, overwrite with random pattern, or block erase). <h:br/><h:br/>
                If different types of memory are used to store the data to be protected, the evaluator shall check to ensure that the TSS describes the clearing procedure in terms of the memory in which the data are stored (for example, data stored on flash are cleared by overwriting once with zeros, while data stored on the internal persistent storage device are cleared by overwriting three times with a random pattern that is changed before each write). <h:br/><h:br/>
              </TSS>
              <Guidance>
                The evaluator shall verify that the AGD guidance describes how to enable encryption, if it is not enabled by default. Additionally the evaluator shall verify that the AGD guidance describes how to initiate the wipe command.<h:br/><h:br/>
              </Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> 
                The following test may require the developer to provide access to a test platform that provides the evaluator with tools that are typically not found on consumer Mobile Device products. <h:br/><h:br/> 
                <testlist>
                  <test>The evaluator shall perform one of the following tests. The test before and after the wipe command shall be identical. This test shall be repeated for each type of memory used to store the data to be protected. <h:br/><h:br/>
                  <testlist>
                    <test><h:b>For File-based Methods:</h:b><h:br/>
                      The evaluator shall enable encryption according to the AGD guidance. The evaluator shall create a user data (protected data or sensitive data) file, for example, by using an application. The evaluator shall use a tool provided by the developer to examine this data stored in memory (for example, by examining a decrypted files). The evaluator shall initiate the wipe command according to the AGD guidance provided for FMT_SMF_EXT.1. The evaluator shall use a tool provided by the developer to examine the same data location in memory to verify that the data has been wiped according to the method described in the TSS (for example, the files are still encrypted and cannot be accessed). </test>
                    <test><h:b>For Volume-based Methods:</h:b><h:br/>
                      The evaluator shall enable encryption according to the AGD guidance. The evaluator shall create a unique data string, for example, by using an application. The evaluator shall use a tool provided by the developer to search decrypted data for the unique string. The evaluator shall initiate the wipe command according to the AGD guidance provided for FMT_SMF_EXT.1. The evaluator shall use a tool provided by the developer to search for the same unique string in decrypted memory to verify that the data has been wiped according to the method described in the TSS (for example, the files are still encrypted and cannot be accessed).</test>
                  </testlist>               
                  </test>
                  <test>
                    The evaluator shall cause the device to wipe and verify that the wipe concludes with a power cycle.                                 
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr><selectables onlyone="yes"><selectable>Failure of the wipe</selectable><selectable>None</selectable></selectables></audit-event-descr>
	  </audit-event>
        </f-component>
        <f-component cc-id="fcs_ckm_ext.6" name="Salt Generation">
          
          <comp-lev> requires the TSF to generate salts in a specified manner.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG.1 Random Bit Generation</dependencies>
          
          
          <f-element id="fel-salt-gen">
            <title>The TSF shall generate all salts using a DRBG that meets FCS_RBG.1. </title>
            <note role="application">This requirement refers only to salt generation. In the
              examples given, a salt may be used as part of the scheme/algorithm. Requirements on
              nonces or ephemeral keys are provided elsewhere, if needed. The list below is
              provided for clarity, in order to give examples of where the TSF may be generating
              cryptographic salts; it is not exhaustive nor is it intended to mandate implementation
              of all of these schemes/algorithms. Cryptographic salts are generated for various uses
              including: <h:ul>
                <h:li>RSASSA-PSS signature generation</h:li>
                <h:li>DSA signature generation</h:li>
                <h:li>ECDSA signature generation</h:li>
                <h:li>DH static key agreement scheme</h:li>
                <h:li>PBKDF</h:li>
                <h:li>Key Agreement Scheme in NIST SP 800-56B</h:li>
                <h:li>AES GCM</h:li>
              </h:ul>
            </note>
            <aactivity>
              <TSS> The evaluator shall verify that the TSS contains a description regarding the
                salt generation, including which algorithms on the TOE require salts. The evaluator
                shall confirm that the salt is generated using a DRBG described in FCS_RBG.1.
                For PBKDF derivation of KEKs, this evaluation activity may be performed in
                conjunction with FCS_CKM_EXT.3.2.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <f-component name="Cryptographic Key Establishment" cc-id="fcs_ckm_ext.7" status="invisible">
            <comp-lev> requires the TSF to perform key establishment regardless of whether the device is locked or
            unlocked.</comp-lev>
          <management/>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:br/><h:ul>
              <h:li>minimal: Success and failure of the activity;</h:li>
              <h:li>basic: The object attribute(s), and object value(s) excluding any sensitive information.</h:li>
            </h:ul>
          </audit>
          <dependencies><h:br/>
            <h:br/>[FDP_ITC.1 Import of User Data without Security Attributes, or
            <h:br/>FDP_ITC.2 Import of User Data with Security Attributes, or 
            <h:br/>FCS_CKM.1 Cryptographic Key Generation, or
            <h:br/>FCS_CKM.5 Cryptographic Key Derivation, or
            <h:br/>FCS_CKM_EXT.8 Password-Based Key Derivation],
            <h:br/>[FCS_CKM_EXT.7 Cryptographic Key Distribution, or
            <h:br/>FCS_COP.1 Cryptographic Operation]
            <h:br/>FCS_CKM.6 Timing and Event of Cryptographic Key Destruction
            <h:br/>FCS_COP.1 Cryptographic Operation 
          </dependencies>
          <f-element>
            <title>The TSF shall derive shared cryptographic keys with input from multiple parties in accordance 
              with specified cryptographic key agreement algorithms <assignable>cryptographic algorithm</assignable>
              and specified cryptographic parameters <assignable>cryptographic parameters</assignable> that meet the
              following: <assignable>list of standards</assignable>.</title>
          </f-element>
        </f-component>
        
        
        
        <f-component cc-id="fcs_ckm_ext.7" iteration="LOCKED" name="Cryptographic Key Establishment (When Locked)">
          <f-element id="fel-key-locked">
            <title>
              The TSF shall derive shared cryptographic keys with input from multiple parties in accordance 
              with specified cryptographic key agreement algorithms <h:b>for the purposes of
                encrypting sensitive data received while the device is locked</h:b>.
              <selectables>
                <tabularize id="fcs-ckm-ext-7-locked-sels" title="Allowable choices for FCS_CKM_EXT.7/LOCKED">
                  <textcol>Identifier</textcol>
                  <selectcol>Cryptographic Algorithm</selectcol>
                  <reqtext>and specified cryptographic parameters</reqtext>
                  <selectcol>Cryptographic Parameters</selectcol>
                  <reqtext>that meet the following:</reqtext>
                  <selectcol>List of Standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-ckm-ext-7-locked-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_CKM_EXT.7/LOCKED.</reqtext>
                </tabularize>
                
                <selectable id="sel-fcs-ckm-kat-kas2">
                  <col>KAS2</col>
                  <col>RSA</col>
                  <col>Modulus size <selectables>
                    <selectable>3072</selectable>
                    <selectable>4096</selectable>
                    <selectable>6144</selectable>
                    <selectable>8192</selectable>
                  </selectables> bits</col>
                  <col>NIST SP 800-56B Revision 2 (Section 8.3) [KAS2]</col>
                </selectable>
                
                <selectable id="sel-fcs-ckm-kat-dh">
                  <col>DH</col>
                  <col>Finite Field Cryptography Diffie-Hellman</col>
                  <col>Static domain parameters approved for <selectables>
                    <selectable>IKE Groups <selectables>
                      <selectable id="sel-kat-ffc-modp3072">MODP-3072</selectable>
                      <selectable id="sel-kat-ffc-modp4096">MODP-4096</selectable>
                      <selectable id="sel-kat-ffc-modp6144">MODP-6144</selectable>
                      <selectable id="sel-kat-ffc-modp8192">MODP-8192</selectable>
                    </selectables></selectable>
                    <selectable>TLS Groups <selectables>
                      <selectable id="sel-kat-ffc-ffdhe3072">ffdhe3072</selectable>
                      <selectable id="sel-kat-ffc-ffdhe4096">ffdhe4096</selectable>
                      <selectable id="sel-kat-ffc-ffdhe6144">ffdhe6144</selectable>
                      <selectable id="sel-kat-ffc-ffdhe8192">ffdhe8192</selectable>
                    </selectables></selectable></selectables>
                  </col>
                  <col>
                    NIST SP 800-56A Revision 3 (Section 5.7.1.1) [DH]<h:p/>
                    <selectables>
                      <selectable>RFC 3526 [IKE groups]</selectable>
                      <selectable>RFC 7919 [TLS groups]</selectable></selectables>
                  </col>
                </selectable>                
                
                <selectable id="sel-fcs-ckm-kat-ecdh">
                  <col>ECDH</col>
                  <col>Elliptic Curve Diffie-Hellman</col>
                  <col>Elliptic Curve <selectables>
                    <selectable id="sel-exp-kat-ecdh-P384">P-384</selectable>
                    <selectable id="sel-exp-kat-ecdh-P521">P-521</selectable></selectables>
                  </col>
                  <col>
                    NIST SP 800-56A Revision 3 (Section 5.7.1.2) [ECDH]<h:p/>
                    NIST SP 800-186 (Section 3.2.1) [NIST Curves]
                  </col>
                </selectable>
                <selectable id="sel-fcs-ckm-kat-ecdhed">
                  <col>ECDH-Ed</col>
                  <col>ECDH with Montgomery Curves</col>
                  <col>Domain parameters approved for elliptic curves [<h:i>curve25519</h:i>]
                  </col>
                  <col>
                    RFC 7748 (Section 5) [ECDH-Ed]<h:p/>
                    NIST SP 800-186 (Section 3.2.2) [Montgomery Curves]
                  </col>
                </selectable>
              </selectables>
            </title>
            <note role="application"> This SFR defines the asymmetric key scheme used to protect data
              at rest as defined by FDP_DAR_EXT.2.2.</note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS documents that the security strength of the
                material contributed by the TOE is sufficient for the security strength of the key and the
                agreement method.</TSS>
              <Guidance>There are no additional guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The following tests are conditional based upon the selections made in the SFR.
                The evaluator shall perform the following test or witness respective tests
                executed by the developer. The tests must be executed on a platform that is as 
                close as practically possible to the operational platform (but which may be 
                instrumented in terms of, for example, use of a debug mode). Where the test is 
                not carried out on the TOE itself, the test platform shall be identified and the 
                differences between test environment and TOE execution environment shall be 
                described.<h:p/>
                
                <!-- KAS2 -->
                <h:br/><h:b>KAS2</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">KAS2</h:td>
                    <h:td valign="top">RSA</h:td>
                    <h:td valign="top">Modulus Size [<h:b>selection:</h:b> 3072, 4096,
                      6144, 8192] bits</h:td>
                    <h:td valign="top">NIST SP 800-56B Revision 2 (Section 8.3) [KAS2]</h:td>
                  </h:tr>
                </h:table><h:p/>						
                To test the TOE’s implementation of the of the KAS2 RSA Key Agreement scheme, the evaluator
                shall perform the Algorithm Functional Test and Validation Test using the 
                following input parameters:<h:ul>
                  <h:li>RSA Private key format [Basic, Prime Factor, Chinese Remainder Theorem]</h:li>
                  <h:li>Modulo value [3072, 4096, 6144, 8192]</h:li>
                  <h:li>Role [initiator, responder]</h:li></h:ul><h:p/>
                The evaluator shall generate a test group (i.e., set of tests) for each parameter
                value of the above parameter type with the largest number of supported values.
                For example, if the TOE supports all five Modulo values, then the evaluator 
                shall generate five test groups. Each of the above supported parameter values
                must be included in at least one test group.<h:p/>
                Regardless of how many parameter values are supported, there must be at least two 
                test groups.<h:p/>
                Half of the test groups are designated as Algorithm Functional Tests (AFT) and the 
                remainder are designated as Validation Tests (VAT). If there is an odd number of 
                groups, then the extra group is designated randomly as either AFT or VAT.<h:p/>
                <h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
                For each test group designated as AFT, the evaluator shall generate 10 test 
                cases using random data (except for a fixed public exponent, if supported). 
                The resulting shared secrets shall be compared with those generated by a 
                known-good implementation using the same inputs.<h:p/>
                <h:br/><h:i><h:b>Validation Test</h:b></h:i><h:br/>
                For each test group designated as VAT, the evaluator shall generate 25 test cases are
                using random data (except for a fixed public exponent, if supported). Of the 25
                test cases:<h:ul>
                  <h:li>Two test cases must have a shared secret with a leading nibble of 0s,</h:li>
                  <h:li>Two test cases have modified derived key material,</h:li>
                  <h:li>Two test cases have modified tags, if key confirmation is supported,</h:li>
                  <h:li>Two test cases have modified MACs, if key confirmation is supported, and</h:li>
                  <h:li>The remaining test cases are not modified.</h:li></h:ul><h:p/>
                To determine correctness, the evaluator shall confirm that the resulting 25 shared 
                secrets correspond as expected for both the modified and unmodified values.<h:p/>
                
                <!-- FFC Diffie-Hellman Key Agreement -->
                <h:br/><h:b>FFC Diffie-Hellman Key Agreement</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">DH</h:td>
                    <h:td valign="top">Finite Field Cryptography Diffie-Hellman</h:td>
                    <h:td valign="top">Static domain parameters approved for [<h:b>selection:</h:b>
                      IKE groups [<h:b>selection:</h:b> MODP-3072, MODP-4096,
                      MODP-6144, MODP-8192], TLS groups [<h:b>selection:</h:b> 
                      ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]]</h:td>
                    <h:td valign="top">NIST SP 800-56A Revision 3 (Section 5.7.1.1) [DH]<h:p/>
                      [<h:b>selection:</h:b> RFC 3526 [IKE Groups], RFC 7919 [TLS Groups]]</h:td>
                  </h:tr>
                </h:table><h:p/>						
                To test the TOE’s implementation of FFC Diffie-Hellman Key Agreement, the evaluator shall
                perform the Algorithm Functional Test and Validation Test using the following 
                input parameters:<h:ul>
                  <h:li>Domain Parameter Group [MODP-3072, MODP-4096, MODP-6144, MODP-8192, 
                    ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]</h:li></h:ul><h:p/>
                <h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
                For each supported domain parameter group, the evaluator shall generate 10 test
                cases by generating the initiator and responder secret keys using random data,
                calculating the responder public key, and creating the shared secret. The 
                resulting shared secrets shall be compared with those generated by a known-good 
                implementation using the same inputs.<h:p/>
                <h:br/><h:i><h:b>Validation Test</h:b></h:i><h:br/>
                For each supported combination of the above parameters the evaluator shall
                generate 15 Diffie Hellman initiator/responder key pairs using the key generation
                function of a known-good implementation. For each set of key pairs, the 
                evaluator shall modify five initiator private key values. The remaining key
                values are left unchanged (i.e., correct). To determine correctness, the 
                evaluator shall confirm that the 15 shared secrets correspond as expected for 
                both the modified and unmodified inputs.<h:p/>
                
                <!-- Elliptic Curve Diffie-Hellman Key Agreement -->
                <h:br/><h:b>Elliptic Curve Diffie-Hellman Key Agreement</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">ECDH</h:td>
                    <h:td valign="top">Elliptic Curve Diffie-Hellman</h:td>
                    <h:td valign="top">Elliptic Curve [<h:b>selection:</h:b> P-384, P-521]</h:td>
                    <h:td valign="top">NIST SP 800-56A Revision 3 (Section 5.7.1.2) [ECDH]<h:p/>
                      NIST SP 800-186 (Section 3.2.1) [NIST Curves]</h:td>
                  </h:tr>
                </h:table><h:p/>						
                To test the TOE’s implementation of Elliptic Curve Diffie-Hellman Key Agreement,
                the evaluator shall perform the Algorithm Functional Test and Validation Test 
                using the following input parameters:<h:ul>
                  <h:li>Elliptic Curve [P-384, P-521]</h:li></h:ul><h:p/>
                <h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
                For each supported Elliptic Curve the evaluator shall generate 10 test cases by
                generating the initiator and responder secret keys using random data, calculating 
                the responder public key, and creating the shared secret. The resulting shared 
                secrets shall be compared with those generated by a known-good implementation using
                the same inputs.<h:p/>
                <h:br/><h:i><h:b>Validation Test</h:b></h:i><h:br/>
                For each supported Elliptic Curve the evaluator shall generate 15 Diffie Hellman
                initiator/responder key pairs using the key generation function of a known-good 
                implementation. For each set of key pairs, the evaluator shall modify five 
                initiator private key values. The remaining key values are left unchanged (i.e.,
                correct). To determine correctness, the evaluator shall confirm that the 15 
                shared secrets correspond as expected for the modified and unmodified values.
                
                <!-- Curve25519 Key Establishment Schemes -->
                <h:br/><h:b>Curve25519 Key Establishment Schemes</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">ECDH-Ed</h:td>
                    <h:td valign="top">ECDH with Montgomery Curves</h:td>
                    <h:td valign="top">Domain parameters approved for elliptic curves [<h:i>curve25519</h:i>]</h:td>
                    <h:td valign="top">RFC 7748 (Section 5) [ECDH-Ed]<h:p/>
                      NIST SP 800-186 (Section 3.2.2) [Montgomery Curves]</h:td>
                  </h:tr>
                </h:table><h:p/>						
                
                <h:br/><h:i><h:b>Curve25519 Key Establishment Schemes</h:b></h:i><h:br/>
                The evaluator shall verify a TOE's implementation of the key agreement scheme using the following Function and Validity tests.
                These validation tests for each key agreement scheme verify that a TOE has implemented the components of the key agreement scheme
                according to the specification. These components include the calculation of the shared secret K and the hash of K.
                <h:p/>
                <h:br/><h:i><h:b>Function Test</h:b></h:i><h:br/>
                The Function test verifies the ability of the TOE to implement the key agreement schemes correctly. To conduct this test the 
                evaluator shall generate or obtain test vectors from a known good implementation of the TOE supported schemes. For each supported
                key agreement role and hash function combination, the tester shall generate 10 sets of public keys. These keys are static, ephemeral
                or both depending on the scheme being tested.<h:p/>
                
                The evaluator shall obtain the shared secret value K, and the hash of K.<h:p/>
                
                The evaluator shall verify the correctness of the TSF’s implementation of a given scheme by using a known good implementation to 
                calculate the shared secret value K and compare the hash generated from this value.<h:p/>
                <h:br/><h:i><h:b>Validation Test</h:b></h:i><h:br/>
                The Validity test verifies the ability of the TOE to recognize another party’s valid and invalid key agreement results. To conduct 
                this test, the evaluator generates a set of 30 test vectors consisting of data sets including the evaluator’s public keys and the 
                TOE’s public/private key pairs.<h:p/>
                
                The evaluator shall inject an error in some of the test vectors to test that the TOE recognizes invalid key agreement results caused
                by the following fields being incorrect: the shared secret value K or the hash of K. At least two of the test vectors shall remain 
                unmodified and therefore should result in valid key agreement results (they should pass).<h:p/>
                
                The TOE shall use these modified test vectors to emulate the key agreement scheme using the corresponding parameters. The evaluator 
                shall compare the TOE’s results with the results using a known good implementation verifying that the TOE detects these errors.                
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>	  
        </f-component>
        
        
        <f-component cc-id="fcs_ckm_ext.7" iteration="UNLOCKED" name="Cryptographic Key Establishment (When Unlocked)" status="feat-based">
          <depends on="key-agreement-support"/>
          
          <f-element id="fcs-ckm-ext-7e1-unlocked">
            <title>
              The TSF shall derive shared cryptographic keys with input from multiple parties in accordance 
              with specified cryptographic key agreement algorithms  
              <selectables>
                <tabularize id="fcs-ckm-ext-7-unlocked-sels" title="Allowable choices for FCS_CKM_EXT.7/UNLOCKED">
                  <textcol>Identifier</textcol>
                  <selectcol>Cryptographic algorithm</selectcol>
                  <reqtext>and specified cryptographic parameters</reqtext>
                  <selectcol>Cryptographic parameters</selectcol>
                  <reqtext>that meet the following:</reqtext>
                  <selectcol>List of standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-ckm-ext-7-unlocked-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_CKM_EXT.7/UNLOCKED.</reqtext>
                </tabularize>
                <!--
                <selectable id="sel-fcs-ckm-kat-kas2">
                  <col>KAS2</col>
                  <col>RSA</col>
                  <col>Modulus size <selectables>
                    <selectable>3072</selectable>
                    <selectable>4096</selectable>
                    <selectable>6144</selectable>
                    <selectable>8192</selectable>
                  </selectables> bits</col>
                  <col>NIST SP 800-56B Revision 2 (Section 8.3) [KAS2]</col>
                </selectable>
                -->
                <selectable id="sel-fcs-ckm-kat-dh">
                  <col>DH</col>
                  <col>Finite Field Cryptography Diffie-Hellman</col>
                  <col>Static domain parameters approved for <selectables>
                    <selectable>IKE Groups <selectables>
                      <selectable id="sel-kat-ffc-modp3072">MODP-3072</selectable>
                      <selectable id="sel-kat-ffc-modp4096">MODP-4096</selectable>
                      <selectable id="sel-kat-ffc-modp6144">MODP-6144</selectable>
                      <selectable id="sel-kat-ffc-modp8192">MODP-8192</selectable>
                    </selectables></selectable>
                    <selectable>TLS Groups <selectables>
                      <selectable id="sel-kat-ffc-ffdhe3072">ffdhe3072</selectable>
                      <selectable id="sel-kat-ffc-ffdhe4096">ffdhe4096</selectable>
                      <selectable id="sel-kat-ffc-ffdhe6144">ffdhe6144</selectable>
                      <selectable id="sel-kat-ffc-ffdhe8192">ffdhe8192</selectable>
                    </selectables></selectable></selectables>
                  </col>
                  <col>
                    NIST SP 800-56A Revision 3 (Section 5.7.1.1) [DH]<h:p/>
                    <selectables>
                      <selectable>RFC 3526 [IKE groups]</selectable>
                      <selectable>RFC 7919 [TLS groups]</selectable></selectables>
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-ckm-kat-ecdh">
                  <col>ECDH</col>
                  <col>Elliptic Curve Diffie-Hellman</col>
                  <col>Elliptic Curve <selectables>
                    <selectable id="sel-exp-kat-ecdh-P384">P-256</selectable>
                    <selectable id="sel-exp-kat-ecdh-P384">P-384</selectable>
                    <selectable id="sel-exp-kat-ecdh-P521">P-521</selectable></selectables>
                  </col>
                  <col>
                    NIST SP 800-56A Revision 3 (Section 5.7.1.2) [ECDH]<h:p/>
                    NIST SP 800-186 (Section 3.2.1) [NIST Curves]
                  </col>
                </selectable>
              </selectables>
            </title>
            
            <ext-comp-def-title>
              <title>The TSF shall derive shared cryptographic keys with input from multiple parties in accordance 
                with specified cryptographic key agreement algorithms <assignable>cryptographic algorithm</assignable>
                and specified cryptographic parameters <assignable>cryptographic parameters</assignable> that meet the
                following: <assignable>list of standards</assignable>.</title>
            </ext-comp-def-title>
            
            <note role="application">
              This SFR is claimed if the TSF supports key agreement schemes as a method of key establishment for external communications channels. This will generally apply to all conformant TOEs, except in the rare (but possible) case where only key encapsulation is used.<h:p/>
              This SFR must be included in the ST if agreement is a service provided by the TOE to 
              tenant software, or if it is used by the TOE itself to support or implement PP-specified security 
              functionality.<h:p/> 
              The above algorithms are CNSA compliant with the exception of P-256 ECDH. This may only be selected if the <xref to="mod-bluetooth"/> is included in the ST and P-256 may only be used specifically for Bluetooth functions.<h:p/>
            </note>
            <aactivity>
              <TSS>
                The evaluator shall ensure that the TSS documents that the security strength of the
                material contributed by the TOE is sufficient for the security strength of the key and the
                agreement method. If support for P-256 is claimed, the evaluator shall examine the TSS to verify that it is only used for Bluetooth functions.
              </TSS>
              <Guidance>There are no additional Guidance evaluation activities for this component.</Guidance>
              <Tests>
                The following tests are conditional based upon the selections made in the SFR.
                The evaluator shall perform the following test or witness respective tests
                executed by the developer. The tests must be executed on a platform that is as 
                close as practically possible to the operational platform (but which may be 
                instrumented in terms of, for example, use of a debug mode). Where the test is 
                not carried out on the TOE itself, the test platform shall be identified and the 
                differences between test environment and TOE execution environment shall be 
                described.<h:p/>
                
                <!-- KAS2 -->
                <!--
                <h:br/><h:b>KAS2</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">KAS2</h:td>
                    <h:td valign="top">RSA</h:td>
                    <h:td valign="top">Modulus Size [<h:b>selection:</h:b> 3072, 4096,
                      6144, 8192] bits</h:td>
                    <h:td valign="top">NIST SP 800-56B Revision 2 (Section 8.3) [KAS2]</h:td>
                  </h:tr>
                </h:table><h:p/>						
                To test the TOE’s implementation of the of the KAS2 RSA Key Agreement scheme, the evaluator
                shall perform the Algorithm Functional Test and Validation Test using the 
                following input parameters:<h:ul>
                  <h:li>RSA Private key format [Basic, Prime Factor, Chinese Remainder Theorem]</h:li>
                  <h:li>Modulo value [3072, 4096, 6144, 8192]</h:li>
                  <h:li>Role [initiator, responder]</h:li></h:ul><h:p/>
                The evaluator shall generate a test group (i.e., set of tests) for each parameter
                value of the above parameter type with the largest number of supported values.
                For example, if the TOE supports all five Modulo values, then the evaluator 
                shall generate five test groups. Each of the above supported parameter values
                must be included in at least one test group.<h:p/>
                Regardless of how many parameter values are supported, there must be at least two 
                test groups.<h:p/>
                Half of the test groups are designated as Algorithm Functional Tests (AFT) and the 
                remainder are designated as Validation Tests (VAT). If there is an odd number of 
                groups, then the extra group is designated randomly as either AFT or VAT.<h:p/>
                <h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
                For each test group designated as AFT, the evaluator shall generate 10 test 
                cases using random data (except for a fixed public exponent, if supported). 
                The resulting shared secrets shall be compared with those generated by a 
                known-good implementation using the same inputs.<h:p/>
                <h:br/><h:i><h:b>Validation Test</h:b></h:i><h:br/>
                For each test group designated as VAT, the evaluator shall generate 25 test cases are
                using random data (except for a fixed public exponent, if supported). Of the 25
                test cases:<h:ul>
                  <h:li>Two test cases must have a shared secret with a leading nibble of 0s,</h:li>
                  <h:li>Two test cases have modified derived key material,</h:li>
                  <h:li>Two test cases have modified tags, if key confirmation is supported,</h:li>
                  <h:li>Two test cases have modified MACs, if key confirmation is supported, and</h:li>
                  <h:li>The remaining test cases are not modified.</h:li></h:ul><h:p/>
                To determine correctness, the evaluator shall confirm that the resulting 25 shared 
                secrets correspond as expected for both the modified and unmodified values.<h:p/>
                -->
                <!-- FFC Diffie-Hellman Key Agreement -->
                <h:br/><h:b>FFC Diffie-Hellman Key Agreement</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">DH</h:td>
                    <h:td valign="top">Finite Field Cryptography Diffie-Hellman</h:td>
                    <h:td valign="top">Static domain parameters approved for [<h:b>selection:</h:b>
                      IKE groups [<h:b>selection:</h:b> MODP-3072, MODP-4096,
                      MODP-6144, MODP-8192], TLS groups [<h:b>selection:</h:b> 
                      ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]]</h:td>
                    <h:td valign="top">NIST SP 800-56A Revision 3 (Section 5.7.1.1) [DH]<h:p/>
                      [<h:b>selection:</h:b> RFC 3526 [IKE Groups], RFC 7919 [TLS Groups]]</h:td>
                  </h:tr>
                </h:table><h:p/>						
                To test the TOE’s implementation of FFC Diffie-Hellman Key Agreement, the evaluator shall
                perform the Algorithm Functional Test and Validation Test using the following 
                input parameters:<h:ul>
                  <h:li>Domain Parameter Group [MODP-3072, MODP-4096, MODP-6144, MODP-8192, 
                    ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192]</h:li></h:ul><h:p/>
                <h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
                For each supported domain parameter group, the evaluator shall generate 10 test
                cases by generating the initiator and responder secret keys using random data,
                calculating the responder public key, and creating the shared secret. The 
                resulting shared secrets shall be compared with those generated by a known-good 
                implementation using the same inputs.<h:p/>
                <h:br/><h:i><h:b>Validation Test</h:b></h:i><h:br/>
                For each supported combination of the above parameters the evaluator shall
                generate 15 Diffie Hellman initiator/responder key pairs using the key generation
                function of a known-good implementation. For each set of key pairs, the 
                evaluator shall modify five initiator private key values. The remaining key
                values are left unchanged (i.e., correct). To determine correctness, the 
                evaluator shall confirm that the 15 shared secrets correspond as expected for 
                both the modified and unmodified inputs.<h:p/>
                
                <!-- Elliptic Curve Diffie-Hellman Key Agreement -->
                <h:br/><h:b>Elliptic Curve Diffie-Hellman Key Agreement</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">ECDH</h:td>
                    <h:td valign="top">Elliptic Curve Diffie-Hellman</h:td>
                    <h:td valign="top">Elliptic Curve [<h:b>selection:</h:b> P-256, P-384, P-521</h:td>
                    <h:td valign="top">NIST SP 800-56A Revision 3 (Section 5.7.1.2) [ECDH]<h:p/>
                      NIST SP 800-186 (Section 3.2.1) [NIST Curves]</h:td>
                  </h:tr>
                </h:table><h:p/>						
                To test the TOE’s implementation of Elliptic Curve Diffie-Hellman Key Agreement,
                the evaluator shall perform the Algorithm Functional Test and Validation Test 
                using the following input parameters:<h:ul>
                  <h:li>Elliptic Curve [P-256, P-384, P-521]</h:li></h:ul><h:p/>
                <h:br/><h:i><h:b>Algorithm Functional Test</h:b></h:i><h:br/>
                For each supported Elliptic Curve the evaluator shall generate 10 test cases by
                generating the initiator and responder secret keys using random data, calculating 
                the responder public key, and creating the shared secret. The resulting shared 
                secrets shall be compared with those generated by a known-good implementation using
                the same inputs.<h:p/>
                <h:br/><h:i><h:b>Validation Test</h:b></h:i><h:br/>
                For each supported Elliptic Curve the evaluator shall generate 15 Diffie Hellman
                initiator/responder key pairs using the key generation function of a known-good 
                implementation. For each set of key pairs, the evaluator shall modify five 
                initiator private key values. The remaining key values are left unchanged (i.e.,
                correct). To determine correctness, the evaluator shall confirm that the 15 
                shared secrets correspond as expected for the modified and unmodified values.<h:p/>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component id="sfr-fcs-ckm-ext-8" cc-id="fcs_ckm_ext.8" name="Password-Based Key Derivation">          
          <consistency-rationale/>
          <comp-lev>requires that password-based key derivation be performed in accordance with specified standards.</comp-lev>
          <management/>
          <audit>
            The following actions should be auditable if FAU_GEN Security audit data generation is
            included in the PP, PP-Module, functional package or ST:<h:br/><h:ul>
              <h:li>minimal: Success and failure of the activity;</h:li>
              <h:li>basic: The object attribute(s), and object value(s) excluding any sensitive information.</h:li>
            </h:ul>
          </audit>
          <dependencies><h:br/>
            <h:br/>[FCS_CKM.2 Cryptographic Key Distribution, or
            <h:br/>FCS_COP.1 Cryptographic Operation]
            <h:br/>FCS_CKM_EXT.7 Cryptographic Key Establishment],
            <h:br/>FCS_CKM.6 Timing and Event of Cryptographic Key Destruction
          </dependencies>
          
          <f-element id="fcs-ckm-ext-8-1">
            <title>
              The TSF shall perform password-based key derivation functions in accordance with a specified 
              cryptographic algorithm [HMAC-<selectables>
                <selectable>SHA-384</selectable>
                <selectable>SHA-512</selectable>
              </selectables>, with iteration count of 
              <assignable>number of iterations</assignable>
              using a randomly generated salt of length
              <assignable>equal to or greater than 128</assignable>
              and output cryptographic key sizes <selectables>
                <selectable>256</selectable>
                <selectable>384</selectable>
                <selectable>512</selectable></selectables>
              bits that meet the following standard: [NIST SP 800-132 (Section 5.3) [PBKDF2]].
            </title>
            <note role="application">
              NIST recommends a minimum “number of iterations” of 1000 but prefers the largest number feasible
              given performance constraints.<h:p/>
              NIST recommends that the randomly generated portion of the salt have length of at least 128 bits 
              and must be derived from Random Bit Generation.<h:p/>
              If this SFR is claimed, then FCS_COP.1/KeyedHash and FCS_RBG.1 must also be claimed.<h:p/>
            </note>
            <aactivity>
              <TSS>
                The evaluator shall verify that the TSS documents that the selection of the keyed hash
                algorithm, iteration count, length of salt, and other mitigations are sufficient for the
                security strength of the key derived.<h:p/>
                The evaluator shall examine the TSS to verify that the salt is generated in accordance with the
                relevant specification.<h:p/>
                The evaluator shall examine the TSS to determine whether the TOE implements other 
                mitigations against password-exhaustion attacks. Examples include the use of 
                interface-based mitigations and secret salts.
              </TSS>
              <Guidance/>
              <Tests>
                The following tests are conditional based upon the selections made in the SFR.
                The evaluator shall perform the following test or witness respective tests
                executed by the developer. The tests must be executed on a platform that is as 
                close as practically possible to the operational platform (but which may be 
                instrumented in terms of, for example, use of a debug mode). Where the test is 
                not carried out on the TOE itself, the test platform shall be identified and the 
                differences between test environment and TOE execution environment shall be 
                described.<h:p/>
                
                To test the TOE’s ability to derive cryptographic keys from a password using PBKDF2 the
                evaluator shall perform the Algorithm Functional Test using the following input 
                parameters:<h:ul>
                  <h:li>HMAC algorithms [SHA-384, SHA-512]</h:li>
                  <h:li>Iteration count [1-10000000]</h:li>
                  <h:li>Derived Key size [256, 384, 512] bits</h:li>
                  <h:li>Password length [8-128] bytes</h:li>
                  <h:li>Salt length [128-4096] bits in multiples of 8.</h:li></h:ul><h:p/>
                
                <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
                For each supported HMAC algorithm, the evaluator shall generate 50 test cases using 
                supported values for the above parameters such that<h:ul>
                  <h:li>All supported derived key sizes are tested at least 10 times, </h:li>
                  <h:li>Iteration counts are random values between the supported minimum and maximum
                    values, with the supported minimum and maximum tested at least once each, </h:li>
                  <h:li>Passwords are random byte strings representing upper- and lower-case letters of random
                    supported lengths such that the minimum and maximum lengths are tested at least once, and </h:li>
                  <h:li>Salts are random values between the supported minimum and maximum lengths such that
                    the supported minimum and maximum lengths are both tested at least once. </h:li></h:ul><h:p/>
                The evaluator shall compare the resulting keys from each test case with keys derived using a
                known-good implementation with the same input parameters.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
        <f-component name="Hardware Key Confidentiality" id="sfr-fcs-ckm-ext-9" cc-id="fcs_ckm_ext.9" status="sel-based">
          <depends on-sel="s-mutable-hardware"/>
          <comp-lev> requires the TSF to enforce the confidentiality of key data stored in mutable hardware by ensuring no mechanism exists to read or export it.</comp-lev>
          <management/>
          <audit/>
          <dependencies>FCS_CKM_EXT.1 Cryptographic Key Support</dependencies>
          
          <f-element id="fcs-ckm-ext-9e1">
            <title>
              A [<h:i>REK</h:i>] shall not be able to be read from or exported from hardware.
            </title>
            <ext-comp-def-title>
              <title>
                A <assignable>key, type of keys, or list of keys</assignable> shall not be able to be read from or exported from hardware.
              </title>
            </ext-comp-def-title>
            <note role="application"><h:p>This SFR is claimed if "mutable hardware" is selected in FCS_CKM_EXT.1.1. It is not claimed if "immutable hardware" is selected because it is implicitly met in that case.</h:p><h:p>
              The lack of a public or documented API for performing this function is not sufficient to meet the requirement if a private or undocumented function exists to perform it.
            </h:p>
            </note>
            <aactivity>
              <TSS>The evaluation activity for this component is performed in conjunction with the evaluation activity for FCS_CKM_EXT.1.</TSS>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component id="sfr-fcs-cop-1-aead" cc-id="fcs_cop.1" iteration="AEAD" name="Cryptographic Operation – Authenticated Encryption with Associated Data">          
          <f-element id="fcs-cop-1e1-aead">
            <title>
              The TSF shall perform [<h:i>authenticated encryption with associated data</h:i>] in accordance with a specified 
              cryptographic algorithm 
              <selectables>
                <tabularize id="fcs-cop-aead-sels" title="Allowable choices for FCS_COP.1/AEAD">
                  <textcol>Identifier</textcol>
                  <reqtext/>
                  <selectcol>Cryptographic algorithm</selectcol>
                  <reqtext>and cryptographic key sizes</reqtext>
                  <selectcol>Cryptographic key sizes</selectcol>
                  <reqtext>that meet the following:</reqtext>
                  <selectcol>List of standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-cop-aead-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_COP.1/AEAD.</reqtext>
                </tabularize>
                
                <selectable id="sel-fcs-cop-aead-aes-ccm">
                  <col>AES-CCM</col>
                  <col>AES in CCM mode with unpredictable, non-repeating nonce, minimum size of 64 bits</col>
                  <col><selectables>
                    <selectable>128 bits</selectable>
                    <selectable>256 bits</selectable>
                  </selectables></col>
                  <col><selectables>
                    <selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable>
                    <selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/>
                    <selectables>
                      <selectable>ISO/IEC 19772:2020 (Clause 7)</selectable> 
                      <selectable>NIST SP 800-38C</selectable></selectables> [CCM]
                  </col></selectable>
                
                <selectable id="sel-fcs-cop-aead-aes-gcm">
                  <col>AES-GCM</col>
                  <col>AES in GCM mode with non-repeating IVs using <selectables>
                    <selectable>deterministic</selectable>
                    <selectable>DRBG-based</selectable></selectables>,
                    IV construction; the tag must be of length
                    <selectables>
                      <selectable>96</selectable>
                      <selectable>104</selectable>
                      <selectable>112</selectable>
                      <selectable>120</selectable>
                      <selectable>128</selectable>
                    </selectables> bits.
                  </col>
                  <col>256 bits</col>
                  <col><selectables>
                    <selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable>
                    <selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/>
                    <selectables>
                      <selectable>ISO/IEC 19772:2020 (Clause 10)</selectable> 
                      <selectable>NIST SP 800-38D</selectable></selectables> [GCM]
                  </col></selectable>
              </selectables>
            </title>
            <note role="application">
              The use of 256-bit keys for AES encryption is required by CNSA. 128-bit keys may only be used when the <xref to="mod-bluetooth"/> is claimed and only for the purpose of Bluetooth communications.
            </note>
            <aactivity>
              <TSS>
                The evaluator shall examine the TSS to ensure that it describes the construction of any IVs,
                nonces, and tags in conformance with the relevant specifications.<h:p/>
                If a CCM mode algorithm is selected, then the evaluator shall examine the TOE summary
                specification to confirm that it describes how the nonce is generated and that the same nonce is
                never reused to encrypt different plaintext pairs under the same key. If the use of 128-bit keys is selected in conjunction with AES-CCM, the evaluator shall verify that the TSS describes the use of 128-bit AES-CCM as being solely for Bluetooth.<h:p/>
                If a GCM mode algorithm is selected, then the evaluator shall examine the TOE summary
                specification to confirm that it describes how the IV is generated and that the same IV is never
                reused to encrypt different plaintext pairs under the same key. The evaluator shall also confirm
                that for each invocation of GCM, the length of the plaintext is at most (2<h:sup>32</h:sup>)-2 blocks.
              </TSS>
              <Guidance/>
              <Tests>
                The following tests may require the developer to provide access to a test platform that
                provides the evaluator with tools that are typically not found on factory products.<h:p/>
                The following tests are conditional based upon the selections made in the SFR. The
                evaluator shall perform the following test or witness respective tests executed by
                the developer. The tests must be executed on a platform that is as close as practically
                possible to the operational platform (but which may be instrumented in terms of,
                for example, use of a debug mode). Where the test is not carried out on the TOE
                itself, the test platform shall be identified and the differences between test
                environment and TOE execution environment shall be described.<h:p/>
                
                <!-- AES-CCM -->
                <h:br/><h:b>AES-CCM</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Key Sizes</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">AES-CCM </h:td>
                    <h:td valign="top">AES in CCM mode with non-repeating nonce, minimum size
                      of 64 bits</h:td>
                    <h:td valign="top">[<h:b>selection:</h:b>128 bits, 256 bits]</h:td>
                    <h:td valign="top">
                      [<h:b>selection:</h:b> ISO/IEC 18033-3:2010 (Subclause 5.2),
                      FIPS PUB 197] [AES]<h:p/>
                      [<h:b>selection:</h:b>  ISO/IEC 19772:2020 (Clause 7), NIST SP 800-38C] [CCM]</h:td>
                  </h:tr>
                </h:table><h:p/>	
                To test the TOE’s implementation of AES-CCM authenticated encryption functionality the
                evaluator shall perform the Algorithm Functional Tests described below using the following
                input parameters:<h:ul>
                  <h:li>Key Size [128,256] bits</h:li>
                  <h:li>Associated data size [0-65536] bits in increments of 8</h:li>
                  <h:li>Payload size [0-256] bits in increments of 8</h:li>
                  <h:li>IV/Nonce size [64-104] bits in increments of 8</h:li>
                  <h:li>Tag size [32-128] bits in increments of 16</h:li></h:ul><h:p/>
                <h:br/><h:b>Algorithm Functional Tests</h:b><h:p/>
                Unless otherwise specified, the following tests should use random data, a tag size of 128 bits,
                IV/Nonce size of 104 bits, payload size of 256 bits, and associated data size of 256 bits. If any of
                these values are not supported, any supported value may be used. The evaluator shall compare
                the output from each test case against results generated by a known-good implementation with
                the same input parameters.<h:p/>
                <h:br/><h:b><h:i>Variable Associated Data Test</h:i></h:b><h:p/>
                For each claimed key size, and for each supported associated data size from 0 through 256 bits in
                increments of 8 bits, the TOE must be tested by encrypting 10 test cases using all random data.
                In addition, for each key size, the TOE must be tested by encrypting 10 cases with associated
                data lengths of 65536 bits, if supported.<h:p/>				
                <h:br/><h:b><h:i>Variable Payload Test</h:i></h:b><h:p/>
                For each claimed key size, and for each supported payload size from 0 through 256 bits in
                increments of 8 bits, the TOE must be tested by encrypting 10 test cases using all random data.<h:p/>
                <h:br/><h:b><h:i>Variable Nonce Test</h:i></h:b><h:p/>
                For each claimed key size, and for each supported IV/Nonce size from 64 through 104 bits in
                increments of 8 bits, the TOE must be tested by encrypting 10 test cases using all random data.<h:p/>
                <h:br/><h:b><h:i>Variable Tag Test</h:i></h:b><h:p/>
                For each claimed key size, and for each supported tag size from 32 through 128 bits in
                increments of 16 bits, the TOE must be tested by encrypting 10 test cases using all random data.<h:p/>
                <h:br/><h:b><h:i>Decryption Verification Test</h:i></h:b><h:p/>
                For each claimed key size, for each supported associated data size from 0 through 256 bits in
                increments of 8 bits, for each supported payload size from 0 through 256 bits in increments of 8
                bits, for each supported IV/Nonce size from 64 through 104 bits in increments of 8 bits, and for
                each supported tag size from 32 through 128 bits in increments of 16 bits, the TOE must be
                tested by decrypting 10 test cases using all random data.<h:p/>					
                
                <!-- AES-GCM -->
                <h:br/><h:b>AES-GCM</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Identifier</h:td>
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Cryptographic Key Sizes</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">AES-GCM </h:td>
                    <h:td valign="top">AES in GCM mode with non-repeating IVs using 
                      [<h:b>selection:</h:b> deterministic, DRBG-based] IV construction; 
                      the tag must be of length [<h:b>selection:</h:b> 96, 104, 112, 120, or 128] bits.</h:td>
                    <h:td valign="top">256 bits</h:td>
                    <h:td valign="top">
                      [<h:b>selection:</h:b> ISO/IEC 18033-3:2010 (Subclause 5.2),
                      FIPS PUB 197] [AES]<h:p/>
                      [<h:b>selection:</h:b>  ISO/IEC 19772:2020 (Clause 10), NIST SP 800-38D] [GCM]</h:td>
                  </h:tr>
                </h:table><h:p/>	
                To test the TOE’s implementation of AES-GCM authenticated encryption functionality the
                evaluator shall perform the Encryption Algorithm Functional Tests and Decryption Algorithm
                Functional Tests as described below using the following input parameters:<h:ul>
                  <h:li>Key Size [256] bits</h:li>
                  <h:li>Associated data size [0-65536] bits</h:li>
                  <h:li>Payload size [0-65536] bits</h:li>
                  <h:li>IV size [96] bits</h:li>
                  <h:li>Tag size [96, 104, 112, 120, 128] bits</h:li></h:ul><h:p/>
                <h:br/><h:b>Encryption Algorithm Functional Tests</h:b><h:p/>
                The evaluator shall generate 15 test cases using random data for each combination of
                the above parameters as follows:<h:p/><h:ul>
                  <h:li>Each claimed key size,</h:li>
                  <h:li>Each supported tag size,</h:li>
                  <h:li>Four supported non-zero payload sizes, such that two are multiples of 128 bits
                    and two are not multiples of 128 bits,</h:li>
                  <h:li>Four supported non-zero associated data sizes, such that two are multiples of 
                    128 bits and two are not multiples of 128 bits, and</h:li>
                  <h:li>An associated data size of zero, if supported.</h:li></h:ul><h:p/>
                Note that the IV size is always 96 bits.<h:p/>
                The evaluator shall compare the output from each test case against results generated by a known-
                good implementation with the same input parameters.<h:p/>
                <h:br/><h:b><h:i>Decryption Algorithm Functional Tests</h:i></h:b><h:p/>
                The evaluator shall test the authenticated decrypt functionality of AES-GCM by supplying 15
                test cases for the supported combinations of the parameters as described above. For each
                parameter combination the evaluator shall introduce an error into either the Ciphertext or the Tag
                such that approximately half of the cases are correct and half the cases contain errors.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
                
        <f-component cc-id="fcs_cop.1" iteration="Hash" name="Cryptographic Operation - Hashing">
          <f-element id="fel-hash-how">
            <title>
              The TSF shall perform [<h:i>cryptographic hashing</h:i>] in accordance with a specified 
              cryptographic algorithm 
              <selectables>
                <selectable id="sel-cop1-sha256">SHA-256</selectable>
                <selectable id="sel-cop1-sha384">SHA-384</selectable>
                <selectable id="sel-cop1-sha512">SHA-512</selectable>
                <selectable id="sel-cop1-sha3-384">SHA3-384</selectable>
                <selectable id="sel-cop1-sha3-512">SHA3-512</selectable>
              </selectables> that meet the following:
              <selectables>
                <selectable>ISO/IEC 10118-3:2018 [SHA, SHA3]</selectable>
                <selectable>FIPS PUB 180-4 [SHA]</selectable>
                <selectable>FIPS PUB 202 [SHA3]</selectable>
              </selectables>.   
            </title>
            <note role="application">
	      <h:p>
	        In accordance with CNSA:<h:ul>
	          <h:li>SHA-3 hashes may be used only for internal hardware functionality such as
	            boot integrity checks, and</h:li>
	          <h:li>SHA-256 is permitted only for use as a PRF or MAC as part of a key derivation function,
	            or as part of LMS or XMSS.</h:li>
	        </h:ul><h:p/>
	        The hash selection should be consistent with the overall strength of the 
	        algorithm used for signature generation. For example, the TOE should choose SHA-384 for 3072-bit RSA, 
	        4096-bit RSA, or ECC with P-384; and SHA-512 for ECC with P-521.
	      </h:p>
	    </note>
            <aactivity>
              <TSS>
                The evaluator shall examine the TSS to verify that if SHA-256 is selected, that it is being 
                used only as a PRF or MAC step in a key derivation function or as part of LMS, and not as a hash algorithm.
              </TSS>
              <Guidance/>
              <Tests>
                The following tests may require the developer to provide access to a test platform that
                provides the evaluator with tools that are typically not found on factory products.<h:p/>
                The following tests are conditional, based on the selections made in the SFR. The
                evaluator shall perform the following tests or witness respective tests executed by
                the developer. The tests must be executed on a platform that is as close as practically
                possible to the operational platform (but which may be instrumented in terms of,
                for example, use of a debug mode). Where the test is not carried out on the TOE
                itself, the test platform shall be identified and the differences between test
                environment and TOE execution environment shall be described.<h:p/>
                
                <h:br/><h:b>SHA-256, SHA-384, SHA-512</h:b><h:p/> 
                To test the TOE’s ability to generate hash digests using SHA2, the evaluator shall
                perform the Algorithm Functional Test, Monte Carlo Test, and Large Data Test for each claimed
                SHA2 algorithm.<h:p/>
                <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
                The evaluator shall generate a number of test cases equal to the block size of the hash (512 for
                SHA2-256; 1024 for the other SHA2 algorithms).<h:p/>
                Each test case is to consist of random data of a random length between 0 and 65536 bits, or the
                largest size supported.<h:p/>                
                <h:br/><h:b>Monte Carlo Test</h:b><h:p/>
                Monte Carlo tests begin with a single seed and run 100 iterations of the chained computation.<h:p/>
                For the standard Monte Carlo test the message hashed is always three times the length of the
                initial seed.<h:p/>
                <h:pre>
                  For j = 0 to 99
                  A = B = C = SEED
                  For i = 0 to 999
                  MSG = A || B || C
                  MD = SHA(MSG)
                  A = B
                  B = C
                  C = MD
                  Output MD
                  SEED = MD
                </h:pre><h:p/>
                For the alternate version of the Monte Carlo Test, the hashed message is always the same length as
                the seed.<h:p/>
                <h:pre>
                  INITIAL_SEED_LENGTH = LEN(SEED)
                  For j = 0 to 99
                  A = B = C = SEED
                  For i = 0 to 999
                  MSG = A || B || C
                  if LEN(MSG) &gt;= INITIAL_SEED_LENGTH:
                  MSG = leftmost INITIAL_SEED_LENGTH bits of MSG
                  else:
                  MSG = MSG || INITIAL_SEED_LENGTH - LEN(MSG) 0 bits
                  MD = SHA(MSG)
                  A = B
                  B = C
                  C = MD
                  Output MD
                  SEED = MD	
                </h:pre><h:p/>
                The evaluator shall compare the output against results generated by a known good
                implementation with the same input.<h:p/>
                <h:br/><h:b>Large Data Test</h:b><h:p/>
                The implementation must be tested against one test case each on large data messages of 1GB,
                2GB, 4GB, and 8GB of data as supported. The data need not be random. It may, for example,
                consist of a repeated pattern of 64 bits.<h:p/>
                The evaluator shall compare the output against results generated by a known good
                implementation with the same input.<h:p/>
                
                <h:br/><h:b>SHA3-384, SHA3-512</h:b> <h:p/>
                To test the TOE’s ability to generate hash digests using SHA3 the evaluator shall perform the
                Algorithm Functional Test, Monte Carlo Test, and Large Data Tests for each claimed SHA3
                algorithm.<h:p/>
                
                <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
                Generate a test case consisting of random data for every message length from 0 bits (or the
                smallest supported message size) to rate bits, where rate equals<h:ul>
                  <h:li>832 for SHA3-384 and</h:li>
                  <h:li>576 for SHA3-512.</h:li></h:ul><h:p/>
                Additionally, generate tests cases of random data for messages of every multiple of (rate+1) bits
                starting at length rate, and continuing until 65535 is exceeded.<h:p/>
                The evaluator shall compare the output against results generated by a known good
                implementation with the same input.<h:p/>
                <h:br/><h:b>Monte Carlo Test</h:b><h:p/>
                Monte Carlo tests begin with a single seed and run 100 iterations of the chained computation.<h:p/>
                For this Monte Carlo Test, the hashed message is always the same length as the seed.<h:p/>
                <h:pre>
                  MD[0] = SEED
                  INITIAL_SEED_LENGTH = LEN(SEED)
                  For 100 iterations
                  For i = 1 to 1000
                  MSG = MD[i-1];
                  if LEN(MSG) &gt;= INITIAL_SEED_LENGTH:
                  MSG = leftmost INITIAL_SEED_LENGTH bits of MSG
                  else:
                  MSG = MSG || INITIAL_SEED_LENGTH - LEN(MSG) 0 bits
                  MD[i] = SHA3(MSG)
                  MD[0] = MD[1000]
                  Output MD[0]
                </h:pre><h:p/>
                The evaluator shall compare the output against results generated by a known good
                implementation with the same input.<h:p/>
                <h:br/><h:b>Large Data Test</h:b><h:p/>
                The implementation must be tested against one test case each on large data messages of 1GB,
                2GB, 4GB, and 8GB of data as supported. The data need not be random. It may, for example,
                consist of a repeated pattern of 64 bits.<h:p/>
                The evaluator shall compare the output against results generated by a known good
                implementation with the same input.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_cop.1" iteration="KeyedHash" name="Cryptographic Operation - Keyed Hash">
          <f-element id="fel-keyed-hash-how">
            <title>The TSF shall perform [<h:i>keyed hash message authentication</h:i>] in accordance
              with a specified cryptographic algorithm 
              <selectables>
                <tabularize id="fcs-cop-keyedhash-sels" title="Allowable choices for FCS_COP.1/KeyedHash">
                  <selectcol>Keyed Hash Algorithm</selectcol>
                  <reqtext>and cryptographic key sizes</reqtext>
                  <selectcol>Cryptographic Key Sizes</selectcol>
                  <reqtext>that meet the following:</reqtext>
                  <selectcol>List of Standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-cop-keyedhash-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_COP.1/KeyedHash.</reqtext>
                </tabularize>
                
                <selectable id="sel-fcs-cop-keyedhash-hmac-sha-256">
                  <col>HMAC-SHA-256</col>
                  <col>256 bits</col>
                  <col><selectables>
                    <selectable><h:i>ISO/IEC 9797-2:2021 (Section 7 “MAC Algorithm 2”)</h:i></selectable>
                    <selectable><h:i>FIPS PUB 198-1</h:i></selectable></selectables>
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-cop-keyedhash-hmac-sha-384">
                  <col>HMAC-SHA-384</col>
                  <col><selectables>
                    <selectable><h:i>384 (ISO, FIPS)</h:i></selectable>
                    <selectable><h:i>256 (FIPS)</h:i></selectable></selectables> bits
                  </col>
                  <col><selectables>
                    <selectable><h:i>ISO/IEC 9797-2:2021 (Section 7 “MAC Algorithm 2”)</h:i></selectable>
                    <selectable><h:i>FIPS PUB 198-1</h:i></selectable></selectables>
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-cop-keyedhash-hmac-sha-512">
                  <col>HMAC-SHA-512</col>
                  <col><selectables>
                    <selectable><h:i>512 (ISO, FIPS)</h:i></selectable>
                    <selectable><h:i>384 (FIPS)</h:i></selectable>
                    <selectable><h:i>256 (FIPS)</h:i></selectable></selectables> bits
                  </col>
                  <col><selectables>
                    <selectable><h:i>ISO/IEC 9797-2:2021 (Section 7 “MAC Algorithm 2”)</h:i></selectable>
                    <selectable><h:i>FIPS PUB 198-1</h:i></selectable></selectables>
                  </col>
                </selectable>
              </selectables>
            </title>
            <note role="application">
              <h:p>
                The intent of this requirement is to specify the keyed-hash
                message authentication function used for key establishment purposes for the various
                cryptographic protocols used by the OS (e.g., trusted channel).
                The hash selection must support the message digest size selection.
                The hash selection should be consistent with the overall strength of the
                algorithm used for FCS_COP.1/Hash.
              </h:p>
              <h:p>
                In accordance with CNSA, HMAC-SHA-256 may be used only as a PRF or MAC step in a key derivation function.
              </h:p>
            </note>
            <aactivity>
              <TSS>
                The evaluator shall examine the TSS to ensure that the size of the key is sufficient for the desired
                security strength of the output.<h:p/>
                The evaluator shall examine the TSS to verify that if HMAC-SHA-256 is selected, that it is being 
                used only as a PRF or MAC step in a key derivation function.
              </TSS>
              <Guidance/>
              <Tests>
                The following tests are conditional based on the selections made in the SFR. The evaluator
                shall perform the following tests or witness respective tests executed by the developer. The tests
                must be executed on a platform that is as close as practically possible to the operational platform
                (but which may be instrumented in terms of, for example, use of a debug mode). Where the test
                is not carried out on the TOE itself, the test platform shall be identified and the differences
                between test environment and TOE execution environment shall be described.<h:p/>
                
                <!-- HMAC -->
                <h:br/><h:b>HMAC</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Keyed Hash Algorithm</h:td>
                    <h:td valign="top">Cryptographic Key Sizes</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">HMAC-SHA-256</h:td>
                    <h:td valign="top">256 bits</h:td>
                    <h:td valign="top">
                      [<h:b>selection:</h:b> <h:i>ISO/IEC 9797-2:2021 (Section 7 “MAC Algorithm 2”), FIPS PUB 198-1</h:i>] </h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">HMAC-SHA-384</h:td>
                    <h:td valign="top">[<h:i><h:b>selection:</h:b> (ISO, FIPS) 384, (FIPS) 256] bits</h:i></h:td>
                    <h:td valign="top">
                      [<h:b>selection:</h:b> <h:i>ISO/IEC 9797-2:2021 (Section 7 “MAC Algorithm 2”), FIPS PUB 198-1</h:i>] </h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">HMAC-SHA-512</h:td>
                    <h:td valign="top">[<h:b>selection:</h:b> <h:i>(ISO, FIPS) 512, (FIPS) 384, 256] bits</h:i></h:td>
                    <h:td valign="top">
                      [<h:b>selection:</h:b> <h:i>ISO/IEC 9797-2:2021 (Section 7 “MAC Algorithm 2”), FIPS PUB 198-1</h:i>] </h:td>
                  </h:tr>
                </h:table><h:p/>	
                To test the TOE’s ability to generate keyed hashes using HMAC the evaluator shall perform the
                Algorithm Functional Test for each combination of claimed HMAC algorithm the following
                parameters:<h:ul>
                  <h:li>Hash function [SHA-256, SHA-384, SHA-512]</h:li>
                  <h:li>Key length [8-65536] bits by 8s</h:li>
                  <h:li>MAC length [32-[digest size of hash function (256, 384, 512)]] bits</h:li></h:ul><h:p/>
                <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
                For each supported Hash function the evaluator shall generate 150 test cases using random input
                messages of 128 bits, random supported key lengths, random keys, and random supported MAC
                lengths such that across the 150 test cases:<h:ul>
                  <h:li>The key length includes the minimum, the maximum, a key length equal to the block
                    size, and key lengths that are both larger and smaller than the block size.</h:li>
                  <h:li>The MAC size includes the minimum, the maximum, and two other random values.</h:li></h:ul><h:p/>
                The evaluator shall compare the output against results generated by a known good
                implementation with the same input.	
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
        
		<!-- FCS_COP.1/KeyEncap Cryptographic Operation - Key Encapsulation -->
		<f-component id="sfr-fcs-cop-1-keyencap" cc-id="fcs_cop.1" iteration="KeyEncap" name="Cryptographic Operation - Key Encapsulation" status="sel-based">
		  <depends on-sel="sel-ckm-2-encap"/>
			<f-element id="fcs-cop-1e1-keyencap">
			  <title> The TSF shall perform [<h:i>key encapsulation</h:i>] in accordance with a specified cryptographic algorithm 
					<selectables>
						<tabularize id="fcs-cop-keyencap-sels" title="Allowable choices for FCS_COP.1/KeyEncap">
							<textcol>Identifier</textcol>
							<reqtext/>
							<selectcol>Cryptographic Algorithm</selectcol>
							<reqtext>and cryptographic key sizes</reqtext>
							<selectcol>Cryptographic Key Sizes</selectcol>
							<reqtext>that meet the following:</reqtext>
							<selectcol>List of Standards</selectcol>
							<reqtext>.<h:p/><h:p/><xref to="fcs-cop-keyencap-sels"/> provides the allowable choices for
										completion of the selection operations of FCS_COP.1/KeyEncap.</reqtext>
						</tabularize>
						<selectable id="sel-fcs-cop-keyencap-mlkem">
							<col>ML-KEM</col>
							<col>ML-KEM</col>
							<col>Parameter set = ML-KEM-1024</col>
							<col>NIST FIPS 203</col>
						</selectable>
					</selectables>
				</title>
				<note role="application">
				  This SFR is claimed when "key encapsulation" is selected in FCS_CKM.2.1. For this PP, the only anticipated use of key encapsulation is the use of ML-KEM as part of key establishment for trusted communications.
				</note>
				<aactivity>
					<TSS>The evaluator shall ensure that the TSS documents that the selection of the key size is
						sufficient for the security strength of the key encapsulated.<h:p/>
						The evaluator shall examine the TSS to verify that any one-time values such as nonces or masks
						are constructed and used in accordance with the relevant standards.
					</TSS>
					<Guidance/>
					<Tests>
						The following test may require the developer to provide access to a test platform that
						provides the evaluator with tools that are typically not found on factory products.<h:p/>
						The following tests are conditional based upon the selections made in the SFR. The
						evaluator shall perform the following test or witness respective tests executed by
						the developer. The tests must be executed on a platform that is as close as practically
						possible to the operational platform (but which may be instrumented in terms of,
						for example, use of a debug mode). Where the test is not carried out on the TOE
						itself, the test platform shall be identified and the differences between test
						environment and TOE execution environment shall be described.<h:p/>

						<!-- ML-KEM  -->
						<h:br/><h:b>ML-KEM Key Encapsulation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Algorithm</h:td>
								<h:td valign="top">Cryptographic Key Sizes</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">ML-KEM</h:td>
								<h:td valign="top">ML-KEM</h:td>
								<h:td valign="top">Parameter set = ML-KEM-1024</h:td>
								<h:td valign="top">NIST FIPS PUB 203</h:td>
							</h:tr>
						</h:table><h:p/>	
						To test the TOE’s implementation of ML-KEM key encapsulation/decapsulation, the evaluator
						shall perform the Encapsulation Test and the Decapsulation Test using the following input
						parameters:<h:ul>
						<h:li>Encapsulation Parameters:<h:ul>
							<h:li>Parameter set [ML-KEM-1024]</h:li>
							<h:li>Previously generated encapsulation key (<h:i>ek</h:i>)</h:li>
							<h:li>Random value (<h:i>m</h:i>) [32 bytes]</h:li></h:ul></h:li>
						<h:li>Decapsulation Parameters:<h:ul>
							<h:li>Parameter set [ML-KEM-1024]</h:li>
							<h:li>Previously generated decapsulation key (<h:i>dk</h:i>)</h:li>
							<h:li>Previously generated ciphertext (<h:i>c</h:i>) [32 bytes]</h:li></h:ul></h:li>
						</h:ul><h:p/>
						<h:br/><h:b>Encapsulation Test</h:b><h:p/>
						For each supported parameter set the evaluator shall generate 25 test cases consisting of an
						encapsulation key ek and random value m. For each test case the valuator shall require the
						implementation under test to generate the corresponding shared secret k and ciphertext c. To
						determine correctness, the evaluator shall compare the resulting values with those generated
						using a known-good implementation using the same inputs.<h:p/>
						<h:br/><h:b>Encapsulation Key Check (if supported)</h:b><h:p/>
						The evaluator shall generate 10 encapsulation keys such that:<h:ul>
						<h:li>Five of the encapsulation keys are valid, and</h:li>
						<h:li>Five of the encapsulation keys are modified such that a value in the noisy linear 
						system is encoded into the key as a value greater than Q.</h:li></h:ul><h:p/>
						The evaluator shall invoke the TOE’s Encapsulation Key Check functionality to determine the
						validity of the 10 keys. The unmodified keys should be determined valid, and the modified keys
						should be determined invalid. <h:p/>
						<h:br/><h:b>Decapsulation Key Check (if supported)</h:b><h:p/>
						The evaluator shall generate 10 decapsulation keys such that:<h:ul>
						<h:li>Five of the decapsulation keys are valid, and</h:li>
						<h:li>Five of the decapsulation keys are modified such that the concatenated
						values ek||H(ek) will no longer match by modifying H(ek) to be a different value.</h:li></h:ul><h:p/>
						The evaluator shall invoke the TOE’s Decapsulation Key Check functionality to determine the
						validity of the 10 keys. The unmodified keys should be determined valid, and the modified keys
						should be determined invalid.<h:p/>				
						<h:br/><h:b>Decapsulation Test</h:b><h:p/>
						For each supported parameter set the evaluator shall use a single previously generated
						decapsulation key <h:i>dk</h:i> and generate 10 test cases consisting of valid and invalid ciphertexts c. For
						each test case the evaluator shall require the implementation under test to generate the
						corresponding shared secret <h:i>k</h:i> whether or not the ciphertext is valid. To determine correctness,
						the evaluator shall compare the resulting values with those generated using a known-good
						implementation using the same inputs.<h:p/>						
					</Tests>
				</aactivity>
			</f-element>
			<audit-event/>
		</f-component>


		<!-- FCS_COP.1/KeyWrap Cryptographic Operation - Key Wrapping -->
		<f-component id="sfr-fcs-cop-1-kw" cc-id="fcs_cop.1" iteration="KeyWrap" name="Cryptographic Operation - Key Wrapping">		  
		  <f-element id="fcs-cop-1e1-kw">
				<title>
					The TSF shall perform [<h:i>key wrapping</h:i>] in accordance with a specified cryptographic algorithm 
					<selectables>
						<tabularize id="fcs-cop-kw-sels" title="Allowable choices for FCS_COP.1/KeyWrap">
							<textcol>Identifier</textcol>
							<reqtext/>
							<selectcol>Cryptographic Algorithm</selectcol>
							<reqtext>and cryptographic key sizes</reqtext>
							<selectcol>Cryptographic Key Sizes</selectcol>
							<reqtext>that meet the following:</reqtext>
							<selectcol>List of Standards</selectcol>
							<reqtext>.<h:p/><h:p/><xref to="fcs-cop-kw-sels"/> provides the allowable choices for
								completion of the selection operations of FCS_COP.1/KeyWrap.</reqtext>
						</tabularize>
						
						<!-- AES-KW  -->
						<selectable id="sel-fcs-cop-kw-aes-kw">
							<col>AES-KW</col>
							<col>AES in KW mode</col>
							<col>256 bits</col>
							<col><selectables>
								<selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable>
								<selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/>
								<selectables>
								<selectable>ISO/IEC 19772:2020 (clause 6)</selectable>
								<selectable>NIST SP 800-38F (Section 6.2)</selectable> 
							</selectables> [KW mode]</col>
						</selectable>

						<!-- KWP mode -->
						<selectable id="sel-fcs-cop-kw-aes-kwp">
							<col>AES-KWP</col>
							<col>AES in KWP mode</col>
							<col>256 bits</col>
							<col><selectables>
								<selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable>
								<selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/>
								NIST SP 800-38F (Section 6.3) [KWP mode]</col>
						</selectable>
						
						<selectable id="sel-fcs-cop-kw-aes-ccm">
						<col>AES-CCM</col>
						<col>AES in CCM mode with unpredictable, non-repeating nonce, minimum size of 64 bits</col>
						<col>256 bits</col>
						<col><selectables>
							<selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable>
							<selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/>
							<selectables>
							<selectable>ISO/IEC 19772:2020 (Clause 7)</selectable> 
							<selectable>NIST SP 800-38C</selectable></selectables> [CCM]
						</col></selectable>

						<selectable id="sel-fcs-cop-kw-aes-gcm">
						<col>AES-GCM</col>
						<col>AES in GCM mode with non-repeating IVs using <selectables>
							<selectable>deterministic</selectable>
							<selectable>DRBG-based</selectable></selectables>,
							IV construction; the tag must be of length
							<selectables>
								<selectable>96</selectable>
								<selectable>104</selectable>
								<selectable>112</selectable>
								<selectable>120</selectable>
								<selectable>128</selectable>
							</selectables> bits.
						</col>
						<col>256 bits</col>
						<col><selectables>
							<selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable>
							<selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/>
							<selectables>
							<selectable>ISO/IEC 19772:2020 (Clause 10)</selectable> 
							<selectable>NIST SP 800-38D</selectable></selectables> [GCM]
						</col></selectable>
					</selectables>
				</title>
				<note role="application">
				  NIST 800-57p1rev5 sec. 5.6.2 specifies that the size of key used to protect the key being 
					transported should be at least the security strength of the key it is protecting.
				</note>
				<aactivity>
					<TSS>
						The evaluator shall ensure that the TSS documents that the selection of the key size is
						sufficient for the security strength of the key wrapped.<h:p/>
						The evaluator shall examine the TSS to ensure that it describes the construction of any IVs,
						nonces, and MACs in conformance with the relevant specifications.
					</TSS>
					<Guidance/>
					<Tests>
						For tests of AES-GCM and AES-CCM, see testing for FCS_COP.1/AEAD.<h:p/>
						The following tests are conditional based upon the selections made in the SFR. The evaluator
						shall perform the following test or witness respective tests executed by the developer. The tests
						must be executed on a platform that is as close as practically possible to the operational platform
						(but which may be instrumented in terms of, for example, use of a debug mode). Where the test
						is not carried out on the TOE itself, the test platform shall be identified and the differences
						between test environment and TOE execution environment shall be described.<h:p/>
						
						<!-- AES-KW -->
						<h:br/><h:b>AES-KW</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Algorithm</h:td>
								<h:td valign="top">Cryptographic Key Sizes</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">AES-KW</h:td>
								<h:td valign="top">AES in KW mode</h:td>
								<h:td valign="top">256 bits</h:td>
								<h:td valign="top">[<h:b>selection:</h:b> ISO/IEC 18033-3:2010 (Subclause 5.2),
														FIPS PUB 197] [AES]<h:p/>
													[<h:b>selection:</h:b> ISO/IEC 19772:2020 (clause 6), 
														NIST SP 800-38F (Section 6.2)] [KW mode] </h:td>
							</h:tr>
						</h:table><h:p/>	
						To test the TOE’s ability to wrap keys using AES in Key Wrap mode the evaluator shall perform
						the Algorithm Functional Tests using the following input parameters:<h:ul>
						<h:li>Key size [256] bits</h:li>
						<h:li>Keyword cipher type [cipher, inverse]</h:li>
						<h:li>Payload sizes [128-4096] bits by 64s</h:li></h:ul><h:p/>
						<h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
						The evaluator shall generate 100 encryption test cases using random data for each combination
						of claimed key size, keyword cipher type, and six supported payload sizes such that the payload
						sizes include the minimum, the maximum, two that are divisible by 128, and two that are not
						divisible by 128.<h:p/>
						The results shall be compared with those generated by a known-good implementation using the
						same inputs.<h:p/>
						The evaluator shall generate 100 decryption test cases using the same parameters as above, but
						with 20 of each 100 test cases having modified ciphertext to produce an incorrect result. To
						determine correctness, the evaluator shall confirm that the results correspond as expected for
						both the modified and unmodified values.<h:p/>

						<!-- AES-KWP -->
						<h:br/><h:b>AES-KWP</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Algorithm</h:td>
								<h:td valign="top">Cryptographic Key Sizes</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">AES-KWP</h:td>
								<h:td valign="top">AES in KWP mode</h:td>
								<h:td valign="top">256 bits</h:td>
								<h:td valign="top">[<h:b>selection:</h:b> ISO/IEC 18033-3:2010 (Subclause 5.2),
														FIPS PUB 197] [AES]<h:p/>
													NIST SP 800-38F (Section 6.3) [KWP mode] </h:td>
							</h:tr>
						</h:table><h:p/>	
						To test the TOE’s ability to wrap keys using AES in Key Wrap with Padding mode with padding
						the evaluator shall perform the Algorithm Functional Tests using the following input parameters:<h:ul>
						<h:li>Key size [256] bits</h:li>
						<h:li>Keyword cipher type [cipher, inverse]</h:li>
						<h:li>Payload sizes [8-4096] bits by 8s</h:li></h:ul><h:p/>
						<h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
						The evaluator shall generate 100 encryption test cases using random data for each combination
						of claimed key size, keyword cipher type, and six supported payload sizes such that the payload
						sizes include the minimum, the maximum, two that are divisible by 128, and two that are not
						divisible by 128.<h:p/>
						The results shall be compared with those generated by a known-good implementation using the
						same inputs.<h:p/>
						The evaluator shall generate 100 decryption test cases using the same parameters as above, but
						with 20 of each 100 test cases having modified ciphertext to produce an incorrect result. To
						determine correctness, the evaluator shall confirm that the results correspond as expected for
						both the modified and unmodified values.<h:p/>					
					</Tests>
				</aactivity>
			</f-element>
			<audit-event/>
		</f-component>
        
                <f-component cc-id="fcs_cop.1" iteration="SigGen" name="Cryptographic Operation -                   Signature Generation">
          <f-element id="fel-sign-how">
            <title> The TSF shall perform [<h:i>digital signature generation</h:i>] in accordance with a specified 
              cryptographic algorithm 
              <selectables>
                <tabularize id="fcs-cop-siggen-sels" title="Allowable choices for FCS_COP.1/SigGen">
                  <textcol>Identifier</textcol>
                  <reqtext/>
                  <selectcol>Cryptographic Algorithm</selectcol>
                  <reqtext>and cryptographic key sizes</reqtext>
                  <selectcol>Cryptographic Key Sizes</selectcol>
                  <reqtext>that meet the following:</reqtext>
                  <selectcol>List of Standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-cop-siggen-sels"/> provides the allowable choices for
                    completion of the selection operations in FCS_COP.1/SigGen.<h:p/></reqtext>
                </tabularize>
                
                <selectable id="sel-fcs-cop-siggen-rsa-pkcs">
                  <col>RSA-PKCS</col>
                  <col>RSASSA-PKCS1-v1_5</col>
                  <col>Modulus of size <selectables>
                    <selectable><h:i>3072</h:i></selectable>
                    <selectable><h:i>4096</h:i></selectable>
                    <selectable><h:i>6144</h:i></selectable>
                    <selectable><h:i>8192</h:i></selectable>
                  </selectables> bits, hash <selectables>
                    <selectable><h:i>SHA-384</h:i></selectable>
                    <selectable><h:i>SHA-512</h:i></selectable>
                  </selectables></col>
                  <col>
                    RFC 8017 (Section 8.2) [PKCS #1 v2.2]<h:p/>
                    FIPS PUB 186-5 (Section 5.4) [RSASSA-PKCS1-v1_5]
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-cop-siggen-rsa-pss">
                  <col>RSA-PSS</col>
                  <col>RSASSA-PSS</col>
                  <col>Modulus of size <selectables>
                    <selectable><h:i>3072</h:i></selectable>
                    <selectable><h:i>4096</h:i></selectable>
                    <selectable><h:i>6144</h:i></selectable>
                    <selectable><h:i>8192</h:i></selectable>
                  </selectables> bits, hash <selectables>
                    <selectable><h:i>SHA-384</h:i></selectable>
                    <selectable><h:i>SHA-512</h:i></selectable>
                  </selectables>, Salt Length (<h:i>sLen</h:i>)
                    such that <assignable><h:i>0 ≤ <h:i>sLen</h:i> ≤ <h:i>hLen</h:i> (Hash Output Length)</h:i></assignable>
                    and Mask Generation Function = MGF1</col>
                  <col>
                    RFC 8017 (Section 8.1) [PKCS#1 v2.2]<h:p/>
                    FIPS PUB 186-5 (Section 5.4) [RSASSA-PSS]
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-cop-siggen-ecdsa">
                  <col>ECDSA</col>
                  <col>ECDSA</col> 
                  <col>Elliptic Curve <selectables>
                    <selectable><h:i>P-384</h:i></selectable>
                    <selectable><h:i>P-521</h:i></selectable>
                  </selectables>, per-message secret number generation <selectables>
                    <selectable><h:i>extra random bits</h:i></selectable>
                    <selectable><h:i>rejection sampling</h:i></selectable>
                    <selectable><h:i>deterministic</h:i></selectable>
                  </selectables> and hash function using <selectables>
                    <selectable><h:i>SHA-384</h:i></selectable>
                    <selectable><h:i>SHA-512</h:i></selectable>
                  </selectables></col>
                  <col><selectables>
                    <selectable><h:i>ISO/IEC 14888-3:2018 (Subclause 6.6)</h:i></selectable>
                    <selectable><h:i>FIPS PUB 186-5 (Sections 6.3.1, 6.4.1</h:i></selectable>
                  </selectables>[ECDSA]<h:p/>
                    NIST SP-800 186 (Section 4) [NIST Curves]
                  </col>
                </selectable>
       
                <!-- LMS -->
                <selectable id="sel-fcs-cop-siggen-lms">
                  <col>LMS</col>
                  <col>LMS</col>
                  <col>Private key size = <selectables>
                    <selectable>192 bits with <selectables>
                      <selectable>SHA-256/192</selectable>
                      <selectable>SHAKE256/192</selectable>
                    </selectables></selectable>
                    <selectable>256 bits with <selectables>
                      <selectable>SHA-256</selectable>
                      <selectable>SHAKE256</selectable>
                    </selectables></selectable>
                  </selectables><h:p/>
                    Winternitz parameter = <selectables>
                      <selectable>1</selectable>
                      <selectable>2</selectable>
                      <selectable>4</selectable>
                      <selectable>8</selectable></selectables><h:p/>
                    Tree height = <selectables>
                      <selectable>5</selectable>
                      <selectable>10</selectable>
                      <selectable>15</selectable>
                      <selectable>20</selectable>
                      <selectable>25</selectable></selectables>
                  </col>
                  <col>RFC 8554 [LMS]<h:p/>
                    NIST SP 800-208 [parameters]
                  </col>
                </selectable>
                
                <!-- ML-DSA Signature Generation -->
                <selectable id="sel-fcs-cop-siggen-mldsa">
                  <col>ML-DSA</col>
                  <col>ML-DSA Signature Generation</col>
                  <col>Parameter set = ML-DSA-87</col>
                  <col>NIST FIPS 204 (Section 5.2)</col>
                </selectable>
                
                <!-- XMSS -->
                <selectable id="sel-fcs-cop-siggen-xmss">
                  <col>XMSS</col>
                  <col>XMSS</col>
                  <col>Private key size = <selectables>
                    <selectable>192 bits with <selectables>
                      <selectable>SHA-256/192</selectable>
                      <selectable>SHAKE256/192</selectable>
                    </selectables></selectable>
                    <selectable>256 bits with <selectables>
                      <selectable>SHA-256</selectable>
                      <selectable>SHAKE256</selectable>
                    </selectables></selectable>
                  </selectables><h:p/>
                    Tree height = <selectables>
                      <selectable>10</selectable>
                      <selectable>16</selectable>
                      <selectable>20</selectable>
                    </selectables>
                  </col>
                  <col>RFC 8391 [XMSS]<h:p/>
                    NIST SP 800-208 [parameters]
                  </col>
                </selectable>
                
              </selectables>
            </title>
       <aactivity>
	       <TSS>The evaluator shall examine the TSS and verify that any hash function is the appropriate security
						strength for the signing algorithm.<h:p/>
						The evaluator shall examine the TSS to verify that any one-time values such as nonces or masks
						are constructed and used in accordance with the relevant standards.<h:p/>
						The evaluator shall examine the TSS to verify that the TOE has appropriate measures in place to
						ensure that hash-based signature algorithms do not reuse private keys.</TSS>
					<Guidance/>
					<Tests>
						The following tests are conditional based on the selections made in the SFR. The evaluator
						shall perform the following tests or witness respective tests executed by the developer. The tests
						must be executed on a platform that is as close as practically possible to the operational platform
						(but which may be instrumented in terms of, for example, use of a debug mode). Where the test
						is not carried out on the TOE itself, the test platform shall be identified and the differences
						between test environment and TOE execution environment shall be described.<h:p/>
					
						<!-- RSA-PKCS Signature Generation   -->
						<h:br/><h:b>RSA-PKCS Signature Generation </h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">Cryptographic Key Sizes</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">RSA-PKCS </h:td>
								<h:td valign="top">RSASSA-PKCS1-v1_5</h:td>
								<h:td valign="top">Modulus of size [<h:b>selection:</h:b> <h:i>3072, 4096, 6144, 8192</h:i>] bits,
									hash [<h:b>selection:</h:b> <h:i>SHA-384, SHA-512</h:i>]</h:td>
								<h:td valign="top">RFC 8017 (Section 8.2) [PKCS #1 v2.2]<h:p/>
													NIST FIPS PUB 186-5 (Section 5.4) [RSASSA-PKCS1-v1_5]</h:td>
							</h:tr>
						</h:table><h:p/>	
						To test the TOE’s ability to perform RSA Digital Signature Generation using PKCS1-v1_5
						signature type, the evaluator shall perform the Generated Data Test using the following input
						parameters:<h:ul>
						<h:li>Modulus size [3072, 4096, 6144, 8192] bits</h:li>
						<h:li>Hash algorithm [SHA-384, SHA-512]</h:li></h:ul>
						<h:br/><h:b>Generated Data Test</h:b><h:p/>
						For each supported combination of the above parameters, the evaluator shall cause the TOE to
						generate three test cases using random data. The evaluator shall compare the results against those
						from a known good implementation.<h:p/>

						<!-- RSA-PSS Signature Generation    -->
						<h:br/><h:b>RSA-PSS Signature Generation </h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">Cryptographic Key Sizes</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">RSA-PSS</h:td>
								<h:td valign="top">RSASSA-PSS</h:td>
								<h:td valign="top">Modulus of size [<h:b>selection:</h:b> <h:i>3072, 4096, 6144, 8192</h:i>] bits,
									hash [<h:b>selection:</h:b> <h:i>SHA-384, SHA-512</h:i>], Salt Length (<h:i>sLen</h:i>)
												such that [<h:b>assignment:</h:b> <h:i>0 ≤ <h:i>sLen</h:i> ≤ <h:i>hLen</h:i> (Hash Output Length)</h:i>]
												and Mask Generation Function = MGF1
												</h:td>
								<h:td valign="top">RFC 8017 (Section 8.2) [PKCS #1 v2.2]<h:p/>
													NIST FIPS PUB 186-5 (Section 5.4) [RSASSA-PSS]</h:td>
							</h:tr>
						</h:table><h:p/>	
						To test the TOE’s ability to perform RSA Digital Signature Generation using PSS signature type,
						the evaluator shall perform the Generated Data Test using the following input parameters:<h:ul>
						<h:li>Modulus size [3072, 4096, 6144, 8192] bits</h:li>
						<h:li>Hash algorithm [SHA-384, SHA-512]</h:li>
						<h:li>Salt length [Fixed based on implementation]</h:li>
						<h:li>Mask function [MGF1]</h:li></h:ul><h:p/>
						<h:br/><h:b>Generated Data Test</h:b><h:p/>
						For each supported combination of the above parameters, the evaluator shall cause the TOE to
						generate three test cases using random data. The evaluator shall compare the results against those
						from a known good implementation.<h:p/>

						<!-- ECDSA Signature Generation  -->
						<h:br/><h:b>ECDSA Signature Generation </h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">Cryptographic Key Sizes</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">ECDSA</h:td>
								<h:td valign="top">ECDSA</h:td>
								<h:td valign="top">Elliptic Curve [<h:b>selection:</h:b> <h:i>P-384, P-521</h:i>], 
									per-message secret number generation
									[<h:b>selection:</h:b> <h:i>extra random bits, rejection sampling, deterministic</h:i>] 
									and hash function using [<h:b>selection:</h:b> <h:i>SHA-384, SHA-512</h:i>] </h:td>
								<h:td valign="top">[<h:b>selection:</h:b> <h:i>ISO/IEC 14888-3:2018 (Subclause 6.6),
									NIST FIPS PUB 186-5 (Sections 6.3.1, 6.4.1</h:i>] [ECDSA]<h:p/>
									NIST SP-800 186 (Section 4) [NIST Curves] </h:td>
							</h:tr>
						</h:table><h:p/>	
						To test the TOE’s ability to perform ECDSA Digital Signature Generation using extra random
						bits or rejection sampling for secret number generation, the evaluator shall perform the
						Algorithm Functional Test using the following input parameters:<h:ul>
						<h:li>Elliptic Curve [P-384, P-521]</h:li>
						<h:li>Hash algorithm [SHA-384, SHA-512]</h:li></h:ul><h:p/>
						To test the TOE’s ability to perform ECDSA Digital Signature Generation using deterministic
						secret number generation, the evaluator shall perform the Algorithm Functional Test using the
						following input parameters:	<h:ul>
						<h:li>Elliptic Curve [P-384, P-521]</h:li>
						<h:li>Hash algorithm [SHA-384, SHA-512]</h:li></h:ul>
						<h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
						For each supported combination of the above parameters, the evaluator shall cause the TOE to
						generate 10 test cases using random data. The evaluator shall compare the results against those
						from a known good implementation.<h:p/>

					  <!-- LMS Signature Genration  -->
					  <h:br/><h:b>LMS Signature Generation </h:b><h:p/>
					  <h:table border="1">
					    <h:tr class="header" bgcolor="#cccccc">
					      <h:td valign="top">Identifier</h:td>
					      <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
					      <h:td valign="top">Cryptographic Key Sizes</h:td>
					      <h:td valign="top">List of Standards</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td valign="top">LMS</h:td>
					      <h:td valign="top">LMS</h:td>
					      <h:td valign="top">Private key size = [<h:b>selection:</h:b>
					        192 bits with [<h:b>selection:</h:b> SHA256/192, SHAKE256/192], 
					        256 bits with [<h:b>selection:</h:b> SHA-256, SHAKE256]], 
					        Winternitz parameter = [<h:b>selection:</h:b> 1, 2, 4, 8], 
					        and tree height = [<h:b>selection:</h:b> 5, 10, 15, 20, 25]</h:td>
					      <h:td valign="top">RFC 8554 [LMS]<h:p/>
					        NIST SP 800-208 [parameters] </h:td>
					    </h:tr>
					  </h:table><h:p/>	
					  To test the TOE’s ability to generate cryptographic digital signature using LMS, the
					  evaluator shall perform the Algorithm Functional Test using the following input parameters:<h:ul>
					    <h:li>Hash algorithm [SHA-256/192, SHAKE256/192, SHA-256, SHAKE256]</h:li>
					    <h:li>Winternitz [1, 2, 4, 8]</h:li>
					    <h:li>Tree height [5, 10, 15, 20, 25]</h:li></h:ul><h:p/>
					  <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
					  For each supported combination of the above parameters, the evaluator shall generate 10
					  signatures. The evaluator shall verify the correctness of the implementation by comparing values
					  generated by the TOE with those generated by a known good implementation using the same
					  input parameters.<h:p/>
						
						<!-- ML-DSA Signature Generation  -->
						<h:br/><h:b>ML-DSA Signature Generation</h:b><h:p/>
						<h:table border="1">
							<h:tr class="header" bgcolor="#cccccc">
								<h:td valign="top">Identifier</h:td>
								<h:td valign="top">Cryptographic Algorithm Parameters</h:td>
								<h:td valign="top">Cryptographic Key Sizes</h:td>
								<h:td valign="top">List of Standards</h:td>
							</h:tr>
							<h:tr>
								<h:td valign="top">ML-DSA</h:td>
								<h:td valign="top">ML-DSA SigGen</h:td>
								<h:td valign="top">Parameter set = ML-DSA-87</h:td>
								<h:td valign="top">NIST FIPS PUB 204 (Section 5.2)</h:td>
							</h:tr>
						</h:table><h:p/>	
						To test the TOE’s ability to generate digital signatures using ML-DSA, the
						evaluator shall perform the Algorithm Functional Test using the following input parameters:<h:ul>
						<h:li>Parameter set [ML-DSA-87]</h:li>
						<h:li>Seed [32 random bytes] (for non-deterministic signature testing), or</h:li>
						<h:li>Seed [32 zero bytes] (for deterministic signature testing)</h:li>
						<h:li>Message to sign [8-65535] bytes</h:li>
						<h:li><h:i>Mu</h:i> value (if generated externally)</h:li>
						<h:li>Previously generated private key (<h:i>sk</h:i>)</h:li>
						<h:li>Context (for external interface testing)</h:li></h:ul><h:p/>
						<h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
						For each combination of supported parameter set and capabilities, the evaluator shall require the
						implementation under test to generate 15 signatures pairs using 15 different randomly generated
						32-byte seed values. To determine correctness, the evaluator shall
						compare the resulting key pairs with those generated using a known good implementation using
						the same inputs.<h:p/>
						<h:br/><h:b>Known Answer Test for Rejection Cases</h:b><h:p/>
						For each supported parameter set, the evaluator shall cause the TOE to generate signatures using
						the data below and a deterministic seed of all 0’s. Correctness is determined by
						comparing the hash of the resulting signature with the hash in the fourth row 
						for each corresponding test case below.<h:p/>
						The test values are defined as follows:<h:ul>
						<h:li><h:i>Seed</h:i> is the seed to generate the key pair (<h:i>pk, sk</h:i>)</h:li>
						<h:li><h:i>Hash of keys</h:i> is computed by SHA-256(<h:i>pk</h:i>||<h:i>sk</h:i>)</h:li>
						<h:li><h:i>Message</h:i> is the message to be signed</h:li>
						<h:li><h:i>Hash of sig</h:i> is computed by SHA-256(<h:i>sig</h:i>)</h:li></h:ul><h:p/>
						<h:p/><h:b>ML-DSA-87 Test Cases for Rejection Cases</h:b><h:p/>
						<h:pre>
		Test case 87-RC-01
		Seed: 			E4F5AFCF697E0EC3C1BDEB66FAA903221E803902F9C3F716E1056A63D77DC250
		Hash of Keys: 	61618E8DDA6998072C8EB36974E03880D741CAF0BD523356DFC161E7C9E63934
		Message: 		F4F1C05004D5B946F69EAFE104C4020519086ADDB9582A20FDE887D13DFC36B1
		Hash of sig: 	B584E38FA442FC3C81A147D4BDBF058D73C822CAF5CA4C06B0110867F60A8001
						
		Test case 87-RC-02
		Seed: 			8B828D871254D6C57384A8E7025AA3F7160CAD1D2C754499DF3844426062C3DD
		Hash of Keys: 	BB64481317D6C0DBAD20C0C7EF11078AD54E5D574F4A07652115A95F77C655FA
		Message: 		0F9409C5A4930C25B83FC5B77FDB5BB49C75372DE724D9C1A77DB700CF0CF154
		Hash of sig: 	F86B49BE9DEB2B209BDEB4E922E5939E92D38E562C44BB09AFBD67323C345192
						
		Test case 87-RC-03
		Seed: 			E693D282CACB8CE65FD4D108DA7A373F097F0AA9713550BE242AAD5BD3E2E452
		Hash of Keys: 	B0BEAF56713A69BD4AB2CBEE006FA5001E7B41F3AE541E05F088933AA0CC78DF
		Message: 		24DABB9D57ADEBD560ED65D9451C5106D437061708F849BA53F3543CDF9AAAE0
		Hash of sig: 	DBF65CEFF9F96A74AAF6F3AB27B043231BE6AA04FBA2EEC987A24A00BDD6A08E
						
		Test case 87-RC-04
		Seed: 			4002163EB8EED01A8E0919BA8C07D291341EDCAE25B02B9779A2CFFE50561AF0
		Hash of Keys: 	FED1BE685C20ECB322FC40D41DEE7E0E98D0409FBF989CAE71B8AD2D58AD645E
		Message: 		EE316BB5EBED53325B4A55571C60657B53E353B51B831F4A0BBB28107EBA4BA8
		Hash of sig: 	3BE9B5545FDCED92547B3409C83B3312CCB5792A8EC3A4DA63BA692C79BEF17C
						
		Test case 87-RC-05
		Seed: 			9C7AD524F65854C27E565BCEDF8E86D650F13A40D0448F9AE10C05F10F777120
		Hash of Keys: 	0EA872CA5A4BEA94F4E8EF7ED31800727899A51059FDEE111E5CB15F0233B534
		Message: 		CE09831294AA96CAF684B9E667947B021C57B24C138EC7D4DA270694C82F2E08
		Hash of sig: 	3B9526CEE6587F2418BFE603ADB0F7DF0D69EBA31C9F9F005C60C993945EBD33
						
		Test case 87-RC-06
		Seed: 			2EB7676D4A28700DA7772A7A035EB495CAA6F842352A74824EF5FD891BC38B2A
		Hash of Keys: 	D5B73703A1DDC5BCB0D14AE39B193A25D6ADA6535827973181ADB0BE70435A5B
		Message: 		C2B3A0AC483A5517682285C205974B2A506946448A8F7D3E1934C155EFDFE922
		Hash of sig: 	375D598704B722C8A1FEF1626FD7738A532C06329AA4217357460E3B729660F8
						
		Test case 87-RC-07
		Seed: 			E4E80CCE8B26DF1B02B99949851EE2F907FE4F0CC34790352C76D5D91634D073
		Hash of Keys: 	84B7E61684A12698400B09EA332EA3C4FBCFA47FE37FD6AE725CBC5FA8A99D3F
		Message: 		89E6AB43C9CB1CC59C3986D53217A558357E62102A26F666F2B64CD1DBB7A536
		Hash of sig: 	7C4AABD163CAEF8F6EBFDA3E3EEBC0A9604675B0E991ABAFD284F1AE8BA07B2A
						
		Test case 87-RC-08
		Seed: 			5787262B803499223D4E5A8C1EE572E89F7A69B359B3F8505355B0BDEAB95E5C
		Hash of Keys: 	85AE1DE605A7B479C02730BF4B7DD6D0FD8FFE5C980893CA6DAD00BD8BD1CE68
		Message: 		D3230C4E061964BBFB17702432D5D36FC1EB3D1068F8CCAA84044776E3B5CC55
		Hash of sig: 	D3ABE460EE2DD9595F413CFE2780A319E4E4DFD6592995298A7AB0B82A5E2815
						
		Test case 87-RC-09
		Seed: 			CE099B99330537DD153052243FC32ACAD509A126AB982410258858567D410D79
		Hash of Keys: 	E04A9F15EDF8F078EB336CE624249EF2A8EDF2CDBF6A8276E9F5E92ED9B0BAE8
		Message: 		0035931762665F561A1B22176567E3B10FDE2441521F77030733A8E39312EEEE
		Hash of sig: 	3EEF413CB5EB179896ECA172D0DBFB9B251545DC561D61580BD5BBC8B6D734E1

		Test case 87-RC-10
		Seed: 			FC8F2929878CBD81E1CCC23913F290380120C043A4A8A251AEEBF09705B8E590
		Hash of Keys: 	7E2ECCA86F532E8E8092FEBB6E0007F92E7909AD2BCBE2E02AB375DAC9969E5E
		Message: 		D3C28875D2671C0EF23BFDC8869E8ECF8868D3F0561C3134D254F7479D0CE0E5
		Hash of sig: 	EB69A908EDCC04320A0B61AD57E21B044465F2037698636B64229CF2DB259789
						</h:pre>
					  
					  <!-- XMSS Signature Gneration  -->
					  <h:br/><h:b>XMSS Signature Generation</h:b><h:p/>
					  <h:table border="1">
					    <h:tr class="header" bgcolor="#cccccc">
					      <h:td valign="top">Identifier</h:td>
					      <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
					      <h:td valign="top">Cryptographic Key Sizes</h:td>
					      <h:td valign="top">List of Standards</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td valign="top">XMSS</h:td>
					      <h:td valign="top">XMSS</h:td>
					      <h:td valign="top">Private key size = [<h:b>selection:</h:b>
					        192 bits with [<h:b>selection:</h:b> SHA256/192, SHAKE256/192], 
					        256 bits with [<h:b>selection:</h:b> SHA-256, SHAKE256]], 
					        and tree height = [<h:b>selection:</h:b> 10, 16, 20] </h:td>
					      <h:td valign="top">RFC 8391 [XMSS] <h:p/>
					        NIST SP 800-208 [parameters]</h:td>
					    </h:tr>
					  </h:table><h:p/>	
					  To test the TOE’s ability to generate digital signatures using XMSS, the evaluator
					  shall perform the XMSS Key Generation Test using the following input parameters:<h:ul>
					    <h:li>Hash algorithm [SHA-256/192, SHAKE256/192, SHA-256, SHAKE256]</h:li>
					    <h:li>Tree height [10, 16, 20]</h:li></h:ul><h:p/>
					  <h:br/><h:b>XMSS Key Generation Test</h:b><h:p/>
					  For each supported combination of the above parameters, the evaluator shall generate 10
					  signatures. The evaluator shall verify the correctness of the implementation by comparing values
					  generated by the TOE with those generated by a known-good implementation using the same
					  input parameters.<h:p/>
						
						<h:br/><h:b>Known Answer Test for Large Number of Rejection Cases (Total Rejection Count)</h:b><h:p/>
						For each supported parameter set, the evaluator shall cause the TOE to generate signatures using
						the data below and a deterministic seed of all 0’s. Correctness is determined by
						comparing the hash of the resulting signature with the hash in the fourth row
						of the corresponding test case below.<h:p/>
						<h:p/><h:b>ML-DSA-87 Test Cases for Total Rejection Count</h:b><h:p/>
						<h:pre>
		Test case 87-LN-01
		Seed: 			98B6298051D92BF37293C93C97370747BF527B87B71F6C4264182F45155ADE4C
		Hash of Keys: 	04A135B5C9B7020332C7B16E7108E8FF7FC1EAE1C23C5FA0B5D5CED0FEEE7424
		Message: 		D7B0341269259083ABF3C8DC47559A19D57669B4486E0224F376DC43E577A3D8
		Hash of sig: 	58D72D76EC0FB65BFB9893C4479366B79DD7B8B7577E4291D13514FCC76C26DD

		Test case 87-LN-02
		Seed: 			DFB5BDD90F58571DCA962426C623F13D046BBE814D183886AC90D143EAD725A7
		Hash of Keys: 	2B6AB8CFCCCC41F759CAF01932E9413F5DC6D949BC827F739866929683FB155E
		Message: 		21005DB2B583CC826A9684BFFD0EE00AB97E0479FE4A1D266699337540145778
		Hash of sig: 	C93EA34E00FFFFC3ECEA072D5FB038A83B5539CAF7B831AEDCFA785E50B3CA5E

		Test case 87-LN-03
		Seed: 			5AD414E0DD0EF2FE685F342871875FDF06F503717A86C3B3466565ADD2096417
		Hash of Keys: 	BD9C2D52F3FC78DB17E682DA2E78947ECFC0898333838D60C892700B2B0DDA9F
		Message: 		29139C279816B25F2D6BB52C8247D163544F7BA332C3CF63359B9E23FBC56515
		Hash of sig:	DB4BE2DE19FB40437BDB7E9B6578D665DB05B4E88C16907DF4546EBA9BE03AEA

		Test case 87-LN-04
		Seed: 			484DD2F406A4D15F49A91AD5FC3BDC1D0FF253622EB68F83D6E1C870D0E89E29
		Hash of Keys: 	A719DC9A77C91C46295555C2353BA0CBEA513DA9A92A5C34D2E949EFF46A12D8
		Message: 		6AD6E959F0EA60126364FB7C95FA71133F246A9265A11B4965EE78AB0CB5AF0E
		Hash of sig: 	5050D7A665074EC63D9F3966C1F01A1BFB18F9E83AE0B09F838BC1E2342ED6F4

		Test case 87-LN-05
		Seed: 			B25C1816F82D59940D5CB829BAC364AAD013C4C16415CE1CF6DCC2F15199B391
		Hash of Keys: 	ADBB2CD43F222640BD9FF4E61C80E63853E8DC1F759C581B7447C9C166EAA38E
		Message: 		824E47322895BFFE37B6B4AFC41CF6115C07EEC0C24EB81076C87A1B01AE8617
		Hash of sig: 	667ADA46073BC69D64DC47BB9A76DD0D78302E7415D87D5E816B05FB95F9E84D

		Test case 87-LN-06
		Seed: 			B2CE72B3560AF07E06465881F56ADA00262BA708D87B73F39E04E310F3B8A3E9
		Hash of Keys: 	FD9C4AC53AE803242A62DF933B8E8BAD6CE5207AC4A73683B6D9383B5E70B17A
		Message: 		A1501CC84C917E0D2D7C27C2AC382220BD8FFFE807DB38E37A9E429EC2781911
		Hash of sig: 	779553B195E11558EE59EF3942F5F6B446A2144600D1F4F50B300C6C56504760

		Test case 87-LN-07
		Seed: 			AB01D0E591B7DDCD3C03395AED808FA2763C0A486D44119D621BE0FD0B022B25
		Hash of Keys: 	93B6ADE34F78A4ADB36B2F6D2C51DB793E659E1243E80488AE1C03B65125D6D7
		Message: 		8DE8122D89D15FE84A4C34F6B59B2C4B11F33B6A053154D199B634F557FDF5F6
		Hash of sig: 	0483045999A79B583F403DB96A736F0F0B24E2DFBC4E5CFA9B50E3D910786F07

		Test case 87-LN-08
		Seed: 			15D60D3693762F82C9AC1DCB0576936651AC81D863842EDB91109C8EE83AE705
		Hash of Keys: 	2DF544E2E939AA717741C2437288FAEB308DEB8FF37A2652FAE34BAE8B84D779
		Message: 		F05946A6113905C34163AEF2246FD69016CE24A7BA40F8E7E42EDAC2D0A44605
		Hash of sig: 	F8383917AF79C8E540D2356AB05F08B465BF32DFEC444B787CE31BF48CC6C3DD

		Test case 87-LN-09
		Seed: 			21212285BED53B3411705DAF5F3BDDB6F0618EB571B36EE11A74053407A269F5
		Hash of Keys: 	737061155A9A03F11F9FEBBB940BED4DD54542C4A6212F89A5EB4EC2BE542782
		Message: 		FFE38246BF3DEFD9CAD15CC17CEA511C067D582E04227B479E32F9197CF91482
		Hash of sig: 	C4C12C58032052FB2D21F0C6A7388A63154FB85B74287D2859DE6C1C6F7F277B

		Test case 87-LN-10
		Seed: 			A2744470587C71BA43EC26DC390CE3531978F315993C653E5D3EFD2849D5D9F1
		Hash of Keys: 	B1BF37BFFB11531B6ADD697870D7DB2E2462D0A97A63F09C1D0038457C6D795A
		Message: 		9831A830231A160B9847203341A5F30BF3E87A2A482AEEA6886315C92B5C4E4C
		Hash of sig: 	46C669D2FEB643A38E54FF87B790CC33F44043A1B6B31DB9474D301328CA2A7F
						</h:pre>					
												
					</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_cop.1" iteration="SigVer" name="Cryptographic Operation - Signature Verification">
          <f-element id="fel-sign-how">
            <title> 
              The TSF shall perform [<h:i>digital signature verification</h:i>] in accordance with a specified 
              cryptographic algorithm  
              <selectables>
                <tabularize id="fcs-cop-sigver-sels" title="Allowable choices for FCS_COP.1/SigVer">
                  <textcol>Identifier</textcol>
                  <reqtext/>
                  <selectcol>Cryptographic Algorithm</selectcol>
                  <reqtext>and cryptographic key sizes</reqtext>
                  <selectcol>Cryptographic Key Sizes</selectcol>
                  <reqtext>that meet the following:</reqtext>
                  <selectcol>List of Standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-cop-sigver-sels"/> provides the allowable choices for
                    completion of the selection operations in FCS_COP.1/SigVer.<h:p/></reqtext>
                </tabularize>
                
                <selectable id="sel-fcs-cop-sigver-rsa-pkcs">
                  <col>RSA-PKCS</col>
                  <col>RSASSA-PKCS1-v1_5</col>
                  <col>Modulus of size <selectables>
                    <selectable><h:i>3072</h:i></selectable>
                    <selectable><h:i>4096</h:i></selectable>
                    <selectable><h:i>6144</h:i></selectable>
                    <selectable><h:i>8192</h:i></selectable>
                  </selectables> bits and hash <selectables>
                    <selectable><h:i>SHA-384</h:i></selectable>
                    <selectable><h:i>SHA-512</h:i></selectable>
                  </selectables></col>
                  <col>
                    RFC 8017 (Section 8.2) [PKCS #1 v2.2]<h:p/>
                    FIPS PUB 186-5 (Section 5.4) [RSASSA-PKCS1-v1_5]
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-cop-sigver-rsa-pss">
                  <col>RSA-PSS</col>
                  <col>RSASSA-PSS</col>
                  <col>Modulus of size <selectables>
                    <selectable><h:i>3072</h:i></selectable>
                    <selectable><h:i>4096</h:i></selectable>
                    <selectable><h:i>6144</h:i></selectable>
                    <selectable><h:i>8192</h:i></selectable>
                  </selectables> bits and hash <selectables>
                    <selectable><h:i>SHA-384</h:i></selectable>
                    <selectable><h:i>SHA-512</h:i></selectable>
                  </selectables></col>
                  <col>
                    RFC 8017 (Section 8.1) [PKCS#1 v2.2]<h:p/>
                    FIPS PUB 186-5 (Section 5.4) [RSASSA-PSS]
                  </col>
                </selectable>
              
                
                <selectable id="sel-fcs-cop-sigver-ecdsa">
                  <col>ECDSA</col>
                  <col>ECDSA</col> 
                  <col>Elliptic Curve <selectables>
                    <selectable><h:i>P-384</h:i></selectable>
                    <selectable><h:i>P-521</h:i></selectable>
                  </selectables> using hash <selectables>
                    <selectable><h:i>SHA-384</h:i></selectable>
                    <selectable><h:i>SHA-512</h:i></selectable>
                  </selectables></col>
                  <col><selectables>
                    <selectable><h:i>ISO/IEC 14888-3:2018 (Subclause 6.6)</h:i></selectable>
                    <selectable><h:i>FIPS PUB 186-5 (Section 6.4.2)</h:i></selectable>
                  </selectables>[ECDSA]<h:p/>
                    NIST SP-800 186 (Section 4) [NIST Curves]
                  </col>
                </selectable>
                
                <!-- LMS -->
                <selectable id="sel-fcs-cop-sigver-lms">
                  <col>LMS</col>
                  <col>LMS</col>
                  <col>Private key size = <selectables>
                    <selectable><h:i>192 bits with </h:i><selectables>
                      <selectable><h:i>SHA-256/192</h:i></selectable>
                      <selectable><h:i>SHAKE256/192</h:i></selectable>
                    </selectables></selectable>
                    <selectable><h:i>256 bits with </h:i><selectables>
                      <selectable><h:i>SHA-256</h:i></selectable>
                      <selectable><h:i>SHAKE256</h:i></selectable>
                    </selectables></selectable>
                  </selectables><h:p/>
                    Winternitz parameter = <selectables>
                      <selectable><h:i>1</h:i></selectable>
                      <selectable><h:i>2</h:i></selectable>
                      <selectable><h:i>4</h:i></selectable>
                      <selectable><h:i>8</h:i></selectable></selectables><h:p/>
                    Tree height = <selectables>
                      <selectable><h:i>5</h:i></selectable>
                      <selectable><h:i>10</h:i></selectable>
                      <selectable><h:i>15</h:i></selectable>
                      <selectable><h:i>20</h:i></selectable>
                      <selectable><h:i>25</h:i></selectable></selectables>
                  </col>
                  <col>RFC 8554 [LMS]<h:p/>
                    NIST SP 800-208 [parameters]
                  </col>
                </selectable>
                
                <!-- XMSS -->
                <selectable id="sel-fcs-cop-sigver-xmss">
                  <col>XMSS</col>
                  <col>XMSS</col>
                  <col>Private key size = <selectables>
                    <selectable><h:i>192 bits with </h:i><selectables>
                      <selectable><h:i>SHA-256/192</h:i></selectable>
                      <selectable><h:i>SHAKE256/192</h:i></selectable>
                    </selectables></selectable>
                    <selectable><h:i>256 bits with </h:i><selectables>
                      <selectable><h:i>SHA-256</h:i></selectable>
                      <selectable><h:i>SHAKE256</h:i></selectable>
                    </selectables></selectable>
                  </selectables><h:p/>
                    Tree height = <selectables>
                      <selectable><h:i>10</h:i></selectable>
                      <selectable><h:i>16</h:i></selectable>
                      <selectable><h:i>20</h:i></selectable>
                    </selectables>
                  </col>
                  <col>RFC 8391 [XMSS]<h:p/>
                    NIST SP 800-208 [parameters]
                  </col>
                </selectable>
                
                <!-- ML-DSA Signature Verification -->
                <selectable id="sel-fcs-cop-sigver-mldsa">
                  <col>ML-DSA</col>
                  <col>ML-DSA Signature Verification</col>
                  <col>Parameter set = ML-DSA-87</col>
                  <col>NIST FIPS 204 (Section 5.3)</col>
                </selectable>
                
                
              </selectables>
            </title>
        
       <aactivity>
         <TSS>
           The evaluator shall examine the TSS to verify that any one-time values such as nonces or masks
           are constructed and used in accordance with the relevant standards.
         </TSS>
         <Guidance/>
         <Tests>
           The following tests are conditional based on the selections made in the SFR. The evaluator
           shall perform the following tests or witness respective tests executed by the developer. The tests
           must be executed on a platform that is as close as practically possible to the operational platform
           (but which may be instrumented in terms of, for example, use of a debug mode). Where the test
           is not carried out on the TOE itself, the test platform shall be identified and the differences
           between test environment and TOE execution environment shall be described.<h:p/>
           
           <!-- RSA-PKCS Signature Verification   -->
           <h:br/><h:b>RSA-PKCS Signature Verification</h:b><h:p/>
           <h:table border="1">
             <h:tr class="header" bgcolor="#cccccc">
               <h:td valign="top">Identifier</h:td>
               <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
               <h:td valign="top">Cryptographic Key Sizes</h:td>
               <h:td valign="top">List of Standards</h:td>
             </h:tr>
             <h:tr>
               <h:td valign="top">RSA-PKCS </h:td>
               <h:td valign="top">RSASSA-PKCS1-v1_5</h:td>
               <h:td valign="top">Modulus of size [<h:b>selection:</h:b> <h:i>3072, 4096, 6144, 8192</h:i>] bits,
                 hash [<h:b>selection:</h:b> <h:i>SHA-384, SHA-512</h:i>]</h:td>
               <h:td valign="top">RFC 8017 (Section 8.2) [PKCS #1 v2.2]<h:p/>
                 NIST FIPS PUB 186-5 (Section 5.4) [RSASSA-PKCS1-v1_5]</h:td>
             </h:tr>
           </h:table><h:p/>	
           To test the TOE’s ability to perform RSA Digital Signature Verification using PKCS1-v1_5
           signature type, the evaluator shall perform Generated Data Test using the following input
           parameters:<h:ul>
             <h:li>Modulus size [3072, 4096, 6144, 8192] bits</h:li>
             <h:li>Hash algorithm [SHA-384, SHA-512]</h:li></h:ul><h:p/>
           <h:br/><h:b>Generated Data Test</h:b><h:p/>
           For each supported combination of the above parameters, the evaluator shall cause the TOE to
           generate six test cases using a random message and its signature such that the test cases are
           modified as follows:<h:p/><h:ul>
             <h:li>One test case is left unmodified</h:li>
             <h:li>For one test case the Message is modified</h:li>
             <h:li>For one test case the Signature is modified</h:li>
             <h:li>For one test case the exponent (<h:i>e</h:i>) is modified</h:li>
             <h:li>For one test case the IR is moved</h:li>
             <h:li>For one test case the Trailer is moved</h:li></h:ul><h:p/>
           The TOE must correctly verify the unmodified signatures and fail to verify the modified
           signatures.<h:p/>
           
           <!-- RSA-PSS Signature Verification    -->
           <h:br/><h:b>RSA-PSS Signature Verification </h:b><h:p/>
           <h:table border="1">
             <h:tr class="header" bgcolor="#cccccc">
               <h:td valign="top">Identifier</h:td>
               <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
               <h:td valign="top">Cryptographic Key Sizes</h:td>
               <h:td valign="top">List of Standards</h:td>
             </h:tr>
             <h:tr>
               <h:td valign="top">RSA-PSS</h:td>
               <h:td valign="top">RSASSA-PSS</h:td>
               <h:td valign="top">Modulus of size [<h:b>selection:</h:b> <h:i>3072, 4096, 6144, 8192</h:i>] bits,
                 hash [<h:b>selection:</h:b> <h:i>SHA-384, SHA-512</h:i>]</h:td>
               <h:td valign="top">RFC 8017 (Section 8.2) [PKCS #1 v2.2]<h:p/>
                 NIST FIPS PUB 186-5 (Section 5.4) [RSASSA-PSS]</h:td>
             </h:tr>
           </h:table><h:p/>	
           To test the TOE’s ability to perform RSA Digital Signature Verification using PSS signature
           type, the evaluator shall perform the Generated Data Test using the following input parameters:<h:ul>
             <h:li>Modulus size [3072, 4096, 6144, 8192] bits</h:li>
             <h:li>Hash algorithm [SHA-384, SHA-512]</h:li>
             <h:li>Salt length [0-hash length]</h:li>
             <h:li>Mask function [MGF1]</h:li></h:ul><h:p/>
           <h:br/><h:b>Generated Data Test</h:b><h:p/>
           For each supported combination of the above parameters, the evaluator shall cause the TOE to
           generate six test cases using random data such that the test cases are modified as follows:<h:p/><h:ul>
             <h:li>One test case is left unmodified</h:li>
             <h:li>For one test case the Message is modified</h:li>
             <h:li>For one test case the Signature is modified</h:li>
             <h:li>For one test case the exponent (<h:i>e</h:i>) is modified</h:li>
             <h:li>For one test case the IR is moved</h:li>
             <h:li>For one test case the Trailer is moved</h:li></h:ul><h:p/>
           The TOE must correctly verify the unmodified signatures and fail to verify the modified
           signatures.<h:p/>
           
           
           <!-- ECDSA Signature Verification  -->
           <h:br/><h:b>ECDSA Signature Verification </h:b><h:p/>
           <h:table border="1">
             <h:tr class="header" bgcolor="#cccccc">
               <h:td valign="top">Identifier</h:td>
               <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
               <h:td valign="top">Cryptographic Key Sizes</h:td>
               <h:td valign="top">List of Standards</h:td>
             </h:tr>
             <h:tr>
               <h:td valign="top">ECDSA</h:td>
               <h:td valign="top">ECDSA</h:td>
               <h:td valign="top">Elliptic Curve [<h:b>selection:</h:b> <h:i>P-384, P-521</h:i>] and hash function using 
                 [<h:b>selection:</h:b> <h:i>SHA-384, SHA-512</h:i>] </h:td>
               <h:td valign="top">[<h:b>selection:</h:b> <h:i>ISO/IEC 14888-3:2018 (Subclause 6.6),
                 NIST FIPS PUB 186-5 (Sections 6.3.1, 6.4.1</h:i>] [ECDSA]<h:p/>
                 NIST SP-800 186 (Section 4) [NIST Curves] </h:td>
             </h:tr>
           </h:table><h:p/>	
           To test the TOE’s ability to perform ECDSA Digital Signature Verification, the evaluator shall
           perform the Algorithm Functional Test using the following input parameters:<h:ul>
             <h:li>Elliptic Curve [P-384, P-521]</h:li>
             <h:li>Hash algorithm [SHA-384, SHA-512]</h:li></h:ul><h:p/>
           <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
           For each supported combination of the above parameters, the evaluator shall cause the TOE to
           generate test cases consisting of messages and signatures such that the 21 test cases are
           modified as follows:<h:p/><h:ul>
             <h:li>Three test cases are left unmodified</h:li>
             <h:li>For three test cases the Message is modified</h:li>
             <h:li>For three test cases the key is modified</h:li>
             <h:li>For three test cases the <h:i>r</h:i> value is modified</h:li>
             <h:li>For three test cases the <h:i>s</h:i> value is modified</h:li>
             <h:li>For three test cases the value <h:i>r</h:i> is zeroed</h:li>
             <h:li>For three test cases the value <h:i>s</h:i> is zeroed</h:li></h:ul><h:p/>
           The TOE must correctly verify the unmodified signatures and fail to verify the modified
           signatures.<h:p/>
           
           <!-- LMS signature Verification  -->
           <h:br/><h:b>LMS Signature Verification </h:b><h:p/>
           <h:table border="1">
             <h:tr class="header" bgcolor="#cccccc">
               <h:td valign="top">Identifier</h:td>
               <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
               <h:td valign="top">Cryptographic Key Sizes</h:td>
               <h:td valign="top">List of Standards</h:td>
             </h:tr>
             <h:tr>
               <h:td valign="top">LMS</h:td>
               <h:td valign="top">LMS</h:td>
               <h:td valign="top">Private key size = [<h:b>selection:</h:b>
                 <h:i>192 bits with [<h:b>selection:</h:b> SHA256/192, SHAKE256/192], 
                 256 bits with [<h:b>selection:</h:b> SHA-256, SHAKE256]</h:i>], 
                 Winternitz parameter = [<h:b>selection:</h:b> <h:i>1, 2, 4, 8</h:i>], 
                 and tree height = [<h:b>selection:</h:b> <h:i>5, 10, 15, 20, 25</h:i>] </h:td>
               <h:td valign="top">RFC 8554 [LMS]<h:p/>
                 NIST SP 800-208 [parameters] </h:td>
             </h:tr>
           </h:table><h:p/>	
           To test the TOE’s ability to verify cryptographic digital signature using LMS, the
           evaluator shall perform the Algorithm Functional Test using the following input parameters:<h:ul>					
             <h:li>Hash algorithm [SHA-256/192, SHAKE256/192, SHA-256, SHAKE256]</h:li>
             <h:li>Winternitz [1, 2, 4, 8]</h:li>
             <h:li>Tree height [5, 10, 15, 20, 25]</h:li></h:ul><h:p/>
           <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
           For each supported combination of the above parameters, the evaluator shall generate four test cases
           consisting of signed messages and keys, such that<h:ul>
             <h:li>One test case is unmodified (i.e., correct)</h:li>
             <h:li>For one test case modify the message, i.e., the message is different</h:li>
             <h:li>For one test case modify the signature, i.e., signature is different</h:li>
             <h:li>For one test case modify the signature header so that it is a valid header for a different
               LMS parameter set.</h:li></h:ul><h:p/>
           The TOE must correctly verify the unmodified test case and fail to verify the modified test cases.<h:p/>
           
           <!-- XMSS Signature Verification  -->
           <h:br/><h:b>XMSS Signature Verification</h:b><h:p/>
           <h:table border="1">
             <h:tr class="header" bgcolor="#cccccc">
               <h:td valign="top">Identifier</h:td>
               <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
               <h:td valign="top">Cryptographic Key Sizes</h:td>
               <h:td valign="top">List of Standards</h:td>
             </h:tr>
             <h:tr>
               <h:td valign="top">XMSS</h:td>
               <h:td valign="top">XMSS</h:td>
               <h:td valign="top">Private key size = [<h:b>selection:</h:b>
                 <h:i>192 bits with [<h:b>selection:</h:b> SHA256/192, SHAKE256/192], 
                   256 bits with [<h:b>selection:</h:b> SHA-256, SHAKE256]</h:i>], 
                 and tree height = [<h:b>selection:</h:b> <h:i>10, 16, 20</h:i>] </h:td>
               <h:td valign="top">RFC 8391 [XMSS] <h:p/>
                 NIST SP 800-208 [parameters]</h:td>
             </h:tr>
           </h:table><h:p/>	
           To test the TOE’s ability to verify digital signatures using XMSS or XMSS MT, the evaluator shall
           perform the XMSS digital signature verification test using the following input parameters:<h:ul>
             <h:li>Hash algorithm [SHA-256/192, SHAKE256/192, SHA-256, SHAKE256]</h:li>
             <h:li>Tree height [10, 16, 20]</h:li></h:ul><h:p/>
           <h:br/><h:b>XMSS Digital Signature Verification Test</h:b><h:p/>
           For each supported combination of the above parameters, the evaluator shall generate four test
           cases consisting of signed messages and keys, such that<h:ul>
             <h:li>One test case is unmodified (i.e., correct)</h:li>
             <h:li>For one test case modify the message, i.e., the message is different</h:li>
             <h:li>For one test case modify the signature, i.e., signature is different</h:li>
             <h:li>For one test case modify the signature header so that it is a valid header 
               for a different XMSS parameter set</h:li></h:ul><h:p/>
           The evaluator shall verify the correctness of the implementation by verifying that the TOE
           correctly verifies the unmodified test case and fails to verify the modified test cases.<h:p/>	
           
           <!-- ML-DSA Signature Verification  -->
           <h:br/><h:b>ML-DSA Signature Verification</h:b><h:p/>
           <h:table border="1">
             <h:tr class="header" bgcolor="#cccccc">
               <h:td valign="top">Identifier</h:td>
               <h:td valign="top">Cryptographic Algorithm Parameters</h:td>
               <h:td valign="top">Cryptographic Key Sizes</h:td>
               <h:td valign="top">List of Standards</h:td>
             </h:tr>
             <h:tr>
               <h:td valign="top">ML-DSA</h:td>
               <h:td valign="top">ML-DSA SigVer</h:td>
               <h:td valign="top">Parameter set = ML-DSA-87</h:td>
               <h:td valign="top">NIST FIPS PUB 204 (Section 5.2)</h:td>
             </h:tr>
           </h:table><h:p/>				
           To test the TOE’s ability to validate digital signatures using ML-DSA, the
           evaluator shall perform the Algorithm Functional Test using the following input parameters:<h:ul>
             <h:li>Parameter set [ML-DSA-87]</h:li>
             <h:li>Previously generated signed Message [8-65535] bytes</h:li>
             <h:li><h:i>Mu</h:i> value (if generated externally)</h:li>
             <h:li>Context (for external interface testing)</h:li>
             <h:li>Previously generated public key (<h:i>pk</h:i>)</h:li>
             <h:li>Previously generated Signature</h:li></h:ul><h:p/>
           <h:br/><h:b>Algorithm Functional Test</h:b><h:p/>
           For each combination of supported parameter set and capabilities, the evaluator shall require the
           implementation under test to validate 15 signatures. Each group of 15 test
           cases is modified as follows:<h:ul>
             <h:li>Three test cases are left unmodified</h:li>
             <h:li>For three test cases the Signed message is modified</h:li>
             <h:li>For three test cases the component of the signature that commits the signer to the message is
               modified</h:li>
             <h:li>For three test cases the component of the signature that allows the verifier to construct the vector z is
               modified</h:li>
             <h:li>For three test cases the component of the signature that allows the verifier to construct the hint array
               is modified</h:li></h:ul><h:p/>
           The TOE must correctly verify the unmodified signatures and fail to verify the modified
           signatures.
         </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_cop.1" iteration="SKC" name="Cryptographic Operation - Encryption/Decryption">
         
          <f-element id="fel-encrypt-how">
            
              <title>
                The TSF shall perform [<h:i>symmetric-key encryption/decryption</h:i>] in accordance with a 
                specified cryptographic algorithm   
                <selectables>
                  <tabularize id="fcs-cop-skc-sels" title="Allowable choices for FCS_COP.1/SKC">
                    <textcol>Identifier</textcol>
                    <reqtext/>
                    <selectcol>Cryptographic Algorithm</selectcol>
                    <reqtext>and cryptographic key sizes</reqtext>
                    <selectcol>Cryptographic Key Sizes</selectcol>
                    <reqtext>that meet the following:</reqtext>
                    <selectcol>List of Standards</selectcol>
                    <reqtext>.<h:p/><h:p/><xref to="fcs-cop-skc-sels"/> provides the allowable choices for
                      completion of the selection operations of FCS_COP.1/SKC.</reqtext>							
                  </tabularize>
                  
                  <!-- AES-CBC -->
                  <selectable id="sel-fcs-cop-skc-aes-cbc">
                    <col>AES-CBC</col>
                    <col>AES in CBC mode with non-repeating and unpredictable IVs</col>
                    <col>256 bits</col>
                    <col><selectables>
                      <selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable> 
                      <selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/><selectables>
                        <selectable>ISO/IEC 10116:2017 (Clause 7)</selectable> 
                        <selectable>NIST SP 800-38A</selectable></selectables> [CBC]
                    </col>
                  </selectable>
                  
                  <!-- XTS-AES -->
                  <selectable id="sel-fcs-cop-skc-aes-xts">
                    <col>XTS-AES</col>
                    <col>AES in XTS mode with unique tweak values that are consecutive non-negative 
                      integers starting at an arbitrary non-negative integer</col>
                    <col>512 bits</col>
                    <col><selectables>
                      <selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable> 
                      <selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/><selectables>
                        <selectable>IEEE Std. 1619-2018</selectable> 
                        <selectable>NIST SP 800-38E</selectable></selectables> [XTS]
                    </col>
                  </selectable>
                  
                  <!-- AES-CTR -->
                  <selectable id="sel-fcs-cop-skc-aes-ctr">
                    <col>AES-CTR</col>
                    <col>AES in Counter Mode with a non-repeating initial counter and with no repeated
                      use of counter values across multiple messages with the same secret key</col>
                    <col>256 bits</col>
                    <col><selectables>
                      <selectable>ISO/IEC 18033-3:2010 (Subclause 5.2)</selectable> 
                      <selectable>FIPS PUB 197</selectable></selectables> [AES]<h:p/><selectables>
                        <selectable>: ISO/IEC 10116:2017 (Clause 10)</selectable> 
                        <selectable>NIST SP 800-38A</selectable></selectables> [CBC]
                    </col>
                  </selectable>
                </selectables>
              </title>
  <note role="application">At minimum, the TOE is required to support AES-CBC to provide this algorithm as a cryptographic service to tenant software as defined in FCS_SRV_EXT.1.</note>
              <aactivity>
                <TSS>
                  The evaluator shall examine the TSS to ensure that it describes the construction of any IVs,
                  tweak values, and counters in conformance with the relevant specifications.<h:p/>
                  If XTS-AES is claimed then the evaluator shall examine the TSS to verify that the TOE creates
                  full-length keys by methods that ensure that the two key halves are different and independent.
                </TSS>
                <Guidance/>
                <Tests>
                  The following tests require the developer to provide access to a test platform that
                  provides the evaluator with tools that are typically not found on factory products.<h:p/>
                  The following tests are conditional based upon the selections made in the SFR. The
                  evaluator shall perform the following test or witness respective tests executed by
                  the developer. The tests must be executed on a platform that is as close as practically
                  possible to the operational platform (but which may be instrumented in terms of,
                  for example, use of a debug mode). Where the test is not carried out on the TOE
                  itself, the test platform shall be identified and the differences between test
                  environment and TOE execution environment shall be described.<h:p/>
                  
                  <!-- AES-CBC -->
                  <h:br/><h:b>AES-CBC</h:b><h:p/>
                  <h:table border="1">
                    <h:tr class="header" bgcolor="#cccccc">
                      <h:td valign="top">Identifier</h:td>
                      <h:td valign="top">Cryptographic Algorithm</h:td>
                      <h:td valign="top">Cryptographic Key Sizes</h:td>
                      <h:td valign="top">List of Standards</h:td>
                    </h:tr>
                    <h:tr>
                      <h:td valign="top">AES-CBC</h:td>
                      <h:td valign="top">AES in CBC mode with non-repeating and unpredictable IVs</h:td>
                      <h:td valign="top">256 bits</h:td>
                      <h:td valign="top">
                        [<h:b>selection:</h:b> ISO/IEC 18033-3:2010 (Subclause 5.2),
                        FIPS PUB 197] [AES]<h:p/>
                        [<h:b>selection:</h:b>  ISO/IEC 10116:2017 (Clause 7), 
                        NIST SP 800-38A] [CBC]</h:td>
                    </h:tr>
                  </h:table><h:p/>	
                  
                  To test the TOE’s ability to encrypt/decrypt data using AES in CBC mode, the evaluator 
                  shall perform Algorithm Functional Tests and Monte Carlo Tests using the following
                  input parameters:<h:ul>
                    <h:li>Key size [256] bits</h:li>
                    <h:li>Direction [encryption, decryption]</h:li></h:ul><h:p/>
                  <h:br/><h:b>Algorithm Functional Tests</h:b><h:p/>
                  Algorithm Functional Tests are designed to verify the correct operation of the logical
                  components of the algorithm implementation under normal operation using different block sizes.
                  For AES-CBC, there are two types of AFTs:<h:p/>
                  <h:br/><h:b><h:i>Known-Answer Tests</h:i></h:b><h:p/>
                  For each combination of direction and claimed key size, the TOE must be tested using the
                  GFSBox, KeySbox, VarTxt, and VarKey test cases listed in Appendixes B through E of <h:i>The
                    Advanced Encryption Standard Algorithm Validation Suite (AESAVS)</h:i>, NIST, 15 November 2002.<h:p/>
                  <h:br/><h:b><h:i>Multi-Block Message Tests</h:i></h:b><h:p/>
                  For each combination of direction and claimed key size, the TOE must be tested against 10 test
                  cases consisting of a random IV, random key, and random plaintext/ciphertext. The
                  plaintext/ciphertext starts with a length of 16 bytes and increases by 16 bytes for each test case
                  until reaching 160 bytes.<h:p/>
                  <h:br/><h:b><h:i>Monte Carlo Tests</h:i></h:b><h:p/>
                  Monte Carlo tests are intended to test the implementation under strenuous conditions. The TOE
                  must process the test cases according to the following algorithm once for each combination of
                  direction and key size:<h:p/>
                  <h:pre>
                    Key[0] = Key
                    IV[0] = IV
                    PT[0] = PT
                    for i = 0 to 99 {
                    Output Key[i], IV[i], PT[0]
                    for j = 0 to 999 {
                    if (j == 0) {
                    CT[j] = AES-CBC-Encrypt(Key[i], IV[i], PT[j])
                    PT[j+1] = IV[i]
                    } else {
                    CT[j] = AES-CBC-Encrypt(Key[i], PT[j])
                    PT[j+1] = CT[j-1]
                    }
                    }
                    Output CT[j]
                    AES_KEY_SHUFFLE(Key, CT)
                    IV[i+1] = CT[j]
                    PT[0] = CT[j-1]
                    }
                  </h:pre><h:p/>	
                  where <h:pre>AES_KEY_SHUFFLE</h:pre> is defined as: <h:p/>
                  <h:pre>
                    If ( keylen = 128 )
                    Key[i+1] = Key[i] xor MSB(CT[j], 128)
                    If ( keylen = 192 )
                    Key[i+1] = Key[i] xor (LSB(CT[j-1], 64) || MSB(CT[j], 128))
                    If ( keylen = 256 )
                    Key[i+1] = Key[i] xor (MSB(CT[j-1], 128) || MSB(CT[j], 128))
                  </h:pre><h:p/>
                  The above pseudocode is for encryption. For decryption, swap all instances of CT and PT.<h:p/>
                  The initial IV, key, and plaintext/ciphertext should be random.<h:p/>
                  The evaluator shall test the decrypt functionality using the same test as above,
                  exchanging CT and PT, and replacing AES-CBC-Encrypt with AES-CBC-Decrypt.<h:p/>
                  
                  
                  <!-- XTS-AES -->
                  <h:br/><h:b>XTS-AES</h:b><h:p/>
                  <h:table border="1">
                    <h:tr class="header" bgcolor="#cccccc">
                      <h:td valign="top">Identifier</h:td>
                      <h:td valign="top">Cryptographic Algorithm</h:td>
                      <h:td valign="top">Cryptographic Key Sizes</h:td>
                      <h:td valign="top">List of Standards</h:td>
                    </h:tr>
                    <h:tr>
                      <h:td valign="top">XTS-AES</h:td>
                      <h:td valign="top">AES in XTS mode with unique tweak values that are consecutive
                        non-negative integers starting at an arbitrary non-negative integer</h:td>
                      <h:td valign="top">512 bits</h:td>
                      <h:td valign="top">
                        [<h:b>selection:</h:b> ISO/IEC 18033-3:2010 (Subclause 5.2),
                        FIPS PUB 197] [AES]<h:p/>
                        [<h:b>selection:</h:b> IEEE Std. 1619-2018, 
                        NIST SP 800-38E] [XTS]</h:td>
                    </h:tr>
                  </h:table><h:p/>	
                  To test the TOE’s ability to encrypt/decrypt data using AES in XTS mode, the evaluator shall
                  perform the Single Data Unit Test and the Multiple Data Unit Test using the following input
                  parameters:<h:ul>
                    <h:li>Direction [encryption, decryption]</h:li>
                    <h:li>Key size [512] bits</h:li>
                    <h:li>Tweak value format [128-bit hex string, data unit sequence number]</h:li></h:ul><h:p/>
                  <h:br/><h:b>Single Data Unit Test</h:b><h:p/>
                  For each combination of claimed key size, direction, and supported tweak value format, the
                  evaluator shall generate 50 test cases consisting of random payload data. The payload data size is
                  determined randomly for each test case from supported values within the range [128-65536] bits.
                  The payload size and data unit size must be equal.<h:p/>
                  <h:br/><h:b>Multiple Data Unit Test</h:b><h:p/>
                  For each combination of claimed key size, direction, and supported tweak value format, the
                  evaluator shall generate 50 test cases consisting of random payload data. The payload data size is
                  determined randomly for each test case from supported values within the range [128-65536] bits.
                  Likewise, the data unit size is determined randomly for each test case from supported values
                  within the range [128-65535] bits. The payload size and data unit size must not be equal.<h:p/>
                  The evaluator shall verify the correctness of the TSF’s implementation by comparing values
                  generated by the TSF with those generated by a known good implementation using the same
                  input parameters.<h:p/>
                  
                  <!-- AES-CTR -->
                  <h:br/><h:b>AES-CTR</h:b><h:p/>
                  <h:table border="1">
                    <h:tr class="header" bgcolor="#cccccc">
                      <h:td valign="top">Identifier</h:td>
                      <h:td valign="top">Cryptographic Algorithm</h:td>
                      <h:td valign="top">Cryptographic Key Sizes</h:td>
                      <h:td valign="top">List of Standards</h:td>
                    </h:tr>
                    <h:tr>
                      <h:td valign="top">AES-CTR</h:td>
                      <h:td valign="top">AES in Counter Mode with a non-repeating initial counter and
                        with no repeated use of counter values across multiple messages with the 
                        same secret key.</h:td>
                      <h:td valign="top">256 bits</h:td>
                      <h:td valign="top">
                        [<h:b>selection:</h:b> ISO/IEC 18033-3:2010 (Subclause 5.2),
                        FIPS PUB 197] [AES]<h:p/>
                        [<h:b>selection:</h:b>  ISO/IEC 10116:2017 (Clause 10), 
                        NIST SP 800-38A] [CTR]</h:td>
                    </h:tr>
                  </h:table><h:p/>	
                  To test the TOE’s ability to encrypt/decrypt data using AES in CTR mode, the evaluator shall
                  perform the Algorithm Functional Test and the Counter Test using the following input
                  parameters:<h:ul>
                    <h:li>Direction [encryption, decryption]</h:li>
                    <h:li>Key size [256] bits</h:li></h:ul><h:p/>
                  <h:br/><h:b>Algorithm Functional Tests</h:b><h:p/>
                  Algorithm Functional Tests are designed to verify the correct operation of the logical
                  components of the algorithm implementation under normal operation using different block sizes.
                  For AES-CTR, there are three types of AFTs:<h:p/>
                  <h:br/><h:b><h:i>Known-Answer Tests</h:i></h:b><h:p/>
                  For each combination of direction and claimed key size, the TOE must be tested using the
                  GFSBox, KeySbox, VarTxt, and VarKey test cases listed in Appendixes B through E of <h:i>The
                    Advanced Encryption Standard Algorithm Validation Suite (AESAVS)</h:i>, NIST, 15 November 2002.<h:p/>
                  <h:br/><h:b><h:i>Single Block Message Tests</h:i></h:b><h:p/>
                  For each combination of direction and claimed key, the evaluator shall generate 10 test cases
                  with a data size of 128 bits.<h:p/>
                  <h:br/><h:b><h:i>Partial Block Message Tests</h:i></h:b><h:p/>
                  Monte Carlo tests are intended to test the implementation under strenuous conditions. The TOE
                  must process the test cases according to the following algorithm once for each combination of
                  direction and key size:<h:p/>
                  For each combination of direction and claimed key, the evaluator shall generate five test cases
                  such that the data size is not a multiple of 128 bits.<h:p/>
                  The evaluator shall verify the correctness of the TSF’s implementation by comparing values
                  generated by the TSF with those generated by a known good implementation using the same
                  input parameters.
                  <h:br/><h:b><h:i>Counter Test</h:i></h:b><h:p/>
                  The evaluator shall generate a single message of 1000 blocks (128000 bits) and either encrypt or
                  decrypt it. Back-compute the IVs used. Verify that they are unique and increasing (encryption) or
                  decreasing (decryption).<h:p/>
                  
                </Tests>
              </aactivity>
            
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component id="sfr-fcs-cop-1-xof" cc-id="fcs_cop.1" iteration="XOF" name="Cryptographic Operation - Extendable-Output Function" status="sel-based">
          <depends on-sel="sel-fcs-ckm-ak-lms"/>
          <depends on-sel="sel-fcs-ckm-ak-xmss"/>
          <depends on-sel="sel-fcs-cop-sigver-lms"/>
          <depends on-sel="sel-fcs-cop-sigver-xmss"/>
          <f-element id="fcs-cop-1e1-xof">
            <title>
              The TSF shall perform [<h:i>extendable-output function</h:i>] in accordance with a specified cryptographic algorithm  
              <selectables>
                <tabularize id="fcs-cop-xof-sels" title="Allowable choices for FCS_COP.1/XOF">
                  <selectcol>Cryptographic Algorithm</selectcol>
                  <reqtext>and parameters</reqtext>
                  <selectcol>Parameters</selectcol>
                  <reqtext>that meet the following:</reqtext>
                  <selectcol>List of Standards</selectcol>
                  <reqtext>.<h:p/><h:p/><xref to="fcs-cop-xof-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_COP.1/XOF.</reqtext>
                </tabularize>
                
                <!-- SHAKE -->
                <selectable id="sel-fcs-cop-xof-shake">
                  <col>SHAKE</col>
                  <col>Functions = [SHAKE256]
                  </col>
                  <col>NIST FIPS PUB 202 Section 6.2 [SHAKE]</col>
                </selectable>
                
              </selectables>
            </title>
            <note role="application">
              In accordance with CNSA 2.0, SHAKE is permitted to be used only as a component of LMS or XMSS. 
              Therefore this component is claimed only if LMS or XMSS is claimed in FCS_COP.1/SigVer.
            </note>
            <aactivity>
              <TSS/>
              <Guidance/>
              <Tests>
                The following tests are conditional based on the selections made in the SFR. The evaluator
                shall perform the following tests or witness respective tests executed by the developer. The tests
                must be executed on a platform that is as close as practically possible to the operational platform
                (but which may be instrumented in terms of, for example, use of a debug mode). Where the test
                is not carried out on the TOE itself, the test platform shall be identified and the differences
                between test environment and TOE execution environment shall be described.<h:p/>
                
                <!-- SHAKE -->
                <h:br/><h:b>SHAKE</h:b><h:p/>
                <h:table border="1">
                  <h:tr class="header" bgcolor="#cccccc">
                    <h:td valign="top">Cryptographic Algorithm</h:td>
                    <h:td valign="top">Parameters</h:td>
                    <h:td valign="top">List of Standards</h:td>
                  </h:tr>
                  <h:tr>
                    <h:td valign="top">SHAKE</h:td>
                    <h:td valign="top">Function = [SHAKE256]</h:td>
                    <h:td valign="top">NIST FIPS PUB 202 Section 6.2 [SHAKE]</h:td>
                  </h:tr>
                </h:table><h:p/>	
                To test the TOE’s implementation of the SHAKE Extendable Output Function the evaluator shall
                perform the Algorithm Functional Test, Monte Carlo Test, and Variable Output Test using the
                following input parameters:<h:ul>
                  <h:li>Function [SHAKE256]</h:li>
                  <h:li>Output length [16-65536] bits</h:li></h:ul><h:p/>
                <h:br/><h:b><h:i>Algorithm Functional Test</h:i></h:b><h:p/>
                For each supported function, generate test cases consisting of random data for every message
                length from 0 bits (if supported) to <h:i>rate</h:i>-1 bits, where <h:i>rate</h:i> equals<h:p/> 1088.<h:p/>
                Additionally, generate tests cases of random data for messages of every multiple of (rate+1) bits
                starting at length rate, and continuing until 65535 is exceeded.<h:p/>
                <h:br/><h:b><h:i>Monte Carlo Test</h:i></h:b><h:p/>
                The Monte Carlo test takes in a single 128-bit message (SEED) and desired output length in
                bits, and runs 100 iterations of the chained computation. MaxOutBytes and MinOutBytes are the
                largest and smallest supported input and output sizes in bytes, respectively.<h:p/>
                <h:pre>
                  Range = maxOutBytes - minOutBytes + 1
                  OutputLen = maxOutBytes
                  For j = 0 to 99
                  MD[0] = SEED
                  For i = 1 to 1000
                  MSG[i] = 128 leftmost bits of MD[i-1]
                  if (MSG[i] &lt; 128 bits)
                  Append 0 bits on rightmost side of MSG[i] til MSG[i] is 128 bits
                  MD[i] = SHAKE(MSG[i], OutputLen * 8)
                  
                  RightmostOutputBits = 16 rightmost bits of MD[i] as an integer
                  OutputLen = minOutBytes + (RightmostOutputBits % Range)
                  Output MD[1000], OutputLen
                  SEED = MD[1000]
                </h:pre><h:p/>
                <h:br/><h:b><h:i>Variable Output Test</h:i></h:b><h:p/>
                This test measures the ability of the TOE to generate output digests of varying sizes.<h:p/>
                The evaluator shall generate 512 test cases such that the input for each test case consists of 128-
                bits of random data, and the output length includes the minimum supported value, the maximum
                supported value, and 510 random values between the minimum and maximum digest sizes
                supported by the implementation.<h:p/>
                
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FCS_HTTPS_EXT" title="HTTPS Protocol">
          <fam-behavior>This family defines requirements for implementation of the HTTPS protocol. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fcs_https_ext.1" name="HTTPS Protocol">
          
          <comp-lev> requires the TSF to implement the HTTPS protocol in accordance with the specified standard, using TLS, and notifying the application if invalid.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
          <h:ul>
            <h:li>Configuring whether to allow or disallow establishment of a trusted channel if the peer or server certificate is deemed invalid.</h:li>
          </h:ul></management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
          <h:ul>
            <h:li>Failure of the certificate validity check.</h:li>
          </h:ul></audit>
          <dependencies>
            FCS_TLS_EXT.1 TLS Protocol<h:br/>
            FIA_X509_EXT.1 X.509 Validation of Certificates
          </dependencies>
          
          
          <f-element id="fel-https-how">
            <title>The TSF shall implement the HTTPS protocol that complies with RFC 2818. </title>
          </f-element>

          <f-element id="fel-https-tls">
            <title>The TSF shall implement HTTPS using TLS as defined in [<h:i>the <xref to="tls"/></h:i>].</title>
            <ext-comp-def-title>
              <title>The TSF shall implement HTTPS using TLS as defined in 
                <assignable>specification that defines TLS implementation requirements</assignable>. </title>
            </ext-comp-def-title>
            <note role="application"> 
              The <xref to="tls"/> must be included in the ST, with the following selections made: <h:ul>
                <h:li>FCS_TLS_EXT.1:</h:li>
                <h:ul>
                  <h:li>TLS must be selected</h:li>
                  <h:li>Client must be selected</h:li>
                </h:ul>
              </h:ul>
            </note>
          </f-element>
          <f-element id="fel-conn-notify">

            <title>The TSF shall notify the application and <selectables>
                <selectable id="s-not-estab">not establish the connection</selectable>
                <selectable id="s-req-app-auth">request application authorization to establish the
                  connection</selectable>
            <selectable id="s-no-other-action" exclusive="yes">no other action</selectable></selectables> if the peer certificate is deemed invalid. </title>
	    <ext-comp-def-title><title>The TSF shall notify the application and <assignable>a response</assignable> if the peer certificate is deemed invalid.</title></ext-comp-def-title>
            
            <note role="application"> 
              <h:p>Validity is determined by the certificate path, the expiration
            date, and the revocation status in accordance with RFC 5280. 
            </h:p><h:p>
              The selection made for FCS_HTTPS_EXT.1.3 must be consistent with the claims made in FCS_TLSC_EXT.1.6 of <xref to="tls"/>, e.g. if the TLS rejects all invalid certificates with no exceptions, then "not establish the connection" will be selected here.</h:p>
              <h:p>
	    FMT_SMF_EXT.1 Function <xref to="mf-certInvalid"/> configures whether to allow or disallow the establishment of a
                trusted channel if the peer certificate is deemed invalid. </h:p></note>
            <aactivity>
              <!-- TODO: Need to fix EA and interweave FMT_SMF_EXT function certInvalid -->
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              
              <Tests>
                <testlist>
                  <test>The evaluator shall attempt to establish an HTTPS connection with a
                    webserver, observe the traffic with a packet analyzer, and verify that the
                    connection succeeds and that the traffic is identified as TLS or HTTPS.
                    <h:p/>
                    Other tests are performed in conjunction with testing in the
                    <xref to="tls"/>.</test>
                  <test>The evaluator shall demonstrate that using a certificate without a valid
                    certification path results in an application notification. Using the
                    administrative guidance, the evaluator shall then load a certificate or
                    certificates to the Trust Anchor Database needed to validate the certificate to
                    be used in the function, and demonstrate that the function succeeds. The
                    evaluator then shall delete one of the certificates, and show that the
                    application is notified of the validation failure.</test>
                </testlist>
                Certificate validity for HTTPS connections shall be tested in accordance with testing performed for FIA_X509_EXT.1 as defined in the <xref to="X509"/>.
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Failure of the certificate validity check.</audit-event-descr>
	    <audit-event-info>Issuer Name and Subject Name of certificate</audit-event-info>
	    <audit-event-info><selectables onlyone="yes"><selectable>User’s authorization decision</selectable><selectable>No additional information</selectable></selectables></audit-event-info>
	  </audit-event>
        </f-component>
        
        <ext-comp-def fam-id="FCS_IV_EXT" title="Initialization Vector Generation">
          <fam-behavior>This family defines requirements for initialization vector generation in support of key generation. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fcs_iv_ext.1" name="Initialization Vector Generation">
          
          <comp-lev> requires the TSF to generate IVs in accordance with a set of approved modes. </comp-lev>
          <management>There are no management activities foreseen.
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-ivs-how">
            <title>The TSF shall generate IVs in accordance with [<h:i><xref to="ivtable"/>:
              References and IV Requirements for NIST-approved Cipher Modes</h:i>]. </title>
            <ext-comp-def-title>
              <title>The TSF shall generate IVs in accordance with <assignable>standard or specification for IV generation</assignable>. </title>  
            </ext-comp-def-title>
            <note role="application">
              <xref to="ivtable"/> lists the requirements for composition of IVs according to
              the NIST Special Publications for each cipher mode. The composition of IVs generated
              for encryption according to a cryptographic protocol is addressed by the protocol.
              Thus, this requirement addresses only IVs generated for key storage and data storage
              encryption. </note>
            <aactivity>
              <TSS> The evaluator shall examine the key hierarchy section of the TSS to ensure that
                the encryption of all keys is described and the formation of the IVs for each key
                encrypted by the same KEK meets FCS_IV_EXT.1.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FCS_RBG_EXT" title="Random Bit Generation">
          <fam-behavior>This family defines requirements for the generation of random bits.
          </fam-behavior>
        </ext-comp-def>
    
        
        <f-component cc-id="fcs_rbg.1" name="Random Bit Generation (RBG)">
          <f-element id="fel-rbg-init-seed">
            <title>
              The TSF shall perform deterministic random bit generation services using   
              <selectables>
                <tabularize id="fcs-rbg-1-sels" title="Allowable choices for FCS_RBG.1.1">
                  <textcol>Identifier</textcol>
                  <reqtext/>
                  <selectcol>DRBG Algorithm</selectcol>
                  <reqtext> in accordance with </reqtext>
                  <selectcol>List of standards</selectcol>
                  <reqtext>after initialization.<h:p/><h:p/><xref to="fcs-rbg-1-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_RBG.1.</reqtext>
                </tabularize>
                
                <selectable id="sel-fcs-rbg-hash-drbg">
                  <col>HASH_DRBG</col>
                  <col>Hash_DRBG with <selectables>
                    <selectable>SHA-384</selectable>
                    <selectable>SHA-512</selectable>
                  </selectables></col>
                  <col><selectables>
                    <selectable>ISO/IEC 18031: 2011 (Section C.2.2)</selectable>
                    <selectable>NIST SP 800-90A Revision 1 Section 10.1.1</selectable></selectables>
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-rbg-hmac-drbg">
                  <col>HMAC_DRBG</col>
                  <col>HMAC_DRBG with  <selectables>
                    <selectable>SHA-384</selectable>
                    <selectable>SHA-512</selectable>
                  </selectables></col>
                  <col><selectables>
                    <selectable>ISO/IEC 18031: 2011 (Section C.2.3)</selectable>
                    <selectable>NIST SP 800-90A Revision 1 Section 10.1.2</selectable></selectables>
                  </col>
                </selectable>
                
                <selectable id="sel-fcs-rbg-ctr-drbg">
                  <col>CTR_DRBG</col>
                  <col>CTR_DRBG with AES-CTR-256</col>
                  <col><selectables>
                    <selectable>ISO/IEC 18031: 2011 (Section C.3.2)</selectable>
                    <selectable>NIST SP800-90A Revision 1 Section 10.2.1</selectable></selectables>
                  </col>
                </selectable>
              </selectables>           
            </title>
            <aactivity level="element">
              Documentation will be produced and the evaluator shall perform the
              activities in accordance with <xref to="entropyappendix"/> and
              the
              <h:a href="https://niap-ccevs.org/Documents_and_Guidance/ccevs/Entropy%20Documentation%20and%20Assessment%20Clarification.pdf">Clarification to the Entropy Documentation and Assessment Annex</h:a>.
              <TSS>The evaluator shall verify that the TSS identifies the DRBGs used by the TOE.</TSS>
              <Guidance>If the DRBG functionality is configurable, the evaluator shall verify that the operational guidance includes instructions on how to configure this behavior.</Guidance>
              <Tests>
                <h:p>
                  The evaluator shall perform the following tests:
                </h:p><h:p>
                  The evaluator shall perform 15 trials for the DRBG implementation. If the DRBG
                  is configurable, the evaluator shall perform 15 trials for each configuration. The
                  evaluator shall also confirm that the operational guidance contains appropriate
                  instructions for configuring the DRBG functionality.
                </h:p><h:p>
                  If the DRBG has  prediction resistance enabled, each trial consists of:<h:ol type="1">
                    <h:li>Instantiate the DRBG.</h:li>
                    <h:li>Generate a block of random bits.</h:li>
                    <h:li>Generate a second block of random bits.</h:li>
                    <h:li>Uninstantiate.</h:li>
                  </h:ol>
                  
                  The evaluator shall verify that the second block of random bits is
                  the expected value. The evaluator shall generate eight input values for each
                  trial. The first is a count (0 – 14). The next three are entropy input, nonce, and
                  personalization string for the instantiate operation. The next two are additional
                  input and entropy input for the first call to generate. The final two are
                  additional input and entropy input for the second call to generate. These values
                  are randomly generated. "generate one block of random bits" means to generate
                  random bits with number of returned bits equal to the Output Block Length (as
                  defined in NIST SP 800-90A).
                </h:p><h:p>
                  If the DRBG does not have prediction resistance, each trial consists of:<h:ol type="1">
                    <h:li>Instantiate the DRBG.</h:li>
                    <h:li>Generate a block of random bits.</h:li>
                    <h:li>Reseed.</h:li>
                    <h:li>Generate a second block of random bits.</h:li>
                    <h:li>Uninstantiate.</h:li>
                  </h:ol>
                  The evaluator shall verify that the second block of random bits is the
                  expected value. The evaluator shall generate eight input values for each trial.
                  The first is a count (0 – 14). The next three are entropy input, nonce, and
                  personalization string for the instantiate operation. The fifth value is
                  additional input to the first call to generate. The sixth and seventh are
                  additional input and entropy input to the call to reseed. The final value is
                  additional input to the second generate call.
                </h:p><h:p>
                  The following list contains more information on some of the input values to be generated/selected by the evaluator.
                  <h:ul>
                    <h:li> <h:b>Entropy input:</h:b> The length of the entropy input value must equal the seed
                      length.</h:li>
                    
                    <h:li><h:b>Nonce:</h:b> If a nonce is supported (CTR_DRBG with no Derivation Function does
                      not use a nonce), the nonce bit length is one-half the seed length. </h:li>
                    <h:li><h:b>Personalization string:</h:b> The length of the personalization string must be
                      less than or equal to seed length. If the implementation only supports one
                      personalization string length, then the same length can be used for both values.
                      If more than one string length is support, the evaluator shall use personalization
                      strings of two different lengths. If the implementation does not use a
                      personalization string, no value needs to be supplied. </h:li>
                    <h:li><h:b>Additional input:</h:b> The additional input bit lengths have the same defaults
                      and restrictions as the personalization string lengths.</h:li>
                  </h:ul>
                </h:p>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-rbg-init-seed-how">
            <title>
              The TSF shall use a <selectables>
                <selectable id="internal-seed">TSF entropy source <assignable>name of entropy source</assignable></selectable>
                <selectable id="internal-seeds"><h:b>multiple independent TSF entropy sources <assignable>names of entropy sources</assignable></h:b></selectable>
                <selectable id="external-seed">TSF interface for obtaining entropy</selectable>
              </selectables>
              for initialization and reseeding.
            </title>
            <note role="application">
              <h:p>
                Following the approach in SP800-90B/C, noise sources are required to be independent. Non-independent noise sources that share dependencies are treated as a single raw source requiring a single entropy source validation. If a TOE has multiple dependent noise sources, they should be grouped according to their dependencies for the purposes of these requirements. For the 
                selection in this requirement, the ST author selects "TSF entropy source..." if
                a single entropy source is used as input to the DRBG. The ST author selects "multiple independent TSF entropy sources..." if a seed is formed from a combination of two or more independent entropy sources within the TOE boundary. If the TSF implements two or more separate DRBGs that are seeded in separate manners, this SFR should be iterated for each DRBG. If multiple distinct entropy sources exist such that each DRBG only uses one of them, then each iteration would select "TSF entropy source..."; "multiple independent TSF entropy sources..." is only selected if a single DRBG uses multiple independent entropy sources for its seed. The ST author selects "TSF interface for obtaining entropy" if entropy source data is generated outside the TOE boundary.
              </h:p>
              <h:p>
                If "TSF entropy source..." is selected, FCS_RBG.3 must be claimed.
              </h:p>
              <h:p>
                If "multiple independent TSF entropy sources..." is selected, FCS_RBG.4 and FCS_RBG.5 must be claimed. 
              </h:p>
              <h:p>
                If "TSF interface for obtaining entropy" is selected, FCS_RBG.2 must be claimed. 
              </h:p>
            </note>
            <aactivity level="element">
              <no-tests>There are no additional EAs for this element.</no-tests>
            </aactivity>
          </f-element>
          
          <f-element id="fel-rbg-init-seed-when">
            <title>
              The TSF shall update the DRBG state by <selectables>
                <selectable>reseeding</selectable>
                <selectable>uninstantiating and reinstantiating</selectable>
              </selectables> using a <selectables>
                <selectable>TSF entropy source <assignable>name of entropy source</assignable></selectable>
                <selectable>TSF interface for obtaining entropy <assignable>name of the interface</assignable></selectable></selectables>
              in the following situations: <selectables linebreak="yes">
                <selectable>never</selectable>
                <selectable>on demand</selectable>
                <selectable>on the condition: <assignable>condition</assignable></selectable>
                <selectable>after <assignable>time</assignable></selectable>
              </selectables>
              in accordance with <assignable>list of standards</assignable>.
            </title>
            <aactivity level="element">              
              <TSS>
                The evaluator shall verify that the TSS identifies how the DRBG state is updated, and the situations under which this may occur.
              </TSS>
              <Guidance>If the ST claims that the DRBG state can be updated on demand, the evaluator shall verify that the operational guidance has instructions for how to perform this operation.</Guidance>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>    
        
        <f-component cc-id="fcs_rbg.2" name="Random Bit Generation (External Seeding)" status="sel-based">
          <depends on="external-seed"/>
          <f-element id="fe1-rbg-seed">
            <title>
              The TSF shall be able to accept a minimum input of [<h:i>384 bits of min-entropy</h:i>] from a TSF interface for obtaining entropy.
            </title>
            <note role="application">
              <h:p>
              This SFR is claimed if "TSF interface for obtaining entropy" is selected in <xref to="fel-rbg-init-seed-how"/>, i.e., the TOE's entropy source is outside the TOE boundary. In the case of a mobile device this would likely only occur when the entropy source is a Dedicated Security Component that is integrated with the TOE.
              </h:p><h:p>
               If the environmental entropy source produces full entropy, the amount of entropy data collected is equal to the amount specified in the selection. If the entropy source does not assure full entropy (i.e., the ratio of min-entropy to collected data is less than 1:1), then the TSF must collect sufficient additional entropy data and perform a derivation function on it to reduce the collected data to a seed with the claimed min-entropy. In this case, the entropy documentation is expected to identify the min-entropy rate of the source data, how much data the TSF collects, and what derivation function is performed on this collected data to ensure that it has the claimed min-entropy.
              </h:p>
              <h:p>
                One should not apply NIST SP 800-90B (or AIS-31) statistical tests against
                an external entropy source since the TSF is unable to enforce entropy requirements or conditioning
                requirements against something outside of its logical boundary. However, the TSS may include estimates for
                min-entropy from external sources that contribute to the overall entropy requirements for 
                the DRBG.
              </h:p>
            </note>
            <aactivity>
              <h:p>
                The evaluator shall examine the entropy documentation required by FCS_RBG.1 to verify that it identifies, for each DRBG function implemented by the TOE, the TSF external interface that is used to seed the TOE's DRBG. The evaluator shall verify that this includes the amount of sampled data and the min-entropy rate of the sampled data such that it can be determined that the TSF can derive a seed from it that has the claimed amount of min-entropy. If the TSF uses an entropy source that can be assumed to have full entropy, the seed is the output data from the entropy source. If the TSF uses an entropy source where the min-entropy of the data is less than 1:1, the evaluator shall verify that the entropy documentation identifies how large the collected data sample is and how TSF derives this data into a seed that has the claimed min-entropy. 
              </h:p>
              <TSS/>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_rbg.3" name="Random Bit Generation (Internal Seeding - Single Source)" status="sel-based">
          <depends on="internal-seed"/>
          <f-element id="fel-rbg-seed-int-sing">
            <title>
              The TSF shall be able to seed the DRBG using a <selectables onlyone="yes">
                <selectable>TSF software-based entropy source</selectable>
                <selectable>TSF hardware-based entropy source</selectable></selectables>  <assignable>name of entropy source</assignable>
              with [<h:i>a minimum of 384</h:i>] bits of min-entropy.
            </title>          
            <note role="application">
              <h:p>
              This SFR is claimed if "TSF entropy source..." is selected in <xref to="fel-rbg-init-seed-how"/>, i.e., the TOE has a single entropy source that is inside the TOE boundary. If the TOE obtains seed material from an environmental component, this is specified using FCS_RBG.2.
              </h:p><h:p>
               If the TSF entropy source produces full entropy, the amount of entropy data collected is equal to the amount specified in the selection. If the entropy source does not assure full entropy (i.e., the ratio of min-entropy to collected data is less than 1:1), then the TSF must collect sufficient additional entropy data and perform a derivation function on it to reduce the collected data to a seed with the claimed min-entropy. In this case, the entropy documentation is expected to identify the min-entropy rate of the source data, how much data the TSF collects, and what derivation function is performed on this collected data to ensure that it has the claimed min-entropy.
              </h:p>
              <h:p>
                One can apply NIST SP 800-90B (or AIS-31) statistical tests against internal entropy sources
                (aka raw entropy) to confirm the min-entropy of the entropy source. 
              </h:p>
            </note>
            <aactivity>
              <h:p>
                The evaluator shall examine the entropy documentation required by FCS_RBG.1 to verify that it identifies, for each DRBG function implemented by the TOE, the TSF entropy source that is used to seed the TOE's DRBG. The evaluator shall verify that this includes the amount of sampled data and the min-entropy rate of the sampled data such that it can be determined that the TSF can derive a seed from it that has the claimed amount of min-entropy. If the TSF uses an entropy source that can be assumed to have full entropy, the seed is the output data from the entropy source. If the TSF uses an entropy source where the min-entropy of the data is less than 1:1, the evaluator shall verify that the entropy documentation identifies how large the collected data sample is and how TSF derives this data into a seed that has the claimed min-entropy. 
              </h:p>
              <TSS/>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_rbg.4" name="Random Bit Generation (Internal Seeding - Multiple Sources)" status="sel-based">
          <depends on="internal-seeds"/>
          <f-element id="fel-rbg-seed-int-mult">
            <title>
              The TSF shall be able to seed the DRBG using <selectables>
                <selectable><assignable>number</assignable> independent TSF software-based entropy source(s)</selectable>
                <selectable><assignable>number</assignable> independent TSF hardware-based entropy source(s)</selectable>
              </selectables>.
            </title>
            <note role="application">
              <h:p>
                This SFR is claimed if "multiple independent TSF entropy sources..." is selected in <xref to="fel-rbg-init-seed-how"/>, i.e., the TSF performs some sort of operation to combine data from multiple distinct sources into a value that is used to derive a seed. If the TOE has only a single entropy source, this is specified using FCS_RBG.3. FCS_RBG.5 defines the mechanism by which these sources are combined to ensure sufficient minimum entropy. 
              </h:p>
            </note>
            <aactivity>
              <h:p>
                The evaluator shall examine the entropy documentation required by FCS_RBG.1 to verify that it identifies, for each DRBG function implemented by the TOE, each TSF entropy source used to seed the TOE's DRBG. 
              </h:p>
              <TSS/>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fcs_rbg.5" name="Random Bit Generation (Combining Entropy Sources)" status="sel-based">
          <depends on="internal-seeds"/>
          <f-element id="fel-rbg-comb">
            <title>
              The TSF shall <assignable>combining operation</assignable> <selectables>
                <selectable>output from TSF entropy source(s)</selectable>
                <selectable>input from TSF interface(s) for obtaining entropy</selectable></selectables>
              resulting in a minimum of [<h:i>384</h:i>] bits of min-entropy to create the entropy input into the derivation function as defined in <assignable>list of standards</assignable>.
            </title>    
            <note role="application">
              <h:p>
                This SFR is claimed if "multiple TSF entropy sources..." is selected in <xref to="fel-rbg-init-seed-how"/>, i.e., the TSF performs some sort of operation to combine data from multiple distinct sources into a value that is used to derive a seed. If the TOE has only a single entropy source, this is specified using FCS_RBG.3. 
              </h:p>
              <h:p>
                If the environmental entropy source produces full entropy, the amount of entropy data collected is equal to the amount specified in the selection. If the entropy source does not assure full entropy (i.e., the ratio of min-entropy to collected data is less than 1:1), then the TSF must collect sufficient additional entropy data and perform a derivation function on it to reduce the collected data to a seed with the claimed min-entropy. In this case, the entropy documentation is expected to identify the min-entropy rate of the source data, how much data the TSF collects, and what derivation function is performed on this collected data to ensure that it has the claimed min-entropy.
              </h:p>
              <h:p>
              One can apply NIST SP 800-90B (or AIS-31) statistical tests against internal entropy sources
              (aka raw entropy) to confirm the min-entropy of the entropy sources either in aggregate or
              individually. 
              </h:p>
            </note>
            <aactivity>
              <h:p>
                Using the entropy sources defined in FCS_RBG.4, the evaluator shall examine the entropy documentation required by FCS_RBG.1 to verify that it describes the method by which data from these sources are combined into a single seed. This should include an estimation of the rate at which each entropy source outputs data and whether this is dependent on any system-specific factors so that each source's relative contribution to the overall entropy is understood. The evaluator shall verify that the amount of sampled data, the min-entropy rate of the sampled data, and the method by which the multiple sampled data sources are combined can be used to determine that the TSF can derive a seed from it that has the claimed amount of min-entropy. This includes any description of how the TSF derives data larger than the seed value into a seed that has the claimed min-entropy.  
              </h:p>
              <TSS/>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>  
        
        <f-component cc-id="fcs_rbg.6" name="Random Bit Generation Service">
          <f-element id="fel-external-service">
            <title>
              The TSF shall provide a [<h:i>software</h:i>]
              interface to make the output, as defined in FCS_RBG.1 Random bit generation (RBG),
              available as a service to entities outside of the TOE.
            </title>        
            <aactivity>              
              <TSS>
                The evaluator shall verify that the TSS identifies the interface that the TSF makes available for calling applications to obtain DRBG output. 
              </TSS>
              <Guidance>The evaluator shall verify that the guidance documentation includes an API specification for the random bit generation service such that it is clear how a calling application is able to obtain DRBG output from the TSF.</Guidance>
              <Tests>The evaluator shall invoke the API specified by the guidance documentation to determine that the TSF provides DRBG output upon proper invocation of the API.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>    
        
        <f-component cc-id="fcs_rbg_ext.2" name="Random Bit Generator State Preservation" status="objective">
          
          
          <comp-lev> requires the TSF to save and restore the state of the DRBG when powering off and starting up.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG.1 Random Bit Generation</dependencies>
          
          <f-element id="fel-rbg-state-preserve">
            <title>The TSF shall save the state of the DRBG at power-off, and shall use
              this state as input to the DRBG at startup.</title>
            <note role="application"> The capability to add the state saved at power-off as input to
              the DRBG prevents a DRBG that is slow to gather entropy from producing the same output
              regularly and across reboots. Since there is no guarantee of the protections provided
              when the state is stored (or a requirement for any such protection), it is assumed
              that the state is 'known', and therefore cannot contribute entropy to the DRBG, but can
              introduce enough variation that the initial DRBG values are not predictable and
              exploitable. </note>
            <aactivity>
              <TSS>The evaluation activity for this requirement is captured in the DRBG documentation
                for <xref to="entropyappendix"/>. The evaluator shall verify that the documentation
                describes how the state is generated so as to be available for the next startup, how
                the state is used as input to the DRBG, and any protection measures used for the
                state while the TOE is powered off.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <f-component cc-id="fcs_rbg_ext.3" name="Support for Personalization String" status="objective">
          
          <comp-lev> requires the TSF to support a personalization string as a DRBG input parameter.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG.1 Random Bit Generation</dependencies>
          
          <f-element id="fel-rbg-person-string">
            <title>The TSF shall allow applications to add data to the DRBG using the
              Personalization String as defined in SP 800-90A. </title>
            <note role="application"> as defined in SP 800-90A, the TSF must not count data input
              from an application towards the entropy required by FCS_RBG.1. Thus, the TSF must
              not allow the only input to the DRBG seed to be from an application. </note>
            <aactivity> The evaluator shall verify that this function is included as an interface to
              the DRBG in the documentation required by <xref to="entropyappendix"/> and that the
              behavior of the DRBG following a call to this interface is described. The evaluator
              shall also verify that the documentation of the DRBG describes the conditions of use
              and possible values for the Personalization String input to the SP 800-90A specified
              DRBG. <h:br/><h:br/>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance><Tests>
                <testlist>
                  <test>The evaluator shall write, or the developer shall provide, an application
                    that adds data to the DRBG via the Personalization String. The evaluator shall
                    verify that the request succeeds.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
        
        
        <ext-comp-def fam-id="FCS_SRV_EXT" title="Cryptographic Algorithm Services">
          <fam-behavior>This family defines requirements for the ability of the TOE to make its cryptographic operations available to non-TSF components. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fcs_srv_ext.1" name="Cryptographic Algorithm Services">
          
          <comp-lev> requires the TSF to have externally-accessible cryptographic services for making algorithm functions available to applications. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation<h:br/>
            FCS_COP.1 Cryptographic Operation
          </dependencies>
          
          
          <f-element id="fel-crypt-service">
            <title>The TSF shall provide a mechanism for applications to request the TSF to perform
              the following cryptographic operations: [<h:i><h:ul>
                <h:li>AEAD: <assignable>one or more AEAD algorithms</assignable> as claimed in FCS_COP.1/AEAD</h:li>
                <h:li>Hash: <assignable>one or more hash algorithms</assignable> as claimed in FCS_COP.1/Hash</h:li>
                <h:li>HMAC: <assignable>one or more HMAC algorithms</assignable> as claimed in FCS_COP.1/KeyedHash</h:li>
                <h:li>Digital signature:<assignable>one or more digital signature generation or verification algorithms</assignable> as claimed in FCS_COP.1/SigGen or FCS_COP.1/SigVer</h:li></h:ul>
                and <selectables linebreak="yes">
                  <selectable>Asymmetric key generation: <assignable>one or more key generation algorithms</assignable> as claimed in FCS_CKM.1/AKG</selectable>
                  <selectable>Key agreement: <assignable>one or more key agreement algorithms</assignable> as claimed in FCS_CKM_EXT.7/UNLOCKED</selectable>
                  <selectable>Key encapsulation: <assignable>one or more key encapsulation algorithms</assignable> as claimed in FCS_COP.1/KeyEncap</selectable>
                  <selectable>Key wrapping: <assignable>one or more key wrap algorithms</assignable> as claimed in FCS_COP.1/KeyWrap</selectable>
                  <selectable>Symmetric encryption: <assignable>one or more symmetric encryption algorithms</assignable> as claimed in FCS_COP.1/SKC</selectable>
                  <selectable>no other cryptographic operations</selectable>
                </selectables></h:i>].
                  
            </title>
            <ext-comp-def-title>
              <title>The TSF shall provide a mechanism for applications to request the TSF to perform
                the following cryptographic operations: <assignable>cryptographic functions</assignable>.
              </title>
            </ext-comp-def-title>
            <note role="application"> 
              <h:p>
                A conformant TOE is required to provide to provide an interface for third-party applications to invoke AEAD, hash, HMAC, and digital signature functions. The functions made available by the TSF may be a subset of those functions claimed; for example, if the TOE claims both CCM and GCM modes in FCS_COP.1/AEAD but CCM is only implemented in hardware for the purpose of Bluetooth, it is sufficient to offer only GCM. The TSF is not required to provide algorithm services for the selectable algorithms, but they should be included within the TOE boundary if supported.
              </h:p><h:p>
                  The TSF must also provide a service for generation of symmetric keys as defined in FCS_CKM.1/SKC. However, since this PP specifies "direct generation from a random bit generator" as the only mechanism for doing this, it is not necessary to list that service here because FCS_RBG.6 already requires the TSF to make the output of its DRBG available to third parties. There is no extra step to generate a symmetric key from random bits; the random bits themselves are the key.
                </h:p>
            </note>
            <aactivity>
              <TSS>The evaluation shall verify that the TSS (or other product documentation) includes the security functions (cryptographic algorithms)
                described in these requirements.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall write, or the developer shall provide access to, an
                application that requests cryptographic operations by the TSF. The evaluator shall
                verify that the results from the operation match the expected results according to
                the API documentation. This application may be used to assist in verifying the
                cryptographic operation Evaluation Activities for the other algorithm services
                requirements. </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fcs_srv_ext.2" name="Cryptographic Key Storage Services" status="objective">
          
          <comp-lev> requires the TSF to support its stored keys being usable by external applications through cryptographic algorithm services. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>
            FCS_COP.1 Cryptographic Operation
          </dependencies>
          
          <f-element id="fel-crypt-service-extra">
            <title>The TSF shall provide a mechanism for applications to request the TSF to perform
              the following cryptographic operations: <selectables linebreak="yes">
                <selectable>Algorithms in FCS_COP.1/AEAD</selectable>
                <selectable>Algorithms in FCS_COP.1/KeyWrap</selectable>
                <selectable>Algorithms in FCS_COP.1/SigGen</selectable>
                <selectable>Algorithms in FCS_COP.1/SigVer</selectable>
                <selectable>Algorithms in FCS_COP.1/SKC</selectable>
              </selectables> by keys stored in the secure key storage.</title>
            <ext-comp-def-title>
              <title>The TSF shall provide a mechanism for applications to request the TSF to perform
                the following cryptographic operations: 
                <assignable>cryptographic operations defined by the TSF in FCS_COP.1</assignable>
                by keys stored in the secure key storage. </title>
            </ext-comp-def-title>
            <note role="application">The TOE will, therefore, be required to perform cryptographic
              operations on behalf of applications using the keys stored in the TOE’s secure key
              storage. </note>
            <aactivity> The evaluator shall verify that the API documentation for the secure key
              storage includes the cryptographic operations by the stored keys. <h:br/><h:br/>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall write, or the developer shall provide access to, an
                application that requests cryptographic operations of stored keys by the TSF. The
                evaluator shall verify that the results from the operation match the expected
                results according to the API documentation. The evaluator shall use these APIs to
                test the functionality of the secure key storage according to the Evaluation
                Activities in FCS_STG_EXT.1. </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FCS_STG_EXT" title="Cryptographic Key Storage">
          <fam-behavior>This family defines requirements for the implementation of secure key storage with access control, confidentiality, and integrity protections. 
          </fam-behavior>
        </ext-comp-def>
      
          <!--   <h:div class="comp">
          <h:h3>FCS_STG Cryptographic Storage</h:h3>
          <h:p class="comp"> 
            The following requirements describe how keys are protected. All keys
            must ultimately be protected by a REK, and may optionally be protected by the user’s
            authentication factor. Each key’s confidentiality and integrity must be protected. This
            section also describes the secure key storage services to be provided by the Mobile
            Device for use by applications and users, applying the same level of protection for
            these keys as keys internal to the OS. </h:p>
        </h:div>-->
                
          <f-component cc-id="fcs_stg_ext.1" name="Cryptographic Key Storage">
            
            <comp-lev> requires the TSF to implement a secure key storage and defines the access restrictions to be enforced on this. </comp-lev>
            <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Importing keys or secrets into the secure key storage.</h:li>
              <h:li>Destroying imported keys or secrets in the secure key storage.</h:li>
              <h:li>Approving exceptions for shared use of keys or secrets by multiple applications.</h:li>
              <h:li>Approving exceptions for destruction of keys or secrets by applications that did not import the key or secret</h:li>
            </h:ul>
            </management>
            <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
              in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Import or destruction of key.</h:li>
              <h:li>Exceptions to use and destruction rules.</h:li>
            </h:ul>
            </audit>
            <dependencies>
              [FCS_CKM.1 Cryptographic Key Generation, or<h:br/>
              FDP_ITC.1 Import of User Data without Security Attributes, or<h:br/>
              FDP_ITC.2 Import of User Data with Security Attributes]<h:br/>
              FMT_SMF.1 Specification of Management Functions<h:br/>
              FMT_SMR.1 Security Roles
            </dependencies>
            
            <!--fcs_stg_ext.1.1 -->
            <f-element id="fel-key-store">
              <title>The TSF shall provide <selectables>
                <selectable id="mutable-hardware">mutable hardware</selectable>
                <selectable id="s-software-store">software-based</selectable>
              </selectables> secure key storage for asymmetric private keys and <selectables>
                <selectable>symmetric keys</selectable>
                <selectable>persistent secrets</selectable>
                <selectable exclusive="yes">no other keys</selectable>
              </selectables>.</title>
	      <ext-comp-def-title>
		<title>The TSF shall provide
		<assignable>storage medium</assignable>
		secure key storage for asymmetric private keys and
		<assignable>list of secrets</assignable>
		.</title>
	      </ext-comp-def-title>
	      
              <note role="application">A hardware keystore can be exposed to the TSF through a variety
                of interfaces, including embedded on the motherboard, USB, microSD, and Bluetooth.
                <h:br/><h:br/> Immutable hardware is considered outside of this requirement and
                will be covered elsewhere. <h:br/><h:br/>
		
		If the secure key storage is implemented
                in software that is protected as required by FCS_STG_EXT.2, the ST author must select
                <xref to="s-software-store"/>.
		If <xref to="s-software-store"/> is selected,
		the ST author must select <xref to="s-all-software-key-store"/> in FCS_STG_EXT.2.1.
           <!--     
		<rule id="r-store">
		  <if><ref-id>s-software-store</ref-id></if>
		  <then><ref-id>s-all-software-key-store</ref-id></then>
		</rule>
		<h:br/><h:br/>
-->
		Support for secure
                key storage for all symmetric keys and persistent secrets will be required in future
                revisions. </note>
            </f-element>
            <!--fcs_stg_ext.1.2 -->
            <f-element id="fel-key-import">
              <title>The TSF shall be capable of importing keys or secrets into the secure key storage
                upon request of <selectables>
                  <selectable id="import-user">the user</selectable>
                  <selectable id="s-import-admin">the administrator</selectable>
                </selectables> and <selectables>
                  <selectable>applications running on the TSF</selectable>
                  <selectable exclusive="yes">no other subjects</selectable>
              </selectables>. </title>
	      <ext-comp-def-title>
              <title>The TSF shall be capable of importing keys or secrets into the secure key storage
                upon request of <assignable>list of users</assignable> and <assignable>list of other subjects</assignable>. </title>
	      </ext-comp-def-title>
              <note role="application"> If the ST selects only <xref to="import-user"/>, the ST author must select function <xref to="mf-keyStorage"/> in FMT_MOF_EXT.1.1. </note>
            </f-element>
            <!--fcs_stg_ext.1.3 -->
            <f-element id="fel-keystore-kill">
              <title>The TSF shall be capable of destroying keys or secrets in the secure key storage
                upon request of <selectables>
                  <selectable>the user</selectable>
                  <selectable>the administrator</selectable>
                </selectables>. </title>
              <note role="application">If the ST selects <xref to="import-user"/>, the ST author must select function <xref to="mf-keyWipe"/> in FMT_MOF_EXT.1.1. </note>
            </f-element>
            <!--fcs_stg_ext.1.4 -->
            <f-element id="fel-keystore-who-access">
              <title>The TSF shall have the capability to allow only the application that imported the
                key or secret the use of the key or secret. Exceptions may only be explicitly authorized by <selectables>
                  <selectable>the user</selectable>
                  <selectable>the administrator</selectable>
                  <selectable>a common application developer</selectable>
                </selectables>. </title>
              <note role="application">If the ST selects <xref to="import-user"/> or <xref to="s-import-admin"/>,
				the ST author must also select <xref to="mf-sharedKeys"/> in FMT_SMF_EXT.1.1.
				If the ST selects <xref to="import-user"/>, the ST author must select function <xref to="mf-sharedKeys"/> in FMT_MOF_EXT.1.1.
			  </note>
            </f-element>
            <!--fcs_stg_ext.5. -->
            <f-element id="fel-keystore-who-kill">
              <title>The TSF shall allow only the application that imported the key or secret to request
                that the key or secret be destroyed. Exceptions may only be explicitly authorized by <selectables>
                  <selectable id="s-killkey-user">the user</selectable>
                  <selectable id="s-killkey-admin">the administrator</selectable>
                  <selectable>a common application developer</selectable>
              </selectables>. </title>
	      <ext-comp-def-title>
		<title>The TSF shall allow only the application that imported the key or secret to request
                that the key or secret be destroyed. Exceptions may only be explicitly authorized by
		<assignable>list of subjects</assignable>.</title>
	      </ext-comp-def-title>

              <note role="application">If the ST selects <xref to="s-killkey-user"/> or <xref to="s-killkey-admin"/>,
				the ST author must also select function <xref to="mf-keyWipeRules"/> in FMT_SMF_EXT.1.1.
				If the ST selects only <xref to="s-killkey-user"/>, 
				the ST author must select function <xref to="mf-keyWipeRules"/> in FMT_MOF_EXT.1.1. </note>
              <aactivity>
                <TSS>
                  The evaluator shall verify that the API documentation provided in the TSS (or other documentation) includes the security functions (import, use, and
                  destruction) described in these requirements. The API documentation shall include the
                  method by which applications restrict access to their keys or secrets in order to meet
                  FCS_STG_EXT.1.4.
                  <h:p/>
                  The evaluator shall review the TSS to determine that the TOE implements the
                  required secure key storage. The evaluator shall ensure that the TSS contains a
                  description of the key storage mechanism that justifies the selection of "mutable
                  hardware" or "software-based". <h:br/><h:br/>
                </TSS>
                <Guidance> The evaluator shall review the AGD guidance to determine that it describes
                  the steps needed to import or destroy keys or secrets.<h:br/><h:br/>
                </Guidance>
                <Tests> The evaluator shall test the functionality of each security function: <testlist>
                  <test>The evaluator shall import keys or secrets of each supported type according to
                    the AGD guidance. The evaluator shall write, or the developer shall provide
                    access to, an application that generates a key or secret of each supported type and
                    calls the import functions. The evaluator shall verify that no errors occur
                    during import.</test><h:br/>
                  <test>The evaluator shall write, or the developer shall provide access to, an
                    application that uses an imported key or secret: <h:br/>
                    <h:ul>
                      <h:li>For RSA, the secret shall be used to sign data.</h:li>
                      <h:li>For ECDSA, the secret shall be used to sign data.</h:li>
                    </h:ul>
                    <h:br/> In the future additional types will be required to be tested: <h:br/>
                    <h:ul>
                      <h:li>For symmetric algorithms, the secret shall be used to encrypt
                        data.</h:li>
                      <h:li>For persistent secrets, the secret shall be compared to the imported
                        secret. </h:li>
                    </h:ul>
                    <h:br/> The evaluator shall repeat this test with the application-imported
                    keys or secrets and a different application’s imported keys or secrets. The evaluator
                    shall verify that the TOE requires approval before allowing the application to
                    use the key or secret imported by the user or by a different application: <h:br/>
                    <h:ul>
                      <h:li>The evaluator shall deny the approvals to verify that the application
                        is not able to use the key or secret as described. </h:li>
                      <h:li>The evaluator shall repeat the test, allowing the approvals to verify
                        that the application is able to use the key or secret as described.</h:li>
                    </h:ul>
                    <h:br/> If the ST author has selected "common application developer", this
                    test is performed by either using applications from different developers or
                    appropriately (according to API documentation) not authorizing sharing.
                  </test><h:br/>
                  <test>The evaluator shall destroy keys or secrets of each supported type according to
                    the AGD guidance. The evaluator shall write, or the developer shall provide
                    access to, an application that destroys an imported key or secret.
                    <h:br/><h:br/> The evaluator shall repeat this test with the
                    application-imported keys or secrets and a different application’s imported
                    keys or secrets. The evaluator shall verify that the TOE requires approval before
                    allowing the application to destroy the key or secret imported by the administrator
                    or by a different application: <h:br/><h:br/>
                    <h:ul>
                      <h:li>The evaluator shall deny the approvals and verify that the application
                        is still able to use the key or secret as described. </h:li>
                      <h:li>The evaluator shall repeat the test, allowing the approvals and
                        verifying that the application is no longer able to use the key or secret as
                        described.</h:li>
                    </h:ul>
                    <h:br/> If the ST author has selected "common application developer", this
                    test is performed by either using applications from different developers or
                    appropriately (according to API documentation) not authorizing sharing. </test>
                </testlist>
                </Tests>
              </aactivity>
            </f-element>
	    <audit-event>
	      <audit-event-descr>Import or destruction of key</audit-event-descr>
	      <audit-event-info><h:ul>
	        <h:li>Identity of key</h:li>
	        <h:li>Role and identity of requester</h:li>
	      </h:ul></audit-event-info>
	    </audit-event>
	    <audit-event>
	      <audit-event-descr><selectables onlyone="yes"><selectable>Exceptions to use and destruction rules</selectable><selectable>None</selectable></selectables></audit-event-descr>
	      <audit-event-info><h:ul>
	        <h:li>Identity of key</h:li>
	        <h:li>Role and identity of requester</h:li>
	      </h:ul></audit-event-info>
	    </audit-event>
	    

	    
          </f-component>
          <f-component cc-id="fcs_stg_ext.2" name="Encrypted Cryptographic Key Storage">
            
            <comp-lev> requires the TSF to implement confidentiality measures to protect the key storage.</comp-lev>
            <management>There are no management activities foreseen.
            </management>
            <audit>There are no auditable events foreseen.
            </audit>
            <dependencies>
              FCS_CKM_EXT.3 Cryptographic Key Generation<h:br/>
              FCS_COP.1 Cryptographic Operation<h:br/>
              FCS_STG_EXT.1 Cryptographic Key Storage
            </dependencies>
            
            <f-element id="fel-encrypt-key-what">
              <title>The TSF shall encrypt all DEKs, KEKs, <assignable>any long-term trusted channel
                key material</assignable> and <selectables>
                  <selectable id="s-all-software-key-store">all software-based key storage</selectable>
                  <selectable exclusive="yes">no other keys</selectable>
                </selectables> by KEKs that are <selectables linebreak="yes">
                  <selectable>Protected by the REK with <selectables linebreak="yes">
                    <selectable>encryption by a REK</selectable>
                    <selectable>encryption by a KEK chaining from a REK</selectable>
                    <selectable>encryption by a KEK that is derived from a REK</selectable>
                  </selectables>
                  </selectable>
                  <selectable>Protected by the REK and the password with <selectables linebreak="yes">
                    <selectable>encryption by a REK and the password-derived KEK</selectable>
                    <selectable>encryption by a KEK chaining to a REK and the password-derived or
                      biometric-unlocked KEK</selectable>
                    <selectable>encryption by a KEK that is derived from a REK and the
                      password-derived or biometric-unlocked KEK</selectable>
                  </selectables>
                  </selectable>
              </selectables>.</title>
	      <ext-comp-def-title><title>
		The TSF shall encrypt all DEKs, KEKs, <assignable>any long-term trusted channel
                key material</assignable> and
		<assignable>other secrets </assignable>
		by KEKs that are 
		<assignable>protection mechanism</assignable>.
	      </title></ext-comp-def-title>
		<note role="application">The ST author must select <xref to="s-all-software-key-store"/>
		if <xref to="s-software-store"/> is selected in FCS_STG_EXT.1.1.
		If the ST author selects <xref to="mutable-hardware"/> in FCS_STG_EXT.1.1,
		the secure key storage is not subject to this requirement.
		REKs are not subject to this requirement. <h:br/><h:br/> 
                A REK and
                the password-derived KEK may be combined to form a combined KEK (as described in
                FCS_CKM_EXT.3) in order to meet this requirement. <h:br/><h:br/> 
                Software-based key storage must be protected by the password or biometric and
                REK. <h:br/><h:br/> 
                All keys must ultimately be protected by a REK.  In particular, <xref to="Keys"/> has KEKs protected according to these requirements: DEK_1 meets the
                "encryption by a REK and the password-derived KEK" case
                and would be appropriate for sensitive data, DEK_2 meets the "encryption by a KEK chaining from a REK" case and would not be
                appropriate for sensitive data, K_1 meets the "encryption by a REK" case and is not considered a sensitive key,
                and K_2 meets the "encryption by a KEK chaining to a REK and the password-derived or biometric-unlocked KEK" case and is considered a sensitive key. <h:br/><h:br/> Long-term
                trusted channel key material includes Wi-Fi (PSKs), IPsec (PSKs and client
                certificates) and Bluetooth keys. These keys must not be protected by the password,
                as they may be necessary in the locked state. For clarity, the ST author must assign
                any Long-term trusted channel key material supported by the TOE. At a minimum, a TOE
                must support at least Wi-Fi and Bluetooth keys.</note>
              <aactivity level="component">
                <TSS>The evaluator shall review the TSS to determine that the TSS includes key
                  hierarchy description of the protection of each DEK for data-at-rest, of
                  software-based key storage, of long-term trusted channel keys, and of KEK related to
                  the protection of the DEKs, long-term trusted channel keys, and software-based key
                  storage. This description must include a diagram illustrating the key hierarchy
                  implemented by the TOE in order to demonstrate that the implementation meets
                  FCS_STG_EXT.2. The description shall indicate how the functionality described by
                  FCS_RBG.1 is invoked to generate DEKs (FCS_CKM_EXT.2), the key size
                  (FCS_CKM_EXT.2 and FCS_CKM_EXT.3) for each key, how each KEK is formed (generated,
                  derived, or combined as defined in FCS_CKM_EXT.3), the integrity protection method
                  for each encrypted key (FCS_STG_EXT.3), and the IV generation for each key encrypted
                  by the same KEK (FCS_IV_EXT.1). More detail for each task follows the corresponding
                  requirement.<h:br/>
                  <h:br/> The evaluator shall also ensure that the documentation of the product's encryption key
                  management is detailed enough that, after reading, the product's key management hierarchy is clear 
                  and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure
                  that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as 
                  separate proprietary evidence rather than being included in the TSS.<h:br/><h:br/>
                  The evaluator shall examine the key hierarchy description in the TSS section to
                  verify that each DEK and software-stored key is encrypted as defined in 
                  FCS_STG_EXT.2.<h:br/><h:br/>
                </TSS>
                <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
                <Tests>There are no test evaluation activities for this component.</Tests>
              </aactivity>
            </f-element>
            <f-element id="fel-encrypt-key-how">
              <title>DEKs, KEKs, <assignable>any long-term trusted channel key material</assignable>
                and <selectables>
                  <selectable>all software-based key storage</selectable>
                  <selectable exclusive="yes">no other keys</selectable>
                </selectables> shall be encrypted using one of the following methods: <selectables>
                  <selectable>using a SP800-56B key establishment scheme</selectable>
                  <selectable>using AES in the following modes: <selectables>
                    <selectable>Key Wrap (KW) as defined in FCS_COP.1/KeyWrap</selectable>
                    <selectable>Key Wrap with Padding (KWP) as defined in FCS_COP.1/KeyWrap</selectable>
                    <selectable>GCM as defined in FCS_COP.1/AEAD</selectable>
                    <selectable>CCM as defined in FCS_COP.1/AEAD</selectable>
                    <selectable>CBC as defined in FCS_COP.1/SKC</selectable>
                  </selectables></selectable>
                </selectables>.</title>
              <ext-comp-def-title>
                  <title>DEKs, KEKs, <assignable>any long-term trusted channel key material</assignable>
                    and <selectables>
                      <selectable>all software-based key storage</selectable>
                      <selectable exclusive="yes">no other keys</selectable>
                    </selectables> shall be encrypted using one of the following methods: <assignable>key encryption method</assignable>
                </title>
              </ext-comp-def-title>
              <note role="application">The ST author selects which key encryption schemes are used by
                the TOE. This requirement refers only to KEKs as defined this PP and does not refer to
                those KEKs specified in other standards. The ST author must assign the same Long-term
                trusted channel key material assigned in FCS_STG_EXT.2.1.</note>
            </f-element>
	    <audit-event/>
          </f-component>
          <f-component cc-id="fcs_stg_ext.3" name="Integrity of Encrypted Key Storage">
            
            <comp-lev> requires the TSF to implement integrity measures to protect the key storage.</comp-lev>
            <management>There are no management activities foreseen.
            </management>
            <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
              in the PP, PP-Module, functional package or ST:
              <h:ul>
                <h:li>Failure to verify the integrity of stored key.</h:li>
              </h:ul>
            </audit>
            <dependencies>
              FCS_COP.1 Cryptographic Operation<h:br/>
              FCS_STG_EXT.2 Encrypted Cryptographic Key Storage
            </dependencies>
            
            <f-element id="fel-protect-key-what">
              <title>The TSF shall protect the integrity of any encrypted DEKs and KEKs and <selectables>
                <selectable>long-term trusted channel key material</selectable>
                <selectable>all software-based key storage</selectable>
                <selectable exclusive="yes">no other keys</selectable>
              </selectables> by <selectables linebreak="yes">
                <selectable><selectables>
                  <selectable>GCM as defined in FCS_COP.1/AEAD</selectable>
                  <selectable>CCM as defined in FCS_COP.1/AEAD</selectable>
                  <selectable>Key Wrap as defined in FCS_COP.1/KeyWrap</selectable>
                  <selectable>Key Wrap with Padding as defined in FCS_COP.1/KeyWrap</selectable>
                </selectables> cipher mode for encryption as defined in FCS_STG_EXT.2</selectable>
                <selectable>a hash (FCS_COP.1<h:b>/Hash</h:b>) of the stored key that is encrypted by a key
                  protected by FCS_STG_EXT.2</selectable>
                <selectable>a keyed hash (FCS_COP.1<h:b>/KeyedHash</h:b>) using a key protected by a key
                  protected by FCS_STG_EXT.2</selectable>
                <selectable>a digital signature of the stored key using an asymmetric key protected
                  as defined in FCS_STG_EXT.2</selectable>
                <selectable>an immediate application of the key for decrypting the protected data
                  followed by a successful verification of the decrypted data with previously known
                  information</selectable>
              </selectables>. </title>
              
              <ext-comp-def-title>
                <title>The TSF shall protect the integrity of any encrypted DEKs and KEKs and <selectables>
                  <selectable>long-term trusted channel key material</selectable>
                  <selectable>all software-based key storage</selectable>
                  <selectable exclusive="yes">no other keys</selectable>
                </selectables> by <selectables linebreak="yes">
                  <selectable><assignable>AES algorithm</assignable>
                   cipher mode for encryption as defined in FCS_STG_EXT.2</selectable>
                  <selectable>a hash (FCS_COP.1) of the stored key that is encrypted by a key
                    protected by FCS_STG_EXT.2</selectable>
                  <selectable>a keyed hash (FCS_COP.1) using a key protected by a key
                    protected by FCS_STG_EXT.2</selectable>
                  <selectable>a digital signature of the stored key using an asymmetric key protected
                    as defined in FCS_STG_EXT.2</selectable>
                  <selectable>an immediate application of the key for decrypting the protected data
                    followed by a successful verification of the decrypted data with previously known
                    information</selectable>
                </selectables>. </title>
              </ext-comp-def-title>
              
              <note role="application">The ST author must assign the same Long-term trusted channel
                key material assigned in FCS_STG_EXT.2.1.</note>
            </f-element>
            <f-element id="fel-integrity-key-how">
              <title>The TSF shall verify the integrity of the <selectables>
                <selectable>hash</selectable>
                <selectable>digital signature</selectable>
                <selectable>MAC</selectable>
              </selectables> of the stored key prior to use of the key. </title>
              <note role="application">This requirement is not applicable to derived keys that are not
                stored. It is not expected that a single key will be protected from corruption by
                multiple of these methods; however, a product may use one integrity-protection method
                for one type of key and a different method for other types of keys. The explicit
                Evaluation Activities for each of the options will be addressed in each of the
                requirements (FCS_COP.1.1/Hash, FCS_COP.1.1/KeyedHash). <h:br/><h:br/> Key Wrapping
                must be implemented per SP800-38F.</note>
              <aactivity>
                <TSS>The evaluator shall examine the key hierarchy description in the TSS section to
                  verify that each encrypted key is integrity protected according to one of the
                  options in FCS_STG_EXT.3.<h:br/>
                  <h:br/> The evaluator shall also ensure that the documentation of the product's encryption key
                  management is detailed enough that, after reading, the product's key management hierarchy is clear 
                  and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure
                  that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as 
                  separate proprietary evidence rather than being included in the TSS.<h:br/><h:br/>
                </TSS>
                <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
                <Tests>There are no test evaluation activities for this component.</Tests>
              </aactivity>
            </f-element>
	    <audit-event>
	      <audit-event-descr>Failure to verify integrity of stored key</audit-event-descr>
	      <audit-event-info>Identity of key being verified</audit-event-info>
	    </audit-event>
          </f-component>
      </sec:fcs> 
      
	<sec:fdp title="Class FDP: User Data Protection">
	  <h:p>
	    A subset of the User Data Protection focuses on protecting Data-At-Rest, namely FDP_DAR_EXT.1 and FDP_DAR_EXT.2.
            Three levels of data-at-rest protection are addressed: TSF data, protected data (and keys), and sensitive data.
	    <xref to="datalevels"/> addresses the level of protection required for each level of data-at-rest.
	  </h:p>
          <h:b><ctr id="datalevels" ctr-type="Table">: Protection of Data Levels</ctr></h:b>
          <h:br/><h:br/>
          <h:table>
            <h:tr class="header"><h:td>Data Level</h:td><h:td>Protection Required</h:td></h:tr>
           <h:tr><h:td>TSF Data</h:td><h:td>TSF data does not require confidentiality, but does require integrity protection. (FPT_TST_EXT.2/PREKERNEL)</h:td></h:tr>
            <h:tr><h:td>Protected Data</h:td><h:td>Protected data is encrypted while powered off. (FDP_DAR_EXT.1)</h:td></h:tr>
            <h:tr><h:td>Sensitive Data</h:td><h:td>Sensitive data is encrypted while in the locked state, in addition to while powered off. (FDP_DAR_EXT.2)</h:td></h:tr>
          </h:table>
          <h:br/> 
          All keys, protected data, and sensitive data must ultimately be protected by the REK. Sensitive data must be protected by the password in addition to the REK. In particular, <xref to="Keys"/> has KEKs protected according to these requirements: DEK_1 would be appropriate for sensitive data, DEK_2 would not be appropriate for sensitive data, K_1 is not considered a sensitive key, and K_2 is considered a sensitive key. <h:br/><h:br/> 
          These requirements include a capability for encrypting sensitive data received while in the locked state, which may be considered a separate sub-category of sensitive data. This capability may be met by a key transport scheme (RSA) by using a public key to encrypt the DEK while protecting the corresponding private key with a password-derived or biometric-unlocked KEK. <h:br/><h:br/> 
          This capability may also be met by a key agreement scheme. To do so, the device generates a device-wide sensitive data asymmetric pair (the private key of which is protected by a password-derived or biometric-unlocked KEK) and an asymmetric pair for the received sensitive data to be stored. In order to store the sensitive data, the device-wide public key and data private key are used to generate a shared secret, which can be used as a KEK or a DEK. The data private key and shared secret are cleared after the data is encrypted and the data public key stored. Thus, no key material is available in the locked state to decrypt the newly stored data. Upon unlock, the device-wide private key is decrypted and is used with each data public key to regenerate the shared secret and decrypt the stored data.
	  <xref to="KeysLocked"/>, below, illustrates this scheme. <h:br/><h:br/>
          <figure id="KeysLocked" entity="images/figure4.jpg" title="Key Agreement Scheme for Encrypting Received Sensitive Data in the Locked State"/>
          <h:br/><h:br/>


	  <ext-comp-def fam-id="FDP_ACF_EXT" title="Access Control Functions">
	    <fam-behavior>This family defines the rules for access control functions that are not addressed by the FDP_ACF family in CC Part 2.
	    </fam-behavior>
	  </ext-comp-def>
	  

	<f-component cc-id="fdp_acf_ext.1" name="Access Control for System Services">
	  
	  <comp-lev> requires the TSF to be able to control access to its own services.</comp-lev>
	  <management>The following actions could be considered for the management functions in FMT:
	  <h:ul>
	    <h:li>Placing applications into application groups based on enterprise configuration settings.</h:li>
	    <h:li>Enabling/disabling location services.</h:li>
	    <h:li>Enabling/disabling data signaling over externally-accessible hardware ports.</h:li>
	  </h:ul>
	  </management>
	  <audit>There are no auditable events foreseen.</audit>
	  <dependencies>FMT_SMR.1 Security Roles</dependencies>
	  
	  
          <f-element id="fel-restrict-sys-service">
            <title>The TSF shall provide a mechanism to restrict the system services that are
              accessible to an application. </title>
            <note role="application">Examples of system services to which this requirement applies
              include: <h:br/><h:br/>
              <h:ul>
                <h:li>Obtain data from camera and microphone input devices</h:li>
                <h:li>Obtain current device location</h:li>
                <h:li>Retrieve credentials from system-wide credential store</h:li>
                <h:li>Retrieve contacts list / address book</h:li>
                <h:li>Retrieve stored pictures</h:li>
                <h:li>Retrieve text messages</h:li>
                <h:li>Retrieve emails</h:li>
                <h:li>Retrieve device identifier information</h:li>
                <h:li>Obtain network access</h:li>
              </h:ul>
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall ensure the TSS lists all system services available for use by
                an application. The evaluator shall also ensure that the TSS describes how
                applications interface with these system services, and means by which these system
                services are protected by the TSF. <h:br/><h:br/> The TSS shall describe which
                of the following categories each system service falls in:<h:br/>
                <h:ol>
                  <h:li>No applications are allowed access</h:li>
                  <h:li>Privileged applications are allowed access</h:li>
                  <h:li>Applications are allowed access by user authorization</h:li>
                  <h:li>All applications are allowed access</h:li>
                </h:ol> Privileged applications include any applications developed by the TSF
                developer. The TSS shall describe how privileges are granted to third-party
                applications. For both types of privileged applications, the TSS shall describe how
                and when the privileges are verified and how the TSF prevents unprivileged
                applications from accessing those services. <h:br/><h:br/> For any services for
                which the user may grant access, the evaluator shall ensure that the TSS identifies
                whether the user is prompted for authorization when the application is installed, or
                during runtime. The evaluator shall ensure that the operational user guidance
                contains instructions for restricting application access to system services.
                <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following tests require the vendor to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. <h:br/><h:br/> The
                evaluator shall write, or the developer shall provide, applications for the purposes
                of the following tests. <h:br/><h:br/>
                <testlist>
                  <test>For each system service to which no applications are allowed access, the
                    evaluator shall attempt to access the system service with a test application and
                    verify that the application is not able to access that system service.</test>
                  <test>For each system service to which only privileged applications are allowed
                    access, the evaluator shall attempt to access the system service with an
                    unprivileged application and verify that the application is not able to access
                    that system service. The evaluator shall attempt to access the system service
                    with a privileged application and verify that the application can access the
                    service.</test>
                  <test>For each system service to which the user may grant access, the evaluator
                    shall attempt to access the system service with a test application. The
                    evaluator shall ensure that either the system blocks such accesses or prompts
                    for user authorization. The prompt for user authorization may occur at runtime
                    or at installation time, and should be consistent with the behavior described in
                    the TSS. </test>
                  <test>For each system service listed in the TSS that is accessible by all
                    applications, the evaluator shall test that an application can access that
                    system service.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-acp">
            <title>The TSF shall provide an access control policy that prevents <selectables>
                <selectable id="s-fdp-app">application</selectable>
                <selectable id="fdp_group">groups of applications</selectable>
              </selectables> from accessing <selectables>
                <selectable>all</selectable>
                <selectable id="s-private">private</selectable>
              </selectables> data stored by other <selectables>
                <selectable>application</selectable>
                <selectable>groups of applications</selectable>
              </selectables>. Exceptions may only be explicitly authorized for such sharing by <selectables>
                <selectable id="s-acl-user">the user</selectable>
                <selectable id="s-acl-admin">the administrator</selectable>
                <selectable id="s-acl-devel">a common application developer</selectable>
                <selectable>no one</selectable>
            </selectables>. </title>
	    <ext-comp-def-title>
              <title>The TSF shall provide an access control policy that prevents
	      <assignable>list of subjects</assignable> from accessing
	      <selectables><selectable>all</selectable><selectable>private</selectable>
		</selectables> data stored by other <assignable>list of subjects</assignable>.
		Exceptions may only be explicitly authorized for such sharing by
		<assignable>list of authorized subjects</assignable>.</title>
	    </ext-comp-def-title>
            <note role="application">Application groups may be designated Enterprise or Personal.
              Applications installed by the user default to being in the Personal application group
              unless otherwise designated by the administrator in function <xref to="mf-appGroups"/> of FMT_SMF_EXT.1.1. Applications installed by the administrator
              default to being in the Enterprise application group (this category includes
              applications that the user requests the administrator install, for instance by
              selecting the application for installation through an enterprise application catalog)
              unless otherwise designated by the administrator in function <xref to="mf-appGroups"/> of FMT_SMF_EXT.1.1. It is acceptable for the same application to
              have multiple instances installed, each in different application groups. Private data
              is defined as data that is accessible only by the application that wrote it. Private
              data is distinguished from data that an application may, by design, write to shared
              storage areas. <h:br/><h:br/>
	      If <xref to="fdp_group"/> is selected, FDP_ACF_EXT.2 must be included in the ST.
	    </note>
            <aactivity level="element">
              <TSS>The evaluator shall examine the TSS to verify that it describes which data
                sharing is permitted between applications, which data sharing is not permitted, and
                how disallowed sharing is prevented. It is possible to select both "applications" and
                "groups of applications", in which case the TSS is expected to describe the data
                sharing policies that would be applied in each case.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall write, or the developer shall provide, two applications,
                    one that saves data containing a unique string, and a second that attempts to
                    access that data. Based on the selections made, the following steps shall be performed:
                    <h:ul>
                      <h:li>If <xref to="fdp_group"/> is selected, the applications
                        shall be placed into different groups.</h:li>
                      <h:li>If <xref to="s-fdp-app"/> is selected, the
                        evaluator shall install the two applications.</h:li>
                      <h:li>If <xref to="s-private"/> is selected, the
                        application shall not write to a designated shared storage area.</h:li>
                    </h:ul>
		    The evaluator
                    shall verify that the second application is unable to access the stored unique
                    string by default.
                  </test>
                  <test>[conditional: "no one" is not selected in FDP_ACF_EXT.1.2] Using the applications from the previous test, the evaluator shall test the explicit authorizations for sharing data between applications as follows, depending on the selections made in FDP_ACF_EXT.1.2:
                    <h:ul>
                      <h:li>If <xref to="s-acl-user"/> is selected, the evaluator shall grant
                        access as the user and verify that the second application is able to access the
                        stored unique string.</h:li>
                      <h:li>If <xref to="s-acl-admin"/> is selected, the
                        evaluator shall grant access as the administrator and verify that the second
                        application is able to access the stored unique string.</h:li>
                      <h:li>If <xref to="s-acl-devel"/>  is selected, the evaluator shall grant access to
                        an application with a common application developer to the first, and verify
                        that the application is able to access the stored unique string.</h:li>
                    </h:ul>
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>	  
	  <audit-event/>
        </f-component>
        <f-component id="fc_access_control_system" cc-id="fdp_acf_ext.2" name="Access Control for System Resources" status="sel-based">
          <depends on="fdp_group"/>
          
          <comp-lev> requires the TSF to be able to provide separate copies of system resources for different application groups.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Approving exceptions for sharing data between applications or groups of applications.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FDP_ACF_EXT.1 Access Control for System Services<h:br/>
            FMT_SMR.1 Security Roles</dependencies>
          
          <f-element id="fel-per-app-resources">
            <title>The TSF shall provide a separate <selectables>
                <selectable>address book</selectable>
                <selectable>calendar</selectable>
                <selectable>keystore</selectable>
                <selectable>account credential database, <assignable>list of additional
                    resources</assignable></selectable>
              </selectables> for each application group and only allow applications within that
              process group to access the resource. Exceptions may only be explicitly authorized for
              such sharing by <selectables>
                <selectable>the user</selectable>
                <selectable>the administrator</selectable>
                <selectable>no one</selectable>
              </selectables>. </title>
            <note role="application">If <xref to="fdp_group"/> is selected in FDP_ACF_EXT.1.2, <!-- taken care of by depends -->
              FDP_ACF_EXT.2 must be included in the ST. </note>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>For each selected resource, the evaluator shall cause data to be placed into
                the Enterprise group’s instance of that shared resource. The evaluator shall install
                an application into the Personal group that attempts to access the shared resource
                information and verify that it cannot access the information. </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
          
        </f-component>
        <f-component cc-id="fdp_acf_ext.3" name="Security Attribute Based Access Control" status="objective">
          
          <comp-lev> requires the TSF to enforce policies on applications that prohibit write and execute permissions from being granted simultaneously.</comp-lev>
          <management>There are no management activities foreseen.
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fel-no-write-exe">
            <title>The TSF shall enforce an access control policy that prohibits an application from
              granting both write and execute permission to a file on the device except for <selectables>
                <selectable>files stored in the application's private data folder</selectable>
                <selectable>no exceptions</selectable>
              </selectables>.</title>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance><Tests>
                <h:b>Evaluation Activity Note:</h:b> The following tests require the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products.<h:br/><h:br/>
                <testlist>
                  <test>The evaluator shall write, or the developer shall provide, an application
                    that attempts to store a file with both write and execute permissions. If the
                    selection is "no exceptions", then the evaluator shall verify that this action
                    fails and that the permissions on the file are not simultaneously write and
                    execute. If the selection is "application's private data folder", then the
                    evaluator shall ensure that the attempt to store the file is outside of the
                    application's private data folder.</test>
                  <test>The evaluator shall traverse the file system examining the permission on
                    each TSF file to verify that no file has both write and execute permissions set.
                    If the selection is "application's private data folder", then only files outside
                    of this folder need to be examined by the evaluator for this test.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
         
        </f-component>
	  
	  <ext-comp-def fam-id="FDP_BCK_EXT" title="Application Backup">
	    <fam-behavior>This family defines requirements for managing device backups.
	    </fam-behavior>
	  </ext-comp-def>
	  
	  
        <f-component cc-id="fdp_bck_ext.1" name="Application Backup" status="objective">
          
          <comp-lev> requires the TSF to be able to determine which data to include in backup operations.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Enable/disable backup of certain applications to a local or remote system.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-backup-mark">
            <title>The TSF shall provide a mechanism for applications to mark <selectables>
                <selectable id="s-all-app-data">all application data</selectable>
                <selectable id="s-sel-app-data">selected application data</selectable>
            </selectables> to be excluded from device backups. </title>
	    <ext-comp-def-title><title>The TSF shall provide a mechanism for applications to mark <assignable>list of data categories </assignable> to be excluded from device backups. </title>
	    </ext-comp-def-title>
            <note role="application"> Device backups include any mechanism built into the TOE that
              allows stored application data to be extracted over a physical port or sent over the
              network, but does not include any functionality implemented by a specific application
              itself if the application is not included in the TOE. The lack of a public/documented
              API for performing backups, when a private/undocumented API exists, is not sufficient
              to meet this requirement. </note>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
	      <Tests>If <xref to="s-all-app-data"/> is selected, the evaluator shall install an
                application that has marked all of its application data to be excluded from backups.
                The evaluator shall cause data to be placed into the application’s storage area. The
                evaluator shall attempt to back up the application data and verify that the backup
                fails or that the application’s data was not included in the backup.
                <h:br/><h:br/>

		If <xref to="s-sel-app-data"/> is selected, the evaluator shall
                install an application that has marked selected application data to be excluded from
                backups. The evaluator shall cause data covered by "selected application data" to be
                placed into the application’s storage area. The evaluator shall attempt to backup
                that selected application data and verify that either the backup fails or that the
                selected data is excluded from the backup. </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
         
        </f-component>
	  
	  <ext-comp-def fam-id="FDP_BLT_EXT" title="Limitation of Bluetooth Device Access">
	    <fam-behavior>This family defines requirements for managing Bluetooth devices. 
	    </fam-behavior>
	  </ext-comp-def>
	  
	  
        <f-component name="Limitation of Bluetooth Device Access" cc-id="fdp_blt_ext.1" status="objective">
          
          <comp-lev> requires the TSF to manage which applications communicate with Bluetooth devices.</comp-lev>
          <management>There are no management activities foreseen.
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
	        <f-element id="fdp-blt-ext-1e1">
	          <title>
	            The TSF shall limit the applications that may communicate with a particular paired Bluetooth device. 
	          </title>
	          <note role="Application">
	            Not every application with privileges to use Bluetooth should be permitted to communicate with every paired Bluetooth device. For example, the TSF may choose to require that only the application that initiated the current connection may communicate with the device, or it may strictly tie the paired device to the first application that makes a socket connection to the device following initial pairing. Additionally, for more flexibility, the TSF may choose to provide the user with a way to select which applications on the device may communicate with or observe communications with each paired Bluetooth device.   
	          </note>
	          <aactivity><!-- TODO:Need to update -->
	            <TSS>The evaluator shall ensure that the TSS describes the mechanism used to prevent unrestricted access to paired Bluetooth devices (or their communication data) by every application with access to the Bluetooth system service on the TOE. The evaluator shall verify that this method either restricts access to a single application or provides explicit control of the applications that may communicate with the paired Bluetooth device. <h:br/><h:br/></TSS>
	            <Guidance>The evaluator shall verify that the AGD contains the steps to configure which applications are allowed to communicate with a given Bluetooth peripheral.<h:br/><h:br/></Guidance>
	            <Tests>The evaluator shall establish a Bluetooth connection with any peripheral. The evaluator shall verify that an application that is allowed to communicate with the Bluetooth peripheral is able to and that an application that is not allowed to communicate with that Bluetooth peripheral is unable to communicate with the peripheral. </Tests>
	          </aactivity>
	        </f-element>
          <audit-event/>
	      </f-component>
		
        <!-- <f-component cc-id="fdp_pba_ext.1" name="Storage of Critical Biometric Parameters" status="sel-based">
          <depends on1="uau_fing" on2="uau_iris" on3="uau_face" on4="uau_vox" on5="uau_vein" on6="uau_hybr"/>
          <f-element id="fel-bio-protect">
            <title>The TSF shall protect the authentication template <selectables>
                <selectable>using a PIN as an additional factor</selectable>
                <selectable>using a password as an additional factor</selectable>
                <selectable><assignable>other circumstances</assignable></selectable>
              </selectables>. </title>
            <note role="application">If a BAF or "hybrid" is selected in FIA_UAU.5.1,
              FDP_PBA_EXT.1.1 must be included in the ST. If "hybrid" is selected in FIA_UAU.5.1,
              then "using a PIN as an additional factor" or "using a password as an additional
              factor" must be selected. If "hybrid" is not selected in FIA_UAU.5.1, then the
              authentication template must be secured by other means, which should be specified in
              the assignment. Since compromised authentication templates can be used in generating
              presentation/spoof attacks, it is important to utilize secure methods for protecting
              them.</note>
            <aactivity>
              <TSS>The evaluator shall determine that the TSS contains a description of the
                activities that happen during biometric authentication. <h:br/><h:br/> The
                evaluator shall ensure that the authentication template is protected either using a
                PIN or by other secure means, as specified by the vendor.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
        </f-component> ToDo: Remove per bio cPP module -->
	  
	  <ext-comp-def fam-id="FDP_DAR_EXT" title="Data-at-Rest Encryption">
	    <fam-behavior>This family defines requirements for implementation of data-at-rest protection. 
	    </fam-behavior>
	  </ext-comp-def>
	
        <f-component cc-id="fdp_dar_ext.1" name="Protected Data Encryption">
          
          <comp-lev> requires the TSF to be able to protect all data with a chosen method of encryption.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
          <h:ul>
            <h:li>Enabling data-at-rest protection.</h:li>
            <h:li>Enabling removable media’s data-at-rest protection.</h:li>
          </h:ul>
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Failure to encrypt/decrypt data.</h:li>
            </h:ul></audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          
          
          <f-element id="fel-dar-what">
            <title>Encryption shall cover all protected data. </title>
            <note role="application"> Protected data is all non-TSF data, including all user or
              enterprise data. Some or all of this data may be considered sensitive data as
              well.</note>
          </f-element>
          <f-element id="fel-dar-how">
            <title>Encryption shall be performed using DEKs with AES in the <selectables>
              <selectable id="fel-dar-how-cbc">CBC</selectable>
              <selectable id="fel-dar-how-gcm">GCM</selectable>
              <selectable id="fel-dar-how-xts">XTS</selectable>
            </selectables> mode with key size [<h:i>256</h:i>] bits. </title>
	    <ext-comp-def-title>
	      <title>Encryption shall be performed using DEKs with AES in the
	      <assignable>list of AES modes</assignable> mode with key size
	      <assignable>list of acceptable key sizes</assignable> bits. </title>
	    </ext-comp-def-title>

            <note role="application">IVs must be generated in accordance with
              FCS_IV_EXT.1.1.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS section of the ST indicates which data is
                protected by the DAR implementation and what data is considered TSF data. The
                evaluator shall ensure that this data includes all protected data.
                </TSS>
              <Guidance> The evaluator shall review the AGD guidance to determine that the
                description of the configuration and use of the DAR protection does not require the
                user to perform any actions beyond configuration and providing the authentication
                credential. The evaluator shall also review the AGD guidance to determine that the
                configuration does not require the user to identify encryption on a per-file basis.
              </Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test requires the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. 
                <testlist>
                  <test>The evaluator shall enable encryption according to the AGD guidance. The
                    evaluator shall create user data (non-system) either by creating a file or by
                    using an application. The evaluator shall use a tool provided by the developer
                    to verify that this data is encrypted when the product is powered off, in
                    conjunction with <xref to="unauthenticated-encrypted-data"/>.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr><selectables onlyone="yes"><selectable>Failure to encrypt/decrypt data</selectable><selectable>None</selectable></selectables></audit-event-descr>
	  </audit-event>
        </f-component>
        <f-component cc-id="fdp_dar_ext.2" name="Sensitive Data Encryption">
          
          <comp-lev> requires the TSF to protect the Trust Anchor Database. </comp-lev>
          <management>The following actions could be considered for the management functions in FMT: <h:ul>
            <h:li>Importing X.509v3 certificates into the Trust Anchor Database.</h:li>
            <h:li>Removing imported X.509v3 certificates from the Trust Anchor Database.</h:li>
            <h:li>Approving import and removal by applications of X.509v3 certificates in the Trust Anchor Database.</h:li>
          </h:ul>
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Addition or removal of certificate from Trust Anchor Database</h:li>
            </h:ul></audit>
          <dependencies>FCS_COP.1 Cryptographic Operation<h:br/>
            FCS_CKM_EXT.7 Cryptographic Key Establishment<h:br/>
            FCS_STG_EXT.2 Encrypted Cryptographic Key Storage
          </dependencies>
          
          <f-element id="fel-dar-app-what">
            <title>The TSF shall provide a mechanism for applications to mark data and keys as
              sensitive. </title>
            <note role="application">Data and keys that have been marked as sensitive will be
              subject to certain restrictions (through other requirements) in both the locked and
              unlocked states of the Mobile Device. This mechanism allows an application to choose
              those data and keys under its control to be subject to those requirements.
              <h:br/><h:br/> In the future, this PP may require that all data and key created by
              applications will default to the "sensitive" marking, requiring an explicit
              "non-sensitive" marking rather than an explicit "sensitive" marking. </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS includes a description of which data
                stored by the TSF (such as by native applications) is treated as sensitive. This
                data may include all or some user or enterprise data and must be specific regarding
                the level of protection of email, contacts, calendar appointments, messages, and
                documents. <h:br/><h:br/> The evaluator shall examine the TSS to determine that
                it describes the mechanism that is provided for applications to use to mark data and
                keys as sensitive. This description shall also contain information reflecting how
                data and keys marked in this manner are distinguished from data and keys that are
                not (for instance, tagging, segregation in a "special" area of memory or container,
                etc.). <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall enable encryption of sensitive data and require user
                    authentication according to the AGD guidance. The evaluator shall try to access
                    and create sensitive data (as defined in the ST and either by creating a file or
                    using an application to generate sensitive data) in order to verify that no
                    other user interaction is required.<h:br/><h:br/>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-dar-lock">
            <title>The TSF shall use an asymmetric key scheme to encrypt and store sensitive data
              received while the product is locked. </title>
            <note role="application">Sensitive data is encrypted according to FDP_DAR_EXT.1.2. The
              asymmetric key scheme must be performed in accordance with FCS_CKM_EXT.7/LOCKED.
              <h:br/><h:br/> The intent of this requirement is to allow the device to receive
              sensitive data while locked and to store the received data in such a way as to prevent
              unauthorized parties from decrypting it while in the locked state. If only a subset of
              sensitive data may be received in the locked state, this subset must be described in
              the TSS. <h:br/><h:br/> Key material must be cleared when no longer needed
              as defined in FCS_CKM.6. For keys (or key material used to derive those keys)
              protecting sensitive data received in the locked state, "no longer needed" includes
              "while in the locked state." For example, in the first key scheme, this includes the
              DEK protecting the received data as soon as the data is encrypted. In the second key
              scheme this includes the private key for the data asymmetric pair, the generated
              shared secret, and any generated DEKs. Of course, both schemes require that a private
              key of an asymmetric pair (the RSA private key and the device-wide private key,
              respectively) be cleared when transitioning to the locked state. </note>
            <aactivity level="element">
              <TSS> The evaluator shall review the TSS section of the ST to determine that the TSS
                includes a description of the process of receiving sensitive data while the device
                is in a locked state. The evaluator shall also verify that the description indicates
                if sensitive data that may be received in the locked state is treated differently
                than sensitive data that cannot be received in the locked state. The description
                shall include the key scheme for encrypting and storing the received data, which
                must involve an asymmetric key and must prevent the sensitive data-at-rest from
                being decrypted by wiping all key material used to derive or encrypt the data (as
                described in the application note). The introduction to this section provides two
                different schemes that meet the requirements, but other solutions may address this
                requirement. <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall perform the tests in FCS_CKM.6 for all key material no
                longer needed while in the locked state and shall ensure that keys for the
                asymmetric scheme are addressed in the tests performed when transitioning to the
                locked state.<h:br/><h:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-dar-symkey">
            <title>The TSF shall encrypt any stored symmetric key and any stored private key of the
              asymmetric keys used for the protection of sensitive data as defined in
              [<h:i>FCS_STG_EXT.2.1 selection 2</h:i>]. </title>
            <ext-comp-def-title>
              <title>The TSF shall encrypt any stored symmetric key and any stored private key of the
                asymmetric keys used for the protection of sensitive data according to <assignable>mechanism for encrypted key storage</assignable>. </title>  
            </ext-comp-def-title>
            <note role="application">Symmetric keys used to encrypt sensitive data while the TSF is
              in the unlocked state must be encrypted with (or chain to a KEK encrypted with) the
              REK and password-derived or biometric-unlocked KEK. A stored private key of the
              asymmetric key scheme for encrypting data in the locked state must be encrypted with
              (or chain to a KEK encrypted with) the REK and password-derived or biometric-unlocked
              KEK.</note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the key hierarchy section of the TSS required for
                FCS_STG_EXT.2.1 includes the symmetric encryption keys (DEKs) used to encrypt
                sensitive data. The evaluator shall ensure that these DEKs are encrypted by a key
                encrypted with (or chain to a KEK encrypted with) the REK and password-derived or
                biometric-unlocked KEK. <h:br/><h:br/> The evaluator shall verify that the TSS
                section of the ST that describes the asymmetric key scheme includes the protection
                of any private keys of the asymmetric pairs. The evaluator shall ensure that any
                private keys that are not wiped and are stored by the TSF are stored encrypted by a
                key encrypted with (or chain to a KEK encrypted with) the REK and password-derived
                or biometric-unlocked KEK. <h:br/>
                <h:br/> The evaluator shall also ensure that the documentation of the product's encryption key
                management is detailed enough that, after reading, the product's key management hierarchy is clear 
                and that it meets the requirements to ensure the keys are adequately protected. The evaluator shall ensure
                that the documentation includes both an essay and one or more diagrams. Note that this may also be documented as 
                separate proprietary evidence rather than being included in the TSS.<h:br/><h:br/> 
              </TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this element.<h:br/><h:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-dar-unlock-data">
            <title>The TSF shall decrypt the sensitive data that was received while in the locked
              state upon transitioning to the unlocked state using the asymmetric key scheme and
              shall re-encrypt that sensitive data using the symmetric key scheme. </title>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS section of the ST that describes the
                asymmetric key scheme includes a description of the actions taken by the TSF for the
                purposes of DAR upon transitioning to the unlocked state. These actions shall
                minimally include decrypting all received data using the asymmetric key scheme and
                re-encrypting with the symmetric key scheme used to store data while the device is
                unlocked.  <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this element.<h:br/><h:br/></Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr><selectables onlyone="yes"><selectable>Failure to encrypt/decrypt data</selectable><selectable>None</selectable></selectables></audit-event-descr>
	  </audit-event>
        </f-component>
	  
	  <ext-comp-def fam-id="FDP_IFC_EXT" title="Subset Information Flow Control">
	    <fam-behavior>This family defines requirements for handling of information flows that are not addressed by FDP_IFC in CC Part 2. 
	    </fam-behavior>
	  </ext-comp-def>
	  
        <f-component cc-id="fdp_ifc_ext.1" name="Subset Information Flow Control">
          
          <comp-lev> requires the TSF to be able to support the use of an IPsec VPN to protect data in transit.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Enabling/disabling VPN protection.</h:li>
              <h:li>Enabling/disabling Always On VPN protection.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.
          </audit>
          <dependencies>
            FTP_ITC_EXT.1 Trusted Channel Communication
          </dependencies>
          
          <f-element id="fel-vpn-service">
            <title>The TSF shall <selectables linebreak="yes">
                <selectable>provide an interface which allows a VPN client to protect all IP traffic
                  using IPsec</selectable>
                <selectable>provide a VPN client which can protect all IP traffic using
                  IPsec <h:b>as defined in the <xref to="mod-vpnclient"/></h:b></selectable>
              </selectables> with the exception of IP traffic needed to manage the VPN
              connection, and
              <selectables> 
                <selectable><assignable>traffic needed for correct functioning of the TOE</assignable></selectable>
                <selectable>no other traffic</selectable></selectables>, when the VPN is enabled. </title>
            <note role="application">Typically, the traffic needed to manage the VPN connection
              is referred to as "Control Plane" traffic; whereas, the IP traffic protected by the
              IPsec VPN is referred to as "Data Plane" traffic. All "Data Plane" traffic must flow
              through the VPN connection and the VPN must not split-tunnel. “IP traffic needed for correct functioning of the TOE” comprises traffic that would prevent the TOE from proper operation if it was either blocked by or routed through the VPN. Enabling the VPN means that the VPN client has been activated by the user. If the VPN tunnel gets interrupted, then no “Data Plane” traffic should be sent without the VPN tunnel being re-established or the user disabling the VPN client.
              <h:br/><h:br/> 
              If no native IPsec client is validated or third-party VPN clients may also implement the
              required Information Flow Control, the first option must be selected. In these cases,
              the TOE provides an API to third-party VPN clients that allow them to configure the
              TOE’s network stack to perform the required Information Flow Control.
              <h:br/><h:br/>
	      The ST author must select the second option if the TSF implements
              a native VPN client (<xref to="s-itc-ipsec"/> is selected in <xref to="fel-wlan"/>). Thus the TSF must be
              validated against the <xref to="mod-vpnclient"/> and the ST author must also include
              <no-link>FDP_IFC_EXT.1</no-link> from the <xref to="mod-vpnclient"/>. <h:br/><h:br/> It is optional for
              the VPN client to be configured to be always-on per FMT_SMF_EXT.1 Function <xref to="mf-alwaysOnVPN"/>. Always-on means the establishment of an IPsec trusted channel
              to allow any communication by the TSF. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS section of the ST describes the routing
                of IP traffic through processes on the TSF when a VPN client is enabled. The
                evaluator shall ensure that the description indicates which traffic does not go
                through the VPN and which traffic does. The evaluator shall verify that a configuration exists for each
                baseband protocol in which only the traffic identified by the ST author as necessary
                for establishing the VPN connection (IKE traffic and perhaps HTTPS or DNS traffic) or needed for the correct functioning of the TOE is not encapsulated by the VPN protocol (IPsec). The evaluator shall verify that the
                TSS section describes any differences in the routing of IP traffic when using any
                supported baseband protocols (e.g. Wi-Fi or, LTE). <h:br/><h:br/></TSS>
              <Guidance> The evaluator shall verify that one (or more) of the following options is
                addressed by the documentation: <h:br/>
                <h:ul>
                  <h:li>The description above indicates that if a VPN client is enabled, all
                    configurations route all Data Plane traffic through the tunnel interface
                    established by the VPN client.</h:li>
                  <h:li>The AGD guidance describes how the user or administrator can configure
                    the TSF to meet this requirement.</h:li>
                  <h:li>The API documentation includes a security function that allows a VPN
                    client to specify this routing.</h:li>
                </h:ul>
                <h:br/>
              </Guidance>
              <Tests>
                <testlist>
                  <test>If the ST author identifies any differences in the routing between Wi-Fi and
                    cellular protocols, the evaluator shall repeat this test with a base station
                    implementing one of the identified cellular protocols. <h:br/><h:br/> Step
                    1: The evaluator shall enable a Wi-Fi configuration as described in the AGD
                    guidance (as required by FTP_ITC_EXT.1). The evaluator shall use a packet
                    sniffing tool between the wireless access point and an Internet-connected
                    network. The evaluator shall turn on the sniffing tool and perform actions with
                    the device such as navigating to websites, using provided applications, and
                    accessing other Internet resources. The evaluator shall verify that the sniffing
                    tool captures the traffic generated by these actions, turn off the sniffing
                    tool, and save the session data. <h:br/><h:br/> Step 2: The evaluator shall
                    configure an IPsec VPN client that supports the routing specified in this
                    requirement, and if necessary, configure the device to perform the routing
                    specified as described in the AGD guidance. The evaluator shall ensure the test network is capable of sending any traffic identified as exceptions. The evaluator shall turn on the
                    sniffing tool, establish the VPN connection, and perform the same actions with
                    the device as performed in the first step, as well as ensuring that all exception traffic is generated. The evaluator shall verify that the
                    sniffing tool captures traffic generated by these actions, turn off the sniffing
                    tool, and save the session data. <h:br/><h:br/> Step 3: The evaluator shall
                    examine the traffic from both step one and step two to verify that all Data
                    Plane traffic is encapsulated by IPsec, except for any exceptions identified
                    in the SFR (if applicable). For each exception listed in the SFR, the evaluator
                    shall verify that traffic is allowed outside of the VPN tunnel. The evaluator
                    shall examine the Security
                    Parameter Index (SPI) value present in the encapsulated packets captured in Step
                    two from the TOE to the Gateway and shall verify this value is the same for all
                    actions used to generate traffic through the VPN. Note that it is expected that
                    the SPI value for packets from the Gateway to the TOE is different than the SPI
                    value for packets from the TOE to the Gateway. The evaluator shall be aware that
                    IP traffic on the cellular baseband outside of the IPsec tunnel may be emanating
                    from the baseband processor and shall verify with the manufacturer that any
                    identified traffic is not emanating from the application processor.
                    <h:br/><h:br/> Step 4: (Conditional: If ICMP is not listed as part of the IP traffic needed for the correct functioning of the TOE) The evaluator shall perform an ICMP echo from the TOE
                    to the IP address of another device on the local wireless network and shall
                    verify that no packets are sent using the sniffing tool. The evaluator shall
                    attempt to send packets to the TOE outside the VPN tunnel (i.e., not through the
                    VPN gateway), including from the local wireless network, and shall verify that
                    the TOE discards them. </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
	  
	  <ext-comp-def fam-id="FDP_STG_EXT" title="User Data Storage">
	    <fam-behavior>This family defines requirements for managing data storage. 
	    </fam-behavior>
	  </ext-comp-def>
	  
        <f-component cc-id="fdp_stg_ext.1" name="User Data Storage">
          
          <comp-lev> requires the TSF to be able to label, encrypt, store, and decrypt sensitive data and keys.</comp-lev>
          <management>There are no management activities foreseen.
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Failure to encrypt/decrypt data.</h:li>
            </h:ul></audit>
          <dependencies>FCS_COP.1 Cryptographic Operation<h:br/>
            FCS_STG_EXT.2 Encrypted Cryptographic Key Storage
          </dependencies>
          
          
          <f-element id="fel-trust-anchor">
            <title>The TSF shall provide protected storage for the Trust Anchor Database. </title>
            <aactivity>
              <TSS>The evaluator shall ensure the TSS describes the Trust Anchor Database
                implemented that contain certificates used to meet the requirements of this PP. This
                description shall contain information pertaining to how certificates are loaded into
                the store, and how the store is protected from unauthorized access (for example,
                UNIX permissions) in accordance with the permissions established in FMT_SMF_EXT.1
                and FMT_MOF_EXT.1.1.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Addition or removal of certificate from Trust Anchor Database</audit-event-descr>
	    <audit-event-info>Subject name of certificate</audit-event-info>
	  </audit-event>
        </f-component>
	  
	  
	  <ext-comp-def fam-id="FDP_UPC_EXT" title="Inter-TSF User Data Transfer Protection">
	    <fam-behavior>This family defines requirements for the use of trusted channel protocols to protect user data. 
	    </fam-behavior>
	  </ext-comp-def>
	  
	  
	  <f-component cc-id="fdp_upc_ext.1" name="Inter-TSF User Data Transfer Protection" status="invisible">
	    
	    <comp-lev> requires the TSF to be able to protect communication channels between products using a chosen secure method.</comp-lev>
	    <management>There are no management activities foreseen.</management>
	    <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
	      in the PP, PP-Module, functional package or ST:
	      <h:ul>
	        <h:li>Application initiation of trusted channel.</h:li>
	      </h:ul></audit>
	    <dependencies>FTP_ITC_EXT.1 Trusted Channel Communication</dependencies>
	    
	        
	    <f-element id="fel-tls-app-stub">
	      <title>The TSF shall provide a means for non-TSF applications executing on the TOE to use 
	        <assignable>data transfer protocol</assignable> 
	        to provide a protected communication channel between the non-TSF application and another IT product 
	        that is logically distinct from other communication channels, 
	        provides assured identification of its end points, protects channel data from disclosure, 
	        and detects modification of the channel data.</title>
	 
	    </f-element>
	    <f-element id="fel-tls-app-init-stub">
	      <title>The TSF shall permit the non-TSF applications to initiate communication via the
	        trusted channel.</title>
	      <aactivity>
	        <no-tests/>
	      </aactivity>
	    </f-element>
	    <audit-event/>
	  </f-component>
	  
	  
	  
        <f-component cc-id="fdp_upc_ext.1" iteration="APPS" name="Inter-TSF User Data Transfer Protection (Applications)">
          <f-element id="fel-tls-app">
            <title>The TSF shall provide a means for non-TSF applications executing on the TOE to use [<h:i><h:ul>
                <h:li>Mutually authenticated TLS as defined in the <xref to="tls"/>,</h:li>
                <h:li>HTTPS,</h:li>
              </h:ul>and <selectables linebreak="yes">
                <selectable id="upc_dtls">mutually authenticated DTLS as defined in the <xref to="tls"/></selectable>
                <selectable id="s-upc-ipsec">IPsec as defined in the <xref to="mod-vpnclient"/></selectable>
                <selectable exclusive="yes">no other protocol</selectable>
              </selectables> </h:i>] to provide a protected communication channel between the non-TSF
              application and another IT product that is logically distinct from other communication
              channels, provides assured identification of its end points, protects channel data
              from disclosure, and detects modification of the channel data. </title>
            <note role="application"> 
              The intent of this requirement is that one of the selected protocols is available for use by user applications running on the device for use in connecting to distant-end services that are not necessarily part of the enterprise infrastructure. It should be noted that the FTP_ITC_EXT.1 requires that all TSF communications be protected using the protocols indicated in that requirement, so the protocols required by this component ride "on top of" those listed in FTP_ITC_EXT.1.<h:br/><h:br/> 
              It should also be noted that some applications are part of the TSF, and FTP_ITC_EXT.1 requires that TSF applications be protected by at least one of the protocols in first selection in FTP_ITC_EXT.1. It is not required to have two different implementations of a protocol, or two different protocols, to satisfy both this requirement (for non-TSF apps) and FTP_ITC_EXT.1 (for TSF apps), as long as the services specified are provided. <h:br/><h:br/> 
              The ST author must list which trusted channel protocols are implemented by the Mobile Device for use by non-TSF apps.<h:br/><h:br/> 
              
              The TSF must be validated against FCS_TLSC_EXT requirements from the <xref to="tls"/>, with the claims from that package made for those requirements as defined in <xref to="package-usage"/>.          
              <h:br/> 
              If <xref to="upc_dtls"/> is selected, the TSF must be validated against FCS_DTLS_EXT requirements from the <xref to="tls"/>, with the claims from that package made for those requirements as defined in <xref to="package-usage"/>.
             
              <h:br/>
			  If the ST author selects <xref to="s-upc-ipsec"/>, the TSF must be validated against the <xref to="mod-vpnclient"/>. 
            </note>
          </f-element>
          <f-element id="fel-tls-app-init">
            <title>The TSF shall permit the non-TSF applications to initiate communication via the
              trusted channel.</title>
            <aactivity> 
              <TSS>
                The evaluator shall verify that the API documentation provided in the TSS (or other documentation) includes the security functions (protection channel)
                described in these requirements, and verify that the APIs implemented to support this
                requirement include the appropriate settings/parameters so that the application can
                both provide and obtain the information needed to assure mutual identification of the
                endpoints of the communication as required by this component.
                <h:p/>
                The evaluator shall examine the TSS to determine that it describes that all
                protocols listed in the TSS are specified and included in the requirements in the
                ST. <h:br/><h:br/>
              </TSS>
              <Guidance> The evaluator shall confirm that the operational guidance contains
                instructions necessary for configuring the protocols selected for use by the
                applications.<h:br/><h:br/>
              </Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test requires the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products.<h:br/><h:br/> The evaluator shall 
                perform the following tests: <testlist>
                  <test>The
                    evaluator shall write, or the developer shall provide access to, an application that
                    requests protected channel services by the TSF. The evaluator shall verify that the
                    results from the protected channel match the expected results according to the API
                    documentation. This application may be used to assist in verifying the protected
                    channel Evaluation Activities for the protocol requirements.</test>
                  <test>The evaluator shall ensure that the application is able to initiate
                    communications with an external IT entity using each protocol specified in the
                    requirement, setting up the connections as described in the operational guidance
                    and ensuring that communication is successful. </test>
                  <test>The evaluator shall ensure, for each communication channel with an
                    authorized IT entity, the channel data are not sent in plaintext.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Application initiation of trusted channel</audit-event-descr>
	    <audit-event-info><h:ul>
	      <h:li>Name of application</h:li>
	      <h:li>Trusted channel protocol</h:li>
	      <h:li>Non-TOE endpoint of connection</h:li>
	    </h:ul></audit-event-info>
	  </audit-event>
        </f-component>
        <f-component cc-id="fdp_upc_ext.1" iteration="BLUETOOTH" name="Inter-TSF User Data Transfer Protection (Bluetooth)" status="feat-based"> <!-- Implementation Dependent -->
          <depends on="bluetooth"/>
          <f-element id="fel-bluetooth">
            <title>The TSF shall provide a means for non-TSF applications executing on the TOE to
              use Bluetooth as defined in [<h:i>the <xref to="mod-bluetooth"/></h:i>] to provide a protected communication channel between the non-TSF
              application and another IT product that is logically distinct from other communication
              channels, provides assured identification of its end points, protects channel data
              from disclosure, and detects modification of the channel data. </title>
            <note role="application">
              <h:p>
              If the TOE implements Bluetooth, <!-- Fix wording -->
              this requirement must be included in the ST. The intent of this requirement is that
              Bluetooth is available for use by user applications
              running on the device for use in connecting to distant-end services that are not
              necessarily part of the enterprise infrastructure. The ST author must list which
              trusted channel protocols are implemented by the Mobile Device for use by non-TSF
              apps.
              </h:p>
              <h:p>
              The TSF must be validated against requirements from the
              <xref to="mod-bluetooth"/>. It should be noted that the FTP_ITC_EXT.1 requires that all
              TSF communications be protected using the protocols indicated in that requirement, so
              the protocols required by this component ride "on top of" those listed in
              FTP_ITC_EXT.1.
              </h:p>
            </note>
          </f-element>
          <f-element id="fel-bluetooth-chan">
            <title>The TSF shall permit the non-TSF applications to initiate communication via the
              trusted channel.</title>
            <aactivity> 
              <TSS>
                The evaluator shall verify that the API documentation provided in the TSS (or other documentation) includes the security functions (protection channel)
                described in these requirements, and verify that the APIs implemented to support this
                requirement include the appropriate settings/parameters so that the application can
                both provide and obtain the information needed to assure mutual identification of the
                endpoints of the communication as required by this component. 
                <h:p/>
                The evaluator shall examine the TSS to determine that it describes that all
                protocols listed in the TSS are specified and included in the requirements in the
                ST. <h:br/><h:br/>
              </TSS>
              <Guidance> The evaluator shall confirm that the operational guidance contains
                instructions necessary for configuring the protocols selected for use by the
                applications.<h:br/><h:br/>
              </Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test requires the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. <h:br/><h:br/> The evaluator shall 
                perform the following tests: <testlist>
                  <test>The evaluator shall write, or the developer shall provide access to, an application that
                  requests protected channel services by the TSF. The evaluator shall verify that the
                  results from the protected channel match the expected results according to the API
                  documentation. This application may be used to assist in verifying the protected
                  channel Evaluation Activities for the protocol requirements.</test>
                  <test>The evaluator shall ensure that the application is able to initiate
                    communications with an external IT entity using each protocol specified in the
                    requirement, setting up the connections as described in the operational guidance
                    and ensuring that communication is successful. </test>
                  <test>The evaluator shall ensure, for each communication channel with an
                    authorized IT entity, the channel data are not sent in plaintext.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Application initiation of trusted channel</audit-event-descr>
	    <audit-event-info><h:ul>
	      <h:li>Name of application</h:li>
	      <h:li>Trusted channel protocol</h:li>
	      <h:li>Non-TOE endpoint of connection</h:li>
	    </h:ul></audit-event-info>
	  </audit-event>
        </f-component>
      </sec:fdp>
      <sec:fia title="Class FIA: Identification and Authentication">
        
        
        <ext-comp-def fam-id="FIA_AFL_EXT" title="Authentication Failures">
          <fam-behavior>This family defines requirements for authentication failure handling that are not addressed by the FIA_AFL family in CC Part 2.
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fia_afl_ext.1" name="Authentication Failure Handling">
          
          <comp-lev> requires the TSF be able to manage unsuccessful authentication attempts and limit the number of attempts for each method.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Configuration of authentication failure limit.</h:li>
            </h:ul>
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Exceeding configured authentication failure limit.</h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_CKM_EXT.5 TSF Wipe<h:br/>
            FIA_UAU.1 Timing of Authentication
            FIA_UAU.5 Multiple Authentication Mechanisms
          </dependencies>
          
          
          <f-element id="fel-authfail-what">
            <title>The TSF shall consider password and <selectables>
                <!-- ToDo: Remove per bio cPP module: 
                <selectable>fingerprint</selectable>
                <selectable> iris</selectable>
                <selectable> face</selectable>
                <selectable> voice</selectable>
                <selectable> vein</selectable> -->
                <selectable> biometric in accordance with the <xref to="mod-biometrics"/></selectable>
                <selectable> hybrid</selectable>
                <selectable exclusive="yes" id="s-authfail-noother"> no other mechanism</selectable>
            </selectables> as critical authentication mechanisms. </title>
	    <ext-comp-def-title>
              <title>The TSF shall consider password and
	      <assignable>list of acceptable authentication mechanisms</assignable>
	      as critical authentication mechanisms. </title>
	    </ext-comp-def-title>

            <note role="application">A critical authentication mechanism is one in which
              countermeasures are triggered (i.e., wipe of the device) when the maximum number of
              unsuccessful authentication attempts is exceeded, rendering the other factors
              unavailable. <h:br/><h:br/>
				
			  If no additional authentication mechanisms are
              selected in FIA_UAU.5.1, then <xref to="s-authfail-noother"/> must be selected.
			  If an additional
              authentication mechanism is selected in FIA_UAU.5.1, then it must only be selected in
              FIA_AFL_EXT.1.1 if surpassing the authentication failure threshold for biometric data
              causes a countermeasure to be triggered regardless of the failure status of the other
              authentication mechanisms. <h:br/><h:br/> If the TOE implements multiple
              Authentication Factor interfaces (for example, a DAR decryption interface, a
              lock screen interface, an auxiliary boot mode interface), this component applies to all
              available interfaces. For example, a password is a critical authentication mechanism
              regardless of if it is being entered at the DAR decryption interface or at a
              lock screen interface. </note>
          </f-element>
          <f-element id="fel-authfail-num">
            <title>The TSF shall detect when a configurable positive integer within
                <assignable>range of acceptable values for each authentication
                mechanism</assignable> of <selectables>
                <selectable id="s-authfail-num-unique">unique</selectable>
                <selectable id="s-authfail-num-non-unique">non-unique</selectable>
              </selectables> unsuccessful authentication attempts occur related to last successful
            authentication for each authentication mechanism. </title>
	    <ext-comp-def-title><title>
	      The TSF shall detect when a configurable positive integer within
                <assignable>range of acceptable values for each authentication
                mechanism</assignable> of
		<selectables><selectable>unique</selectable><selectable>non-unique</selectable>
              </selectables> unsuccessful authentication attempts occur related to last successful
              authentication for each authentication mechanism.
	    </title></ext-comp-def-title>
            <note role="application">The positive integer is configured as defined in
              FMT_SMF_EXT.1.1 function <xref to="mf-screenlock"/>. <h:br/><h:br/> An unique
              authentication attempt is defined as any attempt to verify a password or biometric
              sample, in which the input is different from a previous attempt. "<xref to="s-authfail-num-unique"/>" must be
              selected if the authentication system increments the counter only for unique
              unsuccessful authentication attempts. For example, if the same incorrect password is
              attempted twice the authentication system increments the counter once. "<xref to="s-authfail-num-non-unique"/>" must be selected if the authentication system
			  increments the counter for each
              unsuccessful authentication attempt, regardless of if the input is unique. For
              example, if the same incorrect password is attempted twice the authentication system
              increments the counter twice. <h:br/><h:br/>
			  
			  If hybrid authentication (i.e., a
              combination of biometric and pin/password) is supported, a failed authentication
              attempt can be counted as a single attempt, even if both the biometric and
              pin/password were incorrect. <h:br/><h:br/>
				
			  If the TOE supports multiple
              authentication mechanisms per FIA_UAU.5.1, this component applies to all
              authentication mechanisms. It is acceptable for each authentication mechanism to
              utilize an independent counter or for multiple authentication mechanisms to utilize a
              shared counter. The interaction between the authentication factors in regards to the
              authentication counter must be in accordance with FIA_UAU.5.2. <h:br/><h:br/>
			  
			  If
              the TOE implements multiple Authentication Factor interfaces (for example, a DAR
              decryption interface, a lock screen interface, an auxiliary boot mode interface), this
              component applies to all available interfaces. However, it is acceptable for each
              Authentication Factor interface to be configurable with a different number of
              unsuccessful authentication attempts. </note>
          </f-element>
          <f-element id="fel-authfail-power">
            <title>The TSF shall maintain the number of unsuccessful authentication attempts that
              have occurred upon power off. </title>
            <note role="application">The TOE may implement an Authentication Factor interface that
              precedes another Authentication Factor interface in the boot sequence (for example, a
              volume DAR decryption interface which precedes the lock screen interface) before the
              user can access the device. In this situation, because the user must successfully
              authenticate to the first interface to access the second, the number of unsuccessful
              authentication attempts need not be maintained for the second interface.</note>
          </f-element>
          <f-element id="fel-authfail-reach-max">
            <title>When the defined number of unsuccessful authentication attempts has exceeded the
              maximum allowed for a given authentication mechanism, all future authentication
              attempts will be limited to other available authentication mechanisms, unless the
              given mechanism is designated as a critical authentication mechanism. </title>
            <note role="application">In accordance with FIA_AFL_EXT.1.3, this requirement also
              applies after the TOE is powered off and powered back on. </note>
          </f-element>
          <f-element id="fel-authfail-reach-max-wipe">
            <title>When the defined number of unsuccessful authentication attempts for the last
              available authentication mechanism or single critical authentication mechanism has
              been surpassed, the TSF shall perform a wipe of all protected data. </title>
            <note role="application">Wipe is performed in accordance with FCS_CKM_EXT.5. Protected
              data is all non-TSF data, including all user or enterprise data. Some or all of this
              data may be considered sensitive data as well. <h:br/><h:br/> If the TOE
              implements multiple Authentication Factor interfaces (for example, a DAR decryption
              interface, a lock screen interface, an auxiliary boot mode interface), this component
              applies to all available interfaces. </note>
          </f-element>
          <f-element id="fel-authfail-incr">
            <title>The TSF shall increment the number of unsuccessful authentication attempts prior
              to notifying the user that the authentication was unsuccessful. </title>
            <note role="application">This requirement is to ensure that if power is cut to the
              device directly after an authentication attempt, the counter will be incremented to
              reflect that attempt. </note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS describes that a value corresponding to
                the number of unsuccessful authentication attempts since the last successful
                authentication is kept for each Authentication Factor interface. The evaluator shall
                ensure that this description also includes if and how this value is maintained when
                the TOE loses power, either through a graceful powered off or an ungraceful loss of
                power. The evaluator shall ensure that if the value is not maintained, the interface
                is after another interface in the boot sequence for which the value is maintained.
                <h:br/><h:br/> If the TOE supports multiple authentication mechanisms, the
                evaluator shall ensure that this description also includes how the unsuccessful
                authentication attempts for each mechanism selected in FIA_UAU.5.1 is handled. The
                evaluator shall verify that the TSS describes if each authentication mechanism
                utilizes its own counter or if multiple authentication mechanisms utilize a shared
                counter. If multiple authentication mechanisms utilize a shared counter, the
                evaluator shall verify that the TSS describes this interaction. <h:br/><h:br/>
                The evaluator shall confirm that the TSS describes how the process used to determine
                if the authentication attempt was successful. The evaluator shall ensure that the
                counter would be updated even if power to the device is cut immediately following
                notifying the TOE user if the authentication attempt was successful or not.
                <h:br/><h:br/></TSS>
              <Guidance> The evaluator shall verify that the AGD guidance describes how the
                administrator configures the maximum number of unique unsuccessful authentication
                attempts. <h:br/><h:br/>
              </Guidance>
              <Tests>
                The evaluator shall configure the device with all authentication mechanisms
                selected in FIA_UAU.5.1. The evaluator shall perform the following tests for
                each available authentication interface:
                <testlist>
                  <test>The
                    evaluator shall configure the TOE, according to the AGD guidance, with a maximum
                    number of unsuccessful authentication attempts. The evaluator shall enter the
                    locked state and enter incorrect passwords until the wipe occurs. The evaluator
                    shall verify that the number of password entries corresponds to the configured
                    maximum and that the wipe is implemented.
                  </test>
                  <test>[conditional] If the TOE supports multiple authentication mechanisms the
                    previous test shall be repeated using a combination of authentication mechanisms
                    confirming that the critical authentication mechanisms will cause the device to
                    wipe and that when the maximum number of unsuccessful authentication attempts
                    for a non-critical authentication mechanism is exceeded, the device limits
                    authentication attempts to other available authentication mechanisms. If
                    multiple authentication mechanisms utilize a shared counter, then the evaluator
                    shall verify that the maximum number of unsuccessful authentication attempts can
                    be reached by using each individual authentication mechanism and a combination
                    of all authentication mechanisms that share the counter. </test>
                  <test>The evaluator shall repeat the previous tests, but shall power off (by removing the
                    battery, if possible) the TOE between unsuccessful authentication attempts. The
                    evaluator shall verify that the total number of unsuccessful authentication
                    attempts for each authentication mechanism corresponds to the configured maximum
                    and that the critical authentication mechanisms cause the device to wipe.
                    Alternatively, if the number of authentication failures is not maintained for
                    the interface under test, the evaluator shall verify that upon booting the TOE
                    between unsuccessful authentication attempts another authentication factor
                    interface is presented before the interface under test.</test><h:br/>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Excess of authentication failure limit</audit-event-descr>
	    <audit-event-info>Authentication factor used</audit-event-info>
	  </audit-event>
        </f-component>
      <!-- ToDo: Remove per bio cPP module  <f-component cc-id="fia_bmg_ext.1" name="Accuracy of Biometric Authentication" status="sel-based">
		  <depends on1="uau_fing" on2="uau_iris" on3="uau_face" on4="uau_vox" on5="uau_vein" on6="uau_hybr"/>
          <f-element id="fel-baf-far">
            <title>The one-attempt BAF False Accept Rate (FAR) for <assignable>biometric modality
                selected in FIA_UAU.5.1</assignable> shall not exceed <assignable> claimed FAR no
                greater than 1:100</assignable> with a one-attempt BAF False Reject Rate (FRR) not
              to exceed 1 in <assignable>claimed FRR no greater than 1:10</assignable>. </title>
            <note role="application">If a BAF or "hybrid" is selected in FIA_UAU.5.1,
              FIA_BMG_EXT.1.1 must be included in the ST. The assignment must be completed for each
              biometric modality selected in FIA_UAU.5.1. If multiple biometric modalities are
              selected in FIA_UAU.5.1, it is acceptable for each modality to have a different FAR
              and FRR. <h:br/><h:br/> The False Accept Rate (FAR) is the measure of the
              likelihood that the biometric will incorrectly accept an authentication attempt by an
              unauthorized user. A system's FAR typically is stated as the proportion of
              verification transactions with wrongful claims of identity that are incorrectly
              confirmed. <h:br/><h:br/> The False Reject Rate (FRR) is the measure of the
              likelihood that the biometric security system will incorrectly reject an
              authentication attempt by an authorized user. A system's FRR typically is stated as
              the proportion of verification transactions with truthful claims of identity that are
              incorrectly denied. <h:br/><h:br/> Please note that without the use of hybrid
              authentication, multiple authentication attempts for a BAF that is claimed to have a
              one-attempt FAR between 1:100 and 1:500 inclusive will not produce an acceptable SAFAR
              in meeting FIA_BMG_EXT.1.2. More generally, depending on the number of authentication
              attempts allowed for the BAF, the claimed FAR must be strong (or equivalently, low)
              enough so that the SAFAR chosen in FIA_BMG_EXT.1.2 can be met within the 1% margin
              mandated. <h:br/><h:br/> Generally testing environments for a biometric system in
              a mobile device are based on a single legitimate user enrolling and test subjects
              attempt to authenticate. Since a thorough evaluation for FAR and FRR meeting all the
              conditions of statistical independence is not feasible in the time frame of CC
              evaluations and in agreement with ISO/IEC 19795, the use of offline testing is
              acceptable even if this causes the biometric system to deviate slightly from the
              evaluated configuration. Additionally, full cross-comparison (i.e., all test subjects
              are compared to non-self) is acceptable. <h:br/><h:br/> Detailed explanations
              corresponding to the testing environments that are acceptable, to include the number
              of trials needed, can be found in <xref to="biometric1"/>. <h:br/><h:br/>
            </note>
            <aactivity>
              <TSS> The evaluator shall verify that the TSS contains evidence supporting the testing
                and calculations completed to determine the FAR and FRR. <xref to="biometric"
                /> provides guidance to how this testing could be completed and to what error bars
                are expected when the Rule of 3 is applied. The evaluator shall consult <xref
                  to="biometric"/> as a reference, but should not treat it as a mandate. The
                evaluator shall verify that the TSS contains evidence of whether online or offline
                testing was used. If offline testing was completed, evidence describing the
                differences between the biometric system used for testing and the TOE in the
                evaluated configuration, if any must be included. <h:br/><h:br/> The following
                documentation is not required to be part of the TSS - it may be submitted as a
                separate proprietary document. The evaluator shall verify the evidence includes how
                many imposters were used for testing and that the testing describes how imposters
                are compared to enrolled users, for example, if multiple devices for online testing
                or full cross-comparison for offline testing was used. Adequate documentation is
                required to demonstrate that testing was completed to support the claimed FAR and
                FRR.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this element.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-safar">
            <title>The overall System Authentication False Accept Rate (SAFAR) shall be no greater
              than 1 in <assignable> a SAFAR no greater than 1:500</assignable> within a 1%
              margin.</title>
            <note role="application">If a BAF or "hybrid" is selected in FIA_UAU.5.1,
              FIA_BMG_EXT.1.2 must be included in the ST. <h:br/><h:br/> System Authentication
              False Accept Rate (SAFAR) is defined by the combination of individual error rates for
              each authentication factor and attempts used for access to a single session on the
              device. <h:br/><h:br/> Accessing a single session may involve a single
              authentication factor, in which case the SAFAR for a single attempt will be equal to
              the false accept rate (FAR) of that authentication factor and the SAFAR for n attempts
              will be $1-\left(1-FAR\right)^n$, assuming independence. <h:br/><h:br/> Accessing
              a single session on the device may involve the ability to use multiple authentication
              factors. It may be the case that only one authentication factor is needed to access a
              single session on the device (i.e., both a password and a BAF can be used, but only one
              is needed) or that both authentication factors are needed to access a single session
              on the device (i.e., both the BAF and a PIN must be entered). The full equations for
              calculating the SAFAR can be found in <xref to="biometric3"/>. A fully
              worked-out example that applies the equations in <xref to="biometric3"/> for
              calculating the SAFAR can be found in <xref to="biometric4"/>.
              <h:br/><h:br/> The worst-case scenario must be used to calculate the SAFAR. Thus
              the authentication factor with the highest FAR must be used for the maximum number of
              authentication attempts allowed for that factor. If any authentication attempts
              remain, then the authentication factor with the second highest FAR is used for the
              maximum number of authentication attempts allowed for that factor and so on. For
              example, the TOE supports a password and a BAF, the FAR for the BAF is higher than the
              FAR for the password and each authentication factor utilizes a shared counter per
              FIA_AFL_EXT.1. Then the worst-case scenario is the BAF is utilized for the maximum
              number of authentication attempts allowed for the BAF. For any remaining
              authentication attempts allowed the password is utilized. <h:br/><h:br/> Another
              example is the TOE supports a password and two BAFs, where the BAFs have different
              FARs, with both FARs being higher than the password FAR. Then the worst-case scenario
              is that the BAF with the highest FAR is used for the maximum number of authentication
              attempts allowed for that BAF, followed by the second BAF if any authentication
              attempts are allowed for that BAF. If any authentication attempts remain, then the
              password is utilized for those attempts. <h:br/><h:br/> The 1% margin is included
              for cases where a BAF is not a critical authentication factor and thus both BAF and
              password can be used in a session without exceeding the declared SAFAR.
              <h:br/><h:br/>
            </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS indicates which SAFAR the TOE is
                targeting and contains evidence supporting the calculations, per <xref
                  to="biometric3"/>, completed to determine the SAFAR. The evaluator shall
                verify that the TSS contains evidence of how the authentication factors interact,
                per FIA_UAU.5.2 and FIA_AFL_EXT.1. The evaluator shall verify that the TSS, contains
                the combinations of authentication factors needed to meet the SAFAR, and the
                number of attempts for each authentication factor the TOE is configured to allow.
                Adequate documentation is required to demonstrate the calculations completed to
                support the claimed SAFAR. <h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this element.</Tests>
            </aactivity>
          </f-element>
        </f-component>
        <f-component cc-id="fia_bmg_ext.2" name="Biometric Enrollment" status="objective">
          <f-element id="fel-bio-enroll">
            <title>The TSF shall only use biometric samples of sufficient quality for enrollment.
              Sample data shall have <assignable>quality metrics corresponding to each biometric
                modality</assignable>.</title>
            <note role="application"> Different biometric modalities utilize different quality
              standards. The quality standard for the each BAF selected in FIA_UAU.5 should be
              listed in the assignment. For example, fingerprint may utilize the NFIQ standard where
              NFIQ 1.0 scores of 1, 2, or 3 are required for use in hardware PIV, where 1 is the
              highest quality standard. NFIQ 2.0 is a newer version of the NFIQ standard that has
              not seen widespread adoption as of the publication of this PP but is being considered
              by the scientific community as well as by industry. Samples used to create the
              authentication template/profile at enrollment must be mutually consistent. After the
              authentication template has been created, it must be tested to determine whether or
              not it is of sufficient quality and if not, more quality samples must be added until
              it is of sufficient quality.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes how the quality of samples used
                to create the authentication template at enrollment are verified. As well as the
                quality standard that the validation method uses to perform the assessment.
                <h:br/><h:br/></TSS>
              <Guidance> The evaluator shall verify that the AGD guidance describes how to enroll a
                user for each biometric modality supported. <h:br/><h:br/></Guidance>
              <Tests> The evaluator shall input biometric samples for enrollment. Upon inputting
                biometric samples a fixed number of times as specified in the prompts, one or more
                authentication templates will be generated. The evaluator shall verify that the
                device only accepts samples of sufficient quality or requests additional samples if
                the authentication template is not of sufficient quality. For all quality metrics,
                the evaluator shall ensure that biometric samples achieving a worse quality score
                than the prescribed threshold are rejected.</Tests>
            </aactivity>
          </f-element>
        </f-component>
        <f-component cc-id="fia_bmg_ext.3" name="Biometric Verification" status="objective">
          <f-element id="fel-bio-verify">
            <title>The TSF shall only use biometric samples of sufficient quality for verification.
              As such, sample data shall have <assignable>quality metrics corresponding to each
                biometric modality</assignable>.</title>
            <note role="application">Different biometric modalities utilize different quality
              standards. The quality standard for the each BAF selected in FIA_UAU.5 should be
              listed in the assignment. For example, fingerprint may utilize the NFIQ standard where
              NFIQ 1.0 scores of 1, 2, or 3 are required for use in hardware PIV, where 1 is the
              highest quality standard. NFIQ 2.0 is a newer version of the NFIQ standard that has
              not seen widespread adoption as of the publication of this PP but is being considered
              by the scientific community as well as by industry.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes how the quality of samples used
                to verify authentication are verified. As well as the quality standard that the
                validation method uses to perform the assessment. The evaluator shall enroll a user
                for each biometric modality supported. The evaluator will then input biometric
                samples for verification and ensure that the device only accepts samples of
                sufficient quality. The evaluator shall ensure that biometric samples achieving a
                worse quality score than the prescribed threshold are rejected.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
        </f-component>
        <f-component cc-id="fia_bmg_ext.4" name="Biometric Templates" status="objective">
          <f-element id="fel-bio-template">
            <title>The TSF shall only generate and use enrollment templates or authentication
              templates of sufficient quality for any subsequent authentication functions. </title>
            <note role="application"> If the vendor needs to develop an authentication template
              using multiple enrollment samples, they must all be mutually consistent and
              correspond to the biometric characteristics of a single user and source. For the
              purposes of this requirement, enrollment templates are templates constructed from
              sample data, while authentication templates are generated based on sample data or
              enrollment templates and stored for matching/biometric verification purposes. One or
              more templates could be generated during enrollment without the user knowing how many.
              <h:br/><h:br/> Authentication templates may not have standard quality metrics, but
              vendor or labs still need to ensure that such templates have a sufficient feature
              set available to provide a desired identity assurance level. Examples include minimum
              number of fingerprint minutiae. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes how the samples used to create
                the authentication template at enrollment are mutually consistent and how the mutual
                consistency is validated, both in terms of the method of validation as well as the
                quality standard that the validation method uses to perform the assessment.
                <h:br/><h:br/> The evaluator shall input biometric samples for enrollment. In
                doing so, the evaluator shall verify the enrollment templates generated are of
                sufficient quality. Upon inputting biometric samples a fixed number of times as
                specified in the prompts, the evaluator shall additionally verify that any
                enrollment and authentication templates generated are of sufficient quality. That
                is, they shall all be mutually consistent and correspond to the biometric
                characteristics of a single user and source (e.g. the same finger from the same
                person).<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
        </f-component>
        <f-component cc-id="fia_bmg_ext.5" name="Handling Unusual Biometric Templates" status="objective">
          <f-element id="fel-bio-odd">
            <title>The matching algorithm shall handle properly formatted enrollment templates
              or authentication templates, especially those with unusual data properties,
              appropriately. If such templates contain incorrect syntax, are of low quality, or
              contain enrollment data considered unrealistic for a given modality, then they shall
              be rejected by the matching algorithm and an error code shall be reported.</title>
            <note role="application">While it is important to have properly formatted enrollment or
              authentication templates, it is equally important for the matching algorithm to
              correctly handle enrollment or authentication templates that have unusual data
              properties or are of low quality. If the matching algorithm detects templates that are
              of low quality, have low numbers of bits of complexity, or maintain unusual data
              properties, it must return an error code or other indication in order to protect the
              system from possible spoofing or denial-of-service attacks. For the purposes of this
              requirement, enrollment templates are templates constructed from sample data, while
              authentication templates are stored for matching/biometric verification purposes.
              <h:br/><h:br/> Examples of unusual data properties that may cause fingerprint
              enrollment template rejection include, but are not limited to, minutia counts that are
              too high or too low, direction field maps that do not correspond to real fingerprint
              ridge flow maps, all detected minutia crowded to the extreme edges of the image area,
              and ridge widths that are too wide or too narrow. <h:br/><h:br/> Accordingly, if
              an enrollment template or authentication template meets the structural
              requirements but without proper syntax, the matching algorithm must similarly return
              an error code or other indication to similar effect. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS how the matching algorithm addresses
                properly formatted templates with unusual data properties, incorrect syntax, or low
                quality. The evaluator shall ensure that these claims are sound through appropriate
                testing based on test programs provided by the vendor.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
        </f-component>
        <f-component cc-id="fia_bmg_ext.6" name="Spoof Detections for Biometrics" status="objective">
          <f-element id="fel-bio-spoof">
            <title>The TSF shall perform Presentation Attack Detection testing up to the attack
              potential of <selectables onlyone="yes">
                <selectable>basic</selectable>
                <selectable>intermediate</selectable>
                <selectable>advanced</selectable>
              </selectables> attacks, for each biometric modalities selected in FIA_UAU.5.1 on each
              enrollment and authentication attempt, rejecting detected spoofs. When an
              authentication attempt fails due to PAD testing, the TSF shall not indicate to the
              user the reason for failure to authenticate.</title>
            <note role="application"> Presentation Attack Detection (PAD) is also known as liveness
              detection or spoof detection. If multiple modalities are selected in FIA_UAU.5.1, then
              this SFR must be iterated for each modality. For each modality, only one attack
              strength must be selected.<h:br/><h:br/> Because Presentation Attack Detection
              (PAD) is an open-ended problem much like vulnerability testing, it is neither
              cost-effective nor feasible to create a complete list of attack vectors and perform
              testing on all of them during the time frame for CC evaluations. Such a list would be
              ever-changing, and unlike code vulnerabilities (i.e., CVEs), the equipment, skill,
              time, and cost required to test highly sophisticated attacks is highly infeasible for
              a testing lab given the current time frame for CC evaluations. Nevertheless, it is a
              known risk that has been documented by researchers for years. <h:br/><h:br/>
              Therefore, vendors are responsible for providing their own documentation specifying
              the measures the TSF takes to mitigate presentation attacks and the appropriate
              pen-testing (for example, red teaming and blue teaming) performed as proof.
              <h:br/><h:br/> To be specific, basic attacks (including basic and enhanced-basic
                <xref to="IBPC"/>) refer to attacks in literature of low skill that can be
              performed on a limited budget. This includes, but is not limited to, playback attacks
              of a spoken utterance using a different mobile device for voice authentication, taking
              a photograph of a fingerprint or facial and submitting it to the sensor, among other
              examples. <h:br/><h:br/> Intermediate (or moderate <xref to="IBPC"/>) attacks
              can include, but are not limited to, creating a foam finger to thwart fingerprint
              detection and using a higher quality playback device to thwart liveness detection.
              <h:br/><h:br/> Advanced (including high and beyond high <xref to="IBPC"/>)
              attacks can include, but are not limited to, creating a synthetic hand with the given
              fingerprint using an expensive 3D-printer and forcing someone to reveal one’s
              credentials through coercion or threats that may cause harm (where detection of duress
              is required). Many of these attack techniques may be sensitive or government
              classified. </note>
            <aactivity>
              <TSS>The testing methodology specified in ISO 19989 Information technology — Security
                evaluation of presentation attack detection for biometrics <xref to="ISO19989"
                /> is to be used to determine the efficacy of the PAD for the selected attack
                potential. <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>                <h:b>Evaluation Activity Note:</h:b> ISO 19989 is in draft status at the time of
                publication of this PP. Once the ISO standard is published, it shall be used to meet
                the evaluation activity for this requirement. Henniger, Scheuermann, and Kniess <xref
                  to="IBPC"/>, provide a description of attack potential calculation with
                examples. Until such time as ISO 19989 is published, the vendor shall provide to the
                lab a description of the PAD processing implemented in the TSF, test procedures used
                to validate successful operation of PAD, and test data with results of the PAD
                validation testing. The lab may analyze the test procedures and data to validate
                vendor test results or, optionally, may conduct its own testing. <h:br/><h:br/>
                If the lab performs its own testing, it is highly recommended that the vendor
                provides spoof testing tools, as it is not expected for the lab to create a test
                procedure for modalities outside of established standards and easily implemented
                procedures. Labs can also expedite the testing process by purchasing the appropriate
                spoof kits and recipes from specialized biometrics testing labs.</Tests>
            </aactivity>
          </f-element>
        </f-component> -->
        
        <ext-comp-def fam-id="FIA_PMG_EXT" title="Password Management">
          <fam-behavior>This family defines requirements for the composition of password credentials. 
          </fam-behavior>
        </ext-comp-def>
        
        <f-component cc-id="fia_pmg_ext.1" name="Password Management">
          
          <comp-lev> requires the TSF to enforce character length and composition requirements for password credentials.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Configuring password policy.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_UAU.5 Multiple Authentication Mechanisms</dependencies>
          
          
          <f-element id="fel-password-manage">
            <title>The TSF shall support the following for the Password Authentication Factor: <h:ol>
                <h:li>Passwords shall be able to be composed of any combination of <selectables>
                    <selectable>upper and lower case letters</selectable>
                    <selectable><assignable>a character set of at least 52
                      characters</assignable></selectable>
                  </selectables>, numbers, and special characters: <selectables>
                    <selectable>"!"</selectable>
                    <selectable>"@"</selectable>
                    <selectable>"#"</selectable>
                    <selectable>"$"</selectable>
                    <selectable>"%"</selectable>
                    <selectable>"^"</selectable>
                    <selectable>"&amp;"</selectable>
                    <selectable> "*"</selectable>
                    <selectable>"("</selectable>
                    <selectable>")"</selectable>
                    <selectable><assignable>other characters</assignable></selectable>
                  </selectables>; </h:li>
                <h:li>Password length up to <assignable>an integer greater than or equal to
                    14</assignable> characters shall be supported. </h:li>
              </h:ol>
            </title>
            <note role="application">While some corporate policies require passwords of 14
              characters or better, the use of a REK for DAR protection and key storage protection
              and the anti-hammer requirement (FIA_TRT_EXT.1) addresses the threat of attackers with
              physical access using much smaller and less complex passwords. <h:br/><h:br/> The
              ST author selects the character set: either the upper and lower case Basic Latin
              letters or another assigned character set containing at least 52 characters. The
              assigned character set must be well defined: either according to an international
              encoding standard (such as Unicode) or defined in the assignment by the ST author. The
              ST author also selects the special characters that are supported by the TOE; they may
              optionally list additional special characters supported using the assignment. </note>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>The evaluator shall examine the operational guidance to determine that it
                provides guidance to security administrators on the composition of strong passwords,
                and that it provides instructions on setting the minimum password length.</Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall compose passwords that either meet the requirements, or
                    fail to meet the requirements, in some way. For each password, the evaluator
                    shall verify that the TOE supports the password. While the evaluator is not
                    required (nor is it feasible) to test all possible compositions of passwords,
                    the evaluator shall ensure that all characters, rule characteristics, and a
                    minimum length listed in the requirement are supported, and justify the subset
                    of those characters chosen for testing.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FIA_TRT_EXT" title="Authentication Throttling">
          <fam-behavior>This family defines requirements for prevention of brute-force authentication attempts. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fia_trt_ext.1" name="Authentication Throttling">
          
          <comp-lev> requires the TSF to limit authentication attempts by number of attempts in a set amount of time.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_UAU.5 Multiple Authentication Mechanisms</dependencies>
          
          <f-element id="fel-auth-throttle">
            <title>The TSF shall limit automated user authentication attempts by <selectables>
                <selectable>preventing authentication via an external port</selectable>
                <selectable>enforcing a delay between incorrect authentication attempts</selectable>
              </selectables> for all authentication mechanisms selected in FIA_UAU.5.1. The minimum
              delay shall be such that no more than 10 attempts can be attempted per 500
              milliseconds. </title>
            <note role="application">The authentication throttling applies to all authentication
              mechanisms selected in FIA_UAU.5.1. The user authentication attempts in this
              requirement are attempts to guess the Authentication Factor. The developer can
              implement the timing of the delays in the requirements using unequal or equal timing
              of delays. The minimum delay specified in this requirement provides defense against
              brute forcing.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes the method by which
                authentication attempts are not able to be automated. The evaluator shall ensure
                that the TSS describes either how the TSF disables authentication via external
                interfaces (other than the ordinary user interface) or how authentication attempts
                are delayed in order to slow automated entry and shall ensure that this delay totals
                at least 500 milliseconds over 10 attempts for all authentication mechanisms
                selected in FIA_UAU.5.1.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fia_uau.5" name="Multiple Authentication Mechanisms">
          <f-element id="fel-uau">
            <title>The TSF shall provide <h:b>password and</h:b> <selectables>
              <!-- ToDo: Remove per bio cPP module: <selectable id="uau_fing">fingerprint</selectable>
                  <selectable id="uau_iris"> iris</selectable>
                  <selectable id="uau_face"> face</selectable>
                  <selectable id="uau_vox"> voice</selectable>
                  <selectable id="uau_vein"> vein</selectable> -->
                  <selectable id="uau_biometric"> biometric in accordance with the <xref to="mod-biometrics"/></selectable>
                  <selectable id="uau_hybr"> hybrid</selectable>
                  <selectable exclusive="yes">no other mechanism</selectable>
                </selectables>
              to support user authentication. </title>
            <note role="application">The TSF must support a Password Authentication Factor and may
              optionally implement a BAF<!-- ToDo: Remove per bio cPP module: , in the form of a fingerprint, iris, face, voice and
              (finger/palm) vein -->. A hybrid authentication factor is where a user has to submit a
              combination of PIN/password and biometric sample where both have to pass and if either
              fails the user is not made aware of which factor failed.<h:br/><h:br/> 
              If <xref to="uau_biometric"/> or <xref to="uau_hybr"/> is selected,
	      then the TSF must be validated against requirements from the <xref to="mod-biometrics"/>.<h:br/><h:br/>
	      
              If <xref to="uau_hybr"/> is selected, <xref to="uau_biometric"/> does not need to be selected, but should be
              selected if the biometric authentication can be used independent of the hybrid
              authentication, i.e., without having to enter a PIN/password.<h:br/><h:br/>              
              <!-- If a biometric modality or "hybrid" is selected, then FIA_BMG_EXT.1 and FDP_PBA_EXT.1 must
              be included in the ST. <h:br/><h:br/> If "using a PIN as an additional factor" or
              "using a password as an additional factor" is selected in FDP_PBA_EXT.1.1, then
              "hybrid" must be selected. <h:br/><h:br/> -->
              The Password Authentication Factor is configured as defined in FIA_PMG_EXT.1.
              </note>
          </f-element>
          <f-element id="fel-auth-claim">
            <title>The TSF shall authenticate any user's claimed identity according to the
                <assignable>rules describing how the multiple authentication mechanisms provide
                  authentication</assignable>.</title>
            <note role="application">Rules regarding how the authentication
              factors interact in terms of unsuccessful authentication are covered in
              FIA_AFL_EXT.1.</note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS describes each mechanism provided to
                support user authentication and the rules describing how the authentication
                mechanisms provide authentication. <h:br/><h:br/>
                Specifically, for all authentication mechanisms defined in FIA_UAU.5.1, the
                evaluator shall ensure that the TSS describes the rules as to how each authentication mechanism is used. Example
                rules are how the authentication mechanism authenticates the user (i.e., how does the
                TSF verify that the correct password or biometric sample was entered), the result of a
                successful authentication (i.e., is the user input used to derive or unlock a key) and
                which authentication mechanism can be used at which authentication factor interfaces
                (i.e., if there are times, for example, after a reboot, that only specific
                authentication mechanisms can be used). If multiple BAFs are claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/>, the interaction between the BAFs must be described. For example, whether the
                multiple BAFs can be enabled at the same time.<h:br/><h:br/></TSS>
              <Guidance> The evaluator shall verify that configuration guidance for each
                authentication mechanism is addressed in the AGD guidance.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>For each authentication mechanism selected in FIA_UAU.5.1, the evaluator shall enable that
                    mechanism and verify that it can be used to authenticate the user at the
                    specified authentication factor interfaces. </test>
                  <test>For each authentication mechanism rule, the evaluator shall ensure that the
                    authentication mechanisms behave accordingly.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fia_uau.6" iteration="CREDENTIAL" name="Re-Authenticating (Credential Change)">
          <f-element id="fel-reauth-when">
            <title>The TSF shall re-authenticate the user <refinement>via the Password
              Authentication Factor</refinement> under the conditions [<h:i>attempted change
                to any supported authentication mechanisms</h:i>]. </title>
            <note role="application">The password authentication factor must be entered before
              either the password or biometric authentication factor, if selected in FIA_UAU.5.1,
              can be changed.</note>
              <aactivity level="element">
              <TSS>There are no TSS evaluation activities for this element.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TSF to use the Password Authentication
                    Factor according to the AGD guidance. The evaluator shall change Password
                    Authentication Factor according to the AGD guidance and verify that the TSF
                    requires the entry of the Password Authentication Factor before allowing the
                    factor to be changed.</test>
                  <test>[conditional] If <xref to="uau_biometric"/> is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/> the evaluator shall
                    configure the TSF to use the BAF, which includes configuring the Password
                    Authentication Factor, according to the AGD guidance. The evaluator shall change
                    the BAF according to the AGD guidance and verify that the TSF requires the entry
                    of the Password Authentication Factor before allowing the BAF to be changed. </test>
                  <test>[conditional] If <xref to="uau_hybr"/> is selected in FIA_UAU.5.1, the evaluator shall
                    configure the TSF to use the BAF and PIN or password, which includes configuring
                    the Password Authentication Factor, according to the AGD guidance. The evaluator
                    shall change the BAF and PIN according to the AGD guidance and verify that the
                    TSF requires the entry of the Password Authentication Factor before allowing the
                    factor to be changed.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <f-component cc-id="fia_uau.6" iteration="LOCKED" name="Re-Authenticating (TSF Lock)">
          <f-element id="fel-reauth-how">
            <title> The TSF shall re-authenticate the user <refinement>via an authentication factor
              defined in FIA_UAU.5.1</refinement> under the conditions <refinement>TSF-initiated
                lock, user-initiated lock, <assignable>other conditions</assignable></refinement>. </title>
            <note role="application">Depending on the selections made in FIA_UAU.5.1, either the
              password (at a minimum), biometric authentication or hybrid authentication mechanisms
              can be used to unlock the device. TSF-initiated and user-initiated locking is described in
              FTA_SSL_EXT.1.</note>
            <aactivity level="element">
              <TSS>There are no TSS evaluation activities for this element.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TSF to transition to the locked state
                    after a time of inactivity (FMT_SMF_EXT.1) according to the AGD guidance. The
                    evaluator shall wait until the TSF locks and then verify that the TSF requires
                    the entry of the Password Authentication Factor before transitioning to the
                    unlocked state.</test>
                  <test>[conditional] If <xref to="uau_biometric"/> is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/> the evaluator shall
                    repeat Test 1 verifying that the TSF requires the entry of the BAF before
                    transitioning to the unlocked state. </test>
                  <test>[conditional] If <xref to="uau_hybr"/> is selected in FIA_UAU.5.1, the evaluator shall
                    repeat Test 1 verifying that the TSF requires the entry of the BAF and
                    PIN/password before transitioning to the unlocked state. </test>
                  <test id="t-locks">The evaluator shall configure user-initiated locking according to the AGD
                    guidance. The evaluator shall lock the TSF and then verify that the TSF requires
                    the entry of the Password Authentication Factor before transitioning to the
                    unlocked state.</test>
                  <test>[conditional] If <xref to="uau_biometric"/> is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/> the evaluator shall
                    repeat <xref to="t-locks"/> verifying that the TSF requires the entry of the BAF before
                    transitioning to the unlocked state.</test>
                  <test>[conditional] If <xref to="uau_hybr"/> is selected in FIA_UAU.5.1, the evaluator shall
                    repeat <xref to="t-locks"/> verifying that the TSF requires the entry of the BAF and
                    PIN/password before transitioning to the unlocked state.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>User changes Password Authentication Factor</audit-event-descr>
	  </audit-event>
        </f-component>
        <f-component cc-id="fia_uau.7" name="Protected Authentication Feedback ">
          <f-element id="fel-auth-feedback">
            <title>The TSF shall provide only [<h:i>obscured feedback to the device’s
              display</h:i>] to the user while the authentication is in progress. </title>
            <note role="application">This applies to all authentication methods defined in
              FIA_UAU.5.1. The TSF may briefly (1 second or less) display each character or provide
              an option to allow the user to unmask the password; however, the password must be
              obscured by default. <h:br/><h:br/>

	      If <xref to="uau_biometric"/> is selected in FIA_UAU.5.1, the TSF
              must not display sensitive information regarding any BAF that could aid an
              adversary in identifying or spoofing the respective biometric characteristics of a
              given human user. While it is true that biometric samples, by themselves, are not
              secret, the analysis performed by the respective biometric algorithms, as well as
              output data from these biometric algorithms, is considered sensitive and must be kept
              secret. Where applicable, the TSF must not reveal or make public the reasons for
              authentication failure. </note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS describes the means of obscuring the
                authentication entry, for all authentication methods defined in FIA_UAU.5.1.<h:br/><h:br/> </TSS>
              <Guidance>The evaluator shall verify that any configuration of this requirement is
                addressed in the AGD guidance and that the password is obscured by default. </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall enter passwords on the device, including at least the
                    Password Authentication Factor at lock screen, and verify that the password is
                    not displayed on the device. </test>
                    <test>[conditional] If <xref to="uau_biometric"/> is selected in FIA_UAU.5.1,
		    for each BAF claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/> the evaluator shall
                    authenticate by producing a biometric sample at lock screen. As the biometric
                    algorithms are performed, the evaluator shall verify that sensitive images,
                    audio, or other information identifying the user are kept secret and are not
                    revealed to the user. Additionally, the evaluator shall produce a biometric
                    sample that fails to authenticate and verify that the reasons for
                    authentication failure (user mismatch, low sample quality, etc.) are not
                    revealed to the user. It is acceptable for the BAF to state that it was unable
                    to physically read the biometric sample, for example, if the sensor is unclean
                    or the biometric sample was removed too quickly. However, specifics regarding
                    why the presented biometric sample failed authentication shall not be revealed
                    to the user.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FIA_UAU_EXT" title="User Authentication">
          <fam-behavior>This family defines requirements for user authentication that are not addressed by FIA_UAU in CC Part 2. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fia_uau_ext.1" name="Authentication for Cryptographic Operation">
          
          <comp-lev> requires the TSF enforce data-at-rest protection until successful authentication has occurred. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FDP_DAR_EXT.1 Protected Data Encryption<h:br/>
            FDP_DAR_EXT.2 Sensitive Data Encryption
          </dependencies>
          
          
          <f-element id="fel-auth-before-decrypt">
            <title>The TSF shall require the user to present the Password Authentication Factor
              prior to decryption of protected data and encrypted DEKs, KEKs and <selectables>
                <selectable>long-term trusted channel key material</selectable>
                <selectable>all software-based key storage</selectable>
                <selectable exclusive="yes">no other keys</selectable>
              </selectables> at startup. </title>
            <note role="application">The intent of this requirement is to prevent decryption of
              protected data before the user has authorized to the device using the Password
              Authentication Factor. The Password Authentication Factor is also required in order
              derive the key used to decrypt sensitive data, which includes software-based secure
              key storage. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS section of the ST describes the process
                for decrypting protected data and keys. The evaluator shall ensure that this process
                requires the user to enter a Password Authentication Factor and, in accordance with
                FCS_CKM_EXT.3, derives a KEK, which is used to protect the software-based secure key
                storage and (optionally) DEKs for sensitive data, in accordance with
                FCS_STG_EXT.2.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The following tests may be performed in conjunction with FDP_DAR_EXT.1 and
                FDP_DAR_EXT.2. <h:br/><h:br/>
                <h:b>Evaluation Activity Note:</h:b> The following test require the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. <h:br/><h:br/>
                <testlist>
                  <test id="unauthenticated-encrypted-data">The evaluator shall enable encryption of protected data and require user
                    authentication according to the AGD guidance. The evaluator shall write, or the
                    developer shall provide access to, an application that includes a unique string
                    treated as protected data. <h:br/><h:br/> The evaluator shall reboot the
                    device, use a tool provided by developer to search for the unique string within
                    the application data, and verify that the unique string cannot be found. The
                    evaluator shall enter the Password Authentication Factor to access full device
                    functionality, use a tool provided by the developer to access the unique string
                    within the application data, and verify that the unique string can be found. </test><h:br/>
                  <test>[conditional] The evaluator shall require user authentication according to
                    the AGD guidance. The evaluator shall store a key in the software-based secure
                    key storage. <h:br/><h:br/> The evaluator shall lock the device, use a tool
                    provided by developer to access the key within the stored data, and verify that
                    the key cannot be retrieved or accessed. The evaluator shall enter the Password
                    Authentication Factor to access full device functionality, use a tool provided
                    by developer to access the key, and verify that the key can be retrieved or
                    accessed. </test><h:br/>
                  <test>[conditional] The evaluator shall enable encryption of sensitive data and
                    require user authentication according to the AGD guidance. The evaluator shall
                    write, or the developer shall provide access to, an application that includes a
                    unique string treated as sensitive data. <h:br/><h:br/> The evaluator shall
                    lock the device, use a tool provided by developer to attempt to access the
                    unique string within the application data, and verify that the unique string
                    cannot be found. The evaluator shall enter the Password Authentication Factor to
                    access full device functionality, use a tool provided by developer to access the
                    unique string within the application data, and verify that the unique string
                    can be retrieved. </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fia_uau_ext.2" name="Timing of Authentication">
          
          <comp-lev> requires the TSF to prevent a subject’s use of TOE until the user is authenticated.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Enabling/disabling display TSF notifications while in the locked state.</h:li>
              <h:li>Enabling/disabling bypass of local user authentication.</h:li>
            </h:ul>
            </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Action performed before authentication.</h:li>
            </h:ul>
          </audit>
          <dependencies>No dependencies.
          </dependencies>
          
          <f-element id="fel-before-auth-what">
            <title>The TSF shall allow <selectables>
                <selectable>
                  <assignable>list of actions</assignable></selectable>
                <selectable> no actions</selectable>
              </selectables> on behalf of the user to be performed before the user is authenticated.
            </title>
          </f-element>
          <f-element id="fel-auth-before-what">
            <title>The TSF shall require each user to be successfully authenticated before allowing
              any other TSF-mediated actions on behalf of that user. </title>
            <note role="application">The security relevant actions allowed by unauthorized users in
              locked state must be listed. At a minimum the actions that correspond to the functions
              available to the user in FMT_SMF_EXT.1 and are allowed by unauthorized users in locked
              state should be listed. For example, if the user can enable/disable the camera per
              function <xref to="mf-audioVisual"/> of FMT_SMF_EXT.1 and unauthorized users can
              take a picture when the device is in locked state, this action must be listed. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes the actions allowed by
                unauthorized users in the locked state.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>The evaluator shall attempt to perform some actions not listed in the selection
                while the device is in the locked state and verify that those actions do not
                succeed. </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Action performed before authentication</audit-event-descr>
	  </audit-event>
        </f-component>
        <f-component cc-id="fia_uau_ext.4" id="fc-fia-uau-ext-4" name="Secondary User Authentication" status="optional">
          <comp-lev> requires the TSF to enforce the use of a secondary authentication factor to access certain user data.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FDP_ACF_EXT.2 Access Control for System Resources<h:br/>
            FIA_UAU.5 Multiple Authentication Mechanisms
          </dependencies>
          
          <f-element id="fel-two-auths">
            <title>The TSF shall provide a secondary authentication mechanism for accessing
              Enterprise applications and resources. The secondary authentication mechanism shall
              control access to the Enterprise application and shared resources and shall be
              incorporated into the encryption of protected and sensitive data belonging to
              Enterprise applications and shared resources.</title>
            <note role="application">For the BYOD use case, Enterprise applications and data must
              be protected using a different password than the user authentication to gain access to
              the personal applications and data, if configured. <h:br/><h:br/> 
				
			  This requirement
              must be included in the ST if the TOE implements a container solution, in which there
              is a separate authentication, to separate user and Enterprise applications and
              resources. </note>
            <aactivity level="element">
              <TSS>There are no TSS evaluation activities for this element.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>The Evaluation Activities for any selected requirements related to device
                authentication must be separately performed for the secondary authentication
                mechanism (in addition to activities performed for the primary authentication
                mechanism). The requirements are: FIA_UAU.6/CREDENTIAL, FIA_UAU.6/LOCKED, FIA_PMG_EXT.1, FIA_TRT_EXT.1,
                FIA_UAU.7, FIA_UAU_EXT.2, FTA_SSL_EXT.1, FCS_STG_EXT.2, FMT_SMF_EXT.1/FMT_MOF_EXT.1
                #1, #2, #8, #21, and #36. <h:br/><h:br/> Additionally, FIA_AFL_EXT.1 must be
                met, except that in FIA_AFL_EXT.1.2 the separate test is performed with the text
                "wipe of all protected data" changed to "wipe of all Enterprise application data and
                all Enterprise shared resource data." </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-two-auth-when">
            <title>The TSF shall require the user to present the secondary authentication factor
              prior to decryption of Enterprise application data and Enterprise shared resource
              data.</title>
              <note role="application">
		<!-- This requirement must be selected if FIA_UAU_EXT.4.1 is -->
		<!-- selected. -->
		The intent of this requirement is to prevent decryption of protected
              Enterprise application data and Enterprise shared resource data before the user has
              authenticated to the device using the secondary authentication factor. Enterprise
              shared resource data consists of the FDP_ACF_EXT.2.1 selections.</note>
            <aactivity level="element">
              <TSS> The evaluator shall verify that the TSS section of the ST describes the process
                for decrypting Enterprise application data and shared resource data. The evaluator
                shall ensure that this process requires the user to enter an Authentication Factor
                and, in accordance with FCS_CKM_EXT.3, derives a KEK which is used to protect the
                software-based secure key storage and (optionally) DEKs for sensitive data, in
                accordance with FCS_STG_EXT.2.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this element.<h:br/><h:br/></Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FIA_X509_EXT" title="X.509 Certificates">
          <fam-behavior>This family defines requirements for the management and use of X.509 certificates. 
          </fam-behavior>
        </ext-comp-def>
        <!--
        <f-component cc-id="fia_x509_ext.1" name="X.509 Validation of Certificates">
          
          <comp-lev> specifies the rules the TSF must follow to determine if a particular X.509 certificate is valid.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following action is be auditable:
            <h:ul>
              <h:li>Failure to validate X.509v3 certificate.</h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          
          
          <f-element id="fel-val-certs">
            <title>The TSF shall validate certificates in accordance with the following rules: <h:ul>
              <h:li>RFC 5280 certificate validation and certificate path validation.</h:li>              
              <h:li>The certificate path must terminate with a certificate in the Trust Anchor Database.</h:li>
              <h:li>The TSF shall validate a certificate path by ensuring the presence of the basicConstraints extension, that the CA flag is set to TRUE for all CA certificates, and that any path constraints are met.</h:li>
              <h:li>The TSF shall validate that any CA certificate includes caSigning purpose in the key usage field.</h:li>
              <h:li>The TSF shall validate the revocation status of the certificate using <selectables>
                <selectable>OCSP as specified in RFC 6960</selectable>
                <selectable id="s-crl">CRL as specified in RFC 5759</selectable>
                <selectable>an OCSP TLS Status Request Extension (OCSP stapling) as specified in RFC 6066</selectable>
                <selectable>OCSP TLS Multi-Certificate Status Request Extension (i.e., OCSP Multi-Stapling) as specified in RFC 6961</selectable>
              </selectables>.</h:li>
              <h:li>The TSF shall validate the extendedKeyUsage field according to the following rules:<h:ul>
                <h:li>Certificates used for trusted updates and executable code integrity verification shall have the Code Signing Purpose (id-kp 3 with OID 1.3.6.1.5.5.7.3.3) in the extendedKeyUsage field.</h:li>
                <h:li>Server certificates presented for TLS shall have the Server Authentication purpose (id-kp 1 with OID 1.3.6.1.5.5.7.3.1) in the extendedKeyUsage field.</h:li>
                <h:li>Server certificates presented for EST shall have the CMC Registration Authority (RA) purpose (id-kp-cmcRA with OID 1.3.6.1.5.5.7.3.28) in the extendedKeyUsage field. [conditional]</h:li>
                <h:li>Client certificates presented for TLS shall have the Client Authentication purpose (id-kp 2 with OID 1.3.6.1.5.5.7.3.2) in the extendedKeyUsage field.</h:li>
                <h:li>OCSP certificates presented for OCSP responses shall have the OCSP Signing purpose (id-kp 9 with OID 1.3.6.1.5.5.7.3.9) in the extendedKeyUsage field. [conditional]</h:li></h:ul></h:li>
              </h:ul>
            </title>
	    <ext-comp-def-title>            <title>The TSF shall validate certificates in accordance with the following rules: <assignable>list of rules</assignable>.
	    </title></ext-comp-def-title>
            <note role="application">FIA_X509_EXT.1.1 lists the rules for validating certificates. The ST author must select whether revocation status is verified using OCSP or CRLs. OCSP stapling and OCSP multi-stapling only support TLS server certificate validation. If other certificate types are validated, either OCSP or CRL should be claimed. The <xref to="mod-wlanclient"/>, to which a MDF TOE must also conform, requires that certificates are used for EAP-TLS; this use requires that the extendedKeyUsage rules are verified. Certificates may optionally be used for trusted updates of system software and applications (FPT_TUD_EXT.2) and for integrity verification (FPT_TST_EXT.2(1)) and, if implemented, must be validated to contain the Code Signing purpose extendedKeyUsage.<h:br/><h:br/>
              While FIA_X509_EXT.1.1 requires that the TOE perform certain checks on the certificate presented by a TLS server, there are corresponding checks that the authentication server will have to perform on the certificate presented by the client; namely that the extendedKeyUsage field of the client certificate includes “Client Authentication” and that the key agreement bit (for the Diffie-Hellman ciphersuites) or the key encipherment bit (for RSA ciphersuites) be set. Certificates obtained for use by the TOE will have to conform to these requirements in order to be used in the enterprise. This check is required to support EAP-TLS for the <xref to="mod-wlanclient"/>.</note>
          </f-element>
          <f-element id="fel-cacert-what">
            <title>The TSF shall only treat a certificate as a CA certificate if the
              basicConstraints extension is present and the CA flag is set to TRUE. </title>
            <note role="application">This requirement applies to certificates that are used and
              processed by the TSF and restricts the certificates that may be added to the Trust
              Anchor Database.</note>
            <aactivity>
              <TSS>The evaluator shall ensure the TSS describes where the check of validity of the certificates takes place. The evaluator ensures the TSS also provides a description of the certificate path validation algorithm.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The tests described must be performed in conjunction with the other Certificate Services evaluation activities, including the use cases in FIA_X509_EXT.2.1 and FIA_X509_EXT.3. The tests for the extendedKeyUsage rules are performed in conjunction with the uses that require those rules. The evaluator shall create a chain of at least four certificates: the node certificate to be tested, two Intermediate CAs, and the self-signed Root CA.
                <testlist>             
                <test> The evaluator shall demonstrate that validating a certificate without a valid certification path results in the function failing, for each of the following reasons, in turn:<h:ul>
                  <h:li>By establishing a certificate path in which one of the issuing certificates is not a CA certificate,</h:li>    
                  <h:li>By omitting the basicConstraints field in one of the issuing certificates,</h:li>
                  <h:li>By setting the basicConstraints field in an issuing certificate to have CA=False,</h:li>
                  <h:li>By omitting the CA signing bit of the key usage field in an issuing certificate, and</h:li>
                  <h:li>By setting the path length field of a valid CA field to a value strictly less than the certificate path.</h:li>
                </h:ul>
                The evaluator shall then establish a valid certificate path consisting of valid CA certificates, and demonstrate that the function succeeds. The evaluator shall then remove trust in one of the CA certificates, and show that the function fails.
                </test><h:br/>
                <test>The evaluator shall demonstrate that validating an expired certificate results in the function failing.
                </test><h:br/>
                  <test>The evaluator shall test that the TOE can properly handle revoked certificates-conditional on whether CRL, OCSP, OSCP stapling, or OCSP multi-stapling is selected; if multiple methods are selected, then the following tests shall be performed for each method:<h:br/><h:br/>
                
                The evaluator shall test revocation of the node certificate.<h:br/><h:br/>
                
                The evaluator shall also test revocation of the intermediate CA certificate (i.e., the intermediate CA certificate should be revoked by the root CA). For the test of the WLAN use case, only pre-stored CRLs are used. If OCSP stapling per RFC 6066 is the only supported revocation method, this test is omitted.<h:br/><h:br/>
                
                The evaluator shall ensure that a valid certificate is used, and that the validation function succeeds. The evaluator then attempts the test with a certificate that has been revoked (for each method chosen in the selection) to ensure when the certificate is no longer valid that the validation function fails.<h:br/>
                  </test><h:br/>
                  <test>
		    If any OCSP option is selected, the evaluator shall configure the OCSP server or use a man-in-the-middle tool to present a certificate that does not have the OCSP signing purpose and verify that validation of the OCSP response fails. If <xref to="s-crl"/> is selected,
		  the evaluator shall configure the CA to sign a CRL with a certificate that does not have the cRLsign key usage bit set, and verify that validation of the CRL fails.
                </test><h:br/>
                <test>The evaluator shall modify any byte in the first eight bytes of the certificate and demonstrate that the certificate fails to validate (the certificate will fail to parse correctly).
                </test> <h:br/>
                <test>The evaluator shall modify any bit in the last byte of the signature algorithm of the certificate and demonstrate that the certificate fails to validate (the signature on the certificate will not validate).
                </test><h:br/>
                <test>The evaluator shall modify any byte in the public key of the certificate and demonstrate that the certificate fails to validate (the signature on the certificate will not validate).
                </test> <h:br/>
                <test>
                  <testlist>
                    <test>(Conditional on support for EC certificates as indicated in FCS_COP.1(3)). The evaluator shall establish a valid, trusted certificate chain consisting of an EC leaf certificate, an EC Intermediate CA certificate not designated as a trust anchor, and an EC certificate designated as a trusted anchor, where the elliptic curve parameters are specified as a named curve. The evaluator shall confirm that the TOE validates the certificate chain.</test><h:br/>
                    <test>(Conditional on support for EC certificates as indicated in FCS_COP.1(3)). The evaluator shall replace the intermediate certificate in the certificate chain for Test 8a with a modified certificate, where the modified intermediate CA has a public key information field where the EC parameters uses an explicit format version of the Elliptic Curve parameters in the public key information field of the intermediate CA certificate from Test 8a, and the modified Intermediate CA certificate is signed by the trusted EC root CA, but having no other changes. The evaluator shall confirm the TOE treats the certificate as invalid.</test><h:br/>
                  </testlist>
                </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Failure to validate X.509v3 certificate</audit-event-descr>
	    <audit-event-info>Reason for failure of validation</audit-event-info>
	  </audit-event>
        </f-component>
        <f-component cc-id="fia_x509_ext.2" name="X.509 Certificate Authentication">
          
          <comp-lev> defines the TSF’s usage of X.509 certificates and how it reacts to certificates with undetermined revocation status.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Configuring whether to allow or disallow establishment of a trusted channel if the TSF cannot establish a connection to determine the validity of a certificate.</h:li>
            </h:ul>
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:
            <h:ul>
              <h:li>Failure to establish connection to determine revocation status.</h:li>
            </h:ul>
          </audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<h:br/>
            FTP_ITC_EXT.1 Trusted Channel Communication
          </dependencies>
          
          
          <f-element id="fel-cert-auth">
            <title>The TSF shall use X.509v3 certificates as defined by RFC 5280 to support
              authentication for [<h:i>mutually authenticated TLS as defined in the <xref to="tls"/>, HTTPS, <selectables>
                <selectable>IPsec in accordance with the <xref to="mod-vpnclient"/></selectable>
                <selectable id="x509_dtls">mutually authenticated DTLS as defined in the <xref to="tls"/></selectable>
                <selectable exclusive="yes">no other protocol</selectable>  
              </selectables></h:i>] and <selectables>
                <selectable id="x509_sys">code signing for system software updates</selectable>
                <selectable id="x509_apps">code signing for mobile applications</selectable>
                <selectable id="x509_sign">code signing for integrity verification</selectable>
                <selectable><assignable>other uses</assignable></selectable>
                <selectable exclusive="yes">no additional uses</selectable>
              </selectables>. </title>
            <ext-comp-def-title>
              <title>
                The TSF shall use X.509v3 certificates as defined by RFC 5280 to support
                  authentication for <assignable>trusted channel protocol</assignable> and <selectables>
                    <selectable>code signing for system software updates</selectable>
                    <selectable>code signing for mobile applications</selectable>
                    <selectable>code signing for integrity verification</selectable>
                    <selectable><assignable>other uses</assignable></selectable>
                    <selectable>no additional uses</selectable>
                  </selectables>. 
              </title>
            </ext-comp-def-title>
            <note role="application">
	      
	      The ST author’s first selection must match the selection of <xref to="fel-tls-app"/> and <xref to="fel-wlan"/>.<h:br/><h:br/>
              Certificates may optionally be used for trusted updates of system software (<xref to="fel-update-key-verify"/>) and mobile applications (<xref to="fel-updates-inc-version"/>) and for integrity verification (<xref to="fel-bootchain"/> and <xref to="fel-integrity-fail"/>).

	      
	    If <xref to="x509_sys"/> or <xref to="x509_apps"/> is selected <xref to="fel-update-int-fail"/> must be included in the ST.<h:br/><h:br/>

	    <!
	    If <xref to="x509_sign"/> is selected <xref to="fel-integrity-fail"/> must be included in the ST.<h:br/><h:br/>

	    
	    If <xref to="fel-app-verify-how"/> is included in the ST, <xref to="x509_apps"/> must be included in the selection.
        </note>
          </f-element>
          <f-element id="fel-fail-crt">
            <title>When the TSF cannot establish a connection to determine the revocation status of
              a certificate, the TSF shall <selectables>
                <selectable id="s-revoke-admin"><snip>allow the administrator to choose</snip> whether to accept the certificate in
                  these cases</selectable>
                <selectable id="s-revoke-user"><snip>allow the user to choose</snip> whether to accept the certificate in these
                  cases</selectable>
                <selectable>accept the certificate</selectable>
                <selectable id="s-revoke-deny">not accept the certificate</selectable>
            </selectables>.</title>
	    <ext-comp-def-title><title>
	      When the TSF cannot establish a connection to determine the revocation status of
              a certificate, the TSF shall <assignable>list of acceptable actions</assignable>.</title>
		</ext-comp-def-title>
            <note role="application"> The TOE must not accept the certificate if it fails any of the
              other validation rules in FIA_X509_EXT.1. However, often a connection must be
              established to perform a verification of the revocation status of a certificate -
              either to download a CRL or to perform OCSP. The selection is used to describe the
              behavior in the event that such a connection cannot be established (for example, due
              to a network error). If the TOE has determined the certificate is valid according to all
              other rules in FIA_X509_EXT.1, the behavior indicated in the selection must determine
              the validity. If <xref to="s-revoke-admin"/> or <xref to="s-revoke-user"/>
	      the administrator-configured or user-configured option is selected,
              the ST author must also select function <xref to="mf-certValidity"/> in
              FMT_SMF_EXT.1.<h:br/><h:br/> 
	      <rule id="r-revoke-admin">
		<if><ref-id>s-revoke-admin</ref-id></if>
		<then><ref-id>mf-certValidity</ref-id></then>
	      </rule>
	      <rule id="r-revoke-user">
		<if><ref-id>s-revoke-user</ref-id></if>
		<then><ref-id>mf-certValidity</ref-id></then>
	      </rule>
	      
	      The TOE may behave differently depending on the
              trusted channel; for example, in the case of WLAN where connections are unlikely to be
              established, the TOE may accept the certificate even though certificates are not
              accepted for other channels. The ST author should select all applicable behaviors. </note>
            <aactivity>
              <TSS>The evaluator shall check the TSS to ensure that it describes how the TOE chooses
                which certificates to use, and any necessary instructions in the administrative
                guidance for configuring the operating environment so that the TOE can use the
                certificates. <h:br/><h:br/> The evaluator shall examine the TSS to confirm that
                it describes the behavior of the TOE when a connection cannot be established during
                the validity check of a certificate used in establishing a trusted channel. The
                evaluator shall verify that any distinctions between trusted channels are described. <h:br/><h:br/></TSS>
              <Guidance> If the requirement that the administrator is able to specify the default
                action, then the evaluator shall ensure that the operational guidance contains
                instructions on how this configuration action is performed.
                <h:br/><h:br/></Guidance>
              <Tests> The evaluator shall perform the following test for each trusted channel: <h:br/><h:br/>
                <testlist>
                  <test>The evaluator shall demonstrate that using a valid certificate that requires
                    certificate validation checking to be performed in at least some part by
                    communicating with a non-TOE IT entity. The evaluator shall then manipulate the
                    environment so that the TOE is unable to verify the validity of the certificate,
                    and observe that the action selected in FIA_X509_EXT.2.2 is performed. If the
                    selected action is administrator-configurable, then the evaluator shall follow
                    the operational guidance to determine that all supported
                    administrator-configurable options behave in their documented manner.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
	  <audit-event table="additional">
	    <audit-event-descr>Failure to establish connection to determine revocation status</audit-event-descr>
	  </audit-event>
        </f-component>
        -->
        
        <f-component cc-id="fia_x509_ext.6" name="Request Validation of Certificates">
          
          <comp-lev> requires the TSF to make a certificate validation service available to environmental components.</comp-lev>
          <management>There are no management activities foreseen.
          </management>
          <audit>There are no auditable events foreseen.
          </audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates
          </dependencies>
          
          <f-element id="fel-certval-app-service">
            <title>
              The TSF shall provide a certificate validation service to applications. </title>
          </f-element>
          <f-element id="fel-certval-app-respond">
            <title>The TSF shall respond to the requesting application with the success or failure
              of the validation. </title>
            <note role="application">In order to comply with all of the rules in FIA_X509_EXT.1 as defined in the <xref to="X509"/>,
              multiple API calls may be required; all of these calls should be clearly
              documented.</note>
            <aactivity> 
              <TSS>The evaluator shall verify that the API documentation provided in the TSS (or other documentation) includes the security function (certificate validation)
                described in this requirement. This documentation shall be clear as to which results
                indicate success and failure.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall write, or the developer shall provide access to, an
                application that requests certificate validation by the TSF. The evaluator shall
                verify that the results from the validation match the expected results according to
                the API documentation. This application may be used to verify that import, removal,
                modification, and validation are performed correctly according to the tests required
                by FDP_STG_EXT.1, FTP_ITC_EXT.1, FMT_SMF_EXT.1, and FIA_X509_EXT.1 as defined in the <xref to="X509"/>.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <!-- 
        <f-component cc-id="fia_x509_ext.4" name="X509 Certificate Enrollment" status="objective">
          
          <comp-lev> requires the TSF to implement Enrollment over Secure Transport (EST) as a mechanism to obtain X.509 certificates.</comp-lev>
          <management>There are no management activities foreseen.
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:
            <h:ul>
              <h:li>Generation of Certificate Enrollment Request.</h:li>
              <h:li>Success or failure of enrollment.</h:li>
              <h:li>Update of EST Trust Anchor Database	</h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation<h:br/>
            FIA_X509_EXT.1 X.509 Validation of Certificates
          </dependencies>
          
          <f-element id="fel-est-how">
            <title>
              <comment>This is now defined in the X.509 package as FIA_ESTC_EXT.1. This is claimed if FIA_X509_EXT.3 is claimed in the package and RFC 7030 support is claimed. FIA_X509_EXT.3 should be claimed because FIA_XCU_EXT.2 would expect it to be claimed (the certs the TOE uses to assert its own identity would be obtained via requesting them from a CA, not issuance from a CA embedded within the TOE itself). FIA_XCU_EXT.2 would be claimed because FIA_XCU_EXT.1 would expect it to be claimed (the TSF would have one or more certificates that it uses to assert its own identity). And FIA_XCU_EXT.1 would be claimed because it's mandatory. But it's not clear how that chain should be expressed here.</comment>
              The TSF shall use the Enrollment over Secure Transport (EST) protocol as
              specified in RFC 7030 to request certificate enrollment using the simple enrollment
              method described in RFC 7030 Section 4.2. </title>
          </f-element>
          <f-element id="fel-est-what">
            <title>The TSF shall be capable of authenticating EST requests using an existing
              certificate and corresponding private key as specified by RFC 7030 Section
              3.3.2.</title>
          </f-element>
          <f-element id="fel-est-http">
            <title>The TSF shall be capable of authenticating EST requests using HTTP Basic
              Authentication with a username and password as specified by RFC 7030 Section
              3.2.3.</title>
          </f-element>
          <f-element id="fel-est-eta">
            <title>The TSF shall perform authentication of the EST server using an Explicit Trust
              Anchor following the rules described in RFC 7030, section 3.6.1. </title>
            <note role="application">EST also uses HTTPS as specified in FCS_HTTPS_EXT.1 to
              establish a secure connection to an EST server. The separate Trust Anchor Database
              dedicated to EST operations is described as Explicit Trust Anchors in RFC 7030.
            </note>
          </f-element>
          <f-element id="fel-est-server-key">
            <title>The TSF shall be capable of requesting server-provided private keys as specified
              in RFC 7030 Section 4.4.</title>
          </f-element>
          <f-element id="fel-est-eta-update">
            <title>The TSF shall be capable of updating its EST-specific Trust Anchor Database using
              the "Root CA Key Update" process described in RFC 7030 Section 4.1.3.</title>
          </f-element>
          <f-element id="fel-est-crm">
            <title>The TSF shall generate a Certificate Request Message for EST as specified in RFC
              2986 and be able to provide the following information in the request: public key and <selectables>
                <selectable>device-specific information</selectable>
                <selectable>Common Name</selectable>
                <selectable>Organization</selectable>
                <selectable>Organizational Unit</selectable>
                <selectable>Country</selectable>
              </selectables>.</title>
            <note role="application">The public key referenced is the public key portion of the
              public-private key pair generated by the TOE as specified in FCS_CKM.1.</note>
          </f-element>
          <f-element id="fel-est-chain">
            <title>The TSF shall validate the chain of certificates from the Root CA certificate in
              the Trust Anchor Database to the EST Server CA certificate upon receiving a CA
              Certificates Response. </title>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>The evaluator shall check to ensure that the operational guidance contains
                instructions on requesting certificates from an EST server, including generating a
                Certificate Request Message.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall also perform the following tests. Other tests are
                performed in conjunction with the evaluation activity listed in the Package for
                Transport Layer Security.<h:br/>
                <testlist>
                  <test>The evaluator shall use the operational guidance to cause the TOE to request
                    certificate enrollment from an EST server using the simple enrollment method
                    described in RFC 7030 Section 4.2, authenticating the certificate request to the
                    server using an existing certificate and private key as described by RFC 7030
                    Section 3.3.2. The evaluator shall confirm that the resulting certificate is
                    successfully obtained and installed in the TOE key store.</test><h:br/>
                  <test>The evaluator shall use the operational guidance to cause the TOE to request
                    certificate enrollment from an EST server using the simple enrollment method
                    described in RFC 7030 Section 4.2, authenticating the certificate request to the
                    server using a username and password as described by RFC 7030 Section 3.2.3. The
                    evaluator shall confirm that the resulting certificate is successfully obtained
                    and installed in the TOE key store.</test><h:br/>
                  <test>The evaluator shall modify the EST server to return a certificate containing
                    a different public key than the key included in the TOE’s certificate request.
                    The evaluator shall use the operational guidance to cause the TOE to request
                    certificate enrollment from an EST server. The evaluator shall confirm that the
                    TOE does not accept the resulting certificate since the public key in the issued
                    certificate does not match the public key in the certificate request.</test><h:br/>
                  <test>The evaluator shall configure the EST server or use a man-in-the-middle tool
                    to present a server certificate to the TOE that is present in the TOE general
                    Trust Anchor Database but not its EST-specific Trust Anchor Database. The
                    evaluator shall cause the TOE to request certificate enrollment from the EST
                    server. The evaluator shall verify that the request is not successful.</test><h:br/>
                  <test>The evaluator shall configure the EST server or use a man-in-the-middle tool
                    to present an invalid certificate. The evaluator shall cause the TOE to request
                    certificate enrollment from the EST server. The evaluator shall verify that the
                    request is not successful The evaluator shall configure the EST server or use a
                    man-in-the-middle tool to present a certificate that does not have the CMC RA
                    purpose and verify that requests to the EST server fail. The tester shall repeat
                    the test using a valid certificate and a certificate that contains the CMC RA
                    purpose and verify that the certificate enrollment requests succeed.</test><h:br/>
                  <test>The evaluator shall use a packet sniffing tool between the TOE and an EST
                    server. The evaluator shall turn on the sniffing tool and cause the TOE to
                    request certificate enrollment from an EST server. The evaluator shall verify
                    that the EST protocol interaction occurs over a Transport Layer Security (TLS)
                    protected connection. The evaluator is not expected to decrypt the connection
                    but rather observe that the packets conform to the TLS protocol format.</test><h:br/>
                  <test>The evaluator shall use the operational guidance to cause the TOE to request
                    a server-provided private key and certificate from an EST server. The evaluator
                    shall confirm that the resulting private key and certificate are successfully
                    obtained and installed in the TOE key store.</test><h:br/>
                  <test>The evaluator shall modify the EST server to, in response to a
                    server-provided private key and certificate request, return a private key that
                    does not correspond with the public key in the returned certificate. The
                    evaluator shall use the operational guidance to cause the TOE to request a
                    server-provided private key and certificate. The evaluator shall confirm that
                    the TOE does not accept the resulting private key and certificate since the
                    private key and public key do not correspond.</test><h:br/>
                  <test>The evaluator shall configure the EST server to provide a "Root CA Key
                    Update" as described in RFC 7030 Section 4.1.3. The evaluator shall cause the
                    TOE to request CA certificates from the EST server and shall confirm that the
                    EST-specific Trust Anchor Database is updated with the new trust anchor.</test><h:br/>
                  <test>The evaluator shall configure the EST server to provide a "Root CA Key
                    Update" as described in RFC 7030 Section 4.1.3, but shall modify part of the
                    NewWithOld certificate’s generated signature. The evaluator shall cause the TOE
                    to request CA certificates from the EST server and shall confirm that the
                    EST-specific Trust Anchor Database is not updated with the new trust anchor
                    since the signature did not verify.</test><h:br/>
                  <test>The evaluator shall use the operational guidance to cause the TOE to
                    generate a certificate request message. The evaluator shall capture the
                    generated message and ensure that it conforms to the format specified by RFC
                    2986. The evaluator shall confirm that the certificate request provides the
                    public key and other required information, including any necessary user-input
                    information. </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event table="additional">
	    <audit-event-descr>Generation of Certificate Enrollment Request</audit-event-descr>
	    <audit-event-info>Issuer and Subject name of EST Server. Method of authentication. Issuer and Subject name of certificate used to authenticate. Content of Certificate Request Message</audit-event-info>

	  </audit-event>
	  <audit-event table="additional">
	    <audit-event-descr>Success or failure of enrollment</audit-event-descr>
	    <audit-event-info>Issuer and Subject name of added certificate or reason for failure</audit-event-info>
	  </audit-event>
	  <audit-event table="additional">
	    <audit-event-descr>Update of EST Trust Anchor Database</audit-event-descr>
	    <audit-event-info>Subject name of added Root CA</audit-event-info>
	  </audit-event>
        </f-component>
        
         -->
        <!-- 
        <f-component cc-id="fia_x509_ext.5" name="X.509 Certificate Requests" status="objective">
          
          <comp-lev> requires the TSF to generate X.509 certificate requests and validate the responses.</comp-lev>
          <management>There are no management activities foreseen.
          </management>
          <audit>There are no auditable events foreseen.
          </audit>
          <dependencies>FCS_CKM.1 Cryptographic Key Generation <h:br/>
            FIA_X509_EXT.1 X.509 Validation of Certificates
          </dependencies>
          
          <f-element id="fel-certs-enroll">
            <title>
              <comment>This is now defined in the X.509 package as FIA_X509_EXT.3 if FIA_X509_EXT.3.1 claims support for RFC 2986. FIA_X509_EXT.3 should be claimed because FIA_XCU_EXT.2 would expect it to be claimed (the certs the TOE uses to assert its own identity would be obtained via requesting them from a CA, not issuance from a CA embedded within the TOE itself). FIA_XCU_EXT.2 would be claimed because FIA_XCU_EXT.1 would expect it to be claimed (the TSF would have one or more certificates that it uses to assert its own identity). And FIA_XCU_EXT.1 would be claimed because it's mandatory. But it's not clear how that chain should be expressed here.</comment>
              The TSF shall generate a Certificate Request Message as specified in RFC 2986 and
              be able to provide the following information in the request: public key and <selectables>
                <selectable>device-specific information</selectable>
                <selectable>Common Name</selectable>
                <selectable>Organization</selectable>
                <selectable>Organizational Unit</selectable>
                <selectable>Country</selectable>
              </selectables>.</title>
            <note role="application">The public key referenced in FIA_X509_EXT.5.1 is the public key
              portion of the public-private key pair generated by the TOE as specified in FCS_CKM.1.
              The trusted channel requirements do not apply to communication with the CA for the
              certificate request/response messages. <h:br/><h:br/> As Enrollment over Secure
              Transport (EST) is a new standard that has not yet been widely adopted, this
              requirement is included as an interim objective requirement in order to allow
              developers to distinguish those products which have do have the ability to generate
              Certificate Request Messages but do not yet implement EST. </note>
          </f-element>
          <f-element id="fel-certs-chain">
            <title>The TSF shall validate the chain of certificates from the Root CA upon receiving
              the CA Certificate Response.</title>
            <aactivity>
              <TSS>If the ST author selects "device-specific information", the evaluator shall
                verify that the TSS contains a description of the device-specific fields used in
                certificate requests. <h:br/><h:br/></TSS>
              <Guidance> The evaluator shall check to ensure that the operational guidance contains
                instructions on generating a Certificate Request Message. If the ST author selects
                "Common Name", "Organization", "Organizational Unit", or "Country", the evaluator
                shall ensure that this guidance includes instructions for establishing these fields
                before creating the certificate request message. <h:br/><h:br/></Guidance>
              <Tests> The evaluator shall also perform the following tests: <testlist><test>The
                    evaluator shall use the operational guidance to cause the TOE to generate a
                    certificate request message. The evaluator shall capture the generated message
                    and ensure that it conforms to the format specified. The evaluator shall confirm
                    that the certificate request provides the public key and other required
                    information, including any necessary user-input information.</test><h:br/>
                  <test>The evaluator shall demonstrate that validating a certificate response
                    message without a valid certification path results in the function failing. The
                    evaluator shall then load a certificate or certificates as trusted CAs needed to
                    validate the certificate response message, and demonstrate that the function
                    succeeds. The evaluator shall then delete one of the certificates, and show that
                    the function fails.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event table="additional"/>
        </f-component>
        -->
      </sec:fia>
      <sec:fmt title="Class FMT: Security Management"> 
        Both the user and the administrator may manage the TOE. This administrator is likely to be acting remotely and could be the Mobile Device Management (MDM) Administrator acting through an MDM agent. <h:br/><h:br/> 
        The Administrator is responsible for management activities, including setting the policy that is applied by the enterprise on the Mobile Device. These management functions are likely to be a different set than those management functions provided to the user. Management functions that are provided to the user and not the administrator are listed in FMT_MOF_EXT.1.1. Management functions for which the administrator may adopt a policy that restricts the user from performing that function are listed in FMT_MOF_EXT.1.2. <h:br/><h:br/> 
        <xref to="fmt_smf"/> identifies the management functions that this PP defines, whether they are mandatory or optional, and specifies any restrictions on the roles that can perform these functions. This table is used with FMT_MOF_EXT.1 and FMT_SMF_EXT.1 to specify the management functions that the TOE supports and the roles that may perform these functions.
        
        <ext-comp-def fam-id="FMT_MOF_EXT" title="Management of Functions in TSF">
          <fam-behavior>This family defines requirements for authorization to manage the behavior of the TSF that are not addressed by FMT_MOF in CC Part 2. 
          </fam-behavior>
        </ext-comp-def>
        
        <f-component cc-id="fmt_mof_ext.1" name="Management of Security Functions Behavior">
        
          <comp-lev> requires the TSF to apply restrictions to access its management functions to the authorized roles.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
            <h:li>Managing the group of roles that can interact with the functions in the TSF.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FMT_SMF.1 Specification of Management Functions<h:br/>
          FMT_SMR.1 Security Roles
          </dependencies>
          
          
          <f-element id="fel-mof-est">
            <title>The TSF shall restrict the ability to perform the functions [<h:i>in the "User Only" column of
              <xref to="fmt_smf"/></h:i>] to the user. </title>
            <ext-comp-def-title>
              <title>The TSF shall restrict the ability to perform the functions <assignable>reference to list of management functions</assignable> to the user. </title>
            </ext-comp-def-title>
            <note role="application">
              <h:p>
              The functions that have an "M" in the "User Only" column of <xref to="fmt_smf"/> are
              mandatory for this component, thus are restricted to the user, meaning that the
              administrator cannot manage those functions. The functions that have an "O" in the
              "User Only" column are optional and may be selected; and those functions with a "-" are not applicable and may not be selected. The ST author should select those
              security management functions that only the user may perform (i.e., the ones the
              administrator may not perform).
              </h:p>
              <h:p>
              The ST author may use a table in the ST, indicating with clear demarcations (to be accompanied by an index) those
              functions that are restricted to the user ("User Only" column). The ST author should iterate a
              row to indicate any variations in the selectable sub-functions or assigned values with
              respect to the values in the columns. A function cannot contain
              an "M" in both the "User Only" and "Admin Only" columns.
              </h:p>
              <h:p>
              For functions that are mandatory, any sub-functions not in a selection are also mandatory and any assignments
              must contain at least one assigned value. For non-selectable sub-functions in an
              optional function, all sub-functions outside a selection must be implemented in order
              for the function to be listed.
              </h:p>
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes those management functions that
                may only be performed by the user and confirm that the TSS does not include an
                Administrator API for any of these management functions. This activity will be
                performed in conjunction with FMT_SMF_EXT.1.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this element.<h:br/><h:br/></Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-mof-restrict">
            <title>The TSF shall restrict the ability to perform the functions [<h:i>in the "Admin Only" column of
              <xref to="fmt_smf"/></h:i>] to the administrator when the device is enrolled and
              according to the administrator-configured policy. </title>
            <ext-comp-def-title>
              <title>The TSF shall restrict the ability to perform the functions <assignable>reference to list of management functions</assignable> to the administrator when the device is enrolled and
                according to the administrator-configured policy. </title>  
            </ext-comp-def-title>
            <note role="application">
              <h:p>
              As long as the device is enrolled in management, the
              administrator (of the enterprise) must be guaranteed that minimum security functions
              of the enterprise policy are enforced. Further restrictive policies can be applied at
              any time by the user on behalf of the user or other administrators.
              </h:p>
              <h:p>
              The functions that have an "M" in the "Admin Only" column of <xref to="fmt_smf"/> are mandatory for this component;
              the functions that have an "O" in the "Admin Only" column are optional and may be selected;
              and those functions with a "-" in the "Admin Only" column are not applicable and may not be
              selected.
              </h:p>
              <h:p>
              The ST author should select
              those security management functions that the administrator may restrict. The ST author
              may use a table in the ST, indicating with clear demarcations (to be accompanied by an
              index) those functions that are and are not implemented with APIs for the
              administrator (as in the "Admin" column). Additionally, the ST author should demarcate which
              functions the user is prevented from accessing or performing (as in the "Admin Only" column). The ST
              author should iterate a row to indicate any variations in the selectable sub-functions
              or assigned values with respect to the values in the columns. A function cannot contain
              an "M" in both the "User Only" and "Admin Only" columns.
              </h:p>
              <h:p>
              For functions that are mandatory, any sub-functions not in a selection are also mandatory
              and any assignments must contain at least one assigned value. For non-selectable
              sub-functions in an optional function, all sub-functions outside the selection must be
              implemented in order for the function to be listed.
              </h:p> 
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes those management functions that
                may be performed by the Administrator, to include how the user is prevented from
                accessing, performing, or relaxing the function (if applicable), and how
                applications/APIs are prevented from modifying the Administrator configuration. The
                TSS also describes any functionality that is affected by administrator-configured
                policy and how. This activity will be performed in conjunction with
                FMT_SMF_EXT.1.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this element.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall use the test environment to deploy policies to Mobile
                    Devices. </test><h:br/>
                  <test>The evaluator shall create policies which collectively include all
                    management functions which are controlled by the (enterprise) administrator and
                    cannot be overridden/relaxed by the user as defined in FMT_MOF_EXT.1.2. The
                    evaluator shall apply these policies to devices, attempt to override/relax each
                    setting both as the user (if a setting is available) and as an application (if
                    an API is available), and ensure that the TSF does not permit it. Note that the
                    user may still apply a more restrictive policy than that of the
                    administrator.</test><h:br/>
                  <test>Additional testing of functions provided to the administrator are performed
                    in conjunction with the testing activities for FMT_SMF_EXT.1.1.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FMT_SMF_EXT" title="Specification of Management Functions">
          <fam-behavior>This family defines requirements for security-relevant management functions that are not addressed by FMT_SMF in CC Part 2.
          </fam-behavior>
        </ext-comp-def>
        
        <f-component cc-id="fmt_smf_ext.1" name="Specification of Management Functions">
          <consistency-rationale/> 
          <comp-lev> requires the TSF to define the management functions that it implements.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>
            The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST: <h:ul>
              <h:li>Initiation of policy update.</h:li>
              <h:li>Change of settings.</h:li>
              <h:li>Success or failure of function</h:li>
              <h:li>Initiation of software update.</h:li>
              <h:li>Initiation of application installation or update.</h:li>
            </h:ul>
          </audit>
          <dependencies>No dependencies.</dependencies>         
          
          <f-element id="fel-smf-ext">
            <title>The TSF shall be capable of performing the following management functions: <h:br/><h:br/>
              <h:b><ctr id="fmt_smf" ctr-type="Table">: Management Functions</ctr></h:b><h:br/><h:br/> 
              Status Markers:<h:br/> M - Mandatory<h:br/> O - Optional/Objective<h:br/>
              <!-- NOTE: management-function uses ctr variables crt-type=functions in the MOOO table, so that they do not 
		   have to be renumbered when one is added or removed. However app notes and AAs need to be in the same order as the functions.
		   The list of IDs for each function is at the end of the xml.-->
              <management-function-set default="O">
                <manager cid="I">Impl.</manager>
                <manager cid="U">User Only</manager>
                <manager cid="A">Admin</manager>
                <manager cid="AO">Admin Only</manager>
                <management-function id="mf-pwd">
                  <text>
                    <!-- <ctr id="pwd" pre="" ctr-type="function">.</ctr>--> configure password policy:
                      <h:ul>
                      <h:li>Minimum password length</h:li>
                      <h:li>Minimum password complexity</h:li>
                      <h:li>Maximum password lifetime</h:li>
                    </h:ul>
                  </text>
                  <M ref="I"/> <NA ref="U"/><M ref="A"/><M ref="AO"/>
		  <aactivity>
		    <TSS>The evaluator shall verify
                  the TSS defines the allowable policy options: the range of values for both
                  password length and lifetime, and a description of complexity to include character
                  set and complexity policies (e.g., configuration and enforcement of number of
                  uppercase, lowercase, and special characters per password).</TSS>
		    <Tests>Test FMT_SMF_EXT.1:1: The evaluator shall exercise the TSF configuration as the administrator and
                    perform positive and negative tests, with at least two values set for each
                    variable setting, for each of the following: <h:br/>
                    <h:ul>
                      <h:li>Minimum password length</h:li>
                      <h:li>Minimum password complexity</h:li>
                      <h:li>Maximum password lifetime</h:li>
                    </h:ul>
		    </Tests>
		  </aactivity>

                </management-function>
                <management-function id="mf-screenlock">
                  <text>
                    <!-- <ctr id="screenlock" pre="" ctr-type="function">.</ctr>--> configure session
                    locking policy: <h:ul>
                      <h:li>Screen-lock enabled/disabled</h:li>
                      <h:li>Screen lock timeout </h:li>
                      <h:li>Number of authentication failures</h:li>
                    </h:ul>
                  </text>
                  <M ref="I"/><NA ref="U"/><M ref="A"/><M ref="AO"/>
		  <aactivity>
		    <TSS>The evaluator shall
                    verify the TSS defines the range of values for both timeout period and number of
                    authentication failures for all supported authentication mechanisms.</TSS>
		    <Tests>Test FMT_SMF_EXT.1:2: The evaluator shall exercise the TSF configuration as the administrator.
                    The evaluator shall perform positive and negative tests, with at least two
                    values set for each variable setting, for each of the following: <h:br/>
                    <h:ul>
                      <h:li>Screen-lock enabled/disabled</h:li>
                      <h:li>Screen lock timeout</h:li>
                      <h:li>Number of authentication failures (may be combined with test for
                        FIA_AFL_EXT.1)</h:li>
                    </h:ul>
		    </Tests>
		  </aactivity>
                </management-function>
                <management-function id="mf-vpn">
                  <text>
                    <!-- <ctr id="vpn" pre="" ctr-type="function">.</ctr>--> enable/disable the VPN
                    protection: <h:ul>
                      <h:li>Across device</h:li></h:ul>
                    <h:div class="indent">
					<selectables linebreak="yes">
                        <selectable id="s-vpn-per-app">on a per-app basis</selectable>
                        <selectable id="s-vpn-per-appgroup">on a per-group of applications processes basis</selectable>
                        <selectable exclusive="yes">no other method</selectable>
                      </selectables></h:div>
                  </text>
                  <M ref="I"/>
                  <app-note><also ref-id="mf-audioVisual"/><also ref-id="mf-location"/>
		  Functions <_/> must be implemented on a device-wide basis but may also be
		  implemented on a per-app basis or on a per-group of applications basis in which the
		  configuration includes the list of applications or groups of applications to which the
		  enable/disable applies.</app-note>
		  <app-note>
		  Function <_/> addresses
		  enabling and disabling the IPsec VPN only. The configuration of the VPN Client itself
		  (with information such as VPN Gateway, certificates, and algorithms) is addressed by
		  the <xref to="mod-vpnclient"/>. The administrator options should only be listed if the
		  administrator can remotely enable/disable the VPN connection.
		  <h:p>
		  Function <xref to="mf-vpn"/> optionally allows the VPN to be configured per-app or
		  per-groups of apps. If this configuration is selected, it does not void FDP_IFC_EXT.1.
		  Instead FDP_IFC_EXT.1 is applied to the application or group of applications the VPN
		  is applied to. In other words, all traffic destined for the VPN-enabled application or
		  group of applications, must travel through the VPN, but traffic not destined for that
		  application or group of applications can travel outside the VPN. When the VPN is
		  configured across the device FDP_IFC_EXT.1 applies to all traffic and the VPN must not
		  split tunnel.
		  </h:p>
		  </app-note>
		  <aactivity>
        <Tests>
		    The evaluator shall perform the following tests: 
          <h:ul>
                      <h:li>Test FMT_SMF_EXT.1:3a: The evaluator shall exercise the TSF configuration to enable the VPN
                        protection. These configuration actions must be used for the testing of the
                        FDP_IFC_EXT.1.1 requirement. </h:li>
            <h:li>Test FMT_SMF_EXT.1:3b: [conditional] If "<xref to="s-vpn-per-app"/>" is selected, the evaluator shall
                        create two applications and enable one to use the VPN and the other to not
                        use the VPN. The evaluator shall exercise each application (attempting to
                        access network resources; for example, by browsing different websites)
                        individually while capturing packets from the TOE. The evaluator shall
                        verify from the packet capture that the traffic from the VPN-enabled
                        application is encapsulated in IPsec and that the traffic from the
                        VPN-disabled application is not encapsulated in IPsec. </h:li>
            <h:li>Test FMT_SMF_EXT.1:3c: [conditional] If "<xref to="s-vpn-per-appgroup"/>" is selected, the
                        evaluator shall create two applications and the applications shall be placed
                        into different groups. Enable one application group to use the VPN and the
                        other to not use the VPN. The evaluator shall exercise each application
                        (attempting to access network resources; for example, by browsing different
                        websites) individually while capturing packets from the TOE. The evaluator
                        shall verify from the packet capture that the traffic from the application
                        in the VPN-enabled group is encapsulated in IPsec and that the traffic from
                        the application in the VPN-disabled group is not encapsulated in IPsec.
                      </h:li>
            </h:ul>
          </Tests>
        </aactivity>
                </management-function>
                <management-function id="mf-radios">
                  <text>
                    <!-- <ctr id="radios" pre="" ctr-type="function">.</ctr>--> enable/disable
                      <assignable id="a-mf-radios">list of all radios</assignable></text>
                      <M ref="I"/>
		      <app-note>
			The assignment in function <_/>
              consists of all radios present on the TSF, such as Wi-Fi, cellular, NFC,
              Bluetooth BR/EDR, and Bluetooth LE, which can be enabled and disabled.
	     Disablement of the cellular radio does not imply that
              the radio may not be enabled in order to place emergency phone calls; however, it is
              not expected that a device in "airplane mode", where all radios are disabled, will
              automatically (without authorization) turn on the cellular radio to place emergency
              calls.</app-note>
		      <aactivity>
            <TSS>
              The evaluator shall verify that the TSS includes a description of each radio and an indication of if the radio can be enabled/disabled along with what role can do so. In addition the evaluator shall verify that the frequency ranges at which each radio operates is included in the TSS. The evaluator shall verify that the TSS includes at what point in the boot sequence the radios are powered on and indicates if the radios are used as part of the initialization of the device.
		        </TSS>
            <Guidance>
                  The evaluator shall confirm that the AGD guidance describes how to perform the enable/disable function for each radio.
		        </Guidance>
              <Tests>
                <h:p>
                Test FMT_SMF_EXT.1:4: The evaluator shall ensure that minimal signal leakage enters the RF shielded enclosure (i.e., Faraday bag, Faraday box, RF shielded room) by performing the following steps:
                </h:p>
                <h:p>
                Step 1: Place the antenna of the spectrum analyzer inside the RF shielded enclosure.
                </h:p>
                <h:p>
                Step 2: Enable "Max Hold" on the spectrum analyzer and perform a spectrum sweep of the frequency range between 300 MHz - 6000 MHz, in 1 kHz steps (this range should encompass 802.11, 802.15, GSM, UMTS, and LTE). This range will not address NFC 13.56.MHz, another test should be set up with similar constraints to address NFC.
                </h:p>
                <h:p>
                If power above -75 dBm is observed, the Faraday box has too great of signal leakage and shall not be used to complete the test for Function <xref to="mf-radios"/>.
                </h:p>
                <h:p>
                The evaluator shall exercise the TSF configuration as the administrator and, if not restricted to the administrator, the user, to enable and disable the state of each radio (e.g. Wi-Fi, cellular, NFC, Bluetooth). Additionally, the evaluator shall repeat the steps below, booting into any auxiliary boot mode supported by the device. For each radio, the evaluator shall:
                </h:p>
                <h:p>
                Step 1: Place the antenna of the spectrum analyzer inside the RF shielded enclosure. Configure the spectrum analyzer to sweep desired frequency range for the radio to be tested (based on range provided in the TSS)). The ambient noise floor shall be set to -110 dBm. Place the TOE into the RF shielded enclosure to isolate them from all other RF traffic.
                </h:p>
                <h:p>
                Step 2: The evaluator shall create a baseline of the expected behavior of RF signals. The evaluator shall power on the device, ensure the radio in question is enabled, power off the device, enable "Max Hold" on the spectrum analyzer and power on the device. The evaluator shall wait 2 minutes at each Authentication Factor interface prior to entering the necessary password to complete the boot process, waiting 5 minutes after the device is fully booted. The evaluator shall observe that RF spikes are present at the expected uplink channel frequency. The evaluator shall clear the "Max Hold" on the spectrum analyzer.
                </h:p>
                <h:p>
                Step 3: The evaluator shall verify the absence of RF activity for the uplink channel when the radio in question is disabled. The evaluator shall complete the following test five times. The evaluator shall power on the device, ensure the radio in  question is disabled, power off the device, enable "Max Hold" on the spectrum analyzer and power on the device. The evaluator shall wait 2 minutes at each Authentication Factor interface prior to entering the necessary password to complete the boot process, waiting 5 minutes after the device is fully booted. The evaluator shall clear the "Max Hold" on the spectrum analyzer. If the radios are used for device initialization, then a spike of RF activity for the uplink channel can be observed initially at device boot. However, if a spike of RF activity for the uplink channel of the specific radio frequency band is observed after the device is fully booted or at an Authentication Factor interface it is deemed that the radio is enabled.
                </h:p>
              </Tests>
          </aactivity>
                </management-function>
                <management-function id="mf-audioVisual">
                  <text>
                    <!-- <ctr id="audioVisual" pre="" ctr-type="function">.</ctr>--> enable/disable
                     <assignable id="a-audiovisual-devs">list of audio or visual collection devices</assignable>: <h:ul>
                      <h:li>Across device</h:li></h:ul>
                    <h:div class="indent"><selectables linebreak="yes">
                        <selectable id="s-audiovisual-per-app">on a per-app basis</selectable>
                        <selectable id="s-audiovisual-per-appgroup">on a per-group of applications processes basis</selectable>
                        <selectable exclusive="yes">no other method</selectable>
                      </selectables></h:div>
                  </text>
                  <M ref="I"/>
		  <app-note>The assignment in function <_/>
              consists of at least one audio or visual device, such as camera and microphone,
              which can be enabled and disabled by either the user or administrator. Disablement of
              the microphone does not imply that the microphone may not be enabled in order to place
              emergency phone calls. If certain devices are able to be restricted to the enterprise
              (either device-wide, per-app or per-group of applications) and others are able to be
              restricted to users, then this function should be iterated in the table with the
              appropriate table entries.
	      <h:p>
		Regarding functions <xref to="mf-radios"/> and <xref to="mf-audioVisual"/>,
		disablement of a particular
              radio or audio/visual device must be effective as soon as the TOE has power.
              Disablement must also apply when the TOE is booted into auxiliary boot modes, for
              example, associated with updates or backup. If the TOE supports states in which
              security management policy is inaccessible, for example, due to data-at-rest
              protection, it is acceptable to meet this requirement by ensuring that these devices
              are disabled by default while in these states. That these devices are disabled during
              auxiliary boot modes does not imply that the device (particularly the cellular radio)
              may not be enabled in order to perform emergency phone calls. 
	      </h:p>
		  </app-note>
		  <aactivity><TSS>
		     The evaluator
                  shall verify that the TSS includes a description of each collection device and an
                  indication of if it can be enabled/disabled along with what role can do so. The
                  evaluator shall confirm that the AGD guidance describes how to perform the
                  enable/disable function.
		  </TSS>
        <Tests>The evaluator shall perform the following tests:
          <h:ul>
            <h:li>Test FMT_SMF_EXT.1:5a: The evaluator shall exercise the TSF configuration as the
                        administrator and, if not restricted to the administrator, the user, to
                        enable and disable the state of each audio or visual collection devices
                        (e.g. camera, microphone) listed by the ST author. For each collection
                        device, the evaluator shall disable the device and then attempt to use its
                        functionality. The evaluator shall reboot the TOE and verify that disabled
                        collection devices may not be used during or early in the boot process.
                        Additionally, the evaluator shall boot the device into each available
                        auxiliary boot mode and verify that the collection device cannot be used. </h:li>
            <h:li>Test FMT_SMF_EXT.1:5b: [conditional] If "<xref to="s-audiovisual-per-app"/>" is selected, the evaluator shall
                        create two applications and enable one to use access the A/V device and the
                        other to not access the A/V device. The evaluator shall exercise each
                        application attempting to access the A/V device individually. The evaluator
                        shall verify that the enabled application is able to access the A/V device
                        and the disabled application is not able to access the A/V device. </h:li>
            <h:li>Test FMT_SMF_EXT.1:5c: [conditional] If "<xref to="s-audiovisual-per-appgroup"/>" is selected, the
                        evaluator shall create two applications and the applications shall be placed
                        into different groups. Enable one group to access the A/V device and the
                        other to not access the A/V device. The evaluator shall exercise each
                        application attempting to access the A/V device individually. The evaluator
                        shall verify that the application in the enabled group is able to access the
                        A/V device and the application in the disabled group is not able to access
                        the A/V device. </h:li>
            </h:ul>
		      </Tests>
		</aactivity>
                </management-function>
                <management-function id="mf-lockState">
                  <text>
                    <!-- 6. -->
                    <!-- <ctr id="lockState" pre="" ctr-type="function">.</ctr>--> transition to the locked
                    state </text>
                    <M ref="I"/><NA ref="U"/><M ref="A"/><NA ref="AO"/>
                  <aactivity><Tests>Test FMT_SMF_EXT.1:6: The evaluator shall use the test environment to instruct the TSF, both as a
                      user and as the administrator, to command the device to transition to a locked
                      state, and verify that the device transitions to the locked state upon
                      command.
		    </Tests></aactivity>
                </management-function>
                <management-function id="mf-wipe">
                  <text>
                    <!-- 7. -->
                    <!-- <ctr id="wipe" pre="" ctr-type="function">.</ctr>--> TSF wipe of protected data </text>
                  <M ref="I"/>
                  <NA ref="U"/>
                  <M ref="A"/>
                  <NA ref="AO"/>
		  <app-note>
		    Wipe  of the TSF (function <xref to="mf-wipe"/>) is performed as defined in
		    FCS_CKM_EXT.5.
		    Protected data is all non-TSF data, including all user or enterprise data. Some or all
		  of this data may be considered sensitive data as well.</app-note>
      <aactivity>
        <Tests>Test FMT_SMF_EXT.1:7: The evaluator shall use the test environment to instruct the TSF, both as a user and as the administrator, to command the device to perform a wipe of protected data. 
      The evaluator shall ensure that this management setup is used when conducting the Evaluation Activities in FCS_CKM_EXT.5.</Tests>
      </aactivity>
                </management-function>
                <management-function id="mf-appInstallRules">
                  <text>
                    <!--8. -->
                    <!-- <ctr id="appInstallRules" pre="" ctr-type="function">.</ctr>--> configure
                    application installation policy by <h:div class="indent"><selectables linebreak="yes">
                        <selectable id="mf-appInstallRules-restrict">restricting the sources of applications</selectable>
                        <selectable id="mf-appInstallRules-specify">specifying a set of allowed applications based on
                            <assignable>application characteristics</assignable> (an <snip>application allowlist</snip>)</selectable>
                        <selectable id="mf-appInstallRules-deny">denying installation of applications</selectable>
                      </selectables></h:div>
                  </text>
                  <M ref="I"/><NA ref="U"/><M ref="A"/><M ref="AO"/>
		  <app-note>
		    The
		    selection in function <xref to="mf-appInstallRules"/> allows the ST author to
		    select which mechanisms are available to the administrator through the MDM agent to
		    restrict the applications which the user may install. The ST author must state if
		    application allowlist is applied device-wide or if it can be specified to apply to
		    either the Enterprise or Personal applications. <h:ul>
                    <h:li>If the administrator can restrict the sources from which applications can be
                    installed, the ST author selects "<xref to="mf-appInstallRules-restrict"/>". </h:li>
                    <h:li>If the administrator can specify a allowlist of allowed applications, the ST
                    author selects "<xref to="mf-appInstallRules-specify"/>". The ST author should list any application characteristics
                    (e.g. name, version, or developer) based on which the allowlist can be
                    formed.</h:li>
                    <h:li>If the administrator can prevent the user from installing additional
                    applications, the ST author selects "<xref to="mf-appInstallRules-deny"/>". </h:li>
		  </h:ul>
		  </app-note>
		  <aactivity><TSS>
		     The evaluator
                  shall verify the TSS describes the allowable application installation policy
                  options based on the selection included in the ST.
		  If the <xref to="mf-appInstallRules-specify"/> is selected,
		  the evaluator shall verify that the TSS includes a description of each
                  application characteristic upon which the allowlist may be based.
		</TSS>
		<Tests> The evaluator shall exercise the TSF configuration as the administrator to
                    restrict particular applications, sources of applications, or application
                    installation according to the AGD guidance. The evaluator shall attempt to
                    install unauthorized applications and ensure that this is not possible. The
                    evaluator shall, in conjunction, perform the following specific tests: 
                    <h:ul>
                      <h:li>Test FMT_SMF_EXT.1:8a: [conditional] The evaluator shall attempt to connect to an
                        unauthorized repository in order to install applications. </h:li>
                      <h:li>Test FMT_SMF_EXT.1:8b: [conditional] The evaluator shall attempt to install two applications
                        (one allowlisted, and one not) from a known allowed repository and verify
                        that the application not on the allowlist is rejected. The evaluator shall
                        also attempt to side-load executables or installation packages via USB
                        connections to determine that the white list is still adhered to
                      </h:li>
                      </h:ul>
		</Tests>
		  </aactivity>
                </management-function>
                <management-function id="mf-keyStorage">
                  <text>
                    <!-- 9. -->
                    <!-- <ctr id="keyStorage" pre="" ctr-type="function">.</ctr>--> import keys or secrets into
                    the secure key storage </text>
                    <M ref="I"/><NA ref="AO"/>
		    <aactivity><also ref-id="mf-keyWipe"/>
		    <TSS>The evaluator shall verify that the TSS
                  describes each category of keys or secrets that can be imported into the TSF’s secure
                    key storage.</TSS>
		    <Tests>
		      The test of these functions is performed in association with FCS_STG_EXT.1.
		    </Tests>
		    </aactivity>
                </management-function>
                <management-function id="mf-keyWipe">
                  <text>
                    <!-- 10. -->
                    <!-- <ctr id="keyWipe" pre="" ctr-type="function">.</ctr>--> destroy imported
                    keys or secrets and <selectables>
                      <selectable exclusive="yes">no other keys or secrets</selectable>
                      <selectable><assignable>list of other categories of
                        keys or secrets</assignable></selectable>
                    </selectables> in the secure key storage </text>
                  <M ref="I"/><NA ref="AO"/>
                </management-function>
                <management-function id="mf-certImport">
                  <text>
                    <!-- 11. -->
                    <!-- <ctr id="certImport" pre="" ctr-type="function">.</ctr>--> import X.509v3
                    certificates into the Trust Anchor Database </text>
                    <M ref="I"/><NA ref="U"/><M ref="A"/>
		    <aactivity>
		      <Guidance>The evaluator shall
                  review the AGD guidance to determine that it describes the steps needed to import,
                  modify, or remove certificates in the Trust Anchor database, and that the users
                  that have authority to import those certificates (e.g., only administrator, or
                  both administrators and users) are identified.
		      </Guidance>
		      <Tests>
		        Test FMT_SMF_EXT.1:11: The evaluator shall import certificates according to the AGD guidance as the
			user or as the administrator, as determined by the administrative guidance.
			The evaluator shall verify that no errors occur during import. The evaluator
			should perform an action requiring use of the X.509v3 certificate to provide
			assurance that installation was completed properly.
		      </Tests>
		    </aactivity>
                </management-function>
                <management-function id="mf-certWipe">
                  <text>
                    <!-- 12. -->
                    <!-- <ctr id="certWipe" pre="" ctr-type="function">.</ctr>--> remove imported X.509v3
                    certificates and <selectables>
                      <selectable exclusive="yes">no other X.509v3 certificates</selectable>
                      <selectable><assignable>list of other categories of X.509v3
                          certificates</assignable></selectable>
                    </selectables> in the Trust Anchor Database </text>
                    <M ref="I"/><NA ref="AO"/>
		    <app-note>
		      In the future, function <xref to="mf-certWipe"/> may require
              destruction or disabling of any default trusted CA certificates, excepting those CA
              certificates necessary for continued operation of the TSF, such as the developer’s
              certificate. At this time, the ST author must indicate in the assignment whether
              pre-installed or any other category of X.509v3 certificates may be removed from the
              Trust Anchor Database.
		    </app-note>
		    <aactivity>
		      <TSS>
			The evaluator shall
			verify that the TSS describes each additional category of X.509 certificates and
			their use within the TSF.
		      </TSS>
		      <Tests>
		        Test FMT_SMF_EXT.1:12: The evaluator shall remove an administrator-imported certificate and any
                    other categories of certificates included in the assignment of function <xref to="mf-appRemove"/> from the Trust Anchor Database according to the AGD
                    guidance as the user and as the administrator.
		      </Tests>
		    </aactivity>
		    
                </management-function>
                <management-function id="mf-enroll">
                  <text>
                    <!-- 13. -->
                    <!-- <ctr id="enroll" pre="" ctr-type="function">.</ctr>--> enroll the TOE in management </text>
                    <M ref="I"/><O ref="U"/><O ref="A"/><O ref="AO"/>
		    <app-note>
		      For function <xref to="mf-enroll"/>, the
		      enrollment function may be installing an MDM agent and includes the policies to be
		      applied to the device. It is acceptable for the user approval notice to require the
		      user to intentionally opt to view the policies (for example, by "tapping" on a "View"
		      icon) rather than listing the policies in full in the notice.
		    </app-note>
		    <aactivity>
		      <TSS>The evaluator shall
                  examine the TSS to ensure that it contains a description of each management
                  function that will be enforced by the enterprise once the device is enrolled. The
                  evaluator shall examine the AGD guidance to determine that this same information
                  is present.
		      </TSS>
		      <Tests>
		        Test FMT_SMF_EXT.1:13: The evaluator shall verify that user approval is required to enroll the
                      device into management.
		      </Tests>
		    </aactivity>
                </management-function>
                <management-function id="mf-appRemove">
                  <text>
                    <!-- 14. -->
                    <!-- <ctr id="appRemove" pre="" ctr-type="function">.</ctr>--> remove applications </text>
                    <M ref="I"/><NA ref="U"/><M ref="A"/>
		    <aactivity><TSS>
		       The evaluator shall
                  verify that the TSS includes an indication of what applications (e.g.,
                  user-installed applications, Administrator-installed applications, or Enterprise
                  applications) can be removed along with what role can do so. The evaluator shall
                  examine the AGD guidance to determine that it details, for each type of
                  application that can be removed, the procedures necessary to remove those
                  applications and their associated data. For the purposes of this Evaluation
                  Activity, "associated data" refers to data that are created by the app during its
                  operation that do not exist independent of the app's existence, for instance,
                  configuration data, or e-mail information that’s part of an e-mail client. It does
                  not, on the other hand, refer to data such as word processing documents (for a
                  word processing app) or photos (for a photo or camera app).
		  </TSS><Tests>
		    Test FMT_SMF_EXT.1:14: The evaluator shall attempt to remove applications according to the AGD
                    guidance and verify that the TOE no longer permits users to access those
                    applications or their associated data.</Tests></aactivity>
                </management-function>
                <management-function id="mf-update">
                  <text>
                    <!-- 15 -->
                    <!-- <ctr id="update" pre="" ctr-type="function">.</ctr>--> update system software </text>
                    <M ref="I"/><NA ref="U"/><M ref="A"/>
		    <app-note>
		      For function <xref to="mf-update"/>, the administrator capability to update the system
		      software may be limited to causing a prompt to the user to update rather than the
		      ability to initiate the update itself. As the administrator is likely to be acting
		      remotely, he/she would be unaware of inopportune situations, such as low power, which
		      may cause the update to fail and the device to become inoperable. The user can refuse
		      to accept the update in such situations. It is expected that system architects will be
		      cognizant of this limitation and will enforce network access controls in order to
		      enforce enterprise-critical updates.
		    </app-note>
                  <aactivity><Tests>Test FMT_SMF_EXT.1:15: The evaluator shall attempt to update the TSF system software following the
                    procedures in the AGD guidance and verify that updates correctly install and
                    that the version numbers of the system software increase.
		    </Tests></aactivity>
                </management-function>
                <management-function id="mf-appInstall">
                  <text>
                    <!-- 16. -->
                    <!-- <ctr id="appInstall" pre="" ctr-type="function">.</ctr>--> install applications </text>
                    <M ref="I"/><NA ref="U"/><M ref="A"/>
		    <app-note>
		      Function <xref to="mf-appInstall"/> addresses both installation and update. This protection profile
              does not distinguish between installation and update of applications because mobile
              devices typically completely overwrite the previous installation with a new
              installation during an application update.
		    </app-note>
                  <aactivity><Tests>Test FMT_SMF_EXT.1:16: The evaluator shall attempt to install an application following the
                    procedures in the AGD guidance and verify that the application is installed and
                    available on the TOE.</Tests></aactivity>
                </management-function>
                <management-function id="mf-entAppRemove">
                  <text>
                    <!-- 17. -->
                    <!-- <ctr id="entAppRemove" pre="" ctr-type="function">.</ctr>--> remove Enterprise
                  applications </text>
		  <M ref="I"/><NA ref="U"/><M ref="A"/><NA ref="AO"/>
		  <app-note>
		    For function <xref to="mf-entAppRemove"/>, "Enterprise applications" are those applications that belong
              to the Enterprise application group. Applications installed by the enterprise
              administrator (including automatic installation by the administrator after being
              requested by the user from a catalog of enterprise applications) are by default placed
              in the Enterprise application group unless an exception has been made in function
              <xref to="mf-appGroups"/> of FMT_SMF_EXT.1.1.
		  </app-note>
		  <aactivity><Tests>
		    Test FMT_SMF_EXT.1:17: The evaluator shall attempt to remove any Enterprise applications from the
                    device by following the administrator guidance. The evaluator shall verify that
                    the TOE no longer permits users to access those applications or their associated
                    data.</Tests></aactivity>
                </management-function>
                <management-function id="mf-notifications">
                  <text>
                    <!-- 18. -->
                    <!-- <ctr id="notifications" pre="" ctr-type="function">.</ctr>--> enable/disable
                    display notification in the locked state of: <selectables linebreak="yes">
                      <selectable>email notifications</selectable>
                      <selectable>calendar appointments</selectable>
                      <selectable>contact associated with phone call notification</selectable>
                      <selectable>text message notification</selectable>
                      <selectable><assignable>other application-based notifications</assignable></selectable>
                      <selectable>all notifications</selectable>
                    </selectables>
                  </text>
                  <M ref="I"/>
		  <app-note>
		    If the display
              of notifications in the locked state is supported, the configuration of these
              notifications (function <xref to="mf-notifications"/>) must be included in the
              selection.
		  </app-note>
		  <aactivity><Guidance>The evaluator
                  shall examine the AGD Guidance to determine that it specifies, for at least each
                  category of information selected for Function <xref to="mf-notifications"/>,
                  how to enable and disable display information for that type of information in the
                  locked state.
		</Guidance>
		    <Tests>Test FMT_SMF_EXT.1:18: For each category of information listed in the AGD guidance, the evaluator
                    shall verify that when that TSF is configured to limit the information according
                to the AGD, the information is no longer displayed in the locked state.</Tests>
		</aactivity>
                </management-function>
                <management-function id="mf-dar">
                  <text>
                    <!-- 20. -->
                    <!-- <ctr id="dar" pre="" ctr-type="function">.</ctr>--> enable data-at rest protection </text>
                    <M ref="I"/>
		    <app-note>
		      Function <xref to="mf-dar"/> must be included in the
		      selection if data-at-rest protection is not natively enabled.
		    </app-note>
		    <aactivity><Tests>
		      Test FMT_SMF_EXT.1:19: The evaluator shall exercise the TSF configuration as the administrator and,
                    if not restricted to the administrator, the user, to enable system-wide
                    data-at-rest protection according to the AGD guidance. The evaluator shall
                    ensure that all Evaluation Activities for DAR protection (FDP_DAR_EXT) are conducted with the
                    device in this configuration.
		    </Tests></aactivity>
                </management-function>
		
                <management-function id="mf-rmediaDar">
                  <text>
                    <!-- 21. -->
                    <!-- <ctr id="rmediaDar" pre="" ctr-type="function">.</ctr>--> enable removable media’s
                    data-at-rest protection </text>
                    <M ref="I"/>
		    <app-note>
		      Function <xref to="mf-rmediaDar"/> is implicitly met if the TSF does not support
		      removable media.
		    </app-note>
		    <aactivity><Tests>
		      Test FMT_SMF_EXT.1:20: The evaluator shall exercise the TSF configuration as the administrator and,
                    if not restricted to the administrator, the user, to enable removable media’s
                    data-at-rest protection according to the AGD guidance. The evaluator shall
                    ensure that all Evaluation Activities for DAR protection (FDP_DAR_EXT) are conducted with the
                    device in this configuration.
		    </Tests></aactivity>
                </management-function>
                <management-function id="mf-location">
                  <text>
                    <!-- 21. -->
                    <!-- <ctr id="location" pre="" ctr-type="function">.</ctr>--> enable/disable location
                    services: <h:ul>
                      <h:li>Across device</h:li></h:ul>
                    <h:div class="indent"><selectables linebreak="yes">
                        <selectable id="mf-location-per_app">on a per-app basis</selectable>
                        <selectable>on a per-group of applications processes basis</selectable>
                        <selectable exclusive="yes">no other method</selectable>
                      </selectables></h:div>
                  </text>
                  <M ref="I"/>
		  <app-note>
		                  For function <xref to="mf-location"/>, location
              services include location information gathered from GPS, cellular, and Wi-Fi.

		  </app-note>
		  <aactivity><Tests>
		    The evaluator shall perform the following tests. <h:ul>
		      <h:li>Test FMT_SMF_EXT.1:21a: The evaluator shall enable location services device-wide and shall
                        verify that an application (such as a mapping application) is able to access
                        the TOE’s location information. The evaluator shall disable location
                        services device-wide and shall verify that an application (such as a mapping
                        application) is unable to access the TOE’s location information. </h:li>
		      <h:li>Test FMT_SMF_EXT.1:21b: [conditional] If <xref to="mf-location-per_app"/> is selected, the evaluator shall
                        create two applications and enable one to use access the location services
                        and the other to not access the location services. The evaluator shall
                        exercise each application attempting to access location services
                        individually. The evaluator shall verify that the enabled application is
                        able to access the location services and the disabled application is not
                        able to access the location services. </h:li>
                    </h:ul></Tests></aactivity>
                </management-function>
                <management-function id="mf-authFactors">
                  <text>
                    <!-- <ctr id="authFactors" pre="" ctr-type="function">.</ctr>--> enable/disable the use
                    of <selectables>
                      <selectable>Biometric Authentication Factor</selectable>
                      <selectable>Hybrid Authentication Factor</selectable>
                    </selectables>
                  </text>
		  <app-note>
		    Function <xref to="mf-authFactors"/> must be included in the ST if the TOE contains a BAF. This selection must correspond with the selection made in
              FIA_UAU.5.1. If <xref to="uau_biometric"/> is selected in FIA_UAU.5.1, "Biometric Authentication Factor"
              must be selected and the user or admin must have the option to disable the use of
              it. If multiple BAFs are claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/>, this applies to all different
              modalities. If <xref to="uau_hybr"/> is selected in FIA_UAU.5.1 it must be selected and the user
              or admin must have the option to disable the use of it.
		  </app-note>
		  <aactivity><Tests>
		    The evaluator shall verify that the TSS states if the TOE supports a BAF
                    or hybrid authentication. If the TOE does not include a BAF or hybrid
                    authentication this test is implicitly met.<h:ul>
                      <h:li>Test FMT_SMF_EXT.1:22a: [conditional] If <xref to="uau_biometric"/> is selected in FIA_UAU.5.1, for each BAF claimed in FIA_MBV_EXT.1.1 in the <xref to="mod-biometrics"/> the evaluator shall verify that the
                        TSS describes the procedure to enable/disable the BAF.<!--If the TOE includes
                        multiple BAFs, the evaluator shall verify that the TSS describes how to
                        enable/disable each BAF, specifically if the different modalities can be
                        individually enabled/disabled.--> The evaluator shall configure the TOE to
                        allow each supported BAF to authenticate and verify that successful
                        authentication can be achieved using the BAF. The evaluator shall configure
                        the TOE to disable the use of each supported BAF for authentication and
                        confirm that the BAF cannot be used to authenticate. </h:li>
                      <h:li>Test FMT_SMF_EXT.1:22b: [conditional] If <xref to="uau_hybr"/> is selected the evaluator shall verify that
                        the TSS describes the procedure to enable/disable the hybrid (biometric
                        credential and PIN/password) authentication. The evaluator shall configure
                        the TOE to allow hybrid authentication to authenticate and confirm that
                        successful authentication can be achieved using the hybrid authentication.
                        The evaluator shall configure the TOE to disable the use of hybrid
                        authentication and confirm that the hybrid authentication cannot be used to
                        authenticate. </h:li>
                        </h:ul>
                    </Tests></aactivity>
                </management-function>
                <management-function id="mf-certInvalid">
                  <text>
                    <!-- <ctr id="certInvalid" pre="" ctr-type="function">.</ctr>--> configure whether to
                    allow or disallow establishment of <assignable>configurable trusted channel in FTP_ITC_EXT.1.1 or FDP_UPC_EXT.1.1/APPS</assignable> if the peer or server certificate
                    is deemed invalid.</text>
		    <app-note>
		                    <!-- TODO: Should this be something like for TLS do not approve any exceptions, for HTTP this is per FCS_HTTPS_EXT.1.3?? How do I force the selection of no exceptions for all (non-HTTPS) TLS connections? -->
              Function <xref to="mf-certInvalid"/> must be included in the ST if the function is configurable on the TOE for any of the trusted channels either mandated or selected in <xref to="fel-wlan"/> or <xref to="fel-tls-app"/>. The configuration can be different depending on the specific trusted channel(s) and they must be filled in for the assignment.
		    </app-note>
                  <aactivity><Tests>The test of this function is performed in conjunction with FIA_X509_EXT.2.2 in <xref to="X509"/> and
                    FCS_TLSC_EXT.1.6 in the <xref to="tls"/>. </Tests></aactivity>
                </management-function>
                <!-- Start of the Optional to implement functions -->
                <management-function id="mf-externalPorts">
                  <text>
                    <!-- <ctr id="externalPorts" pre="" ctr-type="function">.</ctr>--> enable/disable all
                    data signaling over <assignable>list of externally accessible hardware
                      ports</assignable>
                  </text>
		  <app-note>
		                  <!-- Start of the optional to include functions --> The assignment in function
                <xref to="mf-externalPorts"/> consists of all externally accessible hardware
              ports, such as USB, the SD card, and HDMI, whose data transfer capabilities can be
              enabled and disabled by either the user or administrator. Disablement of data transfer
              over an external port must be effective during and after boot into the normal
              operative mode of the device. If the TOE supports states in which configured security
              management policy is inaccessible, for example, due to data-at-rest protection, it is
              acceptable to meet this requirement by ensuring that data transfer is disabled by
              default while in these states. Each of the ports may be enabled or disabled
              separately. The configuration policy need not disable all ports together. In the case
              of USB, charging is still allowed if data transfer capabilities have been disabled.

		  </app-note>
		  <aactivity><TSS>
		    The evaluator shall verify that the TSS includes a list of each externally
                    accessible hardware port and an indication of if data transfer over that port can
                    be enabled/disabled. AGD guidance will describe how to perform the enable/disable function.</TSS>
		    <Tests>Test FMT_SMF_EXT.1:24: The evaluator shall exercise the TSF configuration to enable and disable
                    data transfer capabilities over each externally accessible hardware ports (e.g.
                    USB, SD card, HDMI) listed by the ST author. The evaluator shall use test
                    equipment for the particular interface to ensure that while the TOE may continue to 
                    receive data on the RX pins, it is not responding on TX pins used for data transfer when they are disabled. For each
                    disabled data transfer capability, the evaluator shall repeat this test by
                    rebooting the device into the normal operational mode and verifying that the
                    capability is disabled throughout the boot and early execution stage of the
                    device.</Tests>
		    </aactivity>
                </management-function>
                <management-function id="mf-serverProtocols">
                  <text>
                    <!-- <ctr id="serverProtocols" pre="" ctr-type="function">.</ctr>--> enable/disable
                      <assignable id="a-server">list of protocols where the device acts as a server</assignable>
                  </text>
		  <app-note>
		    The assignment in function <xref to="mf-serverProtocols"/>
              consists of all protocols where the TSF acts as a server, which can be enabled and
              disabled by either the user or administrator. Hotspot tethering is not a 'protocol' as defined by this function. This is defined in management function WL-3 of <xref to="mod-wlanclient"/>.
		  </app-note>
		  <aactivity><TSS>
		    The evaluator shall verify that the TSS describes how the TSF acts as a server in
                  each of the protocols listed in the ST, and the reason for acting as a server.</TSS>
		    <Tests>
		      Test FMT_SMF_EXT.1:25: The evaluator shall attempt to disable each listed protocol in the
                    assignment. The evaluator shall verify that remote devices can no longer access
                    the TOE or TOE resources using any disabled protocols.
		    </Tests>
		    </aactivity>
                </management-function>
                <management-function id="mf-devModes">
                  <text>
                    <!-- <ctr id="devModes" pre="" ctr-type="function">.</ctr>--> enable/disable developer
                  modes </text>
		  <app-note>
		    Function <xref to="mf-devModes"/> must be included in the selection if developer modes are
		    supported by the TSF.
		  </app-note>
		  <aactivity><Tests>
		    Test FMT_SMF_EXT.1:26: The evaluator shall exercise the TSF configuration as the administrator and,
                    if not restricted to the administrator, the user, to enable and disable any
                    developer mode. The evaluator shall test that developer mode access is not
                    available when its configuration is disabled. The evaluator shall verify the
                    developer mode remains disabled during device reboot.</Tests></aactivity>
                </management-function>
                <management-function id="mf-authBypass">
                  <text>
                    <!-- <ctr id="authBypass" pre="" ctr-type="function">.</ctr>--> enable/disable bypass of
                  local user authentication </text>
		  <app-note>
		    Function <xref to="mf-authBypass"/> must
              be included in the selection if bypass of local user authentication, such as a "Forgot
              Password", password hint, or remote authentication feature, is supported.

		  </app-note>
		  <aactivity><Guidance>The
                  evaluator shall examine the AGD guidance to determine that it describes how to
                  enable and disable any "Forgot Password", password hint, or remote authentication
                  (to bypass local authentication mechanisms) capability.
		</Guidance>
		    <Tests>Test FMT_SMF_EXT.1:27: For each mechanism listed in the AGD guidance that provides a "Forgot
                    Password" feature or other means where the local authentication process can be
                    bypassed, the evaluator shall disable the feature and ensure that they are not
                    able to bypass the local authentication process.</Tests></aactivity>
                </management-function>
                <management-function id="mf-wipeEntData">
                  <text>
                    <!-- <ctr id="wipeEntData" pre="" ctr-type="function">.</ctr>--> wipe Enterprise data </text>
                    <NA ref="AO"/>
		    <aactivity><Tests>
		      Test FMT_SMF_EXT.1:28: The evaluator shall attempt to wipe Enterprise data resident on the device
                    according to the administrator guidance. The evaluator shall verify that the
                    data is no longer accessible by the user.</Tests></aactivity>
                </management-function>
                <management-function id="mf-appCert">
                  <text>
                    <!-- <ctr id="appCert" pre="" ctr-type="function">.</ctr>--> approve <selectables>
                      <selectable>import</selectable>
                      <selectable>removal</selectable>
                    </selectables> by applications of X.509v3 certificates in the Trust Anchor
                  Database </text>
		  <app-note>
		    Function <xref to="mf-appCert"/> must be included in the
              selection if the TSF allows applications, other than MDM agents, to import or
              remove X.509v3 certificates from the Trust Anchor Database. The MDM agent is
              considered to be acting as the administrator. This function does not apply to applications trusting a
              certificate for its own validations. The function only applies to situations where the
              application modifies the device-wide Trust Anchor Database, affecting the validations
              performed by the TSF for other applications. The user or administrator may be provided
              the ability to globally allow or deny any application requests in order to meet this
              requirement.
		  </app-note>
		  <aactivity><TSS>
		    The
                  evaluator shall verify that the TSS describes how approval for an application to
                  perform the selected action (import, removal) with respect to certificates in the
                  Trust Anchor Database is accomplished (e.g., a pop-up, policy setting, etc.).
                  <h:br/><h:br/> The evaluator shall also verify that the API documentation
                  provided in the TSS (or other documentation) includes any security functions
                  (import, modification, or destruction of the Trust Anchor Database) allowed by applications.
		</TSS>
		<Tests>The evaluator shall perform one of the following tests: <h:ul>
		  <h:li>Test FMT_SMF_EXT.1:29a: [conditional] If applications may import certificates to the Trust
                        Anchor Database, the evaluator shall write, or the developer shall provide
                        access to, an application that imports a certificate into the Trust Anchor
                        Database. The evaluator shall verify that the TOE requires approval before
                        allowing the application to import the certificate: <h:ul>
                          <h:li>The evaluator shall deny the approvals to verify that the
                            application is not able to import the certificate. Failure of import
                            shall be tested by attempting to validate a certificate that chains to
                            the certificate whose import was attempted (as described in the
                            evaluation activity for FIA_X509_EXT.1 as defined in the <xref to="X509"/>). </h:li>
                          <h:li>The evaluator shall repeat the test, allowing the approval to
                            verify that the application is able to import the certificate and that
                            validation occurs. </h:li>
                        </h:ul>
                      </h:li>
		  <h:li>Test FMT_SMF_EXT.1:29b: [conditional] If applications may remove certificates in the Trust
                        Anchor Database, the evaluator shall write, or the developer shall provide
                        access to, an application that removes certificates from the Trust Anchor
                        Database. The evaluator shall verify that the TOE requires approval before
                        allowing the application to remove the certificate: <h:ul>
                          <h:li>The evaluator shall deny the approvals to verify that the
                            application is not able to remove the certificate. Failure of removal
                            shall be tested by attempting to validate a certificate that chains to
                            the certificate whose removal was attempted (as described in the
                            evaluation activity for FIA_X509_EXT.1 as defined in the <xref to="X509"/>). 
                          <h:p/>
                            The evaluator shall repeat the test, allowing the approval to verify
                            that the application is able to remove/modify the certificate and that
                            validation no longer occurs.
                          </h:li>
                        </h:ul>
                      </h:li>
                    </h:ul> 
		    </Tests>
		  </aactivity>
		</management-function>
                <management-function id="mf-certValidity">
                  <text>
                    <!-- <ctr id="certValidity" pre="" ctr-type="function">.</ctr>--> configure whether to
                    allow or disallow establishment of a trusted channel if the TSF cannot establish a
                  connection to determine the validity of a certificate</text>
		  <app-note>
		    Function <xref to="mf-certValidity"/> must be
              included in the ST if "administrator is allowed to configure certificate acceptance" is selected in
              FIA_X509_EXT.2.2 in <xref to="X509"/>
		  </app-note>
                  <aactivity><Tests>The test of this function is performed in conjunction with FIA_X509_EXT.2.2 in <xref to="X509"/>.</Tests></aactivity>
                </management-function>
                <management-function id="mf-cellular">
                  <text>
                    <!-- <ctr id="cellular" pre="" ctr-type="function">.</ctr>--> enable/disable the
                  cellular protocols used to connect to cellular network base stations </text>
		  <aactivity><TSS>The
                  evaluator shall ensure that the TSS describes which cellular protocols can be
                  disabled.</TSS>
		  <Guidance>The evaluator shall confirm that the AGD guidance describes the
                  procedure for disabling each cellular protocol identified in the TSS.
		  </Guidance>
		    <Tests>Test FMT_SMF_EXT.1:31: The evaluator shall attempt to disable each cellular protocol according to
                    the administrator guidance. The evaluator shall attempt to connect the device to
                    a cellular network and, using network analysis tools, verify that the device
                    does not allow negotiation of the disabled protocols.</Tests></aactivity>
                </management-function>
                <management-function id="mf-auditLogs">
                  <text>
                    <!-- <ctr id="auditLogs" pre="" ctr-type="function">.</ctr>--> read audit logs kept by
                    the TSF </text>
                    <M ref="I"/> <NA ref="U"/><M ref="A"/><NA ref="AO"/>
                  <aactivity><Tests>Test FMT_SMF_EXT.1:32: The evaluator shall attempt to read any device audit logs according to the
                    administrator guidance and verify that the logs may be read. This test may be
                    performed in conjunction with the evaluation activity of FAU_GEN.1.</Tests></aactivity>
                </management-function>
                <management-function id="mf-digSign">
                  <text>
                    <!-- <ctr id="digSign" pre="" ctr-type="function">.</ctr>--> configure <selectables>
                      <selectable>certificate</selectable>
                      <selectable>public-key</selectable>
                  </selectables> used to validate digital signature on applications </text>
		  <app-note>
		    Function <xref to="mf-digSign"/> should be
              included in the selection if FPT_TUD_EXT.5.1 is included in the ST and the
              configurable option is selected.
		  </app-note>
		  <aactivity><Tests>
		    The test of this function is performed in conjunction with FPT_TUD_EXT.5.1.
		  </Tests></aactivity>
                </management-function>
                <management-function id="mf-sharedKeys">
                  <text>
                    <!-- <ctr id="sharedKeys" pre="" ctr-type="function">.</ctr>--> approve exceptions for
                  shared use of keys or secrets by multiple applications </text>
		  <app-note>
		    Function <xref to="mf-sharedKeys"/> should be included in the selection if user or administrator is
		    selected in FCS_STG_EXT.1.4.
		  </app-note>
		  <aactivity><TSS>The
                  evaluator shall verify that the TSS describes how the approval for exceptions for
                  shared use of keys or secrets by multiple applications is accomplished (e.g., a
                  pop-up, policy setting, etc.).</TSS><Tests>
		  The test of this function is performed in conjunction with FCS_STG_EXT.1.
		  </Tests></aactivity>
                </management-function>
                <management-function id="mf-keyWipeRules">
                  <text>
                    <!-- <ctr id="keyWipeRules" pre="" ctr-type="function">.</ctr>--> approve exceptions for
                    destruction of keys or secrets by applications that did not import the key or secret
                  </text>
		  <app-note>
		    Function <xref to="mf-keyWipeRules"/> should be included in the selection if
		    <xref to="s-killkey-user"/> or <xref to="s-killkey-admin"/>
		    is selected in FCS_STG_EXT.1.5.
		    
		    <!-- 
		    <rule id="r-killkey-user-mf">
		      <if><ref-id>s-killkey-user</ref-id></if>
		      <then><ref-id>mf-keyWipeRules</ref-id></then>
		    </rule>
		    <rule id="r-killkey-admin-mf">
		      <if><ref-id>s-killkey-admin</ref-id></if>
		      <then><ref-id>mf-keyWipeRules</ref-id></then>
		    </rule>
		    -->
		  </app-note>
		<aactivity><TSS>The
                  evaluator shall verify that the TSS describes how the approval for exceptions for
                  destruction of keys or secrets by applications that did not import the key or secret is
                  accomplished (e.g., a pop-up, policy setting, etc.).
		  </TSS><Tests>
		  The test of this function is performed in conjunction with FCS_STG_EXT.1.
		</Tests>
		</aactivity>
                </management-function>
                <management-function id="mf-unlockBanner">
                  <text>
                    <!-- <ctr id="unlockBanner" pre="" ctr-type="function">.</ctr>--> configure the unlock
                    banner </text>
                    <M ref="I"/> <NA ref="U"/>
		    <app-note>
		      <!-- ToDo Removed because FTA_TAB is now mandatory: Function <xref to="mf-unlockBanner"/> must be
		      included in the selection if FTA_TAB.1 is included in the ST. !-->
		    </app-note>
		    <aactivity><TSS>
                  The evaluator shall verify that the TSS describes any restrictions in banner
                  settings (e.g., character limitations).
		  </TSS><Tests>
		  The test of this function is performed in conjunction with FTA_TAB.1.
		    </Tests></aactivity>
		</management-function>
                <management-function id="mf-auditItems">
                  <text>
                    <!-- <ctr id="auditItems" pre="" ctr-type="function">.</ctr>--> configure the auditable
                    items </text>
                    <NA ref="U"/>
		    <app-note>
		                    Function <xref to="mf-auditItems"/> must be included in the selection if FAU_SEL.1
				    is included in the ST.
		    </app-note>
		    <aactivity><Tests>The test of this function is performed in conjunction with FAU_SEL.1.</Tests></aactivity>
                </management-function>
                <management-function id="mf-integ">
                  <text>
                    <!-- <ctr id="integ" pre="" ctr-type="function">.</ctr>--> retrieve TSF-software
                  integrity verification values </text>
		  <aactivity><Tests>The test of this function is performed in conjunction with FPT_NOT_EXT.2.1.</Tests></aactivity>
                </management-function>
                <management-function id="mf-USB">
                  <text>
                    <!-- <ctr id="USB" pre="" ctr-type="function">.</ctr>--> enable/disable <selectables linebreak="yes">
                      <selectable id="s-usbstore">USB mass storage mode</selectable>
                      <selectable>USB data transfer without user authentication</selectable>
                      <selectable>USB data transfer without authentication of the connecting
                        system</selectable>
                    </selectables>
                  </text>
		  <aactivity><TSS>The
                  evaluator shall verify that the TSS includes a description of how data transfers
                  can be managed over USB.</TSS>
                  <Tests>The evaluator shall perform the following tests based on the selections made: <h:ul>
                    <h:li>Test FMT_SMF_EXT.1:39a: [conditional] The evaluator shall disable USB mass storage mode,
                        attach the device to a computer, and verify that the computer cannot mount
                        the TOE as a drive. The evaluator shall reboot the TOE and repeat this test
                        with other supported auxiliary boot modes. </h:li>
                    <h:li>Test FMT_SMF_EXT.1:39b: [conditional] The evaluator shall disable USB data transfer without
                        user authentication, attach the device to a computer, and verify that the
                        TOE requires user authentication before the computer can access TOE data.
                        The evaluator shall reboot the TOE and repeat this test with other supported
                        auxiliary boot modes. </h:li>
                    <h:li>Test FMT_SMF_EXT.1:39c: [conditional] The evaluator shall disable USB data transfer without
                        connecting system authentication, attach the device to a computer, and
                        verify that the TOE requires connecting system authentication before the
                        computer can access TOE data. The evaluator shall then connect the TOE to
                        another computer and verify that the computer cannot access TOE data. The
                        evaluator shall then connect the TOE to the original computer and verify
                        that the computer can access TOE data. </h:li>
                      </h:ul></Tests>
		      </aactivity>
                </management-function>
                <management-function id="mf-backup">
                  <text>
                    <!-- <ctr id="backup" pre="" ctr-type="function">.</ctr>--> enable/disable backup of <selectables>
                      <selectable id="s-backup-all-apps">all applications</selectable>
                      <selectable id="s-backup-sel-apps">selected applications</selectable>
                      <selectable id="s-backup-sel-grps">selected groups of applications</selectable>
                      <selectable id="s-backup-cfg">configuration data</selectable>
                    </selectables> to <selectables>
                      <selectable>locally connected system</selectable>
                      <selectable>remote system</selectable>
                    </selectables>
                  </text>
		  <aactivity><TSS>The
                  evaluator shall verify that the TSS includes a description of available backup
                  methods that can be enabled/disabled. If "selected applications" or "selected groups
                  of applications" are selected the TSS shall include which applications of groups of
                  applications backup can be enabled/disabled.</TSS>
                  
                <Tests> 
                  <h:ul>
                    <h:li>Test FMT_SMF_EXT.1:40a: [conditional] If <xref to="s-backup-all-apps"/> is selected, the evaluator shall disable each selected
                    backup location in turn and verify that the TOE cannot complete a backup. The
                    evaluator shall then enable each selected backup location in turn and verify
                    that the TOE can perform a backup.</h:li>
                    <h:li>Test FMT_SMF_EXT.1:40b: [conditional] If <xref to="s-backup-sel-apps"/> is selected,
		    the evaluator shall disable each selected backup location in turn
                    and verify that for the selected application the TOE prevents backup from
                    occurring. The evaluator shall then enable each selected backup location in turn
                    and verify that for the selected application the TOE can perform a backup.</h:li>
                    <h:li>Test FMT_SMF_EXT.1:40c: [conditional] If <xref to="s-backup-sel-grps"/> is selected, the
                    evaluator shall disable each selected backup location in turn and verify that
                    for a group of applications the TOE prevents the backup from occurring. The
                    evaluator shall then enable each selected backup location in turn and verify for
                    the group of application the TOE can perform a backup. </h:li>
                    <h:li>Test FMT_SMF_EXT.1:40d: [conditional] If <xref to="s-backup-cfg"/> is selected, the evaluator shall disable each selected
                    backup location in turn and verify that the TOE prevents the backup of
                    configuration data from occurring. The evaluator shall then enable each selected
                    backup location in turn and verify that the TOE can perform a backup of
                    configuration data.</h:li>
                  </h:ul>
		    </Tests></aactivity>
                </management-function>
                <management-function id="mf-tethering">
                  <text>
                    <!-- <ctr id="hotspot" pre="" ctr-type="function">.</ctr>--> enable/disable <selectables linebreak="yes">
                      <selectable>Bluetooth tethering</selectable>
                      <selectable id="s-tether"><snip>USB tethering</snip> authenticated by <selectables>
                          <selectable>device authentication</selectable>
                          <selectable>USB device identifier</selectable>
                          <selectable exclusive="yes">no authentication</selectable>
                        </selectables>
                      </selectable>
                    </selectables>
                  </text>
		  <app-note>
		    Function <xref to="mf-tethering"/>, device authentication for USB tethering refers to the user needing to authenticate themselves to the mobile device and unlock it in order to initiate a tethered connection. USB device authentication references the use of device filtration to permit or reject tethering for certain connected devices or types of devices.

		  </app-note>
		  <aactivity><TSS> The
                  evaluator shall verify that the TSS includes a description of Bluetooth or USB tethering functionality as claimed in the function. If USB tethering is supported, the evaluator shall verify that it includes the method used for authentication USB connections.</TSS>
		  <Tests>The evaluator shall perform the following tests based on the selections in
                    Function <xref to="mf-tethering"/>. <h:ul>
                      <h:li>Test FMT_SMF_EXT.1:41a: [conditional] The evaluator shall enable Bluetooth tethering functionality. The evaluator shall use a Bluetooth device to connect to the TOE and verify that tethering functionality is implemented. The evaluator shall disable Bluetooth tethering functionality and verify that the function has been disabled.</h:li>
                      <h:li>Test FMT_SMF_EXT.1:41b: [conditional] The evaluator shall enable USB tethering functionality
                        with each of supported authentication methods. The evaluator shall
                        connect to the TOE over USB with another device and verify that the
                        tethering functionality requires the configured authentication method.
                      </h:li>
                    </h:ul></Tests></aactivity>
                </management-function>
                <management-function id="mf-dataSharing">
                  <text>
                    <!-- <ctr id="dataSharing" pre="" ctr-type="function">.</ctr>--> approve exceptions for
                    sharing data between <selectables>
                      <selectable>applications</selectable>
                      <selectable>groups of applications</selectable>
                  </selectables></text>
		  <app-note>
		    Functions <xref to="mf-dataSharing"/> and <xref to="mf-appGroups"/> correspond to FDP_ACF_EXT.1.2.
		  </app-note>
		  <aactivity><Tests>The test of this function is performed in conjunction with FDP_ACF_EXT.1.2.</Tests></aactivity>
                </management-function>
                <management-function id="mf-appGroups">
                  <text>
                    <!-- <ctr id="appGroups" pre="" ctr-type="function">.</ctr>--> place applications into
                    application groups based on <assignable>enterprise configuration
                  settings</assignable></text>
		  <aactivity><Tests>
		    Test FMT_SMF_EXT.1:43: The evaluator shall set a policy to cause a designated application to be
                    placed into a particular application group. The evaluator shall then install the
                    designated application and verify that it was placed into the correct group.
		    </Tests></aactivity>
                </management-function>
                <management-function id="mf-unenroll">
                  <text>
                    <!-- <ctr id="unenroll" pre="" ctr-type="function">.</ctr>--> unenroll the TOE from
                  management </text>
		  <app-note>
		    For function
                <xref to="mf-unenroll"/>, FMT_SMF_EXT.2.1 specifies actions to be performed when
		the TOE is unenrolled from management.
		  </app-note>
		  <aactivity><Tests>
		    Test FMT_SMF_EXT.1:44: The evaluator shall attempt to unenroll the device from management and
                    verify that the steps described in FMT_SMF_EXT.2.1 are performed. This test
                    should be performed in conjunction with the FMT_SMF_EXT.2.1 evaluation activity.
		    </Tests></aactivity>
                </management-function>
                <management-function id="mf-alwaysOnVPN">
                  <text>
                    <!-- <ctr id="alwaysOnVPN" pre="" ctr-type="function">.</ctr>--> enable/disable the
                    Always On VPN protection:
                    <h:ul>
                      <h:li>Across device</h:li></h:ul>
                    <h:div class="indent"><selectables linebreak="yes">
                      <selectable>on a per-app basis</selectable>
                      <selectable>on a per-group of applications processes basis</selectable>
                      <selectable exclusive="yes">no other method</selectable>
                    </selectables></h:div>                
                  </text>
		  <app-note>
		    Function <_/> must be included in the ST if IPsec is selected in
              FTP_ITC_EXT.1 and the native IPsec VPN client can be configured to be Always-On.
              Always-On is defined as when the TOE has a network connection the VPN attempts to
              connect, all data leaving the device uses the VPN when the VPN is connected and no
              data leaves that device when the VPN is disconnected. The configuration of the VPN
              Client itself (with information such as VPN Gateway, certificates, and algorithms) is
              addressed by the <xref to="mod-vpnclient"/>.
		  </app-note>
		  <aactivity><TSS>The evaluator shall verify that the TSS contains guidance to configure the
                  VPN as Always-On.
		  </TSS><Tests>The evaluator shall configure the VPN as Always-On and perform the following tests:
                    <h:ul>
                      <h:li>Test FMT_SMF_EXT.1:45a: The evaluator shall verify that when the VPN is connected all traffic
                        is routed through the VPN. This test is performed in conjunction with
                        FDP_IFC_EXT.1.1. </h:li>
                      <h:li>Test FMT_SMF_EXT.1:45b: The evaluator shall verify that when the VPN is not established, that
                        no traffic leaves the device. The evaluator shall ensure that the TOE has
                        network connectivity and that the VPN is established. The evaluator shall
                        use a packet sniffing tool to capture the traffic leaving the TOE. The
                        evaluator shall disable the VPN connection on the server side. The evaluator
                        shall perform actions with the device such as navigating to websites, using
                        provided applications, and accessing other Internet resources and verify
                        that no traffic leaves the device. </h:li>
                      <h:li>Test FMT_SMF_EXT.1:45c: The evaluator shall verify that the TOE has network connectivity and
                        that the VPN is established. The evaluator shall disable network
                        connectivity (i.e., Airplane Mode) and verify that the VPN disconnects. The
                        evaluator shall re-establish network connectivity and verify that the VPN
                        automatically reconnects. </h:li>
                    </h:ul>
		  </Tests></aactivity>
                </management-function>
                <management-function id="mf-bioRevoke">
                  <text>
                    <!-- <ctr id="bioRevoke" pre="" ctr-type="function">.</ctr>--> revoke Biometric
                  template</text>
		  <aactivity><TSS>The evaluator shall verify that the TSS describes the procedure to revoke a
                  biometric credential stored on the TOE.
		  </TSS><Tests>Test FMT_SMF_EXT.1:46: The evaluator shall configure the TOE to
                    use BAF and confirm that the biometric can be used to authenticate to the
                    device. The evaluator shall revoke the biometric credential’s ability to
                    authenticate to the TOE and confirm that the same BAF cannot be used to
                    authenticate to the device.
		  </Tests></aactivity>
                </management-function>
                <management-function id="mf-other">
                  <text>
                    <!-- <ctr id="other" pre="" ctr-type="function">.</ctr>-->
                    <assignable>list of other management functions to be provided by the
                  TSF</assignable></text>
		  <aactivity><TSS> The evaluator shall
                  verify that the TSS describes all assigned security management functions and their
                  intended behavior.
		  </TSS>
		    <Tests>Test FMT_SMF_EXT.1:47: The evaluator shall design and perform tests to demonstrate that the
                    function may be configured and that the intended behavior of the function is
                    enacted by the TOE.
		    </Tests></aactivity>
                </management-function>
              </management-function-set>
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall be capable of performing <assignable>list of management functions</assignable>.
              </title>
            </ext-comp-def-title>
            <note role="application">
              <xref to="fmt_smf"/> identifies the management functions defined by this
              PP, whether they are mandatory or optional, and whether it is mandatory, optional, or forbidden for a particular role to perform each function. <h:br/><h:br/>
	       The first column ("#") is a sequential numeric identifier while the second column ("Management Function") lists the management functions
              identified in the PP. <h:br/><h:br/> In the following columns: <h:ul>
                <h:li>‘M’ means Mandatory</h:li>
                <h:li>‘O’ means Optional/Objective</h:li>
                <h:li>'-' means that no value (M or O) can be assigned</h:li>
              </h:ul>
              <h:br/><h:br/> The third column ("Impl.") indicates whether the function is
              to be implemented. The ST author should select which of the non-mandatory functions are
              implemented. <h:br/><h:br/> The fourth column ("User Only") indicates functions
              that are to be restricted to the user (i.e., not available to the administrator).
              <h:br/><h:br/> The fifth column ("Admin") indicates functions that are
              available to the administrator. The functions restricted to the user ("User Only" column) cannot
              also be available to the administrator. Functions available to the administrator can
              still be available to the user, as long as the function is not restricted to the
              administrator ("Admin Only" column). Thus, if the TOE must offer these functions to both the user and the
              administrator to perform, the "Admin" column entry must be selected. <h:br/><h:br/> The
              "Admin Only" column (FMT_MOF_EXT.1.2) indicates whether the function is to be restricted to
              the administrator when the device is enrolled and the administrator applies the
              indicated policy. If the function is restricted to the administrator the function is
              not available to the user. This does not prevent the user from modifying a setting to
              make the function stricter, but the user cannot undo the configuration enforced by the
              administrator. <h:br/><h:br/> The ST author may use a table in the ST, listing
              only those functions that are implemented. For functions that are mandatory, any
              sub-functions not in a selection are also mandatory and any assignments must contain
              at least one assigned value. For functions that are optional and contain an assignment
              or selection, at least one value must be assigned/selected to be included in the ST.
              For non-selectable sub-functions in an optional function, all sub-functions must be
              implemented in order for the function to be included. For functions with a "per-app
              basis" sub function and an assignment, the ST author must indicate which assigned
              features are manageable on a per-app basis and which are not by iterating the row.
	      <h:br/><h:br/>
              <!-- <h:b>Function-specific Application Notes:</h:b><h:br/><h:br/> For functions -->
              <!--   <xref to="mf-vpn"/>, <xref to="mf-audioVisual"/> and <xref to="mf-location" -->
              <!-- />, the function must be implemented on a device-wide basis but may also be -->
              <!-- implemented on a per-app basis or on a per-group of applications basis in which the -->
              <!-- configuration includes the list of applications or groups of applications to which the -->
              <!-- enable/disable applies. <h:br/><h:br/> Function <xref to="mf-vpn"/> addresses -->
              <!-- enabling and disabling the IPsec VPN only. The configuration of the VPN Client itself -->
              <!-- (with information such as VPN Gateway, certificates, and algorithms) is addressed by -->
              <!-- the PP-Module for VPN Client. The administrator options should only be listed if the -->
              <!-- administrator can remotely enable/disable the VPN connection. <h:br/><h:br/> -->
              <!-- Function <xref to="mf-vpn"/> optionally allows the VPN to be configured per-app or -->
              <!-- per-groups of apps. If this configuration is selected, it does not void FDP_IFC_EXT.1. -->
              <!-- Instead FDP_IFC_EXT.1 is applied to the application or group of applications the VPN -->
              <!-- is applied to. In other words, all traffic destined for the VPN-enabled application or -->
              <!-- group of applications, must travel through the VPN, but traffic not destined for that -->
              <!-- application or group of applications can travel outside the VPN. When the VPN is -->
              <!-- configured across the device FDP_IFC_EXT.1 applies to all traffic and the VPN must not -->
              <!-- split tunnel. -->
	    </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes all management functions, what
                roles can perform each function, and how these functions are (or can be)
                restricted to the roles identified by FMT_MOF_EXT.1. <h:br/><h:br/> The
                following activities are organized according to the function number in the table.
                These activities include TSS Evaluation Activities, AGD Evaluation Activities, and
                test activities. <h:br/><h:br/> Test activities specified below shall take place
                in the test environment described in the evaluation activity for FPT_TUD_EXT.1.<h:br/><h:br/></TSS>
              <Guidance> The evaluator shall consult the AGD guidance to perform each of the
                specified tests, iterating each test as necessary if both the user and administrator
                may perform the function. The evaluator shall verify that the AGD guidance describes
                how to perform each management function, including any configuration details. For
                each specified management function tested, the evaluator shall confirm that the
                underlying mechanism exhibits the configured setting.</Guidance>
              <!-- <Tests> -->
              <!--   <testlist> -->
              <!--     <h:b>Function <xref to="mf-pwd"/></h:b><h:br/> The evaluator shall verify -->
              <!--     the TSS defines the allowable policy options: the range of values for both -->
              <!--     password length and lifetime, and a description of complexity to include character -->
              <!--     set and complexity policies (e.g., configuration and enforcement of number of -->
              <!--     uppercase, lowercase, and special characters per password).<h:br/><h:br/> -->
              <!--     <test>The evaluator shall exercise the TSF configuration as the administrator and -->
              <!--       perform positive and negative tests, with at least two values set for each -->
              <!--       variable setting, for each of the following: <h:br/> -->
              <!--       <h:ul> -->
              <!--         <h:li>minimum password length</h:li> -->
              <!--         <h:li>minimum password complexity</h:li> -->
              <!--         <h:li>maximum password lifetime</h:li> -->
              <!--       </h:ul> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-screenlock"/></h:b><h:br/> The evaluator shall -->
              <!--     verify the TSS defines the range of values for both timeout period and number of -->
              <!--     authentication failures for all supported authentication mechanisms.<h:br/><h:br/> -->
              <!--     <test> The evaluator shall exercise the TSF configuration as the administrator. -->
              <!--       The evaluator shall perform positive and negative tests, with at least two -->
              <!--       values set for each variable setting, for each of the following: <h:br/> -->
              <!--       <h:ul> -->
              <!--         <h:li>screen-lock enabled/disabled</h:li> -->
              <!--         <h:li>screen lock timeout</h:li> -->
              <!--         <h:li>number of authentication failures (may be combined with test for -->
              <!--           FIA_AFL_EXT.1)</h:li> -->
              <!--       </h:ul> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-vpn"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall perform the following tests: <h:ol type="a"> -->
              <!--         <h:li>The evaluator shall exercise the TSF configuration to enable the VPN -->
              <!--           protection. These configuration actions must be used for the testing of the -->
              <!--           FDP_IFC_EXT.1.1 requirement. </h:li> -->
              <!--         <h:li>[conditional] If "per-app basis" is selected, the evaluator shall -->
              <!--           create two applications and enable one to use the VPN and the other to not -->
              <!--           use the VPN. The evaluator shall exercise each application (attempting to -->
              <!--           access network resources; for example, by browsing different websites) -->
              <!--           individually while capturing packets from the TOE. The evaluator shall -->
              <!--           verify from the packet capture that the traffic from the VPN-enabled -->
              <!--           application is encapsulated in IPsec and that the traffic from the -->
              <!--           VPN-disabled application is not encapsulated in IPsec. </h:li> -->
              <!--         <h:li>[conditional] If "per-groups of application basis" is selected, the -->
              <!--           evaluator shall create two applications and the applications shall be placed -->
              <!--           into different groups. Enable one application group to use the VPN and the -->
              <!--           other to not use the VPN. The evaluator shall exercise each application -->
              <!--           (attempting to access network resources; for example, by browsing different -->
              <!--           websites) individually while capturing packets from the TOE. The evaluator -->
              <!--           shall verify from the packet capture that the traffic from the application -->
              <!--           in the VPN-enabled group is encapsulated in IPsec and that the traffic from -->
              <!--           the application in the VPN-disabled group is not encapsulated in IPsec. -->
              <!--         </h:li> -->
              <!--       </h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-radios"/></h:b><h:br/> The evaluator shall -->
              <!--     verify that the TSS includes a description of each radio and an indication of if -->
              <!--     the radio can be enabled/disabled along with what role can do so. In addition the -->
              <!--     evaluator shall verify that the frequency ranges at which each radio operates is -->
              <!--     included in the TSS. The evaluator shall verify that the TSS includes at what point  -->
              <!--     in the boot sequence the radios are powered on and indicates if the radios are used  -->
              <!--     as part of the initialization of the device.             -->
              <!--     The evaluator shall confirm that the AGD guidance describes -->
              <!--     how to perform the enable/disable function for each radio.<h:br/><h:br/> The -->
              <!--     evaluator shall ensure that minimal signal leakage enters the RF shielded -->
              <!--     enclosure (i.e., Faraday bag, Faraday box, RF shielded room) by performing the -->
              <!--     following steps:<h:br/><h:br/> Step 1: Place the antenna of the spectrum -->
              <!--     analyzer inside the RF shielded enclosure.<h:br/><h:br/> Step 2: Enable "Max -->
              <!--     Hold" on the spectrum analyzer and perform a spectrum sweep of the frequency range -->
              <!--     between 300MHz – 6000MHz, in I KHz steps (this range should encompass 802.11, -->
              <!--     802.15, GSM, UMTS, and LTE). This range will not address NFC 13.56MHz, another -->
              <!--     test should be set up with similar constraints to address NFC.<h:br/><h:br/> -->
              <!--     If power above -90 dBm is observed, the Faraday box has too great of signal -->
              <!--     leakage and shall not be used to complete the test for Function <xref -->
              <!--       to="mf-radios"/>.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall exercise the TSF configuration as the administrator and, -->
              <!--       if not restricted to the administrator, the user, to enable and disable the -->
              <!--       state of each radio (e.g. Wi-Fi, cellular, NFC, Bluetooth). Additionally, -->
              <!--       the evaluator shall repeat the steps below, booting into any auxiliary boot mode -->
              <!--       supported by the device. For each radio, the evaluator shall:<h:br/><h:br/> -->
              <!--       Step 1: Place the antenna of the spectrum analyzer inside the RF shielded -->
              <!--       enclosure. Configure the spectrum analyzer to sweep desired frequency range for -->
              <!--       the radio to be tested (based on range provided in the TSS)). The ambient noise -->
              <!--       floor shall be set to -110dBm. Place the TOE into the RF shielded enclosure to -->
              <!--       isolate them from all other RF traffic. <h:br/><h:br/> Step 2: The evaluator -->
              <!--       shall create a baseline of the expected behavior of RF signals. The evaluator -->
              <!--       shall power on the device, ensure the radio in question is enabled, power off -->
              <!--       the device, enable "Max Hold" on the spectrum analyzer and power on the device. -->
              <!--       The evaluator shall wait 2 minutes at each Authentication Factor interface prior -->
              <!--       to entering the necessary password to complete the boot process, waiting 5 -->
              <!--       minutes after the device is fully booted. The evaluator shall observe that RF -->
              <!--       spikes are present at the expected uplink channel frequency. The evaluator shall -->
              <!--       clear the "Max Hold" on the spectrum analyzer. <h:br/><h:br/> Step 3: The -->
              <!--       evaluator shall verify the absence of RF activity for the uplink channel when -->
              <!--       the radio in question is disabled. The evaluator shall complete the following -->
              <!--       test five times. The evaluator shall power on the device, ensure the radio in -->
              <!--       question is disabled, power off the device, enable "Max Hold" on the spectrum -->
              <!--       analyzer and power on the device. The evaluator shall wait 2 minutes at each -->
              <!--       Authentication Factor interface prior to entering the necessary password to -->
              <!--       complete the boot process, waiting 5 minutes after the device is fully booted. -->
              <!--       The evaluator shall clear the "Max Hold" on the spectrum analyzer. If the radios  -->
              <!--       are used for device initialization, then a spike of RF activity for the uplink channel -->
              <!--       can be observed initially at device boot. However, if a spike of -->
              <!--       RF activity for the uplink channel of the specific radio frequency band is -->
              <!--       observed after the device is fully booted or at an Authentication Factor interface  -->
              <!--       it is deemed that the radio is enabled. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-audioVisual"/></h:b><h:br/> The evaluator -->
              <!--     shall verify that the TSS includes a description of each collection device and an -->
              <!--     indication of if it can be enabled/disabled along with what role can do so. The -->
              <!--     evaluator shall confirm that the AGD guidance describes how to perform the -->
              <!--     enable/disable function. <h:br/><h:br/> -->
              <!--     <test>The evaluator shall perform the following tests: <h:ol type="a"> -->
              <!--         <h:li>The evaluator shall exercise the TSF configuration as the -->
              <!--           administrator and, if not restricted to the administrator, the user, to -->
              <!--           enable and disable the state of each audio or visual collection devices -->
              <!--           (e.g. camera, microphone) listed by the ST author. For each collection -->
              <!--           device, the evaluator shall disable the device and then attempt to use its -->
              <!--           functionality. The evaluator shall reboot the TOE and verify that disabled -->
              <!--           collection devices may not be used during or early in the boot process. -->
              <!--           Additionally, the evaluator shall boot the device into each available -->
              <!--           auxiliary boot mode and verify that the collection device cannot be used. </h:li> -->
              <!--         <h:li>[conditional] If "per-app basis" is selected, the evaluator shall -->
              <!--           create two applications and enable one to use access the A/V device and the -->
              <!--           other to not access the A/V device. The evaluator shall exercise each -->
              <!--           application attempting to access the A/V device individually. The evaluator -->
              <!--           shall verify that the enabled application is able to access the A/V device -->
              <!--           and the disabled application is not able to access the A/V device. </h:li> -->
              <!--         <h:li>[conditional] If "per-groups of application basis" is selected, the -->
              <!--           evaluator shall create two applications and the applications shall be placed -->
              <!--           into different groups. Enable one group to access the A/V device and the -->
              <!--           other to not access the A/V device. The evaluator shall exercise each -->
              <!--           application attempting to access the A/V device individually. The evaluator -->
              <!--           shall verify that the application in the enabled group is able to access the -->
              <!--           A/V device and the application in the disabled group is not able to access -->
              <!--           the A/V device. </h:li> -->
              <!--       </h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-lockState"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall use the test environment to instruct the TSF, both as a -->
              <!--       user and as the administrator, to command the device to transition to a locked -->
              <!--       state, and verify that the device transitions to the locked state upon -->
              <!--       command.</test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-wipe"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall use the test environment to instruct the TSF, both as a -->
              <!--       user and as the administrator, to command the device to perform a wipe of -->
              <!--       protected data. The evaluator must ensure that this management setup is used -->
              <!--       when conducting the Evaluation Activities in FCS_CKM_EXT.5.</test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-appInstallRules"/></h:b><h:br/> The evaluator -->
              <!--     shall verify the TSS describes the allowable application installation policy -->
              <!--     options based on the selection included in the ST. If the application allowlist is -->
              <!--     selected, the evaluator shall verify that the TSS includes a description of each -->
              <!--     application characteristic upon which the allowlist may be based.<h:br/><h:br/> -->
              <!--     <test> The evaluator shall exercise the TSF configuration as the administrator to -->
              <!--       restrict particular applications, sources of applications, or application -->
              <!--       installation according to the AGD guidance. The evaluator shall attempt to -->
              <!--       install unauthorized applications and ensure that this is not possible. The -->
              <!--       evaluator shall, in conjunction, perform the following specific tests: <h:ol -->
              <!--         type="a"> -->
              <!--         <h:li>[conditional] The evaluator shall attempt to connect to an -->
              <!--           unauthorized repository in order to install applications. </h:li> -->
              <!--         <h:li>[conditional] The evaluator shall attempt to install two applications -->
              <!--           (one allowlisted, and one not) from a known allowed repository and verify -->
              <!--           that the application not on the allowlist is rejected. The evaluator shall -->
              <!--           also attempt to side-load executables or installation packages via USB -->
              <!--           connections to determine that the white list is still adhered to -->
              <!--         </h:li></h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-keyStorage"/> &#38; Function <xref -->
              <!--         to="mf-keyWipe"/></h:b><h:br/> The evaluator shall verify that the TSS -->
              <!--     describes each category of keys or secrets that can be imported into the TSF’s secure -->
              <!--     key storage.<h:br/><h:br/> -->
              <!--     <test>The test of these functions is performed in association with FCS_STG_EXT.1. </test><h:br/> -->
              <!--     <test>The test of these functions is performed in association with FCS_STG_EXT.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-certImport"/></h:b><h:br/> The evaluator shall -->
              <!--     review the AGD guidance to determine that it describes the steps needed to import, -->
              <!--     modify, or remove certificates in the Trust Anchor database, and that the users -->
              <!--     that have authority to import those certificates (e.g., only administrator, or -->
              <!--     both administrators and users) are identified. <h:br/><h:br/> -->
              <!--     <test>The evaluator shall import certificates according to the AGD guidance as the -->
              <!--       user or as the administrator, as determined by the administrative guidance. -->
              <!--       The evaluator shall verify that no errors occur during import. The evaluator -->
              <!--       should perform an action requiring use of the X.509v3 certificate to provide -->
              <!--       assurance that installation was completed properly. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-certWipe"/></h:b><h:br/> The evaluator shall -->
              <!--     verify that the TSS describes each additional category of X.509 certificates and -->
              <!--     their use within the TSF.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall remove an administrator-imported certificate and any -->
              <!--       other categories of certificates included in the assignment of function <xref -->
              <!--         to="mf-appRemove"/> from the Trust Anchor Database according to the AGD -->
              <!--       guidance as the user and as the administrator. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-enroll"/></h:b><h:br/> The evaluator shall -->
              <!--     examine the TSS to ensure that it contains a description of each management -->
              <!--     function that will be enforced by the enterprise once the device is enrolled. The -->
              <!--     evaluator shall examine the AGD guidance to determine that this same information -->
              <!--     is present.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall verify that user approval is required to enroll the -->
              <!--       device into management. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-appRemove"/></h:b><h:br/> The evaluator shall -->
              <!--     verify that the TSS includes an indication of what applications (e.g., -->
              <!--     user-installed applications, Administrator-installed applications, or Enterprise -->
              <!--     applications) can be removed along with what role can do so. The evaluator shall -->
              <!--     examine the AGD guidance to determine that it details, for each type of -->
              <!--     application that can be removed, the procedures necessary to remove those -->
              <!--     applications and their associated data. For the purposes of this Evaluation -->
              <!--     Activity, "associated data" refers to data that are created by the app during its -->
              <!--     operation that do not exist independent of the app's existence, for instance, -->
              <!--     configuration data, or e-mail information that’s part of an e-mail client. It does -->
              <!--     not, on the other hand, refer to data such as word processing documents (for a -->
              <!--     word processing app) or photos (for a photo or camera app). <h:br/><h:br/> -->
              <!--     <test>The evaluator shall attempt to remove applications according to the AGD -->
              <!--       guidance and verify that the TOE no longer permits users to access those -->
              <!--       applications or their associated data. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-update"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall attempt to update the TSF system software following the -->
              <!--       procedures in the AGD guidance and verify that updates correctly install and -->
              <!--       that the version numbers of the system software increase. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-appInstall"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall attempt to install an application following the -->
              <!--       procedures in the AGD guidance and verify that the application is installed and -->
              <!--       available on the TOE. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-entAppRemove"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall attempt to remove any Enterprise applications from the -->
              <!--       device by following the administrator guidance. The evaluator shall verify that -->
              <!--       the TOE no longer permits users to access those applications or their associated -->
              <!--       data. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-notifications"/></h:b><h:br/> The evaluator -->
              <!--     shall examine the AGD Guidance to determine that it specifies, for at least each -->
              <!--     category of information selected for Function <xref to="mf-notifications"/>, -->
              <!--     how to enable and disable display information for that type of information in the -->
              <!--     locked state.<h:br/><h:br/> -->
              <!--     <test>For each category of information listed in the AGD guidance, the evaluator -->
              <!--       shall verify that when that TSF is configured to limit the information according -->
              <!--       to the AGD, the information is no longer displayed in the locked state.</test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-dar"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall exercise the TSF configuration as the administrator and, -->
              <!--       if not restricted to the administrator, the user, to enable system-wide -->
              <!--       data-at-rest protection according to the AGD guidance. The evaluator shall -->
              <!--       ensure that all Evaluation Activities for DAR (FDP_DAR) are conducted with the -->
              <!--       device in this configuration. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-rmediaDar"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall exercise the TSF configuration as the administrator and, -->
              <!--       if not restricted to the administrator, the user, to enable removable media’s -->
              <!--       data-at-rest protection according to the AGD guidance. The evaluator shall -->
              <!--       ensure that all Evaluation Activities for DAR (FDP_DAR) are conducted with the -->
              <!--       device in this configuration. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-location"/> -->
              <!--     </h:b><h:br/> -->
              <!--     <test>The evaluator shall perform the following tests. <h:ol type="a"> -->
              <!--         <h:li>The evaluator shall enable location services device-wide and shall -->
              <!--           verify that an application (such as a mapping application) is able to access -->
              <!--           the TOE’s location information. The evaluator shall disable location -->
              <!--           services device-wide and shall verify that an application (such as a mapping -->
              <!--           application) is unable to access the TOE’s location information. </h:li> -->
              <!--         <h:li>[conditional] If "per-app basis" is selected, the evaluator shall -->
              <!--           create two applications and enable one to use access the location services -->
              <!--           and the other to not access the location services. The evaluator shall -->
              <!--           exercise each application attempting to access location services -->
              <!--           individually. The evaluator shall verify that the enabled application is -->
              <!--           able to access the location services and the disabled application is not -->
              <!--           able to access the location services. </h:li> -->
              <!--       </h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-authFactors"/></h:b><h:br/> -->
              <!--     <test>The evaluator shall verify that the TSS states if the TOE supports a BAF -->
              <!--       or hybrid authentication. If the TOE does not include a BAF or hybrid -->
              <!--       authentication this test is implicitly met. <h:ol type="a"> -->
              <!--         <h:li>[conditional] If a BAF is selected the evaluator shall verify that the -->
              <!--           TSS describes the procedure to enable/disable the BAF. If the TOE includes -->
              <!--           multiple BAFs, the evaluator shall verify that the TSS describes how to -->
              <!--           enable/disable each BAF, specifically if the different modalities can be -->
              <!--           individually enabled/disabled. The evaluator shall configure the TOE to -->
              <!--           allow each supported BAF to authenticate and verify that successful -->
              <!--           authentication can be achieved using the BAF. The evaluator shall configure -->
              <!--           the TOE to disable the use of each supported BAF for authentication and -->
              <!--           confirm that the BAF cannot be used to authenticate. </h:li> -->
              <!--         <h:li>[conditional] If "Hybrid" is selected the evaluator shall verify that -->
              <!--           the TSS describes the procedure to enable/disable the hybrid (biometric -->
              <!--           credential and PIN/password) authentication. The evaluator shall configure -->
              <!--           the TOE to allow hybrid authentication to authenticate and confirm that -->
              <!--           successful authentication can be achieved using the hybrid authentication. -->
              <!--           The evaluator shall configure the TOE to disable the use of hybrid -->
              <!--           authentication and confirm that the hybrid authentication cannot be used to -->
              <!--           authenticate. </h:li> -->
              <!--       </h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:br/> -->
              <!--     <h:b>Evaluation Activity Note:</h:b> It should be noted that the following -->
              <!--     functions are optional capabilities, if the function is implemented, then the -->
              <!--     following Evaluation Activities shall be performed. The notation of "[conditional]" -->
              <!--     beside the function number indicates that if the function is not included in the -->
              <!--     ST, then there is no expectation that the evaluation activity be performed. <h:br/><h:br/> -->
              <!--     <!-\- TODO: Look AT -\-> -->
              <!--     <h:b>Function <xref to="mf-certInvalid"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FIA_X509_EXT.2.2, -->
              <!--       FCS_TLSC_EXT.1.3 in the Package for Transport Layer Security. </test><h:br/> -->
              <!--     <!-\- Start of optional to include these functions -\-> -->
              <!--     <h:b>Function <xref to="mf-externalPorts"/> [conditional]</h:b><h:br/> -->
              <!--     The evaluator shall verify that the TSS includes a list of each externally -->
              <!--     accessible hardware port and an indication of if data transfer over that port can -->
              <!--     be enabled/disabled. AGD guidance will describe how to perform the enable/disable function.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall exercise the TSF configuration to enable and disable -->
              <!--       data transfer capabilities over each externally accessible hardware ports (e.g. -->
              <!--       USB, SD card, HDMI) listed by the ST author. The evaluator shall use test -->
              <!--       equipment for the particular interface to ensure that no low-level signaling is -->
              <!--       occurring on all pins used for data transfer when they are disabled. For each -->
              <!--       disabled data transfer capability, the evaluator shall repeat this test by -->
              <!--       rebooting the device into the normal operational mode and verifying that the -->
              <!--       capability is disabled throughout the boot and early execution stage of the -->
              <!--       device. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-serverProtocols"/> [conditional]</h:b><h:br/> -->
              <!--     The evaluator shall verify that the TSS describes how the TSF acts as a server in -->
              <!--     each of the protocols listed in the ST, and the reason for acting as a server.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall attempt to disable each listed protocol in the -->
              <!--       assignment. The evaluator shall verify that remote devices can no longer access -->
              <!--       the TOE or TOE resources using any disabled protocols. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-devModes"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The evaluator shall exercise the TSF configuration as the administrator and, -->
              <!--       if not restricted to the administrator, the user, to enable and disable any -->
              <!--       developer mode. The evaluator shall test that developer mode access is not -->
              <!--       available when its configuration is disabled. The evaluator shall verify the -->
              <!--       developer mode remains disabled during device reboot. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-authBypass"/> [conditional]</h:b><h:br/> The -->
              <!--     evaluator shall examine the AGD guidance to determine that it describes how to -->
              <!--     enable and disable any "Forgot Password", password hint, or remote authentication -->
              <!--     (to bypass local authentication mechanisms) capability.<h:br/><h:br/> -->
              <!--     <test>For each mechanism listed in the AGD guidance that provides a "Forgot -->
              <!--       Password" feature or other means where the local authentication process can be -->
              <!--       bypassed, the evaluator shall disable the feature and ensure that they are not -->
              <!--       able to bypass the local authentication process. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-wipeEntData"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The evaluator shall attempt to wipe Enterprise data resident on the device -->
              <!--       according to the administrator guidance. The evaluator shall verify that the -->
              <!--       data is no longer accessible by the user. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-appCert"/> [conditional]</h:b><h:br/> The -->
              <!--     evaluator shall verify that the TSS describes how approval for an application to -->
              <!--     perform the selected action (import, removal) with respect to certificates in the -->
              <!--     Trust Anchor Database is accomplished (e.g., a pop-up, policy setting, etc.). -->
              <!--     <h:br/><h:br/> The evaluator shall also verify that the API documentation -->
              <!--     provided according to <xref to="adv"/> includes any security functions -->
              <!--     (import, modification, or destruction of the Trust Anchor Database) allowed by applications.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall perform one of the following tests: <h:ol type="a"> -->
              <!--         <h:li>[conditional] If applications may import certificates to the Trust -->
              <!--           Anchor Database, the evaluator shall write, or the developer shall provide -->
              <!--           access to, an application that imports a certificate into the Trust Anchor -->
              <!--           Database. The evaluator shall verify that the TOE requires approval before -->
              <!--           allowing the application to import the certificate: <h:ul> -->
              <!--             <h:li>The evaluator shall deny the approvals to verify that the -->
              <!--               application is not able to import the certificate. Failure of import -->
              <!--               shall be tested by attempting to validate a certificate that chains to -->
              <!--               the certificate whose import was attempted (as described in the -->
              <!--               evaluation activity for FIA_X509_EXT.1). </h:li> -->
              <!--             <h:li>The evaluator shall repeat the test, allowing the approval to -->
              <!--               verify that the application is able to import the certificate and that -->
              <!--               validation occurs. </h:li> -->
              <!--           </h:ul> -->
              <!--         </h:li> -->
              <!--         <h:li>[conditional] If applications may remove certificates in the Trust -->
              <!--           Anchor Database, the evaluator shall write, or the developer shall provide -->
              <!--           access to, an application that removes certificates from the Trust Anchor -->
              <!--           Database. The evaluator shall verify that the TOE requires approval before -->
              <!--           allowing the application to remove the certificate: <h:ul> -->
              <!--             <h:li>The evaluator shall deny the approvals to verify that the -->
              <!--               application is not able to remove the certificate. Failure of removal -->
              <!--               shall be tested by attempting to validate a certificate that chains to -->
              <!--               the certificate whose removal was attempted (as described in the -->
              <!--               evaluation activity for FIA_X509_EXT.1). </h:li> -->
              <!--           </h:ul> -->
              <!--         </h:li> -->
              <!--       </h:ol> The evaluator shall repeat the test, allowing the approval to verify -->
              <!--       that the application is able to remove/modify the certificate and that -->
              <!--       validation no longer occurs. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-certValidity"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FIA_X509_EXT.2.2. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-cellular"/> [conditional]</h:b><h:br/> The -->
              <!--     evaluator shall ensure that the TSS describes which cellular protocols can be -->
              <!--     disabled. The evaluator shall confirm that the AGD guidance describes the -->
              <!--     procedure for disabling each cellular protocol identified in the TSS.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall attempt to disable each cellular protocol according to -->
              <!--       the administrator guidance. The evaluator shall attempt to connect the device to -->
              <!--       a cellular network and, using network analysis tools, verify that the device -->
              <!--       does not allow negotiation of the disabled protocols. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-auditLogs"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The evaluator shall attempt to read any device audit logs according to the -->
              <!--       administrator guidance and verify that the logs may be read. This test may be -->
              <!--       performed in conjunction with the evaluation activity of FAU_GEN.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-digSign"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FPT_TUD_EXT.5.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-sharedKeys"/> [conditional]</h:b><h:br/> The -->
              <!--     evaluator shall verify that the TSS describes how the approval for exceptions for -->
              <!--     shared use of keys or secrets by multiple applications is accomplished (e.g., a -->
              <!--     pop-up, policy setting, etc.).<h:br/><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FCS_STG_EXT.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-keyWipeRules"/> [conditional]</h:b><h:br/> The -->
              <!--     evaluator shall verify that the TSS describes how the approval for exceptions for -->
              <!--     destruction of keys or secrets by applications that did not import the key/secret is -->
              <!--     accomplished (e.g., a pop-up, policy setting, etc.).<h:br/><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FCS_STG_EXT.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-unlockBanner"/> [conditional] </h:b><h:br/> -->
              <!--     The evaluator shall verify that the TSS describes any restrictions in banner -->
              <!--     settings (e.g., character limitations).<h:br/><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FTA_TAB.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-auditItems"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FAU_SEL.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-integ"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FPT_NOT_EXT.2.1. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-USB"/> [conditional]</h:b><h:br/> The -->
              <!--     evaluator shall verify that the TSS includes a description of how data transfers -->
              <!--     can be managed over USB.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall perform the following tests based on the selections made -->
              <!--       in the table: <h:ol type="a"> -->
              <!--         <h:li>[conditional] The evaluator shall disable USB mass storage mode, -->
              <!--           attach the device to a computer, and verify that the computer cannot mount -->
              <!--           the TOE as a drive. The evaluator shall reboot the TOE and repeat this test -->
              <!--           with other supported auxiliary boot modes. </h:li> -->
              <!--         <h:li>[conditional] The evaluator shall disable USB data transfer without -->
              <!--           user authentication, attach the device to a computer, and verify that the -->
              <!--           TOE requires user authentication before the computer can access TOE data. -->
              <!--           The evaluator shall reboot the TOE and repeat this test with other supported -->
              <!--           auxiliary boot modes. </h:li> -->
              <!--         <h:li>[conditional] The evaluator shall disable USB data transfer without -->
              <!--           connecting system authentication, attach the device to a computer, and -->
              <!--           verify that the TOE requires connecting system authentication before the -->
              <!--           computer can access TOE data. The evaluator shall then connect the TOE to -->
              <!--           another computer and verify that the computer cannot access TOE data. The -->
              <!--           evaluator shall then connect the TOE to the original computer and verify -->
              <!--           that the computer can access TOE data. </h:li> -->
              <!--       </h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-backup"/> [conditional]</h:b><h:br/> The -->
              <!--     evaluator shall verify that the TSS includes a description of available backup -->
              <!--     methods that can be enabled/disabled. If "selected applications or selected groups -->
              <!--     of applications are selected the TSS shall include which applications of groups of -->
              <!--     applications backup can be enabled/disabled.<h:br/><h:br/> -->
              <!--     <test>If "all applications" is selected, the evaluator shall disable each selected -->
              <!--       backup location in turn and verify that the TOE cannot complete a backup. The -->
              <!--       evaluator shall then enable each selected backup location in turn and verify -->
              <!--       that the TOE can perform a backup. <h:br/><h:br/> If "selected applications" -->
              <!--       is selected, the evaluator shall disable each selected backup location in turn -->
              <!--       and verify that for the selected application the TOE prevents backup from -->
              <!--       occurring. The evaluator shall then enable each selected backup location in turn -->
              <!--       and verify that for the selected application the TOE can perform a backup. -->
              <!--       <h:br/><h:br/> If "selected groups of applications" is selected, the -->
              <!--       evaluator shall disable each selected backup location in turn and verify that -->
              <!--       for a group of applications the TOE prevents the backup from occurring. The -->
              <!--       evaluator shall then enable each selected backup location in turn and verify for -->
              <!--       the group of application the TOE can perform a backup. <h:br/><h:br/> If -->
              <!--       "configuration data" is selected, the evaluator shall disable each selected -->
              <!--       backup location in turn and verify that the TOE prevents the backup of -->
              <!--       configuration data from occurring. The evaluator shall then enable each selected -->
              <!--       backup location in turn and verify that the TOE can perform a backup of -->
              <!--       configuration data. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-tethering"/> [conditional] </h:b><h:br/> The -->
              <!--     evaluator shall verify that the TSS includes a description of Hotspot -->
              <!--     functionality and USB tethering to include any authentication for these. <h:br/><h:br/> -->
              <!--     <test>The evaluator shall perform the following tests based on the selections in -->
              <!--       Function <xref to="mf-tethering"/>. <h:ol type="a"> -->
              <!--         <h:li>[conditional] The evaluator shall enable hotspot functionality with -->
              <!--           each of the of the support authentication methods. The evaluator shall -->
              <!--           connect to the hotspot with another device and verify that the hotspot -->
              <!--           functionality requires the configured authentication method. </h:li> -->
              <!--         <h:li>[conditional] The evaluator shall enable USB tethering functionality -->
              <!--           with each of the of the support authentication methods. The evaluator shall -->
              <!--           connect to the TOE over USB with another device and verify that the -->
              <!--           tethering functionality requires the configured authentication method. -->
              <!--         </h:li> -->
              <!--       </h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-dataSharing"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The test of this function is performed in conjunction with FDP_ACF_EXT.1.2. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-appGroups"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The evaluator shall set a policy to cause a designated application to be -->
              <!--       placed into a particular application group. The evaluator shall then install the -->
              <!--       designated application and verify that it was placed into the correct group. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-unenroll"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The evaluator shall attempt to unenroll the device from management and -->
              <!--       verify that the steps described in FMT_SMF_EXT.2.1 are performed. This test -->
              <!--       should be performed in conjunction with the FMT_SMF_EXT.2.1 evaluation activity. </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-alwaysOnVPN"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The evaluator shall verify that the TSS contains guidance to configure the -->
              <!--       VPN as Always-On. The evaluator shall configure the VPN as Always-On and perform -->
              <!--       the following test. <h:ol type="a"> -->
              <!--         <h:li>The evaluator shall verify that when the VPN is connected all traffic -->
              <!--           is routed through the VPN. This test is performed in conjunction with -->
              <!--           FDP_IFC_EXT.1.1. </h:li> -->
              <!--         <h:li>The evaluator shall verify that when the VPN is not established, that -->
              <!--           no traffic leaves the device. The evaluator shall ensure that the TOE has -->
              <!--           network connectivity and that the VPN is established. The evaluator shall -->
              <!--           use a packet sniffing tool to capture the traffic leaving the TOE. The -->
              <!--           evaluator shall disable the VPN connection on the server side. The evaluator -->
              <!--           shall perform actions with the device such as navigating to websites, using -->
              <!--           provided applications, and accessing other Internet resources and verify -->
              <!--           that no traffic leaves the device. </h:li> -->
              <!--         <h:li>The evaluator shall verify that the TOE has network connectivity and -->
              <!--           that the VPN is established. The evaluator shall disable network -->
              <!--           connectivity (i.e., Airplane Mode) and verify that the VPN disconnects. The -->
              <!--           evaluator shall re-establish network connectivity and verify that the VPN -->
              <!--           automatically reconnects. </h:li> -->
              <!--       </h:ol> -->
              <!--     </test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-bioRevoke"/> [conditional]</h:b><h:br/> -->
              <!--     <test>The evaluator shall verify that the TSS describes the procedure to revoke a -->
              <!--       biometric credential stored on the TOE. The evaluator shall configure the TOE to -->
              <!--       use BAF and confirm that the biometric can be used to authenticate to the -->
              <!--       device. The evaluator shall revoke the biometric credential’s ability to -->
              <!--       authenticate to the TOE and confirm that the same BAF cannot be used to -->
              <!--       authenticate to the device.</test><h:br/> -->
              <!--     <h:b>Function <xref to="mf-other"/></h:b><h:br/> The evaluator shall -->
              <!--     verify that the TSS describes all assigned security management functions and their -->
              <!--     intended behavior.<h:br/><h:br/> -->
              <!--     <test>The evaluator shall design and perform tests to demonstrate that the -->
              <!--       function may be configured and that the intended behavior of the function is -->
              <!--       enacted by the TOE.</test><h:br/> -->
              <!--   </testlist> -->
              <!-- </Tests> -->
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Initiation of policy update</audit-event-descr>
	    <audit-event-info>Policy name</audit-event-info>
	  </audit-event>
	  <audit-event>
	    <audit-event-descr>Change of settings</audit-event-descr>
	    <audit-event-info><h:ul>
	      <h:li>Role of user that changed setting</h:li>
	      <h:li>Value of new setting</h:li>
	    </h:ul></audit-event-info>
	  </audit-event>
	  <audit-event>
	    <audit-event-descr>Success or failure of function</audit-event-descr>
	    <audit-event-info><h:ul>
	      <h:li>Role of user that performed function</h:li>
	      <h:li>Function performed</h:li>
	      <h:li>Reason for failure</h:li>
	    </h:ul></audit-event-info>
	  </audit-event>
	  <audit-event>
	    <audit-event-descr>Initiation of software update</audit-event-descr>
	    <audit-event-info>Version of update</audit-event-info>
	  </audit-event>
	  <audit-event>
	    <audit-event-descr>Initiation of application installation or update</audit-event-descr>
	    <audit-event-info>Name and version of application</audit-event-info>
	  </audit-event>
        </f-component>
        
        <f-component cc-id="fmt_smf_ext.2" name="Specification of Remediation Actions">
          
          <comp-lev> requires the TSF to automatically perform specific management functions in response to a specific event.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT: <h:ul>
            <h:li>Configuration of the functions that are performed in response to unenrollment event.</h:li>
          </h:ul>
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST: 
            <h:ul>
            <h:li>Initiation of unenrollment.</h:li>
            <h:li>Completion of unenrollment.</h:li>
          </h:ul>
          </audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fmt-smf-ext-acts">
            <title>The TSF shall offer <selectables>
                <selectable id="s-smf-wipe-pro">wipe of protected data</selectable>
                <selectable id="s-smf-wipe-sen">wipe of sensitive data</selectable>
                <selectable id="s-smf-ext-2-rem-ent-app">remove Enterprise applications</selectable>
                <selectable>remove all device-stored Enterprise resource data</selectable>
                <selectable>remove Enterprise secondary authentication data</selectable>
                <selectable><assignable>list other available remediation
                  actions</assignable></selectable>
              </selectables> upon unenrollment and <selectables>
                <selectable><assignable>other administrator-configured
                  triggers</assignable></selectable>
                <selectable exclusive="yes"> no other triggers</selectable>
            </selectables>.</title>
	    <ext-comp-def-title><title>
	      The TSF shall offer <assignable>list of remediation actions</assignable>
	      upon unenrollment and
	      <assignable>list of triggers</assignable>.</title></ext-comp-def-title>
            <note role="application"> Unenrollment may consist of removing the MDM agent or
              removing the administrator’s policies. The functions in the selection are remediation
              actions that TOE may provide (perhaps via APIs) to the administrator (perhaps via an MDM
              agent) that may be performed upon unenrollment. "Enterprise applications" refers to
              applications that are in the Enterprise application group. "Enterprise resource data"
              refers to all stored Enterprise data and the separate resources that are available to
              the Enterprise application group, per FDP_ACF_EXT.2.1. If FDP_ACF_EXT.2.1 is included
              in the ST, then "remove all device-stored Enterprise resource data" must be selected,
              and is defined to be all resources selected in FDP_ACF_EXT.2.1. If FIA_UAU_EXT.4.1 is
              included in the ST, then "remove Enterprise secondary authentication data" must be
              selected. If FIA_UAU_EXT.4.1 is not included in the ST, then "remove Enterprise
              secondary authentication data" cannot be selected. Enterprise secondary authentication
              data only refers to any data stored on the TOE that is specifically used as part of a
              secondary authentication mechanism to authenticate access to Enterprise applications
              and shared resources. Material that is used for the TOE’s primary authentication
              mechanism or other purposes not related to authentication to or protection of
              Enterprise applications or shared resources should not be removed. <h:br/><h:br/>
				
				
              Protected data is all non-TSF data, including all user or enterprise data. Some or all
              of this data may be considered sensitive data as well.
			  If <xref to="s-smf-wipe-pro"/> is selected it is assumed that the sensitive data is wiped as well.
			  However, if <xref to="s-smf-wipe-sen"/> is selected, it does not imply that all non-TSF data (protected data)
              is wiped.
			  If <xref to="s-smf-wipe-pro"/> or <xref to="s-smf-wipe-sen"/> is selected the wipe  must be in accordance with FCS_CKM_EXT.5.1.
			  Thus cryptographically wiping the device is an acceptable remediation action.
			</note>
            <aactivity>
              <TSS> The evaluator shall verify that the TSS describes all available remediation
                actions, when they are available for use, and any other administrator-configured
                triggers. The evaluator shall verify that the TSS describes how the remediation
                actions are provided to the administrator.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall use the test environment to iteratively configure the
                device to perform each remediation action in the selection. The evaluator shall
                configure the remediation action per how the TSS states it is provided to the
                administrator. The test environment could be an MDM agent application, but can also
                be an application with administrator access.</Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Initiation of unenrollment</audit-event-descr>
	    <audit-event-info><h:ul>
	      <h:li>Identity of administrator</h:li>
	      <h:li>Failure of accepting command to unenroll</h:li>
	    </h:ul></audit-event-info>
	  </audit-event>
          <audit-event>
            <audit-event-descr>Unenrollment</audit-event-descr>
            <audit-event-info>Remediation action performed</audit-event-info>
          </audit-event>
        </f-component>
        <f-component cc-id="fmt_smf_ext.3" name="Current Administrator" status="objective">
          
          <comp-lev> requires the TSF to provide users with a list of administrators and their specified functions.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FMT_SMR.1 Security Roles</dependencies>
          
          
          <f-element id="fel-smf-curr-admin">
            <title>The TSF shall provide a mechanism that allows users to view a list of currently
              authorized administrators and the management functions that each administrator is
              authorized to perform.</title>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall cause the TOE to be enrolled into management. The
                evaluator shall then invoke this mechanism and verify the ability to view that the
                device has been enrolled, and view the management functions that the administrator
                is authorized to perform.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
      </sec:fmt>
      <sec:fpt title="Class FPT: Protection of the TSF">
        
        <ext-comp-def fam-id="FPT_AEX_EXT" title="Anti-Exploitation Capabilities">
          <fam-behavior>This family defines requirements for protecting against common types of software exploitation techniques. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fpt_aex_ext.1" name="Application Address Space Layout Randomization">
          
          <comp-lev> requires the TSF to support address space layout randomization (ASLR).</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG.1 Random Bit Generation</dependencies>
          
          
          <f-element id="fel-aslr">
            <title>The TSF shall provide address space layout randomization ASLR to applications.
            </title>
          </f-element>
          <f-element id="fel-aslr-size">
            <title>The base address of any user-space memory mapping will consist of at least 8
              unpredictable bits. </title>
            <note role="application">The 8 unpredictable bits may be provided by the TSF DRBG (as
              defined in FCS_RBG.1) but is not required.</note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS section of the ST describes how the 8
                bits are generated and provides a justification as to why those bits are
                unpredictable. <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>              
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test require the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. <h:br/>
                <testlist>
                  <test>
                    <h:p>
                    The evaluator shall select 3 apps included with the TSF. These must include
                    any web browser or mail client included with the TSF. For each of these apps,
                    the evaluator shall launch the same app on two separate Mobile Devices of the
                    same type and compare all memory mapping locations. The evaluator shall ensure
                    that no memory mappings are placed in the same location on both devices. This test can also be completed on the same Mobile Device if the evaluator reboots the Mobile Device between application launches.
                    </h:p>
                    <h:p>
                    If the rare (at most 1/256) chance occurs that two mappings
                    are the same for a single app and not the same for the other two apps, the
                    evaluator shall repeat the test with that app to verify that in the second test
                    the mappings are different. 
                    </h:p>
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fpt_aex_ext.2" name="Memory Page Permissions">
          
          <comp-lev> requires the TSF to enforce access permissions on physical memory.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-page-perms">
            <title>The TSF shall be able to enforce read, write, and execute permissions on every
              page of physical memory. </title>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS describes of the memory management unit
                (MMU), and ensures that this description documents the ability of the MMU to enforce
                read, write, and execute permissions on all pages of virtual memory.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>	  
	  <audit-event/>
        </f-component>
        <f-component cc-id="fpt_aex_ext.3" name="Stack Overflow Protection">
          
          <comp-lev> requires the TSF to implement stack overflow protection.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-stack-protect">
            <title>TSF processes that execute in a non-privileged execution domain on the
              application processor shall implement stack-based buffer overflow protection. </title>
            <note role="application">A "non-privileged execution domain" refers to the user mode (as
              opposed to kernel mode, for instance) of the processor. While not all TSF processes
              must implement such protection, it is expected that most of the processes (to include
              libraries used by TSF processes) do implement buffer overflow protections.</note>
            <aactivity>
              <TSS>The evaluator shall determine that the TSS contains a description of stack-based
                buffer overflow protections implemented in the TSF software which runs in the
                non-privileged execution mode of the application processor. The exact implementation
                of stack-based buffer overflow protection will vary by platform. Example
                implementations may be activated through compiler options such as
                "-fstack-protector-all", "-fstack-protector", and "/GS" flags. The evaluator shall
                ensure that the TSS contains an inventory of TSF binaries and libraries, indicating
                those that implement stack-based buffer overflow protections as well as those that
                do not. The TSS must provide a rationale for those binaries and libraries that are
                not protected in this manner.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fpt_aex_ext.4" name="Domain Isolation">
          
          <comp-lev> requires the TSF to protect itself from untrusted subjects and enforce address space isolation.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-self-protect">
            <title>The TSF shall protect itself from modification by untrusted subjects. </title>
          </f-element>
          <f-element id="fel-iso-appmem">
            <title>The TSF shall enforce isolation of address space between applications. </title>
            <note role="application">In addition to the TSF software (e.g., kernel image, device
              drivers, trusted applications) that resides in storage, the execution context (e.g.,
              address space, processor registers, per-process environment variables) of the software
              operating in a privileged mode of the processor (e.g., kernel), as well as the context
              of the trusted applications is to be protected. In addition to the software, any
              configuration information that controls or influences the behavior of the TSF is also
              to be protected from modification by untrusted subjects. <h:br/><h:br/>
              Configuration information includes, but is not limited to, user and administrative
              management function settings, WLAN profiles, and Bluetooth data such as the
              service-level security requirements database. <h:br/><h:br/> Untrusted subjects
              include untrusted applications; unauthorized users who have access to the device while
              powered off, in a screen-locked state, or when booted into auxiliary boot modes; and,
              unauthorized users or untrusted software or hardware which may have access to the
              device over a wired interface, either when the device is in a screen-locked state or
              booted into auxiliary boot modes. </note>
            <aactivity>
              <TSS> The evaluator shall ensure that the TSS describes the mechanisms that are in
                place that prevents non-TSF software from modifying the TSF software or TSF data
                that governs the behavior of the TSF. These mechanisms could range from
                hardware-based means (e.g. "execution rings" and memory management functionality);
                to software-based means (e.g. boundary checking of inputs to APIs). The evaluator
                determines that the described mechanisms appear reasonable to protect the TSF from
                modification. <h:br/><h:br/> The evaluator shall ensure the TSS describes how
                the TSF ensures that the address spaces of applications are kept separate from one
                another. <h:br/><h:br/> The evaluator shall ensure the TSS details the USSD and
                MMI codes available from the dialer at the locked state or during auxiliary boot
                modes that may alter the behavior of the TSF. The evaluator shall ensure that this
                description includes the code, the action performed by the TSF, and a justification
                that the actions performed do not modify user or TSF data. If no USSD or MMI codes
                are available, the evaluator shall ensure that the TSS provides a description of the
                method by which actions prescribed by these codes are prevented. <h:br/><h:br/>
                The evaluator shall ensure the TSS documents any TSF data (including software,
                execution context, configuration information, and audit logs) which may be accessed
                and modified over a wired interface in auxiliary boot modes. The evaluator shall
                ensure that the description includes data, which is modified in support of update or
                restore of the device. The evaluator shall ensure that this documentation includes
                the auxiliary boot modes in which the data may be modified, the methods for entering
                the auxiliary boot modes, the location of the data, the manner in which data may be
                modified, the data format and packaging necessary to support modification, and
                software or hardware tools, if any, which are necessary for modifying the data.
                <h:br/><h:br/> The evaluator shall ensure that the TSS provides a description of
                the means by which unauthorized and undetected modification (that is, excluding
                cryptographically verified updates per FPT_TUD_EXT.2) of the TSF data over the wired
                interface in auxiliary boots modes is prevented. The lack of publicly available
                tools is not sufficient justification. Examples of sufficient justification include
                auditing of changes, cryptographic verification in the form of a digital signature
                or hash, disabling the auxiliary boot modes, and access control mechanisms that
                prevent writing to files or flashing partitions. <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following tests require the vendor to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. In addition, the vendor
                provides a list of files (e.g., system files, libraries, configuration files, audit
                logs) that make up the TSF data. This list could be organized by folders/directories
                (e.g., /usr/sbin, /etc), as well as individual files that may exist outside of the
                identified directories. <h:br/>
                <testlist>
                  <test>The evaluator shall create and load an app onto the Mobile Device. This app
                    shall attempt to traverse over all file systems and report any locations to
                    which data can be written or overwritten. The evaluator shall ensure that none of
                    these locations are part of the OS software, device drivers, system and security
                    configuration files, key material, or another untrusted application’s
                    image/data. For example, it is acceptable for a trusted photo editor app to have
                    access to the data created by the camera app, but a calculator application shall
                    not have access to the pictures.</test><h:br/>
                  <test>For each available auxiliary boot mode, the evaluator shall attempt to
                    modify a TSF file of their choosing using the software or hardware tools
                    described in the TSS. The evaluator shall verify that the modification
                    fails.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fpt_aex_ext.5" name="Kernel Address Space Layout Randomization" status="objective">
          
          <comp-lev> requires the TSF to provide ASLR to the kernel.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FCS_RBG.1 Random Bit Generation (RBG)</dependencies>
          
          
          <f-element id="fel-kaslr">
            <title>The TSF shall provide address space layout randomization (ASLR) to the kernel.
            </title>
          </f-element>
          <f-element id="fel-kaslr-min">
            <title>
			  The base address of any kernel-space memory mapping will consist of 
			  <assignable>number greater than or equal to 4</assignable>
              unpredictable bits.
			</title>
            <note role="application">The unpredictable bits may be provided by the TSF DRBG (as
              defined in FCS_RBG.1). </note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS section of the ST describes how the
                bits are generated and provides a justification as to why those bits are
                unpredictable. <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test require the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. <testlist>
                  <test>The evaluator shall reboot the TOE six times. For each of these
                    reboots, the evaluator shall examine memory mapping locations of the kernel. The
                    evaluator shall ensure that for at least five reboots the memory mappings are not placed in the same location on
                    both devices.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <f-component cc-id="fpt_aex_ext.6" name="Write or Execute Memory Page Permissions" status="objective">
          
          <comp-lev> requires the TSF to prevent physical memory from being both writable and executable.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-nx">
            <title>The TSF shall prevent write and execute permissions from being simultaneously
              granted to any page of physical memory <selectables>
                <selectable>with no exceptions</selectable>
                <selectable>
                  <assignable>specific exceptions</assignable></selectable>
              </selectables>.</title>
            <note role="application">Memory used for just-in-time (JIT) compilation is anticipated
              as an exception in this requirement; if so, the ST author must address how this
              exception is permitted. It is expected that the memory management unit will transition
              the system to a non-operational state if any violation is detected in kernel memory
              space.</note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS describes how the operating system of the
                application processor prevents all processes executing in a non-privileged execution
                domain from achieving write and execute permissions on any page of memory (with only
                specified exceptions). The evaluator shall ensure that the TSS describes how such
                processes are unable to request pages of memory with such permissions, and how they
                are unable to change permissions to both write and execute on any pages already
                allocated to them.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>

        <!-- Removed for github issue #43 and #113, can be added back if heap protections become common

        <f-component cc-id="fpt_aex_ext.7" name="Heap Overflow Protection" status="objective">
          
          <comp-lev> requires the TSF to support heap-based buffer overflow protection. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-heap-protect">
            <title>The TSF shall include heap-based buffer overflow protections in the runtime
              environment it provides to processes that execute on the application
              processor.</title>
            <note role="application">These heap-based buffer overflow protections are expected to
              ensure the integrity of heap metadata such as memory addresses or offsets recorded by
              the heap implementation to manage memory blocks. This includes chunk headers,
              look-aside lists, and other data structures used to track the state and location of
              memory blocks managed by the heap.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS enumerates the heap implementations
                provided to userspace processes. The evaluator shall ensure that the TSS lists all
                types of heap metadata and identifies how the integrity of each type of metadata is
                ensured. The evaluator shall ensure that the TSS identifies all fields within each
                type of metadata and identifies how the integrity of these fields is ensured. The
                evaluator shall verify that the TSS identifies the manner in which an error
                condition is entered when a heap overflow is detected and the resulting actions
                taken by the TSF.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> For each heap implementation, the evaluator shall write, or the developer
                shall provide access to, an application, which allocates memory from the heap and
                then writes arbitrary data significantly beyond the end of the allocated buffer. The
                evaluator shall attempt to execute this application and verify that the write is not
                allowed. </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>

        -->
        
        <ext-comp-def fam-id="FPT_BBD_EXT" title="Baseband Processing">
          <fam-behavior>This family defines requirements for separation of baseband and application processor execution. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component id="fc-ap_med" cc-id="fpt_bbd_ext.1" name="Application Processor Mediation" status="objective">
          
          <comp-lev> requires the TSF to enforce separation between baseband and application processor execution except through application processor mechanisms. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fel-cpu-med">
            <title>The TSF shall prevent code executing on any baseband processor (BP) from
              accessing application processor (AP) resources except when mediated by the AP.</title>
            <note role="application"> These resources include:<h:br/>
              <h:ul>
                <h:li>Volatile and non-volatile memory</h:li>
                <h:li>Control of and data from integrated and non-integrated peripherals (e.g. USB
                  controllers, touch screen controllers, LCD controller, codecs)</h:li>
                <h:li>Control of and data from integrated and non-integrated I/O sensors (e.g.
                  camera, light, microphone, GPS, accelerometers, geomagnetic field
                  sensors)</h:li>
              </h:ul>
              <h:br/> Mobile devices are becoming increasingly complex having an application
              processor that runs an operating system and user applications and separate
              baseband processors that handle cellular and other wireless network connectivity. <h:br/><h:br/>
              <h:ul>
                <h:li>The application processor within most modern Mobile Devices is a system on a
                  chip (SoC) that integrates, for example, CPU/GPU cores and memory interface
                  electronics into a single, power-efficient package.</h:li>
                <h:li>Baseband processors are becoming increasingly complex themselves delivering
                  voice encoding alongside multiple independent radios (LTE, Wi-Fi, Bluetooth, FM,
                  GPS) in a single package containing multiple CPUs and DSPs.</h:li>
              </h:ul>
              <h:br/> Thus, the baseband processors in these requirements include such
              integrated SoCs and include any radio processors (integrated or not) on the Mobile
              Device. <h:br/><h:br/> All other requirements mostly, except where noted, apply to
              firmware/software on the application processor, but future requirements (notably, all
              Integrity, Access Control, and Anti-Exploitation requirements) will apply to
              application processors and baseband processors. </note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS section of the ST describes at a high
                level how the processors on the Mobile Device interact, including which bus
                protocols they use to communicate, any other devices operating on that bus
                (peripherals and sensors), and identification of any shared resources. The evaluator
                shall verify that the design described in the TSS does not permit any BPs from
                accessing any of the peripherals and sensors or from accessing main memory (volatile
                and non-volatile) used by the AP. In particular, the evaluator shall ensure that the
                design prevents modification of executable memory of the AP by the BP.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FPT_BLT_EXT" title="Limitation of Bluetooth Profile Support">
          <fam-behavior>This family defines requirements for limiting Bluetooth capabilities without user action. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fpt_blt_ext.1" name="Limitation of Bluetooth Profile Support" status="objective">
          
          <comp-lev> requires the TSF to maintain a disabled by default posture for Bluetooth profiles.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-bluetooth-stop">
            <title>The TSF shall disable support for <assignable>list of Bluetooth
                profiles</assignable> Bluetooth profiles when they are not currently being used by
              an application on the Mobile Device, and shall require explicit user action to enable
              them.</title>
            <note role="application"> Some Bluetooth services incur more serious consequences if
              unauthorized remote devices gain access to them. Such services should be protected by
              measures like disabling support for the associated Bluetooth profile unless it is
              actively being used by an application on the Mobile Device (in order to prevent
              discovery by a Service Discovery Protocol search), and then requiring explicit user
              action to enable those profiles in order to use the services. It may be further
              appropriate to require additional user action before granting a remote device access
              to that service. <h:br/><h:br/> For example, it may be appropriate to disable the
              OBEX Push Profile until a user on the Mobile Device pushes a button in an application
              indicating readiness to transfer an object. After completion of the object transfer,
              support for the OBEX profile should be suspended until the next time the user requests
              its use.</note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS lists all Bluetooth profiles that are
                disabled while not in use by an application and which need explicit user action in
                order to become enabled.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance><Tests>The evaluator shall perform the following tests: <testlist>
                  <test>While the service is not in active use by an application on the TOE, the
                    evaluator shall attempt to discover a service associated with a "protected"
                    Bluetooth profile (as specified by the requirement) on the TOE via a Service
                    Discovery Protocol search. The evaluator shall verify that the service does not
                    appear in the Service Discovery Protocol search results. Next, the evaluator
                    shall attempt to gain remote access to the service from a device that does not
                    currently have a trusted device relationship with the TOE. The evaluator shall
                    verify that this attempt fails due to the unavailability of the service and
                    profile. </test><h:br/>
                  <test>The evaluator shall repeat Test 1 with a device that currently has a trusted
                    device relationship with the TOE and verify that the same behavior is exhibited.
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
        <f-component cc-id="fpt_fls.1" name="Failure with Preservation of Secure State">
          <f-element id="fel-pres-sec-state">
            <title>
              The TSF shall preserve a secure state when the following types of failures occur: [<h:i>DRBG self-test failure</h:i>].              
            </title>
            <note role="application">The intent of this requirement is to ensure that cryptographic services requiring random bit generation cannot be performed if a failure of a self-test defined in FPT_TST.1 occurs.</note>
            <aactivity>              
              <TSS>
                The evaluator shall verify that the TSF describes how the TOE enters an error state in the event of a DRBG self-test failure.
              </TSS>
              <Guidance>
                The evaluator shall verify that the guidance documentation describes the error state that results from a DRBG self-test failure and the actions that a user or administrator should take in response to attempt to resolve the error state.
              </Guidance>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>	     
        
        <ext-comp-def fam-id="FPT_JTA_EXT" title="JTAG Disablement">
          <fam-behavior>This family defines requirements for JTAG interface access limitations. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fpt_jta_ext.1" name="JTAG Disablement">
          
          <comp-lev> requires the TSF to specify the mechanism used to restrict access to its JTAG interface. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fel-jtag">
            <title>The TSF shall <selectables>
                <selectable id="s-jtag-kill-hw">disable access through hardware</selectable>
                <selectable id="s-jtag-control-key">control access by a signing key</selectable>
            </selectables> to JTAG. </title>
	    <ext-comp-def-title><title>
	      The TSF shall <assignable>list access control mechanisms</assignable> to JTAG.
	    </title></ext-comp-def-title>
            <note role="application">This requirement means that access to JTAG must be disabled
              either through hardware or restricted through the use of a signing key.</note>
            <aactivity>
              <TSS> If <xref to="s-jtag-kill-hw"/> is selected:<h:br/> The evaluator shall
                examine the TSS to determine the location of the JTAG ports on the TSF, to include
                the order of the ports (i.e., Data In, Data Out, Clock, etc.).<h:br/><h:br/>
		If <xref to="s-jtag-control-key"/> is selected:<h:br/> The evaluator shall examine
                the TSS to determine how access to the JTAG is controlled by a signing key. The
                evaluator shall examine the TSS to determine when the JTAG can be accessed, i.e.
                what has the access to the signing key.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <h:p><h:b>Evaluation Activity Note:</h:b> The following test requires the developer to
                provide access to a test platform that provides the evaluator with chip level
                access.
                </h:p>
                <h:p>
                If <xref to="s-jtag-kill-hw"/> is selected:<h:br/> The evaluator shall connect to the available JTAG port(s) on the device. The evaluator shall query the JTAG port(s) to determine if the functionality of the JTAG access is available. This could be through the retrieval of information that may only be accessible through the JTAG interface(s) or by other means that can show the status of the interface to accept commands.
                </h:p>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
	</f-component>
        
        <ext-comp-def fam-id="FPT_KST_EXT" title="Key Storage">
          <fam-behavior>This family defines requirements for protecting plaintext keys. 
          </fam-behavior>
        </ext-comp-def>
        
        <f-component cc-id="fpt_kst_ext.1" name="Key Storage">
          
          <comp-lev> requires the TSF to avoid storage of plaintext keys in readable memory. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fel-keystore-no-text">
            <title>The TSF shall not store any plaintext key material in readable non-volatile
              memory. </title>
            <note role="application">The intention of this requirement is that the TOE will not
              write plaintext keying material to persistent storage. For the purposes of this
              requirement, keying material refers to authentication data, passwords, secret/private
              symmetric keys, private asymmetric keys, data used to derive keys, etc. These values
              must be stored encrypted. <h:br/><h:br/> This requirement also applies to any
              value derived from passwords. Thus, the TOE cannot store plaintext password hashes for
              comparison purposes before protected data is decrypted, and the TOE should use key
              derivation and decryption to verify the Password Authentication Factor.
              <h:br/><h:br/> <!-- ToDo: Remove per bio cPP module: If a BAF is selected in FIA_UAU.5.1, keying material also refers to
              source biometric data (i.e., fingerprint), enrollment and authentication templates, the
              features an algorithm uses to perform biometric authentication for enrollment or
              verification (i.e., location of minutia), threshold values used in making the match
              adjudication, intermediate calculations generated while building an enrollment or
              authentication template (i.e., direction maps, minutia counts, binarized and
              skeletonized representations of friction ridge patterns, etc.), and final match
              scores. Any images or metadata identifying the user for authentication shall be stored
              encrypted. <h:br/><h:br/>--> If <xref to="uau_hybr"/> is selected in FIA_UAU.5.1<!-- ToDo: Remove per bio cPP module:, in addition to
              the keying material included for the BAF, mentioned in the previous paragraph,--> keying
              material also refers to the PIN/password used as part of the hybrid authentication. </note>
            <aactivity>
              <TSS>The evaluator shall consult the TSS section of the ST in performing the Evaluation
                Activities for this requirement. <h:br/><h:br/> In performing their review, the
                evaluator shall determine that the TSS contains a description of the activities that
                happen on power-up and password authentication relating to the decryption of DEKs,
                stored keys, and data. <h:br/><h:br/> The evaluator shall ensure that the
                description also covers how the cryptographic functions in the FCS requirements are
                being used to perform the encryption functions, including how the KEKs, DEKs, and
                stored keys are unwrapped, saved, and used by the TOE so as to prevent plaintext
                from being written to non-volatile storage. The evaluator shall ensure that the TSS
                describes, for each power-down scenario how the TOE ensures that all keys in
                non-volatile storage are not stored in plaintext. <h:br/><h:br/> The evaluator
                shall ensure that the TSS describes how other functions available in the system
                (e.g., regeneration of the keys) ensure that no unencrypted key material is present
                in persistent storage. <h:br/><h:br/> The evaluator shall review the TSS to
                determine that it makes a case that key material is not written unencrypted to the
                persistent storage. <h:br/><h:br/><!-- ToDo: Remove per bio cPP module: For each BAF selected in FIA_UAU.5.1:
                <h:br/><h:br/> The evaluator shall determine that the TSS also contains a
                description of the activities that happen on biometric authentication, relating to
                the decryption of DEKs, stored keys, and data. In addition how the system ensures
                that the biometric keying material is not stored unencrypted in persistent
                storage.<h:br/><h:br/>--></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fpt_kst_ext.2" name="No Key Transmission">
          
          <comp-lev> requires the TSF to prevent transmitting plaintext key material to the operational environment.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fel-keystore-no-tran">
            <title>The TSF shall not transmit any plaintext key material outside the security
              boundary of the TOE. </title>
            <note role="application">The intention of this requirement is to prevent the logging of
              plaintext key information to a service that transmits the information off-device. For
              the purposes of this requirement, key material refers to keys, passwords, and other
              material that is used to derive keys. <h:br/><h:br/><!-- ToDo: Remove per bio cPP module: If a BAF is selected in
              FIA_UAU.5.1, keying material also refers to source biometric data (i.e., fingerprint),
              enrollment and authentication templates, the features an algorithm uses to perform
              biometric authentication for enrollment or verification (i.e., location of minutia),
              threshold values used in making the match adjudication, intermediate calculations
              generated while building an enrollment or authentication template (i.e., direction
              maps, minutia counts, binarized and skeletonized representations of friction ridge
              patterns), and final match scores. <h:br/><h:br/>-->
	      If <xref to="uau_hybr"/> is selected in  FIA_UAU.5.1
	      <!-- ToDo: Remove per bio cPP module:, in addition to the keying material included for the BAF, mentioned in the
              previous paragraph,--> keying material also refers to the PIN/password used as part of
              the hybrid authentication. <h:br/><h:br/> In the future, this requirement will
              apply to symmetric and asymmetric private keys stored in the TOE secure key storage
              where applications are outside the boundary of the TOE. Thus, the TSF will be required
              to provide cryptographic key operations (signature, encryption, and decryption) on
              behalf of applications (FCS_SRV_EXT.2.1) that have access to those keys. </note>
            <aactivity>
              <TSS>The evaluator shall consult the TSS section of the ST in performing the Evaluation
                Activities for this requirement. The evaluator shall ensure that the TSS describes
                the TOE security boundary. The cryptographic module may very well be a particular
                kernel module, the Operating System, the Application Processor, or up to the entire
                Mobile Device. <h:br/><h:br/> In performing their review, the evaluator shall
                determine that the TSS contains a description of the activities that happen on
                power-up and password authentication relating to the decryption of DEKs, stored
                keys, and data. <h:br/><h:br/> The evaluator shall ensure that the TSS describes
                how other functions available in the system (e.g., regeneration of the keys) ensure
                that no unencrypted key material is transmitted outside the security boundary of the
                TOE. <h:br/><h:br/> The evaluator shall review the TSS to determine that it
                makes a case that key material is not transmitted outside the security boundary of
                the TOE. <h:br/><h:br/><!-- ToDo: Remove per bio cPP module: For each BAF selected in FIA_UAU.5.1: <h:br/><h:br/>
                In performing their review, the evaluator shall determine that the TSS contains a
                description of the activities that happen on biometric authentication, including how
                any plaintext material, including critical security parameters and results of
                biometric algorithms, are protected and accessed. <h:br/><h:br/> The evaluator
                shall ensure that the TSS describes how functions available in the biometric
                algorithms ensure that no unencrypted plaintext material, including critical
                security parameters and intermediate results, is transmitted outside the security
                boundary of the TOE or to other functions or systems that transmit information
                outside the security boundary of the TOE.<h:br/><h:br/>--></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fpt_kst_ext.3" name="No Plaintext Key Export">
          
          <comp-lev> requires the TSF to prevent the export of plaintext keys.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fel-key-no-export">
            <title>The TSF shall ensure it is not possible for the TOE users to export plaintext
              keys. </title>
            <note role="application">Plaintext keys include DEKs, KEKs, and all keys stored in the
              secure key storage (FCS_STG_EXT.1). The intent of this requirement is to prevent the
              plaintext keys from being exported during a backup authorized by the TOE user or
              administrator.</note>
            <aactivity>
              <TSS>The ST author will provide a statement of their policy for handling and
                protecting keys. The evaluator shall check to ensure the TSS describes a policy in
                line with not exporting either plaintext DEKs, KEKs, or keys stored in the secure
                key storage.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        <ext-comp-def fam-id="FPT_NOT_EXT" title="Self-Test Notification">
          <fam-behavior>This family defines requirements for generation of notifications in response to completed self-tests. 
          </fam-behavior>
        </ext-comp-def>
        
        <f-component cc-id="fpt_not_ext.1" name="Self-Test Notification">
          
          <comp-lev> requires the TSF to become non-operational when certain failures occur.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Measurement of TSF software.</h:li>
            </h:ul>
          </audit>
          <dependencies>FPT_TST_EXT.1 TSF Cryptographic Functionality Testing<h:br/>
          FPT_TST_EXT.2 TSF Integrity Checking</dependencies>
          
          <f-element id="fel-selftest-trans">
            <title>The TSF shall transition to non-operational mode and <selectables>
                <selectable>log failures in the audit record</selectable>
                <selectable>notify the administrator</selectable>
                <selectable>
                  <assignable>other actions</assignable></selectable>
                <selectable exclusive="yes">no other actions</selectable>
              </selectables> when the following types of failures occur: <h:ul>
                <h:li>failures of the self-tests</h:li>
                <h:li>TSF software integrity verification failures</h:li>
                <h:li><selectables>
                    <selectable exclusive="yes">no other failures</selectable>
                    <selectable>
                      <assignable>other failures</assignable></selectable>
                  </selectables></h:li>
              </h:ul>
            </title>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes critical failures that may
                occur and the actions to be taken upon these critical failures.
                <h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test require the developer to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. <testlist>
                  <test>The evaluator shall use a tool provided by the developer to modify files and
                    processes in the system that correspond to critical failures specified in the
                    second list. The evaluator shall verify that creating these critical failures
                    causes the device to take the remediation actions specified in the first
                    list.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr><selectables onlyone="yes"><selectable>Measurement of TSF software</selectable><selectable>None</selectable></selectables></audit-event-descr>
	    <audit-event-info><selectables onlyone="yes"><selectable>Integrity verification value</selectable><selectable>No additional information</selectable></selectables></audit-event-info>
	  </audit-event>
	</f-component>
        <f-component cc-id="fpt_not_ext.2" name="Software Integrity Verification" status="objective">
          
          <comp-lev> requires the TSF to generate and sign software integrity verification values.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Retrieval of TSF software integrity verification values.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.
          </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          
          <f-element id="fel-selftest-notify">
            <title>The TSF shall <selectables>
                <selectable>audit</selectable>
                <selectable>provide the administrator with</selectable>
              </selectables> TSF-software integrity verification values.</title>
            <note role="application">These notifications are typically called remote attestation and
              these integrity values are typically called measurements. The integrity values are
              calculated from hashes of critical memory and values, including executable code. The
              ST author must select whether these values are logged as a part of FAU_GEN.1.1 or are
              provided to the administrator. </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes which critical memory is
                measured for these integrity values and how the measurement is performed (including
                which TOE software generates these values, how that software accesses
                the critical memory, and which algorithms are used). <h:br/><h:br/>
              </TSS>
              <Guidance> If the integrity values are provided to the administrator, the evaluator
                shall verify that the AGD guidance contains instructions for retrieving these values
                and information for interpreting them. For example, if multiple measurements are
                taken, what those measurements are and how changes to those values relate to changes
                in the device state. <h:br/><h:br/>
              </Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test may require the developer
                to provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products. <h:br/><h:br/> The
                evaluator shall repeat the following test for each measurement: <testlist>
                  <test>The evaluator shall boot the device in an approved state and record the
                    measurement taken (either from the log or by using the administrative guidance
                    to retrieve the value via an MDM agent). The evaluator shall modify the critical
                    memory or value that is measured. The evaluator shall boot the device and verify
                    that the measurement changed. </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-sign-integrity">
            <title>The TSF shall cryptographically sign all integrity verification values.</title>
            <note role="application">The intent of this requirement is to provide assurance to the
              administrator that the responses provided are from the TOE and have not been modified
              or spoofed by a man-in-the-middle such as a network-based adversary or a malicious MDM
              Agent. </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS describes which key the TSF uses to sign
                the responses to queries and the certificate used to prove ownership of the key, and
                the method of associating the certificate with a particular device manufacturer and
                model.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>The evaluator shall perform the following test: <testlist>
                  <test>The evaluator shall write, or the developer shall provide, a management
                    application that queries either the audit logs or the measurements. The
                    evaluator shall verify that the responses to these queries are signed and verify
                    the signatures against the TOE’s certificate.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <f-component cc-id="fpt_stm.1" name="Reliable Time Stamps">
          <f-element id="fel-timestamp">
            <title>The TSF shall be able to provide reliable time stamps <refinement>for its own use</refinement>. </title>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to ensure that it lists each security
                function that makes use of time. The TSS provides a description of how the time is
                maintained and considered reliable in the context of each of the time related
                functions. This documentation must identify whether the TSF uses a NTP server or the
                carrier’s network time as the primary time sources. <h:br/><h:br/></TSS>
              <Guidance>The evaluator examines the operational guidance to ensure it describes how
                to set the time.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator uses the operational guide to set the time. The evaluator
                    shall then use an available interface to observe that the time was set
                    correctly.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        
        
        
        <f-component cc-id="fpt_tst.1" name="TSF Self-Testing">
          <f-element id="fel-tsf-self-test">
            <title>
              The TSF shall run a suite of the following self-tests [<h:i>during initial start-up, 
                <selectables>
                  <selectable>periodically during normal operation</selectable>
                  <selectable>at the request of the authorized user</selectable>
                  <selectable>at the conditions <assignable>conditions under which self-test should occur</assignable></selectable>
                  <selectable>at no other time</selectable>
                </selectables></h:i>]
              to demonstrate the correct operation of [<h:i>TSF DRBG defined in FCS_RBG.1</h:i>]: <assignable>DRBG health tests</assignable>.               
            </title>
          </f-element>
          
          <f-element id="fel-tsf-ver-int-data">
            <title>
              The TSF shall provide authorized users with the capability to verify the integrity of [<h:i>[DRBG seed/output data]</h:i>].
            </title>
          </f-element>
          
          <f-element id="fel-tsf-ver-int">
            <title>
              The TSF shall provide authorized users with the capability to verify the integrity of [<h:i>[TSF DRBG defined in FCS_RBG.1]</h:i>].
            </title>
            <note role="application">This SFR is a required dependency of FCS_RBG.1. It is intended to require that any DRBG implemented by the TOE undergo health testing at startup (and optionally in other circumstances) to ensure that the random bit generation functionality has not been degraded. If the TSF supports multiple DRBGs, this SFR should be iterated to describe the self-test behavior for each. The TSF's response to a DRBG health test failure is addressed by FPT_FLS.1.</note>
            <aactivity>
              <TSS>
                <h:p>
                  The	evaluator shall examine the TSS to ensure that it details the self-tests that are run by the TSF along with how they are run. This description should include an outline of what the tests are actually doing. The evaluator shall ensure that the TSS makes an argument that the tests are sufficient to demonstrate that the DRBG is operating correctly.
                </h:p><h:p>
                  Note that this information may also be placed in the entropy documentation specified by <xref to="entropyappendix"/>. 
                </h:p>
              </TSS>
              <Guidance>
                <h:p>
                  If a self-test can be executed at the request of an authorized user, the evaluator shall verify that the operational guidance provides instructions on how to execute that self-test.
                </h:p>
              </Guidance>
              <Tests>
                <h:p>
                  For each self-test, the evaluator shall verify that evidence is produced that the self-test is executed when specified by FPT_TST.1.1.
                </h:p><h:p>
                  If a self-test can be executed at the request of an authorized user, the evaluator shall verify that following the steps documented in the operational guidance to perform the self-test will result in execution of the self-test.
                </h:p>
              </Tests>
            </aactivity>
          </f-element>    	
          <audit-event>
            <audit-event-descr>
              Execution of self-tests
            </audit-event-descr>
            <audit-event-info>None.</audit-event-info>
          </audit-event>
        </f-component>
        
        <ext-comp-def fam-id="FPT_TST_EXT" title="TSF Self Test">
          <fam-behavior>This family defines requirements for execution of self-tests that are not addressed by FPT_TST in CC Part 2. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fpt_tst_ext.1" name="TSF Cryptographic Functionality Testing">
          
          <comp-lev> requires the TSF to run self-test at start-up to verify correct operation. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>
            The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<h:ul>
              <h:li>Initiation of self-test.</h:li>
              <h:li>Failure of self-test.</h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          
          
          <f-element id="fel-selftest-startup">
            <title>The TSF shall run a suite of self-tests during initial start-up (on power on) to
              demonstrate the correct operation of all cryptographic functionality. </title>
            <note role="application">
              <h:p>
              This requirement may be met by performing known answer tests or pair-wise consistency tests. The self-tests must be performed before the cryptographic functionality is exercised (for example, during the initialization of a process that utilizes the functionality).
              </h:p>
              <h:p>
              The cryptographic functionality includes the cryptographic operations in FCS_COP and the key generation functions in FCS_CKM. DRBG self-test functionality is specifically addressed by FPT_TST.1.
              </h:p>
              <h:p>
              The TSF's response to a self-test failure is addressed by FPT_NOT_EXT.1.
              </h:p></note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to ensure that it specifies the self-tests
                that are performed at start-up. This description must include an outline of the test
                procedures conducted by the TSF (e.g., rather than saying "memory is tested", a
                description similar to "memory is tested by writing a value to each memory location
                and reading it back to ensure it is identical to what was written" shall be used).
                The TSS must include any error states that the TSF may enter when self-tests fail,
                and the conditions and actions necessary to exit the error states and resume normal
                operation. The evaluator shall verify that the TSS indicates these self-tests are
                run at start-up automatically, and do not involve any inputs from or actions by the
                user or operator. <h:br/><h:br/> The evaluator shall inspect the list of
                self-tests in the TSS and verify that it includes algorithm self-tests. The
                algorithm self-tests will typically be conducted using known answer tests.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>There are no test evaluation activities for this component.</Tests>
            </aactivity>
          </f-element>
	  <audit-event><audit-event-descr>Initiation of self-test</audit-event-descr></audit-event>
	  <audit-event>
	    <audit-event-descr>Failure of self-test</audit-event-descr>
	    <audit-event-info><selectables onlyone="yes"><selectable>Algorithm that caused the failure</selectable><selectable>No additional information</selectable></selectables></audit-event-info>
	  </audit-event>
	</f-component>
        
        
        <f-component cc-id="fpt_tst_ext.2" name="TSF Integrity Checking" status="invisible">
          <consistency-rationale/>
          <comp-lev> requires the TSF to verify code and bootchain integrity is stored prior to execution by a
            designated key or hash.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>
            The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:<h:ul>
              <h:li>Start-up of TOE.</h:li>
              <h:li><selectables>
                <selectable>Detected integrity violation</selectable>
                <selectable>None</selectable>
              </selectables></h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          
          <f-element id="fel-bootchain-stub">
            <title>The TSF shall verify the integrity of <assignable>TSF data</assignable> stored in mutable media 
              prior to its execution through the use of <assignable>cryptographic or immutable hardware mechanism</assignable>. </title>
            <aactivity>
              <no-tests/>
            </aactivity>
          </f-element>
        </f-component>      
               
        <f-component cc-id="fpt_tst_ext.2" name="TSF Integrity Checking (Pre-Kernel)" iteration="PREKERNEL">
          
          
          
          
          <f-element id="fel-bootchain">
            <title>The TSF shall verify the integrity of [<h:i>the bootchain up through the Application
              Processor OS kernel</h:i>] stored in mutable media prior to its execution through the use of <selectables>
                <selectable>a digital signature using an immutable hardware asymmetric
                  key</selectable>
                <selectable>an immutable hardware hash of an asymmetric key</selectable>
                <selectable>an immutable hardware hash</selectable>
                <selectable>a digital signature using a hardware-protected asymmetric
                  key</selectable>
              </selectables>. </title>
            <note role="application">The bootchain of the TSF is the sequence of firmware and
              software, including ROM, bootloaders, and kernel, which ultimately result in loading
              the kernel on the Application Processor, regardless of which processor executes that
              code. Executable code that would be loaded after the kernel is covered in
              FPT_TST_EXT.2/POSTKERNEL. <h:br/><h:br/> In order to meet this requirement, the hardware
              protection may be transitive in nature: a hardware-protected public key, hash of an
              asymmetric key, or hash may be used to verify the mutable bootloader code which
              contains a key or hash used by the bootloader to verify the mutable OS kernel code,
              which contains a key or hash to verify the next layer of executable code, and so on.
              <h:br/><h:br/> The cryptographic mechanism used to verify the (initial) mutable
              executable code must be protected, such as being implemented in hardware or in
              read-only memory (ROM). </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS section of the ST includes a description
                of the boot procedures, including a description of the entire bootchain, of the
                software for the TSF’s Application Processor. The evaluator shall ensure that before
                loading the bootloaders for the operating system and the kernel, all bootloaders
                and the kernel software itself is cryptographically verified. For each additional
                category of executable code verified before execution, the evaluator shall verify
                that the description in the TSS describes how that software is cryptographically
                verified. <h:br/><h:br/> The evaluator shall verify that the TSS contains a
                justification for the protection of the cryptographic key or hash, preventing it
                from being modified by unverified or unauthenticated software. The evaluator shall
                verify that the TSS contains a description of the protection afforded to the
                mechanism performing the cryptographic verification. <h:br/><h:br/> The
                evaluator shall verify that the TSS describes each auxiliary boot mode available on
                the TOE during the boot procedures. The evaluator shall verify that, for each
                auxiliary boot mode, a description of the cryptographic integrity of the executed
                code through the kernel is verified before each execution.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following tests require the vendor to
                provide access to a test platform that provides the evaluator with tools that are
                typically not found on consumer Mobile Device products.<h:br/><h:br/> The
                evaluator shall perform the following tests: <testlist>
                  <test>The evaluator shall perform actions to cause TSF software to load and
                    observe that the integrity mechanism does not flag any executables as containing
                    integrity errors and that the TOE properly boots. </test>
                  <h:br/>
                  <test>The evaluator shall modify a TSF executable that is integrity protected and
                    cause that executable to be successfully loaded by the TSF. The evaluator
                    observes that an integrity violation is triggered and the TOE does not boot.
                    (Care must be taken so that the integrity violation is determined to be the
                    cause of the failure to load the module, and not the fact that the module was
                    modified so that it was rendered unable to run because its format was
                    corrupt).</test><h:br/>
                  <test>[conditional] If the ST author indicates that the integrity verification is
                    performed using a public key, the evaluator shall verify that the update
                    mechanism includes a certificate validation as defined in FIA_X509_EXT.1 as defined in the <xref to="X509"/>. The
                    evaluator shall digitally sign the TSF executable with a certificate that does
                    not have the Code Signing purpose in the extendedKeyUsage field and verify that
                    an integrity violation is triggered. The evaluator shall repeat the test using a
                    certificate that contains the Code Signing purpose and verify that the integrity
                    verification succeeds. Ideally, the two certificates should be identical except
                    for the extendedKeyUsage field.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event><audit-event-descr>Start-up of TOE</audit-event-descr></audit-event>
	  <audit-event>
	    <audit-event-descr><selectables onlyone="yes"><selectable>Detected integrity
	      violation</selectable><selectable>None</selectable></selectables></audit-event-descr>
	    <audit-event-info><selectables onlyone="yes"><selectable>The TSF code file that caused the integrity violation</selectable><selectable>No additional information</selectable></selectables></audit-event-info>
	  </audit-event>
        </f-component>
        
        <f-component cc-id="fpt_tst_ext.2" name="TSF Integrity Checking (Post-Kernel)" status="objective" iteration="POSTKERNEL">
          
          <f-element id="fel-integrity-what">
            <title>The TSF shall verify the integrity of <selectables>
                <selectable id="s-all-exe">all executable code</selectable>
                <selectable><assignable>subset of executable code</assignable></selectable>
              </selectables> stored in mutable media prior to its execution through the use of <selectables>
                <selectable>a digital signature using an immutable hardware asymmetric
                  key</selectable>
                <selectable>an immutable hardware hash of an asymmetric key</selectable>
                <selectable>an immutable hardware hash</selectable>
                <selectable>a digital signature using a hardware-protected asymmetric
                  key</selectable>
                <selectable>hardware-protected hash</selectable>
              </selectables>. </title>
            <note role="application">All executable code covered in this requirement is executed
              after the kernel is loaded.<h:br/><h:br/> If "all executable code in mutable
              media" is verified, implementation in hardware or in read-only memory is a natural
              logical consequence. <h:br/><h:br/> At this time, the verification of software
              executed on other processors stored in mutable media is not required; however, it may
              be added in the first assignment. If all executable code (including bootloaders,
              kernel, device drivers, pre-loaded applications, user-loaded applications, and
              libraries) is verified, "all executable code stored in mutable media" should be
              selected. </note>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluation activity shall be completed in conjunction with FPT_TST_EXT.2/PREKERNEL
                for all executable code specified. </Tests>
            </aactivity>
          </f-element>
          <audit-event>
	    <audit-event-descr><selectables onlyone="yes"><selectable>Detected integrity violation</selectable><selectable>None</selectable></selectables></audit-event-descr>
	    <audit-event-info><selectables onlyone="yes"><selectable>The TSF code file that cause the integrity violation</selectable><selectable>No additional information</selectable></selectables></audit-event-info>
	    </audit-event>
        </f-component>
        <f-component cc-id="fpt_tst_ext.3" name="TSF Integrity Testing" status="sel-based">
          <depends on="x509-integrity">
            <external-doc ref="X509"/>
          </depends>
          
          <comp-lev> requires the TSF to validate a code signing certificate before the associated code is executed.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FPT_TST_EXT.2 TSF Integrity Checking<h:br/>	
            FIA_X509_EXT.1 X.509 Validation of Certificates<h:br/>	
            FIA_X509_EXT.2 X.509 Certificate Authentication
          </dependencies>
          
          
          <f-element id="fel-integrity-fail">
            <title>The TSF shall not execute code if the code signing certificate is deemed invalid. </title>
            <note role="application">Certificates may optionally be used for code signing for
            integrity verification (FPT_TST_EXT.2.1/PREKERNEL).
            If "code signing for software integrity testing" is selected in FIA_X509_EXT.2.1 in <xref to="X509"/>, FPT_TST_EXT.3.1 must be included in the
            ST. <h:br/><h:br/>
	    Validity is determined by the certificate path, the expiration
            date, and the revocation status in accordance with RFC 5280. </note>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>Testing for this component is performed in conjunction with the Evaluation
                Activities for FPT_TST_EXT.2.1/PREKERNEL. </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
	</f-component>
        
        <ext-comp-def fam-id="FPT_TUD_EXT" title="TSF Updates">
          <fam-behavior>This family defines requirements for trusted updates. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fpt_tud_ext.1" name="TSF Version Query">
          
          <comp-lev> requires the TSF to provide authorized users the ability to query the version of the TOE hardware, TOE software, and installed applications.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FMT_SMR.1 Security Roles</dependencies>
          
          
          <f-element id="fel-get-software-version">
            <title>The TSF shall provide authorized users the ability to query the current version
              of the TOE firmware/software.</title>
          </f-element>
          <f-element id="fel-get-hardware-version">
            <title>The TSF shall provide authorized users the ability to query the current version
              of the hardware model of the device. </title>
            <note role="application">The current version of the hardware model of the device is an
              identifier that is sufficient to indicate (in tandem with manufacturer documentation)
              the hardware which comprises the device.</note>
          </f-element>
          <f-element id="fel-get-app-version">
            <title>The TSF shall provide authorized users the ability to query the current version
              of installed mobile applications. </title>
            <note role="application">The current version of mobile applications is the name and
              published version number of each installed mobile application.</note>
            <aactivity>The evaluator shall establish a test environment consisting of the Mobile
              Device and any supporting software that demonstrates usage of the management
              functions. This can be test software from the developer, a reference implementation of
              management software from the developer, or other commercially available software. The
              evaluator shall set up the Mobile Device and the other software to exercise the
              management functions according to the provided guidance documentation. <h:br/><h:br/>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>Using the AGD guidance provided, the evaluator shall test that the
                    administrator and user can query: <h:ul>
                      <h:li>The current version of the TSF operating system and any firmware that
                        can be updated separately</h:li>
                      <h:li>The hardware model of the TSF</h:li>
                      <h:li>The current version of all installed mobile applications</h:li>
                    </h:ul>
                    The evaluator shall review manufacturer documentation to ensure that the
                    hardware model identifier is sufficient to identify the hardware which comprises the
                    device.
                  </test>
                </testlist>  </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component cc-id="fpt_tud_ext.2" name="TSF Update Verification">
          
          <comp-lev> requires the TSF to ensure that system software updates are digitally signed prior to installation.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Updating of system software.</h:li>
            </h:ul>
          </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Success or failure of signature verification for applications.</h:li>
            </h:ul>
          </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation</dependencies>
          
          <f-element id="fel-updates-verify">
            <title>The TSF shall verify software updates to the Application Processor system
              software and <selectables>
                <selectable><assignable>other processor system software</assignable></selectable>
                <selectable>no other processor system software</selectable>
              </selectables> using a digital signature verified by the manufacturer trusted key
              prior to installing those updates.</title>
            <note role="application">
            <h:p>The digital signature mechanism is implemented in accordance with FCS_COP.1.1/SigVer.</h:p>
            <h:p>At this time, this requirement does not require verification of software updates to the software operating outside the Application Processor.</h:p>
            <h:p>Any change, via a supported mechanism, to
              software residing in non-volatile storage is deemed a software update. Thus, this
              requirement applies to TSF software updates regardless of how the software arrives or
              is delivered to the device. This includes over-the-air (OTA) updates as well as
              partition images containing software which may be delivered to the device over a wired
              interface.</h:p>
            </note>
          </f-element>
          <f-element id="fel-boot-key-update">
            <title>The TSF shall <selectables>
                <selectable>never update</selectable>
                <selectable>update only by verified software</selectable>
              </selectables> the TSF boot integrity <selectables>
                <selectable>key</selectable>
                <selectable>hash</selectable>
              </selectables>.</title>
            <note role="application">The key or hash updated via this requirement is used for
              verifying software before execution in FPT_TST_EXT.2/PREKERNEL. The key or hash is verified
              as a part of the digital signature on an update, and the software which performs the
              update of the key or hash is verified by FPT_TST_EXT.2/PREKERNEL. </note>
          </f-element>
          <f-element id="fel-update-key-verify">
            <title>The TSF shall verify that the digital signature verification key used for TSF
              updates <selectables>
                <selectable>is validated to a public key in the Trust Anchor Database</selectable>
                <selectable>matches an immutable hardware public key</selectable>
              </selectables>. </title>
            <note role="application">The ST author must indicate the method by which the signing
              key for system software updates is limited and, if selected in FPT_TUD_EXT.2.3, must
              indicate how this signing key is protected by the hardware. <h:br/><h:br/> If
              certificates are used, certificates are validated for the purpose of software updates
              in accordance with FIA_X509_EXT.1 as defined in the <xref to="X509"/> and should be selected in FIA_X509_EXT.2.1 as defined in the <xref to="X509"/>.
              Additionally, FPT_TUD_EXT.4 must be included in the ST. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS section of the ST describes all TSF
                software update mechanisms for updating the system software. The evaluator shall
                verify that the description includes a digital signature verification of the
                software before installation and that installation fails if the verification fails.
                The evaluator shall verify that all software and firmware involved in updating the
                TSF is described and, if multiple stages and software are indicated, that the
                software/firmware responsible for each stage is indicated and that the stages
                which perform signature verification of the update are identified.
                <h:br/><h:br/>

		<!-- TODO: Where is hardware-protection selection -->
		The evaluator shall verify that the TSS describes the method by
                which the digital signature is verified and that the public key used to verify the
                signature is either hardware-protected or is validated to chain to a public key in
                the Trust Anchor Database. If hardware-protection is selected, the evaluator shall
                verify that the method of hardware-protection is described and that the ST author
                has justified why the public key may not be modified by unauthorized parties.
		<h:br/><h:br/>
		
		[conditional] If the ST author indicates that software updates to
                system software running on other processors is verified, the evaluator shall verify
                that these other processors are listed in the TSS and that the description includes
                the software update mechanism for these processors, if different than the update
                mechanism for the software executing on the Application Processor.<h:br/><h:br/>

		[conditional] If the ST author indicates that the public key is
                used for software update digital signature verification, the evaluator shall verify
                that the update mechanism includes a certificate validation as defined in
                FIA_X509_EXT.1 as defined in the <xref to="X509"/> and a check for the Code Signing purpose in the extendedKeyUsage.
		
                <h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall verify that the developer has provided evidence that the
                following tests were performed for each available update mechanism: <testlist>
                  <test>
                    The tester shall try to install an update without the digital signature and
                    shall verify that installation fails. The tester shall attempt to install an
                    update with digital signature, and verify that installation succeeds. <h:br/>
                  </test>
                  <test>The tester shall digitally sign the update with a key disallowed by the
                    device and verify that installation fails. The tester shall attempt to install an update signed with the allowed key and verify that installation succeeds.<h:br/></test>
                  <test>[conditional] The tester shall digitally sign the update with an invalid
                    certificate and verify that update installation fails. The tester attempt to install an update that was digitally signed using a valid certificate and a certificate that contains the purpose
                    and verify that the update installation succeeds.<h:br/></test>
                  <test>[conditional] The tester shall repeat these test for the software executing
                    on each processor listed in the first selection. The tester shall attempt to
                    install an update without the digital signature and shall verify that
                    installation fails. The tester shall attempt to install an update with digital
                    signature, and verify that installation succeeds.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Success or failure of signature verification for software updates</audit-event-descr>
	  </audit-event>
        </f-component>			
        <f-component cc-id="fpt_tud_ext.3" name="Application Signing">
          
          <comp-lev> requires the TSF to ensure that application software updates are digitally signed prior to installation.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST:
            <h:ul>
              <h:li>Success or failure of signature verification for applications.</h:li>
            </h:ul>
            </audit>
          <dependencies>FCS_COP.1 Cryptographic Operation
            </dependencies>
          
          
          <f-element id="fel-update-app-verify">
            <title>The TSF shall verify mobile application software using a digital signature
              mechanism prior to installation. </title>
            <note role="application">This requirement does not necessitate an X.509v3 certificate or
              certificate validation. X.509v3 certificates and certificate validation are addressed
              in <xref to="fel-app-verify-how"/>.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes how mobile application software
                is verified at installation. The evaluator shall ensure that this method uses a
                digital signature.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <h:b>Evaluation Activity Note:</h:b> The following test does not have to be tested
                using the commercial application store. <h:br/><h:br/>
                <testlist>
                  <test>The evaluator shall write, or the developer shall provide access to, an
                    application. The evaluator shall try to install this application without a
                    digitally signature and shall verify that installation fails. The evaluator
                    shall attempt to install a digitally signed application, and verify that
                    installation succeeds. </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Success or failure of signature verification for applications</audit-event-descr>
	  </audit-event>
        </f-component>
        <f-component cc-id="fpt_tud_ext.4" name="Trusted Update Verification" status="sel-based">
          <depends on="x509-updates" also="x509-other-uses">
            <external-doc ref="X509"/>
          </depends>
          
          
          <comp-lev> requires the TSF to enforce validity of system software’s code signing certificate prior to installation.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<h:br/>
            FIA_X509_EXT.2 X.509 Certificate Authentication
            </dependencies>
          
          
          <f-element id="fel-update-int-fail">
            <title>The TSF shall not install code if the code signing certificate is deemed invalid. </title>
            <note role="application">Certificates may optionally be used for code signing of system
              software updates (FPT_TUD_EXT.2.3) and of mobile applications (<xref to="fel-app-verify-how"/>). This
              element must be included in the ST if certificates are used for either update element.
              If "code signing for system software updates" is selected or the assignment is selected and specifies the use of 
              X.509 in code signing for mobile
              applications in FIA_X509_EXT.2.1 in <xref to="X509"/>,
	      FPT_TUD_EXT.4 must be included in the
              ST. <h:br/><h:br/> Validity is determined by the certificate path, the expiration
              date, and the revocation status in accordance with RFC 5280. </note>
            <aactivity>
              <TSS>There are no TSS evaluation activities for this component.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>Testing for this component is performed in conjunction with the Evaluation
                Activities for FPT_TUD_EXT.2 and FPT_TUD_EXT.5. </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        <f-component id="fc-crypt-veri" cc-id="fpt_tud_ext.5" name="Application Verification" status="objective">
          
          <comp-lev> requires the TSF to enforce validity of application software’s code signing certificate prior to installation.</comp-lev>
          <management>The following actions should be auditable if FAU_GEN Security audit data generation is included in the PP/ST:
            <h:ul>
              <h:li>Configure certificate or public key used to validate digital signature on applications.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FIA_X509_EXT.1 X.509 Validation of Certificates<h:br/>
            FIA_X509_EXT.2 X.509 Certificate Authentication
            </dependencies>
          
          
          <f-element id="fel-app-verify-how">
            <title>The TSF shall by default only install mobile applications cryptographically
              verified by <selectables>
                <selectable>a built-in X.509v3 certificate</selectable>
                <selectable>a configured X.509v3 certificate</selectable>
              </selectables>. </title>
            <note role="application">The built-in certificate is installed by the manufacturer
              either at time of manufacture or as a part of system updates. The configured
              certificate used to verify the signature is set as defined in FMT_SMF_EXT.1 function
                <xref to="mf-digSign"/>.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes how mobile application software
                is verified at installation. The evaluator shall ensure that this method uses a
                digital signature by a code signing certificate.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall write, or the developer shall provide access to, an
                    application. The evaluator shall try to install this application without a
                    digitally signature and shall verify that installation fails. The evaluator
                    shall attempt to install an application digitally signed with an appropriate
                    certificate, and verify that installation succeeds. </test><h:br/>
                  <test>The evaluator shall digitally sign the application with an invalid
                    certificate and verify that application installation fails. The evaluator shall
                    digitally sign the application with a certificate that does not have the Code
                    Signing purpose and verify that application installation fails. This test may be
                    performed in conjunction with the Evaluation Activities for
                    FIA_X509_EXT.1 as defined in the <xref to="X509"/>.</test><h:br/>
                  <test>If necessary, the evaluator shall configure the device to limit the public
                    keys that can sign application software according to the AGD guidance. The
                    evaluator shall digitally sign the application with a certificate disallowed by
                    the device or configuration and verify that application installation fails. The
                    evaluator shall attempt to install an application digitally signed with an
                    authorized certificate and verify that application installation succeeds.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="objective"/>
        </f-component>
        <f-component cc-id="fpt_tud_ext.6" name="Trusted Update Verification" status="objective">
          
          <comp-lev> requires the TSF to prevent the intentional rollback of software updates. </comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-updates-inc-version">
            <title>The TSF shall verify that software updates to the TSF are a current or later
              version than the current version of the TSF. </title>
            <note role="application"> A later version has a larger version number. The method for
              distinguishing newer software versions from older versions is determined by the
              manufacturer. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes the mechanism that prevents the
                TSF from installing software updates that are an older version that the currently
                installed version. <h:br/><h:br/>
              </TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall repeat the following tests to cover all allowed software
                update mechanisms as described in the TSS. For example, if the update mechanism
                replaces an entire partition containing many separate code files, the evaluator does
                not need to repeat the test for each individual file. <testlist>
                  <test>The evaluator shall attempt to install an earlier version of software (as
                    determined by the manufacturer). The evaluator shall verify that this attempt
                    fails by checking the version identifiers or cryptographic hashes of the
                    privileged software against those previously recorded and checking that the
                    values have not changed.</test><h:br/>
                  <test>The evaluator shall attempt to install a current or later version and shall
                    verify that the update succeeds.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event table="objective"/>
        </f-component>
      </sec:fpt>
      <sec:fta title="Class FTA: TOE Access">
        
        <ext-comp-def fam-id="FTA_SSL_EXT" title="Session Locking and Termination">
          <fam-behavior>This family defines requirements for session locking capabilities that are not addressed by FTA_SSL in CC Part 2. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="fta_ssl_ext.1" name="TSF- and User-initiated Locked State ">
          
          <comp-lev> requires the TSF to manage the transition to a locked state and what operations can be performed. </comp-lev>
          <management>The following actions could be considered for the management functions in FMT:
            <h:ul>
              <h:li>Configuring session locking policy.</h:li>
              <h:li>Transitioning to the locked state.</h:li>
            </h:ul>
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>FMT_SMR.1 Security Roles<h:br/>
          FPT_STM.1 Reliable Time Stamps
          </dependencies>
          
          <f-element id="fel-time-lock">
            <title>The TSF shall transition to a locked state after a time interval of inactivity.
            </title>
          </f-element>
          <f-element id="fel-user-lock">
            <title>The TSF shall transition to a locked state after initiation by either the user or
              the administrator. </title>
          </f-element>
          <f-element id="fel-lock-what">
            <title>The TSF shall, upon transitioning to the locked state, perform the following
              operations: <h:ul>
                <h:li>Clearing or overwriting display devices, obscuring the previous contents; </h:li>
                <h:li><assignable>Other actions performed upon transitioning to the locked
                    state</assignable>.</h:li>
              </h:ul>
            </title>
            <note role="application">
              The time interval of inactivity is configured using FMT_SMF_EXT.1 function <xref to="mf-screenlock"/>. The user/administrator-initiated lock is defined in FMT_SMF_EXT.1 function <xref to="mf-lockState"/>.</note>
            <aactivity>
              <TSS>The evaluator shall verify the TSS describes the actions performed upon
                transitioning to the locked state. <h:br/><h:br/></TSS>
              <Guidance>The evaluation shall verify that the AGD guidance describes the method of
                setting the inactivity interval and of commanding a lock. The evaluator shall verify
                that the TSS describes the information allowed to be displayed to unauthorized
                users.<h:br/><h:br/></Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the TSF to transition to the locked state
                    after a time of inactivity (FMT_SMF_EXT.1) according to the AGD guidance. The
                    evaluator shall wait until the TSF locks and verify that the display is cleared
                    or overwritten and that the only actions allowed in the locked state are
                    unlocking the session and those actions defined in FIA_UAU_EXT.2.</test><h:br/>
                  <test>The evaluator shall command the TSF to transition to the locked state
                    according to the AGD guidance as both the user and the administrator. The
                    evaluator shall wait until the TSF locks and verify that the display is cleared
                    or overwritten and that the only actions allowed in the locked state are
                    unlocking the session and those actions defined in FIA_UAU_EXT.2.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
        <f-component id="fc-banner" cc-id="fta_tab.1" name="Default TOE Access Banners">
          <f-element id="fel-banner">
            <title>Before establishing a user session, the [<h:i>TSF</h:i>] shall display an
              [<h:i>advisory warning</h:i>] message <h:b>regarding unauthorized use of the TOE</h:b>.</title>
            <note role="application">This requirement may be met with the configuration of either
              text or an image containing the text of the desired message. The TSF must minimally
              display this information at startup, but may also display the information at every
              unlock. The banner is configured as defined in FMT_SMF_EXT.1 function <xref to="mf-unlockBanner"/>.</note>
            <aactivity>
              <TSS> The TSS shall describe when the banner is displayed.<h:br/><h:br/></TSS>
              <Guidance>There are no guidance evaluation activities for this component.<h:br/><h:br/></Guidance>
              <Tests> The evaluator shall also perform the following test: <testlist>
                  <test>The evaluator follows the operational guidance to configure a notice and
                    consent warning message. The evaluator shall then start up or unlock the TSF.
                    The evaluator shall verify that the notice and consent warning message is
                    displayed in each instance described in the TSS.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event/>
        </f-component>
      </sec:fta>
      <sec:ftp title="Class FTP: Trusted Path/Channels">
        
        <ext-comp-def fam-id="FTP_ITC_EXT" title="Inter-TSF Trusted Channel">
          <fam-behavior>This family defines requirements for trusted channels that are not addressed by FTP_ITC in CC Part 2 because they apply specifically to channels required by a mobile device. 
          </fam-behavior>
        </ext-comp-def>
        
        
        <f-component cc-id="ftp_itc_ext.1" name="Trusted Channel Communication">
          
          <comp-lev> requires the TSF to manage the communication channel between itself and other trusted products. </comp-lev>
          <management>The following actions could be considered for the management functions in FMT:<h:ul>
            <h:li>Configuring the actions that require trusted channel, if applicable.</h:li>
            <h:li>Enabling/disabling communications protocols where the TSF acts as a server.</h:li>
          </h:ul>
            </management>
          <audit>The following actions should be auditable if FAU_GEN Security audit data generation is included
            in the PP, PP-Module, functional package or ST: 
            <h:ul>
            <h:li>Initiation and termination of trusted channel.</h:li>
          </h:ul>
          </audit>
          <dependencies>No dependencies.</dependencies>
          
          
          <f-element id="fel-wlan">
            <title>The TSF shall use <h:ul>
              <h:li>802.11-2012 in accordance with the [<h:i><xref to="mod-wlanclient"/></h:i>],</h:li>
              <h:li>802.1X in accordance with the [<h:i><xref to="mod-wlanclient"/></h:i>],</h:li>
              <h:li>EAP-TLS in accordance with the [<h:i><xref to="mod-wlanclient"/></h:i>],</h:li>
              <h:li>Mutually authenticated TLS in accordance with the [<h:i><xref to="tls"/></h:i>]</h:li>
              </h:ul> and <selectables linebreak="yes">
                <selectable id="s-itc-ipsec"><snip>IPsec</snip> in accordance with the <xref to="mod-vpnclient"/></selectable>
                <selectable id="itc_dtls"><snip>mutually authenticated DTLS</snip> as defined in the <xref to="tls"/></selectable>
                <selectable>HTTPS</selectable>
              </selectables> protocols to provide a communication channel between itself and another trusted IT product using certificates as defined in [<h:i><xref to="X509"/></h:i>] that is logically distinct from other communication channels, 
              provides assured identification of its end points, protects channel data from disclosure, and detects modification of the channel data. </title>
            <ext-comp-def-title>
              <title>The TSF shall use <h:ul>
                <h:li>802.11-2012 in accordance with <assignable>requirements or standards defining implementation of this protocol</assignable>,</h:li>
                <h:li>802.1X in accordance with <assignable>requirements or standards defining implementation of this protocol</assignable>,</h:li>
                <h:li>EAP-TLS in accordance with <assignable>requirements or standards defining implementation of this protocol</assignable>,</h:li>
                <h:li>Mutually authenticated TLS in accordance with <assignable>requirements or standards defining implementation of this protocol</assignable></h:li>
              </h:ul> and <assignable>other protocols</assignable> protocols to provide a communication channel between itself and another trusted IT product 
                using certificates as defined in <assignable>requirement or standard defining the use of certificates</assignable> that is logically distinct from other communication channels, 
                provides assured identification of its end points, protects channel data from disclosure, and detects modification of the channel data. </title>
            </ext-comp-def-title>
            <note role="application"> 
              The intent of the mandatory portion of the above requirement is to use the cryptographic protocols identified in the requirement to establish and maintain a trusted channel between the TOE and an access point, VPN Gateway, or other trusted IT product.<h:br/><h:br/> 
              
				<!-- 
              To satisfy the mandatory trusted channel of TLS and 
	      if <xref to="itc_dtls"/> is selected, the TSF must be validated against the <xref to="tls"/>, with the following selections made:
	      <rule id="r-tls">
		  <doc ref="tls"><ref-id>tlsc_impl</ref-id><ref-id>tlsc_mutual_auth</ref-id><ref-id>s-tlsc-no-excep</ref-id></doc>
	      </rule>
	      <rule id="r-dtls">
		<if><ref-id>itc_dtls</ref-id></if>
		<then><doc ref="tls"><ref-id>dtlsc_impl</ref-id><ref-id>dtlsc_mutual_auth</ref-id><ref-id>s-dtlsc-no-excep</ref-id></doc></then>
	      </rule>
	      -->
<!-- TODO: Can these be expressed as rules? -->	      
	      
              <h:br/>
              <!-- 
	      <rule id="r-ipsec">
		<if><ref-id>s-itc-ipsec</ref-id></if>
		<then><ref-id>mod-vpnclient</ref-id></then>
	      </rule>
	      -->
                            
              <if-opt-app>
                <!-- TODO: Looks like appref is broken -->
		<xref to="sel-based-reqs"/>
                contains the requirements for implementing each of the other optional trusted
                channel protocols. </if-opt-app> The ST author must include the security functional
              requirements for the trusted channel protocol selected in FTP_ITC_EXT.1 in the main
              body of the ST. <h:br/><h:br/> Assured identification of endpoints is performed
              according to the authentication mechanisms used by the listed trusted channel
              protocols. <h:br/><h:br/> 
              <h:p>
                Claims from the <xref to="X509"/> are only required to the extent that they are needed to support the functionality required by the trusted protocols that are claimed.
              </h:p><h:p>
                The TSF is mandated to support mutually authenticated TLS, which means that it implements a protocol that requires the validation of a certificate presented by an external entity. Therefore, FIA_X509_EXT.1 and FIA_X509_EXT.2 as defined in <xref to="X509"/> will be claimed, as will FIA_TSM_EXT.1 for management of the trust store.
              </h:p><h:p>
                The requirement to implement mutually authenticated TLS also means that it
                implements a protocol that requires the presentation of any certificates to an external entity. Therefore, FIA_XCU_EXT.2 will be claimed. FIA_X509_EXT.6 will also be claimed, along with any applicable dependencies, depending on how the certificates presented by the TOE are obtained.  
              </h:p>
            
            </note>
          </f-element>
          <f-element id="fel-chan-init">
            <title>The TSF shall permit the TSF to initiate communication via the trusted channel.
            </title>
          </f-element>
          <f-element id="fel-chan-init-what">
            <title>The TSF shall initiate communication via the trusted channel for wireless access
              point connections, administrative communication, configured enterprise connections,
              and <selectables>
                <selectable>OTA updates</selectable>
                <selectable exclusive="yes">no other connections</selectable>
              </selectables>. </title>
            <aactivity>
              <TSS> The evaluator shall examine the TSS to determine that it describes the details
                of the TOE connecting to access points, VPN Gateways, and other trusted IT products
                in terms of the cryptographic protocols specified in the requirement, along with
                TOE-specific options or procedures that might not be reflected in the
                specifications. The evaluator shall also confirm that all protocols listed in the
                TSS are specified and included in the requirements in the ST. <h:br/><h:br/> If
                OTA updates are selected, the TSS shall describe which trusted channel protocol is
                initiated by the TOE and is used for updates.<h:br/><h:br/>
              </TSS>
              <Guidance> The evaluator shall confirm that the operational guidance contains
                instructions for establishing the connection to access points, VPN Gateways, and
                other trusted IT products. <h:br/><h:br/>
              </Guidance>
              <Tests> The evaluator shall also perform the following tests for each protocol listed: <testlist>
                  <test>The evaluator shall ensure, for each communication channel with an
                    authorized IT entity, the channel data are not sent in plaintext and that a
                    protocol analyzer identifies the traffic as the protocol under testing.</test><h:br/>
                    <test>[conditional] If <xref to="s-itc-ipsec"/> is selected,
		    the evaluator shall ensure that the TOE 
                    is able to initiate communications with a VPN Gateway, setting up the 
                    connections as described in the operational guidance and ensuring that 
                    communication is successful.</test><h:br/>
                  <test>[conditional] If OTA updates are selected, the evaluator shall trigger an
                    update request according to the operational guidance and shall ensure that the
                    communication is successful.</test><h:br/>
                  <test>For any other selected protocol (not tested in Test 1, 2, or 3), the
                    evaluator shall ensure that the TOE is able to initiate communications with a
                    trusted IT product using the protocol, setting up the connection as described in
                    the operational guidance and ensuring that the communication is successful.
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
	  <audit-event>
	    <audit-event-descr>Initiation and termination of trusted channel</audit-event-descr>
	    <audit-event-info><h:ul>
	      <h:li>Trusted channel protocol</h:li>
	      <h:li>Non-TOE endpoint of connection</h:li>
	    </h:ul></audit-event-info>
	  </audit-event>
        </f-component>
      </sec:ftp>
    </section>
    <section id="sar" title="Security Assurance Requirements"> 
      The Security Objectives in <xref to="Security_Objectives"/> 
      were constructed to address threats identified in
      <xref to="Security_Problem_Definition"/>.
      The Security Functional Requirements (SFRs) in <xref to="sfr"/> are a formal
      instantiation of the Security Objectives. The PP identifies the Security Assurance
      Requirements (SARs) to frame the extent to which the evaluator assesses the documentation
      applicable for the evaluation and performs independent testing.<h:br/><h:br/> This section
      lists the set of SARs from CC part 3 that are required in evaluations against this PP.
      Individual Evaluation Activities to be performed are specified both in <xref to="sfr"/>
      as well as in this section. <h:br/><h:br/> The general model for evaluation of TOEs
      against STs written to conform to this PP is as follows:<h:br/><h:br/> After the ST has
      been approved for evaluation, the ITSEF will obtain the
      TOE, supporting environmental IT, and the administrative/user guides for the TOE. The ITSEF is
      expected to perform actions mandated by the Common Evaluation Methodology (CEM) for the ASE
      and ALC SARs. The ITSEF also performs the Evaluation Activities contained within <xref to="sfr"/>, which are intended to be an interpretation of the other CEM evaluation
      requirements as they apply to the specific technology instantiated in the TOE. The Evaluation
      Activities that are captured in <xref to="sfr"/> also provide clarification as to what
      the developer needs to provide to demonstrate the TOE is compliant with the PP.
      <h:p/>
      The TOE Security Assurance Requirements are identified in <xref to="sartable"/>.<h:br/><h:br/> 
      <ctr id="sartable" ctr-type="Table">: Security Assurance Requirements</ctr>
      <h:table>
        <h:tr class="header">
          <h:td>Assurance Class</h:td><h:td>Assurance Components</h:td>
        </h:tr>
        <h:tr>
          <h:td rowspan="7">Security Target (ASE)</h:td>
          <h:td>Conformance Claims (ASE_CCL.1)</h:td>
        </h:tr>
        <h:tr><h:td>Extended Components Definition (ASE_ECD.1)</h:td></h:tr>
        <h:tr><h:td>ST Introduction (ASE_INT.1)</h:td></h:tr>
        <h:tr><h:td>Security Objectives for the Operational Environment
          (ASE_OBJ.1)</h:td></h:tr>
        <h:tr><h:td>Direct Rationale Security Requirements (ASE_REQ.1)</h:td></h:tr>
        <h:tr><h:td>Security Problem Definition (ASE_SPD.1)</h:td></h:tr>
        <h:tr><h:td>TOE Summary Specification (ASE_TSS.1)</h:td></h:tr>
        <h:tr>
          <h:td>Development (ADV)</h:td>
          <h:td>Basic Functional Specification (ADV_FSP.1)</h:td>
        </h:tr>
        <h:tr>
          <h:td rowspan="2">Guidance Documents (AGD)</h:td>
          <h:td>Operational User Guidance (AGD_OPE.1)</h:td>
        </h:tr>
        <h:tr><h:td>Preparative Procedures (AGD_PRE.1)</h:td></h:tr>
        <h:tr>
          <h:td rowspan="3">Life Cycle Support (ALC)</h:td>
          <h:td>Labeling of the TOE (ALC_CMC.1)</h:td>
        </h:tr>
        <h:tr><h:td>TOE CM Coverage (ALC_CMS.1)</h:td></h:tr>
        <h:tr><h:td>Timely Security Updates (ALC_TSU_EXT.1)</h:td></h:tr>
        <h:tr>
          <h:td>Tests (ATE)</h:td>
          <h:td>Independent Testing – Conformance (ATE_IND.1)</h:td>
        </h:tr>
        <h:tr>
          <h:td>Vulnerability Assessment (AVA)</h:td>
          <h:td>Vulnerability Survey (AVA_VAN.1)</h:td>
        </h:tr>
      </h:table>
      <sec:ase title="Class ASE: Security Target"> The ST is evaluated as per ASE
        activities defined in the CEM for ASE_CCL.1, ASE_ECD.1, ASE_INT.1, ASE_OBJ.1, ASE_REQ.1,
        ASE_SPD.1, and ASE_TSS.1. In addition, there may be Evaluation Activities specified within
          <xref to="sfr"/> that call for necessary descriptions to be included in the TSS
        that are specific to the TOE technology type.</sec:ase>
      <sec:adv title="Class ADV: Development"> The design information about the TOE is
        contained in the guidance documentation available to the end user as well as the TSS portion
        of the ST, and any additional information required by this PP that is not to be made public.
          <a-component cc-id="adv_fsp.1" name="Basic Functional Specification">
          <summary>The functional specification describes the TOE Security Functions Interface (TSFIs).
            It is not necessary to have a formal or
            complete specification of these interfaces. Additionally, because TOEs conforming to
            this PP will necessarily have interfaces to the Operational Environment that are not
            directly invokable by TOE users, there is little point specifying that such interfaces
            be described in and of themselves since only indirect testing of such interfaces may be
            possible. For this PP, the activities for this family should focus on understanding the
            interfaces presented in the TSS in response to the functional requirements and the
            interfaces presented in the AGD documentation.
			No additional "functional specification"
            documentation is necessary to satisfy the evaluation activities specified.
            <h:br/><h:br/>
            Several TSS evaluation activities reference the need for the TOE to have API documentation to demonstrate that certain functions exist and can be performed in the manner required by this PP. These evaluation activities reference "other documentation" as it may not be practical to include this in the TSS itself. Vendor API documentation may exist outside the ST and be referenced separately. 
            <h:br/><h:br/>
			The interfaces that need to be evaluated are characterized through
            the information needed to perform the evaluation activities listed, rather than as an
            independent, abstract list.</summary>
          <a-element type="D">
            <title>The developer shall provide a functional specification.</title>
          </a-element>
          <a-element type="D">
            <title>The developer shall provide a tracing from the functional specification to the
              SFRs.</title>
            <note role="application">As indicated in the introduction to this section, the
              functional specification is comprised of the information contained in the AGD_OPE,
              AGD_PRE, and the API information that is provided to application developers, including
              the APIs that require privilege to invoke. <h:br/><h:br/> The developer may
              reference a website accessible to application developers and the evaluator. The API
              documentation must include those interfaces required in this profile. The API
              documentation must clearly indicate to which products and versions each available
              function applies. <h:br/><h:br/> The evaluation activities in the functional
              requirements point to evidence that should exist in the documentation and TSS section;
              since these are directly associated with the SFRs, the tracing in element ADV_FSP.1.2D
              is implicitly already done and no additional documentation is necessary.</note>
          </a-element>
          <a-element type="C">
            <title>The functional specification shall describe the purpose and method of use for
              each SFR-enforcing and SFR-supporting TSFI.</title>
          </a-element>
          <a-element type="C">
            <title>The functional specification shall identify all parameters associated with each
              SFR-enforcing and SFR-supporting TSFI.</title>
          </a-element>
          <a-element type="C">
            <title>The functional specification shall provide rationale for the implicit
              categorization of interfaces as SFR-non-interfering.</title>
          </a-element>
          <a-element type="C">
            <title>The tracing shall demonstrate that the SFRs trace to 
                TSFIs in the functional specification.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements
              for content and presentation of evidence.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall determine that the functional specification is an accurate
              and complete instantiation of the SFRs.</title>
            <aactivity>There are no specific evaluation activities associated with these SARs, except
              ensuring the information is provided. The functional specification documentation is
              provided to support the evaluation activities described in <xref to="sfr"/>,
              and other activities described for AGD, ATE, and AVA SARs. The requirements on the
              content of the functional specification information is implicitly assessed by virtue
              of the other evaluation activities being performed; if the evaluator is unable to
              perform an activity because there is insufficient interface information, then an
              adequate functional specification has not been provided. </aactivity>
          </a-element>
        </a-component>
      </sec:adv>
      <sec:agd title="Class AGD: Guidance Documentation"> The guidance documents will be
        provided with the ST. Guidance must include a description of how the IT personnel verifies
        that the Operational Environment can fulfill its role for the security functionality. The
        documentation should be in an informal style and readable by the IT personnel.
        <h:br/><h:br/> Guidance must be provided for every operational environment that the
        product supports as claimed in the ST. This guidance includes: <h:ul>
          <h:li>Instructions to successfully install the TSF in that environment</h:li>
          <h:li>Instructions to manage the security of the TSF as a product and as a component of
            the larger operational environment</h:li>
          <h:li>Instructions to provide a protected administrative capability</h:li>
        </h:ul>
        <h:br/> Guidance pertaining to particular security functionality is also provided;
        requirements on such guidance are contained in the evaluation activities specified with each
        requirement. <a-component cc-id="agd_ope.1" name="Operational User Guidance">
          <a-element type="D">
            <title>The developer shall provide operational user guidance.</title>
            <note role="application">The operational user guidance does not have to be contained in
              a single document. Guidance to users, administrators and application developers can be
              spread among documents or web pages. Where appropriate, the guidance documentation is
              expressed in the eXtensible Configuration Checklist Description Format (XCCDF) to
              support security automation.<h:br/><h:br/> Rather than repeat information here,
              the developer should review the evaluation activities for this component to ascertain
              the specifics of the guidance that the evaluator will be checking for. This will
              provide the necessary information for the preparation of acceptable guidance.</note>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall describe, for each user role, the
              user-accessible functions and privileges that should be controlled in a secure
              processing environment, including appropriate warnings.</title>
            <note role="application">User and administrator (e.g., MDM agent), and application
              developer are to be considered in the definition of user role.</note>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall describe, for each user role, how to use the
              available interfaces provided by the TOE in a secure manner.</title>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall describe, for each user role, the available
              functions and interfaces, in particular all security parameters under the control of
              the user, indicating secure values as appropriate.</title>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall, for each user role, clearly present each
              type of security-relevant event relative to the user-accessible functions that need to
              be performed, including changing the security characteristics of entities under the
              control of the TSF.</title>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall identify all possible modes of operation of
              the OS (including operation following failure or operational error), their
              consequences, and implications for maintaining secure operation.</title>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall, for each user role, describe the security
              measures to be followed in order to fulfill the security objectives for the
              operational environment as described in the ST.</title>
          </a-element>
          <a-element type="C">
            <title>The operational user guidance shall be clear and reasonable.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements
              for content and presentation of evidence. </title>
            <aactivity>Some of the contents of the operational guidance are verified by the
              evaluation activities in <xref to="sfr"/> and evaluation of the TOE as defined in
              [CEM]. The following additional information is also required.
              <h:br/><h:br/> The operational guidance shall contain a list of natively installed
              applications and any relevant version numbers. If any third party vendors are
              permitted to install applications before purchase by the end user or enterprise, these
              applications shall also be listed.<h:br/><h:br/> The operational guidance shall
              contain instructions for configuring the cryptographic engine associated with the
              evaluated configuration of the TOE. It shall provide a warning to the administrator
              that use of other cryptographic engines was not evaluated nor tested during the CC
              evaluation of the TOE. <h:br/><h:br/> The documentation must describe the process
              for verifying updates to the TOE by verifying a digital signature. The evaluator shall
              verify that this process includes the following steps: <h:ul>
                <h:li>Instructions for obtaining the update itself. This should include
                  instructions for making the update accessible to the TOE (e.g., placement in a
                  specific directory).</h:li>
                <h:li>Instructions for initiating the update process, as well as discerning
                  whether the process was successful or unsuccessful. This includes generation of
                  the hash/digital signature.</h:li>
              </h:ul> The TOE will likely contain security functionality that does not fall in the
              scope of evaluation under this PP. The operational guidance shall make it clear to an
              administrator which security functionality is covered by the evaluation activities.
            </aactivity>
          </a-element>
        </a-component>
        <a-component cc-id="agd_pre.1" name="Preparative Procedures">
          <a-element type="D">
            <title>The developer shall provide the TOE, including its preparative
              procedures.</title>
            <note role="application">As with the operational guidance, the developer should look to
              the evaluation activities to determine the required content with respect to preparative
              procedures.</note>
          </a-element>
          <a-element type="C">
            <title>The preparative procedures shall describe all the steps necessary for secure
              acceptance of the delivered TOE in accordance with the developer's delivery
              procedures.</title>
          </a-element>
          <a-element type="C">
            <title>The preparative procedures shall describe all the steps necessary for secure
              installation of the TOE and for the secure preparation of the operational environment
              in accordance with the security objectives for the operational environment as
              described in the ST.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements
              for content and presentation of evidence.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall apply the preparative procedures to confirm that the OS can
              be prepared securely for operation.</title>
            <aactivity>As indicated in the introduction above, there are significant expectations
              with respect to the documentation—especially when configuring the operational
              environment to support TOE functional requirements. The evaluator shall check to
              ensure that the guidance provided for the TOE adequately addresses all platforms
              claimed for the TOE in the ST. </aactivity>
          </a-element>
        </a-component>
      </sec:agd>
      <sec:alc title="Class ALC: Life-cycle Support"> At the assurance level provided
        for TOEs conformant to this PP, life-cycle support is limited to end-user-visible aspects of
        the life-cycle, rather than an examination of the TOE vendor’s development and configuration
        management process. This is not meant to diminish the critical role that a developer’s
        practices play in contributing to the overall trustworthiness of a product; rather, it is a
        reflection on the information to be made available for evaluation at this assurance level.
          <a-component cc-id="alc_cmc.1" name="Labeling of the TOE">
          <summary>This component is targeted at identifying the TOE such that it can be
            distinguished from other products or versions from the same vendor and can be easily
            specified when being procured by an end user. </summary>
          <a-element type="D">
            <title>The developer shall provide the TOE and a reference for the TOE.</title>
          </a-element>
          <a-element type="C">
            <title>The TOE shall be labeled with a unique reference.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements
              for content and presentation of evidence.</title>
            <aactivity>The evaluator shall check the ST to ensure that it contains an identifier
              (such as a product name/version number) that specifically identifies the version that
              meets the requirements of the ST. Further, the evaluator shall check the AGD guidance
              and TOE samples received for testing to ensure that the version number is consistent
              with that in the ST. If the vendor maintains a web site advertising the TOE, the
              evaluator shall examine the information on the web site to ensure that the information
              in the ST is sufficient to distinguish the product.</aactivity>
          </a-element>
        </a-component>
        <a-component cc-id="alc_cms.1" name="TOE CM Coverage">
          <summary>Given the scope of the TOE and its associated evaluation evidence requirements,
            this component’s evaluation activities are covered by the evaluation activities listed for
            ALC_CMC.1.</summary>
          <a-element type="D">
            <title> The developer shall provide a configuration list for the TOE. </title>
          </a-element>
          <a-element type="C">
            <title>The configuration list shall include the following: the TOE itself; and the
              evaluation evidence required by the SARs.</title>
          </a-element>
          <a-element type="C">
            <title>The configuration list shall uniquely identify the configuration items.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements
              for content and presentation of evidence.</title>
            <note role="Application"> The "evaluation evidence required by the SARs" in this PP is
              limited to the information in the ST coupled with the guidance provided to
              administrators and users under the AGD requirements. By ensuring that the TOE is
              specifically identified and that this identification is consistent in the ST and in
              the AGD guidance (as done in the evaluation activity for ALC_CMC.1), the evaluator
              implicitly confirms the information required by this component.<h:br/><h:br/>
              Life-cycle support is targeted aspects of the developer’s life-cycle and instructions
              to providers of applications for the developer’s devices, rather than an in-depth
              examination of the TSF manufacturer’s development and configuration management
              process. This is not meant to diminish the critical role that a developer’s practices
              play in contributing to the overall trustworthiness of a product; rather, it’s a
              reflection on the information to be made available for evaluation.</note>
            <aactivity> The evaluator shall ensure that the developer has identified (in
              public-facing development guidance for their platform) one or more development
              environments appropriate for use in developing applications for the developer’s
              platform. For each of these development environments, the developer shall provide
              information on how to configure the environment to ensure that buffer overflow
              protection mechanisms in the environments are invoked (e.g., compiler and linker
              flags). The evaluator shall ensure that this documentation also includes an indication
              of whether such protections are on by default, or have to be specifically enabled.
              <h:br/><h:br/> The evaluator shall ensure that the TSF is uniquely identified
              (with respect to other products from the TSF vendor), and that documentation provided
              by the developer in association with the requirements in the ST is associated with the
              TSF using this unique identification.</aactivity>
          </a-element>
        </a-component>
        
        <a-component cc-id="alc_flr.1" name="Basic Flaw Remediation (ALC_FLR.1)" status="optional">
          <a-element type="D">
            <title>The developer shall document and provide flaw remediation procedures addressed to TOE
              developers.</title>
          </a-element>
          <a-element type="C">
            <title>The flaw remediation procedures documentation shall describe the procedures used to
              track all reported security flaws in each release of the TOE.</title>
          </a-element>
          <a-element type="C">
            <title>The flaw remediation procedures shall require that a description of the nature and effect
              of each security flaw be provided, as well as the status of finding a correction to that flaw.</title>
          </a-element>
          <a-element type="C">
            <title>The flaw remediation procedures shall require that corrective actions be identified for
              each of the security flaws.</title>
          </a-element>
          <a-element type="C">
            <title>The flaw remediation procedures documentation shall describe the methods used to
              provide flaw information, corrections and guidance on corrective actions to TOE users.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements for
              content and presentation of evidence.</title>
            <aactivity>Evaluated as specified by [CEM].</aactivity>
          </a-element>  
        </a-component>
        
        
        
        <a-component cc-id="alc_flr.2" name="Flaw Reporting Procedures (ALC_FLR.2)" status="optional">
          <a-element type="D">
            <title>
              The developer shall document and provide flaw remediation procedures addressed to TOE
              developers.</title>
          </a-element>
          <a-element type="D">
            <title>
              The developer shall establish a procedure for accepting and acting upon all reports of
              security flaws and requests for corrections to those flaws.
            </title>
          </a-element>
          <a-element type="D">
            <title>
              The developer shall provide flaw remediation guidance addressed to TOE users.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures documentation shall describe the procedures used to track all
              reported security flaws in each release of the TOE.</title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures shall require that a description of the nature and effect of each
              security flaw be provided, as well as the status of finding a correction to that flaw.</title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures shall require that corrective actions be identified for each of the
              security flaws.</title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures documentation shall describe the methods used to provide flaw
              information, corrections and guidance on corrective actions to TOE users.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures shall describe a means by which the developer receives
              from TOE users reports and enquiries of suspected security flaws in the TOE.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The procedures for processing reported security flaws shall ensure that any reported
              flaws are remediated and the remediation procedures issued to TOE users.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The procedures for processing reported security flaws shall provide safeguards that any
              corrections to these security flaws do not introduce any new flaws.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation guidance shall describe a means by which TOE users report to the
              developer any suspected security flaws in the TOE.
            </title>
          </a-element>
          <a-element type="E">
            <title>
              The evaluator shall confirm that the information provided meets all requirements for content and
              presentation of evidence.</title>
            <aactivity>Evaluated as specified by [CEM].</aactivity>
          </a-element>  
        </a-component>		
        
        
        <a-component cc-id="alc_flr.3" name="Systematic Flaw Remediation (ALC_FLR.3)" status="optional">
          <a-element type="D">
            <title>
              The developer shall document and provide flaw remediation procedures addressed to TOE
              developers.
            </title>
          </a-element>
          <a-element type="D">
            <title>
              The developer shall establish a procedure for accepting and acting upon all reports of security
              flaws and requests for corrections to those flaws.
            </title>
          </a-element>
          <a-element type="D">
            <title>
              The developer shall provide flaw remediation guidance addressed to TOE users.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures documentation shall describe the procedures used to track all
              reported security flaws in each release of the TOE.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures shall require that a description of the nature and effect of each
              security flaw be provided, as well as the status of finding a correction to that flaw.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures shall require that corrective actions be identified for each of the
              security flaws.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures documentation shall describe the methods used to provide flaw
              information, corrections and guidance on corrective actions to TOE users.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures shall describe a means by which the developer receives from
              TOE users reports and enquiries of suspected security flaws in the TOE.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation procedures shall include a procedure requiring timely response and
              the automatic distribution of security flaw reports and the associated corrections to
              registered users who might be affected by the security flaw.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The procedures for processing reported security flaws shall ensure that any reported flaws are
              remediated and the remediation procedures issued to TOE users.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The procedures for processing reported security flaws shall provide safeguards that any
              corrections to these security flaws do not introduce any new flaws.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation guidance shall describe a means by which TOE users report to the
              developer any suspected security flaws in the TOE.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation guidance shall describe a means by which TOE users may register
              with the developer, to be eligible to receive security flaw reports and corrections.
            </title>
          </a-element>
          <a-element type="C">
            <title>
              The flaw remediation guidance shall identify the specific points of contact for all reports
              and enquiries about security issues involving the TOE.
            </title>
          </a-element>
          <a-element type="E">
            <title>
              The evaluator shall confirm that the information provided meets all requirements for content and
              presentation of evidence.</title>
            <aactivity>Evaluated as specified by [CEM].</aactivity>
          </a-element>  
        </a-component>	   
     
        <a-component cc-id="alc_tsu_ext.1" name="Timely Security Updates">
          <summary>This component requires the TOE developer, in conjunction with any other
            necessary parties, to provide information as to how the end-user devices are updated to
            address security issues in a timely manner. The documentation describes the process of
            providing updates to the public from the time a security flaw is reported/discovered, to
            the time an update is released. This description includes the parties involved (e.g.,
            the developer, cellular carriers) and the steps that are performed (e.g., developer testing,
            carrier testing), including worst-case time periods, before an update is made available
            to the public. </summary>
          <a-element type="D">
            <title>The developer shall provide a description in the TSS of how timely security
              updates are made to the TOE.</title>
          </a-element>
          <a-element type="C">
            <title>The description shall include the process for creating and deploying security
              updates for the TOE software.</title>
            <note>The software to be described includes the operating systems of the application
              processor and the baseband processor, as well as any firmware and applications. The
              process description includes the TOE developer processes as well as any third-party
              (carrier) processes. The process description includes each deployment mechanism (e.g.,
              over-the-air updates, per-carrier updates, downloaded updates).</note>
          </a-element>
          <a-element type="C">
            <title>The description shall express the time window as the length of time, in days,
              between public disclosure of a vulnerability and the public availability of security
              updates to the TOE.</title>
            <note> The total length of time may be presented as a summation of the periods of time
              that each party (e.g., TOE developer, mobile carrier) on the critical path consumes.
              The time period until public availability per deployment mechanism may differ; each is
              described.</note>
          </a-element>
          <a-element type="C">
            <title>The description shall include the mechanisms publicly available for reporting
              security issues pertaining to the TOE. </title>
            <note>The reporting mechanism could include web sites, email addresses, as well as a
              means to protect the sensitive nature of the report (e.g., public keys that could be
              used to encrypt the details of a proof-of-concept exploit).</note>
          </a-element>
          <a-element type="C">
            <title>The description shall include where users can seek information about the
              availability of new updates including details (e.g. CVE identifiers) of the specific
              public vulnerabilities corrected by each update. </title>
            <note>The purpose of providing this information is so that users and enterprises can
              determine which devices are susceptible to publicly known vulnerabilities so that they
              can make appropriate risk decisions, such as limiting access to enterprise resources
              until updates are installed. </note>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements
              for content and presentation of evidence. </title>
            <aactivity> The evaluator shall verify that the TSS contains a description of the timely
              security update process used by the developer to create and deploy security updates.
              The evaluator shall verify that this description addresses the TOE OS, the firmware,
              and bundled applications, each. The evaluator shall also verify that, in addition to
              the TOE developer’s process, any carrier or other third-party processes are also
              addressed in the description. The evaluator shall also verify that each mechanism for
              deployment of security updates is described. <h:br/><h:br/> The evaluator shall
              verify that, for each deployment mechanism described for the update process, the TSS
              lists a time between public disclosure of a vulnerability and public availability of
              the security update to the TOE patching this vulnerability, to include any third-party
              or carrier delays in deployment. The evaluator shall verify that this time is
              expressed in a number or range of days. <h:br/><h:br/> The evaluator shall verify
              that this description includes the publicly available mechanisms (including either an
              email address or website) for reporting security issues related to the TOE. The
              evaluator shall verify that the description of this mechanism includes a method for
              protecting the report either using a public key for encrypting email or a trusted
              channel for a website. <h:br/><h:br/> The evaluator shall verify that the
              description includes where users can seek information about the availability of new
              security updates including details of the specific public vulnerabilities corrected by
              each update. The evaluator shall verify that the description includes the minimum
              amount of time that the TOE is expected to be supported with security updates, and the
              process by which users can seek information about when the TOE is no longer expected
              to receive security updates. </aactivity>
          </a-element>
        </a-component>
      </sec:alc>
      <sec:ate title="Class ATE: Tests"> Testing is specified for functional aspects of
        the system as well as aspects that take advantage of design or implementation weaknesses.
        The former is done through the ATE_IND family, while the latter is through the AVA_VAN
        family. At the assurance level specified in this PP, testing is based on advertised
        functionality and interfaces with dependency on the availability of design information. One
        of the primary outputs of the evaluation process is the test report as defined in the
        following requirements. <h:br/><h:br/> Since many of the APIs are not exposed at the
        user interface (e.g., touch screen), the ability to stimulate the necessary interfaces
        requires a developer’s test environment. This test environment will allow the evaluator, for
        example, to access APIs and view file system information that is not available on consumer
        Mobile Devices.
		<a-component cc-id="ate_ind.1" name="Independent Testing – Conformance">
        <summary>Testing is performed to confirm the functionality described in the TSS as well as
            the administrative (including configuration and operational) documentation provided.
			The focus of the testing is to confirm that the requirements defined in 
			<xref to="sfr"/> being met, although some additional testing is specified for SARs in
            <xref to="sar"/>.
			The Evaluation Activities identify the additional testing
            activities associated with these components.
			The evaluator produces a test report
            documenting the plan for and results of testing, as well as coverage arguments focused
            on the platform/TOE combinations that are claiming conformance to this PP. </summary>
          <a-element type="D">
            <title>The developer shall provide the TOE for testing.</title>
          </a-element>
          <a-element type="C">
            <title>The TOE shall be suitable for testing.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets
              all requirements for content and presentation of evidence.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall test a subset of the TSF to confirm that the TSF operates as
              specified.</title>
            <aactivity>The evaluator shall prepare a test plan and report documenting the testing
              aspects of the system. The test plan covers all of the testing actions contained in
              [CEM] and the body of this PP’s Evaluation Activities. While it is
              not necessary to have one test case per test listed in an evaluation activity, the
              evaluator shall document in the test plan that each applicable testing requirement in
              the ST is covered. <h:br/><h:br/> The test plan identifies the platforms to be
              tested, and for those platforms not included in the test plan but included in the ST,
              the test plan provides a justification for not testing the platforms. This
              justification must address the differences between the tested platforms and the
              untested platforms, and make an argument that the differences do not affect the
              testing to be performed. It is not sufficient to merely assert that the differences
              have no affect; rationale must be provided. If all platforms claimed in the ST are
              tested, then no rationale is necessary. <h:br/><h:br/> The test plan describes the
              composition of each platform to be tested, and any setup that is necessary beyond what
              is contained in the AGD documentation. It should be noted that the evaluator is
              expected to follow the AGD documentation for installation and setup of each platform
              either as part of a test or as a standard pre-test condition. This may include special
              test drivers or tools. For each driver or tool, an argument (not just an assertion)
              should be provided that the driver or tool will not adversely affect the performance
              of the functionality by the TOE and its platform. This also includes the configuration
              of the cryptographic engine to be used. The cryptographic algorithms implemented by
              this engine are those specified by this PP and used by the cryptographic protocols
              being evaluated (IPsec, TLS/HTTPS, SSH). <h:br/><h:br/> The test plan identifies
              high-level test objectives as well as the test procedures to be followed to achieve
              those objectives. These procedures include expected results. The test report (which
              could just be an annotated version of the test plan) details the activities that took
              place when the test procedures were executed, and includes the actual results of the
              tests. This shall be a cumulative account, so if there was a test run that resulted in
              a failure; a fix installed; and then a successful re-run of the test, the report would
              show a "fail" and "pass" result (and the supporting details), and not just the "pass"
              result.</aactivity>
          </a-element>
        </a-component>
      </sec:ate>
      <sec:ava title="Class AVA: Vulnerability Assessment"> For the current generation
        of this protection profile, the evaluation lab is expected to survey open sources to
        discover what vulnerabilities have been discovered in these types of products. In most
        cases, these vulnerabilities will require sophistication beyond that of a basic attacker.
        Until penetration tools are created and uniformly distributed to the evaluation labs, the
        evaluator will not be expected to test for these vulnerabilities in the TOE. The labs will
        be expected to comment on the likelihood of these vulnerabilities given the documentation
        provided by the vendor. This information will be used in the development of penetration
        testing tools and for the development of future protection profiles.
	<a-component cc-id="ava_van.1" name="Vulnerability Survey">
          <a-element type="D">
            <title>The developer shall provide the TOE for testing.</title>
          </a-element>
          <a-element type="C">
            <title>The TOE shall be suitable for testing.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall confirm that the information provided meets all requirements
              for content and presentation of evidence.</title>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall perform a search of public domain sources to identify
              potential vulnerabilities in the TOE.</title>
            <note role="application">Public domain sources include the Common Vulnerabilities and
              Exposures (CVE) dictionary for publicly-known vulnerabilities. </note>
          </a-element>
          <a-element type="E">
            <title>The evaluator shall conduct penetration testing, based on the identified
              potential vulnerabilities, to determine that the TOE is resistant to attacks performed
              by an attacker possessing Basic attack potential.</title>
            <aactivity>The evaluator shall generate a report to document their findings with respect
              to this requirement. This report could physically be part of the overall test report
              mentioned in ATE_IND, or a separate document. The evaluator performs a search of
              public information to find vulnerabilities that have been found in mobile devices and
              the implemented communication protocols in general, as well as those that pertain to
              the particular TOE. The evaluator documents the sources consulted and the
              vulnerabilities found in the report. <h:br/><h:br/> For each vulnerability found,
              the evaluator either provides a rationale with respect to its non-applicability, or
              the evaluator formulates a test (using the guidelines provided in ATE_IND) to confirm
              the vulnerability, if suitable. Suitability is determined by assessing the attack
              vector needed to take advantage of the vulnerability. If exploiting the vulnerability
              requires expert skills and an electron microscope, for instance, then a test would not
              be suitable and an appropriate justification would be formulated.</aactivity>
          </a-element>
        </a-component>
      </sec:ava>
    </section>
  </sec:Security_Requirements>
  <!-- 
  <appendix title="Validation Guidelines" id="valguide"/>
  -->
  <appendix title="Implicitly Satisfied Requirements" id="satisfiedreqs"> 
    <h:table>
      <h:tr>
        <h:th>Requirement</h:th>
        <h:th>Rationale for Satisfaction</h:th>
      </h:tr>
      <h:tr>
        <h:td>FAU_SEL.1 - Selective Audit</h:td>
        <h:td>FAU_SEL.1 has a dependency on FMT_MTD.1 since configuration of audit data is a subset of managing TSF data. This dependency is met by FMT_SMF_EXT.1, which 
          defines "configure the auditable items" as a management function and specifies the roles that may perform this, consistent with how FMT_MTD.1 would typically satisfy the dependency.
        </h:td>
      </h:tr>
      <!-- 
      <h:tr>
        <h:td>FCS_HTTPS_EXT.1 - HTTPS Protocol</h:td>
        <h:td>FCS_HTTPS_EXT.1 has a dependency on FMT_SMF_EXT.1 for management of the TOE's behavior in the event of an invalid certificate. This dependency is met
          by the extended SFR FMT_SMF_EXT.1 (specifically function 23), which serves the same purpose as its CC Part 2 equivalent.</h:td>
      </h:tr>
      -->
      <h:tr>
        <h:td>FCS_STG_EXT.1 - Cryptographic Key Storage</h:td>
        <h:td>FCS_STG_EXT.1 has a dependency on FMT_SMR.1 for the management roles that are authorized to manage the functionality defined by the requirement. 
          This dependency is met by FMT_SMF_EXT.1, which implicitly defines separate management roles for the TSF.</h:td>
      </h:tr>
      <h:tr>
        <h:td>FDP_ACF_EXT.1 - Access Control for System Services</h:td>
        <h:td>FDP_ACF_EXT.1 has a dependency on FMT_SMR.1 for the management roles that are authorized to manage the functionality defined by the requirement. 
          This dependency is met by FMT_SMF_EXT.1, which implicitly defines separate management roles for the TSF.</h:td>
      </h:tr>
      <h:tr>
        <h:td>FDP_ACF_EXT.2 - Access Control for System Resources</h:td>
        <h:td>FDP_ACF_EXT.2 has a dependency on FMT_SMR.1 for the management roles that are authorized to manage the functionality defined by the requirement. 
          This dependency is met by FMT_SMF_EXT.1, which implicitly defines separate management roles for the TSF.</h:td>
      </h:tr>
      <h:tr>
        <h:td>FIA_AFL_EXT.1 - Authentication Failure Handling</h:td>
        <h:td>FIA_AFL_EXT.1 has a dependency on FIA_UAU.1 since handling of authentication failures is not possible without an authentication mechanism. This dependency is met
          by the extended SFR FIA_UAU_EXT.1, which serves the same purpose as its CC Part 2 equivalent.</h:td>
      </h:tr>
      <h:tr>
        <h:td>FIA_PMG_EXT.1 - Password Management</h:td>
        <h:td>FIA_PMG_EXT.1 has a dependency on FIA_UAU.1 since composition of authentication credentials is not possible without an authentication mechanism. This dependency is met
          by the extended SFR FIA_UAU_EXT.1, which serves the same purpose as its CC Part 2 equivalent.</h:td>
      </h:tr>
      <h:tr>
        <h:td>FIA_UAU.7 - Protected Authentication Feedback</h:td>
        <h:td>FIA_UAU.7 has a dependency on FIA_UAU.1 since protected authentication feedback is not possible without an authentication mechanism. This dependency is met
          by the extended SFR FIA_UAU_EXT.1, which serves the same purpose as its CC Part 2 equivalent.</h:td>
      </h:tr>
      <h:tr>
        <h:td>FMT_MOF_EXT.1 - Management of Security Functions Behavior</h:td>
        <h:td>FMT_MOF_EXT.1 has a dependency on FMT_SMF.1 through its reference to management functions in the requirement text. 
          This dependency is met by FMT_SMF_EXT.1, which defines management functions specifically for the TSF.</h:td>
      </h:tr>
      <h:tr>
        <h:td>FMT_SMF_EXT.3 - Current Administrator</h:td>
        <h:td>FMT_SMF_EXT.3 has a dependency on FMT_SMR.1 through its reference to management roles in the requirement text. 
          This dependency is met by FMT_SMF_EXT.1, which implicitly defines separate management roles for the TSF.</h:td>
      </h:tr>
    </h:table>
  </appendix>
  
  <appendix id="entropyappendix" title="Entropy Documentation And Assessment"> 
    The documentation of the
    entropy source should be detailed enough that, after reading, the evaluator will thoroughly
    understand the entropy source and why it can be relied upon to provide entropy. This
    documentation should include multiple detailed sections: design description, entropy
    justification, operating conditions, and health testing. This documentation is not required to
    be part of the TSS. 
    <section id="description" title="Design Description">
      Documentation shall
      include the design of the entropy source as a whole, including the interaction of all entropy
      source components. It will describe the operation of the entropy source to include how it
      works, how entropy is produced, and how unprocessed (raw) data can be obtained from within the
      entropy source for testing purposes. The documentation should walk through the entropy source
      design indicating where the random comes from, where it is passed next, any post-processing of
      the raw outputs (hash, XOR, etc.), if/where it is stored, and finally, how it is output from
      the entropy source. Any conditions placed on the process (e.g., blocking) should also be
      described in the entropy source design. Diagrams and examples are encouraged.
      <h:br/><h:br/> This design must also include a description of the content of the security
      boundary of the entropy source and a description of how the security boundary ensures that an
      adversary outside the boundary cannot affect the entropy rate. <h:br/><h:br/> If
      implemented, the design description shall include a description of how third-party
      applications can add entropy to the DRBG. A description of any DRBG state saving between
      power-off and power-on shall be included. </section>
    <section id="justification" title="Entropy Justification"> 
      There should be a technical argument
      for where the unpredictability in the source comes from and why there is confidence in the
      entropy source exhibiting probabilistic behavior (an explanation of the probability
      distribution and justification for that distribution given the particular source is one way to
      describe this). This argument will include a description of the expected entropy rate and
      explain how you ensure that sufficient entropy is going into the TOE randomizer seeding
      process. This discussion will be part of a justification for why the entropy source can be
      relied upon to produce bits with entropy. <h:br/><h:br/> The entropy justification shall
      not include any data added from any third-party application or from any state saving between
      restarts. </section>
    <section id="conditions" title="Operating Conditions"> 
      Documentation will also include the range
      of operating conditions under which the entropy source is expected to generate random data. It
      will clearly describe the measures that have been taken in the system design to ensure the
      entropy source continues to operate under those conditions. Similarly, documentation shall
      describe the conditions under which the entropy source is known to malfunction or become
      inconsistent. Methods used to detect failure or degradation of the source shall be included. </section>
    <section id="testing" title="Health Testing"> 
      More specifically, all entropy source health tests
      and their rationale will be documented. This will include a description of the health tests,
      the rate and conditions under which each health test is performed (e.g., at startup,
      continuously, or on-demand), the expected results for each health test, and rationale
      indicating why each test is believed to be appropriate for detecting one or more failures in
      the entropy source.</section>
  </appendix>
<!--
  <appendix id="acro" title="Acronyms">
    <ctr id="acronyms" ctr-type="Table">: Acronyms</ctr>
    <acronyms/>
  </appendix>
  -->
  <!--
  <appendix id="use" title="Use Case Templates"> 
    The following use case templates list those
    selections, assignments, and objective requirements that best support the use cases identified
    by this Protection Profile. Note that the templates assume that all SFRs listed in <xref
      to="sfr"/> are included in the ST, not just those listed in the templates. These
    templates and deviations from the template should be identified in the Security Target to assist
    customers with making risk-based purchasing decisions. Products that do not meet these templates
    are not precluded from use in the scenarios identified by this Protection Profile.
    <h:br/><h:br/> Several of the use cases templates include objective requirements that are
    strongly desired for the indicated use cases. Readers can expect those requirements to be made
    mandatory in a future revision of this protection profile, and industry should aim to include
    that security functionality in products in the near-term. <h:br/><h:br/> Where selections
    for a particular requirement are not identified in a use case template, all available selections
    are equally applicable to the use case. 
    <section id="usecase1" title="[USE CASE 1] Enterprise-owned device for general-purpose enterprise use">
      <ctr id="uc1" ctr-type="Table">: Enterprise-Owned Template</ctr>
      <h:table>
        <h:tr class="header"><h:td>Requirement</h:td><h:td>Action</h:td></h:tr>
        <h:tr><h:td>FCS_STG_EXT.1.4</h:td><h:td>Do not select "the
            user."</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-location"/></h:td><h:td>Include in the ST.</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref
              to="mf-serverProtocols"/></h:td><h:td>Include in ST. Assign personal Hotspot
            connections (if feature exists).</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-unlockBanner"
            /></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-USB"
            /></h:td><h:td>Include in ST. Select "USB Mass storage mode."</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-tethering"
            /></h:td><h:td>Include in ST. Select "USB tethering."</h:td></h:tr>
        
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref
              to="mf-serverProtocols"/></h:td><h:td>Include in ST. Assign personal Hotspot
            connections (if feature exists).</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-unlockBanner"
            /></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-USB"
            /></h:td><h:td>Include in ST. Select "USB Mass storage mode."</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-tethering"
            /></h:td><h:td>Include in ST. Select both options.</h:td></h:tr>
        <h:tr><h:td>FPT_BBD_EXT.1.1</h:td><h:td>Include in
          ST.</h:td></h:tr>
        <h:tr><h:td>FPT_TST_EXT.2.1/POSTKERNEL</h:td><h:td>Include in ST and
            Select "all executable code stored in mutable media."</h:td></h:tr>
        <h:tr><h:td>FPT_TUD_EXT.5.1</h:td><h:td>Include in
          ST.</h:td></h:tr>
        ToDo: removed since FTA_TAB became mandatory<h:tr><h:td>FTA_TAB.1.1</h:td><h:td>Include in
          ST.</h:td></h:tr>
      </h:table>
    </section>
    <section id="usecase2" title="[USE CASE 2] Enterprise-owned device for specialized, high-security use">
      <ctr id="uc2" ctr-type="Table">: High Security Template</ctr>
      <h:table>
        <h:tr class="header"><h:td>Requirement</h:td><h:td>Action</h:td></h:tr>
        <h:tr><h:td>FCS_CKM.1.1</h:td><h:td>Select RSA with key size of 3072 or select ECC schemes.</h:td></h:tr>
        <h:tr><h:td>FCS_CKM.2.1/UNLOCKED</h:td><h:td>Select ECC schemes, if ECC schemes are selected in FCS_CKM.1.1.</h:td></h:tr>
        <h:tr><h:td>FCS_CKM.2.1/LOCKED</h:td><h:td>Select "RSA schemes" or select "ECC schemes that meet NIST SP 800-56A Revision 3".</h:td></h:tr>
       <h:tr><h:td>FCS_CKM_EXT.1.1</h:td><h:td>If "symmetric" is selected then "256 bits" must be selected. If "asymmetric" is selected and RSA scheme is selected in FCS_CKM.1.1 then "128 bits" can be selected. If "asymmetric" is selected and ECC scheme is selected in FCS_CKM.1.1, then "192 bits" can be selected. </h:td></h:tr>
        <h:tr><h:td>FCS_CKM_EXT.2.1</h:td><h:td>Select 256 bits.</h:td></h:tr>
       <h:tr><h:td>FCS_CKM_EXT.3.1</h:td><h:td>If asymmetric KEKs is selected and RSA scheme is selected in FCS_CKM.1.1 then assign 128 bits security strength. If asymmetric KEKs is selected and ECC scheme is selected in FCS_CKM.1.1 then assign 192 bits security strength. If symmetric KEKs is selected, select 256 bit security strength.</h:td></h:tr>
        <h:tr><h:td>FCS_COP.1.1/ENCRYPT</h:td><h:td>Select 256 bits.</h:td></h:tr>
        <h:tr><h:td>FCS_COP.1.1/Hash</h:td><h:td>Select SHA-384.</h:td></h:tr>
        <h:tr><h:td>FCS_COP.1.1/SIGN</h:td><h:td>Assign a key size of 3072 for RSA or select ECDSA schemes.</h:td></h:tr>
        <h:tr><h:td>FCS_CKM_EXT.8</h:td><h:td>Select 256 bits.</h:td></h:tr>
        <h:tr><h:td>FCS_RBG_EXT.1.2</h:td><h:td>Select 256 bits.</h:td></h:tr>
        <h:tr><h:td>FCS_TLSC_EXT.1.1 (TLS Package)</h:td><h:td>Select TLS_RSA_WITH_AES_256_GCM_SHA384 or TLS_ECDHE_ECDSA_WITH AES_256_GCM_SHA384.</h:td></h:tr>
       <h:tr><h:td>FCS_TLSC_EXT.2.1 (TLS Package)</h:td><h:td>Select secp384r1, if included in ST (if ECC schemes are selected in FCS_CKM.1.1). </h:td></h:tr>
       <h:tr><h:td>FDP_DAR_EXT.1.2</h:td><h:td>Select 256 bits.</h:td></h:tr>
        <h:tr><h:td>FIA_X509_EXT.2.2</h:td><h:td>Select either "allow the administrator to choose..." or "not accept the certificate".</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-vpn"/></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-radios"/></h:td><h:td>Assign all radios on TSF. </h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-audioVisual"/></h:td><h:td>Assign all audio or visual collection devices on TSF.</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-dar"/></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-location"/></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-unenroll"/></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_MOF_EXT.1.2 Function <xref to="mf-alwaysOnVPN"/></h:td><h:td>Include in ST (if IPsec is selected in FTP_ITC_EXT.1).</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-certWipe"/></h:td><h:td>Assign all X.509v3 certificates in the Trust Anchor Database.</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-notifications"/></h:td><h:td>Select "f. all notifications".</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-externalPorts"/></h:td><h:td>Include in ST. Assign at least USB. </h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-serverProtocols"/></h:td><h:td>Include in ST. Assign all protocols where the TSF acts as a server. </h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-unlockBanner" /></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.2.1</h:td><h:td>Select "wipe of protected data" and "wipe of sensitive data".</h:td></h:tr>
        ToDo: removed since FAU_SAR.1 became mandatory:<h:tr><h:td>FAU_SAR.1.1</h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FAU_SAR.1.2</h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FAU_SEL.1.1</h:td><h:td>Include in ST. Select "event type", "success of auditable security events", and "failure of auditable security events".</h:td></h:tr>
        <h:tr><h:td>FCS_SRV_EXT.2.1</h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FPT_AEX_EXT.5.1</h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FPT_AEX_EXT.5.2</h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FPT_BBD_EXT.1.1</h:td><h:td>Include in ST.</h:td></h:tr>
         ToDo: removed since FTA_TAB became mandatory: <h:tr><h:td>FTA_TAB.1.1</h:td><h:td>Include in ST.</h:td></h:tr>
      </h:table>
    </section>
    <section id="usecase3" title="[USE CASE 3] Personally-owned device for personal and enterprise use">
      <ctr id="uc3" ctr-type="Table">: BYOD Template</ctr>
      <h:table>
        <h:tr class="header"><h:td>Requirement</h:td><h:td>Action</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-vpn"/></h:td><h:td>Select "b. on a per-app basis", "c. on a per-groups of application basis" or both</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-audioVisual"/></h:td><h:td>Select "b. on a per-app basis", "c. on a per-groups of application basis" or both</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-entAppRemove"/></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-wipeEntData"/></h:td><h:td>Include in ST.</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.1.1 Function <xref to="mf-unenroll"/></h:td><h:td>Include in ST (M-M-)</h:td></h:tr>
        <h:tr><h:td>FMT_SMF_EXT.2.1</h:td><h:td>Select "Remove Enterprise Applications"</h:td></h:tr>
        <h:tr><h:td>FDP_ACF_EXT.1.2</h:td><h:td>Select "Groups of Applications"</h:td></h:tr>
        <h:tr><h:td>FDP_ACF_EXT.2.1</h:td><h:td>Include in ST.</h:td></h:tr>
      </h:table>
    </section>
    <section id="usecase4" title="[USE CASE 4] Personally-owned device for personal and limited enterprise use">
      At this
      time no requirements or selections are recommended for this use case. </section>
  </appendix> -->
  <appendix id="vector" title="Initialization Vector Requirements for NIST-Approved Cipher Modes">
    <ctr id="ivtable" ctr-type="Table">: References and IV Requirements for NIST-approved Cipher
      Modes</ctr>
    <h:table>
      <h:tr class="header">
        <h:td>Cipher Mode</h:td>
        <h:td>Reference</h:td>
        <h:td>IV Requirements</h:td>
      </h:tr>
      <h:tr>
        <h:td>Electronic Codebook (ECB)</h:td>
        <h:td>SP 800-38A</h:td>
        <h:td>No IV</h:td>
      </h:tr>
      <h:tr>
        <h:td>Counter (CTR)</h:td>
        <h:td>SP 800-38A</h:td>
        <h:td>"Initial Counter" shall be non-repeating. No counter value shall be repeated across
          multiple messages with the same secret key.</h:td>
      </h:tr>
      <h:tr>
        <h:td>Cipher Block Chaining (CBC)</h:td>
        <h:td>SP 800-38A</h:td>
        <h:td>IVs shall be unpredictable. Repeating IVs leak information about whether the first
          one or more blocks are shared between two messages, so IVs should be non-repeating in such
          situations.</h:td>
      </h:tr>
      <h:tr>
        <h:td>Output Feedback (OFB)</h:td>
        <h:td>SP 800-38A</h:td>
        <h:td>IVs shall be non-repeating and shall not be generated by invoking the cipher on
          another IV.</h:td>
      </h:tr>
      <h:tr>
        <h:td>Cipher Feedback (CFB)</h:td>
        <h:td>SP 800-38A</h:td>
        <h:td>IVs should be non-repeating as repeating IVs leak information about the first
          plaintext block and about common shared prefixes in messages.</h:td>
      </h:tr>
      <h:tr>
        <h:td>XEX (XOR Encrypt XOR) Tweakable Block Cipher with Ciphertext Stealing (XTS)</h:td>
        <h:td>SP 800-38E</h:td>
        <h:td>No IV. Tweak values shall be non-negative integers, assigned consecutively, and
          starting at an arbitrary non-negative integer.</h:td>
      </h:tr>
      <h:tr>
        <h:td>Cipher-based Message Authentication Code (CMAC)</h:td>
        <h:td>SP 800-38B</h:td>
        <h:td>No IV</h:td>
      </h:tr>
      <h:tr>
        <h:td>Key Wrap and Key Wrap with Padding</h:td>
        <h:td>SP 800-38F</h:td>
        <h:td>No IV</h:td>
      </h:tr>
      <h:tr>
        <h:td>Counter with CBC-Message Authentication Code (CCM)</h:td>
        <h:td>SP 800-38C</h:td>
        <h:td>No IV. Nonces shall be non-repeating.</h:td>
      </h:tr>
      <h:tr>
        <h:td>Galois Counter Mode (GCM)</h:td>
        <h:td>SP 800-38D</h:td>
        <h:td>IV shall be non-repeating. The number of invocations of GCM shall not exceed
          $2^{32}$ for a given secret key unless an implementation only uses 96-bit IVs (default
          length).</h:td>
      </h:tr> </h:table>
  </appendix>
  <!-- ToDo: Remove per bio cPP module: <appendix id="biometric" title="Biometric Derivation and Examples">
    <section id="biometric1" title="Experimental Setups And Error Bars In Testing FAR And FRR">
      <sec:sub1 title="Introduction"> For the purposes of this PP, FIA_BMG_EXT.1
		requires testing for FAR, FRR and SAFAR if a BAF is included in
        the TOE. In this version of the PP it is expected that the vendor will provide evidence to
        the evaluator of the testing completed to support the claimed FAR and FRR. This Appendix
        provides a guide to how this testing could be done and to what error bars are expected when
        the Rule of 3 is applied. This guide should be treated as a reference and not as a NIAP
        mandate, requirement, or set of mandates or requirements. <h:br/><h:br/>
      </sec:sub1>
      <sec:sub2 title="Testing environment that could meet FIA_BMG_EXT.1.1"> In
        performing tests for FAR and FRR, ISO/IEC 19795-1 recommends that vendors or testing labs
        use the largest test population that can be reasonably managed. Generally, testing
        environments for mobile devices are based upon individual devices with their own local
        authentication templates/profiles where the submitted biometric samples are destroyed after
        submission. It is infeasible to meet the given time frame for CC evaluations of mobile
        devices if offline testing is not supported. Either online or offline testing is acceptable.
        The number of test subjects needed to support a claimed FAR and FRR, will depend on if
        online or offline testing is used due to how the subjects are compared. <h:br/><h:br/>
        If online testing is utilized, it is expected that the testing is conducted directly on the
        TOE. The legitimate user will enroll on the TOE and all test subjects will be compared to
        only the legitimate user. Thus if the target FAR is 1:100, at least 300 independent samples
        shall be used corresponding to 300 users and at least 300 independent trials are required in
        testing this FAR. It is acceptable that multiple TOEs, each with a different legitimate
        user, could be used to reduce the number of test subjects needed for online testing. With
        the assumption that the test subjects are compared against all legitimate users and no
        legitimate users are counted as test subjects, if <h:i>N<h:sub>D</h:sub></h:i>
        devices are used, the number of test subjects needed can be divided by
            <h:i>N<h:sub>D</h:sub></h:i>. <h:br/><h:br/> If offline testing is used, it
        is expected that the biometric system used for testing will not be in the evaluated
        configuration of the TOE to allow for a full cross-comparison, in which the biometric sample
        from the test subjects is compared with every non-self template. It is expected, that the
        biometric system used for testing will collect samples and generate templates exactly the
        same as the biometric system in the TOE. However, even though the comparison to determine if
        a valid sample is provided (i.e., matching algorithm) should remain the same, it is
        acceptable if the biometric system is modified to complete a full cross-comparison. Per
        ISO/IEC 19795, these comparisons will not be statistically independent, but this approach is
        statistically unbiased. Additionally, offline testing with a full cross-comparison greatly
        reduces the number of test subjects needed. If there are
          <h:i>N<h:sub>U</h:sub></h:i> users, the number of available individual independent
        comparisons will be <h:i>N<h:sub>U</h:sub>*(N<h:sub>U</h:sub>-1)/2</h:i>. Thus
        if the target FAR is 1:10000, only 246 test subjects are needed if offline testing of a full
        cross-comparison is used. <h:br/><h:br/>
      </sec:sub2>
      <sec:sub3 title="Deriving False Accept Rate"> To expedite approval while
        maintaining a statistically valid result, it is required for the vendor or independent lab
        to perform testing using <h:i>three</h:i> times the sample size, at a minimum, i.e., the
        "Rule of 3" for the number of trials. <h:br/><h:br/> Three times the sample size
        corresponds to 90% confidence and <h:i>c</h:i> = 0.95 (rounded, worst-case), where
          <h:i>c</h:i> is a percentage/fraction of the intended false error rate (either FAR or
        FRR) for which the error bar is calculated. <h:br/><h:br/> The parameters associated
        with the Rule of 3 are derived by treating a biometric test, consisting of many comparisons,
        as a series of Bernoulli trials. <h:br/><h:br/> As shown in the tables below, the error
        bar may be large if a higher false error rate is declared. <h:br/><h:br/> The table
        below assumes online testing using a single device, thus a single legitimate user. <h:br/><h:br/>
        <ctr id="biotable1" ctr-type="Table">: Comparison of false error rates, number of errors,
          and number of test subjects needed for online testing, given Rule of 3</ctr>
        <h:table>
          <h:tr class="header"><h:td>False Error Rate</h:td><h:td>False error rates, 90%
              confidence, <h:i>c</h:i> = 0.95</h:td><h:td>Number of errors
              (rounded)</h:td><h:td>Number of test subjects needed</h:td></h:tr>
          <h:tr><h:td>1% (1:100)</h:td><h:td>1% ± 0.95%
              </h:td><h:td>3</h:td><h:td>297</h:td></h:tr>
          <h:tr><h:td>0.1% (1:1000)</h:td><h:td>0.1% ±
              0.095%</h:td><h:td>3</h:td><h:td>2995</h:td></h:tr>
          <h:tr><h:td>0.01% (1:10000)</h:td><h:td>0.01% ±
              0.0095%</h:td><h:td>3</h:td><h:td>29977</h:td></h:tr>
          <h:tr><h:td>0.001% (1:100000)</h:td><h:td>0.001% ±
              0.00095%</h:td><h:td>3</h:td><h:td>299797</h:td></h:tr>
          <h:tr><h:td>0.0001% (1:1000000)</h:td><h:td>0.0001% ±
              0.000095%</h:td><h:td>3</h:td><h:td>2997998</h:td></h:tr>
        </h:table>
        <h:br/><h:br/> The table below assumes that <h:i>N<h:sub>D</h:sub></h:i> devices
        are used for online testing. <h:br/><h:br/>
        <ctr id="biotable2" ctr-type="Table">: Comparison of false error rates, number of errors,
          and number of test subjects needed for online testing with
            <h:i>N<h:sub>D</h:sub></h:i> devices, given Rule of 3</ctr>
        <h:table>
          <h:tr class="header"><h:td>False Error Rate</h:td><h:td>False error rates, 90%
              confidence, <h:i>c</h:i> = 0.95</h:td><h:td>Number of errors
              (rounded)</h:td><h:td>Number of test subjects needed</h:td></h:tr>
          <h:tr><h:td>1% (1:100)</h:td><h:td>1% ± 0.95%
                  </h:td><h:td>3</h:td><h:td>297/<h:i>N<h:sub>D</h:sub></h:i></h:td></h:tr>
          <h:tr><h:td>0.1% (1:1000)</h:td><h:td>0.1% ±
                  0.095%</h:td><h:td>3</h:td><h:td>2995/<h:i>N<h:sub>D</h:sub></h:i></h:td></h:tr>
          <h:tr><h:td>0.01% (1:10000)</h:td><h:td>0.01% ±
                  0.0095%</h:td><h:td>3</h:td><h:td>29977/<h:i>N<h:sub>D</h:sub></h:i></h:td></h:tr>
          <h:tr><h:td>0.001% (1:100000)</h:td><h:td>0.001% ±
              0.00095%</h:td><h:td>3</h:td><h:td>299797/<h:i>N<h:sub>D</h:sub></h:i></h:td></h:tr>
          <h:tr><h:td>0.0001% (1:1000000)</h:td><h:td>0.0001% ±
              0.000095%</h:td><h:td>3</h:td><h:td>2997998/<h:i>N<h:sub>D</h:sub></h:i></h:td></h:tr>
        </h:table>
        <h:br/><h:br/> The table below assumes offline testing using a full cross-comparison. <h:br/><h:br/>
        <ctr id="biotable3" ctr-type="Table">: Comparison of false error rates, number of errors,
          and number of test subjects needed for offline testing and full cross-comparison, given
          Rule of 3</ctr>
        <h:table>
          <h:tr class="header"><h:td>False Error Rate</h:td><h:td>False error rates, 90%
              confidence, <h:i>c</h:i> = 0.95</h:td><h:td>Number of errors
              (rounded)</h:td><h:td>Number of test subjects needed</h:td></h:tr>
          <h:tr><h:td>1% (1:100)</h:td><h:td>1% ± 0.95%
              </h:td><h:td>3</h:td><h:td>25</h:td></h:tr>
          <h:tr><h:td>0.1% (1:1000)</h:td><h:td>0.1% ±
              0.095%</h:td><h:td>3</h:td><h:td>78</h:td></h:tr>
          <h:tr><h:td>0.01% (1:10000)</h:td><h:td>0.01% ±
              0.0095%</h:td><h:td>3</h:td><h:td>246</h:td></h:tr>
          <h:tr><h:td>0.001% (1:100000)</h:td><h:td>0.001% ±
              0.00095%</h:td><h:td>3</h:td><h:td>776</h:td></h:tr>
          <h:tr><h:td>0.0001% (1:1000000)</h:td><h:td>0.0001% ±
              0.000095%</h:td><h:td>3</h:td><h:td>2450</h:td></h:tr>
        </h:table>
        <h:br/><h:br/>
      </sec:sub3>
      <sec:Deriving_False_Reject_Rate> As with False Accept Rate, it is
        required for the vendor or lab to perform testing using <h:i>three</h:i> times the
        sample size, at a minimum, i.e., the "Rule of 3". Three times the sample size corresponds to
        90% confidence and <h:i>c</h:i> = 0.95 (rounded, worst-case), where <h:i>c</h:i> is
        a percentage/fraction of the intended false error rate (either FAR or FRR) for which the
        error bar is calculated. <h:br/><h:br/> As shown in the table below, the error bar may
        be large if a higher false error rate is declared: <h:br/><h:br/>
        <ctr id="biotable4" ctr-type="Table">: Comparison of false error rates, number of errors,
          and number of test subjects needed, given Rule of 3</ctr>
        <h:table>
          <h:tr class="header"><h:td>False Error Rate</h:td><h:td>False error rates, 90%
              confidence, <h:i>c</h:i> = 0.95</h:td><h:td>Number of errors
              (rounded)</h:td><h:td>Number of test subjects needed</h:td></h:tr>
          <h:tr><h:td>10% (1:10)</h:td><h:td>10% ± 9.5%
              </h:td><h:td>3</h:td><h:td>27</h:td></h:tr>
          <h:tr><h:td>5% (1:20)</h:td><h:td>5% ±
              4.75%</h:td><h:td>3</h:td><h:td>57</h:td></h:tr>
          <h:tr><h:td>2% (1:50)</h:td><h:td>2% ±
              1.9%</h:td><h:td>3</h:td><h:td>147</h:td></h:tr>
          <h:tr><h:td>1% (1:100)</h:td><h:td>1% ±
              0.95%</h:td><h:td>3</h:td><h:td>297</h:td></h:tr>
        </h:table>
        <h:br/><h:br/>
      </sec:Deriving_False_Reject_Rate>
    </section>
    <section id="biometric2" title="Derivation of the Rule of 3 (and similar rules, for completeness)"> 
      A biometric test
      can be treated as a series of Bernoulli trials for which a binomial distribution of the number
      of successes and failures is assumed. When calculating an error interval for which a binomial
      distribution is assumed, one confidence interval (denoted
        <h:i>I<h:sub>conf</h:sub></h:i>) that is widely used is the standard Wald interval,
      expressed in Equation (1) as: <h:br/><h:br/>
      $$\left(p-z_{α/2}&#x221a;\frac{p\left(1-p\right)}{n}\right)&#x2264;I_{conf}&#x2264;
      \left(p+z_{α/2}&#x221a;\frac{p\left(1-p\right)}{n}\right)\quad\quad(1)$$ 
      <h:br/><h:br/>
      where <h:i>p = X/n</h:i> is the sample proportion of successes (or error in this case),
          <h:i>z<h:sub>α/2</h:sub></h:i> is the 100(1 – α/2)th percentile of the standard
      normal distribution, and <h:i>n</h:i> is the number of trials. <h:br/><h:br/> Although
      intervals such as the Wilson, Agresti-Coull, and Jeffreys intervals are recommended by Brown
      et al., biometrics testing in practice rests on the derivation of the Rule of 30 based on the
      Wald distribution <xref to="Brown"/>. However, because of the large sample size, number
      of test subjects, and number of trials required for the Rule of 30, this PP mandates the Rule
      of 3 to make testing more feasible. <h:br/><h:br/> In simpler form, this refers to a
      confidence interval with error <h:i>E</h:i> expressed as: <h:br/><h:br/>
      $$E=z_{α/2}&#x221a;\frac{p\left(1-p\right)}{n}\quad\quad(2)$$ <h:br/><h:br/> Rearranging
      the equation to express the number of trials, <h:i>n</h:i>, in terms of error
        <h:i>E</h:i>, this expression becomes: <h:br/><h:br/>
      $$n=\left(\frac{z_{α/2}}{E}\right)^2p\left(1-p\right)\quad\quad(3)$$ <h:br/><h:br/> In
      practice, <h:i>E</h:i> is expressed as a proportion of the error probability as:
      <h:br/><h:br/> $$E = cp\quad\quad(4)$$ <h:br/><h:br/> Thus, <h:i>n</h:i> finally
      becomes: <h:br/><h:br/>
      $$n=\left(\frac{z_{α/2}}{c}\right)^2\frac{\left(1-p\right)}{p}\quad\quad(5)$$
      <h:br/><h:br/> For a 90% confidence interval, <h:i>z<h:sub>α/2</h:sub></h:i> =
      1.6449, while for a 95% confidence interval, <h:i>z<h:sub>α/2</h:sub></h:i> = 1.96.
      <h:br/><h:br/> Thus it is easy to see that for a 90% confidence interval with
        <h:i>c</h:i> = 0.95: <h:br/><h:br/> $$\left ( \frac{1.6449}{0.95}\right )^{2}= 2.998
      &#x2248; 3\quad\quad(6)$$ <h:br/><h:br/> which confirms the rule of 3 and completes our
      derivation. </section>
    <section id="biometric3" title="SAFAR Calculation Equations"> A number of equations can be used
      in calculating SAFAR. A fully-worked example that applies the equations below can be found in
        <xref to="biometric4"/>. <h:br/><h:br/> The SAFAR for a single authentication
      factor is calculated as $SAFAR=1-\left(1-FAR\right)^{attempts allowed}$. <h:br/><h:br/>
      Thus let <h:i>SAFAR<h:sub>i</h:sub></h:i> be the SAFAR for the
          <h:i>i<h:sup>th</h:sup></h:i> authentication factor where
          <h:i>n<h:sub>i</h:sub></h:i> is the number of authentication attempts allowed for
      the given factor, treated individually as a separate authentication system, which can be
      expressed as <h:br/><h:br/> $$SAFAR_i=1-\left(1-FAR_i\right)^{ni},\quad\quad (1)$$
      <h:br/><h:br/> assuming each attempt is independent. <h:br/><h:br/> If multiple
      authentication factors are required (with all to pass), i.e., password plus biometric factor,
      the SAFAR for a single attempt will be the product of each individual factor’s false accept
      rate, assuming each attempt is independent. <h:br/><h:br/> Thus, for a hybrid combination
      of <h:i>m</h:i> PIN/password and biometric factors (denoted with index <h:i>j</h:i>)
      with <h:i>n<h:sub>i</h:sub></h:i> attempts allowed, treated collectively as an
      individual authentication factor in a separate authentication system, the SAFAR can be
      expressed as: <h:br/><h:br/>
      $$SAFAR_i=1-\left(1-&#x220f;^m_{j=1}FAR_j\right)^{ni},\quad\quad (2)$$ <h:br/> assuming each
      attempt is independent. Because this is currently associated with a PIN/password and
      biometrics, <h:i>m</h:i> = 2 in this case. <h:br/><h:br/> When ordered, let
          <h:i>SAFAR<h:sub>(k)</h:sub></h:i> be the SAFAR for the authentication factor with
      the largest SAFAR, and <h:i>SAFAR<h:sub>(1)</h:sub></h:i> be the SAFAR for the
      authentication factor with the smallest SAFAR, i.e., <h:i>SAFAR<h:sub>(1)</h:sub></h:i>
      ≤ <h:i>SAFAR<h:sub>s</h:sub></h:i> ≤ … ≤
        <h:i>SAFAR<h:sub>(k-1)</h:sub></h:i> ≤ <h:i>SAFAR<h:sub>(k)</h:sub></h:i>.
      <h:br/><h:br/> As such, the following equations for SAFAR utilizing multiple factors
      follow (using the worst SAFARs): <h:br/><h:br/> If the user has a choice of multiple
      authentication factors with a choice of only one authentication factor in a given session
      (i.e., all authentication factors are considered critical and a user cannot switch between
      authentication factors), the overall SAFAR will be equal to
        <h:i>SAFAR<h:sub>(k)</h:sub></h:i>, assuming each attempt is independent.
      <h:br/><h:br/> If the user has a choice of multiple authentication factors and can choose
      to attempt authentication using more than one factor with success requiring any factor to pass
      and <h:i>n<h:sub>i</h:sub></h:i> attempts allowed per factor) for a given session, the
      SAFAR for <h:i>k</h:i> available authentication factors will be <h:br/><h:br/>
      $$SAFAR_{any}=1-&#x220f;^k_{i=1}\left(1-SAFAR_i\right)\quad\quad (3)$$ <h:br/> assuming each
      attempt is independent. If there are <h:i>critical factors</h:i>, the highest SAFAR
      corresponding to the <h:i>worst-case</h:i> set of choices shall be reported.
      <h:br/><h:br/> If the user has the choice of a number of authentication factors from which
      the user must choose <h:i>m</h:i> factors, all of which must pass with <h:i>n</h:i>
      attempts per factor allowed, the SAFAR for a single combination of <h:i>m</h:i> factors
      will be <h:br/><h:br/> $$SAFAR_{m factors}=&#x220f;^m_{i=1}\left(SAFAR_i\right)\quad\quad
      (4)$$ <h:br/><h:br/> assuming each attempt is independent. If <h:i>m &lt; k</h:i>
      available factors, the worst-case of all $\left(^k_m\right)$ combinations of factors becomes
      the overall SAFAR. </section>
    <section id="biometric4" title="SAFAR Calculation Example">
      <h:i>Password and fingerprint authentication example:</h:i>
      <h:br/><h:br/> Suppose the overall authentication system consists of two authentication
      factors: a four character password factor allowing for ten attempts and a fingerprint
      biometric factor with an FAR of 1:1000 allowing for five attempts. <h:br/><h:br/>
      Passwords utilize the minimum character set of 63 characters, plus one additional accepted
      character, making it 64. Assume each attempt is independent. <h:br/><h:br/>
      <h:ol type="a">
        <h:li>What is the SAFAR of each individual authentication factor, treated
          separately?</h:li>
        <h:li>If the user can only authenticate using a single authentication factor, assuming all
          authentication factors available are critical and there is no possibility for the user to
          switch between authentication factors, what is the overall SAFAR?</h:li>
        <h:li>If the user can authenticate using any authentication factor in an authentication
          session, and none are considered critical factors, what is the overall SAFAR?</h:li>
        <h:li>If the conditions are the same as in c) but password is now a
            <h:i>critical</h:i> authentication factor that will cause a device wipe, what is the
          overall SAFAR?</h:li>
        <h:li>If the password factor and fingerprint biometric factor are both required with the
          number of attempts for fingerprint increased to ten, what is the overall SAFAR? What is
          the risk if authentication feedback is provided for each modality (i.e., fingerprint failed
          or password failed)?</h:li>
        <h:li>f) If the password/PIN factor and fingerprint biometric factor are both combined
          into a hybrid factor (both must be used and the only authentication feedback allowed is
          valid login or invalid login) for entry with ten attempts allowed for the hybrid factor,
          what is the overall SAFAR? Why is this scenario more secure than e)?</h:li>
      </h:ol>
      <h:br/>
      <h:i>Solution:</h:i>
      <h:br/><h:br/>
      <h:ol type="a">
        <h:li>The SAFAR for a four-character password allowing for ten attempts, utilizing a 64
          character set, is: <h:br/><h:br/> $$SAFAR_{\left(password|10 attempts\right)} = 1 -
          \left(1 - Character set ^{length}\right)^{attempts allowed}$$ $$SAFAR_{\left(password|10
          attempts\right)} = 1 - \left(1 - 64 ^{4}\right)^{10}=5.960 * 10^{-7}
          \left(rounded\right)$$ <h:br/> The SAFAR for a fingerprint biometric factor with an FAR
          of 1:1000, allowing for five attempts, is: <h:br/><h:br/> $$SAFAR_{\left(fingerprint|5
          attempts\right)} = 1 - \left(1 - FAR \right)^{attempts}$$ $$SAFAR_{\left(fingerprint|5
          attempts\right)} = 1 - \left(1 - 10 ^{-3}\right)^{5}=4.990 * 10^{-3}
          \left(rounded\right)$$ <h:br/>
        </h:li>
        <h:li> If the user is only allowed to pick one factor, the overall SAFAR is that of the
          weakest one, which is <h:br/><h:br/> $$SAFAR_{\left(fingerprint|5 attempts\right)} =
          4.990 * 10^{-3}$$ <h:br/>
        </h:li>
        <h:li> If the user can authenticate using any authentication factor in an authentication
          session, the overall SAFAR is:<h:br/><h:br/> $$SAFAR_{any} = 1 - \left(1 - \left(5.96
          * 10^{-7}\right)\right) * \left(1-\left(4.99 * 10 ^{-3}\right)\right)$$ $$= 4.991 * 10{-3}
          (rounded)$$ <h:br/>
        </h:li>
        <h:li> If the conditions are the same as in c) but with password as a critical factor, the
          worst-case scenario is the same as in c) in that the password factor is picked last, thus
          <h:br/><h:br/> $$SAFAR_{any password critical} = 4.991* 10^{-3} \left(rounded\right)$$
          <h:br/>
        </h:li>
        <h:li> If password and fingerprint are now required factors, the SAFAR for fingerprint has
          to be recalculated for ten attempts: <h:br/><h:br/> $$SAFAR_{fingerprint|10 attempts}
          = 1 - \left(1-10^{-3}\right)^{10} = 9.955 * 10 ^{-3} \left(rounded\right)$$
          <h:br/><h:br/> Since the SAFAR for password with ten attempts allowed is known, it
          then follows that: <h:br/><h:br/> $$SAFAR_{fingerprint+password} =
          \left(5.960*10^{-7}\right) * \left(9.955*10^{-3}\right) = 5.933 * 10^{-9}
          \left(rounded\right)$$ <h:br/> The risk of providing authentication feedback is that if
          either authentication factor is compromised, the same sample can then be used by the
          adversary for every authentication after, thus reducing the SAFAR for the system to that
          of the other authentication factor. <h:br/><h:br/>
        </h:li>
        <h:li> If password/PIN and fingerprint are now combined into a single hybrid factor, the
          SAFAR is as follows: <h:br/><h:br/> $$SAFAR_{fingerprint+password|10 attempts} = 1 -
          \left(1-2^{-6*4}*10^{-3}\right)^{10}$$ $$=5.960 * 10 ^{-10} \left(rounded\right)$$
          <h:br/> This is more secure than e) because not only are there less attempts overall
          before the maximum count is exceeded (10 instead of 20), the adversary would not know if a
          sample submitted for either factor results in authentication unless the presentation of
          both factors results in successful authentication. </h:li>
      </h:ol>
    </section>
  </appendix> -->
  
  <appendix id="ack" title="Acknowledgments"><after_bib/>
    This protection profile was developed by the Mobility Technical Community with representatives from industry, U.S. Government agencies, Common Criteria Test Laboratories, and international Common Criteria schemes. The National Information Assurance Partnership wishes to acknowledge and thank the members of this group whose dedicated efforts contributed significantly to the publication. These organizations include: <h:br/>
<h:br/>
 <h:b>U.S. Government</h:b><h:br/>
 Defense Information Systems Agency (DISA)<h:br/>
 CyberSecurity Directorate (CSD)<h:br/>
 National Information Assurance Partnership (NIAP)<h:br/>
 National Institute of Standards and Technology (NIST)<h:br/>
 <h:br/>
 <h:b>International Common Criteria Schemes</h:b><h:br/>
 Australian Information Security Evaluation Program (AISEP)<h:br/>
 Canadian Common Criteria Evaluation and Certification Scheme (CSEC)<h:br/>
 Information-technology Promotion Agency, Japan (IPA)<h:br/>
 UK IT Security Evaluation and Certificate Scheme (NCSC)<h:br/>
 <h:br/>
 <h:b>Industry</h:b><h:br/>
 Apple, Inc.<h:br/>
 BlackBerry<h:br/>
 Google, LLC<h:br/>
 LG Electronics, Inc.<h:br/>
 Microsoft Corporation<h:br/>
 Motorola Solutions<h:br/>
 Samsung Electronics Co., Ltd.<h:br/>
 Other Members of the Mobility Technical Community<h:br/>
 <h:br/>
 <h:b>Common Criteria Test Laboratories</h:b><h:br/>
 EWA-Canada, Ltd.<h:br/>
 Gossamer Security Solutions<h:br/>
 
  </appendix>

  <bibliography>
    <cc-entry/>
    <entry id="bibCCerrata">
      <tag>Errata</tag>
      <description>
        <h:a href="https://www.commoncriteriaportal.org/files/ccfiles/CCMB-2025-001-v1_2-Errata_Interpretation_CC_CEM_2022.pdf">Errata and Interpretation for CC:2022 (Release 1) and CEM:2022 (Release 1)</h:a>, Version 1.2
      </description>
    </entry>
    <entry id="bibOMB">
      <tag>OMB</tag>
      <description>
        <h:a href="http://www.whitehouse.gov/sites/default/files/omb/memoranda/fy2006/m06-19.pdf">Reporting Incidents Involving Personally Identifiable Information and Incorporating the Cost for Security in Agency Information Technology Investments</h:a>, OMB M-06-19, July 12, 2006. </description>
    </entry>   
    
  </bibliography>
 
</PP>
