Update documentation with the UEFI changes
Adding UEFI authenticated variables related information
to the documentation.
Signed-off-by: Gabor Toth <gabor.toth2@arm.com>
Change-Id: Ic4fd4b6d73994f8a1ddf0ce4e3a0706589f1fd54
diff --git a/docs/services/image/smm-gateway-layers.svg b/docs/services/image/smm-gateway-layers.svg
index e930e6c..5c3e0d6 100644
--- a/docs/services/image/smm-gateway-layers.svg
+++ b/docs/services/image/smm-gateway-layers.svg
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than diagrams.net -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg" style="background-color: rgb(255, 255, 255);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1243px" height="319px" viewBox="-0.5 -0.5 1243 319" content="<mxfile host="confluence.arm.com" modified="2021-12-15T14:28:45.848Z" agent="5.0 (X11)" etag="RyVEXBLsGt1b45TKPOvv" version="15.3.7" type="atlas"><mxAtlasLibraries/><diagram id="wNY_4wXUTk2zhrBGsPOK" name="Page-1">7VpZd9o4FP41nDPzQA9YtoFHtrRp4wmFpFleOMYWRo1tMbLCkl8/khcwkoCcBIjJNH2odbXY/u69311MCbSDxVdiTycWdqFf0iruogQ6JU3TgFZh/3HJMpFUQaOWSDyC3FS2FgzQC0yF6UbvGbkw2lhIMfYpmm4KHRyG0KEbMpsQPN9cNsb+5l2ntpfesbIWDBzbh9KyO+TSSSKtG7nV3yDyJtmdq5V0JrCzxakgmtgunudEoFsCbYIxTa6CRRv6HL0Ml2TfxZbZ1YMRGNLXbMCX92DgwoVjVMu3326Nxa8AlNNTZrb/nL5w20f8QK3SI9iBUYRCjw264QwRHAbxVPw2dJlBRPBz6EJ+l2oJtOYTROFgajt8ds6sgskmNPDT6THy/Tb2MYn3gq7J/zF5RAl+grkZHWgdo8ZmfHsE/R6OEEU4ZHMOewbIFrVmkFDENHUlLKCY39P2kadc3kwnRphSHPBHwiHN3bgS/60eKdM6YBIZ8gw/djZc5ESpCr5CHEBKlmxJOls2MtNJPaKsp+P52ry0bM0kZ1ogsyw7NWlvdfha6+wiVbzaCObN25vpyyj48eg+jsOLZvQIaFmXjCAKgqFnUzi3+aMPeifSeUtLof9kOq9q+3WuH03nL4/ez6sZMhrgx8U0+P6z3QhnZU3Seb/HTqq0bd9n0Gmmzx6hNeJXHr/6y7KG7WvLuv3nst286f69wyIq+y3iII4ENkGtK/yoqsDUPBakQILUYvxpewmDXtlLJa4XF80CgllVsdKx0OxY5rwf3nlRff777sGbWfWX7lYD7YbuFCMehopvoqtkYLuJVhunBPWcTVQEU2Wip0WzJqEpoQRDt8mzUB6UfJtlU04cZGxCZXEOLwYTWd6n2MaDBz74YmTDziI/2VlmowWi99kZ7Dq3i43Wm/gg27NVNxF+Jg7cH0PY23iQ7ndl6Gap9hZN5xSpCoaZjEDfpmi2maCrlJveoZfQxcqQ9MamIWk1wUCSF0+35TNq6SRdOEkTTkqgkU6KrW314m83wLrszhaP4WsSlAySeRvdtLW9SVOAXJdvbxEYoRd7FB/FLSfm4fhNjVbJ6GR5W8t2nryYHnIZ1jj+U5rbTt8S+WFV6aXPUcoXU0reqHzR9NpBLKdqbmi7XBW0jcfjCL5X0coMXS7TDsY0J2UMUCwm0MSQYjbYq7+NC6TwJLLK4bhAaSJyvsTCNhPkAnzxqWCn8f/vqOB6bBGrg5cAhNMHs69PrfpAQQUDSGaIuR0j/rR3855UTSjWmaY0x1EV6645Mg3zSPWHdsLyQwmz7E68JzKzCYqtjeG7Qn1K8Ay5PHM+P9xF1lLgrp8Ud7lCKXyk2+WmhYl05qaejbemvKLBiAcdLsopYZVblQNW9f9q9i+bravusNe/vrluX1+dQ6zbaf5FinVa7QSxDv/bb5Dho/a9v7hpTX4PW8OnjiLW7WlSspSHrfj4ZoXY8D1l40eJpBzOzqbxI2J50r6PEkzF9xLoPJM4K6CY8C+Kfz6avFftuhCxlN/JgELtB/lmotS7sYWOtrekEz76cBfS6wWjI/N86UjE8uPpSG5DK+joU5QrIvaKauW00GepUEHKlbd+NtiqmnyZsyuvyH8C2OXwBSmHNOE3GO/o++m1vUcdriRS26CcJZ9h52+3exWpHDpJ608Nh5zFfyq2KQg7gKrg0pW3s4OYLMhHHZsd5IbalqT0bEgh84I/pBDDIVejn4oU9nZaX5uC1IpFMkIKAhqCxbyWYgxtz0HHJhi5Ku4NePoxyIqQQVaEnCvhZB722QmHDdc/R0+Wr3/VD7r/AQ==</diagram></mxfile>"><defs/><g><rect x="1" y="17" width="250" height="300" rx="37.5" ry="37.5" fill="#e6e6e6" stroke="#432d57" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 248px; height: 1px; padding-top: 14px; margin-left: 2px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Client Processing Environment</div></div></div></foreignObject><text x="126" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Client Processing Environment</text></switch></g><rect x="431" y="17" width="450" height="300" rx="45" ry="45" fill="#e6e6e6" stroke="#b20000" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 448px; height: 1px; padding-top: 14px; margin-left: 432px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">smm_gateway SP</div></div></div></foreignObject><text x="656" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">smm_gateway SP</text></switch></g><rect x="21" y="137" width="210" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 167px; margin-left: 22px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Caller<br />(MM_COMMUNICATE)</div></div></div></foreignObject><text x="126" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Caller...</text></switch></g><rect x="21" y="197" width="210" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 227px; margin-left: 22px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="126" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="451" y="137" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 167px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Endpoint<br />(MM_COMMUNICATE)</div></div></div></foreignObject><text x="546" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Endpoint...</text></switch></g><rect x="451" y="197" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 227px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="546" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><path d="M 237.37 167 L 444.63 167" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 232.12 167 L 239.12 163.5 L 237.37 167 L 239.12 170.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 449.88 167 L 442.88 170.5 L 444.63 167 L 442.88 163.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 158px; margin-left: 331px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">MM COMMUNICATE</div></div></div></foreignObject><text x="331" y="161" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">MM COMMUNICATE</text></switch></g><path d="M 237.37 227 L 444.63 227" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 232.12 227 L 239.12 223.5 L 237.37 227 L 239.12 230.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 449.88 227 L 442.88 230.5 L 444.63 227 L 442.88 223.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 218px; margin-left: 331px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">FFA Messaging</div></div></div></foreignObject><text x="331" y="221" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FFA Messaging</text></switch></g><rect x="21" y="77" width="210" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 107px; margin-left: 22px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Service Client</div></div></div></foreignObject><text x="126" y="111" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Service Client</text></switch></g><rect x="451" y="77" width="410" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 107px; margin-left: 452px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">smm_variable service provider</div></div></div></foreignObject><text x="656" y="111" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">smm_variable service provider</text></switch></g><path d="M 237.37 107 L 444.63 107" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 232.12 107 L 239.12 103.5 L 237.37 107 L 239.12 110.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 449.88 107 L 442.88 110.5 L 444.63 107 L 442.88 103.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 98px; margin-left: 342px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SMM_VARIABLE_PROTOCOL</div></div></div></foreignObject><text x="342" y="101" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">SMM_VARIABLE_PROTOCOL</text></switch></g><rect x="671" y="137" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 167px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Caller<br />(FFARPC)</div></div></div></foreignObject><text x="766" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Caller...</text></switch></g><rect x="671" y="197" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 227px; margin-left: 672px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="766" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="1011" y="17" width="230" height="300" rx="34.5" ry="34.5" fill="#e6e6e6" stroke="#b20000" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 14px; margin-left: 1012px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">secure storage SP</div></div></div></foreignObject><text x="1126" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">secure storage SP</text></switch></g><rect x="1031" y="137" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 167px; margin-left: 1032px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Endpoint<br />FFARPC</div></div></div></foreignObject><text x="1126" y="171" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Endpoint...</text></switch></g><rect x="1031" y="197" width="190" height="60" fill="#ffffff" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 227px; margin-left: 1032px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="1126" y="231" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="1031" y="77" width="190" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 107px; margin-left: 1032px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">secure storage service provider</div></div></div></foreignObject><text x="1126" y="111" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">secure storage service provider</text></switch></g><path d="M 867.37 227 L 1024.63 227" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 862.12 227 L 869.12 223.5 L 867.37 227 L 869.12 230.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1029.88 227 L 1022.88 230.5 L 1024.63 227 L 1022.88 223.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 218px; margin-left: 942px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">FFA Messaging</div></div></div></foreignObject><text x="942" y="221" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FFA Messaging</text></switch></g><path d="M 867.37 166.5 L 1024.63 166.5" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 862.12 166.5 L 869.12 163 L 867.37 166.5 L 869.12 170 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1029.88 166.5 L 1022.88 170 L 1024.63 166.5 L 1022.88 163 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 157px; margin-left: 942px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">FFARPC</div></div></div></foreignObject><text x="942" y="161" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FFARPC</text></switch></g><path d="M 867.37 107 L 1024.63 107" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 862.12 107 L 869.12 103.5 L 867.37 107 L 869.12 110.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 1029.88 107 L 1022.88 110.5 L 1024.63 107 L 1022.88 103.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 98px; margin-left: 942px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">PSA Secure Storage</div></div></div></foreignObject><text x="942" y="101" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">PSA Secure Storage</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
\ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1332px" height="808px" viewBox="-0.5 -0.5 1332 808" content="<mxfile host="confluence.arm.com" modified="2023-12-13T10:53:55.848Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" etag="bqTj7wOF_9PRiFNm3BqQ" version="21.1.7" type="atlas"><diagram id="f5pL-_Ve34yj-hPsbddT" name="Page-1">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</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="1041" y="417" width="290" height="390" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-dasharray="1 4" pointer-events="all"/><rect x="1" y="257" width="250" height="300" rx="37.5" ry="37.5" fill="#e6e6e6" stroke="#432d57" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 248px; height: 1px; padding-top: 254px; margin-left: 2px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Client Processing Environment</div></div></div></foreignObject><text x="126" y="254" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Client Processing Environment</text></switch></g><rect x="431" y="257" width="450" height="300" rx="45" ry="45" fill="#e6e6e6" stroke="#b20000" stroke-width="3" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 448px; height: 1px; padding-top: 254px; margin-left: 432px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">smm_gateway SP</div></div></div></foreignObject><text x="656" y="254" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">smm_gateway SP</text></switch></g><rect x="21" y="377" width="210" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 407px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Caller<br />(MM_COMMUNICATE)</div></div></div></foreignObject><text x="126" y="411" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Caller...</text></switch></g><rect x="21" y="437" width="210" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 467px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="126" y="471" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="451" y="377" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 407px; margin-left: 452px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Endpoint<br />(MM_COMMUNICATE)</div></div></div></foreignObject><text x="546" y="411" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Endpoint...</text></switch></g><rect x="451" y="437" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 467px; margin-left: 452px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="546" y="471" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><path d="M 241.1 407 L 440.9 407" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 234.35 407 L 243.35 402.5 L 241.1 407 L 243.35 411.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 447.65 407 L 438.65 411.5 L 440.9 407 L 438.65 402.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 398px; margin-left: 331px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">MM COMMUNICATE</div></div></div></foreignObject><text x="331" y="401" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">MM COMMUNICATE</text></switch></g><path d="M 241.1 467 L 440.9 467" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 234.35 467 L 243.35 462.5 L 241.1 467 L 243.35 471.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 447.65 467 L 438.65 471.5 L 440.9 467 L 438.65 462.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 458px; margin-left: 331px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">FFA Messaging</div></div></div></foreignObject><text x="331" y="461" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">FFA Messaging</text></switch></g><rect x="21" y="317" width="210" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 208px; height: 1px; padding-top: 347px; margin-left: 22px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Service Client</div></div></div></foreignObject><text x="126" y="351" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Service Client</text></switch></g><rect x="451" y="317" width="410" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 408px; height: 1px; padding-top: 347px; margin-left: 452px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">smm_variable service provider</div></div></div></foreignObject><text x="656" y="351" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">smm_variable service provider</text></switch></g><path d="M 241.1 347 L 440.9 347" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 234.35 347 L 243.35 342.5 L 241.1 347 L 243.35 351.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><path d="M 447.65 347 L 438.65 351.5 L 440.9 347 L 438.65 342.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 338px; margin-left: 342px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">SMM_VARIABLE_PROTOCOL</div></div></div></foreignObject><text x="342" y="341" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">SMM_VARIABLE_PROTOCOL</text></switch></g><rect x="671" y="377" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 407px; margin-left: 672px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">RPC Caller<br />(FFARPC)</div></div></div></foreignObject><text x="766" y="411" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Caller...</text></switch></g><rect x="671" y="437" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 467px; margin-left: 672px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="766" y="471" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="1071" y="17" width="230" height="300" rx="34.5" ry="34.5" fill="#e6e6e6" stroke="#b20000" stroke-width="3" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 14px; margin-left: 1072px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">secure storage SP</div></div></div></foreignObject><text x="1186" y="14" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">secure storage SP</text></switch></g><rect x="1091" y="137" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 167px; margin-left: 1092px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">RPC Endpoint<br />FFARPC</div></div></div></foreignObject><text x="1186" y="171" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Endpoint...</text></switch></g><rect x="1091" y="197" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 227px; margin-left: 1092px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="1186" y="231" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="1091" y="77" width="190" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 107px; margin-left: 1092px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">secure storage service provider</div></div></div></foreignObject><text x="1186" y="111" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">secure storage service provider</text></switch></g><path d="M 871.1 467 L 901 467 Q 911 467 911 457 L 911 237 Q 911 227 921 227 L 1080.9 227" fill="none" stroke="#82b366" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 864.35 467 L 873.35 462.5 L 871.1 467 L 873.35 471.5 Z" fill="#82b366" stroke="#82b366" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 1087.65 227 L 1078.65 231.5 L 1080.9 227 L 1078.65 222.5 Z" fill="#82b366" stroke="#82b366" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 212px; margin-left: 1022px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">FFA Messaging</div></div></div></foreignObject><text x="1022" y="215" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">FFA Messaging</text></switch></g><path d="M 871.1 347 L 961 347 Q 971 347 971 337 L 971 117 Q 971 107 981 107 L 1080.9 107" fill="none" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 864.35 347 L 873.35 342.5 L 871.1 347 L 873.35 351.5 Z" fill="#b85450" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 1087.65 107 L 1078.65 111.5 L 1080.9 107 L 1078.65 102.5 Z" fill="#b85450" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 92px; margin-left: 1012px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">PSA Secure Storage</div></div></div></foreignObject><text x="1012" y="95" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">PSA Secure Storage</text></switch></g><path d="M 871.1 407 L 931 407 Q 941 407 941 397 L 941 177 Q 941 167 951 167 L 1080.9 167" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 864.35 407 L 873.35 402.5 L 871.1 407 L 873.35 411.5 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 1087.65 167 L 1078.65 171.5 L 1080.9 167 L 1078.65 162.5 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 147px; margin-left: 1022px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">FFARPC</div></div></div></foreignObject><text x="1022" y="150" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">FFARPC</text></switch></g><rect x="1071" y="477" width="230" height="300" rx="34.5" ry="34.5" fill="#e6e6e6" stroke="#b20000" stroke-width="3" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 474px; margin-left: 1072px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">crypto SP</div></div></div></foreignObject><text x="1186" y="474" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">crypto SP</text></switch></g><rect x="1091" y="597" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 627px; margin-left: 1092px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">RPC Endpoint<br />FFARPC</div></div></div></foreignObject><text x="1186" y="631" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">RPC Endpoint...</text></switch></g><rect x="1091" y="657" width="190" height="60" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 687px; margin-left: 1092px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Messaging Layer<br />(FFA)</div></div></div></foreignObject><text x="1186" y="691" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Messaging Layer...</text></switch></g><rect x="1091" y="537" width="190" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 567px; margin-left: 1092px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">crypto service provider</div></div></div></foreignObject><text x="1186" y="571" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">crypto service provider</text></switch></g><path d="M 871.1 347 L 961 347 Q 971 347 971 357 L 971 557 Q 971 567 981 567 L 1080.9 567" fill="none" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 864.35 347 L 873.35 342.5 L 871.1 347 L 873.35 351.5 Z" fill="#b85450" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 1087.65 567 L 1078.65 571.5 L 1080.9 567 L 1078.65 562.5 Z" fill="#b85450" stroke="#b85450" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 548px; margin-left: 1022px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">PSA Crypto</div></div></div></foreignObject><text x="1022" y="551" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">PSA Crypto</text></switch></g><path d="M 871.1 407 L 931 407 Q 941 407 941 417 L 941 617 Q 941 627 951 627 L 1080.9 627" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 864.35 407 L 873.35 402.5 L 871.1 407 L 873.35 411.5 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 1087.65 627 L 1078.65 631.5 L 1080.9 627 L 1078.65 622.5 Z" fill="#6c8ebf" stroke="#6c8ebf" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 608px; margin-left: 1012px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">FFARPC</div></div></div></foreignObject><text x="1012" y="611" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">FFARPC</text></switch></g><path d="M 871.1 467 L 901 467 Q 911 467 911 477 L 911 677 Q 911 687 921 687 L 1080.9 687" fill="none" stroke="#82b366" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 864.35 467 L 873.35 462.5 L 871.1 467 L 873.35 471.5 Z" fill="#82b366" stroke="#82b366" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 1087.65 687 L 1078.65 691.5 L 1080.9 687 L 1078.65 682.5 Z" fill="#82b366" stroke="#82b366" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 668px; margin-left: 1012px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; background-color: rgb(255, 255, 255); white-space: nowrap;">FFA Messaging</div></div></div></foreignObject><text x="1012" y="671" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">FFA Messaging</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 432px; margin-left: 1082px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">If <b>UEFI_AUTH_VAR </b>enabled</div></div></div></foreignObject><text x="1191" y="436" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">If UEFI_AUTH_VAR enabled</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
diff --git a/docs/services/image/uefi-variable-structure.svg b/docs/services/image/uefi-variable-structure.svg
new file mode 100644
index 0000000..8645968
--- /dev/null
+++ b/docs/services/image/uefi-variable-structure.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1951px" height="461px" viewBox="-0.5 -0.5 1951 461" content="<mxfile host="confluence.arm.com" modified="2023-11-27T13:39:12.071Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" etag="ZgD_82_BjbNSsNJPHEsn" version="21.1.7" type="atlas"><diagram id="HaAGp1sIpwXQiMiukq5O" name="Page-1">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</diagram></mxfile>" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="0" y="0" width="770" height="100" rx="15" ry="15" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="none"/><rect x="20" y="30" width="120" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 60px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">GUID<br />16 byte</div></div></div></foreignObject><text x="80" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">GUID...</text></switch></g><rect x="140" y="30" width="120" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 60px; margin-left: 141px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">DataSize<br />8 byte</div></div></div></foreignObject><text x="200" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">DataSize...</text></switch></g><rect x="260" y="30" width="120" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 60px; margin-left: 261px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">NameSize<br />8 byte</div></div></div></foreignObject><text x="320" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">NameSize...</text></switch></g><rect x="380" y="30" width="120" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 60px; margin-left: 381px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Attributes<br />8 byte</div></div></div></foreignObject><text x="440" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Attributes...</text></switch></g><rect x="500" y="30" width="120" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 60px; margin-left: 501px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Name<br /><NameSize> byte</div></div></div></foreignObject><text x="560" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Name...</text></switch></g><rect x="620" y="30" width="120" height="60" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 60px; margin-left: 621px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Data<br /><DataSize> byte</div></div></div></foreignObject><text x="680" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Data...</text></switch></g><rect x="250" y="170" width="860" height="100" rx="15" ry="15" fill="#dae8fc" stroke="#6c8ebf" pointer-events="none"/><rect x="250" y="170" width="860" height="100" rx="15" ry="15" fill="#cce5ff" stroke="#36393d" pointer-events="none"/><rect x="260" y="206.36" width="120" height="54.55" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 234px; margin-left: 261px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">TimeStamp<br />16 byte</div></div></div></foreignObject><text x="320" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">TimeStamp...</text></switch></g><rect x="380" y="206.36" width="120" height="54.55" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 234px; margin-left: 381px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">dwLength<br />8 byte</div></div></div></foreignObject><text x="440" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">dwLength...</text></switch></g><rect x="500" y="206.36" width="120" height="54.55" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 234px; margin-left: 501px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">wRevision<br />8 byte</div></div></div></foreignObject><text x="560" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">wRevision...</text></switch></g><rect x="620" y="206.36" width="120" height="54.55" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 234px; margin-left: 621px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">wCertificateType<br />8 byte</div></div></div></foreignObject><text x="680" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">wCertificateType...</text></switch></g><rect x="740" y="206.36" width="120" height="54.55" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 234px; margin-left: 741px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">CertType<br />16 byte</div></div></div></foreignObject><text x="800" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CertType...</text></switch></g><rect x="860" y="206.36" width="120" height="54.55" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 234px; margin-left: 861px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">CertData</div></div></div></foreignObject><text x="920" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">CertData</text></switch></g><rect x="980" y="206.36" width="120" height="54.55" fill="#f8cecc" stroke="#b85450" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 234px; margin-left: 981px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Payload</div></div></div></foreignObject><text x="1040" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Payload</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 184px; margin-left: 971px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">UEFI Variable</div></div></div></foreignObject><text x="1040" y="187" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UEFI Variable</text></switch></g><rect x="525" y="350" width="1030" height="110" rx="16.5" ry="16.5" fill="#f8cecc" stroke="#b85450" pointer-events="none"/><rect x="545.93" y="390" width="69.07" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 67px; height: 1px; padding-top: 420px; margin-left: 547px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Type<br />16 byte</div></div></div></foreignObject><text x="580" y="424" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Type...</text></switch></g><rect x="615" y="390" width="90" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 88px; height: 1px; padding-top: 420px; margin-left: 616px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. List Size<br />4 byte</div></div></div></foreignObject><text x="660" y="424" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. List Size...</text></switch></g><rect x="705" y="390" width="100" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 420px; margin-left: 706px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Header Size<br />4 byte</div></div></div></foreignObject><text x="755" y="424" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Header Siz...</text></switch></g><rect x="805" y="390" width="60" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 420px; margin-left: 806px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Size<br />4 byte</div></div></div></foreignObject><text x="835" y="424" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Size...</text></switch></g><rect x="865" y="390" width="140" height="60" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 420px; margin-left: 866px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Header<br /><Sign. Header Size> byte</div></div></div></foreignObject><text x="935" y="424" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Header...</text></switch></g><rect x="1005" y="410" width="131.16" height="40" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 129px; height: 1px; padding-top: 430px; margin-left: 1006px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Owner<br />16 byte</div></div></div></foreignObject><text x="1071" y="434" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Owner...</text></switch></g><rect x="1136.16" y="410" width="138.84" height="40" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 137px; height: 1px; padding-top: 430px; margin-left: 1137px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Data<br /><Sign. Size> byte</div></div></div></foreignObject><text x="1206" y="434" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Data...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 151px; height: 1px; padding-top: 365px; margin-left: 1393px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">UEFI Signature List</div></div></div></foreignObject><text x="1468" y="369" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">UEFI Signature List</text></switch></g><rect x="1005" y="390" width="270" height="20" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 268px; height: 1px; padding-top: 400px; margin-left: 1006px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Signature 1</div></div></div></foreignObject><text x="1140" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Signature 1</text></switch></g><rect x="1275" y="410" width="131.16" height="40" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 129px; height: 1px; padding-top: 430px; margin-left: 1276px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Owner<br />16 byte</div></div></div></foreignObject><text x="1341" y="434" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Owner...</text></switch></g><rect x="1406.16" y="410" width="138.84" height="40" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 137px; height: 1px; padding-top: 430px; margin-left: 1407px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Sign. Data<br /><Sign. Size> byte</div></div></div></foreignObject><text x="1476" y="434" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Sign. Data...</text></switch></g><rect x="1275" y="390" width="270" height="20" fill="#fff2cc" stroke="#d6b656" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 268px; height: 1px; padding-top: 400px; margin-left: 1276px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: normal; overflow-wrap: normal;">Signature <Sign. List Size - 1></div></div></div></foreignObject><text x="1410" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Signature <Sign. List Size - 1></text></switch></g><path d="M 696 169.5 L 664 169.5 L 664 112.05 L 653.5 112.05 L 680 90.5 L 706.5 112.05 L 696 112.05 Z" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 130px; margin-left: 680px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">1</div></div></div></foreignObject><text x="680" y="135" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">1</text></switch></g><path d="M 1063 349.5 L 1017 349.5 L 1017 300 L 1017 282.42 L 1006.5 282.42 L 1040 261.41 L 1073.5 282.42 L 1063 282.42 L 1063 300 Z" fill="#f8cecc" stroke="#b85450" stroke-miterlimit="1.42" pointer-events="none"/><path d="M 1017 282.42 L 1006.5 282.42 L 1040 261.41 L 1073.5 282.42 L 1063 282.42" fill="none" stroke="#b85450" stroke-miterlimit="4" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 305px; margin-left: 1040px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 16px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; white-space: nowrap;">0..n</div></div></div></foreignObject><text x="1040" y="310" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="16px" text-anchor="middle">0..n</text></switch></g><path d="M 1180 0 L 1172.5 0 Q 1165 0 1165 10 L 1165 125 Q 1165 135 1157.5 135 L 1153.75 135 Q 1150 135 1157.5 135 L 1161.25 135 Q 1165 135 1165 145 L 1165 260 Q 1165 270 1172.5 270 L 1180 270" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(1165,0)scale(-1,1)translate(-1165,0)" pointer-events="none"/><path d="M 1660 0 L 1650 0 Q 1640 0 1640 10 L 1640 220 Q 1640 230 1630 230 L 1625 230 Q 1620 230 1630 230 L 1635 230 Q 1640 230 1640 240 L 1640 450 Q 1640 460 1650 460 L 1660 460" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" transform="translate(1640,0)scale(-1,1)translate(-1640,0)" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 135px; margin-left: 1280px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: nowrap;">UEFI variable</div></div></div></foreignObject><text x="1280" y="142" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="24px" text-anchor="middle" font-weight="bold">UEFI variable</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 230px; margin-left: 1805px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: nowrap;">UEFI Key Store variable</div></div></div></foreignObject><text x="1805" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="24px" text-anchor="middle" font-weight="bold">UEFI Key Store variable</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
diff --git a/docs/services/uefi-smm-services.rst b/docs/services/uefi-smm-services.rst
index c21ea4c..c2a6079 100644
--- a/docs/services/uefi-smm-services.rst
+++ b/docs/services/uefi-smm-services.rst
@@ -28,8 +28,8 @@
is structured in the same way as other service providers within the TS project. Features of this
component are:
- * Source file location: ``components/service/smm_variable``
- * Public interface definitions: ``protocols/service/smm_variable``
+ * Source file location: ``components/service/uefi/smm_variable``
+ * Public interface definitions: ``protocols/service/uefi/smm_variable``
* Can be used with any RPC layer - not tied to MM Communicate RPC.
* Volatile and non-volatile storage is accessed via instances of the common *storage_backend* interface.
@@ -38,9 +38,11 @@
* An MM Communicate based RPC endpoint.
* A *mock_store* instance for volatile variables.
* A *secure_storage_client* for non-volatile variables.
+ * A *crypto client* for signature verification.
During SP initialization, the *smm-gateway* uses pre-configured information to discover a backend secure
-storage SP for NV storage.
+storage SP for NV storage and a crypto SP to verify signatures needed for UEFI variable authentication.
+Crypto SP is accessible only if UEFI_AUTH_VAR is enabled.
The following diagram illustrates how the *smm_variable* service provider is integrated into the *smm-gateway*.
@@ -115,17 +117,192 @@
- Runtime access controlled by smm_variable service provider.
* - EFI_VARIABLE_HARDWARE_ERROR_RECORD
- no
- -
+ - If the attribute contains this value, VariableName and VendorGuid must comply with the rules
+ stated in Section 8.2.4.2 and Appendix P of the standard.
* - EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS
- no
- -
+ - DEPRECATED
+ * - EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS
+ - no
+ - Authentication with EFI_VARIABLE_AUTHENTICATION_3 descriptor is enabled.
* - EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS
- - not yet
- - Will be needed for secure boot support
+ - yes
+ - Authentication with EFI_VARIABLE_AUTHENTICATION_2 descriptor is enabled.
* - EFI_VARIABLE_APPEND_WRITE
- yes
- Implemented by overwriting entire variable data.
+Limitations
+'''''''''''
+
+.. list-table::
+ :header-rows: 1
+
+ * - Description
+ - Value
+ * - Maximum size of a single variable
+ - 4096 bytes
+ * - Supported type of signature list element
+ - DER-encoded X.509 certificates
+ * - Supported type of public keys
+ - DER-encoded SignedData structure per PKCS#7 version 1.5, with or without a DER-encoded
+ ContentInfo structure per PKCS#7 version 1.5.
+
+Variable authentication
+'''''''''''''''''''''''
+
+UEFI variable authentication is a method to ensure that a UEFI variable can only be modified
+by those who has proper rights. This restricts only the writing of these variables, while reading
+is only limited by the state of the system (boot versus runtime access).
+
+Key Store Variables
+```````````````````
+Key Store variables store authentication keys, and have predefined special names to specify the
+keys scope (area of effect). When a write access to a variable with an active
+EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute is being made, the signature part of
+the write access will be verified against the appropriate key Store variable.
+Access will only be granted if the signature is valid.
+
+The following table lists which Key Store variables defined by the UEFI standard are implemented.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Variable name
+ - Description
+ - Supported
+ * - Platform Key (PK)
+ - Root of trust. If it is not set the authentication is disabled, all write requests are successful.
+ - yes
+ * - Key Exchange Key Database (KEK)
+ - Protects key store databases from unauthorized modifications.
+ - yes
+ * - Signature Database (db)
+ - If a variable write request is signed by the public key whose private pair is
+ stored here the authentication will pass.
+ - yes
+ * - Blacklist Signature Database (dbx)
+ - Contains signatures of software that must not run on the platform.
+ - no
+ * - Authorized Recovery Signature Database (dbr)
+ - Contains signatures of software that can be run for recovery.
+ - no
+ * - Timestamp Signature Database (dbt)
+ - Same as db, but the timestamp of the certificate is also verified.
+ - no
+
+There is no support for initializing the values of the read-only global variables containing
+default values of the key store variables (e.g. PKDefault, KEKDefault, etc.).
+
+The following diagram shows variable authentication hierarchy.
+
+*A → B means A has the right to verify write request to B*
+
+.. uml::
+
+ @startuml
+ [PK] --> [PK]
+ [PK] --> [KEK]
+ [PK] --> [db]
+ [KEK] --> [db]
+ [db] --> [Common Variable]
+ @enduml
+
+Authenticated Variable Lifecycle
+````````````````````````````````
+
+.. uml::
+
+ @startuml
+
+ start
+ if (Is authentication enabled?)
+ if (Enable authentication?) then (yes)
+ :Key Provision
+ {{
+ hide empty description
+
+ state "Set PK" as keyprovision1
+ state "Set KEK (write request must be signed by PK)" as keyprovision2
+ state "Set db (write request must be signed with PK or KEK)" as keyprovision3
+
+ keyprovision1 --> keyprovision2
+ keyprovision2 --> keyprovision3
+ }}
+ ;
+ endif
+ else (yes)
+ switch (Request)
+ case (Clear store\n(disable authentication))
+ :Clear Store
+ {{
+ hide empty description
+
+ state "Delete PK (write request must be signed with PK)" as delete1
+ state "Delete KEK or db (authentication is disabled, so signature is not verified)" as delete2
+
+ delete1 --> delete2
+ }}
+ ;
+ case (Update keys)
+ :Key Update
+ {{
+ hide empty description
+
+ state "Set PK (write request must be signed by original PK)" as keyupdate1
+ state "Set KEK (write request must be signed by new PK)" as keyupdate2
+ state "Set db (write request must be signed with new PK or new KEK)" as keyupdate3
+
+ keyupdate1 --> keyupdate2
+ keyupdate2 --> keyupdate3
+ }}
+ ;
+ case (Reset factory keys)
+
+ skinparam partitionBorderColor red
+ partition "**NOT IMPLEMENTED**" {
+ switch (Recovery method)
+ case ()
+ :Using Setup Mode
+ {{
+ hide empty description
+
+ state "Enter Setup Mode to disable authentication" as recovery1
+ state "Delete PK, KEK, db (signatures are not verified in this mode)" as recovery2
+ state "Leave setup mode, but authentication is still disabled, because PK is empty" as recovery3
+
+ recovery1 -->recovery2
+ recovery2 -->recovery3
+ }}
+ ;
+ case ()
+ :Using default keystores (PKdefault, KEKDefault, dbDefault);
+
+ endswitch
+ }
+
+ case(None)
+ endswitch
+ endif
+
+ end
+
+ @enduml
+
+Variable structure
+``````````````````
+
+.. image:: image/uefi-variable-structure.svg
+
+|
+
+* The elements of the signature verification are stored in or calculated from the fields of the variables:
+ #. Hash: Calculated on Name, GUID, Attributes, Timestamp, Payload fields of the write request
+ #. Public Key: Extracted from the 'Sign. Data' element of the Signature List field in the Payload
+ of the variable responsible for authenticating the request
+ (e.g. in case of KEK request, it will be extracted from PK)
+ #. Signature: Extracted from the 'CertData' field of the write request.
+
SMM Variable Tests
''''''''''''''''''
The following test components exist for the SMM Variable service:
@@ -136,16 +313,16 @@
* - Test Component
- Description
- Included in deployments
- * - ``component/service/smm_variable/backend/test``
+ * - ``component/service/uefi/smm_variable/backend/test``
- | Component tests for the variable_index and variable_store backend
| components. Can be run in a native PC environment.
- ``deployments/component-test/*``
- * - ``component/service/smm_variable/test/service``
+ * - ``component/service/uefi/smm_variable/test/service``
- | End-to-end service level tests that call service operations from
| the perspective of a client. Can be run in a native PC environment
| or on the Arm target platform.
- - | ``deployments/ts-service-test/linux-pc``
- | ``deployments/uefi-test/arm-linux``
+ - | ``deployments/ts-service-test/*``
+ | ``deployments/uefi-test/*``
SMM Gateway Build Configuration
-------------------------------
@@ -164,12 +341,24 @@
- Default value
* - SMM_GATEWAY_MAX_UEFI_VARIABLES
- Maximum number of variables
- - ``deployments/smm-gateway/smm_gateway.c``
+ - ``deployments/smm-gateway/common/smm_gateway.c``
- 40
+ * - UEFI_MAX_VARIABLE_SIZE
+ - Maximum size of the uefi variables in bytes
+ - ``components/service/uefi/smm_variable/backend/uefi_variable_store.c``
+ - 4096
* - SMM_GATEWAY_NV_STORE_SN
- The service ID for the backend NV variable store
- - ``deployments/smm-gateway/smm_gateway.c``
+ - ``deployments/smm-gateway/common/smm_gateway.c``
- Protected Storage SP
+ * - SMM_GATEWAY_CRYPTO_SN
+ - The service ID for the crypto backend
+ - ``deployments/smm-gateway/common/smm_gateway.c``
+ - Crypto SP
+ * - UEFI_AUTH_VAR
+ - Enables or disables UEFI variable authentication
+ - ``components/service/uefi/smm_variable/backend/uefi_variable_store.c``
+ - OFF
MM Communicate RPC Layer
------------------------