<PP xmlns="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="MDM" target-products="MDMs">
    
  <PPReference>
    <ReferenceTable>
      <PPTitle>Protection Profile for Mobile Device Management</PPTitle>
      <PPVersion>5.0-Draft</PPVersion>
      <PPAuthor>National Information Assurance Partnership</PPAuthor>
      <PPPubDate>2026-03-24</PPPubDate>
      <Keywords>Mobile Device Management; MDM</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-02-07</date>
      <subject>Typographical changes and clarifications to front-matter</subject>
    </entry>
    <entry>
      <version>2.0</version>
      <date>2014-12-31</date>
      <subject>Separation of MDM agent SFRs<h:br/>Updated cryptography, protocol, X.509
        requirements.<h:br/> Updated management functions to match MDF PP v2.0.<h:br/> Included SSH as
        a remote administration protocol.<h:br/> Removed IPsec as protocol to communicate to MDM
        agent.<h:br/> Added X509 enrollment objective requirement.<h:br/> Added Optional Mobile
        Application Store requirements. </subject>
    </entry>
    <entry>
      <version>3.0</version>
      <date>2016-11-21</date>
      <subject>Updates to align with Technical Decisions<h:br/>
        Added requirements to support BYOD use case
        <h:br/>
        Removed IPsec and SSH requirements, which are now contained in
        EPs</subject>
    </entry>
    <entry>
      <version>4.0</version>
      <date>2018-09-24</date>
      <subject>
        Updates to align with Technical Decisions<h:br/>
        Removed platform dependency<h:br/>
        Removed TLS SFRs and use the TLS Functional Package<h:br/>
        Allowed for a distributed TOE
      </subject>
    </entry>
    <entry>
      <version>5.0</version>
      <date>2026-03-24</date>
      <subject>
        Updates to align with Technical Decisions<h:br/>
        Updates to align with CC:2022<h:br/>
        Updates to support subordinate MDM<h:br/>
        Updates to reference TLS and X.509 functional packages<h:br/>
        Updates cryptographic requirements to mandate CNSA algorithms<h:br/>
        Re-labeling of SFRs for naming consistency<h:br/>
        <h:br/>        
      </subject>
    </entry>
  </RevisionHistory>
  
  <release-notes><h:h3>TDs Applied</h:h3></release-notes><include-pkg id="ssh">
    <git>
      <url>https://github.com/commoncriteria/ssh</url>
      <branch>release-2.0</branch>
    </git>
    <url>https://commoncriteria.github.io/ssh/release-2.0/ssh-release.html</url>

  </include-pkg>
  
  <include-pkg id="tls">
    <git>
      <url>https://github.com/commoncriteria/tls</url>
      <branch>release-2.1</branch>
    </git>
    <url>https://commoncriteria.github.io/tls/release-2.1/tls-release.html</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>
  </modules>
      <pp-preferences>
        <audit-events-in-sfrs/>
    </pp-preferences>

    

	<!-- 1.0 Introduction -->
	<section id="int" title="Introduction">
	
		<!-- 1.1. Overview -->
		<section id="ov" title="Overview"> 
			Mobile Device Management (MDM) products allow enterprises to apply security policies to managed devices (MDs), such as smartphones, tablets, and workstations. The purpose of 
			these policies is to establish a security posture adequate to permit MDs to process enterprise data and connect to enterprise network
			resources.<h:br/><h:br/> 
			This document provides a baseline set of Security Functional Requirements (SFRs) for an MDM system, which is the Target of Evaluation (TOE). The MDM 
			system is only one component of an enterprise deployment of MDs. Other components, such as the MD platforms, which enforce 
			the security policies and network access control servers are out of scope. 
		</section>
		
		<!-- 1.2 Terms -->
		<!-- 1.2.1 Common Criteria Terms (auto-generated) -->
		<!-- 1.2.2 Technical Terms -->
		<tech-terms>
			<term full="Administrator">The person who is responsible for management activities, including setting the 
				policy that is applied by the enterprise on the MD.</term>
			<term full="API Application Programming Interface " abbr="API">A specification of routines, data structures,
				object classes, and variables that allows an application to make use of services provided by another
				software component, such as a library. APIs are often provided for a set of libraries included with 
				the platform.</term>
		  <term abbr="CNSA" full="Commercial National Security Algorithm Suite"/>
			<term full="Data">Program or application or data files that are stored or transmitted by a server or MD.</term>
			<term full="Data Encryption Key" abbr="DEK">A key used to encrypt data-at-rest.</term>
			<term full="Developer Modes">States in which additional services are available to a user in order to
				provide enhanced system access for debugging of	software.</term>
			<term full="Enrolled State">The state in which a MD is administered and configured by a policy from an MDM.</term>
			<term full="Enterprise Applications">Applications that are provided and managed by the enterprise as
				opposed to a public application store.</term>
			<term full="Enterprise Data">Any data residing in enterprise servers or temporarily stored on MDs to which the MD user is allowed access according to the security policy defined by 
				the enterprise and implemented by the administrator. </term>
			<term full="Enrollment over Secure Transport" abbr="EST">Cryptographic protocol that describes an X.509 
				certificate management protocol targeting public key infrastructure (PKI) clients that need to acquire
				client certificates and associated certificate authority (CA) certificates.</term>
			<term full="Key Encryption Key" abbr="KEK">A key that is used to encrypt other keys,
				such as DEKs or storage repositories that contain keys. </term>
			<term full="Locked State">Device state where the device is powered
				on but most functionality is unavailable for use without authentication.</term>
      <term full="Managed Device" abbr="MD">A device enrolled and managed, or to be enrolled and managed, by an MDM system. This device is a mobile device typically evaluated under PP_MDF or a device with a manageable general-purpose operating system typically evaluated under PP_GPOS.</term>
      <term full="Mobile Application Store" abbr="MAS">An MDM feature that allows for an organization to substitute a device manufacturer's
            application store for one that restricts what applications are made available to users.</term>
			<term full="Mobile Device">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 connection, and VoIP (Voice over IP), for access
				to the protected enterprise network, enterprise data and applications, and for communicating to other MDs.</term>        
			<term full="Mobile Device Management" abbr="MDM">Products that allow enterprises to apply security policies to MDs. This system consists of two primary
				components: the MDM server and the MDM agent.</term>
			<term full="Managed Device User">The person who uses and is held responsible for an MD. </term>
			<term full="Operating System" abbr="OS">Software which 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 cellular
				baseband processor and one which runs on the application processor. The platform of the
				application processor handles most user interaction and provides the execution
				environment for apps. The platform 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 platform of the
				application processor. </term>
			<term full="Powered-Off State">MD shutdown state.</term>
			<term full="Protected Data">All non-TSF data on the MD,
				including user or enterprise data. Protected data is encrypted while the MD
				is in the powered-off state. This includes keys in software-based storage. May overlap
				with sensitive data. </term>
			<term full="Root Encryption Key" abbr="REK">A key tied to a particular device that
				is used to encrypt all other keys for that device. </term>
			<term full="Sensitive Data">Data that is encrypted by the MD.
				May include all user or enterprise data or may be data for specific applications such as
				emails, messaging, documents, calendar items, or contacts. May be protected while the
				MD is in the locked state. Must include at minimum some keys in
				software-based key storage. </term>
      <term full="Subordinate MDM Server">The subordinate MDM server is used to facilitate communications between a primary MDM server and an MDM agent on a managed device. The subordinate MDM server may modify/interpret the MDM policy sent from the primary MDM server to the MDM agent, using well-defined rules, and re-sign the resulting MDM policy for delivery to the MDM agent.</term>
			<term full="Trust Anchor Database">A list of trusted root Certificate Authority certificates. </term>
			<term full="Unenrolled State">Device state when it is not managed by an MDM.</term>
			<term full="Unlocked State">Device state where it is powered on and the user has been authenticated. The device functionality is available for use by the user.</term>       
		</tech-terms>
	  
		<!-- 1.3 Compliant Targets of Evaluation -->
		<section id="cte" title="Compliant Targets of Evaluation">
			The Mobile Device Management (MDM) system consists of two primary components: the MDM server software and the MDM agent. Optionally, the MDM system may
			consist of a separate Mobile Application Store (MAS) server or a subordinate MDM server. 
			
			<!-- 1.3.1 TOE Boundary -->
			<section id="tb" title="TOE Boundary">
        <h:p>
        The MDM system operational environment consists of the MD on which the MDM agent resides, the platform on which the MDM server runs, and an untrusted wireless network over which they communicate, as pictured below.
        </h:p>
				<h:p>
				<figure entity="images/MDMSystem.png" title="MDM System Operating Environment" id="agentoperatingenvironment"/>
        </h:p>
        <h:p>
				The <h:b>MDM server</h:b> is software (an application, service, etc.) on a general-purpose platform, a network device, or cloud architecture executing in a trusted network environment. The MDM server provides administration of MD policies and reporting on the device behavior. The MDM server is responsible for managing device enrollment, configuring and sending policies to the MDM agents, collecting reports on device status, and sending commands to the agents. The MDM server may be standalone or distributed, where a distributed TOE is one that requires multiple distinct components to operate as a logical whole in order to fulfill the requirements of this PP (a more extensive description of distributed MDMs is given in section 3).
        </h:p>
        <h:p> 
				The <h:b>MDM agent</h:b> establishes a secure connection back to the MDM server controlled by an enterprise administrator and configures the MD per the administrator's policies. The MDM agent is addressed in the <xref to="mod-mdmagent"/>. If the MDM agent is installed on a MD as an application developed by the MDM developer, the PP-Module extends this PP and is included in the TOE. In this case the TOE security functionality specified in this PP must be addressed by the MDM agent in addition to the MDM Server, additionally the TOE can be considered distributed. Otherwise, the MDM agent is provided by the MD vendor and is out of scope of this PP; however, MDMs are required to indicate the device platforms supported by the MDM server and must be tested against the native MDM agent of those platforms.
        </h:p>
        <h:p>
				The <h:b>Mobile Application Store (MAS)</h:b> hosts applications for the enterprise, authenticates agents, and securely transmits applications to enrolled MDs. The MAS functionality can be included as part of the MDM server Software or can be logically
				distinct. If the MAS functionality is on a physically separate server, then the TOE is distributed with the MDM server and MAS server being separate components.
        </h:p>
        <h:p>
        The <h:b>Subordinate MDM Server</h:b> is an optional, physically separate, server that sits between a primary MDM server and an MDM agent on a managed device. The purpose of the subordinate MDM server is to forward signed policies from a primary MDM server to an MDM agent on a managed device for which the subordinate MDM is responsible. The subordinate MDM server can either directly pass these signed policies to the managed device, or can interpret the policy into a different format if necessary. This interpretation process will follow well defined rules to ensure that the resulting interpreted policy matches the actions defined in the original policy. This interpreted policy is signed by the subordinate MDM server for delivery to the MDM agent. Any alerts or notifications generated by an MDM agent will be passed by the subordinate MDM server back to the primary MDM server to alert the enterprise administrators. The subordinate MDM server and primary MDM servers are two separate TOE's and would be evaluated independently of each-other, they do not form a distributed TOE. 
        </h:p>
        <h:p>
        <figure entity="images/SubordinateMDMSystem.png" title="MDM System with Subordinate MDM" id="subordinateMDMDiagram"/>
        </h:p>
			</section>
		</section>
	
		<!-- 1.4 Use Cases -->
		<section id="usec" title="Use Cases"> This PP defines four use cases:<h:br/>
			<usecases>
				<usecase title="Enterprise-owned device for general-purpose enterprise use" id="uc1">
					<description><h:p>An enterprise-owned device for general-purpose business use is commonly
						called Corporate-Owned, Personally-Enabled (COPE). This use case entails a significant
						degree of enterprise control over configuration and software inventory. Enterprise
						administrators use an MDM product to establish policies on the MDs prior to user issuance. Users may use internet connectivity to browse the web, access corporate mail, or run enterprise 
						applications, but this connectivity may be under
						significant control of the enterprise. The user may also be expected to store data and
						use applications for personal, non-enterprise use. The enterprise administrator uses the
						MDM product to deploy security policies and query MD
						status. The MDM may issue commands for remediation
						actions.</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>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf32"/> (configuration of radios)</h:td>
					      <h:td>Include in ST and assign GPS.</h:td>
					    </h:tr>
					    <!--
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 34 (configuration of device server functions)</h:td>
          <h:td>Include in ST. Assign personal hotspot connections (if feature
            exists).</h:td>
        </h:tr>
        -->
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf47"/> (configuration of unlock banner policy)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf49"/> (configuration of USB functions)</h:td>
					      <h:td>Include in ST and select "USB mass storage mode."</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf51"/> (configuration of tethering)</h:td>
					      <h:td>Include in ST. Select both options.</h:td>
					    </h:tr>
              <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf60"/> (configuration of wireless network bridging capability (e.g. hotspot))</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>
				</usecase>
				<usecase title="Enterprise-owned device for specialized, high-security use" id="uc2">
					<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. As in the previous use case, the MDM
						product is used to establish such policies on MDs prior to issuance to users. 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 require compliance with usage policies that are more restrictive than
						those in any general-purpose use case, yet may mitigate risks to highly sensitive
						information.
					</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>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf15"/> (removal of X.509 certificates from trust anchor database)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf16"/> (alert the user)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf31"/> (configuration of VPN policy)</h:td>
					      <h:td>Include in ST and select "no other method."</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf32"/> (configuration of radios)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf33"/> (configuration of data signaling over external hardware)</h:td>
					      <h:td>Include in ST. Assign at least USB.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf34"/> (configuration of device server functions)</h:td>
					      <h:td>Include in ST. Assign all protocols where the device acts as a server.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf36"/> (policy for data-at-rest protection)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf37"/> (policy for removable media data-at-rest protection)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf40"/> (notifications in the locked state)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf42"/> (configuration of cellular protocols)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf47"/> (configuration of unlock banner policy)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf52"/> (configuration of location services)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf54"/> (configuration of always-on VPN)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_SERVER Function 'b.2' (configuration of X.509 behavior when revocation status is unknown)</h:td>
					      <h:td>Include in ST.</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_SERVER Function 'b.3' (configuration of the TOE unlock banner)</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>
				</usecase>
				<usecase title="Personally-owned device for personal and enterprise use" id="uc3">
					<description><h:p>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.</h:p><h:p> 
						However, because the enterprise allows the user full (or nearly full)
						access to the enterprise network, the enterprise will require certain security policies,
						for example a password or screen lock policy and health reporting, such as the
						integrity of the MD system software, before allowing access. The
						administrator of the MDM can establish remediation actions, such as
						wipe of the enterprise data, for non-compliant devices. 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 MD. </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>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf13"/> (remove enterprise applications)</h:td>
					      <h:td>Include in ST</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf14"/> (wipe enterprise data)</h:td>
					      <h:td>Include in ST</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf21"/> (approve exceptions for sharing data)</h:td>
					      <h:td>Include in ST</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf22"/> (place applications into groups)</h:td>
					      <h:td>Include in ST</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf30"/> (configuration of audio and visual collection devices)</h:td>
					      <h:td>Select "on a per-app basis," "on a per-group of application processes basis," or both</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf31"/> (configuration of VPN policy)</h:td>
					      <h:td>If included in ST, select "on a per-app basis," "on a per-group of application processes basis," or both</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf49"/> (configuration of USB storage)</h:td>
					      <h:td>Include in ST</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function <xref to="smf52"/> (configuration of location services)</h:td>
					      <h:td>If included in ST, select "on a per-app basis," "on a per-group of application processes basis," or both</h:td>
					    </h:tr>
					    <h:tr>
					      <h:td>FMT_SMF.1/SERVER_CONF_SERVER Function 'b.5' (configuration of privacy-sensitive information collected from devices)</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>
				</usecase>
				<usecase title="Personally-owned device for personal and limited enterprise use" id="uc4">
					<description>
					  <h:p>A personally-owned device may also be given access to limited enterprise services such as enterprise email. The enterprise may not
						need to enforce any security policies on this device because the user does not have full access to the enterprise or enterprise data.
						However, the enterprise may want secure email and web browsing with assurance that the services being provided to those clients by the
						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>
		</section>
    <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="X509">
          <usage id="usage-x509-verify-required" title="Certificate Verification Required in FIA_XCU_EXT.1.1">
            <description>The ST author shall select the option to verify identities in certificates in FIA_XCU_EXT.1.1. If the TOE implements a certificate authority, the ST author shall select the option to assert identities in certificates.</description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-nosmime-cert-profile" title="Restrictions on Certificate Functions in FDP_CER_EXT.1.1/OLTLeaf">
            <description>
              This usage requirement applies only if the TOE implements a certificate authority. The PP does not define S/MIME functionality, therefore the ST author shall not select the option to implement a certificate profile supporting this protocol.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-nosmime-cert-eku" title="Restrictions on Certificate Functions in FDP_CER_EXT.1.2/OLTLeaf">
            <description>
              This usage requirement applies only if the TOE implements a certificate authority. The PP does not define S/MIME functionality, therefore the ST author shall not select the option to set extendedKeyUsage bits for email protection.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-status-gen-required" title="Generation of Certificate Status Required in FDP_CSIR_EXT.1.1">
            <description>
              This usage requirement applies only if the TOE implements a certificate authority. The ST author shall only select the option to generate certificate status information in FDP_CSIR_EXT.1.1.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config> 
          </usage>
          <usage id="usage-x509-ocsp-sigalgs" title="Restrictions on Signature Algorithms in FDP_OCSP_EXT.1.1">
            <description>
              This usage requirement applies only if the TOE implements a certificate authority. The TOE must use CNSA-compliant signature algorithms. Thus, the ST author shall not select the use of SHA-512 or secp521 for OCSP response signatures.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-distributed-iterations" title="Required Iteration Names for FIA_X509_EXT.1">
            <description>
              A TOE may utilize FIA_X509_EXT.1 as defined in the package in two different manners in this PP. Use of the requirement for validating X.509 certificates presented from outside the TOE boundary shall be iterated as FIA_X509_EXT.1/External. 
              Use of the requirement for validating X.509 certificates presented between components of a distributed TOE shall be iterated as FIA_X509_EXT.1/Internal. 
            </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>
              This usage requirement applies to both internal and external iterations of FIA_X509_EXT.1. The TOE must use CNSA-compliant signature algorithms. Thus, the ST author shall select no other algorithms outside of those specified in RFC 8603 for certificate or CRL signatures. 
              Additionally, the TOE shall not use ECDSA with SHA-512 signatures for OCSP responses, and shall 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>
              This usage requirement applies to both internal and external iterations of FIA_X509_EXT.1. 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="Restrictions on Revocation Functionality for FIA_X509_EXT.1.3">
            <description>
              This usage requirement applies in different manners to the different iterations of FIA_X509_EXT.1. <h:br/>
              For the external iteration of FIA_X509_EXT.1, the ST author shall select only from options involving CRL or OCSP in FIA_X509_EXT.1.3. <h:br/>
              For the internal iteration of FIA_X509_EXT.1, the ST author shall not select the option to validate certificate revocation status by validity period. Other selections may be selected without restriction.
            </description> 
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
          <usage id="usage-x509-revocation-connections" title="Restrictions on Revocation Information Retrieval for FIA_X509_EXT.1.4">
            <description>
              This usage requirement applies in different manners to the different iterations of FIA_X509_EXT.1. <h:br/>
              For the external iteration of FIA_X509_EXT.1, the ST author shall not select to not obtain revocation status information for any reason, utilize local revocation information or utilize a network connection directly to a CA. Revocation information must be 
              retrieved via an option involving CRL or OCSP. <h:br/>
              For the internal iteration of FIA_X509_EXT.1, the ST author shall not select the option to determine that the certificate expires within a certain period.
            </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>
              This usage requirement applies to both internal and external iterations of FIA_X509_EXT.1. 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. The ST author shall additionally not select the option to validate certificates against any rules for S/MIME.
            </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 utilize the S/MIME protocol.
            </description>
            <config>
              <ref-id>dummy-ref-id</ref-id>
            </config>
          </usage>
        </package-usage>

      </package-usage-list>
    </section>
	  
	  <section title="Product Features Mapped to Implementation-dependent Requirements" id="sec-features">
	    The features enumerated below, if implemented by the TOE, require that additional SFRs be claimed in the ST.<h:br/>
	    <implements>
	      <feature id="key-encap-support" title="Key Encapsulation 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 a key encapsulation algorithm as part of key establishment. In addition to the SFR referenced here, the corresponding selection for key encapsulation shall be made in FCS_CKM.2.1, which then requires the inclusion of FCS_COP.1/KeyEncap.<h:br/></description>
	      </feature>
	      <feature id="key-wrap-support" title="Key Wrap 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 a key wrap algorithm as part of key establishment. In addition to the SFR referenced here, the corresponding selection for key wrapping shall be made in FCS_CKM.2.1, which then requires the inclusion of FCS_COP.1/KeyWrap.<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>	
	  
	</section>
  
	<!-- 2. Conformance Claims -->
	<section title="Conformance Claims" id="ccl" boilerplate="no">
	  <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>conformant</cc-pt3-conf>
	    <cc-pp-conf/>
	    <cc-pp-config-with>
	    <!--  <PP-cc-ref>Protection Profile for Mobile Device Fundamentals, Version 4.0</PP-cc-ref> -->
	      <PP-cc-ref>Protection Profile for Application Software, Version 2.0</PP-cc-ref>
	      <Mod-cc-ref>PP-Module for MDM Agent, Version 2.0</Mod-cc-ref>
	      <Mod-cc-ref>PP-Module for VPN Client, Version 3.0</Mod-cc-ref>
	    </cc-pp-config-with>
	    <cc-pkg-claim>
          <FP-cc-ref conf="conformant">Functional Package for Secure Shell Version 2.0</FP-cc-ref>
          <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>	  
	</section>

	<!-- Introduction to Distributed TOEs -->
	<section title="Introduction to Distributed TOEs" id="idt">
		This PP includes support for distributed MDM TOEs. MDMs can sometimes be composed of multiple components operating as a logical whole. Frequently we
		see this architecture when dealing with products hosted in the cloud and offered as Software as a Service. There are a number of different
		architectures; but fundamentally, they are variations of the following model where the SFRs of this PP can only be fulfilled if the components 
		are deployed and operate together. To be considered a distributed TOE, a minimum of two interconnected components are required.

		<!-- 3.1 Registration of DDistributed TOE Components -->
		<section title="Registration of Distributed TOE Components" id="rcd">
			When dealing with a distributed TOE, a number of separate components need to be brought together in the operational environment in order to create the TOE.
			This requires that trusted communications channels are set up between certain pairs of components (it is assumed that all components need to
			communicate with at least one other component, but not that all components need to communicate with all other components). The underlying model for
			creation of the TOE is to have a "registration process" in which components "join" the TOE. The registration
			process starts with two components, one of which (the "joiner") is about to join an existing TOE by registering with the other
			(the "gatekeeper"). The two components will use one or more specified authentication and communication channel options so that the components
			authenticate each other and protect any sensitive data that is transmitted during the registration process (e.g., a key might be sent by a gatekeeper 
			to the joiner as a result of the registration). The following figures illustrate the three supported registration models. <xref to="DTF1"/> illustrates a
			distributed TOE registration approach which uses an instance of FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT or
			FTP_ITC.1/OE_XFER_IT to protect the registration exchange.<h:br/><h:br/>
			<figure entity="images/DistributedToeFig1.png" pre="Figure " title="Distributed TOE registration using channel satisfying FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT or FTP_ITC.1/OE_XFER_IT" id="DTF1"/>
			<h:br/><h:br/>
			The second approach (<xref to="DTF2"/>) uses an alternative registration channel and supports use cases where the channel relies on environmental security
			constraints to provide the necessary protection of the registration exchange.<h:br/><h:br/>
			<figure entity="images/DistributedToeFig2.png" pre="Figure " title="Distributed TOE registration using channel satisfying FTP_TRP.1/TRUSTPATH_JOIN" id="DTF2"/>
			<h:br/><h:br/>
			The final approach (<xref to="DTF3"/>) supports use cases where registration is performed manually through direct configuration of both the Joiner and Gatekeeper 
			devices. Once configured, the two components establish an internal TSF channel that satisfies
			FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT or FTP_ITC.1/OE_XFER_IT.<h:br/><h:br/>
			<figure entity="images/DistributedToeFig3.png" pre="Figure " title="Distributed TOE registration without a registration channel" id="DTF3"/>
			<h:br/><h:br/>
			In each case, during the registration process, the administrator must positively enable the joining components before it can act as part of the TSF.
			<xref to="DTF4"/> illustrates the approaches that this enablement step may take;<h:br/><h:br/>
			<figure entity="images/DistributedToeFig4.png" pre="Figure " title="Joiner enablement options for Distributed TOEs" id="DTF4"/>
			<h:br/><h:br/>
			Note that in the case where no registration channel is required, that is the joiner and gatekeeper are directly configured (<xref to="DTF3"/>), enablement is
			implied as part of this direct configuration process.<h:br/><h:br/>
			After registration, the components will communicate between themselves using a normal SSH, TLS, DTLS, IPsec, or HTTPS channel (which is specified in an ST as 
			an instance of FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT or FTP_ITC.1/OE_XFER_IT in
			terms of <xref to="req"/> <!--Section 6--> and <xref g="t-audit-optional"/> <!--Appendix A-->). This channel for
			inter-component communications is specified at the top level with the new (extended) SFR FCO_CPC_EXT.1 and is in addition to the other communication 
			channels required for communication with entities outside the TOE (which are specified in an ST as instances of FTP_ITC.1/OE_XFER_IT and 
			FTP_TRP.1/TRUSTPATH_REM_ADMIN. 
		</section>
	
		<!-- 3.2 Allocation of Requirements in Distributed TOEs -->
		<section title="Allocation of Requirements in Distributed TOEs" id="ard">
			For a distributed TOE, the security functional requirements in this PP need to be met by the TOE as a whole, but not all SFRs will necessarily be 
			implemented by all components. The following categories are defined in order to specify when each SFR must be implemented by a component:<h:br/>
			<h:ul>
				<h:li><h:b>All Components ("All")</h:b> - All components that comprise the distributed TOE must independently satisfy the requirement.</h:li>
				<h:li><h:b>At least one Component ("One")</h:b> - This requirement must be fulfilled by at least one component within the distributed TOE.</h:li>
				<h:li><h:b>Feature Dependent ("Feature Dependent")</h:b> - These requirements will only be fulfilled where the feature is implemented by the
				distributed TOE component (note that the requirement to meet the PP as a whole requires that at least one component implements these
				requirements if they are specified in <xref to="req"/>).</h:li>
			</h:ul>
			<xref to="distTOE"/> specifies how each of the SFRs in this PP must be met, using the categories above.
			<h:br/><h:br/>
			<h:b><ctr ctr-type="Table" pre="Table " id="distTOE">: Security Functional Requirements for Distributed TOEs</ctr></h:b>
			<h:table>
				<h:tr>
					<h:td><h:b>Requirement</h:b></h:td>
					<h:td><h:b>Description</h:b></h:td>
					<h:td><h:b>Distributed TOE SFR Allocation</h:b></h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_ALT_EXT.1</h:td>
					<h:td>Server Alerts</h:td>
					<h:td>One</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_CRP_EXT.1</h:td>
					<h:td>Support for Compliance Reporting of MD Configuration</h:td>
					<h:td>One</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_GEN.1/AUDITGEN</h:td>
					<h:td>Audit Data Generation</h:td>
					<h:td>All</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_GEN.1/MAS_SERVER</h:td>
					<h:td>Audit Data Generation</h:td>
					<h:td>Feature Dependent</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_NET_EXT.1</h:td>
					<h:td>Network Reachability Review</h:td>
					<h:td>One</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_SAR.1</h:td>
					<h:td>Audit Review</h:td>
					<h:td>Feature Dependent</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_SEL.1</h:td>
					<h:td>Security Audit Event Selection</h:td>
					<h:td>One</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_STG.1</h:td>
					<h:td>External Trail Storage</h:td>
					<h:td>All</h:td>
				</h:tr>
				<h:tr>
					<h:td>FAU_STG.2</h:td>
					<h:td>Audit Event Storage</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FCO_CPC_EXT.1</h:td>
					<h:td>Communication Partner Control</h:td>
					<h:td>All</h:td> 
				</h:tr> 
				<h:tr>
					<h:td>FCS_CKM.1/AKG</h:td>
				  <h:td>Cryptographic Key Generation - Asymmetric Key</h:td>
					<h:td>All</h:td> <!-- Changed to account for Agent -->
				</h:tr>
			  <h:tr>
			    <h:td>FCS_CKM.1/SKG</h:td>
			    <h:td>Cryptographic Key Generation - Symmetric Key</h:td>
			    <h:td>All</h:td> <!-- Changed to account for Agent -->
			  </h:tr>
				<h:tr>
					<h:td>FCS_CKM.2</h:td>
					<h:td>Cryptographic Key Establishment</h:td>
					<h:td>All</h:td> <!-- Good, Needed for Agent -->
				</h:tr> 
				<h:tr>
					<h:td>FCS_CKM.6</h:td>
					<h:td>Cryptographic Key Destruction</h:td>
					<h:td>All</h:td> <!-- Good, Needed for Agent -->
				</h:tr>	
			  <h:tr>
			    <h:td>FCS_CKM_EXT.7</h:td>
			    <h:td>Cryptographic Key Agreement</h:td>
			    <h:td>Feature Dependent</h:td> <!-- Good, Needed for Agent -->
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_COP.1/AEAD</h:td>
			    <h:td>Cryptographic Operation - Authenticated Encryption with Associated Data</h:td>
			    <h:td>All</h:td> <!-- Good, Needed for Agent -->
			  </h:tr> 
				<h:tr>
					<h:td>FCS_COP.1/Hash</h:td>
					<h:td>Cryptographic Operation - Hashing</h:td>
					<h:td>All</h:td> <!-- Good, Needed for Agent -->
				</h:tr> 
				<h:tr>
				  <h:td>FCS_COP.1/KeyedHash</h:td>
					<h:td>Cryptographic Operation - Keyed Hash</h:td>
					<h:td>All</h:td> <!-- Good, Needed for Agent -->
				</h:tr>
			  <h:tr>
			    <h:td>FCS_COP.1/KeyEncap</h:td>
			    <h:td>Cryptographic Operation - Key Encapsulation</h:td>
			    <h:td>Feature Dependent</h:td> <!-- Good, Needed for Agent -->
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_COP.1/KeyWrap</h:td>
			    <h:td>Cryptographic Operation - Key Wrapping</h:td>
			    <h:td>Feature Dependent</h:td> <!-- Good, Needed for Agent -->
			  </h:tr>
			  <h:tr>
					<h:td>FCS_COP.1/SigGen</h:td>
					<h:td>Cryptographic Operation - Signature Generation</h:td>
					<h:td>All</h:td> <!-- Good, Needed for Agent -->
				</h:tr>
			  <h:tr>
			    <h:td>FCS_COP.1/SigVer</h:td>
			    <h:td>Cryptographic Operation - Signature Verification</h:td>
			    <h:td>All</h:td> <!-- Good, Needed for Agent -->
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_COP.1/SKC</h:td>
			    <h:td>Cryptographic Operation - Encryption/Decryption</h:td>
			    <h:td>All</h:td> <!-- Good, Needed for Agent -->
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_COP.1/XOF</h:td>
			    <h:td>Cryptographic Operation - Extendable-Output Function</h:td>
			    <h:td>Feature Dependent</h:td> <!-- Good, Needed for Agent -->
			  </h:tr>
				<h:tr>
					<h:td>FCS_HTTPS_EXT.1</h:td>
					<h:td>HTTPS Protocol</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr> 
				<!--> 
				  <h:tr>
					<h:td>FCS_IPSEC_EXT.1</h:td>
					<h:td>IPsec Protocol</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr> 
				<-->
				<!-->
				<h:tr>
					<h:td>FCS_SSHC_EXT.1</h:td>
					<h:td>SSH Client</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<-->
				<!-->
				<h:tr>
					<h:td>FCS_SSHS_EXT.1</h:td>
					<h:td>SSH Server</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<-->
				<h:tr>
					<h:td>FCS_IV_EXT.1</h:td>
					<h:td>Initialization Vector Generation</h:td>
					<h:td>Feature Dependent</h:td>
				</h:tr>				
			  <h:tr>
			    <h:td>FCS_RBG.1</h:td>
			    <h:td>Random Bit Generation (RBG)</h:td>
			    <h:td>All</h:td>
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_RBG.2</h:td>
			    <h:td>Random Bit Generation (External Seeding)</h:td>
			    <h:td>Feature Dependent</h:td>
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_RBG.3</h:td>
			     <h:td>Random Bit Generation (Internal Seeding - Single Source)</h:td>
			    <h:td>Feature Dependent</h:td>			   
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_RBG.4</h:td>
			    <h:td>Random Bit Generation (Internal Seeding - Multiple Sources)</h:td>
			    <h:td>Feature Dependent</h:td>
			  </h:tr>
			  <h:tr>
			    <h:td>FCS_RBG.5</h:td>
			    <h:td>Random Bit Generation (Combining Entropy Sources)</h:td>
			    <h:td>Feature Dependent</h:td>			    
			  </h:tr>
			  <h:tr>
					<h:td>FCS_STG_EXT.1</h:td>
					<h:td>Cryptographic Key Storage</h:td>
					<h:td>All</h:td>
				</h:tr>
				<h:tr>
					<h:td>FCS_STG_EXT.2</h:td>
					<h:td>Encrypted Cryptographic Key Storage</h:td>
					<h:td>Feature Dependent</h:td>
				</h:tr>
				<h:tr>
					<h:td>FIA_CLI_EXT.1</h:td>
					<h:td>Client Authorization</h:td>
					<h:td>One</h:td>
				</h:tr>
			  <h:tr>
					<h:td>FIA_ENR_EXT.1</h:td>
					<h:td>Enrollment</h:td>
					<h:td>One</h:td>
				</h:tr>
			  <h:tr>
			    <h:td>FIA_TOK_EXT.1</h:td>
			    <h:td>Client Tokens</h:td>
			    <h:td>One</h:td>
			  </h:tr>
			  <h:tr>
					<h:td>FIA_UAU.1</h:td>
					<h:td>Timing of Authentication</h:td>
					<h:td>One</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FIA_UAU.4/ENROLLMENT</h:td>
				  <h:td>Single-Use Authentication Mechanisms</h:td>
					<h:td>One</h:td>
				</h:tr>
		
   
				<h:tr>
					<h:td>FMT_MOF.1/FUNCBE</h:td>
					<h:td>Management of functions Behavior</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FMT_MOF.1/MANAGEMENT_ENROLL</h:td>
					<h:td>Management of functions Behavior (Enrollment)</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FMT_MOF.1/MANAGEMENT_MAS</h:td>
					<h:td>Management of Functions Behavior (MAS Server Downloads)</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FMT_POL_EXT.1</h:td>
					<h:td>Trusted Policy Update</h:td>
					<h:td>One</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FMT_SAE_EXT.1</h:td>
					<h:td>Security Attribute Expiration</h:td>
					<h:td>One</h:td> 
				</h:tr>      
								<h:tr>
					<h:td>FMT_SMF.1/MAS</h:td>
					<h:td>Specification of Management Functions (MAS Server)</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
			  <h:tr>
					<h:td>FMT_SMF.1/SERVER_CONF_AGENT</h:td>
					<h:td>Specification of Management Functions (Server configuration of Agent)</h:td>
					<h:td>One</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FMT_SMF.1/SERVER_CONF_SERVER</h:td>
					<h:td>Specification of Management Functions (Server configuration of Server)</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>  
				<h:tr>
					<h:td>FMT_SMR.1/SECMAN_ROLES</h:td>
					<h:td>Security Management Roles</h:td>
					<h:td>One</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FMT_SMR.1/SECMAN_ROLES_MAS</h:td>
					<h:td>Security Management Roles (MAS Server)</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FPT_API_EXT.1</h:td>
					<h:td>Use of Supported Services and APIs</h:td>
					<h:td>All</h:td> 
				</h:tr>
			  <h:tr>
			    <h:td>FPT_FLS.1</h:td>
			    <h:td>Failure with Preservation of Secure State</h:td>
			    <h:td>Feature Dependent</h:td>
			  </h:tr>
				<h:tr>
					<h:td>FPT_ITT.1/INTRA_XFER</h:td>
					<h:td>Internal TOE TSF Data Transfer</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FPT_ITT.1/INTRA_XFER_AGENT</h:td>
					<h:td>Internal TOE TSF Data Transfer (MDM Agent)</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FPT_LIB_EXT.1</h:td>
					<h:td>Use of Third-Party Libraries</h:td>
					<h:td>All</h:td> 
				</h:tr>
			  <h:tr>
			    <h:td>FPT_TDC.1/Policy</h:td>
			    <h:td>Inter-TSF Basic TSF Data Consistency</h:td>
			    <h:td>Feature Dependent</h:td>
			  </h:tr>
			  <h:tr>
			    <h:td>FPT_TST.1</h:td>
			    <h:td>TSF Self-Testing</h:td>
			    <h:td>Feature Dependent</h:td>
			  </h:tr>
			  <h:tr>
					<h:td>FPT_TST_EXT.1</h:td>
					<h:td>Functionality Testing</h:td>
					<h:td>All (except for agent components)</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FPT_TUD_EXT.1</h:td>
					<h:td>Trusted Update</h:td>
					<h:td>All</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FTA_TAB.1</h:td>
					<h:td>Default TOE Access Banners</h:td>
					<h:td>One</h:td> 
				</h:tr> 
				<h:tr>
					<h:td>FTP_ITC.1/OE_XFER_AGENT</h:td>
					<h:td>Inter-TSF Trusted Channel (MDM Agent)</h:td>
					<h:td>One</h:td> 
				</h:tr>
			  <h:tr>
					<h:td>FTP_ITC.1/OE_XFER_IT</h:td>
					<h:td>Inter-TSF Trusted Channel (Authorized IT Entities)</h:td>
					<h:td>One</h:td> 
				</h:tr>
				<h:tr>
					<h:td>FTP_ITC_EXT.1</h:td>
					<h:td>Trusted Channel</h:td>
					<h:td>One</h:td> 
				</h:tr> 
				<h:tr>
					<h:td>FTP_TRP.1/TRUSTPATH_ENROLL</h:td>
					<h:td>Trusted Path (Enrollment)</h:td>
					<h:td>Feature Dependent</h:td> <!-- Changed because Agent also needs to do this. -->
				</h:tr>
			  <h:tr>
					<h:td>FTP_TRP.1/TRUSTPATH_JOIN</h:td>
					<h:td>Trusted Path (Joining)</h:td>
					<h:td>Feature Dependent</h:td> 
				</h:tr> 
			  <h:tr>
					<h:td>FTP_TRP.1/TRUSTPATH_REM_ADMIN</h:td>
					<h:td>Trusted Path (Remote Administration)</h:td>
					<h:td>Feature Dependent</h:td> <!-- Both MDM and MAS could allow for remote admin -->
				</h:tr>				    
			</h:table>
			<h:br/>
			Only those SFRs included in the ST are required to be audited. The ST for a distributed TOE must include a mapping of SFRs to each of the components 
			of the TOE. (Note that this deliverable is examined as part of the ASE_TSS.1 and AVA_VAN.1 Evaluation Activities.) The ST for a distributed TOE 
			may also introduce a "minimum configuration" and identify components that may have instances added to an operational configuration without affecting 
			the validity of the CC certification. <xref to="EACDT"/> describes Evaluation Activities relating to these equivalency aspects of a distributed TOE (and
			hence what is expected in the ST). 
		</section>
		
		<section id="dis" title="Security Audit for Distributed TOEs">
			<h:br/>
            For distributed TOEs, the handling of audit information might be more complicated than for TOEs consisting only of one component.
			There are a few basic requirements to be fulfilled:<h:br/><h:br/>
              <h:ul>
                <h:li>Every component must be able to generate audit information.</h:li>
                <h:li>Every component must be able to buffer audit information and forward it to another TOE component or an external audit server. Optionally,
			each component may store audit information locally.</h:li>
                <h:li>For the overall TOE it must be possible to send out audit information to an external audit server.</h:li>
              </h:ul><h:br/>              
			In general, every component must be able to generate its own audit information. It would be possible that every component also stores its own audit 
	      information locally as well as every component could be able to send out audit data to an external audit server. It would also be sufficient that
	      every component would be able to generate its own audit data and buffer it locally before the information is sent out to one or more other 
	      TOE components for local storage or transmission to an external audit server. For the transfer of audit records between TOE components 
	      the secure connection via FTP_ITC.1/OE_XFER_IT or FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT  must be used.<h:br/><h:br/>
              
              Such a solution would still be suitable to fulfill the requirement that all audit-related SFRs have to be fulfilled by all TOE components,
	      although formally not every component would support local storage or transfer to an external audit server itself.<h:br/><h:br/>
              
              Regarding the establishment of inter-TOE communication, error conditions as well as successful connection and tear-down events should be captured
	      by both ends of the connection.<h:br/><h:br/>

		All TOE components shall be able to generate its own audit data according to the audit data generation requirements (FAU_GEN.1/AUDITGEN and, if MAS server functionality is supported, FAU_GEN.1/MAS_SERVER) for all SFRs that it implements. For distributed 
	      TOEs, a mapping shall be provided to show which auditable events according to these requirements are covered by which components (also giving a
	      justification that the records generated by each component cover all the SFRs that it implements). The overall TOE has to provide audit 
	      information about all events defined for the audit generation requirements. As a result, at least one TOE component has to be assigned to every auditable event
	      defined in these requirements. The part of the mapping related to <xref g="t-audit-mandatory"/> shall be consistent with the mapping of SFRs to 
	      TOE components for ASE_TSS.1 in the sense that all components defined as generating audit information for a particular SFR should also contribute 
	      to that SFR in the mapping for ASE_TSS.1. This applies not only to audit events defined for mandatory SFRs but also to all audit events for 
	      optional, selection-based, and objective SFRs as defined in <xref g="t-audit-optional"/>,
		  <xref g="t-audit-objective"/>, and <xref g="t-audit-sel-based"/>.<h:br/><h:br/>
              
		If one or more of the optional audit components FAU_STG.1 or FAU_STG.2 are selected in the ST derived from this PP, then the SFR
	      mapping for ASE_TSS.1 must include a specific identification of the TOE components to which they apply.
      </section>
	</section>
	
	<!-- 4. Security Problem Description -->
  <sec:Security_Problem_Definition>
	
		<!-- 4.2 Threats -->
		<sec:Threats>
			<threats>
				<threat name="T.MALICIOUS_APPS">
					<description>Malicious or flawed application threats exist because apps loaded onto an
						MD may include malicious or exploitable code. An administrator of the MDM or MD user
						may inadvertently import malicious code, or an attacker may insert malicious code into the TOE, resulting in the
						compromise of TOE or TOE data.</description>
				  
				  <addressed-by>FAU_ALT_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by generating an alert if application of a policy fails, as this may indicate that a mechanism used to prevent the execution of malicious apps was not able to be enforced.</rationale>
				  <addressed-by>FAU_CRP_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by allowing MDs to report on their configuration status so it can be determined whether they have any unauthorized (and potentially malicious) apps installed.</rationale>
				  <addressed-by>FAU_NET_EXT.1</addressed-by><rationale>A conformant TOE mitigates this threat by providing network status information so that an inaccessible MD can be flagged as potentially non-conformant to an MDM policy (and therefore potentially subject to the threat of executing malicious apps)</rationale>
				  <addressed-by>FCS_COP.1/Hash</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by implementing cryptographic algorithms which may be used to verify the integrity of apps (if the TOE includes its own MAS).</rationale>				  
				  <addressed-by>FCS_COP.1/SigGen</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by generating asymmetric cryptographic keys to protect data in transit.</rationale>
				  <addressed-by>FCS_COP.1/SigVer</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by implementing cryptographic algorithms which may be used to verify the authenticity of apps (if the TOE includes its own MAS).</rationale>
				  <addressed-by>FIA_ENR_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by providing a means to enroll MDs into management, where policies prohibiting the installation of potential malicious apps can be enforced.</rationale>
				  <addressed-by>FMT_POL_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by providing signed policy updates that can prohibit the execution of potentially malicious apps.</rationale>
				  <addressed-by>FMT_MOF.1/FUNCBE</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by implementing mechanisms to control the apps that can be installed on an enrolled MD.</rationale>
				  <addressed-by>FMT_SMF.1/SERVER_CONF_AGENT</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by implementing mechanisms to control the apps that can be installed on an enrolled MD.</rationale>
				  <addressed-by>FTP_ITC_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by communicating its policy data to enrolled MDs securely over a trusted channel.</rationale>
				  <addressed-by>FIA_UAU.4/ENROLLMENT (objective)</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by limiting reuse of authentication credentials used to enroll MDs to provide assurance that MDs are properly enrolled into management.</rationale>
				  <addressed-by>FMT_SAE_EXT.1 (objective)</addressed-by><rationale>A conformant TOE mitigates the threat of malicious apps by limiting the validity period of an enrollment request to provide assurance that MDs are properly enrolled into management.</rationale>
				  <addressed-by>FIA_TOK_EXT.1 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threats of malicious apps by providing a mechanism to securely enroll a unique MD into management.</rationale>
				  <addressed-by>FMT_MOF.1/MANAGEMENT_MAS (selection-based)</addressed-by><rationale>A conformant TOE may mitigate the threat of malicious apps by implementing a MAS server that limits the apps that can be installed on enrolled MDs to those hosted by the TOE.</rationale>
				  <addressed-by>FMT_SMF.1/MAS (selection-based)</addressed-by><rationale>A conformant TOE may mitigate the threat of malicious apps by implementing a MAS server that limits the apps that can be installed on enrolled MDs to those hosted by the TOE.</rationale>
				  
				</threat>
				<threat name="T.NETWORK_ATTACK">
					<description>An attacker may masquerade as an MDM server and attempt to
						compromise the integrity of the MD by sending malicious management commands.</description>
				  
				  <addressed-by>FAU_GEN.1/AUDITGEN</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by generating audit records of activity which may indicate attempts of such attacks.</rationale>
				  <addressed-by>FAU_STG.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by retaining audit records of activity which may indicate attempts of such attacks.</rationale>
				  <addressed-by>FCS_CKM.1/AKG</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by ensuring the generation of strong asymmetric keys used for trusted communications.</rationale>
				  <addressed-by>FCS_CKM.1/SKG</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by ensuring the generation of strong symmetric keys used for trusted communications.</rationale>
				  <addressed-by>FCS_CKM.2</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing secure key establishment functions that prevent impersonation of the TOE.</rationale>
				  <addressed-by>FCS_CKM.6</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by securely destroying cryptographic keys to prevent their malicious reuse.</rationale>				  
				  <addressed-by>FCS_COP.1/AEAD</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by enforcing the use of secure authenticated encryption algorithms when wireless functionality is implemented by the TOE.</rationale>				  
				  <addressed-by>FCS_COP.1/Hash</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing hash algorithms to maintain integrity of data in transit.</rationale>
				  <addressed-by>FCS_COP.1/KeyedHash</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing HMAC algorithms to maintain authenticity and integrity of data in transit.</rationale>
				  <addressed-by>FCS_COP.1/KeyEncap</addressed-by><rationale>A conformant TOE mitigates the threat of a network attack by using a secure key encapsulation method to transmit a symmetric key to a third party as part of key establishment for trusted communications.</rationale>
				  <addressed-by>FCS_COP.1/KeyWrap</addressed-by><rationale>A conformant TOE mitigates the threat of a network attack by using a secure key wrap method to distribute key material to a third party for use in trusted communications.</rationale>
				  <addressed-by>FCS_COP.1/SigGen</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by generating strong asymmetric cryptographic keys to protect data in	transit.</rationale>
				  <addressed-by>FCS_COP.1/SigVer</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by generating strong symmetric cryptographic keys to protect data in	transit.</rationale>
				  <addressed-by>FCS_COP.1/SKC</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing encryption algorithms to maintain confidentiality of data in transit.</rationale>
				  <addressed-by>FCS_RBG.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a cryptographically strong DRBG to ensure generation of strong cryptographic keys.</rationale>
				  <addressed-by>FCS_STG_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing protected storage for secret and private keys that must be stored persistently for use in trusted communications and in proving the authenticity of policy information.</rationale>
				  <addressed-by>FIA_CLI_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a mechanism to ensure that the MD being enrolled is genuine.</rationale>
				  <addressed-by>FIA_ENR_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a mechanism to ensure that the MD is enrolled via a trusted channel.</rationale>
				  <addressed-by>FMT_POL_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a mechanism to ensure the authenticity of policies issued by the TOE.</rationale>
				  
				  
				  <addressed-by>FTP_ITC.1/OE_XFER_IT</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a mechanism to protect data in transit between the TOE and external IT entities that support its operation.</rationale>
				  <addressed-by>FTP_ITC_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by specifying the channels over which data in transit is protected.</rationale>
				  <addressed-by>FTP_TRP.1/TRUSTPATH_ENROLL</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a trusted path for enrollment of MDs.</rationale>
				  <addressed-by>FTP_TRP.1/TRUSTPATH_REM_ADMIN</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a trusted path for remote administration.</rationale>
				  <addressed-by>FAU_SAR.1 (optional)</addressed-by><rationale>A conformant TOE may mitigate the threat of network attack by implementing a mechanism within the TOE boundary to review audit data that may indicate attempted network attacks.</rationale>
				  <addressed-by>FAU_SEL.1 (optional)</addressed-by><rationale>A conformant TOE may mitigate the threat of network attack by implementing a mechanism to specify the events that are audited by the TOE, which could include activities suggestive of a potential network attack.</rationale>
				  <addressed-by>FCO_CPC_EXT.1 (objective)</addressed-by><rationale>A conformant TOE may mitigate the threat of network attack by implementing a mechanism to register distributed TOE components so that individual endpoints are protected against impersonation.</rationale>
				  <addressed-by>FTP_TRP.1/TRUSTPATH_JOIN (objective)</addressed-by><rationale>A conformant TOE may mitigate the threat of network attack by implementing a mechanism to securely join distributed TOE components to one another using a trusted path.</rationale>
				  <addressed-by>FAU_STG.2 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by preventing unauthorized modification of locally stored audit records of activity which may indicate attempts of such attacks.</rationale>
				  <addressed-by>FCS_COP.1/XOF (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of a network attack by supporting extendable output function implementations that are dependencies of some secure key generation and signature verification algorithms.</rationale>
				  <addressed-by>FCS_HTTPS_EXT.1 (selection-based)</addressed-by><rationale>A conformant TOE may mitigate the threat of network attack by implementing the HTTPS protocol to protect data in transit.</rationale>
				  <addressed-by>FCS_IV_EXT.1 (selection-based)</addressed-by><rationale>A conformant TOE may mitigate the threat of network attack by implementing functionality for appropriate IV generation based on the encryption algorithms it supports.</rationale>
				  <addressed-by>FCS_RBG.2 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_RBG.3 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_RBG.4 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_RBG.5 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_STG_EXT.2 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by using a particular method to protect persistently stored key data used for network communications.</rationale>
				  <addressed-by>FPT_FLS.1 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a mechanism to fail into a secure state if it cannot generate strong random numbers.</rationale>
				  <addressed-by>FPT_ITT.1/INTRA_XFER (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a protected channel to protect data in transit between separate parts of the TOE.</rationale>
				  <addressed-by>FPT_ITT.1/INTRA_XFER_AGENT (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a protected channel to protect data in transit between separate parts of the TOE, specifically in the case where an MDM agent is also part of the TOE.</rationale>
				  
				  <addressed-by>FPT_TST.1 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a mechanism to self-test its ability to generate strong random numbers.</rationale>				  
				  
				  <addressed-by>FTP_ITC.1/OE_XFER_AGENT (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a protected channel to protect data in transit between the TOE and an environmental MDM agent.</rationale>
				  <addressed-by>FCS_CKM_EXT.7 (implementation-dependent)</addressed-by><rationale>A conformant TOE mitigates the threat of a network attack by implementing secure methods to perform key agreement for trusted communications.</rationale>
				 
				</threat>
			  
			  
				<threat name="T.NETWORK_EAVESDROP">
					<description>An attacker is positioned on a communications channel or elsewhere on the
						network infrastructure. Attackers may monitor and gain access to data exchanged
						between the MDM server and other endpoints.</description>
				  
				  <addressed-by>FCS_CKM.1/AKG</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing secure key generation functions that prevent impersonation of the TOE.</rationale>
				  <addressed-by>FCS_CKM.1/SKG</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing secure key generation functions that prevent impersonation of the TOE.</rationale>				  
				  <addressed-by>FCS_CKM.2</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing secure key establishment functions that prevent impersonation of the TOE.</rationale>
				  <addressed-by>FCS_CKM.6</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by securely destroying cryptographic keys to prevent their malicious reuse.</rationale>
				  <addressed-by>FCS_COP.1/AEAD</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by enforcing the use of a cryptographic algorithm to protect data in transit that includes assurance of both authenticity and confidentiality.</rationale>				  
				  <addressed-by>FCS_COP.1/KeyEncap</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by using a key encapsulation algorithm to protect data in transit</rationale>
				  <addressed-by>FCS_COP.1/KeyWrap</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by using a key wrap algorithm to protect data in transit.</rationale>
				  <addressed-by>FCS_COP.1/SKC</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing encryption algorithms to maintain confidentiality of data in transit.</rationale>
				  <addressed-by>FCS_RBG.1</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a cryptographically strong DRBG to ensure generation of strong cryptographic keys.</rationale>
				  <addressed-by>FCS_STG_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing protected storage for secret and private keys that must be stored persistently for use in trusted communications and in proving the authenticity of policy information.</rationale>
				  <addressed-by>FIA_ENR_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network attack by implementing a mechanism to ensure that the MD is enrolled via a trusted channel.</rationale>
				  
				  
				  <addressed-by>FTP_ITC.1/OE_XFER_IT</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a mechanism to protect data in transit between the TOE and external IT entities that support its operation.</rationale>
				  <addressed-by>FTP_ITC_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by specifying the channels over which data in transit is protected.</rationale>
				  <addressed-by>FTP_TRP.1/TRUSTPATH_ENROLL</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a trusted path for enrollment of MDs.</rationale>
				  <addressed-by>FTP_TRP.1/TRUSTPATH_REM_ADMIN</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a trusted path for remote administration.</rationale>
				  <addressed-by>FTP_TRP.1/TRUSTPATH_JOIN (objective)</addressed-by><rationale>A conformant TOE may mitigate the threat of network eavesdrop by implementing a mechanism to securely join distributed TOE components to one another using a trusted path.</rationale>
				  
				  <addressed-by>FCS_COP.1/XOF (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by supporting extendable output function implementations that are dependencies of algorithms used for protection of data in transit.</rationale>
				  <addressed-by>FCS_HTTPS_EXT.1 (selection-based)</addressed-by><rationale>A conformant TOE may mitigate the threat of network eavesdrop by implementing the HTTPS protocol to protect data in transit.</rationale>
				  <addressed-by>FCS_IV_EXT.1 (selection-based)</addressed-by><rationale>A conformant TOE may mitigate the threat of network eavesdrop by implementing functionality for appropriate IV generation based on the encryption algorithms it supports.</rationale>
				  <addressed-by>FCS_RBG.2 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_RBG.3 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_RBG.4 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_RBG.5 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by using sufficient entropy data to seed its DRBG to ensure a uniform keyspace of cryptographic key generation.</rationale>
				  <addressed-by>FCS_STG_EXT.2 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by using a particular method to protect persistently stored key data used for network communications.</rationale>

				  <addressed-by>FPT_FLS.1 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a mechanism to fail into a secure state if it cannot generate strong random numbers.</rationale>
				  
				  <addressed-by>FPT_ITT.1/INTRA_XFER (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a protected channel to protect data in transit between separate parts of the TOE.</rationale>
				  <addressed-by>FPT_ITT.1/INTRA_XFER_AGENT (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a protected channel to protect data in transit between separate parts of the TOE, specifically in the case where an MDM agent is also part of the TOE.</rationale>
				  <addressed-by>FPT_TST.1 (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a mechanism to self-test its ability to generate strong random numbers.</rationale>
				  <addressed-by>FTP_ITC.1/OE_XFER_AGENT (selection-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by implementing a protected channel to protect data in transit between the TOE and an environmental MDM agent.</rationale>
				  <addressed-by>FCS_CKM_EXT.7 (implementation-based)</addressed-by><rationale>A conformant TOE mitigates the threat of network eavesdrop by ensuring that a third-party cannot obtain the key used by the TOE to communicate securely with a remote entity.</rationale>
				</threat>
			  
			  
				<threat name="T.PHYSICAL_ACCESS">
					<description>The MD may be lost or stolen, and an unauthorized individual may
						attempt to access user data. Although these attacks are primarily directed against the
						MD platform, the TOE configures features on MDs that mitigate the this threat against them. Therefore, misuse or failure of the TOE may also compromise the MD, exposing it to this threat.
						</description>
				  
				  <addressed-by>FAU_ALT_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by generating an alert when a MD is unable to receive policy information or has its enrollment status altered (e.g., unenrollment may be evidence of physical compromise).</rationale>
				  <addressed-by>FAU_GEN.1/AUDITGEN</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by generating audit records of the management activities performed on the TOE that are applied to that device.</rationale>
				  <addressed-by>FAU_STG.1</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by retaining audit logs that may indicate potential misuse of the TOE to misconfigure a MD.</rationale>
				  <addressed-by>FIA_UAU.1</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by enforcing user authentication on the TOE so that MDs cannot be configured without authorization.</rationale>
				  <addressed-by>FMT_MOF.1/FUNCBE</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by implementing management functions that allow for the TOE to place it into a secure configuration.</rationale>
				  <addressed-by>FMT_MOF.1/MANAGEMENT_ENROLL</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by implementing management functions that allow for the TOE to place it into a secure configuration.</rationale>
				  <addressed-by>FMT_SMF.1/SERVER_CONF_AGENT</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by implementing management functions that allow for the TOE to place it into a secure configuration.</rationale>
				  <addressed-by>FMT_SMF.1/SERVER_CONF_SERVER</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by implementing management functions that allow the TSF to ensure its own secure operation with respect to applying policies.</rationale>
				  <addressed-by>FMT_SMR.1/SECMAN_ROLES</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by implementing roles for its own management that allow the TSF to ensure its own secure operation with respect to applying policies.</rationale>
				  <addressed-by>FPT_API_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by ensuring that the TSF is not subject to compromise through improper API usage.</rationale>
				  <addressed-by>FPT_LIB_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by ensuring that the TSF is not subject to compromise through insecure library usage.</rationale>
				  <addressed-by>FPT_TST_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by ensuring that the TSF performs self-tests to verify its own integrity so that it can be trusted as a management platform.</rationale>
				  <addressed-by>FPT_TUD_EXT.1</addressed-by><rationale>A conformant TOE mitigates the threat of physical access to the MD by ensuring that the TSF uses a trusted update mechanism to verify its own integrity so that it can be trusted as a management platform.</rationale>
				  <addressed-by>FAU_SAR.1 (optional)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by providing a review mechanism for audit records of the management activities performed on the TOE that are applied to that device (to detect potential misconfiguration of the device).</rationale>
				  <addressed-by>FAU_SEL.1 (optional)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by providing a mechanism to specify audit records of the specific management activities performed on the TOE that are applied to that device (to detect potential misconfiguration of the device).</rationale>
				  <addressed-by>FTA_TAB.1 (optional)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by providing a mechanism on the TOE that advises of actionable consequences for its misuse in configuration of MDs.</rationale>
				  <addressed-by>FAU_GEN.1/MAS_SERVER (selection-based)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by providing a mechanism on the TOE that logs a failure of the TSF to affect an enrolled MD's installed apps.</rationale>
				  <addressed-by>FAU_STG.2 (selection-based)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by providing a mechanism on the TOE that protects audit records of configuration of that device from unauthorized modification or destruction.</rationale>
				  <addressed-by>FMT_MOF.1/MANAGEMENT_MAS (selection-based)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by implementing management functions that allow for the TOE to download and install applications.</rationale>
				  <addressed-by>FMT_SMF.1/MAS (selection-based)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by implementing management functions for its MAS server functionality that allow the TSF to securely configure enrolled devices.</rationale>
				  <addressed-by>FMT_SMR.1/SECMAN_ROLES_MAS (selection-based)</addressed-by><rationale>A conformant TOE potentially mitigates the threat of physical access to the MD by implementing roles for its own management that allow the TSF to ensure its own secure operation with respect to applying MAS server policies.</rationale>
				</threat>
			</threats>
		</sec:Threats>
		
		<!-- 4.2 Assumptions -->
		<sec:Assumptions>
			<assumptions>
				<assumption name="A.COMPONENTS_RUNNING">
					<description>This assumption applies to distributed TOEs only.
						For distributed TOEs, it is assumed that the availability of all TOE components is checked as
						appropriate to reduce the risk of an undetected attack on (or failure of) one or more TOE components. It is also assumed that in addition to the
						availability of all components it is also checked as appropriate that the audit functionality is running properly on all TOE components.</description>
					<objective-refer ref="OE.COMPONENTS_RUNNING">
						<rationale>The operational environment objective OE.COMPONENTS_RUNNING is realized through A.COMPONENTS_RUNNING.</rationale>
					</objective-refer>
				</assumption>
				<assumption name="A.CONNECTIVITY">
					<description>The TOE relies on network connectivity to carry out its
						management activities. The TOE will robustly handle instances when
						connectivity is unavailable or unreliable.</description>
					<objective-refer ref="OE.WIRELESS_NETWORK">
						<rationale>The operational environment objective OE.WIRELESS_NETWORK is realized through
							A.CONNECTIVITY.</rationale>
					</objective-refer>
				</assumption>
				<assumption name="A.MDM_SERVER_PLATFORM">
					<description> The MDM server relies on a trustworthy platform and
						local network from which it provides administrative capabilities. <h:br/><h:br/> 
						The MDM server relies on this platform to provide a range of
						security-related services including reliable timestamps, user and group account
						management, logon and logout services via a local or network directory service, remote
						access control, and audit log management services to include offloading of audit logs to
						other servers. The platform is expected to be configured specifically to provide 
						MDM services, employing features such as a host-based firewall, which
						limits its network role to providing MDM functionality. </description>
					<!--<objective-refer ref="OE.MOBILE_DEVICE_PLATFORM">
						<rationale>The operational environment objective OE.MOBILE_DEVICE_PLATFORM is realized
							through A.MDM_SERVER_PLATFORM.</rationale>
					</objective-refer>-->
					<objective-refer ref="OE.TIMESTAMP">
						<rationale>The operational environment objective OE.TIMESTAMP is realized through A.MDM_SERVER_PLATFORM.</rationale>
					</objective-refer>
				</assumption>
				<assumption name="A.PROPER_ADMIN">
					<description>One or more competent, trusted personnel who are not careless, willfully
						negligent, or hostile, are assigned and authorized as the TOE
						Administrators, and do so using and abiding by guidance documentation.</description>
					<objective-refer ref="OE.PROPER_ADMIN">
						<rationale>The operational environment objective OE.PROPER_ADMIN is realized through
							A.PROPER_ADMIN.</rationale>
					</objective-refer>
				</assumption>
				<assumption name="A.PROPER_USER">
					<description>MD 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>
		</sec:Assumptions>
		
		<!-- 4.3 Organizational Security Policies -->
    <sec:Organizational_Security_Policies>
			<OSPs>
				<OSP name="P.ACCOUNTABILITY">
					<description>Personnel operating the TOE shall be accountable for their actions within the TOE.</description>
					<objective-refer ref="OE.PROPER_ADMIN">
						<rationale>Part of ensuring that administrators are trusted is having the ability to enforce accountability measures on malicious or negligent administrators.</rationale>
					</objective-refer>         
				</OSP>
				<OSP name="P.ADMIN">
					<description>The configuration of the MD security functions must adhere to the
						enterprise security policy.</description>
					<objective-refer ref="OE.PROPER_ADMIN">
						<rationale>The organizational security policy P.ADMIN is realized through
							OE.PROPER_ADMIN.</rationale>
					</objective-refer>
				</OSP>
				<OSP name="P.DEVICE_ENROLL">
					<description>A MD must be enrolled for a specific user by the administrator of
						the MDM prior to being used in the enterprise network by the user.</description>
					<objective-refer ref="OE.IT_ENTERPRISE">
						<rationale>The organizational security policy P.DEVICE_ENROLL is realized through
							OE.IT_ENTERPRISE.</rationale>
					</objective-refer>
				</OSP>
				<OSP name="P.NOTIFY">
					<description>The MD user must immediately notify the administrator if a MD
						is lost or stolen so that the administrator may apply remediation actions via the 
						MDM system.</description>
					<objective-refer ref="OE.PROPER_USER">
						<rationale>The organizational security policy P.NOTIFY is realized through
							OE.PROPER_USER.</rationale>
					</objective-refer>
				</OSP>
			</OSPs>
		</sec:Organizational_Security_Policies>
	</sec:Security_Problem_Definition>
	
	
	<!-- 5. Security Objectives -->
	<!-- ? Means that the entry was in the TD but not in the XML -->
	<!-- ?? Means tha the entry as in the XML, but not in the TD. -->
	<!-- Or maybe it's the other way around -->
	<section id="so" title="Security Objectives">	
	  
	<!-- 5.1 Security Objectives for the Operational Environment -->
	  <sec:Security_Objectives_for_the_Operational_Environment>
      <SOEs>
        <SOE name="OE.COMPONENTS_RUNNING">
          <description>For distributed TOEs, the administrator ensures that the availability of every TOE component is checked as appropriate to reduce the 
		  risk of an undetected attack on (or failure of) one or more TOE components. The administrator also ensures that it is checked as appropriate 
		  for every TOE component that the audit functionality is running properly. </description>
        </SOE>
        <SOE name="OE.IT_ENTERPRISE">
          <description>The enterprise IT infrastructure provides security for a network that is available to the TOE and MDs that prevents 
		  unauthorized access.</description>
        </SOE>
        <!--
        <SOE name="OE.MOBILE_DEVICE_PLATFORM">
          <description>The MDM Agent relies upon the trustworthy mobile platform and hardware to provide policy enforcement as well as cryptographic services
 		and data protection. The mobile platform provides trusted updates and software integrity verification of the MDM Agent.</description>
        </SOE>-->
        <SOE name="OE.PROPER_ADMIN">
          <description>TOE Administrators are trusted to follow and apply all administrator guidance in a trusted manner.</description>
        </SOE>
        <SOE name="OE.PROPER_USER">
          <description>Users of the MD are trained to securely use the MD and apply all guidance in a trusted manner.</description>
        </SOE><SOE name="OE.TIMESTAMP">
          <description>Reliable timestamps are provided by the operational environment for the TOE.</description>
        </SOE>        
        <SOE name="OE.WIRELESS_NETWORK">
          <description>A wireless network will be available to the MDs.</description>
        </SOE>
	</SOEs>
    </sec:Security_Objectives_for_the_Operational_Environment>
	
		<!-- 5.2 Security Objectives Rationale (auto-generated -->
		<section title="Security Objectives Rationale" id="secobjrat"/>

	</section>
  
	<!-- 6. Security Requirements -->
	<section title="Security Requirements" id="req">
	
		<!-- NOTE: CC Conventions text autopopulates here -->
		<h:br/><h:br/>
		For a distributed TOE, the ST author should reference <xref to="distTOE"/> for guidance on how each SFR should be met. The table details whether
		SFRs should be met by all TOE components, by at least one TOE component or whether they are dependent on the feature being implemented by the
		TOE component. The ST for a distributed TOE must include a mapping of SFRs to each of the components of the TOE. (Note that this deliverable 
		is examined as part of the ASE_TSS.1 and AVA_VAN.1 Evaluation Activities.)<h:br/><h:br/>
	  
		<h:b>Test Environment for Evaluation Activities</h:b><h:p/>
			As described in the evaluation activities below, the ST for an MDM system is required to list all the supported MDM agents and MD platforms with which
			an MDM server operates. The identified evaluation activities for testing that includes the use of an agent should be completed for each MDM agent
			and platform listed in the ST.<h:br/><h:br/>

			The evaluation activities for testing that include use of an MDM agent will ensure that the server interacts appropriately with the agent (i.e., sends a
			policy update to the agent), but will not ensure that the MDM agent handles the received data correctly (i.e., appropriately applies the policy to the 
			device), as that is accounted for in the Evaluation Activities in PP_MDF, PP_GPOS, or <xref to="mod-mdmagent"/>.<h:br/><h:br/> 
	  
  	  In addition to the above guidance, if the TOE server acts as a primary MDM server and interfaces with one or more subordinate MDM servers, then the ST 
  	  is required to list all of the supported subordinate MDM servers. All evaluation activity testing that includes the use of a subordinate MDM server should
  	  be completed for each of the subordinate MDM servers listed in the ST. MDM agent testing should be done for devices managed directly by the primary MDM 
  	  Server. MDM agent testing with a subordinate MDM server will be done during the subordinate MDM server evaluation. If the TOE server acts as a subordinate
  	  MDM server and interfaces with one or more primary MDM servers, then the ST is required to list all of the supported primary MDM servers, along with all
  	  of the supported MDM agents and MD platforms with which it operates. A test primary MDM server may be used for evaluation activity testing that requires
  	  the use of a primary MDM server. For clarification purposes "primary MDM server" and "subordinate MDM server" will be specified when the distinction is 
  	  necessary and relevant to explanations and testing, otherwise "MDM server" may be used when the distinction is not necessary and could reference either 
  	  a primary MDM server or subordinate MDM server.
		
		<section id="tsfr" title="Security Functional Requirements">
		
		  <section id="ss-audit-table" title="Auditable Events for Mandatory SFRs"><h:br/>
				<audit-table id="t-audit-mandatory" table="mandatory"/>
			</section>		
	
		<section id="fau" title="Class FAU: Security Audit">
		  <ext-comp-def title="Server Alerts" fam-id="FAU_ALT_EXT">
		    <fam-behavior>This family defines requirements for the TSF to alert administrators when a set of
		      specified events occurs.</fam-behavior>		  
		  </ext-comp-def>
	    <ext-comp-def title="Support for Compliance Reporting of Managed Device Configuration" fam-id="FAU_CRP_EXT">
	      <fam-behavior>This family defines requirements for the TSF to provide an interface for the
	        MDM server to convey information about MDs for other systems.</fam-behavior>
	    </ext-comp-def>
	     <ext-comp-def title="Network Reachability Review" fam-id="FAU_NET_EXT">
	       <fam-behavior>This family defines requirements for administrators to see network
	         connectivity status.</fam-behavior>
	     </ext-comp-def>		  	  
	  
        <f-component cc-id="fau_alt_ext.1" name="Server Alerts">
          <consistency-rationale/>
          <comp-lev>defines requirements for alerting the administrator to events.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT.
          <h:ul>
            <h:li>Install policies.</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>Type of alert.</h:li>
            <h:li>Identity of MD that sent alert</h:li>
          </h:ul>
          </audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fau-alt-ext-1e1">
            <title>The TSF shall alert the administrators in the event of any of the following:
              <h:ul>
                <h:li>Change in enrollment status</h:li>
                <h:li>Failure to apply policies to a MD</h:li>
                <h:li><selectables><selectable><assignable>other events</assignable></selectable><selectable>no other events</selectable></selectables>.</h:li>
              </h:ul>
            </title>
            <note role="application"> An alert can be defined as anything providing straightaway notice to the administrator. An alert is different from 
		    an audit record, however the fact that an alert was sent should be audited per FAU_GEN.1/AUDITGEN. Email, pop-up notifications, or other methods 
		    are acceptable forms of alerts. If the TOE is a subordinate MDM server, then sending an alert to the primary MDM server over the trusted channel is
		    sufficient to fulfill this requirement.<h:br/><h:br/>            
              The MDM agent is required to report to the MDM server on successful application of policies on a MD, and failures can be
		    inferred from the absence of such alerts. This requirement is intended to ensure that the MDM server notifies administrators when policies 
		    are not properly installed. Failure to properly install policy updates does not affect the enrollment status of the MD.</note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS and verify that it describes how the alert system is implemented. The evaluator shall also verify that
		      a description of each assigned event is provided in the TSS.</TSS>
              <Guidance>The evaluator shall examine the guidance document and verify that it describes how the alerts can be configured, if configurable.</Guidance>
              <Tests> For each MDM agent or platform listed as supported in the ST: <testlist>
                <test>The evaluator shall enroll a device and ensure that the MDM server alerts the administrator of the change in enrollment status. The 
			evaluator shall unenroll (retire) a device and ensure that the MDM server alerts the administrator of the change in enrollment status.</test>
      <!-- Alternate test could be to send correct policy but block Agent response, and the MDM should alert that response was not received, indicating failure -->
                <test>The evaluator shall configure policies, which the MDM agent should not be able to apply. These policies shall include:<h:ul>
                      <h:li>a setting which is configurable on the MDM server interface but not supported by the platform on which the MDM agent runs, if any
			      such settings exist</h:li>
                      <h:li>a valid configuration setting with an invalid parameter, which may require manual modification of the policy prior to transmission
			      to the device</h:li>
                    </h:ul> 
                    The evaluator shall deploy such policies and verify that the MDM server alerts the administrator about the failed application of the policy.<h:br/>
                    
                    Alternate test: The evaluator shall configure a policy that the MDM agent can successfully apply. The evaluator blocks the response from the MDM agent of the successful application of the policy, resulting in the MDM server alerting of a failure of application. The evaluator shall verify that the MDM server alerts the administrator about the failed application of the policy.</test>
                <test>[conditional) If any additional events are specified in the assignment, the evaluator shall trigger each of the events listed and ensure that the MDM server alerts the administrator.</test>
              </testlist>
	      </Tests>
            </aactivity>
          </f-element>
			<audit-event>
				<audit-event-descr>Type of alert</audit-event-descr>
				<audit-event-info>Identity of MD that sent alert.</audit-event-info>
			</audit-event>
		</f-component>
		
        <f-component cc-id="fau_crp_ext.1" name="Support for Compliance Reporting of Managed Device Configuration">
          <consistency-rationale/>
          <comp-lev>defines requirements for providing information to enrolled MDs
            through a secure channel.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT.
            <h:ul>
              <h:li>Query the current version of the MD firmware or software.</h:li>
              <h:li>Query the hardware model of the MD.</h:li>
              <h:li>Query the current version of installed applications.</h:li>
            </h:ul></management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies><no-link>FTP_ITC.1</no-link> Inter-TSF Trusted Channel</dependencies>
          
          <f-element id="fau-crp-ext-1e1">
            <title>The TSF shall provide <selectables>
            <selectable>an interface that provides responses to queries about the configuration of enrolled devices</selectable>
            <selectable>an interface that permits the export of data about the configuration of enrolled devices</selectable>
            </selectables> to authorized entities over a channel that meets the secure channel requirements in <h:b>FTP_ITC.1/OE_XFER_IT</h:b>. The provided information for each enrolled MD includes:
              <h:ul>
              <h:li>The current version of the MD firmware or software</h:li>
              <h:li>The hardware model of the MD</h:li>
              <h:li>
              <selectables linebreak="yes">
                <selectable>The current version of installed mobile applications,</selectable>
                <selectable>List of MD configuration policies that are in place on the device (as defined in <xref to="fel-smf-man-agnt"/>),</selectable>
                <selectable><assignable>list of other available information about enrolled MDs</assignable>,</selectable>
                <selectable>no other information</selectable></selectables>.
              </h:li>
            </h:ul>
            </title>
            <ext-comp-def-title>
              <title>
                The TSF shall provide <assignable>type of interface</assignable> to authorized entities over a 
                channel that meets the secure channel requirements in FTP_ITC.1(1). The provided information for each enrolled MD includes:
                <h:ul>
                  <h:li>The current version of the MD firmware or software</h:li>
                  <h:li>The current version of the hardware model of the MD</h:li>
                  <h:li>
                  <selectables linebreak="yes">
                    <selectable>The current version of installed applications,</selectable>
                    <selectable>List of MD configuration policies that are in place on the device (as defined in <xref to="fel-smf-man-agnt"/>),</selectable>
                    <selectable><assignable>list of other available information about enrolled MDs</assignable>,</selectable>
                    <selectable>no other information</selectable></selectables>.
                  </h:li>
                </h:ul>
              </title>
            </ext-comp-def-title>
            <note role="application">
              <h:p>
              The intent of this requirement is that the MDM server be able to provide 
              compliance information about enrolled MDs for use by other enterprise security infrastructure systems. 
              There are active standards efforts underway by the Internet Engineering Task Force (IETF) Security Automation and 
              Continuous Monitoring (SACM) Working Group and others to define protocols and standards to assess and report on 
              endpoint device posture. It is expected that this requirement will evolve in future versions of this Protection Profile 
              as standards efforts mature.
              </h:p>
              <h:p>
              If the TOE acts as a subordinate MDM server, then this SFR also ensures that there is a
              mechanism for the primary MDM server to query information about the devices managed by
              the subordinate MDM server.
              </h:p>
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to verify that it describes the TOE's compliance reporting capability with respect to whether it provides responses to queries about the configuration of enrolled devices or whether it permits the export of data about the configuration of these devices. The evaluator shall also verify that the TSS identifies the trusted channel used to protect data that is transmitted over this interface. Lastly, the evaluator shall verify that the TSS identifies the information that is provided for each enrolled device.</TSS>
              <Guidance>The evaluator shall check to ensure that the operational guidance contains instructions on how to access the MDM server's compliance
		      reporting interface.</Guidance>
              <Tests>
                <testlist>
                  <test>Using the operational guidance, the evaluator shall demonstrate the ability to access the compliance reporting interface from an 
			  authorized entity and successfully obtain information about enrolled devices.</test>
                  <test>The evaluator shall attempt to access the compliance reporting interface from an unauthorized entity and demonstrate that the attempt
			  is denied.</test>
                </testlist>
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
	
        <f-component cc-id="fau_gen.1" name="Audit Data Generation" iteration="AUDITGEN">          
			<f-element id="fel-gen-func-tsf">
				<title>The TSF shall 
					<selectables>
						<selectable>invoke platform-provided functionality</selectable>
						<selectable>implement functionality</selectable>
					</selectables> to generate audit data of the following auditable events: 					
					  <h:li>All auditable events for the [<h:i>not specified</h:i>] level of audit;</h:li> [
            <h:ol type="a"><h:i> 
					  <h:li>All administrative actions</h:li>
						<h:li>
							<selectables>
								<selectable>Commands issued to the MDM agent</selectable>
							  <selectable>Commands issued to the subordinate MDM server</selectable>
							  <selectable>Status updates provided to the primary MDM server</selectable>
								<selectable>none</selectable>
								</selectables>
						</h:li>
						<h:li>Specifically defined auditable events listed in <xref g="t-audit-mandatory"/></h:li>                    
					  <h:li><selectables linebreak="yes">
					    <selectable>Start up and shut down of the audit functions,</selectable>
              <selectable id="sel-at2">Auditable events defined in <xref g="t-audit-optional"/> for Strictly Optional SFRs,</selectable>
					    <selectable id="sel-at3">Auditable events defined in <xref g="t-audit-objective"/> for Objective SFRs,</selectable>
					    <selectable id="sel-at4">Auditable events defined in <xref g="t-audit-sel-based"/> for Selection-Based SFRs,</selectable>
					    <selectable id="sel-atssh">Auditable events for <xref to="ssh"/>,</selectable>
					    <selectable id="sel-attls">Auditable events for <xref to="tls"/>,</selectable>
					    <selectable id="sel-atssh">Auditable events for <xref to="X509"/>,</selectable>
              <selectable>no other events</selectable>
					  </selectables></h:li></h:i>].						
					</h:ol>
				</title>
          <note role="application">
            <h:p>
            This requirement outlines the events for which audit data must be generated by either the MDM system or the
            MDM server platform. Each audit data event may be written by the MDM system or may be dispatched to the operating system on which 
            it runs. It is acceptable to select both "invoke platform-provided functionality" and "implement functionality." It should be specified
            which auditable events are completed by the MDM system and which are completed by the MDM platform.
            </h:p>
            <h:p>              
            For distributed TOEs, each component must generate audit data for each of the SFRs that it implements. If more than one TOE component is
            involved when an audit event is triggered, the event has to be audited on each component (e.g., rejection of a connection by one component
            while attempting to establish a secure communication channel between two components should result in an audit event being generated by
            both components). This is not limited to error cases but also includes events about successful actions like successful build up or tear down 
            of a secure communication channel between TOE components.
            </h:p>
            <h:p>              
            Item a above requires all administrative actions to be auditable. Administrative actions refer to any management functions specified by 
            FMT_MOF.1/FUNCBE. Thus no additional specification for the auditability of these actions is specified in <xref g="t-audit-mandatory"/> aside 
            from those that require additional record content. If the TOE is distributed and the given component does not deal with setting the policy 
            applied to the MDM agent, it is acceptable to not have any administrative actions to audit.
            </h:p>
            <h:p>              
            Item b includes those commands, which may be performed automatically based on triggers or on a schedule. If the TOE server acts as a primary MDM server and interfaces with a subordinate MDM server, then "Commands issued to the subordinate MDM server" must be selected. If the TOE server acts as a subordinate MDM server and interfaces with a primary MDM server, then "Status updates provided to the primary MDM server" must be selected. For distributed TOEs, if the TOE component directly interacts with a primary MDM server, subordinate MDM server, or MDM agent then the corresponding selection should be made for that component. If the TOE component does not directly interact with any of these entities, then it is acceptable to select "none".
            </h:p>
            <h:p>
            In item d above, "Start up and shut down of the audit functions" must be selected if the TSF has a start up and shut down phase. If the TSF does not have a distinct start up or shut down phase (e.g., a cloud service), this selection is not required. Additionally, if the TOE is distributed, this applies to all components.
            </h:p>
            <h:p>              
            Depending on the specific requirements selected by the ST author from SFRs, optional requirements, selection-based requirements, and objective requirements, the ST author should include the appropriate auditable events from <xref g="t-audit-optional"/>, <xref g="t-audit-sel-based"/>, and <xref g="t-audit-objective"/> in the ST for the requirements selected. Each functional package includes auditable events for the SFRs defined in the package. The ST author is expected to include the auditable events (if any) for each SFR that the ST claims from a functional package.
            </h:p>
          </note>
            <aactivity level="element">
              <TSS>
                <h:p>The evaluator shall check the TSS and ensure that it lists all of the auditable events. The evaluator shall check to make sure that every
                audit event type mandated by the PP is described in the TSS. The evaluator shall verify that for every audit event described in the 
                TSS, the description indicates where the audit event is generated (TSF, TOE platform).
                </h:p>
                <h:p>                        
                If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported
                platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the 
                MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).
                </h:p>
              </TSS>
              <Guidance>
                <h:p>
                The evaluator shall check the administrative guide and ensure that it lists all of the auditable events. The evaluator shall check to make sure that every audit event type mandated by the PP is described.
                </h:p>
                <h:p>  
                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 specified in the PP.
                </h:p>
                <h:p>
                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:p>
	      </Guidance>
              <Tests>
                <h:p>
                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.
                </h:p>
                <h:p>          
                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:p>  
              </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-gen-tsf-info">
            <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 (if applicable)</h:li>
              <h:li>The outcome (success or failure) of the event</h:li>
              <h:li>Additional information in <xref g="t-audit-mandatory"/></h:li>
              <h:li><refinement><selectables linebreak="yes">
                    <selectable id="sel-at2-i">Additional information defined in <xref g="t-audit-optional"/> for Strictly Optional SFRs,</selectable>
					          <selectable id="sel-at3-i">Additional information defined in <xref g="t-audit-objective"/> for Objective SFRs,</selectable>
                    <selectable id="sel-at4-i">Additional information defined in <xref g="t-audit-sel-based"/> for Selection-Based SFRs,</selectable>
                <selectable id="sel-atssh">Additional information defined in <xref to="ssh"/>,</selectable>
                <selectable id="sel-attls">Additional information defined in <xref to="tls"/>,</selectable>
                <selectable id="sel-atssh">Additional information defined in <xref to="X509"/>,</selectable>
                    <selectable>No other additional information</selectable>
              </selectables></refinement>.</h:li>
            </h:ul>
            </title>
            <note role="application"> This requirement outlines the information to be included in audit data. All audits must contain at least the
		            information mentioned in <xref to="fel-gen-tsf-info"/>. The ST author
		            must identify in the TSS which information of the audit data is performed by the TSF and that which is performed by the 
		            TOE platform. <h:br/><h:br/>
              <!-- TODO: If the MDM invokes the platform to audit an event for FAU_GEN.1.1(1), then are they guaranteed that the platform will provide them 
		with the necessary information in the audit event? Need to make sure that this is in OS PP-->  
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall check the TSS and ensure that it provides a format for audit data. Each audit data format type must be covered, 
		            along with a brief description of each field.
				      </TSS>
              <Guidance>The evaluator shall check the administrative guide and ensure that it 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 the description of the
		            fields contains the information required in <xref to="fel-gen-tsf-info"/>.
			</Guidance>
              <Tests> When verifying the test results from <xref to="fel-gen-func-tsf"/>, the evaluator shall ensure the audit data generated during 
		            testing matches the format specified in the administrative guide, and that the fields for each audit data have the proper entries.<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. 
			</Tests>
            </aactivity>
          </f-element>
        <audit-event/>
		</f-component>
        
        <f-component cc-id="fau_gen.1" name="Audit Data Generation (MAS Server)" status="sel-based" iteration="MAS_SERVER">
          <depends on-sel="mas"/>
          <f-element id="fau-gen-1e1-mas">
            <title>The <h:b>MAS server</h:b> shall be able to generate audit data of the following
              auditable events: [<h:i><h:ol type="a">
              <h:li>Failure to push a new application on a MD</h:li>
              <h:li>Failure to update an existing application on a MD</h:li>
            </h:ol></h:i>].</title>
            <note role="application">The MDM agent is required to report to the MAS server on successful receipt of an application or update on a MD, and failures can be inferred from the absence of such alerts.</note>            
          </f-element>
          
          <f-element id="fel-gen-mas-server">
            <title>The <selectables><selectable><h:b>MAS server</h:b></selectable><selectable><h:b>MAS server
              platform</h:b></selectable></selectables> 
		    shall record within the audit data at least the following information: <h:ul>
              <h:li>date and time of the auditable event</h:li>
              <h:li>type of event</h:li>
              <h:li>MD identity</h:li>
              <h:li><assignable>other audit relevant information</assignable>.</h:li>
		    </h:ul>
            </title>
            <note role="application">All audits must contain at least the information mentioned in <xref to="fel-gen-mas-server"/>, but may contain 
		    more information which can be assigned. The ST author must identify in the TSS which
		    information of the audit data is performed by
		    the TSF and that which is performed by the TOE platform.<h:br/><h:br/>
              This requirement is claimed if "enable/disable/modify policies listed in
              FMT_SMF.1/MAS" is selected in FMT_MOF.1.1/FUNCBE.
            </note>
            <aactivity>
              <TSS>The evaluator shall check the TSS and ensure that it provides a format for audit
                data. Each audit data format type must be covered,
		      along with a brief description of each field.
	      </TSS>
              <Guidance>The evaluator shall check the administrative guide and ensure that it
                provides a format for audit data. Each audit data format
		      type must be covered, along with a brief description of each field.<h:br/><h:br/>
		      The evaluator shall check to make sure that the description of the fields contains the information required in <xref to="fel-stg-func"/>.
	      </Guidance>
              <Tests>The evaluator shall verify that when an application or update push fails, that
                the audit data generated match the format specified in the guidance and that the
                fields in each audit data have proper entries.<h:br/><h:br/>
                When verifying the test results from <xref to="fel-gen-mas"/>, the evaluator shall
                ensure the audit data generated during 
		            testing match the format specified in the administrative guide, and that the fields in
		            each audit data have the proper entries.<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.
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
		
        <f-component cc-id="fau_net_ext.1" name="Network Reachability Review">
          <consistency-rationale/>
          <comp-lev>defines requirements for authorized administrators to read network connectivity
            status.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT.
            <h:ul>
              <h:li>Query connectivity status.</h:li>              
            </h:ul></management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies><no-link>FAU_ALT_EXT.2</no-link> Agent Alerts</dependencies>
          
          <f-element id="fau-net-ext-1e1">
            <title>The TSF shall provide authorized administrators with the capability to read the network connectivity status of an enrolled agent.</title>
            <note role="application"> The MDM server establishes the network connectivity status of enrolled agents using periodic reachability event alerts
		    from the agents according to FAU_ALT_EXT.2.1 in the <xref to="mod-mdmagent"/>. This status may be determined by sending an update request from
		    the MDM server which the agent is required to respond to or by using scheduled periodic notifications of connectivity initiated by the 
		    MDM agent.<h:br/><h:br/>
		    If the TOE server acts as a subordinate MDM server then there should be some mechanism for the primary MDM server to initialize and read results of the network 
		    reachability tests performed by the subordinate MDM server on those devices that it manages.</note>
            <aactivity>
              <TSS> The evaluator ensures that the TSS describes how reachability events are implemented, for each supported MD platform. The evaluator
		      verifies that this description clearly indicates who (MDM agent or MDM server) initiates reachability events.</TSS>
              <Guidance> The evaluator shall verify that the guidance instructs administrators on the method of determining the network connectivity status
		      of an enrolled agent.</Guidance>
              <Tests> For each MDM agent or platform listed as supported in the ST:<h:br/><h:br/> 
                The evaluator shall configure the MDM agent or platform to perform a network reachability test, both with and without such connectivity and shall 
		      ensure that by following the guidance, the evaluator can determine results that reflect both.
	      </Tests>
            </aactivity>
          </f-element>
			<audit-event/>
		</f-component> 
		
        <f-component cc-id="fau_sar.1" name="Audit Review" status="optional">
          <f-element id="fau-sar-1e1">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> provide [<h:i>authorized administrators</h:i>] with the
              capability to read [<h:i>all audit information</h:i>] from the audit data.</title>            
          </f-element>
          
          <f-element id="fau-sar-1e2">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> provide the audit data in a manner suitable for the
              <h:b>authorized administrators</h:b> to interpret the information.</title>
            <note role="application">The intent of this requirement is to ensure that the
              administrator can view and interpret the audit data and to
		    prevent unauthorized users from accessing the logs.</note>
            <aactivity>
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported
		      platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the
		      MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall check the operational guidance and ensure that it describes how the administrator accesses the audit data and describes
		      the format of audit data.</Guidance>
              <Tests>The evaluator shall attempt to view the audit data as the authorized administrator and verify that the action succeeds. The evaluator 
		      shall ensure the audit data generated during testing match the format specified in the administrative guide.
            </Tests>  
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
		
        <f-component cc-id="fau_sel.1" name="Security Audit Event Selection" status="optional">
          <f-element id="fau-sel-1e1">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable></selectables>      
              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. The 
		    ST author must select whether the TSF or the platform maintains the audit data. For the ST author, the assignment is used to list
		    any additional criteria or "none."</note>
            <aactivity>
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported 
		      platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the 
		      MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</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 is always recorded, regardless of 
		      the selection criteria currently being enforced.</Guidance>
              <Tests>The evaluator shall also perform the following tests:<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>
                <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.1" name="Audit Data Storage Location">
          <f-element id="fau-stg-1e1">
            <title>The TSF shall be able to <h:b>transmit the generated audit data to an external IT
              entity using a trusted channel according to FTP_ITC.1/OE_XFER_IT</h:b> and store
              generated audit data on the 
              <selectables>
                <selectable id="locally">TOE itself</selectable>
                <selectable>no other storage</selectable>
                </selectables>.
            </title>
            
            <note role="application"> <h:p>Per <xref to="fel-gen-func-tsf"/>, audit data may be generated by the TOE, the platform, or both. If audit data is generated by the TOE, the TSF must have the ability to securely transmit this data to a remote entity. It may additionally store this data within the TOE boundary, in which case "the TOE itself" is selected and FAU_STG.2 must be included in the ST. Regardless of whether the TSF stores the audit data it generates within the TOE boundary, the TOE must always be able to securely transmit the audit data it generates to a remote entity. If audit data is generated by the platform, any secure local storage or secure remote transmission of this data is the responsibility of the platform. 
            </h:p>
              <h:p>
                Although the audit server is outside of the TOE, the TSF should still be able to support 
                mutual authentication. There are no requirements levied on the audit server, but the TOE should be 
                able to support TLS client certificate authentication. This way if the non-TOE audit server does 
                support verifying client certificates, the TSF is able to make use of that.
              </h:p>          
              <h:p>
              For distributed TOEs, each component must be able to export any audit data it generates across a
              protected channel. This may involve individual components independently transmitting audit data to the same environmental audit server via FTP_ITC.1/OE_XFER_IT, or it may involve one component of a distributed TOE aggregating audit data generated by other components prior to external transmission. In this case, the internal communication of audit data is protected via the mechanisms specified in FPT_ITT.1/INTRA_XFER or FPT_ITT.1/INTRA_XFER_AGENT as appropriate. The intent of this requirement in the context of a distributed TOE is that all audit data generated by all components of the TSF be transmitted to an environmental entity entirely through trusted channels, regardless of whether it is transmitted directly from the TSF to the operational environment or whether it is first transmitted to another part of the TOE.
              </h:p>
              </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to ensure it describes the means by which the audit data are transferred to the external audit server, 
		      and how the trusted channel is provided.</TSS>
              <Guidance> The evaluator shall also examine the operational guidance to determine that it describes the relationship between the local audit
		      data and the audit data that are sent to the audit log server. For example, when an audit event is generated, is it simultaneously sent
		      to the external server and the local store, or is the local store used as a buffer and "cleared" periodically by sending the data to the
		      audit server.<h:br/><h:br/> 
              The evaluator shall also examine the operational guidance to ensure it describes how to establish the trusted channel to the audit server, as
		      well as describe any requirements on the audit server (particular audit server protocol, version of the protocol required, etc.), as well
		      as configuration of the TOE needed to communicate with the audit server.</Guidance>
              <Tests> Testing of the trusted channel mechanism will be performed as defined in the associated evaluation activities for the particular 
		      trusted channel mechanism.<h:br/><h:br/> 
                The evaluator shall perform the following test for this requirement: <testlist>
                  <test>The evaluator shall establish a session between the TOE and the audit server according to the configuration guidance provided. The
			  evaluator shall then examine the traffic that passes between the audit server and the TOE during several activities of the evaluator's
			  choice designed to generate audit data to be transferred to the audit server. The evaluator shall observe that these data are not able
			  to be viewed in the clear during this transfer, and that they are successfully received by the audit server. The evaluator shall
			  record the particular software (name, version) used on the audit server during testing. </test>
                </testlist></Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component>
		
        <f-component cc-id="fau_stg.2" name="Audit Event Storage" status="sel-based" id="fel-stg-2">
          <depends on-sel="locally"/>
          
          <f-element id="fel-stg-func">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
              </selectables> to protect the stored audit data in the audit trail from unauthorized
              deletion.</title>
          </f-element>
          <f-element>
            <title>The TSF shall be able to [<h:i>prevent</h:i>] unauthorizd modifications to the stored audit data in the audit trail.</title>
            <note role="application">If "store audit data locally" is selected in <xref to="fau-stg-1e1"/>, this SFR must be included in the ST.<h:br/><h:br/> 
			The purpose of this requirement is to ensure that audit data are stored securely. The ST author
			is responsible for selecting whether audit data 
			are maintained when audit storage or failure occurs. The ST author must choose a means by which
			audit data are saved and select the events during which
			the data will be saved. The TSF may rely on the underlying operating system for this functionality, and the first selection should be made
			appropriately. 
            </note>
            <aactivity level="component">
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported
		      platform) how the audit data protection functionality is invoked (it should be noted that this may be through a mechanism that is not 
		      implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).<h:br/><h:br/>
              If "implement functionality" is selected, the evaluator shall ensure that the TSS
              describes how the audit data are protected from unauthorized 
		      modification or deletion. The evaluator shall ensure that the TOE uses audit trail specific protection mechanisms.
	      </TSS>
              <Guidance/>
              <Tests>The evaluator shall perform the following tests: <testlist>
                  <test>The evaluator shall access the audit trail as an unauthorized user and
                    attempt to modify and delete the audit data. The evaluator
			  shall verify that these attempts fail.</test>
                  <test>The evaluator shall access the audit trail as an authorized user and attempt
                    to modify and delete the audit data. The evaluator
			  shall verify that these attempts succeed. The evaluator shall verify that only the records intended for modification and deletion
			  are modified and deleted.</test>
                </testlist>
		</Tests>
              </aactivity>
          </f-element>
          <f-element>
            <title>The TSF shall be able to <selectables onlyone="yes">
              <selectable>prevent</selectable>
              <selectable>detect</selectable>
            </selectables>
            unauthorized modifications to the stored audit data in the audit trail.</title>
          </f-element>
          <audit-event/>
		</f-component>
      </section>
      

      <section id="fco" title="Class FCO: Communication">
        <ext-comp-def title="Component Registration Channel Definition" fam-id="FCO_CPC_EXT">
        <fam-behavior>This family describes the registration process, including the capability for
          the administrator to enable or disable communications between a distributed TOE and other
          components of the TOE.</fam-behavior>
        </ext-comp-def>
        
        <f-component cc-id="fco_cpc_ext.1" name="Component Registration Channel Definition" status="objective">
          <consistency-rationale/>
          <comp-lev>defines requirements for the registration process for distributed TOEs.</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>Enabling or disabling communications between a pair of components.</h:li>
            <h:li>Identities of the endpoint's pairs enabled or disabled.</h:li>
          </h:ul>
          </audit>
          <dependencies>
            <no-link>FPT_ITT.1</no-link> TSF Data Transfer<h:br/>
            <no-link>FTP_TRP.1</no-link> Trusted Path
          </dependencies>
          
          <f-element id="fel-cpc">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to require an Administrator to enable communications between any pair of TOE components before such communication can take place.
            </title>
                       
            </f-element>
          <f-element id="fel-cpc-func">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to implement a registration process in which components establish and use a communications channel that uses
              <selectables>
                <selectable>A channel that meets the secure channel requirements in 
                  <selectables>
                    <selectable>FTP_ITC.1/OE_XFER_IT</selectable> 
                    <selectable>FPT_ITT.1/INTRA_XFER</selectable>
                    <selectable>FPT_ITT.1/INTRA_XFER_AGENT</selectable>
                </selectables>,</selectable>
                <selectable>A channel that meets the secure registration channel requirements in
                  <selectables>
                    <selectable>FTP_TRP.1/TRUSTPATH_ENROLL</selectable>
                    <selectable>FTP_TRP.1/TRUSTPATH_JOIN</selectable>
                  </selectables>,</selectable>
                <selectable>No channel</selectable>
              </selectables>
              for at least TSF data.
            </title>
           </f-element>
          
          <f-element id="fel-cpc-disablecomms">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to enable an administrator to disable communications between any pair of TOE components.</title>
            <note role="application">
              This SFR is only applicable if the TOE is distributed and therefore has multiple components that need to communicate via an internal 
		    TSF channel. When creating the TSF from the initial pair of components, either of these components may be identified as the 
		    TSF for the purposes of satisfying the meaning of "TSF" in this SFR.<h:br/><h:br/>
              
              The intention of this requirement is to ensure that there is a registration process that includes a positive enablement step by an administrator 
		    before components joining a distributed TOE can communicate with the other components of the TOE and before the new component can act as
		    part of the TSF. The registration process may itself involve communication with the joining component: many implementations use a bespoke
		    process for this, and the security requirements for the "registration communication" are then defined in <xref to="fel-cpc-func"/>.
		    Use of this "registration communication" channel is not deemed inconsistent with the requirement of <xref to="fel-cpc"/> 
              (i.e., the registration channel can be used before the enablement step, but only in order to complete the registration process).<h:br/><h:br/>
              
              The channel selection (for the registration channel) in <xref to="fel-cpc-func"/> is essentially a choice between the use of a normal 
		    secure channel that is equivalent to a channel used to communicate with external IT entities (FTP_ITC.1/OE_XFER_IT) or existing TOE components
		    (FPT_ITT.1/INTRA_XFER and FPT_ITT.1/INTRA_XFER_AGENT), or else a separate type of channel that is specific to registration 
		    (FTP_TRP.1/TRUSTPATH_ENROLL or FTP_TRP.1/TRUSTPATH_JOIN). If the TOE does not require a communications channel for registration (e.g., because the registration is
		    achieved entirely by configuration actions by an administrator at each of the components) then the main selection in
              <xref to="fel-cpc-func"/> is completed with the "No channel" option.<h:br/><h:br/>
              
              If the ST author selects the FTP_ITC.1/OE_XFER_IT or FPT_ITT.1/INTRA_XFER and FPT_ITT.1/INTRA_XFER_AGENT channel type in the main selection in 
		    <xref to="fel-cpc-func"/> then the TSS identifies the relevant SFR iteration that specifies the channel used. If the ST author
              selects the FTP_TRP.1/TRUSTPATH_ENROLL or FTP_TRP.1/TRUSTPATH_JOIN channel type, then the TSS (possibly 
              with support from the operational guidance) describes details of the channel and the mechanisms that it uses (and describes how the
              registration process ensures that the channel can only be used by the intended joiner and gatekeeper). Note that the FTP_TRP.1/TRUSTPATH_ENROLL or
              FTP_TRP.1/TRUSTPATH_JOIN channel type may require support from security measures in the operational environment (see the definition of 
              FTP_TRP.1/TRUSTPATH_ENROLL or FTP_TRP.1/TRUSTPATH_JOIN for details).<h:br/><h:br/>
              
              Note that the channel that is set up and used for registration may be adopted as a continuing internal communication channel (i.e., between
		    different TOE components) provided that the channel meets the requirements of FTP_ITC.1/OE_XFER_IT or FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT.
		    Otherwise the registration channel is closed after use and a separate channel is used for the internal communications.<h:br/><h:br/>
              
              Specific requirements for Preparative Procedures relating to FCO_CPC_EXT.1 are defined in the Evaluation Activities.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to verify that it describes the mechanism for registering distributed TOE components using a secure channel, whether this is a dedicated registration channel or the same channel that is used for protected communications once registered, and whether the functionality is implemented by the TSF or invoked from its platform.</TSS>
              <Guidance>The evaluator shall examine the guidance documentation to confirm that it contains instructions for enabling and disabling
		      communications with any individual component of a distributed TOE. The evaluator shall confirm that the method of disabling is such that
		      all other components can be prevented from communicating with the component that is being removed from the TOE (preventing the remaining 
		      components from either attempting to initiate communications to the disabled component, or from responding to communications from the
		      disabled component).</Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall confirm that an IT entity that is not currently a member of the distributed TOE cannot communicate with any
			  component of the TOE until the non-member entity is enabled by an administrator for each of the non-equivalent TOE components that
			  it is required to communicate with (non-equivalent TOE components are as defined in the minimum configuration for the distributed 
			  TOE)</test>
                  <test>The evaluator shall confirm that after enablement, an IT entity can communicate only with the components that it has been enabled for. 
			  This includes testing that the enabled communication is successful for the enabled component pair, and that communication remains
			  unsuccessful with any other component for which communication is possible but has not been explicitly enabled. <h:br/> 
                  Some TOEs may set up the registration channel before the enablement step is carried out, but in such a case the channel must not allow
                  communications until after the enablement step has been completed.</test>
                  <test>The evaluator shall separately disable each TOE component in turn and ensure that the other TOE components cannot then communicate 
			  with the disabled component, whether by attempting to initiate communications with the disabled component or by responding to 
			  communication attempts from the disabled component. In situations where one component acts as
			  the 'Gatekeeper' for all other components, 
        the test would involve disabling the components in turn on the Gatekeeper and ensuring that the TOE no longer communicates with disabled
        components.</test>
                </testlist>
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Enabling or disabling communications between a pair of components.</audit-event-descr>
				<audit-event-info>Identities of the endpoint's pairs enabled or disabled.</audit-event-info>
			</audit-event>
		</f-component>        
      </section>
	    
      <section id="fcs" title="Class FCS: Cryptographic Support">
        <ext-comp-def title="Cryptographic Key Management" fam-id="FCS_CKM_EXT">
          <fam-behavior>This family defines requirements for management of cryptographic keys using mechanisms beyond what are specified in CC Part 2.
          </fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="HTTPS Protocol" fam-id="FCS_HTTPS_EXT">
          <fam-behavior>This family defines requirements for protecting HTTP communications between the TOE and
            an external IT entity.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Initialization Vector Generation" fam-id="FCS_IV_EXT">
          <fam-behavior>This family defines requirements for generating IVs in accordance with
            NIST-approved cipher modes.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Cryptographic Key Storage" fam-id="FCS_STG_EXT">
          <fam-behavior>This family defines requirements for ensuring the protection of keys and
            secrets.</fam-behavior>
        </ext-comp-def>
        
        <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 <selectables>
                <selectable>invoke platform-provided functionality</selectable>
                <selectable>implement functionality</selectable>
              </selectables> <h:b>to</h:b> 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-ecdsa-erb-P384">P-384</selectable>
                    <selectable id="sel-exp-ak-ecdsa-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-ecdsa-rs-P384">P-384</selectable>
                    <selectable id="sel-exp-ak-ecdsa-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>
                
                <!-- 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.
	      </h:p><h:p>
              When generating ECC keys pairs for key agreement and if “ECDH” is claimed in FCS_CKM_EXT.7, 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.<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-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-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-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/>
		
		
						<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 <selectables>
                <selectable>invoke platform-provided functionality</selectable>
                <selectable>implement functionality</selectable>
              </selectables> <h:b>to</h:b> 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" status="feat-based">
          <depends on="key-encap-support"/>
          <depends on="key-wrap-support"/>
          <f-element id="fel-crypt-key-estab">
            <title>The TSF shall distribute cryptographic keys in accordance with a specified cryptographic 
              key distribution method <selectables>
                <selectable id="sel-ckm-2-encap">key encapsulation as defined in FCS_COP.1/KeyEncap</selectable>
                <selectable id="sel-ckm-2-wrap">key wrapping as defined in FCS_COP.1/KeyWrap</selectable>
              </selectables> that meets the following: [<h:i>none</h:i>].
            </title>
            <note role="application">
              <h:p>
                If "key encapsulation..." is selected, FCS_COP.1/KeyEncap is claimed. If "key wrapping..." is selected, FCS_COP.1/KeyWrap must be 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="fcs-ckm-6e1">
            <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 key or keying material destruction</assignable></selectable>
              </selectables>.
            </title>
          </f-element>
          <f-element id="fcs-ckm-6e2">
            <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
              <selectables>
                <selectable>invoking platform-provided functionality with the following rules: <h:ul>
                  <h:li>For volatile memory, the destruction shall be executed by <selectables>
                    <selectable>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>
                      <selectable>ones</selectable>
                      <selectable>a new value of a key</selectable>
                      <selectable><assignable>some value that does not contain any keying material</assignable></selectable>
                    </selectables>,</selectable>
                    <selectable>removal of power to the memory,</selectable>
                    <selectable>destruction of reference to the key directly followed by a request for garbage collection</selectable>
                  </selectables></h:li>
                  <h:li>For non-volatile memory that consists of the invocation of an interface provided by the underlying platform that <selectables>
                    <selectable>logically addresses the storage location of the key and performs a <selectables>
                      <selectable>single</selectable>
                      <selectable> <assignable>ST author defined multi-pass</assignable></selectable>
                    </selectables> 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>
                      <selectable>ones</selectable>
                      <selectable>a new value of a key</selectable>
                      <selectable><assignable>some value that does not contain any keying material</assignable></selectable>
                    </selectables>,</selectable>
                    <selectable>instructs the underlying platform to destroy the abstraction that represents the key</selectable>
                  </selectables>
                  </h:li>
                </h:ul></selectable>
                <selectable>implementing key destruction 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></selectable></selectables> that meets the following: [<h:i>no standard</h:i>].
            </title>
            <note role="application">
              <h:p>
                Even if "invoking platform-provided functionality with the following rules" is selected in <xref to="fcs-ckm-6e2"/>, the TSF must determine when the plaintext keys and keying material are no longer needed and thus should be destroyed.
              </h:p>
              <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>
                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><h:p>
                Since this is a software-only TOE, the hardware controllers that manage non-volatile storage media are necessarily outside the TOE boundary. Thus, the TOE developer is likely to have little control over—or insight into—the functioning of these storage devices. The TOE must make a “best-effort” to destroy disused cryptographic keys by invoking the appropriate hardware interfaces—recognizing that the specific actions taken by the hardware are out of the TOE’s control. But in cases where the TOE has insight into the non-volatile storage technologies used by the hardware, or where the TOE can specify a preference or method for destroying keys, the destruction should be executed by a single, direct overwrite consisting of pseudorandom data or a new key, by a repeating pattern of any static value, or by a block erase.
              </h:p><h:p>
                The interface referenced in the requirement could take different forms, the most likely of which is an API to an OS kernel. There may be various levels of abstraction visible. For instance, in a given implementation that overwrites a key stored in non-volatile memory, the application may have access to the file system details and may be able to logically address specific memory locations. In another implementation where an application instructs the underlying platform to destroy the representation of a key stored in non-volatile memory, the application may simply have a handle to a resource and can only ask the platform to delete the resource, as may be the case with a platforms secure key store. The latter implementation should only be used for the most restricted access. The level of detail to which the TOE has access should be described in the TSS.
              </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><h:p>
                  If platform-provided functionality is invoked for key destruction, the evaluator shall verify that the TSS identifies the platform functions used for this.
                </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, whether the TSF destroys this key material itself or invokes the platform to do so. 
                </h:p><h:p>
                  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>
                <h:p>
                  In cases where testing reveals that third-party software modules or programming language run-time environments do not properly overwrite keys, this fact must be documented. Likewise, it must be documented if there is no practical way to determine whether such modules or environments destroy keys properly.</h:p><h:p>
                    In cases where it is impossible or impracticable to perform the above tests, the evaluator shall describe how keys are destroyed in such cases, to include:<h:ul>
                      <h:li>Which keys are affected</h:li>
                      <h:li>The reasons why testing is impossible or impracticable</h:li>
                      <h:li>Evidence that keys are destroyed appropriately (e.g., citations to component documentation, component developer/vendor attestation, component vendor test results)</h:li>
                      <h:li>Aggravating and mitigating factors that may affect the timeliness or execution of key destruction (e.g., caching, garbage collection, operating system memory management)</h:li>
                    </h:ul>
                  </h:p>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
		</f-component> 
        
        
        <f-component id="sfr-fcs-ckm-ext-7" cc-id="fcs_ckm_ext.7" name="Cryptographic Key Agreement" status="feat-based">
          <depends on="key-agreement-support"/>
          
          <consistency-rationale/>
          <comp-lev>requires that cryptographic key agreement 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/>[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.2 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 id="fcs-ckm-ext-7e1">
            <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-sels" title="Allowable choices for FCS_CKM_EXT.7">
                  <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-sels"/> provides the allowable choices for
                    completion of the selection operations of FCS_CKM_EXT.7.</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>
              </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 trusted channels. This will generally apply to all conformant TOEs, except in the rare (but possible) case where only key encapsulation is used.<h:p/>
              All of the above algorithms with the selectable parameters are CNSA compliant.<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.
              </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-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.<h:p/>
              </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>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-aead-aes-gcm">
                  <col>AES-GCM</col>
                  <col>AES in GCM mode with non-repeating IVs using <selectables>
                    <selectable>deterministic</selectable>
                    <selectable>RBG-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.
            </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.<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">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 [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" name="Cryptographic Operation - Hashing" iteration="Hash">
          <f-element id="fel-hash">
            <title>The TSF shall <selectables>
                <selectable>invoke platform-provided functionality</selectable>
                <selectable>implement functionality</selectable>
              </selectables> <h:b>to</h:b> perform <h:b>cryptographic hashing</h:b> in accordance with 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">In accordance with CNSA:<h:ul>
              <h:li>SHA-1 hash is no longer permitted to be used as a hash function, </h:li>
              <h:li>SHA3 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 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.</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.<h:br/><h:br/>
                
                If "invoke platform-provided functionality" is selected:<h:br/><h:br/>                
                  The evaluator shall examine the TSS to verify that it describes (for each 
			            supported platform) how the hash functionality is invoked for each digest size selected 
			            in the MDM server's ST (it should be noted that this may be through a mechanism that is not
			            implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as
			            part of this evaluation activity).<h:br/><h:br/>
                
                If "implement functionality" is selected:<h:br/><h:br/>
                  The evaluator shall check that the association of the hash function with other
                  TSF cryptographic functions (for example, the digital signature
                  verification function) is documented in the TSS. The evaluator shall
                  check the AGD documents to determine that any configuration that is required to be
                  done to configure the functionality for the required hash sizes is present. The
                  TSF hashing functions can be implemented in one of two modes.<h:br/><h:br/>
                
                  The first mode is the byte-oriented mode. In this mode the TSF
                  only hashes messages that are an integral number of bytes in length (i.e., the
                  length (in bits) of the message to be hashed is divisible by 8).<h:br/><h:br/>
                  
                  The second mode is the bit-oriented mode. In this mode the TSF hashes messages of
                  arbitrary length. As there are different tests for each mode, an indication is given
                  in the following sections for the bit-oriented vs. byte-oriented TestMAC.
              </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/>
                
                <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/>
                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/>
                There are two versions of the Monte Carlo test for SHA-1 and SHA-2. Either one is acceptable.
                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> 
                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: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" name="Cryptographic Operation - Keyed-Hash" iteration="KeyedHash">
          <f-element id="fcs-cop-1-keyedhash">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> <h:b>to</h:b> 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-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">The intent of this requirement is to specify the keyed-hash
              message authentication function used when used for key establishment purposes for the
              various cryptographic protocols used by the TOE (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:br/><h:br/>
            </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:br/><h:br/>
                
                If "invoke platform-provided functionality" is selected:<h:br/><h:br/>
                The evaluator shall examine the TSS to verify that it describes (for each supported
                platform) how the keyed-hash functionality is invoked for each mode and key size
                selected in the MDM server's ST (it should be
                noted that this may be through a mechanism that is not implemented by the 
                MDM server; nonetheless, that mechanism will be identified in the
                TSS as part of this evaluation activity).
                <h:br/><h:br/>
                If "implement functionality" is selected:<h:br/><h:br/>		  
                The evaluator shall examine the TSS to ensure that it specifies
                the following values used by the HMAC function: key length, hash function used,
                block size, and output MAC length used.</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-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>
        
        <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" status="sel-based">
          <depends on-sel="sel-ckm-2-wrap"/>
          <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>RBG-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">
              This SFR is claimed when "key wrapping" is selected in FCS_CKM.2.1. 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 <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> <h:b>to</h:b> 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>
       
                
                <!-- 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>
                
              </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/>

						
						<!-- 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>
						
						<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 <selectables>
                <selectable>invoke platform-provided functionality</selectable>
                <selectable>implement functionality</selectable>
              </selectables> <h:b>to</h:b> 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" status="sel-based">
          <depends on-sel="fcs_tlsc_ext.1.2_7">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_8">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_14">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_15">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_18">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_19">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_20">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_21">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_tlsc_ext.1.2_22">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_7">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_8">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_14">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_15">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_18">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_19">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_20">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_21">
            <external-doc ref="tls"/>
          </depends>
          <depends on-sel="fcs_dtlsc_ext.1.2_22">
            <external-doc ref="tls"/>
          </depends>
          <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> [CTR]
                    </col>
                  </selectable>
                </selectables>
              </title>

              <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, 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>
		
        <f-component cc-id="fcs_https_ext.1" name="HTTPS Protocol" status="sel-based">
          <depends on-sel="TRP1_HTTPS_INVOKE" on-sel2="TRP1_HTTPS_IMPLEMENT"/>
          <depends on-sel="TRP2_HTTPS_INVOKE" on-sel2="TRP2_HTTPS_IMPLEMENT"/>
          <depends on-sel="ITC1_HTTPS_INVOKE" on-sel2="ITC1_HTTPS_IMPLEMENT"/>
          <depends on-sel="ITC2_HTTPS_INVOKE" on-sel2="ITC2_HTTPS_IMPLEMENT"/>
          <depends on-sel="ITT1_HTTPS_INVOKE" on-sel2="ITT1_HTTPS_IMPLEMENT"/>
          <depends on-sel="ITT2_HTTPS_INVOKE" on-sel2="ITT2_HTTPS_IMPLEMENT"/>
          <consistency-rationale/>
          <comp-lev>defines requirements for the implementation of the HTTPS protocol.</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 of the certificate validity check.</h:li>
              <h:li>Issuer Name and Subject Name of certificate.</h:li>
              <h:li><selectables>
                <selectable>User's authorization decision</selectable>
                <selectable>No additional information</selectable>
              </selectables></h:li>
            </h:ul>
          </audit>
          <dependencies>
            <no-link>FCS_TLS_EXT.1</no-link> TLS Protocol<h:br/>
            <no-link>[FCS_TLSC_EXT.1 TLS Client Protocol or <h:br/>
              FCS_TLSS_EXT.1 TLS Server Protocol</no-link>
          </dependencies>
          
          <f-element id="fcs-https-ext-1e1">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality to implement</selectable>
              <selectable>implement</selectable>
            </selectables> the HTTPS protocol that complies with RFC 2818.</title>
          </f-element>
          <f-element id="fcs-https-ext-1e2">
            <title>The TSF shall 
              <selectables>
                <selectable>invoke platform-provided functionality to implement</selectable>
                <selectable>implement</selectable>
              </selectables> HTTPS using TLS in accordance with <xref to="tls"/>. 
            </title>
           <note role="application">
              The requirement is claimed if the TSF selects HTTPS  in any iteration of FPT_ITT.1, FTP_ITC.1, or FTP_TRP.1. It is expected that if the TOE invokes platform-provided functionality to perform HTTPS, that the platform implementation of HTTPS is conformant to the functional package. 
            </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS describes whether the TOE's HTTPS functionality is implemented by the TOE or invoked from the TOE platform. If the TOE implements HTTPS, the evaluator shall verify that the corresponding claims from the TLS Functional Package (client, server, or both) are present.</TSS>
              <Guidance/>
              <Tests>
                <testlist>
                  <test>The evaluator shall attempt to establish an HTTPS connection with a web server, web a client, or both (depending on whether the TOE acts as a web client, a web server, or both), observe the traffic with a packet analyzer, and verify 
				  that the connection succeeds and that the traffic is identified as TLS or HTTPS.</test>
                </testlist>
				Other tests are performed in conjunction with the TLS evaluation activities.
	      </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 type="optional">User's authorization decision</audit-event-info>
			</audit-event>
		</f-component>         
     		
        <f-component cc-id="fcs_iv_ext.1" name="Initialization Vector Generation" status="sel-based">
          <depends on-sel="fcs_stg_enc"/>
          <consistency-rationale/>
          <comp-lev>defines requirements for generating IVs.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <!--<selection-depends req="FCS_STG_EXT.2.1" ids="fcs_stg_enc"/>-->
          <f-element id="fcs-iv-est-1e1">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to generate IVs in accordance with <xref to="iv"/>.</title>
            <note role="application">This requirement must be included in the ST
              if the selection in FCS_STG_EXT.1 indicates that the TSF is protecting private keys
              and persistent secrets with encryption rather than the platform-provided key
              storage.<h:br/><h:br/> <xref to="iv"/> lists the requirements for composition of IVs according to
              the corresponding 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 encryption.<h:br/><h:br/>
              <h:b><ctr ctr-type="Table" pre="Table " id="iv">: References and IV Requirements for NIST-approved Cipher Modes</ctr></h:b>             
              <h:table>
                <h:tr>
                  <h:td><h:b>Cipher Mode</h:b></h:td>
                  <h:td><h:b>Reference</h:b></h:td>
                  <h:td><h:b>IV Requirement</h:b></h:td>
                </h:tr>
                <h:tr>
                  <h:td>Electronic Codebook (ECB)</h:td>
                  <h:td>SP800-38A</h:td>
                  <h:td>No IV</h:td>
                </h:tr>
                <h:tr>
                  <h:td>Counter (CTR)</h:td>
                  <h:td>SP800-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>SP800-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>SP800-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>SP800-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>XOR Encrypt XOR (XEX) Tweakable Block Cipher with Ciphertext
                    Stealing (XTS) </h:td>
                  <h:td>SP800-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>SP800-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>SP800-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>SP800-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>SP800-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>
            </note>
            <aactivity>
              <TSS>If "invoke platform-provided functionality" is selected:<h:br/><h:br/>
              The evaluator shall examine the TSS to verify that it describes (for each supported platform) how the IV generation is invoked for each mode
			  selected in the MDM server's ST (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that
			  mechanism will be identified in the TSS as part of this evaluation activity).<h:br/><h:br/>
                If "implement functionality" is selected:<h:br/><h:br/>
              The evaluator shall examine the TSS to ensure that it details the encryption of user credentials, persistent secrets, and private keys and the 
			  generation of the IVs used for that encryption.</TSS>
              <Guidance/>
              <Tests>The evaluator shall ensure that the generation of IVs for each key encrypted by the same KEK meets <xref to="iv"/>.
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component>
        
        <f-component cc-id="fcs_rbg.1" name="Random Bit Generation (RBG)" id="fel-rbg">          
   			<f-element id="fel-rbg-init-seed">
				<title>
				  The TSF shall <h:b><selectables>
				    <selectable>invoke platform-provided functionality</selectable>
				    <selectable id="tsf-drbg">implement functionality</selectable>
				  </selectables></h:b> <h:b>to</h:b> perform <h:b>all</h:b> 
					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>
   			  <note role="application">
   			    If "implement functionality" is selected, FPT_FLS.1 and FPT_TST.1 are claimed.
   			  </note>
				<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 and whether they are implemented by the TSF or invoked from the underlying platform.</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>
							[conditional: "implement functionality" is selected in FCS_RBG.1.1] 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>    
		
		<!-- FCS_RBG.2 Random Bit Generation (External Seeding) -->
		<!-- Claimed when FCS_RBG.1.2 selects "TSF interface for seeding -->
		<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.
					</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>
		
		<!-- FCS_RBG.3 Random Bit Generation (Internal Seeding - Single Source) -->
		<!-- Claimed when FCS_RBG.1.2 selects "TSF entropy source..." -->
		<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 specified 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_stg_ext.1" name="Cryptographic Key Storage">
          <consistency-rationale/>
          <comp-lev>defines requirements for the security of persistent secrets and private keys.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT.
          <h:ul>
            <h:li>Import keys or secrets into the secure key storage</h:li>
          </h:ul>
          </management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fel-crypto-key-store">
            <title>The TSF shall use <selectables>
              <selectable> platform-provided key storage</selectable>
              <selectable id="fcs_stg_enc"> encryption as defined in FCS_STG_EXT.2</selectable>
              </selectables> for all persistent secrets and private keys.</title>
            <!--TODO: check this note and aa-->
            <note role="application">This requirement ensures that persistent secrets (credentials, secret keys) and private keys are stored securely when not in 
			use. If some secrets or keys are manipulated by the TOE and others are manipulated by the platform, then both of the selections can be specified by the ST 
			author and the ST author must identify in the TSS those keys which are manipulated by the TOE and those by the platform. <h:br/><h:br/> 
              If "encryption as defined in FCS_STG_EXT.2" is selected then FCS_STG_EXT.2 and FCS_IV_EXT.1 must be included in the ST.<h:br/><h:br/>
              If the TSF is an application, and not a dedicated server, then it should store its private keys in the platform-provided key storage.<h:br/><h:br/> 
              The ST author is responsible for selecting the manner in which the keys are stored and where they are stored in the selections above. </note>
            <aactivity>
              <TSS>Regardless of whether this requirement is met by the TSF or the TOE platform, the evaluator shall check the TSS to ensure that it lists each 
			  persistent secret (credential, secret key) and private key needed to meet the requirements in the ST. For each of these items, the evaluator shall 
			  confirm that the TSS lists for what purpose it is used, and how it is stored. The evaluator then performs the following actions. <h:br/><h:br/>
              Persistent secrets and private keys manipulated by the TOE platform:<h:br/><h:br/> 
              <!-- TODO: -Do we still need this?? Old activity>For each platform listed in the ST, the evaluator shall examine the ST of the platform to ensure
			  that the persistent secrets and private keys listed as being stored by the platform in the MDM server ST are identified as being protected in that
			  platform's ST.<h:br/><h:br/><-->
              The evaluator shall examine the TSS to verify that it describes (for each supported platform) how the key storage functionality is invoked for each 
			  persistent secret and private key described in the TSS (it should be noted that this may be through a mechanism that is not implemented by the MDM 
			  Server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).<h:br/><h:br/> 
              Persistent secrets and private keys manipulated by the TSF:<h:br/><h:br/> 
              The evaluator reviews the TSS to determine that it makes a case that, for each item listed as being manipulated by the TOE, it is not written
			  unencrypted to persistent memory, and that the item is stored by the platform.
	      </TSS>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
		
        <f-component cc-id="fcs_stg_ext.2" name="Encrypted Cryptographic Key Storage" status="sel-based">
          <depends on-sel="fcs_stg_enc"/>
          <consistency-rationale/>
          <comp-lev>defines requirements for preventing access to private keys and persistent
            secrets.</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="fcs-stg-ext-2e1">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
              </selectables> to encrypt all keys using AES in the <selectables>
                <selectable>Key Wrap (KW) mode</selectable>
                <selectable>Key Wrap with Padding (KWP) mode</selectable>
                <selectable>GCM</selectable>
                <selectable>CCM</selectable>
                <selectable>CBC mode</selectable>
              </selectables>.</title>
            <note role="application">This requirement states that keys used by the TSF shall not be kept in plaintext. The intent of this requirement is to ensure 
			that the private keys, credentials, and persistent secrets cannot be accessed in the TOE in an unencrypted state, allowing an attacker to access keys 
			without having to exhaust the AES key space. <h:br/><h:br/> 
              This requirement must be included in the ST if the selection in FCS_STG_EXT.1 indicates that the TSF is protecting private keys and persistent secrets
			  with encryption rather than the platform-provided key storage.<h:br/><h:br/> 
              <!--If this requirement is included in the ST, <xref to="FCS_IV_EXT.1"/> must also be included.--></note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to ensure it describes in detail how user credentials, persistent secret and private keys are stored and
			  encrypted. The evaluator shall review the TSS to determine that it makes a case that key material is not written unencrypted to persistent memory 
			  and that it identifies the mode of encryption.<h:br/><h:br/>
              If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform)
			  how the key encryption functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; 
			  nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).
	      </TSS>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
      </section>
	  
      <section id="fia" title="Class FIA: Identification and Authentication">
        <ext-comp-def title="Client Authorization" fam-id="FIA_CLI_EXT">
          <fam-behavior>
            This family defines requirements for unique certificate or token use.
          </fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Enrollment" fam-id="FIA_ENR_EXT">
          <fam-behavior>
            This family defines requirements for authenticating remote users and limiting user
            enrollment.
          </fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Client Tokens" fam-id="FIA_TOK_EXT">
          <fam-behavior>
            This family defines requirements for using a unique device to generate unique tokens for
            client devices.
          </fam-behavior>
        </ext-comp-def>      
        
        
        <f-component cc-id="fia_cli_ext.1" name="Client Authorization">
          <consistency-rationale/>
          <comp-lev>defines requirements for a unique certificate or token for each client device.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>No dependencies.</dependencies>          
          
          <f-element>
            <title>The TSF shall require a unique <selectables>
              <selectable>certificate</selectable>
              <selectable id="fia_cli_token">token as defined in FIA_TOK_EXT.1</selectable>
            </selectables> for each client device.</title>
            <note role="application">
              Token is used here in a generic way to be some form of unique identifier that is not certificate-based as defined in
              FIA_TOK_EXT.1. If "<xref to="fia_cli_token"/>"" is selected, FIA_TOK_EXT.1 must be included in the ST.
            </note>
              <aactivity>              
              <TSS>The evaluator shall ensure that the TSS describes how the client is uniquely identified.</TSS>
              <Guidance>None.</Guidance>
              <Tests>None.</Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="fia_enr_ext.1" name="Enrollment">
          <consistency-rationale/>
          <comp-lev>defines requirements for authenticating and limiting user actions.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT.
            <h:ul>
              <h:li>Configure the specific device models.</h:li>
              <h:li>Configure the specific time period.</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 MD user authentication.</h:li>
            <h:li>Presented username.</h:li>
          </h:ul>
          </audit>
          <dependencies>
            <no-link>FIA_UAU.4</no-link> Single-Use Authentication Mechanisms<h:br/>
          <no-link>FMT_SMF.1</no-link> Specification of Management Functions
          </dependencies>
          
          <f-element id="fel-enr-tsf">
            <title>The TSF shall authenticate the remote users over a trusted channel during the enrollment of a MD.</title>
            <note role="application">The MDM server may use its own directory or a directory server to perform the authentication decision for users performing
			the remote enrollment of a MD.</note>
            <aactivity level="element"> 
              <TSS>The evaluator shall examine the TSS and verify that it describes the process of enrollment for each MDM agent or platform listed as supported 
			  in the ST. This description shall include the trusted path used for enrollment (FTP_TRP.1/TRUSTPATH_ENROLL), the method of user authentication
			  (username or password, token, etc.), the method of authentication decision (local or remote authentication services), and the actions performed on
			  the MDM server upon successful authentication. </TSS>
              <Guidance>The evaluator shall examine the operational guidance to verify that it describes the process by which the TOE enrolls mobile devices into management.</Guidance>
              <Tests>
                <testlist>
                <test>The evaluator shall attempt to enroll a device without providing correct credentials. The evaluator shall verify that the device is not 
				enrolled and that the described enrollment actions are not taken.</test>
                <test>The evaluator shall attempt to enroll the device providing correct credentials. The evaluator shall verify that the device is enrolled 
				and that the described enrollment actions are taken.</test>
		</testlist>
	      </Tests>
            </aactivity>
          </f-element>
          <f-element id="fel-enr-limit">
            <title>The TSF shall limit the user's enrollment of devices to devices specified by <selectables> <selectable>IMEI</selectable><selectable>
			<assignable>a unique device ID</assignable></selectable></selectables> and <selectables>
              <selectable>specific device models</selectable>
                <selectable>a number of devices</selectable>
                <selectable>specific time period</selectable>         
                <selectable><assignable>other features</assignable></selectable>
                <selectable>no other features</selectable>
              </selectables>. </title>
            <note role="application"> This requirement is designed to permit the enterprise to restrict users' enrollment of devices. A unique device ID is required
			to limit the user's enrollment. The unique device ID can be the IMEI or an ID specific to a particular platform. </note>         
            <aactivity level="element">
              <TSS>The evaluator shall examine the TSS and verify that it implements a policy to limit the user's enrollment of devices.</TSS>
              <Guidance>The evaluator shall ensure that the administrative guidance describes the methods of restricting user enrollment and that it instructs 
			  the administrator how to configure the restrictions.<h:br/><h:br/>
	      </Guidance>
              <Tests>For each type of policy selected, the evaluator shall perform the following: <testlist>
                  <test>The evaluator shall attempt to configure the MDM server according to the administrative guidance in order to prevent enrollment. The
				  evaluator shall verify that the user cannot enroll a device outside of the configured limitation. (For example, the evaluator may try to enroll
				  a disallowed device, or may try to enroll additional devices beyond the number allowed.)</test>
                </testlist>
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Failure of MD user authentication</audit-event-descr>
				<audit-event-info>Presented username</audit-event-info>
			</audit-event>
		</f-component> 
		
		    <f-component cc-id="fia_tok_ext.1" name="Client Tokens" status="sel-based">
		      <depends on-sel="fia_cli_token"/>		        
		      <consistency-rationale/>
		      <comp-lev>defines requirements for generating unique tokens.</comp-lev>
		      <management>There are no management activities foreseen.</management>
		      <audit>There are no auditable events foreseen.</audit>
		      <dependencies>No dependencies.</dependencies>
		      
		      <f-element>
		        <title>
		          The TSF shall <selectables>
		            <selectable>invoke platform-provided functionality</selectable>
		            <selectable>implement functionality</selectable>
		          </selectables> to use <selectables>
		            <selectable>IMEI</selectable>
		            <selectable><assignable>other unique device ID</assignable></selectable>
		          </selectables> to generate a unique token for each client device.
            </title>
		        <note role="application">
              This SFR is included in the ST if "<xref to="fia_cli_token"/>" is selected in FIA_CLI_EXT.1.
            </note>
            <aactivity>
              <TSS>
                The evaluator shall review the TSS and verify that the TSF uses either unique identifiers from the client device
                or a server-specific mechanism to generate a unique token that will be used for verifying the identity of the 
                client device. If the server generates the token using cryptographic functions, it must use algorithms in
                FCS_COP.1(ANY) (specific algorithms as needed by the vendor).<h:br/>
                <h:br/>
                If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it 
                describes (for each supported platform) how this functionality is invoked (it should be noted that this may be 
                through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in
                the TSS as part of this evaluation activity).<h:br/>
                <h:br/>
                If "implement functionality" is selected, the evaluator shall examine the TSS to verify that it describes the
                methods to generate the token.
              </TSS>
              <Guidance>None.</Guidance>
              <Tests>
                <testlist>
                  <test>
                For each MDM agent or platform listed as supported in the ST, the evaluator shall use appropriate combinations of specialized operational environment and development tools (debuggers, simulators, etc.) for the TOE and instrumented TOE builds as needed to perform this test. The evaluator shall concurrently enroll ten devices and ensure that the token for each is unique, per the methods described in the TSS.
                  </test>
                </testlist>
              </Tests>
            </aactivity>		        
		      </f-element>
		      <audit-event/>
		    </f-component>
        
        <f-component cc-id="fia_uau.1" name="Timing of Authentication">
          <f-element id="fia-uau-1e1">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> allow <assignable>list of TSF mediated actions</assignable> on behalf of the user to be performed before the user is authenticated 
			  <h:b>with the server</h:b>.</title>
            
          </f-element>
          <f-element id="fel-uau-func">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>that</h:b> requires each user to be successfully authenticated <h:b>with the
                server</h:b> before allowing any other TSF-mediated actions on behalf of that user.</title>
            <note role="application">This requirement ensures that any user attempting to access the TSF must be authenticated. These users may be administrators
			attempting to administer the TOE or ordinary users attempting to enroll for management by the MDM system. The ST author is responsible for assigning 
			the list of actions that can take place before this authentication. The TSF or TOE platform may
			use enterprise authentication to meet this 
			requirement.<h:br/><h:br/>
              For distributed TOEs, at least one TOE component has to support the authentication of administrators but not necessarily all TOE components. In case not 
			  all TOE components support authentication for administrators the TSS must describe how administrators are authenticated and identified.
            </note>
            <aactivity>              
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform)
                how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that
                mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall examine the operational guidance to verify that it describes the process by which users authenticate to the TOE.</Guidance>
              <Tests>
                The evaluator shall perform the following tests:<h:br/><h:br/>
                <testlist>
                  <test>The evaluator shall attempt to perform the prohibited actions before authentication. The evaluator shall verify the actions cannot be performed.</test>
                  <test>The evaluator shall attempt to perform the prohibited actions after authentication. The evaluator shall verify the actions can be performed.</test>
              </testlist>
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component>        
        
        <f-component cc-id="fia_uau.4" iteration="ENROLLMENT" name="Single-Use Authentication Mechanisms" status="objective">
          <f-element id="fia-uau-4e1">
            <title>The TSF shall prevent reuse of authentication data related to <assignable>identified authentication mechanisms</assignable>.</title>                     
            
            <note role="application">This requirement references the authentication mechanisms
              used to authenticate the user for enrollment in <xref to="fel-enr-tsf"/>. If a username and
              password is used to authenticate the user for enrollment, the password must not be
              reused. Thus if the user has two devices enrolled in management or needs to re-enroll
              the same device (i.e., after a device wipe), the password must be different for each
              enrollment. Additionally, if two different users are enrolling the password must be
              different for each user. </note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS contains a description
                of the process of enrollment for each MDM agent or platform listed as
                supported in the ST. This description shall include the method of
                user authentication (username or password, token, etc.) and how reuse of the
                authentication data is prevented.
	      </TSS>
        <Guidance>The evaluator shall ensure that the administrative guidance describes the methods
          of restricting user enrollment and that it instructs the administrator on how to configure
          the restrictions.</Guidance>
	      <Tests>
              <testlist>
                <test>The evaluator shall enroll a device providing correct credentials. The
                  evaluator shall attempt to enroll a second device using the same credentials used
                  to enroll the first device. The evaluator shall verify that the second device
                  could not enroll. </test>
              </testlist>
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Attempt to reuse enrollment data</audit-event-descr>
				<audit-event-info>Enrollment data</audit-event-info>
			</audit-event>
		</f-component>
      </section>
	  
      <section id="fmt" title="Class FMT: Security Management">
        <ext-comp-def title="Trusted Policy Update" fam-id="FMT_POL_EXT">
          <fam-behavior>This family describes how to use digitally signed policies and updates
            by using private keys, and validating the policy is appropriate.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Security Attribute Expiration" fam-id="FMT_SAE_EXT">
          <fam-behavior>This family defines the requirements for using expiration time for
            enrollment and denying enrollment if that time has passed.</fam-behavior>
        </ext-comp-def>
	  
        <f-component cc-id="fmt_mof.1" name="Management of Security Functions Behavior" iteration="FUNCBE">
          <f-element id="fel-gen-mas">
            <title>The TSF shall restrict the ability to <h:b>perform</h:b> the functions <h:ul>
                <h:li>enable/disable/modify/and monitor policies listed in FMT_SMF.1/SERVER_CONF_AGENT</h:li>
                <h:li>listed in FMT_SMF.1/SERVER_CONF_SERVER</h:li>
              <h:li><selectables>
                <selectable id="mas">enable/disable/modify policies listed in FMT_SMF.1/MAS</selectable> <!-- NOTE: This is the hook to bring in MAS -->
                <selectable>no other functions</selectable>
              </selectables></h:li>
              </h:ul> to [<h:i>authorized administrators</h:i>].</title>
            <note role="application">
              <h:p>
              This requirement outlines the functions that administrators will have the power to enable, disable, modify, and monitor functions and policies listed in FMT_SMF.1/SERVER_CONF_AGENT. It also includes functions necessary to maintain and configure the MDM server itself, as described in FMT_SMF.1/SERVER_CONF_SERVER.
              </h:p>
              <h:p>
              You must select "enable/disable/modify policies listed in FMT_SMF.1/MAS" if the TOE includes MAS functionality and FMT_SMF.1/MAS, FAU_GEN.1/MAS_SERVER, FMT_MOF.1/MANAGEMENT_MAS, FMT_SMR.1/SECMAN_ROLES_MAS must be included in the ST.
              </h:p>
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to ensure that it describes what security management functions are restricted to the
			  administrator and what actions can be taken for each management function. The evaluator shall verify that the security management functions are 
			  restricted to authorized administrators.</TSS>
              <Guidance>The evaluator shall examine the operational guidance to verify that it describes the management functions that are available to authorized administrators and how administrators are authorized to perform those particular functions (e.g., default for the account, role membership, group membership).</Guidance>
              <Tests>
              <testlist>
                <test>The evaluator shall attempt to access the functions and policies in FMT_SMF.1/SERVER_CONF_AGENT as an unauthorized user and verify that the 
				attempt fails.</test> 
                <test>[conditional] If "enable/disable/and modify policies listed in FMT_SMF.1/MAS" is selected, the evaluator shall attempt to access the functions and policies in FMT_SMF.1/MAS as an unauthorized user and verify that the
				attempt fails.</test>
              </testlist>
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Issuance of command to perform function</audit-event-descr>
				<audit-event-info>Command sent and identity of MDM agent recipients</audit-event-info>
			</audit-event>
			<audit-event>
				<audit-event-descr>Change of policy settings</audit-event-descr>
				<audit-event-info>Policy changed and value or full policy</audit-event-info>
			</audit-event>
		</f-component>
		
        <f-component cc-id="fmt_mof.1" iteration="MANAGEMENT_ENROLL" name="Management of Security Functions Behavior (Enrollment)">
          <f-element id="fmt-mof-1e1">
            <title>The <h:b>MDM server</h:b> shall restrict the ability to
              [<h:b><h:i>initiate the enrollment process</h:i></h:b>] to [<h:i>authorized 
			administrators and MD users</h:i>].</title>
            <note role="application">
	      This requirement outlines the enrollment functions that both administrators and MD users may perform.
	      The enrollment actions are identified in the TSS as a part of FIA_ENR_EXT.1.
	    <h:br/><h:br/> The authorized administrator does not remotely initiate enrollment of the MDs that are in the possession of users but may enroll
		MDs when they are in the possession of the administrator, for example, before distributing the MDs to the users. </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS and verify that it describes how unauthorized users are prevented from enrolling in the MDM services.</TSS>
              <Guidance>The evaluator shall examine the operational guidance to verify that it describes the enrollment process and any restrictions that may prevent unauthorized enrollment.</Guidance>
              <Tests>The test of this function is performed in conjunction with FIA_ENR_EXT.1.</Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Enrollment by a user</audit-event-descr>
				<audit-event-info>Identity of user</audit-event-info>
			</audit-event>
		</f-component>
		
        <f-component cc-id="fmt_mof.1" iteration="MANAGEMENT_MAS" name="Management of Functions in (MAS Server Downloads)" status="sel-based">
          <depends on-sel="mas"/>
          <f-element id="fmt-mof-1e1-mas">
            <title>The <h:b>MAS server</h:b> shall restrict the ability to [<h:i>enable, modify the
              behavior of</h:i>] the functions [<h:i>downloading applications</h:i>] to
              [<h:i>enrolled MDs that are compliant with MDM policies and assigned to a
                user in the application access group</h:i>].            
            </title>
            <note role="application">
              This requirement is claimed if "enable/disable/modify policies listed in
              FMT_SMF.1/MAS" is selected in FMT_MOF.1.1/FUNCBE.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that all methods of initiating an application download or update push are specified.</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains how to initiate an application download or update push.</Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall ensure that the MAS server verifies that the MD is enrolled in the MDM server and is in a compliant state. The evaluator shall verify that either none, or only those applications needed for enrollment, can be downloaded from the MAS server prior to enrolling the MD with the MDM.</test>
                  <test>The evaluator shall ensure that the MAS server verifies that the MD is enrolled in the MDM server and is in a compliant state. The evaluator shall make policy changes to make the enrolled MD non-compliant. The evaluator shall verify that either none, or only those applications needed to bring the MD back into compliance, are able to be downloaded.</test>
                  <test>The evaluator shall ensure that the MAS server verifies that the MD is enrolled in the MDM server and is in a compliant state. The evaluator shall unenroll the MD and verify that an application can not be downloaded from the MAS server after unenrollment.</test>
                </testlist>
	            </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
		
        <f-component cc-id="fmt_pol_ext.1" name="Trusted Policy Update">
          <consistency-rationale/>
          <comp-lev>defines requirements for using digitally signed policies and policy updates.</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>Attempt to reuse enrollment data.</h:li>
              <h:li>Enrollment data.</h:li>
            </h:ul></audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fmt-pol-ext-1e1">
            <title>The TSF shall provide digitally signed policies and policy updates to the <selectables>
              <selectable>MDM agent</selectable>
              <selectable>subordinate MDM server</selectable>
            </selectables>.</title>
            <note role="application">The intent of this requirement is to cryptographically tie the policies to the enterprise that mandated the policy, not to
              protect the policies in transit (as they are already protected by FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT or FTP_ITC.1/OE_XFER_AGENT). This is especially critical for users who connect to multiple enterprises.</note>
          </f-element>
        <f-element id="fmt-pol-ext-1e2">
          <title>The TSF shall sign policies and policy updates using a private key associated with <selectables>
            <selectable>an X.509 certificate</selectable>
            <selectable>a public key provisioned to the MDM agent</selectable>
            <selectable>a public key provisioned to the subordinate MDM server</selectable>
          </selectables>
          trusted by the MDM agent or subordinate MDM server for policy verification.</title>
          <note role="application">
            If "an X.509 certificate" is selected, the ST author includes "policy signing" in the assignment in FIA_X509_EXT.2.1 in <xref to="X509"/>.
          </note></f-element>
        <f-element id="fmt-pol-ext-1e3">
          <title>For each unique policy managed by the TSF, the TSF shall validate that the policy is appropriate for an 
          MDM agent or subordinate MDM server using <selectables linebreak="yes">
            <selectable id="fmt_pol_3_x509_agent">client authentication via an X.509 certificate representing the MDM agent</selectable>
            <selectable id="fmt_pol_3_x509_sub">client authentication via an X.509 certificate representing the subordinate MDM server</selectable>
            <selectable id="fmt_pol_3_token_agent">a token issued to the MDM agent and associated with a policy signing key uniquely associated to the policy</selectable>
            <selectable id="fmt_pol_3_token_sub">a token issued to the subordinate MDM server and associated with a policy signing key uniquely associated to the policy</selectable>
          </selectables>.</title>
          <note role="application">
            <h:p>
            If "<xref to="fmt_pol_3_x509_agent"/>" or "<xref to="fmt_pol_3_x509_sub"/>" is claimed, any corresponding protocols that use this are also claimed in FIA_X509_EXT.2.1 in <xref to="X509"/>. 
            </h:p>
            <h:p>
            If "<xref to="fmt_pol_3_token_agent"/>" or "<xref to="fmt_pol_3_token_sub"/>" is claimed, "<xref to="fia_cli_token"/>" is claimed in FIA_CLI_EXT.1.1 and the TSF maintains the association of the key pairs and the agent or subordinate MDM server tokens. When multiple policies are supported, a unique policy signing key for each policy is used.
            </h:p>
          </note>
            <aactivity>
              <TSS>The evaluator shall verify that the ST describes how policies are signed, to include whether the private 
                key used for signing is associated with an X.509 certificate or public key, the method for distributing the 
                policy verification material (a certificate or provisioned public key) to the agent or subordinate MDM server, and the method for 
                distinguishing whether a policy is appropriate for an agent or subordinate MDM server. If tokens are claimed in FMT_POL_EXT.1.3, 
                the evaluator shall verify the ST describes how tokens are established and
                distributed to the agent or subordinate MDM server.</TSS>
              <Guidance>If applicable, the evaluator shall verify that the operational guidance
                instructs administrators on configuring the enterprise certificate to be used for signing policies or signing the policies before applying them.</Guidance>
              <Tests>The evaluator shall perform a policy update in accordance with FMT_SMF.1/SERVER_CONF_AGENT. The evaluator shall examine the policy update, either at the
                TOE, in transmission, or at the MDM agent or subordinate MDM server. The evaluator shall verify that the TSF signed the policy update and delivered it to the MDM agent or subordinate MDM server.
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
        
        <f-component cc-id="fmt_pol_ext.3" name="Subordinate MDM Trusted Policy Update" status="sel-based">
          <depends on-sel="ITC_IS_SUBORDINATE_MDM"/>
          <consistency-rationale/>
          <comp-lev>defines requirements for using digitally signed policies and policy updates by the subordinate MDM server.</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>Attempt to reuse enrollment data.</h:li>
              <h:li>Enrollment data.</h:li>
            </h:ul></audit>
          <dependencies>No dependencies.</dependencies>
          <f-element id="fmt-pol-ext-3e1">
            <title>The TSF shall only accept policies and policy updates that are digitally signed by a private key that has been authorized for policy updates by the primary MDM server.</title>
            <note role="application">The intent of this requirement is to cryptographically tie the policies to the enterprise that mandated the policy, not to
              protect the policies in transit (as they are already protected by FTP_ITC.1/OE_XFER_IT). This is especially critical for users who connect to multiple enterprises.</note>
          </f-element>
          <f-element id="fmt-pol-ext-3e2">
            <title>The TSF shall not process policies for the MDM agent if the signature check fails.</title>
            <aactivity>
              <TSS>The evaluator ensures that the TSS describes how the candidate policies are obtained by the subordinate MDM server, the processing associated with verifying the digital signature of the policy updates, and the actions that take place for successful (signature was verified) and unsuccessful (signature could not be verified) cases. The software components that are performing the processing must also be identified in the TSS and verified by the evaluators.</TSS>
              <Tests>This evaluation activity is performed in conjunction with the evaluation activity for FIA_X509_EXT.1 and FIA_X509_EXT.2 in <xref to="X509"/>.
                <testlist>
                  <test>The evaluator shall perform a policy update from an available configuration interface (such as through a test primary MDM server). The evaluator shall verify the update is signed and is provided to the subordinate MDM server. The evaluator shall verify the subordinate MDM server accepts the digitally signed policy.</test>
                  <test>The evaluator shall perform a policy update from an available configuration interface (such as through a test primary MDM server). The evaluator shall provide an unsigned and an incorrectly signed policy to the subordinate MDM server. The evaluator shall verify the subordinate MDM server does not accept the digitally signed policy.</test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
		
        <f-component cc-id="fmt_sae_ext.1" name="Security Attribute Expiration" status="objective">
          <consistency-rationale/>
          <comp-lev>defines requirements for the expiration time for enrollment authentication.</comp-lev>
          <management>The following action could be considered for the management functions in FMT.
          <h:ul>
            <h:li>Configure the length of time the enrollment authenticator is valid.</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>Enrollment attempted after expiration of authentication data.</h:li>
              <h:li>Identity of user.</h:li>
            </h:ul></audit>
          <dependencies>
            <no-link>FIA_ENR_EXT.1</no-link> Enrollment<h:br/>
            <no-link>FIA_UAU.4</no-link> Single-Use Authentication Mechanisms
          </dependencies>
          
          <f-element id="fmt-sae-ext-1e1">
            <title>The TSF shall be able to specify a configurable expiration time for enrollment authentication data. </title>
          </f-element>
          
          <f-element>
            <title>The TSF shall be able to deny enrollment after the expiration time for the enrollment authentication data has passed.</title>
            <note role="application"> This requirement references the user authenticator used for device enrollment in management in <xref to="fel-enr-tsf"/>. The user
              authenticator must only be valid for a configurable time limit. If the authenticator is expired, even if entered correctly, enrollment must not occur.<h:br/><h:br/>
              The length of the time the authenticator is valid for is configured per function b.6 in FMT_SMF.1/SERVER_CONF_SERVER. If FMT_SAE_EXT.1 is included in the ST, then 
              function b.6 must be selected in FMT_SMF.1/SERVER_CONF_SERVER.</note>
            <aactivity>
              <TSS>The evaluator shall verify that the TSS contains a description of the process of
                enrollment for each MDM agent or platform listed as supported in the ST. This
                description shall be the method of user authentication (username or password, token, etc.).</TSS>
              <Guidance>The evaluator shall check to ensure that the operational guidance contains instructions to configure the expiration time for each method of user authentication listed in the TSS.</Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall configure the MDM server according to the administrative guidance to set an expiration time for the enrollment authentication data. For each method of user authentication listed in the TSS, the evaluator shall attempt to enroll using authentication data that has expired. The evaluator shall verify that enrollment was unsuccessful.</test>
                </testlist>
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Enrollment attempted after expiration of authentication data</audit-event-descr>
				<audit-event-info>Identity of user</audit-event-info>
			</audit-event>
		</f-component>  
        
        <f-component cc-id="fmt_smf.1" iteration="SERVER_CONF_AGENT" name="Specification of Management Functions (Server configuration of Agent)">
          <f-element id="fel-smf-man-agnt">
            <title>The <h:b>MDM server</h:b> shall be capable of <h:b>communicating the following commands to the MDM agent: </h:b>
              <h:ul style="list-style-type:none">
                <h:li><ctr id="smf1" ctr-type="mgmt" pre=""/>. Transition to the locked state (PP_MDF/PP_GPOS Function 6)</h:li>
                <h:li><ctr id="smf2" ctr-type="mgmt" pre=""/>. Full wipe of protected data (PP_MDF/PP_GPOS Function 7)</h:li>
                <h:li><ctr id="smf3" ctr-type="mgmt" pre=""/>. Unenroll from management (PP_MDF/PP_GPOS Function 44)</h:li>
                <h:li><ctr id="smf4" ctr-type="mgmt" pre=""/>. Install policies</h:li>
                <h:li><ctr id="smf5" ctr-type="mgmt" pre=""/>. Query connectivity status</h:li>
                <h:li><ctr id="smf6" ctr-type="mgmt" pre=""/>. Query the current version of the MD firmware or software</h:li>
                <h:li><ctr id="smf7" ctr-type="mgmt" pre=""/>. Query the current version of the hardware model of the device</h:li>
                <h:li><ctr id="smf8" ctr-type="mgmt" pre=""/>. Query the current version of installed applications</h:li>
                <h:li><ctr id="smf9" ctr-type="mgmt" pre=""/>. Import X.509v3 certificates into the Trust Anchor Database (PP_MDF/PP_GPOS Function 11)</h:li>
                <h:li><ctr id="smf10" ctr-type="mgmt" pre=""/>. Install applications (PP_MDF/PP_GPOS Function 16)</h:li>
                <h:li><ctr id="smf11" ctr-type="mgmt" pre=""/>. Update system software (PP_MDF/PP_GPOS Function 15)</h:li>
                <h:li><ctr id="smf12" ctr-type="mgmt" pre=""/>. Remove applications (PP_MDF/PP_GPOS Function 14)</h:li>
                <h:li><ctr id="smf19" ctr-type="mgmt" pre=""/>. Read audit logs kept by the MD (PP_MDF/PP_GPOS Function 32)</h:li>
              </h:ul> 
  
                <selectables>
                <selectable><ctr id="smf13" ctr-type="mgmt" pre=""/>. Remove enterprise applications (PP_MDF/PP_GPOS Function 17),</selectable>
                <selectable><ctr id="smf14" ctr-type="mgmt" pre=""/>. Wipe enterprise data (PP_MDF/PP_GPOS Function 28),</selectable>
                <selectable><ctr id="smf15" ctr-type="mgmt" pre=""/>. Remove imported X.509v3 certificates and 
                  <selectables linebreak="yes">
                    <selectable>no other X.509v3 certificates,</selectable>
                    <selectable><assignable>list of other categories of X.509v3 certificates</assignable></selectable>
                  </selectables> in the Trust Anchor Database (PP_MDF/PP_GPOS Function 12),</selectable>
                <selectable>
                  <ctr id="smf16" ctr-type="mgmt" pre=""/>. Alert the user,</selectable>
                <selectable>
                  <ctr id="smf17" ctr-type="mgmt" pre=""/>. Import keys or secrets into the secure key storage (PP_MDF/PP_GPOS Function 9),</selectable>
                <selectable>
                  <ctr id="smf18" ctr-type="mgmt" pre=""/>. Destroy imported keys or secrets and <selectables linebreak="yes">
                    <selectable>no other keys or secrets,</selectable>
                    <selectable><assignable>list of other categories of keys or secrets</assignable></selectable>
                  </selectables> in the secure key storage (PP_MDF/PP_GPOS Function 10),</selectable>
                <selectable>
                  <ctr id="smf20" ctr-type="mgmt" pre=""/>. Retrieve MD-software integrity verification values (PP_MDF/PP_GPOS Function 38),</selectable>
                <selectable>
                  <ctr id="smf21" ctr-type="mgmt" pre=""/>. Approve exceptions for sharing data between <selectables linebreak="yes">
                    <selectable>application processes,</selectable>
                    <selectable>groups of application processes</selectable>
                  </selectables> (PP_MDF/PP_GPOS Function 42),</selectable>
                <selectable>
                  <ctr id="smf22" ctr-type="mgmt" pre=""/>. Place applications into application process groups based on
                    <assignable>application characteristics</assignable> (PP_MDF/PP_GPOS Function 43),</selectable>
                <selectable>
                  <ctr id="smf23" ctr-type="mgmt" pre=""/>. Revoke Biometric template (PP_MDF/PP_GPOS Function 46),</selectable>
                <selectable>
                  <ctr id="smf24" ctr-type="mgmt" pre=""/>. <assignable>list of other management functions to be provided by the MD</assignable>,
                </selectable>
                <selectable>no other management functions</selectable>
              </selectables>
              <h:b>and the following MD configuration policies</h:b>:
              <h:br/><h:br/>
              <h:ul style="list-style-type:none">
                <h:li>
                  <ctr id="smf25" ctr-type="mgmt" pre=""/>. Password policy: <h:ol type="a">
                    <h:li>minimum password length</h:li>
                    <h:li>minimum password complexity</h:li>
                    <h:li>maximum password lifetime (PP_MDF/PP_GPOS Function 1)</h:li>
                  </h:ol>
                </h:li> <h:li>
                  <ctr id="smf26" ctr-type="mgmt" pre=""/>. Session locking policy: <h:ol type="a">
                    <h:li>screen-lock enabled and disabled</h:li>
                    <h:li>screen lock timeout</h:li>
                    <h:li>number of authentication failures (PP_MDF/PP_GPOS Function 2)</h:li>
                  </h:ol>
                </h:li>
                <h:li> <ctr id="smf27" ctr-type="mgmt" pre=""/>. Wireless networks (SSIDs) to which the MD may connect (WLAN Client PP-Module Function WL-2)</h:li>
                  <h:li>
                    <ctr id="smf28" ctr-type="mgmt" pre=""/>. Security policy for each wireless network: 
                    <h:ol type="a">
                      <h:li><selectables linebreak="yes">
                        <selectable>specify the CAs from which the MD will accept WLAN
                          authentication server certificates,</selectable>
                        <selectable>specify the FQDNs of acceptable WLAN authentication server
                          certificates</selectable>
                      </selectables></h:li>
                    <h:li>ability to specify security type</h:li>
                    <h:li>ability to specify authentication protocol</h:li>
                    <h:li>specify the client credentials to be used for authentication</h:li>
                      <h:li><assignable>any additional WLAN management functions</assignable> (WLAN Client PP-Module Function WL-1)</h:li>
                  </h:ol>
                </h:li>
                <h:li>
                  <ctr id="smf29" ctr-type="mgmt" pre=""/>. Application installation policy by <selectables linebreak="yes">
                    <selectable>specifying authorized application repositories,</selectable>
                    <selectable>specifying a set of allowed applications and versions (an application allowlist),</selectable>
                    <selectable>denying application installation</selectable>
                  </selectables>(PP_MDF/PP_GPOS Function 8)</h:li>
                <h:li>
                  <ctr id="smf30" ctr-type="mgmt" pre=""/>. Enable and disable policy for <assignable>list of audio or visual collection devices</assignable> across device, <selectables linebreak="yes">
                    <selectable>on a per-app basis</selectable>
                    <selectable>on a per-group of applications processes basis</selectable>
                    <selectable>no other method</selectable>
                  </selectables> (PP_MDF/PP_GPOS Function 5)</h:li>
                  <h:li>
                    <ctr id="smf47" ctr-type="mgmt" pre=""/>. The unlock banner policy (PP_MDF/PP_GPOS Function 36)</h:li>
              </h:ul>
              <h:ul style="list-style-type:none"><selectables linebreak="yes">
                <selectable>
                  <ctr id="smf31" ctr-type="mgmt" pre=""/>. Enable and disable policy for the VPN protection across MD, <selectables linebreak="yes">
                    <selectable>on a per-app basis,</selectable>
                    <selectable>on a per-group of application processes basis,</selectable>
                    <selectable>no other method</selectable>
                  </selectables> (PP_MDF/PP_GPOS Function 3),</selectable>
                <selectable>
                  <ctr id="smf32" ctr-type="mgmt" pre=""/>. Enable and disable policy for <assignable>list of radios</assignable> (PP_MDF/PP_GPOS Function 4),</selectable>
                <selectable>
                  <ctr id="smf33" ctr-type="mgmt" pre=""/>. Enable and disable policy for data signaling over
                    <assignable>list of externally accessible hardware ports</assignable> (PP_MDF/PP_GPOS Function 24),</selectable>
                <selectable>
                  <ctr id="smf34" ctr-type="mgmt" pre=""/>. Enable and disable policy for <assignable>list of protocols where the device acts as a server</assignable> (PP_MDF/PP_GPOS Function 25),</selectable>
                <selectable>
                  <ctr id="smf35" ctr-type="mgmt" pre=""/>. Enable and disable policy for developer modes (PP_MDF/PP_GPOS Function 26),</selectable>
                <selectable>
                  <ctr id="smf36" ctr-type="mgmt" pre=""/>. Enable policy for data-at-rest protection (PP_MDF/PP_GPOS Function 19),</selectable>
                <selectable>
                  <ctr id="smf37" ctr-type="mgmt" pre=""/>. Enable policy for removable media's data-at-rest protection (PP_MDF/PP_GPOS Function 20),</selectable>
                <selectable>
                  <ctr id="smf38" ctr-type="mgmt" pre=""/>. Enable and disable policy for local authentication bypass (PP_MDF/PP_GPOS Function 27),</selectable>
                <selectable>
                  <ctr id="smf39" ctr-type="mgmt" pre=""/>. The Bluetooth trusted channel policy:<h:br/>
                  <h:ol type="a">
                    <h:li>Disable/enable the Discoverable (for BR/EDR) and Advertising (for LE) modes (Bluetooth PP-Module Function BT-1)</h:li>
                    <h:li>change the Bluetooth device name (Bluetooth PP-Module Function BT-2)</h:li>
                    <h:li><selectables linebreak="yes">
                        <selectable>Provide separate controls for turning the BR/EDR and LE radios on and off (Bluetooth PP-Module Function BT-3),</selectable>
                        <selectable>allow and disallow additional wireless technologies to be used with Bluetooth (Bluetooth PP-Module Function BT-4),</selectable>
                        <selectable>configure allowable methods of Out of Band pairing (Bluetooth PP-Module Function BT-5),</selectable>
                        <selectable>disable and enable Discoverable (for BR/EDR) and Advertising (for LE) modes separately (Bluetooth PP-Module Function BT-6),</selectable>
                        <selectable>disable and enable the Connection mode (Bluetooth PP-Module Function BT-7),</selectable>
                        <selectable>disable and enable the Bluetooth services or profiles available on the device (Bluetooth PP-Module Function BT-8),</selectable>
                        <selectable>specify minimum level of security for each pairing (Bluetooth PP-Module Function BT-9),</selectable>                        
                        <selectable>no other Bluetooth configuration</selectable>
                      </selectables>
                    </h:li>
                  </h:ol>
                </selectable>
                <selectable>
                  <ctr id="smf40" ctr-type="mgmt" pre=""/>. Enable and disable policy for 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>other application-based notifications</selectable>
                    </selectables> (PP_MDF/PP_GPOS Function 18),
                </selectable>
                <selectable>
                  <ctr id="smf41" ctr-type="mgmt" pre=""/>. Policy for establishing a trusted channel or disallowing establishment if the MD cannot establish a connection to determine the validity of a certificate (PP_MDF/PP_GPOS Function 30),</selectable>
                <selectable>
                  <ctr id="smf42" ctr-type="mgmt" pre=""/>. Enable and disable policy for the cellular protocols used to connect to cellular network base stations (PP_MDF/PP_GPOS Function 31),</selectable>
                <selectable>
                  <ctr id="smf43" ctr-type="mgmt" pre=""/>. Policy for import and removal by applications of X.509v3 certificates in the Trust Anchor Database (PP_MDF/PP_GPOS Function 29),</selectable>
                <selectable>
                  <ctr id="smf44" ctr-type="mgmt" pre=""/>. The: 
                  <selectables linebreak="yes">
                    <selectable>certificate,</selectable>
                    <selectable>public key</selectable>
                  </selectables> used to validate digital signature on applications (PP_MDF/PP_GPOS Function 33),</selectable>
                <selectable>
                  <ctr id="smf45" ctr-type="mgmt" pre=""/>. Policy for exceptions for shared use of keys or secrets by multiple applications (PP_MDF/PP_GPOS Function 34),</selectable>
                <selectable>
                  <ctr id="smf46" ctr-type="mgmt" pre=""/>. Policy for exceptions for destruction of keys or secrets by applications that did not import the key or secret (PP_MDF/PP_GPOS Function 35),</selectable>
                <selectable>
                  <ctr id="smf48" ctr-type="mgmt" pre=""/>. Configure the auditable items (PP_MDF/PP_GPOS Function 37),</selectable>
                <selectable>
                  <ctr id="smf49" ctr-type="mgmt" pre=""/>. Enable and disable <selectables linebreak="yes">
                    <selectable>USB mass storage mode,</selectable>
                    <selectable>USB data transfer without user authentication,</selectable>
                    <selectable>USB data transfer without authentication of the connection system</selectable>
                  </selectables> (PP_MDF/PP_GPOS Function 39),</selectable>
                <selectable>
                  <ctr id="smf50" ctr-type="mgmt" pre=""/>. Enable and disable backup of <selectables linebreak="yes">
                    <selectable>all applications,</selectable>
                    <selectable>selected applications,</selectable>
                    <selectable>selected groups of applications,</selectable>
                    <selectable>configuration data</selectable>
                  </selectables> to <selectables>
                    <selectable>locally connected system</selectable>
                    <selectable>remote system</selectable>
                  </selectables> (PP_MDF/PP_GPOS Function 40),</selectable> <selectable>
                    <ctr id="smf51" ctr-type="mgmt" pre=""/>. Enable and disable <selectables linebreak="yes">
                    <selectable>Bluetooth tethering,</selectable>
                    <selectable>USB tethering authenticated by <selectables>
                        <selectable>pre-shared key</selectable>
                        <selectable>passcode</selectable>
                        <selectable>no authentication</selectable>
                      </selectables>
                    </selectable>
                  </selectables> (PP_MDF/PP_GPOS Function 41),</selectable> <selectable>
                    <ctr id="smf52" ctr-type="mgmt" pre=""/>. Enable and disable location services: 
                  <selectables linebreak="yes">                  
                    <selectable>across device,</selectable>
                    <selectable>on a per-app basis,</selectable>
                    <selectable>on a per-group of application processes basis</selectable>
                  </selectables> (PP_MDF/PP_GPOS Function 21),</selectable>
                <selectable>
                  <ctr id="smf53" ctr-type="mgmt" pre=""/>. Enable and disable policy for user unenrollment,</selectable>
                <selectable>
                  <ctr id="smf54" ctr-type="mgmt" pre=""/>. Enable and disable policy for the Always-On VPN protection across device (PP_MDF/PP_GPOS Function 45),</selectable>
                <selectable>
                  <ctr id="smf55" ctr-type="mgmt" pre=""/>. Enable and disable policy for use of Biometric Authentication Factor (PP_MDF/PP_GPOS Function 22),</selectable>
                <selectable>
                  <ctr id="smf56" ctr-type="mgmt" pre=""/>. Connectivity timeout policy: <selectables linebreak="yes">
                    <selectable>allowed <selectables>
                        <selectable>number of missed reachability events</selectable>
                        <selectable>length of time without server connectivity</selectable>
                      </selectables>,
                    </selectable>
                    <selectable>when server connectivity timeout is exceeded agent shall <selectables>
                        <selectable>disable user password</selectable>
                        <selectable>wipe device</selectable>
                      </selectables> and <selectables>
                        <selectable><assignable>other action</assignable></selectable>
                        <selectable>none</selectable>
                      </selectables>
                    </selectable>
                  </selectables>,
                </selectable>
                <selectable><ctr id="smf57" ctr-type="mgmt" pre=""/>. Enable and disable multi-user modes,</selectable>
                <selectable><ctr id="smf58" ctr-type="mgmt" pre=""/>. Enable and disable automatic updates of system software,</selectable>
                <selectable><ctr id="smf59" ctr-type="mgmt" pre=""/>. Enable and disable removable media,</selectable>
                <selectable><ctr id="smf60" ctr-type="mgmt" pre=""/>. Enable/disable wireless network bridging capability (e.g. hotspot) authenticated by: 
                  <selectables linebreak="yes">
                    <selectable>pre-shared key</selectable>
                    <selectable>passcode</selectable>
                    <selectable>no authentication</selectable>
                  </selectables>
                  (WLAN Client PP-Module Function WL-3)
                </selectable>
                <selectable>
                  <ctr id="smf61" ctr-type="mgmt" pre=""/>. <assignable>list of other policies to be provided by the MD</assignable>, no other policies</selectable>
              </selectables>.</h:ul>
            </title>
            <note role="application"> This requirement captures all the configuration functionality the TSF provides the administrator to configure the MDM
		    agent. This requirement is broken into two configurable areas: MDM agent commands and MDM agent policies. The ST author can add more
		    commands and configuration policies by completing the appropriate assignment statements.<h:br/><h:br/> 
              <h:b>Function-specific application notes:</h:b><h:br/><h:br/> 
              Function <xref to="smf12"/> may be satisfied for the BYOD use case by application denylisting or disabling. In the case of BYOD, an enterprise may not want to remove "personal" applications, thus for that use case disabling the application rather than removing it would allow the user to not lose any information they might have in the application.<h:br/><h:br/>
              Function <xref to="smf16"/> provides the MDM server to display an alert to the user of the MD.<h:br/><h:br/> 
              The audit data read according to Function <xref to="smf19"/> are to be transmitted to an external audit server according to FAU_STG.1. The MDM server is not expected to retain those logs.<h:br/><h:br/> 
              Function <xref to="smf34"/> provides the ability to enable and disable policy for the list of protocols where the device acts as a server, such as a mobile hotspot.<h:br/><h:br/>  
              Function <xref to="smf56"/> corresponds to FPT_NET_EXT.1.1 in agent. If the MDM agent has not had a successful reachability event with the MDM server in the amount of time specified in the first selection, then the agent must perform the action selected in the second selection. It is feasible, but not required, that if multiple actions are specified in the second selection, each action could be associated with a different condition in the first selection. If function <xref to="smf56"/> is included in the ST, then FPT_NET_EXT.1.1 in <xref to="mod-mdmagent"/> must be claimed for any MDM agent that the TOE manages.
              </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to ensure that it describes each management function claimed. The evaluator shall examine the TSS to
		      ensure that it identifies the management functions implemented for each supported MDM agent or platform, which are likely to be subsets of 
		      all of the management functions available to the administrator on the MDM server. The evaluator shall examine the TSS to verify that any
		      differences between management functions and policies for each supported MDM agent or platform are clearly indicated.<h:br/><h:br/>
		      The evaluator shall determine if the MD has been evaluated. If so, the evaluator shall examine the TSS to verify that it 
		      clearly identifies which management functions match the selections and assignments of the
		      evaluated MD and which management 
		      functions were not evaluated.</TSS>
              <Guidance>For each command that the TSF can issue to an MDM agent and for each MD configuration policies that can be applied, the evaluator shall examine the operational guidance to verify that it includes instructions on how to perform these actions, and what particular parameters or options can be specified for them.</Guidance>
              <Tests>For each MDM agent or platform listed as supported in the ST:<testlist>
                  <test>The evaluator shall verify the ability to command each MDM agent functional capability and configure each MDM agent policy listed above.</test>
                </testlist>
		</Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component>
		
        <f-component cc-id="fmt_smf.1" iteration="SERVER_CONF_SERVER" name="Specification of Management Functions (Server Configuration of Server)">
          <f-element id="fmt-smf-1e1">
            <title>The TSF shall be capable of performing the following management functions.            
            <h:ol type="a">
                 <h:li>Configure the <selectables>
                    <selectable>devices specified by <selectables>
                        <selectable>IMEI</selectable>
                        <selectable><assignable>a unique device ID</assignable></selectable>
                      </selectables>,</selectable>
                    <selectable>specific device models,</selectable>
                    <selectable>number of devices,</selectable>
                    <selectable>specific time period</selectable>
                  </selectables> and <selectables>
                    <selectable><assignable>other features</assignable></selectable>
                    <selectable>no other features</selectable>
                  </selectables> allowed for enrollment</h:li> 
                  <h:li><selectables>
                    <selectable><h:br/>1. Choose X.509v3 certificates for MDM server use</selectable>                    
                    <selectable><h:br/>2. Allow the administrator to choose whether to accept the certificate when connection cannot be made to establish validity</selectable>                 
					          <selectable><h:br/>3. Configure the TOE unlock banner</selectable>
                    <selectable><h:br/>4. Configure periodicity of the following commands to the agent: <assignable>list of commands</assignable></selectable>
                    <selectable><h:br/>5. Configure the privacy-sensitive information that will and will not be collected from particular MDs</selectable>
                    <selectable><h:br/>6. Configure the length of time the enrollment authenticator is valid</selectable>
                    <selectable><h:br/>7. Configure the interaction between TOE components</selectable>
                    <selectable><h:br/>8. Configure the cryptographic functionality</selectable>
                    <selectable><h:br/>9. Configure the interaction with the primary MDM server</selectable>
                    <selectable><h:br/>10. Configure the interaction with the subordinate MDM server</selectable>                    
                    <selectable><h:br/>11. <assignable>other management functions</assignable></selectable>
                    <selectable><h:br/>12. No other management functions</selectable>                    
                  </selectables>.</h:li>               
            </h:ol>
            </title>
            <note role="application"> 
            <h:p>This requirement captures all the configuration functionality in the MDM server to configure 
            the underlying MDM server. The ST author can add more commands and configuration policies by completing the assignment
            statement.</h:p>
            <h:p>The selection in function 'a' corresponds to the selection in <xref to="fel-enr-limit"/>.</h:p>
            <h:p>Function 'b.1' is selection-based under the very limited circumstances when certificate management is both 
              performed solely by platform-provided functionality and the platform uses cloud services; for all other
              instances it is mandatory. This requirement will be made fully mandatory again in a future version of 
              the PP. Function 'b.1' can be met by relying on the platform to configure the certificates used by the MDM
              server, however, the MDM server must allow the administrator to choose which certificate is used for a 
              specific functionality.</h:p>              
            <h:p>The selection in function 'b.2' includes a function that corresponds to the selection in FIA_X509_EXT.2.2 in <xref to="X509"/>.</h:p>
            <h:p>Function 'b.4' allows the administrator to configure
			        periodicity of assigned commands, for example "read audit logs kept by the MD." In this way the 
			        administrator can configure the MDM system to retrieve audit logs from the MD on a periodic, such as
			        daily, basis in order to ensure freshness of log data and to minimize loss of audit logs.</h:p>
			      <h:p>Function 'b.5' allows the
			        administrator to configure the privacy-sensitive information that will and will not be collected from particular
			        MDs to handle BYOD environments where some information may not be appropriate to collect. Privacy
			        sensitive information may include items such as device physical location and lists of installed personal
			        applications, and would vary depending on the particular capabilities of the TOE and MDM agent. The TOE should
			        provide the capability to group enrolled devices into categories such as enterprise-owned and personal-owned and 
			        define the information that will be collected from devices in each category.</h:p>
            <h:p>Function 'b.6' corresponds to configuring the length of time the user authenticator for enrollment is valid in FMT_SAE_EXT.1. This function
			        must be included in the ST if and only if FMT_SAE_EXT.1 is included in the ST.</h:p>
            <h:p>For distributed TOEs, the interaction between TOE components will be configurable (see FCO_CPC_EXT.1). Therefore,
            the ST author includes the selection "Ability to configure the interaction between TOE components" for distributed 
            TOEs. A simple example would be the change of communication protocol according to FPT_ITT.1/INTRA_XFER. Another
            example would be changing the management of a TOE component from direct remote administration to remote
            administration through another TOE component. A more complex use case would be if the realization of an SFR is 
            achieved through two or more TOE components and the responsibilities between the two or more components could 
            be modified.</h:p>
            <h:p>For distributed TOEs, that implement a registration channel (as described in <xref to="fel-cpc-func"/>), the ST
            author uses the selection "configure the cryptographic functionality" in this SFR, and its corresponding mapping 
            in the TSS, to describe the configuration of any cryptographic aspects of the registration channel that can be
            modified by the operational environment in order to improve the channel security.</h:p>
            <h:p>Functions b.9 and b.10 allow the administrator to configure the use of a subordinate MDM server to pass MDM policy files 
            to an MDM agent on a managed device. This includes configuring the authentication and communication mechanisms 
            necessary to establish secure channels between the primary MDM server and subordinate MDM server. If the TOE acts as the
            primary MDM server, then <h:i>"Configure the interaction with the subordinate MDM server"</h:i> should be selected. If the
            TOE acts as a subordinate MDM server then <h:i>"Configure the interaction with the primary MDM server"</h:i> should be selected.</h:p>
            </note>
            <aactivity>
              <TSS> The evaluator shall examine the TSS to ensure that it describes each management
                function listed. For function 'b.5', the evaluator shall examine the TSS to ensure that it describes the privacy-sensitive information that the TOE has the capability to collect from enrolled MDs.</TSS>
              <Guidance> The evaluator shall verify the operational guidance includes detailed instructions of what options are available and how to configure each management functional capability listed.</Guidance>
              <Tests>The evaluator shall perform the following tests based on the supported functions:
                <testlist>
                  <test>Testing for function 'a' (configuration of features allowed for enrollment) is performed in conjunction with the use of the function (FIA_ENR_EXT.1).</test>
                  <test>[conditional] If function 'b.1' is claimed, the evaluator shall configure the TSF authentication certificates and verify that the correct certificate is used to established trusted connections for all claimed SFRs that require the TOE to present an X.509 certificate to an external entity (i.e., FPT_ITT.1/INTRA_XFER, FPT_ITT.1/INTRA_XFER_AGENT, FTP_ITC.1/OE_XFER_IT, and FTP_TRP.1/TRUSTPATH_ENROLL as necessary).</test>
                  <test>[conditional] If function 'b.2' is claimed, the evaluator shall </test>
                  <test>[conditional] If function 'b.3' is claimed, testing for configuration of the warning banner is performed in conjunction with the use of the function (FTA_TAB.1).</test>
                  <test>[conditional] If function 'b.4' is claimed, the evaluator shall configure the TOE to transmit a representative set of commands to an enrolled agent. The evaluator shall then configure several different time intervals in series, demonstrating with each time interval that the TSF issues the configured commands over that interval.</test>
                  <test>[conditional] If function 'b.5' is claimed, the evaluator shall configure the TOE to collect different sets of privacy-sensitive information from mobile devices based on whether they are enterprise-owned or personally-owned, enroll devices as those categories, and verify that only the configured attributes are collected from each.</test>
                  <test>[conditional] If function 'b.6' is claimed, testing for configuration of how long the enrollment authenticator is valid is performed in conjunction with the use of the function (FMT_SAE_EXT.1).</test>
                  <test>[conditional] If function 'b.7' is claimed, the evaluator shall configure the TOE to interact with its distributed components. This is performed in conjunction with the use of the function (FCO_CPC_EXT.1).</test>
                  <test>[conditional] If function 'b.8' is claimed, the evaluator shall configure the TOE's cryptographic functionality with different settings and observe that the configured settings are applied each time (e.g., by configuring connection parameters for secure communications and observing that those communications use the configured settings).</test>
                  <test>[conditional] If function 'b.9' is claimed, the evaluator shall configure the TOE as a subordinate MDM server and demonstrate that it can receive policies from a primary server.</test>
                  <test>[conditional] If function 'b.10' is claimed, the evaluator shall configure the TOE as a primary MDM server and demonstrate that it can transmit policies to a subordinate server.</test>
                  <test>[conditional] If any other functions are claimed in b.11, the evaluator shall verify that the functions can be performed in the manner described in the operational guidance.</test>
                </testlist>
		</Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Success or failure of function</audit-event-descr>
			</audit-event>
		</f-component> 
		
        <f-component cc-id="fmt_smf.1" iteration="MAS" name="Specification of Management Functions (MAS Server)" status="sel-based">
          <depends on-sel="mas"/>
          <f-element id="fmt-smf-1e1-mas">
            <title>The <h:b>MAS server</h:b> shall be capable of performing the following management functions:
              [<h:i><h:ul>
                <h:li>Configure application access groups</h:li>
                <h:li>Download applications</h:li>
                <h:li>
                  <selectables>
                    <selectable><assignable>other MAS management functions</assignable></selectable>
                    <selectable>no other functions</selectable>
                  </selectables></h:li>
              </h:ul></h:i>]
            </title>
            <note role="application">This requirement captures all the configuration functionality in the MAS server to configure the underlying MAS server. The ST author can add more commands and configuration policies by completing the assignment statement. <h:br/><h:br/>
              The MAS server must be able to create groups to configure which applications a user can access based on which group they are in. If the MAS server uses the groups defined by the MDM, then it must communicate with the MDM server (if separate server) to determine which applications the user can access.<h:br/><h:br/>
              This requirement is claimed if "enable/disable/modify policies listed in FMT_SMF.1/MAS" is selected in FMT_MOF.1.1/FUNCBE.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to ensure that it describes each management function listed.<h:br/><h:br/>The evaluator shall examine the TSS to determine if the MAS server creates its own groups or relies on the groups specified by the MDM server.</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains how to create and define user groups and how to specify which applications are accessible by which group.<h:br/><h:br/>
              The evaluator shall verify the operational guidance includes instructions on how to associate users with roles.</Guidance>
              <Tests>
                The evaluator shall perform the following tests:
                <testlist>
                  <test>
                    The evaluator shall ensure that the MAS client can only access the applications specified for the group they are enrolled in. The evaluator shall create a user group, making sure that the MAS client user is excluded from the group. The evaluator shall then verify that an application accessible to that group cannot be accessed. 
                  </test>
                  <test>
                    The evaluator shall take the previous test scenario, but this time include the MAS client user in the group and verify that the application can now be accessed. 
                  </test>
                </testlist>
              </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
		
        <f-component cc-id="fmt_smr.1" iteration="SECMAN_ROLES" name="Security Roles">
          <f-element id="fmt-smr-1e1-sr">
            <title>The TSF shall maintain the roles <h:b>administrator, MD user, and</h:b> <selectables>
              <selectable><h:b><assignable>additional authorized identified roles</assignable></h:b></selectable>
              <selectable><h:b>no additional roles</h:b></selectable>
            </selectables>.</title>
          </f-element>
          <f-element id="fel-smr-users-roles">
            <title>The TSF shall be able to associate users with roles.</title>
            <note role="application">It is envisioned that the MDM server will be configured and maintained by different user roles. The assignment is used by the ST author to list the roles that are supported. At a minimum, one administrative role must be supported. If no additional roles are supported, then "no additional roles" is selected. The MD user role is used for enrollment of MDs to the MDM according to FIA_ENR_EXT.1.<h:br/><h:br/>              
              For distributed TOEs, not every TOE component is required to implement its own user management to fulfill this SFR. At least one component has to support authentication and identification of users according to FIA_UAU.1. For the other TOE components authentication can be realized through the use of a trusted channel (either according to FTP_ITC.1/OE_XFER_IT or FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT) from a component that supports the authentication of users according to FIA_UAU.1. The identification of users according to <xref to="fel-uau-func"/> and the association of users with roles according to <xref to="fel-smr-users-roles"/> is done through the components that support the authentication of users according to FIA_UAU.1.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to verify that it describes the administrator role and the powers granted to and limitations of the role.</TSS>
              <Guidance>The evaluator shall review the operational guidance to ensure that it contains instructions for administering the TOE and which 
				interfaces are supported.</Guidance>
              <Tests>In the course of performing the testing activities for the evaluation, the evaluator shall use all supported interfaces, although it is 
				not necessary to repeat each test involving an administrative action with each interface. The evaluator shall ensure, however, that each supported 
				method of administering the TOE that conforms to the requirements of this PP be tested; for instance, if the TOE can be administered through a local
				hardware interface or HTTPS then both methods of administration must be exercised during the evaluation team's test activities. </Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component>   
		
        <f-component cc-id="fmt_smr.1" iteration="SECMAN_ROLES_MAS" name="Security Roles (MAS Server)" status="sel-based">
          <depends on-sel="mas"/>
          <f-element id="fmt-smr-1e1-srm">
            <title>The TSF shall <h:b>additionally</h:b> maintain the roles of [<h:i>enrolled managed
              devices, application access groups, and <assignable>additional authorized identified
                roles</assignable></h:i>].</title>
          </f-element>
          <f-element id="fmt-smr-1e2-srm">
            <title>The <h:b>MAS server</h:b> shall be able to associate users with roles.</title>
            <note role="application">It is envisioned that the MAS server will be configured and maintained by different user roles. The assignment is used by the ST author to list the roles that are supported. At a minimum, one administrative role must be supported. If no additional roles are supported, then "no additional roles" is stated. The MD user role is used for enrollment of MDs to the MAS according to FIA_ENR_EXT.1.<h:br/><h:br/>
              This requirement is claimed if "enable/disable/modify policies listed in FMT_SMF.1/MAS" is selected in FMT_MOF.1.1/FUNCBE.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to verify that it describes the administrator role and the powers granted to and limitations of the role.</TSS>
              <Guidance>The evaluator shall review the operational guidance to ensure that it contains instructions for administering the TOE and which interfaces are supported.</Guidance>
              <Tests>In the course of performing the testing activities for the evaluation, the evaluator shall use all supported interfaces, although it is not necessary to repeat each test involving an administrative action with each interface. The evaluator shall ensure, however, that each supported method of administering the TOE that conforms to the requirements of this PP be tested; for instance, if the TOE can be administered through a local hardware interface or HTTPS then both methods of administration must be exercised during the evaluation team's test activities.</Tests>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component>      
      </section>    
	  
      <section id="fpt" title="Class FPT: Protection of the TSF">
        <ext-comp-def title="Use of Supported Services and APIs" fam-id="FPT_API_EXT">
          <fam-behavior>This family describes document platform APIs when selecting "invoke
            platform-provided functionality."</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Use of Third-Party Libraries" fam-id="FPT_LIB_EXT">
          <fam-behavior>This family describes packaging third-party libraries when selecting
            "implement functionality."</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Functionality Testing" fam-id="FPT_TST_EXT">
          <fam-behavior>This family defines requirements for running self-tests and verifying
            integrity or executable code.</fam-behavior>
        </ext-comp-def>
        <ext-comp-def title="Trusted Update" fam-id="FPT_TUD_EXT">
          <fam-behavior>This family defines requirements for allowing authorized administrators to
            query software versions, initiate updates, and verify software updates prior to
            installation.</fam-behavior>
        </ext-comp-def>
	  
        <f-component cc-id="fpt_api_ext.1" name="Use of Supported Services and APIs">
          <consistency-rationale/>
          <comp-lev>defines requirements for API usage.</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="fpt-api-ext-1e1">
            <title>The TSF shall use only documented platform APIs.</title>
            <note role="application">
              This requirement applies to the APIs used when "invoke platform-provided
              functionality" is selected in an SFR. The definition of documented may vary depending on whether the MDM software is provided by a third-party 
              (who relies on documented platform APIs) or by a platform vendor who may be able to guarantee support for platform APIs. For cloud services, this can be completed with a reference to a non-public API document as an annex for those API's that are not or cannot be made public.
            </note>
            <aactivity>
              <TSS>
                <h:p>
                The evaluator shall verify that the TSS lists the platform APIs used by the MDM software. The evaluator shall then compare the list with the supported APIs (available through e.g., developer accounts, platform developer groups) and ensure that all APIs listed in the TSS are supported.
                </h:p>
                <h:p>
                <h:b>Library Document</h:b><h:br/><h:br/>
                (conditional: The TOE is a cloud MDM service) The evaluator shall verify that the non-public API document lists the API's used by the MDM service.
                </h:p>
              </TSS>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
        	<audit-event/>
		</f-component> 
        
        <f-component cc-id="fpt_fls.1" name="Failure with Preservation of Secure State" status="sel-based">
<depends on-sel="tsf-drbg"/>          
          <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">This SFR is claimed when "implement functionality" is selected in FCS_RBG.1.1. 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>
            <audit-event-descr>
              Failure of the TSF.
            </audit-event-descr>
            <audit-event-info>None.</audit-event-info>
          </audit-event>
        </f-component>
		
        <f-component cc-id="fpt_itt.1" name="Internal TOE TSF Data Transfer" status="sel-based" iteration="INTRA_XFER">
          <depends on-sel="ITC_DISTRIBUTED_TOE"/>
          <f-element id="fel-intraxfer">
            <title>The TSF shall <selectables linebreak="yes">
              <selectable><h:b>invoke platform-provided functionality to use <selectables linebreak="yes">
                <selectable id="ITT1_IPSEC_INVOKE">IPsec,</selectable>
                <selectable id="ITT1_TLS_INVOKE">mutually authenticated TLS,</selectable>
                <selectable id="ITT1_DTLS_INVOKE">mutually authenticated DTLS,</selectable>
                <selectable id="ITT1_HTTPS_INVOKE">HTTPS,</selectable>
                <selectable id="ITT1_SSH_INVOKE">SSH</selectable>
              </selectables></h:b></selectable>
              <selectable><h:b>implement functionality using <selectables linebreak="yes">
                <selectable id="ITT1_IPSEC_IMPLEMENT">IPsec as defined in <xref to="mod-vpnclient"/>,</selectable>
                <selectable id="ITT1_TLS_IMPLEMENT">mutually authenticated TLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="ITT1_DTLS_IMPLEMENT">mutually authenticated DTLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="ITT1_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1,</selectable>
                <selectable id="ITT1_SSH_IMPLEMENT">SSH as defined in <xref to="ssh"/></selectable>
              </selectables></h:b></selectable></selectables> <h:b>to</h:b> protect <h:b>all</h:b> data from [<h:i>disclosure and modification</h:i>] when it is <h:b>transferred</h:b> between
              separate parts of the TOE.</title>
            <note role="application">This requirement ensures that all communications between MDM server components of a distributed TOE are protected through the use of an encrypted communications channel. If the TOE boundary includes MDM agents, that is covered by FPT_ITT.1/INTRA_XFER_AGENT.<h:br/><h:br/> 
              The trusted channel uses secure protocols that preserve the confidentiality and integrity of MDM communications. For this particular use, any of IPsec, TLS, DTLS, HTTPS, or SSH can be used. If TLS or DTLS is used, mutual authentication must be supported regardless of whether the TOE acts as the client or the server in this connection. Where X.509 validation is needed (e.g., if the TOE acts as a TLS server that supports mutual authentication), <xref to="X509"/> must be claimed. To distinguish X.509 validation for internal communications from validation for external communications (e.g., communication between TOE components versus communication to a remote IT entity in the operational environment), FIA_X509_EXT.1 from <xref to="X509"/> must be iterated for this use as "FIA_X509_EXT.1/Internal" per the guidance in <xref to="package-usage"/>. This channel may also be used as the registration channel for the registration process, as described in section 3.1 and <xref to="fel-cpc-func"/>.<h:br/><h:br/>              
              If the ST author selects that the TSF implements "IPsec as defined in <xref to="mod-vpnclient"/>," the TSF must claim conformance to a PP-Configuration that includes the VPN Client PP-Module.<h:br/><h:br/>
              If the ST author selects that the TSF implements "SSH as defined in <xref to="ssh"/>," the TSF must be validated against <xref to="ssh"/>.<h:br/><h:br/>
              If the ST author selects that the TSF implements "mutually authenticated TLS as defined in <xref to="tls"/>" or "mutually authenticated DTLS as defined in <xref to="tls"/>," the TSF must be validated against requirements from <xref to="tls"/>, with the following selections made:
              <h:ul>
                <h:li>FCS_TLS_EXT.1: 
                  <h:ul>
                    <h:li>either TLS or DTLS is selected depending on the selection made in <xref to="fel-intraxfer"/></h:li>
                    <h:li>either client or server is selected as appropriate</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_TLSC_EXT.1.1 or FCS_TLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                  </h:li>
                <h:li>FCS_DTLSC_EXT.1.1 or FCS_DTLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                </h:li>
              </h:ul> 
             Protocol, DRBG, Certificate validation, algorithm, and similar services may be met with
             platform-provided services. <h:br/><h:br/>
              This requirement is claimed if "FPT_ITT.1/INTRA_XFER" is selected in FTP_ITC_EXT.1.<h:br/><h:br/>
              If HTTPS is selected, FCS_HTTPS_EXT.1 must be included in the ST. FCS_HTTPS_EXT.1 includes selections for both TSF and platform-provided HTTPS functionality, so this must be claimed if either of the HTTPS selections above are made.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that the
                methods and protocols used to protect distributed TOE components
                are described. The evaluator shall also confirm that all protocols listed in the
                TSS in support of TOE administration are
                consistent with those specified in the requirement, and are included in the
                requirements in the ST.<h:br/><h:br/>
              If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains
                instructions for establishing the communication paths for each supported
                method.</Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall ensure that communications using each specified (in the
                    operational guidance) communication method is tested during the course of the
                    evaluation, setting up the connections as described in the operational guidance
                    and ensuring that communication is successful.</test>
                  <test>The evaluator shall ensure, for each method of communication, the channel
                    data is not sent in plaintext.</test>
                </testlist> Further evaluation activities are associated with the specific protocols.
	      </Tests>
              </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Initiation and termination of the trusted channel</audit-event-descr>
				<audit-event-info>Trusted channel protocol</audit-event-info>
				<audit-event-info>Identity of initiator and recipient</audit-event-info>
			</audit-event>
		</f-component>
		
        <f-component cc-id="fpt_itt.1" iteration="INTRA_XFER_AGENT" name="Internal TOE TSF Data           Transfer (MDM Agent)" status="sel-based">
          <depends on-sel="ITC_AgentInTOE"/>
          <f-element id="fel-intraxfer-agent">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality to use <selectables linebreak="yes">
                <selectable id="ITT2_TLS_INVOKE">mutually authenticated TLS,</selectable>                
                <selectable id="ITT2_DTLS_INVOKE">mutually authenticated DTLS,</selectable>
                <selectable id="ITT2_HTTPS_INVOKE">HTTPS</selectable>
              </selectables></h:b></selectable>
              <selectable><h:b>implement functionality using <selectables linebreak="yes">
                <selectable id="ITT2_TLS_IMPLEMENT">mutually authenticated TLS as defined in <xref to="tls"/>,</selectable>                
                <selectable id="ITT2_DTLS_IMPLEMENT">mutually authenticated DTLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="ITT2_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1</selectable>
              </selectables></h:b></selectable></selectables> <h:b>to</h:b> protect all data from [<h:i>disclosure and modification</h:i>] when it is <h:b>transferred</h:b>
              between <h:b>the TSF and MDM agent.</h:b></title>
            <note role="application">This requirement ensures all communications between the TSF and MDM agent are protected through the use of an encrypted communications channel when MDM agents are included in the TOE boundary. If the TOE boundary includes distributed MDM server components, that is covered by FPT_ITT.1/INTRA_XFER.
              <h:br/><h:br/> 
              The trusted channel uses secure protocols that preserve the confidentiality and integrity of MDM agent communications. This requirement is to ensure that the transmission of any audit
              logs, MD information data (software version, hardware model, and
              application versions), and configuration data collected by the MDM
              agent and sent from the MDM agent to the MDM
              Server, when commanded, or at configurable intervals, is properly protected. This
              trusted channel also protects any commands and policies sent by the MDM server to the MDM agent. Either the 
              MDM agent or the MDM server is able to initiate the
              connection.  
              <h:br/><h:br/>
              For this particular use, only TLS, DTLS, or HTTPS is permitted. If TLS or DTLS is used, mutual authentication must be supported regardless of whether the TOE acts as the client or the server in this connection. Where X.509 validation is needed (e.g., if the TOE acts as a TLS server supporting mutual authentication), <xref to="X509"/> must be claimed. To distinguish X.509 validation for internal communications from validation for external communications (e.g., communication between TOE components versus communication to a remote IT entity in the operational environment), FIA_X509_EXT.1 from <xref to="X509"/> must be iterated for this use as "FIA_X509_EXT.1/Internal" per the guidance in <xref to="package-usage"/>.
              <h:br/><h:br/>                           
              If the ST author selects that the TSF implements "mutually authenticated TLS as defined in <xref to="tls"/>" or "mutually authenticated DTLS as defined in <xref to="tls"/>," the TSF must be validated against requirements from <xref to="tls"/>, with the following selections made:
              <h:ul>
                <h:li>FCS_TLS_EXT.1: 
                  <h:ul>
                    <h:li>either TLS or DTLS is selected depending on the selection made in <xref to="fel-intraxfer-agent"/></h:li>
                    <h:li>server is selected</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_TLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_DTLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                </h:li>
              </h:ul> 
              Protocol, DRBG, Certificate validation, algorithm, and similar services may be met with
              platform-provided services.<h:br/><h:br/>
              This requirement is claimed if "FPT_ITT.1/INTRA_XFER_AGENT" is selected in FTP_ITC_EXT.1.<h:br/><h:br/>
              If HTTPS is selected, FCS_HTTPS_EXT.1 must be included in the ST. FCS_HTTPS_EXT.1 includes selections for both TSF and platform-provided HTTPS functionality, so this must be claimed if either of the HTTPS selections above are made.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that the
              methods and protocols used to protect distributed TOE components
              are described. The evaluator shall also confirm that all protocols listed in the
              TSS in support of TOE administration are
              consistent with those specified in the requirement, and are included in the
              requirements in the ST.<h:br/><h:br/>
              If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains
              instructions for establishing the communication paths for each supported
              method.</Guidance>
              <Tests>
              <testlist>
                <test>The evaluator shall ensure that communications using each specified (in the
                  operational guidance) communication method is tested during the course of the
                  evaluation, setting up the connections as described in the operational guidance
                  and ensuring that communication is successful.</test>
                <test>The evaluator shall ensure, for each method of communication, the channel
                  data is not sent in plaintext.</test>
              </testlist> Further evaluation activities are associated with the specific protocols.
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Initiation and termination of the trusted channel</audit-event-descr>
				<audit-event-info>Trusted channel protocol</audit-event-info>
				<audit-event-info>Identity of initiator and recipient</audit-event-info>
			</audit-event>
		</f-component>
        
        <f-component cc-id="fpt_lib_ext.1" name="Use of Third-Party Libraries">
          <consistency-rationale/>
          <comp-lev>defines requirements for third-party libraries.</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="fpt-lib-ext-1e1">
            <title> The MDM software shall be packaged with only
              <assignable>list of third-party libraries</assignable>. 
            </title>
            <note role="application"> 
              The intention of this requirement is for the ST author to document which software
              libraries (including version numbers) the MDM software is including in case 
              vulnerabilities are later discovered with those libraries. For cloud services, the
              assignment can be completed with a reference to a non-public library document as an
              annex for those libraries that are not or cannot be made public.
            </note>
            <aactivity> 
              <TSS> The evaluator shall verify that the TSS lists the libraries used by the MDM
                software or the public libraries used by the cloud MDM services. The evaluator
                shall verify that libraries found to be packaged with or employed by the MDM 
                software are limited to those in the assignment.<h:br/><h:br/>
                <h:b>Library Document</h:b><h:br/><h:br/>
                (conditional: The TOE is a cloud MDM service) The evaluator shall verify that the
                non-public library document lists the libraries used by the MDM service.
              </TSS>
              <Guidance/>
              <Tests/>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>   
        
        <f-component cc-id="fpt_tdc.1" name="Inter-TSF Basic TSF Data Consistency (Policy Data)" status="sel-based" iteration="Policy">
          <depends on-sel="ITC_IS_SUBORDINATE_MDM"/>          
          <f-element id="fpt-tdc-interpret">
            <title>
              The TSF shall provide the capability to consistently interpret <assignable>MDM policy</assignable> when shared between the primary MDM server and the MDM agent.              
            </title>
          </f-element>          
          <f-element id="fpt-tdc-rules">
            <title>
              The TSF shall use <assignable>list of interpretation rules to be applied by the TSF</assignable> when interpreting MDM policy from the primary MDM server.
            </title>
            <note role="application">
              The intent of this requirement is to verify that there are well-defined rules that the subordinate MDM server follows if it modifies/interprets the MDM policy sent from the primary MDM server that is then delivered to the MDM agent on the managed device. For example: a mapping between the command received from the primary MDM server and the matching command delivered to the MDM agent. If the subordinate MDM does not modify the policy for delivery to the MDM agent, then this requirement is implicitly satisfied. 
            </note>
            <aactivity>
              <TSS>
                The evaluator ensures that the TSS describes how the policies are translated between the policy that is accepted by the subordinate MDM server and the policy that is generated for delivery to the MDM agent on the managed device. This should include a description or mapping for each MDM agent configuration and policy function claimed in FMT_SMF.1/SERVER_CONF_AGENT. 
              </TSS>
              <Guidance/>
              <Tests>
                The evaluator shall perform a policy update from an available configuration interface (such as through a test primary MDM server) and retain a copy of the resulting policy. The evaluator then obtains a version of the policy modified by the subordinate MDM for delivery to the MDM agent. The evaluator shall compare the original policy to the modified policy and ensure that the translation rules are valid for each configuration and policy function claimed.           
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        
        <f-component cc-id="fpt_tst.1" name="TSF Self-Testing" status="sel-based">
      <depends on-sel="tsf-drbg"/>          
          <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 specified 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 and 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 specified in FCS_RBG.1]</h:i>].
            </title>
            <note role="application">This SFR is claimed when "implement functionality" is selected in FCS_RBG.1.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 in 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>
		
        <f-component cc-id="fpt_tst_ext.1" name="Functionality Testing">
          <consistency-rationale/>
          <comp-lev>defines requirements for the integrity of self-testing.</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>Initiation of self-test.</h:li>
            <h:li>Failure of self-test.</h:li>
            <h:li>Detected integrity violation</h:li>
          </h:ul>
          </audit>
          <dependencies><no-link>FPT_TST.1</no-link> TSF Self-Testing</dependencies>
          
          <f-element id="fpt-tst-ext-1e1">
            <title>The TSF shall run a suite of self tests during initial start-up (power on) to demonstrate correct operation of the TSF.</title>
          </f-element>
          <f-element id="fel-tst-ext-impl">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to provide the capability to verify the integrity of stored TSF executable code when it is loaded for execution through the use of the 
              <selectables>
                <selectable>TSF</selectable>
                <selectable>TOE platform</selectable>
              </selectables>-provided cryptographic services.</title>
            <note role="application">While the TOE is typically a software package running in the IT Environment, it is still capable of performing the
		    self-test activities required above. It should be understood, however, that there is a significant dependency on the host environment 
		    in assessing the assurance provided by the tests mentioned above (meaning that if the host environment is compromised, the self-tests will 
		    not be meaningful).<h:br/><h:br/>           
              For distributed TOEs, all TOE components (except the Agent components) have to perform self-tests. This does not necessarily mean that each 
		    TOE component has to carry out the same self-tests: the ST describes the applicability of the selection (i.e., when self-tests are run) and
		    the final assignment (i.e., which self-tests are carried out) to each TOE component.
            </note>
            <aactivity>
              <TSS>
		      If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each 
		      supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented
		      by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).<h:br/><h:br/>         
              If "implement functionality" is selected, the evaluator shall examine the TSS to ensure that it details the self-tests that are run by the TSF on
		      start-up; this description should include an outline of what the tests are actually doing (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 evaluator shall ensure that the TSS makes an argument that the tests are sufficient to demonstrate that
		      the TSF is operating correctly.<h:br/><h:br/> 
              The evaluator shall examine the TSS to ensure that it describes how to verify the integrity of stored TSF executable code when it is loaded for
		      execution. The evaluator shall ensure that the TSS makes an argument that the tests are sufficient to demonstrate that the integrity of 
		      stored TSF executable code has not been compromised. The evaluator also ensures that the TSS (or the operational guidance) describes the
		      actions that take place for successful (e.g., hash verified) and unsuccessful e.g., hash not verified) cases.
		</TSS>
              <Guidance>The evaluator shall verify that the operational guidance includes a description of how the administrator can verify that a self-test has failed and any potential corrective actions that can be used to resolve the failure state.</Guidance>
              <Tests>The evaluator shall perform the following tests:
              <testlist>
                <test>The evaluator performs the integrity check on a known good TSF executable and verifies that the check is successful.</test>
                <test>The evaluator modifies the TSF executable, performs the integrity check on the modified TSF executable and verifies that the check fails.</test>
              </testlist></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>Algorithm that caused failure</audit-event-info>
			</audit-event>
        	<audit-event>
				<audit-event-descr>Detected integrity violation</audit-event-descr>
				<audit-event-info>The TSF code file that caused the integrity violation</audit-event-info>
			</audit-event>
		</f-component> 
		
        <f-component cc-id="fpt_tud_ext.1" name="Trusted Update">
          <consistency-rationale/>
          <comp-lev>defines requirements for authorized administrators to manage software versions
            and updates.</comp-lev>
          <management>The following actions could be considered for the management functions in FMT.
            <h:ul>
              <h:li>Query the current version of the MD firmware or software.</h:li>
              <h:li>Update system software (PP_MDF/PP_GPOS Function  15).</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</h:li>
            </h:ul>
          </audit>
          <dependencies>No dependencies.</dependencies>
          
          <f-element id="fpt-tud-ext-1e1">
            <title>The TSF shall provide authorized administrators the ability to query the current version of the software.</title>
            <note role="application">
              For a distributed TOE, the method of determining the installed versions on each component of the TOE is described in the operational guidance.
		    In the requirement, "software" refers to the component of the distributed TOE to which the requirement is being applied. 
            </note>
            <aactivity level="element">
              <TSS>The evaluator shall verify that the TSS identifies the mechanism by which the current version of the TOE can be identified.</TSS>
              <Guidance>The evaluator shall ensure that the administrator guidance includes instructions for determining the current version of the TOE.</Guidance>
              <Tests>The evaluator shall query the TSF for the current version of the software
                according to the operational guidance and shall verify that the current version matches that of the documented and installed version.</Tests>
            </aactivity>
          </f-element>
          <f-element id="fpt-tud-ext-1e2">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to provide authorized administrators the ability to initiate updates to the TOE.</title>
            <aactivity level="element">
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall verify that the operational guidance provides instructions for how to initiate an update to the TOE and any restrictions on this function such that only an authorized administrator can perform it.</Guidance>
              <Tests/>
            </aactivity>
          </f-element>
          <f-element id="fel-tud-func">
            <title>The TSF shall <selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to provide a means to verify software updates to the TSF using a digital signature mechanism prior to installing those updates.</title>
            <note role="application">
              <h:p>
              The software on the TSF will occasionally need to be updated. This requirement is intended to ensure that the TSF only installs updates provided by the vendor, as updates provided by another source may contain malicious code.
              </h:p>
              <h:p>           
              For distributed TOEs, all TOE components must support Trusted Update. The verification of the signature or hash on the update must either be done by each TOE component itself (signature verification) or for each TOE component (hash verification).
              </h:p>
              <h:p>            
              Updating a distributed TOE might lead to the situation where different TOE components are running different software versions. Depending on the differences between the different software versions the impact of a mixture of different software versions might be no problem at all or critical to the proper functioning of the TOE. The TSS must detail the mechanisms that support the continuous proper functioning of the TOE during trusted update of distributed TOEs.
              </h:p>
            </note>
            <aactivity level="element">
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).<h:br/><h:br/>
              If "implement functionality" is selected, the evaluator shall examine the TSS and verify that it describes the standards by which the updates are digitally signed and how the signature verification process is implemented.</TSS>
              <Guidance>The evaluator shall examine the operational guidance to verify that it identifies how the TOE will verify the integrity of an update and how the administrator is made aware of a failure to verify the integrity of the update.</Guidance>
              <Tests>The evaluator shall perform the following tests: <testlist>
                <test>The evaluator shall attempt to initiate an update digitally signed by the vendor and verify that the update is successfully installed.</test>
                <test>The evaluator shall attempt to install an update not digitally signed by the vendor and verify that either the signature can be checked (allowing the update to be aborted) or the update is not installed.</test>
              </testlist>
	      </Tests>
            </aactivity>
          </f-element>       
        	<audit-event>
				<audit-event-descr>Success or failure of signature verification</audit-event-descr>
			</audit-event>
		</f-component>    
      </section>  
	  
      <section id="fta" title="FTA: TOE Access">
	  
        <f-component cc-id="fta_tab.1" name="Default TOE Access Banners" status="optional">
          <f-element id="fta-tab-1e1">
            <title>Before establishing a user session, the [<h:i>TSF</h:i>] shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> display an [<h:i>administrator-specified advisory notice and
              consent warning</h:i>] message <h:b>regarding use of the TOE.</h:b></title>
            <note role="application">
              This requirement is to ensure that an advisory notice or consent banner is presented to the user on start-up or unlock of the TSF.
            </note>
            <aactivity>
              <TSS>If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).<h:br/><h:br/>
              If "implement functionality" is selected, the TSS shall describe when the banner is displayed.</TSS>
              <Guidance>The evaluator follows the operational guidance to configure a notice and consent warning message.</Guidance>
              <Tests>The evaluator shall also perform the following test: The evaluator shall 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.</Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Change in banner setting</audit-event-descr>
			</audit-event>
		</f-component>	
      </section>  
	  
      <section id="ftp" title="Class FTP: Trusted Path/Channels">
        <ext-comp-def title="Trusted Channel" fam-id="FTP_ITC_EXT">
          <fam-behavior>The family defines requirements for communication channels between itself
            and other communication channels.</fam-behavior>
        </ext-comp-def>
		
        <f-component cc-id="ftp_itc.1" iteration="OE_XFER_IT" name="Inter-TSF Trusted Channel (Authorized IT Entities)"> 
          <f-element id="fel-inter-xfer-it"> 
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality to use <selectables linebreak="yes">
                <selectable id="ITC1_IPSEC_INVOKE">IPsec,</selectable>
                <selectable id="ITC1_SSH_INVOKE">SSH,</selectable>
                <selectable id="ITC1_TLS_INVOKE">mutually authenticated TLS,</selectable>
                <selectable id="ITC1_DTLS_INVOKE">mutually authenticated DTLS,</selectable>
                <selectable id="ITC1_HTTPS_INVOKE">HTTPS</selectable>
              </selectables></h:b></selectable>
              <selectable><h:b>implement functionality using <selectables linebreak="yes">
                <selectable id="ITC1_IPSEC_IMPLEMENT">IPsec as defined in <xref to="mod-vpnclient"/>,</selectable>
                <selectable id="ITC1_SSH_IMPLEMENT">SSH as defined in <xref to="ssh"/>,</selectable>
                <selectable id="ITC1_TLS_IMPLEMENT">mutually authenticated TLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="ITC1_DTLS_IMPLEMENT">mutually authenticated DTLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="ITC1_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1</selectable>
              </selectables></h:b></selectable></selectables> <h:b>to</h:b> provide a <h:b>trusted</h:b>
              communication channel between itself and <h:b>authorized</h:b> IT <h:b>entities supporting the following capabilities: audit server, compliance server,
              <selectables linebreak="yes">
                <selectable>authentication server,</selectable>
                <selectable>primary MDM server,</selectable>
                <selectable>subordinate MDM server,</selectable>
                <selectable><assignable>other capabilities</assignable></selectable>
              </selectables></h:b> that is logically distinct from other communication channels and provides assured identification of its endpoints and protection of the channel data from modification or disclosure.</title>
            <note role="application">
              <h:p>
              This requirement ensures that all communications between the TOE and external IT entities other than MDM agents are protected through the use of an encrypted communications channel. If the TOE's operational environment includes MDM agents (i.e., they are not part of the TOE), that is covered by FTP_ITC.1/OE_XFER_AGENT. Protected communications for remote administration is covered by FTP_TRP.1/TRUSTPATH_REM_ADMIN.
              </h:p>
              <h:p>
              The trusted channel uses secure protocols that preserve the confidentiality and integrity of MDM communications. For this particular use, any of IPsec, TLS, DTLS, HTTPS, or SSH can be used. If TLS or DTLS is used, mutual authentication must be supported regardless of whether the TOE acts as the client or the server in this connection. The operational environment may or may not use mutual authentication, but the TOE is expected to make use of it if it does. Where X.509 validation is needed (e.g., if the TOE acts as a TLS client), <xref to="X509"/> must be claimed. To distinguish X.509 validation for external communications from validation for internal communications (e.g., communication with a remote IT entity in the operational environment versus communication between TOE components), FIA_X509_EXT.1 from <xref to="X509"/> must be included in the ST and iterated as "FIA_X509_EXT.1/External" per the guidance in <xref to="package-usage"/>.
              </h:p>
              <h:p> 
              Protection (by one of the listed protocols) is required at least for communications with the server(s) that collect 
              the audit information (FAU_STG.1.1) and/or compliance information (FAU_CRP_EXT.1.1). If it communicates with an authentication server (e.g., RADIUS), then the ST 
              author chooses "authentication server" in FTP_ITC.1.1/OE_XFER_IT and this connection must be protected 
              by one of the listed protocols. Likewise if the TOE acts as either a primary or subordinate MDM server, then 
              "primary MDM server" or "subordinate MDM server" is selected for the device it communicates with and those 
              communications are protected by one of the listed protocols. If other authorized IT entities (e.g., NTP server) 
              are protected, the ST author makes the appropriate assignments (for those entities) and selections (for the protocols 
              that are used to protect those connections).
              </h:p>
              <h:p>       
              If the ST author selects that the TSF implements "IPsec as defined in <xref to="mod-vpnclient"/>," the TSF must claim conformance to a PP-Configuration that includes the VPN Client PP-Module.
              </h:p>
              <h:p>
              If the ST author selects that the TSF implements "SSH as defined in <xref to="ssh"/>," the TSF must be validated against <xref to="ssh"/>.
              </h:p>
              <h:p>
              If the ST author selects that the TSF implements "mutually authenticated TLS as defined in <xref to="tls"/>" or "mutually authenticated DTLS as defined in <xref to="tls"/>," the TSF must be validated against requirements from <xref to="tls"/>, with the following selections made:
              <h:ul>
                <h:li>FCS_TLS_EXT.1: 
                  <h:ul>
                    <h:li>either TLS or DTLS is selected depending on the selection made in FTP_ITC.1.1/OE_XFER_IT</h:li>
                    <h:li>either client or server is selected as appropriate</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_TLSC_EXT.1.1 or FCS_TLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_DTLSC_EXT.1.1 or FCS_DTLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                </h:li>
              </h:ul> 
              Protocol, DRBG, Certificate validation, algorithm, and similar services may be met with
              platform-provided services.
              </h:p>
              <h:p> 
              The requirement implies that not only are communications protected when they are initially established, but 
              also on resumption after an outage. It may be the case that some part of the TOE setup involves 
              manually setting up tunnels to protect other communication, and if after an outage the TOE attempts 
              to re-establish the communication automatically with (the necessary) manual intervention, there may be a window created 
              where an attacker might be able to gain critical information or compromise a connection.
              </h:p>
            </note>            
          </f-element>
          
          <f-element id="ftp-itc-1e2-ixi">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> permit <h:b>the MDM server or other authorized IT entities</h:b> to initiate communication via the trusted channel.</title>
            </f-element>
          
          <f-element id="fel-itc-init">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> initiate communication via the trusted channel for
              <assignable>list of functions for which a trusted channel is required</assignable>.</title>
            <note role="application">While there are no requirements on the party initiating the
              communication, the ST author lists in the assignment for <xref to="fel-itc-init"/>
              the services for which the TOE can initiate the communication with
              the authorized IT entity.</note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that the
                methods of communication with authorized IT entities are indicated, along with how
                those communications are protected.<h:br/><h:br/> 
                If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS 
                to verify that it describes (for each supported platform) 
                how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by 
                the MDM server; nonetheless, that mechanism will be identified in the TSS as part 
                of this evaluation activity).
		          </TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains
                instructions for configuring the communication channel between the MDM server and authorized IT entities for each supported
		            method.
		</Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall ensure that communications using each specified (in the
                    operational guidance) communication method is tested during the course of the
                    evaluation, setting up the connections as described in the operational guidance
                    and ensuring that communication is successful.</test>
                  <test>The evaluator shall ensure, for each method of communication, the channel
                    data is not sent in plaintext.</test>
                  <!--will the protocol analyzer be able to be used/see traffic. Will there be insight to platform communications?-->
                  <test>The evaluator shall ensure, for each communication channel with the MDM server, that a protocol analyzer identifies the traffic as the
                    protocol under testing.</test>
                </testlist> Further evaluation activities are associated with the specific protocols.
	      </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Initiation and termination of the trusted channel</audit-event-descr>
				<audit-event-info>Trusted channel protocol</audit-event-info>
				<audit-event-info>Non-TOE endpoint of connection</audit-event-info>
			</audit-event>
		</f-component>
		
        <f-component cc-id="ftp_itc.1" iteration="OE_XFER_AGENT" name="Inter-TSF Trusted Channel (MDM agent)" status="sel-based">
          <depends on-sel="ITC_AgentOutTOE_ITC"/>
          <f-element id="inter-tsf-xfer-agent">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality to use <selectables linebreak="yes">
                <selectable id="ITC2_TLS_INVOKE">mutually authenticated TLS,</selectable> 
                <selectable id="ITC2_DTLS_INVOKE">mutually authenticated DTLS,</selectable>
                <selectable id="ITC2_HTTPS_INVOKE">HTTPS</selectable>
              </selectables></h:b></selectable>
              <selectable><h:b>implement functionality using <selectables linebreak="yes">
                <selectable id="ITC2_TLS_IMPLEMENT">mutually authenticated TLS as defined in <xref to="tls"/>,</selectable> 
                <selectable id="ITC2_DTLS_IMPLEMENT">mutually authenticated DTLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="ITC2_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1</selectable>
              </selectables></h:b></selectable></selectables> <h:b>to</h:b> provide a <h:b>trusted</h:b> communication channel between itself <h:b>(as a server) and the MDM agent</h:b>
              that is logically distinct from other communication channels, provides assured identification of its endpoints, <h:b>protects channel data from disclosure, and 
                detects modification of the channel data.</h:b></title>
            <note role="application">This requirement ensures that all communications between the MDM server and environmental MDM agents are protected through the use of an encrypted communications channel. If the TOE boundary includes MDM agents, that is covered by FPT_ITT.1/INTRA_XFER_AGENT. Protected communications for MDM agent enrollment is covered by FTP_TRP.1/TRUSTPATH_ENROLL.
              The trusted channel uses secure protocols that preserve the confidentiality and integrity of MDM agent communications. This requirement is to ensure that the transmission of any audit
              logs, MD information data (software version, hardware model, and
              application versions), and configuration data collected by the MDM
              agent and sent from the MDM agent to the MDM
              Server, when commanded, or at configurable intervals, is properly protected. This
              trusted channel also protects any commands and policies sent by the MDM server to the MDM agent. Either the 
              MDM agent or the MDM server is able to initiate the
              connection. If the TOE includes a separate MAS server, this requirement also addresses the communication between the MAS server and the MDM agent.
              <h:br/><h:br/> 
              For this particular use, only TLS, DTLS, or HTTPS is permitted.  If TLS or DTLS is used, mutual authentication must be supported regardless of whether the TOE acts as the client or the server in this connection. The environmental MDM agents are expected to support mutual authentication, so the TOE is expected to make use of it. Where X.509 validation is needed (e.g., if the TOE acts as a TLS server supporting mutual authentication), <xref to="X509"/> must be claimed. To distinguish X.509 validation from validation for external communications (e.g., communication with an MDM agent in the operational environment versus communication between TOE components), FIA_X509_EXT.1 from <xref to="X509"/> must be iterated for this use as "FIA_X509_EXT.1/Internal" per the guidance in <xref to="package-usage"/>.
              <h:br/><h:br/> 
              If the ST author selects that the TSF implements "mutually authenticated TLS as defined in <xref to="tls"/>" or "mutually authenticated DTLS as defined in <xref to="tls"/>," the TSF must be validated against requirements from <xref to="tls"/>, with the following selections made:
              <h:ul>
                <h:li>FCS_TLS_EXT.1: 
                  <h:ul>
                    <h:li>either TLS or DTLS is selected depending on the selection made in FTP_ITC.1.1/OE_XFER_AGENT</h:li>
                    <h:li>server must be selected</h:li> 
                  </h:ul>
                </h:li>
                <h:li>FCS_TLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_DTLSS_EXT.1.1 (as appropriate):
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                    <h:li>mutual authentication must be selected</h:li>
                  </h:ul>
                </h:li>
              </h:ul> 
              Protocol, DRBG, Certificate validation, algorithm, and similar services may be met with
              platform-provided services.<h:br/><h:br/> 
              The requirement implies that not only are communications protected when they are initially established, 
              but also on resumption after an outage. It may be the case that some part of the TOE setup 
              involves manually setting up tunnels to protect other communication, and if after an outage the TOE 
              attempts to re-establish the communication automatically with (the necessary) manual intervention, there may be a 
              window created where an attacker might be able to gain critical information or compromise a connection.<h:br/><h:br/>
              
              This requirement is claimed if "FTP_ITC.1/OE_XFER_AGENT" is selected in
              FTP_ITC_EXT.1.<h:br/><h:br/>
              If HTTPS is selected, FCS_HTTPS_EXT.1 must be included in the ST. FCS_HTTPS_EXT.1 includes selections for both TSF and platform-provided HTTPS functionality, so this must be claimed if either of the HTTPS selections above are made.
            </note>          
          </f-element>
          
          <f-element id="ftp-itc-1e2-ixia">
            <title>The TSF shall <h:b><selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables></h:b> <h:b>to</h:b> permit the [<h:i>TSF and MDM agent</h:i>] to initiate communication via the trusted channel.</title>
            </f-element>
          
          <f-element id="ftp-itc-1e3-ixia"> 
            <title>The TSF shall <h:b><selectables>
              <selectable>invoke platform-provided functionality</selectable>
              <selectable>implement functionality</selectable>
            </selectables> to</h:b> initiate communication via the trusted channel for [<h:i>all communication between the TSF and the 
                MDM agent</h:i>]</title>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that the
                methods of agent-server communication are indicated, along with how those
                communications are protected. The evaluator shall also confirm that all protocols
                listed in the TSS in support of remote TOE
                administration are consistent with those specified in the requirement, and are
                included in the requirements in the ST.<h:br/><h:br/>
              
                If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS 
                to verify that it describes (for each supported platform) 
                how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by 
                the MDM server; nonetheless, that mechanism will be identified in the TSS as part 
                of this evaluation activity).</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains
                instructions for configuring the communication channel between the 
                MDM agent and the MDM server for each supported method.
		          </Guidance>
              <Tests>
                <testlist>
                  <test>The evaluator shall ensure that communications using each specified (in the
                    operational guidance) agent-server communication method is tested during the
                    course of the evaluation, setting up the connections as described in the
                    operational guidance and ensuring that communication is successful.</test>
                  <test>The evaluator shall ensure, for each method of agent-server communication,
                    the channel data is not sent in plaintext.</test>
                  <test>The evaluator shall ensure, for each communication channel with the 
                    MDM server, that a protocol analyzer identifies the traffic as the
                    protocol under testing.</test>
                    </testlist> Further evaluation activities are associated with the specific protocols.
	      </Tests>
              </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Initiation and termination of the trusted channel</audit-event-descr>
				<audit-event-info>Trusted channel protocol</audit-event-info>
				<audit-event-info>Non-TOE endpoint of connection</audit-event-info>
			</audit-event>
		</f-component>
        
        <f-component cc-id="ftp_itc_ext.1" name="Trusted Channel"> <!-- SFR that will specify if Agent is in the TOE or if TOE is distributed-->
          <consistency-rationale/>
          <comp-lev>defines requirements for providing logically distinct communication channels.</comp-lev>
          <management>There are no management activities foreseen.</management>
          <audit>There are no auditable events foreseen.</audit>
          <dependencies>
            <no-link>FTP_ITC.1</no-link> Inter-TSF Trusted Channel<h:br/>         
            <no-link>FTP_TRP.1</no-link> Trusted Path            
          </dependencies>
          
          <f-element id="fel-itc-ext">
            <title>The TSF shall provide a communication channel between itself and <selectables linebreak="yes">              
              <selectable id="ITC_AgentInTOE">an MDM agent that is internal to the TOE <h:b>as defined in FPT_ITT.1/INTRA_XFER</h:b>,</selectable>
              <selectable id="ITC_AgentOutTOE">an MDM agent that is external to the TOE <h:b>as defined in FPT_ITT.1/INTRA_XFER_AGENT</h:b>,</selectable>
              <selectable id="ITC_IS_PRIMARY_MDM">a subordinate MDM server <h:b>as defined in FTP_ITC.1/OE_XFER_IT</h:b>,</selectable>
              <selectable id="ITC_IS_SUBORDINATE_MDM">a primary MDM server <h:b>as defined in FTP_ITC.1/OE_XFER_IT</h:b>,</selectable>
              <selectable id="ITC_DISTRIBUTED_TOE">other components comprising the distributed TOE <h:b>as defined in FPT_ITT.1/INTRA_XFER</h:b></selectable>
            </selectables>
              that is logically distinct from other communication channels, as defined in <selectables>
                <selectable id="ITC_DISTRIBUTED_TOE_ITT1">FPT_ITT.1/INTRA_XFER,</selectable>
                <selectable id="ITC_AgentInTOE_ITT2">FPT_ITT.1/INTRA_XFER_AGENT,</selectable>
                <selectable id="ITC_AgentOutTOE_ITC">FTP_ITC.1/OE_XFER_AGENT,</selectable>
                <selectable id="ITC_OE_XFER_IT">FTP_ITC.1/OE_XFER_IT</selectable>
              </selectables>.
            </title>
            <ext-comp-def-title>
              
              <title>The TSF shall provide a communication channel between itself and <selectables linebreak="yes">                              
                <selectable>an MDM agent that is internal to the TOE,</selectable>
                <selectable>an MDM agent that is external to the TOE,</selectable>
                <selectable>a subordinate MDM server,</selectable>
                <selectable>a primary MDM server,</selectable>
                <selectable>other components comprising the distributed TOE</selectable>
              </selectables>
                that is logically distinct from other communication channels.
              </title>
            </ext-comp-def-title>
            <note role="Application">
              <h:p>
              This SFR describes the communication channels between the MDM server and an agent that may or may not be inside the TOE boundary, and optionally separate
              components comprising a distributed TOE, to determine which selection-based SFRs will need to be included in the ST.
              </h:p>
              <h:p>
              If <xref to="ITC_IS_SUBORDINATE_MDM"/> is selected, then the MDM is a subordinate MDM and communicates with a Primary MDM. If the MDM is a subordinate MDM then FMT_POL_EXT.3 and FPT_TDC.1/POLICY must be included in the ST. "<xref to="ITC_IS_PRIMARY_MDM"/>" should be selected when the MDM is a primary MDM and communicates with a subordinate MDM. If the MDM is neither a primary nor a subordinate MDM, it only communicates with the MDM agents directly, then neither should be selected.
              </h:p>            
            </note>
            <aactivity>
              <TSS>The evaluator shall ensure that the TSS contains whether the MDM server communication channel is internal or external to the TOE.</TSS>
              <Guidance/>               
              <Tests>
                This testing can be completed in conjunction with the testing for
                FPT_ITT.1/INTRA_XFER / FPT_ITT.1/INTRA_XFER_AGENT, FTP_ITC.1/OE_XFER_AGENT, or FTP_ITC.1/OE_XFER_IT.               
              </Tests>
            </aactivity>
          </f-element>
          <audit-event/>
        </f-component>
        
        <f-component cc-id="ftp_trp.1" iteration="TRUSTPATH_ENROLL" name="Trusted Path (Enrollment)">
          <f-element id="trustpath-enroll">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality to use <selectables linebreak="yes">
                <selectable id="TRP2_TLS_INVOKE">TLS,</selectable>
                <selectable id="TRP2_HTTPS_INVOKE">HTTPS</selectable>
              </selectables></h:b></selectable>
              <selectable><h:b>implement functionality using <selectables linebreak="yes">
                <selectable id="TRP2_TLS_IMPLEMENT">TLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="TRP2_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1</selectable>
              </selectables></h:b></selectable>
            </selectables> <h:b>to</h:b> provide a <h:b>trusted</h:b> communication path between
              itself and [<h:i>remote</h:i>] users that is logically distinct from other
              communication paths and provides assured identification of its endpoints and
              protection of the communicated data from [<h:i>modification, disclosure</h:i>].</title>
            </f-element>
          
          <f-element id="ftp-trp-1e2-te">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> permit [<h:i>remote</h:i>] users to initiate communication via the trusted path.</title>
            </f-element>
          
          <f-element id="ftp-trp-1e3-te">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> require the use of the trusted path for [<h:i>[user enrollment of device into management]</h:i>].
            </title>
            <note role="application">This requirement ensures that MD users enroll devices into management by the  
              TOE (via MDM agent) using a trusted path, and that all communications with the TOE by 
              MD users is performed over this path. MDM agent communications after enrollment is covered by either FPT_ITT.1/INTRA_XFER_AGENT or FTP_ITC.1/OE_XFER_AGENT, depending on whether or not the MDM agent is part of the TOE.<h:br/><h:br/>
              If the ST author selects that the TSF implements "TLS as defined in <xref to="tls"/>," the TSF must be validated against requirements from <xref to="tls"/>, with the following selections made:
              <h:ul>
                <h:li>FCS_TLS_EXT.1: 
                  <h:ul>
                    <h:li>TLS must be selected</h:li>
                    <h:li>server must be selected</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_TLSS_EXT.1.1:
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                  </h:ul>
                </h:li>
              </h:ul>
              Protocol, DRBG, Certificate validation, algorithm, and similar services may be met with
              platform-provided services. <h:br/><h:br/>
              If HTTPS is selected, FCS_HTTPS_EXT.1 must be included in the ST. FCS_HTTPS_EXT.1 includes selections for both TSF and platform-provided HTTPS functionality, so this must be claimed if either of the HTTPS selections above are made.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that the methods of remote enrollment are indicated, along with how those communications are protected. The evaluator shall also confirm that all protocols listed in the TSS in support of enrollment are consistent with those specified in the requirement, and are included in the requirements in the ST.<h:br/><h:br/>
                If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains instructions for establishing the enrollment sessions for each supported method.</Guidance>
              <Tests>For each MDM agent or platform listed as supported in the ST: <testlist>
                <test>The evaluator shall ensure that communications using each specified (in the operational guidance) enrollment method is tested during the course of the evaluation, setting up the connections as described in the operational guidance and ensuring that communication is successful.</test>
                <test>For each method of enrollment supported, the evaluator shall follow the operational guidance to ensure that there is no available interface that can be used by a remote user to establish enrollment sessions without invoking the trusted path.</test>
                <test>The evaluator shall ensure, for each method enrollment, the channel data is not sent in plaintext. </test>
              </testlist> Further evaluation activities are associated with the specific protocols.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Initiation and termination of the trusted channel</audit-event-descr>
            <audit-event-info>Trusted channel protocol</audit-event-info>
          </audit-event>
        </f-component>
        
        <f-component cc-id="ftp_trp.1" name="Trusted Path (Joining)" iteration="TRUSTPATH_JOIN" status="objective">
          <f-element id="ftp-trp-1e1-tj">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> provide a communication path between itself and <h:b>a joining
              component</h:b> that is logically distinct from other communication paths and provides assured identification of <selectables>
                <selectable><h:b>the TSF endpoint</h:b></selectable>
                <selectable><h:b>both joining component and TSF endpoint</h:b></selectable>
              </selectables> and protection of the communicated data from
              [<h:i>modification</h:i>] <h:b>and</h:b> <selectables>
                <selectable>disclosure</selectable>
                <selectable><h:b>none</h:b></selectable>
              </selectables>.</title>
            </f-element>
          
          <f-element id="ftp-trp-1e2-tj">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> permit <selectables>
              <selectable>the TSF</selectable>
              <selectable><h:b>the joining component</h:b></selectable>
            </selectables> to initiate communication via the trusted path.</title>
            </f-element>
          
          <f-element id="fel-trp-func-tsf"> 
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> require the use of the trusted path for [<h:i>joining components
              to the TSF under environmental constraints identified in <assignable>reference to operational guidance</assignable>]</h:i>.</title>
            <note role="application">This requirement ensures that communications are protected between MDM server components when a distinct path is used to join components into a distributed TOE. If a separate channel is not used for joining, that is covered by FPT_ITT.1/INTRA_XFER. This requirement does not address an MDM agent joining a distributed TOE. That is covered by FTP_TRP.1/TRUSTPATH_ENROLL.   
              <h:br/><h:br/>              
When creating the distributed TOE from the initial components, any of these components may be identified as the TSF for the purposes of satisfying the meaning of "TSF" in this SFR.<h:br/><h:br/>
              The selection at the end of FTP_TRP.1/TRUSTPATH_JOIN recognizes that in some cases confidentiality (i.e., protection of the data from disclosure) may not be provided by the channel. The ST author distinguishes in the TSS whether in this case the TOE relies on the environment to provide confidentiality (as part of the constraints referenced in <xref to="fel-trp-func-tsf"/>) or whether the registration data exchanged does not require confidentiality (in which case this assertion must be justified). If "none" is selected, then this word may be omitted in the ST to improve readability.<h:br/><h:br/>             
              The assignment in <xref to="fel-trp-func-tsf"/> ensures that the ST highlights any specific details needed to protect the registration environment. As this does not follow the same rules as the other trusted communications requirements, specific requirements for how the operational guidance discusses the configuration of this path are included in the EA.<h:br/><h:br/>
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that the methods of joining TOE components are indicated, along with how those communications are protected. The evaluator shall also confirm that all protocols listed in the TSS in support of joining are consistent with those specified in the requirement, and are included in the requirements in the ST.<h:br/><h:br/>              
                If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains instructions for joining TOE components for each supported method.</Guidance>
              <Tests>The evaluator shall also perform the following tests: <testlist>
                <test>The evaluator shall ensure that the communications path for joining components to the TSF is tested for each distinct (nonequivalent) component type, setting up the connections as described in the guidance documentation and ensuring that communication is successful. In particular the evaluator shall confirm that requirements on environment protection for the registration process are consistent with observations made on the test configuration (for example, a requirement to isolate the components from the Internet during registration might be inconsistent with the need for a component to contact a license server). If no requirements on the registration environment are identified as necessary to protect confidentiality, then the evaluator shall confirm that the key used for registration can be configured (following the instructions in the guidance documentation) to be at least the same length as the key used for the internal TSF channel that is being enabled. The evaluator shall confirm that the key used for the channel is unique to the pair of components (this is done by identifying the relevant key during the registration test: it is not necessary to examine the key value).</test>
                <test>The evaluator shall follow the guidance documentation to ensure that in fact the communication channel can be enabled by an administrator for all the TOE components identified in the guidance documentation as capable of initiation.</test>
                <test>The evaluator shall ensure that if the guidance documentation states that the channel data is encrypted then the data observed on the channel is not plaintext.</test>
                <test> The evaluator shall ensure that, for each different pair of nonequivalent component types that can use the registration channel, the connection is physically interrupted during a joining attempt. The evaluator shall ensure that when physical connectivity is restored, communications are appropriately protected.</test>
              </testlist> Further evaluation activities are associated with the specific protocols.
              </Tests>
            </aactivity>
          </f-element>
          <audit-event>
            <audit-event-descr>Initiation and termination of the trusted channel</audit-event-descr>
            <audit-event-info>Trusted channel protocol</audit-event-info>
          </audit-event>
        </f-component>
		
        <f-component cc-id="ftp_trp.1" iteration="TRUSTPATH_REM_ADMIN" name="Trusted Path (Remote Administration)">
          <f-element id="trustpath-rem-admin">
            <title>The TSF shall <selectables linebreak="yes">
              <selectable><h:b>invoke platform-provided functionality to use <selectables linebreak="yes">
                <selectable id="TRP1_IPSEC_INVOKE">IPsec,</selectable>
                <selectable id="TRP1_TLS_INVOKE">TLS,</selectable>
                <selectable id="TRP1_HTTPS_INVOKE">HTTPS,</selectable>
                <selectable id="TRP1_SSH_INVOKE">SSH</selectable>
              </selectables></h:b></selectable>
              <selectable><h:b>implement functionality using <selectables linebreak="yes">
                <selectable id="TRP1_IPSEC_IMPLEMENT">IPsec as defined in <xref to="mod-vpnclient"/>,</selectable>
                <selectable id="TRP1_TLS_IMPLEMENT">TLS as defined in <xref to="tls"/>,</selectable>
                <selectable id="TRP1_HTTPS_IMPLEMENT">HTTPS in accordance with FCS_HTTPS_EXT.1,</selectable>
                <selectable id="TRP1_SSH_IMPLEMENT">SSH as defined in <xref to="ssh"/></selectable>
              </selectables></h:b></selectable></selectables> <h:b>to</h:b> provide a 
              communication path between itself <h:b>as a <selectables>
                <selectable>server</selectable>
                <selectable>peer</selectable>
              </selectables></h:b> and [<h:i>remote</h:i>] <h:b>administrators</h:b> that is logically distinct from other communication paths and provides assured
              identification of its endpoints and protection of the communicated data from [<h:i>modification, disclosure</h:i>].</title> 
          </f-element>
          
          <f-element id="ftp-trp-1e2-tra">
            <title>The TSF shall <selectables>
              <selectable><h:b>invoke platform-provided functionality</h:b></selectable>
              <selectable><h:b>implement functionality</h:b></selectable>
            </selectables> <h:b>to</h:b> permit [<h:i>remote <h:b>administrators</h:b></h:i>] to initiate communication via the trusted path.</title>
            </f-element>
          
          <f-element id="ftp-trp-1e3-tra">
            <title>The TSF shall require the use of the trusted path for [<h:i>initial <h:b>administrator</h:b> authentication, [remote administration]</h:i>].</title>
            <note role="application">For this particular use, only IPsec, TLS, DTLS, or HTTPS is permitted. Where X.509 validation is needed (e.g., if the TOE acts as a TLS server supporting mutual authentication), <xref to="X509"/> must be claimed. To distinguish X.509 validation for external communications from validation for internal communications (e.g., communication with a remote administrator versus communication between TOE components), FIA_X509_EXT.1 from <xref to="X509"/> must be included in the ST and iterated as "FIA_X509_EXT.1/External" per the guidance in <xref to="package-usage"/>.
              <h:br/><h:br/>
              If the ST author selects that the TSF implements "IPsec as defined in <xref to="mod-vpnclient"/>," the TSF must claim conformance to a PP-Configuration that includes the VPN Client PP-Module.<h:br/><h:br/>
              If the ST author selects that the TSF implements "SSH as defined in <xref to="ssh"/>," the TSF must be validated against <xref to="ssh"/>.<h:br/><h:br/>
              If the ST author selects that the TSF implements "mutually authenticated TLS as defined in <xref to="tls"/>," the TSF must be validated against requirements from <xref to="tls"/>, with the following selections made:
              <h:ul>
                <h:li>FCS_TLS_EXT.1: 
                  <h:ul>
                    <h:li>TLS must be selected</h:li>
                    <h:li>Server must be selected</h:li>
                  </h:ul>
                </h:li>
                <h:li>FCS_TLSS_EXT.1.1:
                  <h:ul>
                    <h:li>The ciphersuites selected must correspond with the algorithms and hash functions allowed in FCS_COP.1.</h:li>
                  </h:ul>
                </h:li>
            </h:ul>
            Protocol, DRBG, Certificate validation, algorithm, and similar services may be met with
            platform-provided services. <h:br/><h:br/>
            If HTTPS is selected, FCS_HTTPS_EXT.1 must be included in the ST. FCS_HTTPS_EXT.1 includes selections for both TSF and platform-provided HTTPS functionality, so this must be claimed if either of the HTTPS selections above are made. FCS_HTTPS_EXT.1 includes selections for both TSF and platform-provided HTTPS functionality, so this must be claimed if either of the HTTPS selections above are made.
            </note>
            <aactivity>
              <TSS>The evaluator shall examine the TSS to determine that the methods of remote TOE administration are indicated, along with how those communications are protected. The evaluator shall also confirm that all protocols listed in the TSS in support of TOE administration are consistent with those specified in the requirement, and are included in the requirements in the ST.<h:br/><h:br/>
              If "invoke platform-provided functionality" is selected, the evaluator shall examine the TSS to verify that it describes (for each supported platform) how this functionality is invoked (it should be noted that this may be through a mechanism that is not implemented by the MDM server; nonetheless, that mechanism will be identified in the TSS as part of this evaluation activity).</TSS>
              <Guidance>The evaluator shall confirm that the operational guidance contains instructions for establishing the remote administrative sessions for each supported method.</Guidance>
              <Tests>The evaluator shall also perform the following tests: <testlist>
                  <test>The evaluator shall ensure that communications using each specified (in the operational guidance) remote administration method is tested during the course of the evaluation, setting up the connections as described in the operational guidance and ensuring that communication is successful.</test>
                  <test>For each method of remote administration supported, the evaluator shall follow the operational guidance to ensure that there is no available interface that can be used by a remote user to establish remote administrative sessions without invoking the trusted path.</test>
                  <test>The evaluator shall ensure, for each method of remote administration, the channel data is not sent in plaintext.</test>
                  </testlist> Further evaluation activities are associated with the specific protocols.
              </Tests>
            </aactivity>
          </f-element>
        	<audit-event>
				<audit-event-descr>Initiation and termination of the trusted channel</audit-event-descr>
				<audit-event-info>Trusted channel protocol</audit-event-info>
				<audit-event-info>Identity of administrator</audit-event-info>
			</audit-event>
		</f-component>
		

      </section>
    </section>
	
    	
    <section title="Security Assurance Requirements" id="SARs">
    The Security Objectives for the TOE in <xref to="req"/> were constructed to address threats
      identified in <xref to="Threats"/>. The Security 
	Functional Requirements (SFRs) in <xref to="req"/> 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/>
    This section lists the set of SARs from CC part 3 that are required in evaluations against this PP. Individual Evaluation
	Activities (AAs) to be performed are specified both in <xref to="req"/> 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 and 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="req"/>, which are intended to be an interpretation of the other CEM assurance requirements as they apply to the
	specific technology instantiated in the TOE. The Evaluation Activities that are captured in <xref to="req"/> also provide clarification as to what the
	developer needs to provide to demonstrate the TOE is compliant with the PP. <h:br/><h:br/>
      The TOE Security Assurance Requirements are identified in <xref to="sartable"/>.
      <h:p/> 
      <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="2">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>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>
      
   
    <section id="ase" title="Class ASE: Security Target"> 
      The ST is evaluated as per ASE activities defined in the CEM. In addition, there may be Evaluation Activities specified within <xref to="req"/> and relevant appendices that call for necessary descriptions to be included in the TSS that are specific to the TOE technology type. 
       <a-component cc-id="ase_tss.1" name="TOE summary specification">
         <a-element type="C">
           <title>The TOE summary specification shall describe how the TOE meets each SFR.</title>
         </a-element>        
       </a-component>     
    </section>

    <section id="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 (e.g., Entropy Essay).
        <a-component cc-id="adv_fsp.1" name="Basic Functional Specification (ADV_FSP.1)"> 
          The functional specification describes the Target Security Functions Interfaces (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/> 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.
            <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 and AGD_PRE documentation. The developer may reference a website accessible to application developers and the evaluator. 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 Section 5 and the relevant appendices, 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>
      </section>
    <section id="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:br/><h:br/>
      <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> Guidance pertaining to particular security functionality must also be 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 (AGD_OPE.1)">
            <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 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 TOE (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 will be verified by the evaluation
                activities in Sections 4.2, 4.3, and 4.4, and evaluation of the 
				TOE according to the CEM. The following additional information is also required.<h:br/><h:br/> 
				If cryptographic functions are provided by the TOE, 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 - this may be done by the TOE or the underlying platform. The evaluator shall verify that this process includes
				the following steps:<h:br/><h:br/> 
				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:br/><h:br/>
				Instructions for initiating the update process, as well as discerning whether the process was successful or unsuccessful. This includes generation 
				of the hash or digital signature.<h:br/><h:br/>
				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 (AGD_PRE.1)">
            <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>
              <note role="application">It is recognized that the application of these requirements will vary depending on aspects such as whether the TOE is delivered in an operational state, or whether it has to be installed at the TOE owner's site, etc.<h:br/><h:br/>
                It might also be the case that no installation is necessary, for example as a
                Software as a Service implementation in a Cloud environment. In this case it may be inappropriate to require and analyze installation procedures and thus this requirement is implicitly satisfied.
              </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>
            </a-element>
            <a-element type="E">
              <title>The evaluator shall apply the preparative procedures to confirm that the TOE 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>
      </section>
    <section id="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's 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 (ALC_CMC.1)">
          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. 
            <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 its 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 and version number) that specifically identifies the version that meets the requirements of the ST. Further, the evaluator shall check the operational 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 website advertising the TOE, the evaluator shall examine the information on the website 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 (ALC_CMS.1)">
          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. 
            <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">
                In cases where the MDM software is Software as a Service, running in a cloud environment where they have little to no control of the operating system and underlying hardware, the evaluated configuration is considered a snapshot of the MDM software with the OS or VM versions used at the time of testing. 
              </note>
              <aactivity>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 operational 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.<h:br/><h:br/> 
                <!-- TODO:Is this necessary?: The evaluator shall ensure that the developer has identified (in public-facing development documentation 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 environment(s) are invoked (e.g., compiler 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.<h:br/><h:br/>
              </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 inquiries 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>	
        
      </section>
      <section id="ate-tests" 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 devices. 
        <a-component cc-id="ate_ind.1" name="Independent Testing - Conformance (ATE_IND.1)"> 
          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 specified in Sections 5.3 and 5.4 are being met, although some additional testing is specified for SARs in Section 6. 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 TOE or platform combinations that are claiming conformance to this PP.
            <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 <h:i>shall confirm</h:i> 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 the 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  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.<h:br/><h:br/>
              </aactivity>
            </a-element>          
        </a-component>
      </section>
    <section id="ava" title="Class AVA: Vulnerability Analysis">
      For the first 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 (AVA_VAN.1)">
            <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>
            </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>As with ATE_IND, 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 determine the vulnerabilities that have been
			  found in network infrastructure 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. 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>
      </section>
    </section>
  </section>
  
  <appendix id="optional" title="Optional Requirements">
    <!-- Note: This text is auto populated -->
  </appendix>  
  <appendix id="sel-based" title="Selection-Based Requirements"> 
    As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE or its
	underlying platform) are contained in the body of the PP. There are additional requirements based on selections in the body 
	of the PP; if certain selections are made, then additional requirements below will need to be included. </appendix>
  <appendix id="objective" title="Objective Requirements"> 
    As indicated in the introduction to this PP, the baseline requirements (those that must be performed by the TOE or its 
	underlying platform) are contained in the body of this PP. There are additional requirements that specify security 
	functionality that is desirable and these requirements are contained in this Appendix. It is expected that these 
	requirements will transition from objective requirements to baseline requirements in future versions of this PP.<h:br/><h:br/> 
	At any time these may be included in the ST such that the TOE is still conformant to this PP.<h:br/><h:br/> This Appendix is 
	divided into two subsections: objective requirements that may be performed by the TSF and objective requirements that may be
	performed by the MDM agent or its underlying platform.<h:br/><h:br/>
  </appendix>
  
  <appendix id="satisfiedreqs" title="Implicitly Satisfied Requirements">
    <!-- Boilerplate goes here -->
    <!--	This appendix lists requirements that should be considered satisfied by products successfully evaluated
	against this PP. However, these requirements are not featured explicitly as SFRs and should not be
	included in the ST. They are not included as standalone SFRs because it would increase the time, cost,
	and complexity of evaluation. This approach is permitted by [CC] Part 1, 8.2 Dependencies between
	components.<h:br/><h:br/>
	This information benefits systems engineering activities which call for inclusion of particular security
	controls. Evaluation against the PP-Module provides evidence that these controls are present and have
	been evaluated.
-->
    
    <h:b><ctr ctr-type="Table" pre="Table " id="imp-sat-reqs-table">: Implicitly Satisfied Requirements</ctr></h:b>
    <h:table>	
      <h:tr class="header"><h:td>Requirement</h:td><h:td>Rationale for Satisfaction</h:td></h:tr>
      <h:tr>
        <h:td><h:b>FIA_UID.1 - Timing of Identification</h:b></h:td>
        <h:td>
          FIA_UAU.1 has a dependency on FIA_UID.1 because authentication of an external entity requires that entity to first identify
          itself so that its identity can be validated by the authentication process.<h:br/><h:br/>
          
          This SFR has not been defined in this PP-Module because authentication of a user implicitly requires them to be identified as well.<h:br/><h:br/>
          
          There are two cases in which a user must be authenticated by the TSF per the application note in FIA_UAU.1: enrollment of a user’s 
          MD into management, and authentication of a user to the TOE’s management interface. FIA_ENR_EXT.1 requires authentication
          of the user using a method such as a directory server, which implicitly expects that the user must identify themselves as well as 
          provide a credential associated with the claimed identity. For management, FMT_SMR.1/SECMAN_ROLES requires the TSF to maintain an administrator
          role but it does not specify whether authentication to this role is role-based or identity-based. Therefore, the PP is not concerned 
          with the specific mechanism by which an administrator presents their identity to the TSF, only that there is a mechanism to validate
          and authorize whatever information they do present.
        </h:td>
      </h:tr>
      <h:tr>
        <h:td><h:b>FMT_MTD.1 - Management of TSF Data</h:b></h:td>
        <h:td>
          FAU_SEL.1 has a dependency on FMT_MTD.1 because the configuration settings that determine what events are audited is considered to be
          TSF data. While FAU_SEL.1 determines the extent to which the TOE’s audit function is configured, it relies on FMT_MTD.1 to determine
          the administrative roles that are permitted to manipulate this data.<h:br/><h:br/>
          
          The PP allows FAU_SEL.1 to be implemented either by the TSF or by the TOE platform because the TOE may rely on the audit functionality
          provided by the OS it runs on. If this is configured entirely through the platform, the administrator does not necessarily need to be 
          authenticated by the TOE to do this. Therefore, requiring FMT_MTD.1 does not make sense in this situation. If this is configured through
          the TOE, it can be implied from a review of FMT_SMR.1/SECMAN_ROLES that the ‘MD user’ role cannot perform this function as they lack the authority
          to manage the TSF. It is therefore understood that this function can be performed by the ‘administrator’ role or potentially by one or 
          more roles specified by the ST author if the selection to specify additional roles is chosen. An additional SFR that explicitly identifies
          the roles permitted to manage this function is redundant in this context.
        </h:td>
      </h:tr>
      <h:tr>
        <h:td><h:b>FPT_STM.1 - Reliable Time Stamps</h:b></h:td>
        <h:td>
          The PP’s iterations of FAU_GEN.1 as well as its cryptographic functionality have a
          dependency on FPT_STM.1 because audit data require 
          accurate timestamps as well as some cryptographic operations, such as determining if a presented X.509 certificate is expired. The TOE 
          is installed on a general-purpose computer or specialized network device that is assumed to have the ability to provide certain functions
          to the TOE as defined in A.MDM_SERVER_PLATFORM. This assumption explicitly lists ‘reliable timestamps’ as a function that the TSF is 
          expected to have available to it.
        </h:td>
      </h:tr>     
    </h:table>
  </appendix>

  <appendix id="entropyappendix" title="Entropy Documentation and Assessment"> 
    This appendix describes the required supplementary information for each entropy source used by the TOE.<h:br/><h:br/> The 
	documentation of the entropy sources should be detailed enough that, after reading, the evaluator will thoroughly 
	understand the entropy source and why it can be relied on to provide sufficient 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. <h:br/><h:br/>
    <section id="design-description" title="Design Description"> Documentation shall include the design of each entropy source
	as a whole, including the interaction of all entropy source components. Any information that can be shared regarding the
	design should also be included for any third-party entropy sources that are included in the product.<h:br/><h:br/> The
	documentation will describe the operation of the entropy source to include, 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 entropy comes from, where the entropy output is passed next, any post-processing 
	of the raw outputs (hash, XOR, etc.), if or 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.<h:br/><h:br/>
    </section>
    <section id="entropy-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 delivering sufficient entropy for the uses made of the DRBG output (by this particular
        TOE). This argument will include a description of the expected min-entropy
      rate (i.e., the minimum entropy (in bits) per bit or byte of source data) and explain 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 on to
      produce bits with entropy.<h:br/><h:br/> The amount of information necessary to justify the
      expected min-entropy rate depends on the type of entropy source included in the
      product.<h:br/><h:br/> For developer provided entropy sources, in order to justify the min-entropy
      rate, it is expected that a large number of raw source bits will be collected, statistical
      tests will be performed, and the min-entropy rate determined from the statistical tests.
      While no particular statistical tests are required at this time, it is expected that some
      testing is necessary in order to determine the amount of min-entropy in each output.<h:br/><h:br/>
      For third-party provided entropy sources, in which the TOE vendor has
      limited access to the design and raw entropy data of the source, the documentation will
      indicate an estimate of the amount of min-entropy obtained from this third-party source. It
      is acceptable for the vendor to "assume" an amount of min-entropy, however, this assumption
      must be clearly stated in the documentation provided. In particular, the min-entropy estimate
      must be specified and the assumption included in the ST.<h:br/><h:br/> Regardless
      of type of entropy source, the justification will also include how the DRBG is initialized
      with the entropy stated in the ST, for example by verifying that the
      min-entropy rate is multiplied by the amount of source data used to seed the DRBG or that the
      rate of entropy expected based on the amount of source data is explicitly stated and compared
      to the statistical rate. If the amount of source data used to seed the DRBG is not clear or
      the calculated rate is not explicitly related to the seed, the documentation will not be
      considered complete.<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.<h:br/><h:br/>
    </section>
    <section id="operating-conditions" title="Operating Conditions"> The entropy rate may be affected by conditions
      outside the control of the entropy source itself. For example, voltage, frequency,
      temperature, and elapsed time after power-on are just a few of the factors that may affect the
      operation of the entropy source. As such, documentation will also include the range of
      operating conditions under which the entropy source is expected to generate random data.
      Similarly, documentation shall describe the conditions under which the entropy source is no
      longer guaranteed to provide sufficient entropy. Methods used to detect failure or degradation
      of the source shall be included.<h:br/><h:br/>
    </section>
    <section id="sec4" 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, TOE
      behavior upon entropy source failure, and rationale indicating why each test is believed to be
      appropriate for detecting one or more failures in the entropy source.<h:br/><h:br/>
    </section>
  </appendix>
  
  <appendix id="EACDT" title="Evaluating Additional Components for a Distributed TOE">
    In the case of a distributed TOE the ST will identify an evaluated configuration that consists of a number of separate components chosen by the ST author, 
	which collectively satisfy the requirements of the PP. This evaluated configuration need not be the minimum set of components that could possibly meet the PP 
	(e.g., if the TOE is intended for large enterprise deployments then the evaluated configuration might include some redundancy in components in order to support
	expected connectivity and loads), but because this is the main configuration referred to in the ST and the evaluation, it is treated in this section as the 
	minimum configuration of interest and is referred to here as the 'minimum configuration' as well as the 'evaluated configuration'.<h:br/><h:br/>
    
    In addition to the minimum configuration above, the ST may also identify (at the author's discretion, and subject to verification as described in this section) 
	which TOE components can have instances added to an operational configuration without affecting the validity of the CC certification. The ST description may 
	include constraints on how such components are added, including required or prohibited configurations of the components.<h:br/><h:br/>
    
    Extra instances of a TOE component must have the same hardware and software as the original component included in the evaluated configuration.<h:br/><h:br/>
    <section title="Evaluator Actions for Assessing the ST" id="sec1">
      <h:b>TSS</h:b>
      The evaluator shall examine the TSS to identify any extra instances of TOE components allowed in the ST and shall examine the description of how the additional 
	  components maintain the SFRs to confirm that it is consistent with the role that the component plays in the evaluated configuration. For example: the secure 
	  channels used by the extra component for intra-TOE communications (FPT_ITT) and external communications (FTP_ITC) must be consistent, the audit information
	  generated by the extra component must be maintained, and the management of the extra component must be consistent with that used for the original instance of 
	  the component in the minimum configuration.
    </section>
    <section title="Evaluator Actions for Assessing the Guidance Documentation" id="sec2">
      <h:b>Guidance</h:b>
      <!-- <Guidance> -->
	The evaluator shall examine the description of the extra instances of TOE components in the guidance documentation to confirm that they are consistent with those
	identified as allowed in the ST. This includes confirmation that the result of applying the guidance documentation to configure the extra component will leave the
	TOE in a state such that the claims for SFR support in each component are as described in the ST and therefore that all SFRs continue to be met when the extra
	components are present.<h:br/><h:br/>
      
      The evaluator shall examine the secure communications described for the extra components to confirm that they are the same as described for the components in
	  the minimum configuration (additional connections between allowed extra components and the components in the minimum configuration are allowed of course).<h:br/><h:br/>
      <!-- </Guidance> -->
    </section> 
    <section title="Evaluator Actions for Testing the TOE" id="sec3">
      <h:b>Tests</h:b>
      <!-- <Tests> -->
	The evaluator tests the TOE in the minimum configuration as defined in the ST (and the guidance documentation).<h:br/><h:br/>
      
      If the description of the use of extra components in the ST and guidance documentation identifies any difference in the SFRs allocated to a component, or 
	  the scope of the SFRs involved (e.g., if different selections apply to different instances of the component) then the evaluator tests these additional SFR cases
	  that were not included in the minimum configuration.<h:br/><h:br/>
      
      In addition, the evaluator tests the following aspects for each extra component that is identified as allowed in the distributed TOE:<h:br/><h:br/>
      <h:ul>
        <h:li>Communications: the evaluator follows the guidance documentation to confirm, by testing, that any additional connections introduced with the extra 
		component and not present in the minimum configuration are consistent with the requirements stated in the ST (e.g., with regard to protocols and ciphersuites
		used). An example of such an additional connection would be if a single instance of the component is present in the minimum configuration and adding a 
		duplicate component then introduces an extra communication between the two instances. Another example might be if the use of the additional components
		necessitated the use of a connection to an external authentication server instead of using locally stored credentials. </h:li>
        <h:li>Audit: the evaluator confirms that the audit records from different instances of a component can be distinguished so that it is clear which instance
		generated the record.</h:li>
        <h:li>Management: if the extra component manages other components in the distributed TOE then the evaluator shall follow the guidance documentation to
		confirm that management via the extra component uses the same roles and role holders for administrators as for the component in the minimum configuration.</h:li>
      </h:ul>
      <!-- </Tests> -->
    </section>
  </appendix> 
 
<appendix id="equiv" title="MDM Software Equivalency Guidelines">
    <section id="mdm-intro" title="Introduction">
      The purpose of equivalence in PP-based evaluations is to find a balance between evaluation rigor and commercial practicability, to 
      ensure that evaluations meet customer expectations while recognizing that there is little to be gained from requiring that every 
      variation in a product or platform be fully tested. If a product is found to be compliant with a PP on one platform, then all 
      equivalent products on equivalent platforms are also considered to be compliant with the PP.
      <h:br/>
      <h:br/>
      A Vendor can make a claim of equivalence if the Vendor believes that a particular instance of their Product implements PP-specified 
      security functionality in a way equivalent to the implementation of the same functionality on another instance of their Product on 
      which the functionality was tested. The Product instances can differ in version number or feature level (model), or the instances may
      run on different platforms. Equivalency can be used to reduce the testing required across claimed evaluated configurations. It can 
      also be used during Assurance Maintenance to reduce testing needed to add more evaluated configurations to a certification.
      <h:br/>
      <h:br/>
      These equivalency guidelines do not replace Assurance Maintenance requirements or NIAP Policy #5 requirements for CAVP certificates. 
      Nor may equivalency be used to leverage evaluations with expired certifications.
      <h:br/>
      <h:br/>
      These Equivalency Guidelines represent a shift from complete testing of all product instances to more of a risk-based approach. 
      Rather than require that every combination of product and platform be tested, these guidelines support an approach that recognizes
      that products are being used in a variety of environments, and often in cloud environments over where the vendor (and sometimes the 
      customer) have little or no control over the underlying hardware. Developers should be responsible for the security functionality of 
      their applications on the platforms they are developed for, whether that is an operating system, a virtual machine, or a software-based
      execution environment such as a container. But those platforms may themselves run within other environments, virtual machines or
      operating systems, that completely abstract away the underlying hardware from the application. The developer should not be held
      accountable for security functionality that is implemented by platform layers that are abstracted away. The implication is that
      not all security functionality will necessarily be tested for all platform layers down to the hardware for all evaluated
      configurations, especially for applications developed for software-based execution environments such as containers. For these cases, 
      the balancing of evaluation rigor and commercial practicability tips in favor of practicability. Note that this does not affect the requirement 
	  that at least one product instance be fully tested on at least one platform with cryptography mapped to a CAVP certificate.
      <h:br/>
      <h:br/>
      Equivalency has two aspects:
      <h:br/>
      <h:ul>
        <h:li><h:b><h:i>Product Equivalence:</h:i></h:b> Products may be considered equivalent if there are no
          differences between Product Models and Product Versions with respect to PP-specified security functionality.</h:li>
        <h:li><h:b><h:i>Platform Equivalence:</h:i></h:b> Platforms may be considered equivalent if there are no
          significant differences in the services they provide to the Product, or in the way the platforms 
          provide those services, with respect to PP-specified security functionality.</h:li>
      </h:ul>
      The equivalency determination is made in accordance with these guidelines by the Validator and Scheme using information provided by the evaluator or vendor.
    </section>
    <section id="approach" title="Approach to Equivalency Analysis">
      There are two scenarios for performing equivalency analysis. One is when a product has been certified and the vendor 
      wants to show that a later product should be considered certified due to equivalence with the earlier product. The 
      other is when multiple product variants are going though evaluation together and the vendor would like to reduce 
      the amount of testing that must be done. The basic rules for determining equivalence are the same in both cases. 
      But there is one additional consideration that applies to equivalence with previously certified products. That is, 
      the product with which equivalence is being claimed must have a valid certification in accordance with scheme rules
      and the Assurance Maintenance process must be followed. If a product’s certification has expired, then equivalence 
      cannot be claimed with that product.
      <h:br/><h:br/>
      When performing equivalency analysis, the evaluator or vendor should first use the factors and guidelines for Product
      Model equivalence to determine the set of Product Models to be evaluated. In general, Product Models that do not differ 
      in PP-specified security functionality are considered equivalent for purposes of evaluation against the APP PP.
      <h:br/><h:br/>
      If multiple revision levels of Product Models are to be evaluated, or to determine whether a revision of an evaluated 
      product needs re-evaluation, the evaluator or vendor and validator should use the factors and guidelines for Product 
      Version equivalence to analyze whether Product Versions are equivalent.
      <h:br/><h:br/>
      Having determined the set of Product Models and Versions to be evaluated, the next step is to determine the set of
      Platforms that the Products must be tested on.
      <h:br/><h:br/>
      Each non-equivalent Product for which compliance is claimed must be fully tested on each non-equivalent platform 
      for which compliance is claimed. For non-equivalent Products on equivalent platforms, only the differences that
      affect PP-specified security functionality must be tested for each product.
      <h:br/>
      <h:br/>
      <h:b><h:i>"Differences in PP-Specified Security Functionality" Defined</h:i></h:b>
      <h:br/>
      If PP-specified security functionality is implemented by the TOE, then differences in the actual implementation
      between versions or product models break equivalence for that feature. Likewise, if the TOE implements the 
      functionality in one version or model and the functionality is implemented by the platform in another version 
      or model, then equivalence is broken. If the functionality is implemented by the platform in multiple models or 
      versions on equivalent platforms, then the functionality is considered different if the product invokes the platform 
      differently to perform the function.
      
    </section>
    <section id="modelequiv" title="Specific Guidance for Determining Product Model Equivalence">
      Product Model equivalence attempts to determine whether different feature levels of the same product across 
      a product line are equivalent for purposes of PP testing. For example, if a product has a "basic" edition and an "enterprise" 
      edition, is it necessary to test both models? Or does testing one model provide sufficient assurance that both models 
      are compliant?
      <h:br/>
      <h:br/>
      Product models are considered equivalent if there are no differences that affect PP-specified security functionality, as indicated in <xref to="modeleq"/>.
      <h:br/>
      <h:br/>
      <h:b><ctr ctr-type="Table" pre="Table " id="modeleq">: Determining Product Model Equivalence</ctr></h:b>
      <h:table>
        <h:tr>
          <h:td valign="top">Factor</h:td>
          <h:td valign="top">Same or Different</h:td>
          <h:td valign="top">Guidance</h:td>
        </h:tr>
        <h:tr>
          <h:td rowspan="2" valign="top">PP-Specified Functionality</h:td>
          <h:td valign="top">Same</h:td>
          <h:td valign="top">If the differences between Models affect only non-PP-specified functionality, then the Models are equivalent. </h:td>
        </h:tr>
        <h:tr>
          <h:td valign="top">Different</h:td>
          <h:td valign="top">If PP-specified security functionality is affected by the differences between Models, 
            then the Models are not equivalent and must be tested separately. It is necessary only to test the functionality 
            affected by the software differences. If only differences are tested, then the differences must be enumerated, 
            and for each difference the Vendor must provide an explanation of why each difference does or does not affect 
            PP-specified functionality. If the Product Models are separately tested fully, then there is no need to document the differences. 
          </h:td>
        </h:tr>
      </h:table>
      <h:br/> 
      <h:br/>
    </section>
    <section id="versionequiv" title="Specific Guidance for Determining Product Version Equivalence">
      In cases of version equivalence, differences are expressed in terms of changes implemented in revisions 
      of an evaluated Product. In general, versions are equivalent if the changes have no effect on any 
      security-relevant claims about the TOE or assurance evidence. Non-security-relevant changes to TOE 
      functionality or the addition of non-security-relevant functionality does not affect equivalence.
      <h:br/><h:br/>
      <h:b><ctr ctr-type="Table" pre="Table " id="versioneq">: Factors for Determining Product Version Equivalence</ctr></h:b>
      <h:table>
        <h:tr>
          <h:td valign="top">Factor</h:td>
          <h:td valign="top">Same or Different</h:td>
          <h:td valign="top">Guidance</h:td>
        </h:tr>
        <h:tr valign="top">
          <h:td valign="top">Product Models</h:td>
          <h:td valign="top">Different</h:td>
          <h:td valign="top">Versions of different Product Models are not equivalent unless the Models are equivalent as defined in subsection 3.</h:td>
        </h:tr>
        <h:tr>
          <h:td rowspan="2" valign="top">PP-Specified Functionality</h:td>
          <h:td valign="top">Same</h:td>
          <h:td valign="top">If the differences affect only non-PP-specified functionality, then the Versions are equivalent. </h:td>
        </h:tr>
        <h:tr>
          <h:td valign="top">Different</h:td>
          <h:td valign="top">If PP-specified security functionality is affected by the differences, then the 
            Versions are not considered equivalent and must be tested separately. It is necessary only to test 
            the functionality affected by the changes. If only the differences are tested, then for each 
            difference the Vendor must provide an explanation of why the difference does or does not affect 
            PP-specified functionality. If the Product Versions are separately tested fully, then there is 
            no need to document the differences. </h:td>
        </h:tr>
      </h:table>
      <h:br/>
      <h:br/>
    </section>
    <section id="platformequiv" title="Specific Guidance for Determining Platform Equivalence">
      Platform equivalence is used to determine the platforms that equivalent versions of a Product must be tested on. 
      Platform equivalence analysis done for one MDM cannot be applied to another MDM.
      Platform equivalence is not general, it is with respect to a particular MDM. 
      <h:br/><h:br/>
      Product Equivalency analysis must already have been done and Products have been determined to be equivalent.
      <h:br/><h:br/>
      The platform can be hardware or virtual hardware, an operating system or similar entity, or a software execution 
      environment such as a container. For purposes of determining equivalence for MDMs, we address each
      type of platform separately. In general, platform equivalence is based on differences in the interfaces between the 
      TOE and Platform that are relevant to the implementation of PP-specified security functionality.
      <h:br/><h:br/>
      <section id="hardware-equiv" title="Platform Equivalence, Hardware and Virtual Hardware Platforms">
        If an MDM runs directly on hardware without an operating system, or directly on virtualized 
        hardware without an operating system, then platform equivalence is based on processor architecture and 
        instruction sets. In the case of virtualized hardware, it is the virtualized processor and architecture 
        that are presented to the MDM that matters, not the physical hardware.
        <h:br/><h:br/>
        Platforms with different processor architectures and instruction sets are not equivalent. This is not 
        likely to be an issue for equivalency analysis for MDMs since there is likely to be a different 
        version of the MDM for different hardware environments.
        Equivalency analysis becomes important when comparing processors with the same architecture. Processors 
        with the same architecture that have instruction sets that are subsets or supersets of each other are not
        disqualified from being equivalent for purposes of an MDM evaluation. If the MDM takes the same 
        code paths when executing PP-specified security functionality on different processors of the same family, 
        then the processors can be considered equivalent with respect to that MDM.
        For example, if an MDM follows one code path on platforms that support the AES-NI instruction 
        and another on platforms that do not, then those two platforms are not equivalent with respect to that 
        MDM functionality. But if the MDM follows the same code path whether or not the platform 
        supports AES-NI, then the platforms are equivalent with respect to that functionality.
        <h:br/><h:br/>
        The platforms are equivalent with respect to the MDM if the platforms are equivalent with respect to all PP-specified
        security functionality.
        <h:br/><h:br/>
        <h:b><ctr ctr-type="Table" pre="Table " id="hwplateq">: Factors for Determining Hardware and Virtual Hardware Platform Equivalence</ctr></h:b>
        <h:table>
          <h:tr>
            <h:td valign="top">Factor</h:td>
            <h:td valign="top">Same, Different, or None</h:td>
            <h:td valign="top">Guidance</h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Architectures</h:td>
            <h:td valign="top">Different</h:td>
            <h:td valign="top">Platforms that present different processor architectures and instruction sets to the MDM are not equivalent.</h:td>
          </h:tr>
          <h:tr>
            <h:td valign="top">PP-Specified Functionality</h:td>
            <h:td valign="top">Same</h:td>
            <h:td valign="top">For platforms with the same processor architecture, the platforms are equivalent with
              respect to the MDM if execution of all PP-specified security functionality follows the same code path on both platforms.</h:td>
          </h:tr>
        </h:table>
        <h:br/>
        <h:br/>
        
      </section>
      <section id="os-equiv" title="Platform Equivalence, OS Platforms">
        For MDMs that are built for and run on operating systems, platform equivalence is 
        determined by the interfaces between the MDM and the operating system that are relevant to PP-specified 
        security functionality. Generally, these are the processor interface, device interfaces, and OS APIs. The following 
        factors applied in order:
        <h:br/><h:br/>
        <h:b><ctr ctr-type="Table" pre="Table " id="osplateq">: Factors for Determining OS or VS Platform Equivalence</ctr></h:b>
        <h:table>
          <h:tr>
            <h:td valign="top">Factor</h:td>
            <h:td valign="top">Same, Different, or None</h:td>
            <h:td valign="top">Guidance</h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Architectures</h:td>
            <h:td valign="top">Different</h:td>
            <h:td valign="top">Platforms that run on different processor architectures and instruction sets are not equivalent.</h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Vendors</h:td>
            <h:td valign="top">Different</h:td>
            <h:td valign="top">Platforms from different vendors are not equivalent. </h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Versions</h:td>
            <h:td valign="top">Different</h:td>
            <h:td valign="top">Platforms from the same vendor with different major version numbers are not equivalent.</h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Interfaces</h:td>
            <h:td valign="top">Different</h:td>
            <h:td valign="top">Platforms from the same vendor and major version are not equivalent if there are
              differences in device interfaces and OS APIs that are relevant to the way the platform provides PP-specified 
              security functionality to the MDM. </h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Interfaces</h:td>
            <h:td valign="top">Same</h:td>
            <h:td valign="top">Platforms from the same vendor and major version are equivalent if there are 
              no differences in device interfaces and OS APIs that are relevant to the way the platform 
              provides PP-specified security functionality to the MDM, or if the Platform does 
              not provide such functionality to the MDM.</h:td>
          </h:tr>          
        </h:table>        
        <h:br/>
        <h:br/>
    
      </section>
      <section id="software-equiv" title="Software-based Execution Environment Platform Equivalence">
        If an MDM is built for and runs in a non-OS software-based execution environment, such as a Container or 
        Java Runtime, then the below criteria must be used to determine platform equivalence. The key point is that the 
        underlying hardware (virtual or physical) and OS is not relevant to platform equivalence. This allows MDMs 
        to be tested and run on software-based execution environments on any hardware, as in cloud deployments.
        <h:br/><h:br/>
        <h:b><ctr ctr-type="Table" pre="Table " id="swplateq">: Factors for Software-based Execution Environment Platform Equivalence</ctr></h:b>
        <h:table>
          <h:tr>
            <h:td valign="top">Factor</h:td>
            <h:td valign="top">Same, Different, or None</h:td>
            <h:td valign="top">Guidance</h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Type or Vendor</h:td>
            <h:td valign="top">Different</h:td>
            <h:td valign="top">Software-based execution environments that are substantially different or come 
              from different vendors are not equivalent. For example, a java virtual machine is not the same as a 
              container. A Docker container is not the same as a CoreOS container.</h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">Platform Versions</h:td>
            <h:td valign="top">Different</h:td>
            <h:td valign="top">Execution environments that are otherwise equivalent are not equivalent if they have 
              different major version numbers.</h:td>
          </h:tr>
          <h:tr valign="top">
            <h:td valign="top">PP-Specified Security Functionality</h:td>
            <h:td valign="top">Same</h:td>
            <h:td valign="top">All other things being equal, execution environments are equivalent if there is no 
              significant difference in the interfaces through which the environments provide PP-specified security 
              functionality to MDMs.</h:td>
          </h:tr>
        </h:table>
        <h:br/>
        <h:br/>
      </section>
    </section>
    <section id="specificity" title="Level of Specificity for Tested Configurations and Claimed Equivalent Configurations">
      In order to make equivalency determinations, the vendor and evaluator must agree on the equivalency claims. They must 
      then provide the scheme with sufficient information about the TOE instances and platforms that were evaluated, and the 
      TOE instances and platforms that are claimed to be equivalent.
      <h:br/><h:br/>
      The ST must describe all configurations evaluated down to processor manufacturer, model number, and microarchitecture version. 
      <h:br/><h:br/>
      The information regarding claimed equivalent configurations depends on the platform that the MDM was developed for and runs on.
      <h:br/><h:br/>
      <h:b>Bare-Metal MDMs</h:b>
      <h:br/><h:br/>
      For MDM servers that run without an operating system on bare-metal or virtual bare-metal, the claimed configuration must 
      describe the platform down to the specific processor manufacturer, model number, and microarchitecture version. The Vendor
      must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE functions
      differently to leverage platform differences (e.g., instruction set extensions) in the tested configuration versus the 
      claimed equivalent configuration. 
      <h:br/><h:br/>
      <h:b>Traditional MDMs</h:b>
      <h:br/><h:br/>
      For MDMs that run with an operating system as their immediate platform, the claimed configuration must describe 
      the platform down to the specific operating system version. If the platform is a virtualization system, then the claimed 
      configuration must describe the platform down to the specific virtualization system version. The Vendor must describe the 
      differences in the TOE with respect to PP-specified security functionality and how the TOE functions differently to leverage
      platform differences in the tested configuration versus the claimed equivalent configuration. Relevant platform differences 
      could include instruction sets, device interfaces, and OS APIs invoked by the TOE to implement PP-specified security 
      functionality.
      <h:br/><h:br/>
      <h:b>Software-Based Execution Environments</h:b>
      <h:br/><h:br/>
      For MDMs that run in a software-based execution environment such as a Java virtual machine or a Container, then 
      the claimed configuration must describe the platform down to the specific version of the software execution environment. 
      The Vendor must describe the differences in the TOE with respect to PP-specified security functionality and how the TOE 
      functions differently to leverage platform differences in the tested configuration versus the claimed equivalent 
      configuration.
      <h:br/>
      
    </section>
  </appendix>
	
 <!-- 
  <appendix id="use-case" 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 Section 5 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. 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 title="Enterprise-owned device for general-purpose enterprise use" id="usecase1">
     </section>   
    <section title="Enterprise-owned device for specialized, high-security use" id="usecase2">
      <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>FMT_SMF.1/SERVER_CONF_AGENT Function 15 (removal of X.509 certificates from trust anchor database)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 16 (alert the user)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 31 (configuration of VPN policy)</h:td>
          <h:td>Include in ST and select "no other method."</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 32 (configuration of radios)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 33 (configuration of data signaling over external hardware)</h:td>
          <h:td>Include in ST. Assign at least USB.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 34 (configuration of device server functions)</h:td>
          <h:td>Include in ST. Assign all protocols where the device acts as a server.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 36 (policy for data-at-rest protection)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 37 (policy for removable media data-at-rest protection)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 40 (notifications in the locked state)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 42 (configuration of cellular protocols</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 47 (configuration of unlock banner policy)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 52 (configuration of location services)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 54 (configuration of always-on VPN)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_SERVER Function 'b.2' (configuration of X.509 behavior when revocation status is unknown)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_SERVER Function 'b.3' (configuration of the TOE unlock banner)</h:td>
          <h:td>Include in ST.</h:td>
        </h:tr>
      </h:table>
    </section>
    <section title="Personally-owned device for personal and enterprise use" id="usecase3">
      <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>FMT_SMF.1/SERVER_CONF_AGENT Function 13 (remove enterprise applications)</h:td>
          <h:td>Include in ST</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 14 (wipe enterprise data)</h:td>
          <h:td>Include in ST</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 21 (approve exceptions for sharing data)</h:td>
          <h:td>Include in ST</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 22 (place applications into groups)</h:td>
          <h:td>Include in ST</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 30 (configuration of audio and visual collection devices)</h:td>
          <h:td>Select "on a per-app basis," "on a per-group of application processes basis," or both</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 31 (configuration of VPN policy)</h:td>
          <h:td>If included in ST, select "on a per-app basis," "on a per-group of application processes basis," or both</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 48 (configuration of USB storage)</h:td>
          <h:td>Include in ST</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_AGENT Function 52 (configuration of location services)</h:td>
          <h:td>If included in ST, select "on a per-app basis," "on a per-group of application processes basis," or both</h:td>
        </h:tr>
        <h:tr>
          <h:td>FMT_SMF.1/SERVER_CONF_SERVER Function 'b.5' (configuration of privacy-sensitive information collected from devices)</h:td>
          <h:td>Include in ST</h:td>
        </h:tr>
      </h:table>
    </section>
    <section title="Personally-owned device for personal and limited enterprise use" id="usecase4">
      At this time no requirements are recommended for this use case. </section>
  </appendix>
  -->
    <bibliography>      
      <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>
