pax_global_header00006660000000000000000000000064145565243160014525gustar00rootroot0000000000000052 comment=c47820c37ac26286559ec004de07d48d05f3308c efivar-39/000077500000000000000000000000001455652431600125765ustar00rootroot00000000000000efivar-39/.github/000077500000000000000000000000001455652431600141365ustar00rootroot00000000000000efivar-39/.github/workflows/000077500000000000000000000000001455652431600161735ustar00rootroot00000000000000efivar-39/.github/workflows/ci.yml000066400000000000000000000013371455652431600173150ustar00rootroot00000000000000{ "name": "pull-request", "on": { "push": { "branches": "main" }, "pull_request": { "branches": "main" }, }, "jobs": { "linux": { "runs-on": "ubuntu-latest", "strategy": { "fail-fast": false, "matrix": { "container": [ "f33", "f34", "f35", "f36", "centos8", "centos9", ], }, }, "container": "vathpela/efi-ci:${{ matrix.container }}-x64", "steps": [ { "uses": "actions/checkout@v2" }, { "run": "make all test" }, { "run": "make abicheck" }, ], }, }, } efivar-39/.gitignore000066400000000000000000000003201455652431600145610ustar00rootroot00000000000000.*.c.P .*.h.P .*.d .*.sw? .gdb_history *~ *.a *.bin *.C /.cache/ *.cer *.E *.env *.esl *.o *.map *.pc *.S *.so *.so.* *.spec *.strace *.tar.* *.var compile_commands.json core.* cov-int vgcore.* scan-results/ efivar-39/CODE_OF_CONDUCT.md000066400000000000000000000125661455652431600154070ustar00rootroot00000000000000 # Contributor Covenant Code of Conduct ## Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. ## Our Standards Examples of behavior that contributes to a positive environment for our community include: * Demonstrating empathy and kindness toward other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: * The use of sexualized language or imagery, and sexual attention or advances of any kind * Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or email address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. ## Scope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at rharwood AT redhat DOT com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. ## Enforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. ### 2. Warning **Community Impact**: A violation through a single incident or series of actions. **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. ### 3. Temporary Ban **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior. **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within the community. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations]. [homepage]: https://www.contributor-covenant.org [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html [Mozilla CoC]: https://github.com/mozilla/diversity [FAQ]: https://www.contributor-covenant.org/faq [translations]: https://www.contributor-covenant.org/translations efivar-39/COPYING000066400000000000000000000633161455652431600136420ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see . Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! efivar-39/Makefile000066400000000000000000000051531455652431600142420ustar00rootroot00000000000000export TOPDIR = $(realpath $(dir $(firstword $(MAKEFILE_LIST)))) include $(TOPDIR)/src/include/deprecated.mk include $(TOPDIR)/src/include/version.mk include $(TOPDIR)/src/include/rules.mk include $(TOPDIR)/src/include/defaults.mk include $(TOPDIR)/src/include/coverity.mk include $(TOPDIR)/src/include/scan-build.mk SUBDIRS := src ifeq ($(ENABLE_DOCS), 1) SUBDIRS += docs endif all : | efivar.spec src/include/version.mk prep all clean install prep : @set -e ; for x in $(SUBDIRS) ; do \ $(MAKE) -C $$x $@ ; \ done abicheck abidw efisecdb efisecdb-static efivar efivar-static static : | all $(MAKE) -C src $@ abiupdate : $(MAKE) clean all $(MAKE) -C src abiclean abixml $(SUBDIRS) : $(MAKE) -C $@ all brick : all @echo -n $(info this is the rule for brick PWD:$(PWD) MAKECMDGOALS:$(MAKECMDGOALS)) @set -e ; for x in $(SUBDIRS) ; do \ $(MAKE) -C $${x} test ; \ done a : @if [ $${EUID} != 0 ]; then \ echo no 1>&2 ; \ exit 1 ; \ fi GITTAG = $(shell bash -c "echo $$(($(VERSION) + 1))") efivar.spec : | Makefile src/include/version.mk clean : clean-toplevel clean-toplevel: @rm -vf efivar.spec vgcore.* core.* @$(MAKE) -C tests clean test : all @$(MAKE) -C tests test-archive: abicheck efivar.spec @rm -rf /tmp/efivar-$(GITTAG) /tmp/efivar-$(GITTAG)-tmp @mkdir -p /tmp/efivar-$(GITTAG)-tmp @git archive --format=tar $(shell git branch | awk '/^*/ { print $$2 }') | ( cd /tmp/efivar-$(GITTAG)-tmp/ ; tar x ) @git diff | ( cd /tmp/efivar-$(GITTAG)-tmp/ ; patch -s -p1 -b -z .gitdiff ) @mv /tmp/efivar-$(GITTAG)-tmp/ /tmp/efivar-$(GITTAG)/ @cp efivar.spec /tmp/efivar-$(GITTAG)/ @dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/efivar-$(GITTAG).tar.bz2 efivar-$(GITTAG) @rm -rf /tmp/efivar-$(GITTAG) @echo "The archive is in efivar-$(GITTAG).tar.bz2" bumpver : @echo VERSION=$(GITTAG) > src/include/version.mk @git add src/include/version.mk git commit -m "Bump version to $(GITTAG)" -s tag: git tag -s $(GITTAG) refs/heads/master archive: abicheck bumpver abidw tag efivar.spec @rm -rf /tmp/efivar-$(GITTAG) /tmp/efivar-$(GITTAG)-tmp @mkdir -p /tmp/efivar-$(GITTAG)-tmp @git archive --format=tar $(GITTAG) | ( cd /tmp/efivar-$(GITTAG)-tmp/ ; tar x ) @mv /tmp/efivar-$(GITTAG)-tmp/ /tmp/efivar-$(GITTAG)/ @cp efivar.spec /tmp/efivar-$(GITTAG)/ @dir=$$PWD; cd /tmp; tar -c --bzip2 -f $$dir/efivar-$(GITTAG).tar.bz2 efivar-$(GITTAG) @rm -rf /tmp/efivar-$(GITTAG) @echo "The archive is in efivar-$(GITTAG).tar.bz2" .PHONY: $(SUBDIRS) .PHONY: a abiclean abicheck abidw abiupdate all archive .PHONY: brick bumpver clean clean-toplevel .PHONY: efivar efivar-static .PHONY: install prep tag test test-archive .NOTPARALLEL: efivar-39/README.md000066400000000000000000000021271455652431600140570ustar00rootroot00000000000000efivar ====== Tools and libraries to manipulate EFI variables --------------------------------------------- This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see [http://www.gnu.org/licenses/]. There is an ABI tracker for this project at [ABI Laboratory]. [http://www.gnu.org/licenses/]: http://www.gnu.org/licenses/ [ABI Laboratory]: https://abi-laboratory.pro/tracker/timeline/efivar/ WARNING ======= You should probably not run "make a brick" *ever*, unless you're already reasonably sure it won't permanently corrupt your firmware. This is not a joke. efivar-39/TODO000066400000000000000000000015261455652431600132720ustar00rootroot00000000000000- lots of work still on device path generation and parsing in -lefiboot: - network paths of all kinds - fcoe - no idea - fc - no idea - iscsi - right now we write out HD paths that don't work because edk2 and similar don't put an HD() below iSCSI(), and there's no such thing as an "abbreviated iscsi device path" - but 9.3.5.21.2 actually /shows/ it having an HD() path. - so we need to write out: PciRoot(0x0)/Pci(0x3,0x0)/MAC(c0ffeec0ffee,1)/IPv4(192.168.100.182:0<->10.0.0.29:3260,6,0)/iSCSI(iqn.2012-07.lenovoemc:storage.pjones-iscsi.vol0,1,0x0,None,None,None,TCP) or something like that. - this is ugly :/ - not sure how to tell from the OS side what parts should be DHCP based - pretty ugly when ens3 changes addresses every time - would IPv4(0.0.0.0:0<->10.0.0.29:3260,6,0) be valid? - lots of man pages efivar-39/docs/000077500000000000000000000000001455652431600135265ustar00rootroot00000000000000efivar-39/docs/.gitignore000066400000000000000000000000131455652431600155100ustar00rootroot00000000000000efisecdb.1 efivar-39/docs/Makefile000066400000000000000000000030471455652431600151720ustar00rootroot00000000000000SRCDIR = $(realpath .) include $(TOPDIR)/src/include/deprecated.mk include $(TOPDIR)/src/include/version.mk include $(TOPDIR)/src/include/rules.mk include $(TOPDIR)/src/include/defaults.mk MAN1TARGETS = efisecdb.1 \ efivar.1 MAN3TARGETS = efi_append_variable.3 \ efi_del_variable.3 \ efi_get_next_variable_name.3 \ efi_get_variable.3 \ efi_get_variable_attributes.3 \ efi_get_variable_size.3 \ efi_guid_to_id_guid.3 \ efi_guid_to_name.3 \ efi_guid_to_str.3 \ efi_guid_to_symbol.3 \ efi_name_to_guid.3 \ efi_set_variable.3 \ efi_str_to_guid.3 \ efi_symbol_to_guid.3 \ efi_variables_supported.3 \ efi_variable_t.3 \ efi_variable_import.3 \ efi_variable_export.3 \ efi_variable_alloc.3 \ efi_variable_free.3 \ efi_variable_set_name.3 \ efi_variable_get_name.3 \ efi_variable_set_guid.3 \ efi_variable_get_guid.3 \ efi_variable_set_data.3 \ efi_variable_get_data.3 \ efi_variable_get_attributes.3 \ efi_variable_set_attributes.3 \ efi_variable_realize.3 all : $(MAN1TARGETS) $(MAN3TARGETS) clean : @rm -f efisecdb.1 prep : test : install : $(MAN1TARGETS) $(MAN3TARGETS) $(INSTALL) -d -m 755 $(DESTDIR)$(MANDIR)/man1 $(foreach x, $(MAN1TARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)/$(MANDIR)/man1/;) $(INSTALL) -d -m 755 $(DESTDIR)$(MANDIR)/man3 $(foreach x, $(MAN3TARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)/$(MANDIR)/man3/;) .PHONY: all clean install include $(TOPDIR)/src/include/rules.mk efivar-39/docs/efi_append_variable.3000066400000000000000000000000341455652431600175460ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_del_variable.3000066400000000000000000000000341455652431600170430ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_get_next_variable_name.3000066400000000000000000000000341455652431600211140ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_get_variable.3000066400000000000000000000130101455652431600170540ustar00rootroot00000000000000.TH EFI_GET_VARIABLE 3 "Thu Aug 20 2012" .SH NAME efi_variables_supported, efi_del_variable, efi_get_variable, efi_get_variable_attributes, efi_get_variable_size, efi_set_variable \- manipulate UEFI variables .SH SYNOPSIS .nf .B #include .sp \fBint efi_variables_supported(void);\fR \fBint efi_del_variable(efi_guid_t\fR \fIguid\fR\fB, const char\fR \fI*name\fR\fB);\fR \fBint efi_get_variable(efi_guid_t\fR \fIguid\fR\fB, const char *\fR\fIname\fR\fB, void **\fR\fIdata\fR\fB, ssize_t *\fR\fIdata_size\fR\fB, uint32_t *\fR\fIattributes\fR\fB);\fR \fBint efi_get_variable_attributes(efi_guid_t \fR\fIguid\fR\fB, const char *\fR\fIname\fR\fB, uint32_t *\fR\fIattributes\fR\fB);\fR \fBint efi_get_variable_exists(efi_guid_t\fR \fIguid\fR\fB, const char\fR \fI*name\fR\fB);\fR \fBint efi_get_variable_size(efi_guid_t \fR\fIguid\fR\fB, const char *\fR\fIname\fR\fB, size_t *\fR\fIsize\fR\fB);\fR \fBint efi_append_variable(efi_guid_t \fR\fIguid\fR\fB, const char *\fR\fIname\fR\fB, void *\fR\fIdata\fR\fB, size_t \fR\fIdata_size\fR\fB, uint32_t \fR\fIattributes\fR\fB);\fR \fBint efi_set_variable(efi_guid_t \fR\fIguid\fR\fB, const char *\fR\fIname\fR\fB, void *\fR\fIdata\fR\fB, size_t \fR\fIdata_size\fR\fB, uint32_t \fR\fIattributes\fR\fB, mode_t \fR\fImode\fR\fB);\fR \fBint efi_get_next_variable_name(efi_guid_t **\fR\fIguid\fR\fB, char **\fR\fIname\fR\fB);\fR \fBint efi_str_to_guid(const char *\fR\fIs\fR\fB, efi_guid_t *\fR\fIguid\fR\fB);\fR \fBint efi_guid_to_str(const efi_guid_t *\fR\fIguid\fR\fB, char **\fR\fIsp\fR\fB);\fR \fBint efi_name_to_guid(const char *\fR\fIname\fR\fB, efi_guid_t *\fR\fIguid\fR\fB);\fR \fBint efi_id_guid_to_guid(const char *\fR\fIid_guid\fR\fB, efi_guid_t *\fR\fIguid\fR\fB);\fR \fBint efi_guid_to_name(efi_guid_t *\fR\fIguid\fR\fB, char **\fR\fIname\fR\fB);\fR \fBint efi_guid_to_id_guid(efi_guid_t *\fR\fIguid\fR\fB, char **\fR\fIid_guid\fR\fB);\fR \fBint efi_guid_to_symbol(efi_guid_t *\fR\fIguid\fR\fB, char **\fR\fIsymbol\fR\fB);\fR \fBint efi_symbol_to_guid(const char *\fR\fIsymbol\fR\fB, efi_guid_t *\fR\fIguid\fR\fB);\fR .fi .SH DESCRIPTION .BR efi_variables_supported () tests if the UEFI variable facility is supported on the current machine. .PP .BR efi_del_variable () deletes the variable specified by \fIguid\fR and \fIname\fR. .PP .BR efi_get_variable () gets the variable specified by \fIguid\fR and \fIname\fR. The value is stored in \fIdata\fR, its size in \fIdata_size\fR, and its attributes are stored in \fIattributes\fR. .PP .BR efi_get_variable_attributes () gets attributes for the variable specified by \fIguid\fR and \fIname\fR. .PP .BR efi_get_variable_exists () gets if the variable specified by \fIguid\fR and \fIname\fR exists. .PP .BR efi_get_variable_size () gets the size of the data for the variable specified by \fIguid\fR and \fIname\fR. .PP .BR efi_append_variable () appends \fIdata\fR of size \fIsize\fR to the variable specified by \fIguid\fR and \fIname\fR. .PP .BR efi_set_variable () sets the variable specified by \fIguid\fR and \fIname\fR, and sets the file mode to \fImode\fR, subject to umask. Note that the mode will not persist across a reboot, and that the permissions only apply if on systems using efivarfs. .PP .BR efi_get_next_variable_name () iterates across the currently extant variables, passing back a guid and name. .PP .BR efi_str_to_guid () parses a UEFI GUID from string form to an efi_guid_t the caller provides .PP .BR efi_guid_to_str () Creates a string representation of a UEFI GUID. If sp is NULL, it returns how big the string would be. If sp is not NULL but *sp is NULL, it allocates a string and returns it with. It is the caller's responsibility to free this string. If sp is not NULL and *sp is not NULL, \fBefi_guid_to_str\fR() assumes there is an allocation of suitable size and uses it. .PP .BR efi_name_to_guid () translates from a well known name to an efi_guid_t the caller provides. .PP .BR efi_guid_to_name () translates from an efi_guid_t to a well known name. If the supplied GUID does not have a well known name, this function is equivalent to \fBefi_guid_to_str\fR(). .PP .BR efi_guid_to_id_guid () translates from an efi_guid_t to an {ID GUID}. If the supplied GUID has a well known name, the {ID GUID} will be of the form "{name_here}". If not, it will be of the form "{66b2af1c-6211-4082-95cb-9f73a4795a7e}". .PP .BR efi_id_guid_to_guid () translates from an {ID GUID} to an efi_guid_t the caller provides. .PP .BR efi_guid_to_symbol () translates from an efi_guid_t to a unique (within libefivar) C-style symbol name. These symbol names are useful for printing as a unique, easily parsed identifier, and are also provide by the library and its header files. .PP .BR efi_symbol_to_guid () translates from a libefivar efi_guid_$FOO symbol name to an efi_guid_t the caller provides. .PP .SH "RETURN VALUE" \fBefi_variables_supported\fR() returns true if variables are supported on the running hardware, and false if they are not. .PP \fBefi_get_next_variable_name\fR() returns 0 when iteration has completed, 1 when iteration has not completed, and -1 on error. In the event of an error, .IR errno (3) is set appropriately. .PP \fBefi_del_variable\fR(), \fBefi_get_variable\fR(), \fBefi_get_variable_attributes\fR(), \fBefi_get_variable_exists\fR(), \fBefi_get_variable_size\fR(), \fBefi_append_variable\fR(), \fBefi_set_variable\fR(), \fBefi_str_to_guid\fR(), \fBefi_guid_to_str\fR(), \fBefi_name_to_guid\fR(), and \fBefi_guid_to_name\fR() return negative on error and zero on success. .SH AUTHORS .nf Peter Jones .fi efivar-39/docs/efi_get_variable_attributes.3000066400000000000000000000000341455652431600213240ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_get_variable_size.3000066400000000000000000000000341455652431600201100ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_guid_to_id_guid.3000066400000000000000000000000341455652431600175500ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_guid_to_name.3000066400000000000000000000000341455652431600170640ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_guid_to_str.3000066400000000000000000000000341455652431600167540ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_guid_to_symbol.3000066400000000000000000000000341455652431600174510ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_id_guid_to_guid.3000066400000000000000000000000341455652431600175500ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_name_to_guid.3000066400000000000000000000000341455652431600170640ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_set_variable.3000066400000000000000000000000341455652431600170720ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_str_to_guid.3000066400000000000000000000000341455652431600167540ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_symbol_to_guid.3000066400000000000000000000000341455652431600174510ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efi_variable_alloc.3000066400000000000000000000000321455652431600173670ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_export.3000066400000000000000000000000321455652431600176160ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_free.3000066400000000000000000000000321455652431600172160ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_get_attributes.3000066400000000000000000000000321455652431600213220ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_get_data.3000066400000000000000000000000321455652431600200450ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_get_guid.3000066400000000000000000000000321455652431600200640ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_get_name.3000066400000000000000000000000321455652431600200540ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_import.3000066400000000000000000000000321455652431600176070ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_realize.3000066400000000000000000000000321455652431600177300ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_set_attributes.3000066400000000000000000000000321455652431600213360ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_set_data.3000066400000000000000000000000321455652431600200610ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_set_guid.3000066400000000000000000000000321455652431600201000ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_set_name.3000066400000000000000000000000321455652431600200700ustar00rootroot00000000000000.so man3/efi_variable_t.3 efivar-39/docs/efi_variable_t.3000066400000000000000000000174651455652431600165620ustar00rootroot00000000000000.TH EFI_VARIABLE_T 3 "Thu Nov 11 2014" .SH NAME efi_variable_import, efi_variable_export, efi_variable_alloc, efi_variable_free, efi_variable_set_name, efi_variable_get_name, efi_variable_set_guid, efi_variable_get_guid, efi_variable_set_data, efi_variable_get_data, efi_variable_set_attributes, efi_variable_get_attributes, efi_variable_realize \- utility functions to import and export UEFI variables to files. .SH SYNOPSIS .nf .B #include .sp \fItypedef struct efi_variable \fR\fBefi_variable_t\fR\fI;\fR \fIssize_t \fR\fBefi_variable_import\fR(\fIuint8_t *\fR\fBdata\fR, \fIsize_t\fR \fBsize\fR, \fIefi_variable_t **\fR\fBvar\fR); \fIssize_t \fR\fBefi_variable_export\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIuint8_t **\fR\fBdata\fR, \fIsize_t *\fR\fBsize\fR); \fIefi_variable_t *\fR\fBefi_variable_alloc\fR(\fIvoid\fR); \fIvoid \fR\fBefi_variable_free\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIint \fR\fBfree_data\fR); \fIint \fR\fBefi_variable_set_name\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIchar *\fR\fBname\fR); \fIchar *\fR\fBefi_variable_get_name\fR(\fIefi_variable_t *\fR\fBvar\fR); \fIint \fR\fBefi_variable_set_guid\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIefi_guid_t *\fR\fBguid\fR); \fIint \fR\fBefi_variable_get_guid\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIefi_guid_t **\fR\fBguid\fR); \fIint \fR\fBefi_variable_set_data\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIuint8_t *\fR\fBdata\fR, \fIsize_t \fR\fBsize\fR); \fIint \fR\fBefi_variable_get_data\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIuint8_t **\fR\fBdata\fR, \fIsize_t *\fR\fBsize\fR); \fI#define\fR \fBEFI_VARIABLE_NON_VOLATILE\fR \fI0x0000000000000001\fR \fI#define\fR \fBEFI_VARIABLE_BOOTSERVICE_ACCESS\fR \fI0x0000000000000002\fR \fI#define\fR \fBEFI_VARIABLE_RUNTIME_ACCESS\fR \fI0x0000000000000004\fR \fI#define\fR \fBEFI_VARIABLE_HARDWARE_ERROR_RECORD\fR \fI0x0000000000000008\fR \fI#define\fR \fBEFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS\fR \fI0x0000000000000010\fR \fI#define\fR \fBEFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS\fR \fI0x0000000000000020\fR \fI#define\fR \fBEFI_VARIABLE_APPEND_WRITE\fR \fI0x0000000000000040\fR \fI#define\fR \fBEFI_VARIABLE_HAS_AUTH_HEADER\fR \fI0x0000000100000000\fR \fI#define\fR \fBEFI_VARIABLE_HAS_SIGNATURE\fR \fI0x0000000200000000\fR \fIint \fR\fBefi_variable_set_attributes\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIuint64_t \fR\fBattrs\fR); \fIint \fR\fBefi_variable_get_attributes\fR(\fIefi_variable_t *\fR\fBvar\fR, \fIuint64_t *\fR\fBattrs\fR); \fIint \fR\fBefi_variable_realize\fR(\fIefi_variable_t *\fR\fBvar\fR); .fi .SH DESCRIPTION \fBefi_variable_t\fR is an opaque data type used to store variables in-memory for use with this API. .PP \fBefi_variable_import\fR() is used to import raw data read from a file. This function returns the amount of data consumed with this variable, and may be used successively, using its return code as an offset, to parse a list of variables. Note that the internal guid, name, and data values are allocated separately, and must be freed either individually or using the \fBfree_data\fR parameter of \fBefi_variable_free\fR(). \fB_get\fR() accessors for those values return data suitable for freeing individually, except in such cases where a \fB_set\fR() accessor has been passed an object already unsuitable for that. .PP \fBefi_variable_export\fR() is used to marshall \fBefi_variable_t\fR objects into linear data which can be written to a file. If \fBdata\fR or \fBsize\fR parameters are not provided, this function will return how much storage a caller must allocate. Otherwise, \fBefi_variable_export\fR() will use the storage referred to as its buffer; if \fBsize\fR is smaller than the amount of needed storage , the buffer will not be modified, and the difference between the needed space and \fBsize\fR will be returned. .PP \fBefi_variable_alloc\fR() is used to allocate an unpopulated \fBefi_variable_t\fR object suitable to be used throughout this API. \fBefi_variable_free\fR() is used to free an \fBefi_variable_t\fR object, and if \fBfree_data\fR is nonzero, to free its constituent data. .PP Each pair of \fB_set\fR() and \fB_get\fR() accessors have essentially the same semantics. Neither operation performs any memory management, including freeing of previously set values or values set by \fBefi_variable_import\fR(), and so in some cases it may be necessary to use a \fB_get\fR() accessor to retrieve an object to be freed. In cases where no value has been set, \fB_get\fR() accessors will set \fBerrno\fR to \fBENOENT\fR and return a negative value or NULL. .PP \fBefi_variable_set_name\fR() and \fBefi_variable_get_name\fR() are used to set and retrieve the name of the variable referred to by the \fBefi_variable_t\fR object. .PP \fBefi_variable_set_guid\fR() and \fBefi_variable_get_guid\fR() are used to set and retrieve the Vendor GUID value of the variable referred to by the \fBefi_variable_t\fR object. .PP \fBefi_variable_set_data\fR() and \fBefi_variable_get_data\fR() are used to set and retrieve an \fBefi_variable_t\fR object's variable data. .PP \fBefi_variable_set_attributes\fR() and \fBefi_variable_get_attributes\fR are used to set and retrieve an \fBefi_variable_t\fR object's attributes. All bits except \fBEFI_VARIABLE_HAS_AUTH_HEADER\fR and \fBEFI_VARIABLE_HAS_SIGNATURE\fR are defined in the UEFI specification and should be used accordingly. \fBEFI_VARIABLE_HAS_AUTH_HEADER\fR should be used by applications to track whether the variable data contents include an authentication header. \fBEFI_VARIABLE_HAS_SIGNATURE\fR should be used by applications to track if the variable's data contents include a signature, and should not be set unless \fBEFI_VARIABLE_HAS_AUTH_HEADER\fR is also set. These attributes are used to track if an exported variable is in a state of partial construction, for example if an authenticated variable has been created but is intended to be signed at a later date. .PP \fBefi_variable_realize\fR() is a convenience function to set or append a UEFI variable on the running system from an \fBefi_variable_t\fR object. its return codes are the same as \fBefi_append_variable\fR(3) if EFI_VARIABLE_APPEND_WRITE is set, and \fBefi_set_variable\fR() if that bit is not set. Additionally, in the case that any of the authentication bits are set, \fBefi_variable_realize\fR() will return error and set \fBerrno\fR to \fBEPERM\fR unless both \fBEFI_VARIABLE_HAS_AUTH_HEADER\fR and \fBEFI_VARIABLE_HAS_SIGNATURE\fR attribute bits are been set. .PP .SH "RETURN VALUE" \fBefi_variable_import\fR() returns 0 on success, and -1 on failure. In cases where it cannot parse the data, \fBerrno\fR will be set to \fBEINVAL\fR. In cases where memory has been exhausted, \fBerrno\fR will be set to \fBENOMEM\fR. .PP \fBefi_variable_export\fR() returns the size of the buffer data on success, or a negative value in the case of an error. If \fBdata\fR or \fBsize\fR parameters are not provided, this function will return how much storage a caller must allocate. Otherwise, this function will use the storage provided in \fBdata\fR; if \fBsize\fR is less than the needed space, the buffer will not be modified, and the return value will be the difficiency in size. .PP \fBefi_variable_alloc\fR() returns a newly allocated \fBefi_variable_t\fR object, but does not peform any allocation for that object's \fBname\fR, \fBguid\fR, or \fBdata\fR. In the case that memory is exhausted, \fBNULL\fR will be returned, and \fBerrno\fR will be set to \fBENOMEM\fR. .PP \fBefi_variable_get_name\fR() returns a pointer the NUL-terminated string containing the \fBefi_variable_t\fR object's name information. .PP \fBefi_variable_set_name\fR(), \fBefi_variable_set_guid\fR(), \fBefi_variable_get_guid\fR(), \fBefi_variable_set_data\fR(), \fBefi_variable_get_data\fR(), \fBefi_variable_set_attributes\fR(), \fBefi_variable_get_attributes\fR(), and \fBefi_variable_realize\fR() return 0 on success and -1 on error. .SH AUTHORS .nf Peter Jones .fi efivar-39/docs/efi_variables_supported.3000066400000000000000000000000341455652431600205070ustar00rootroot00000000000000.so man3/efi_get_variable.3 efivar-39/docs/efidp_make_generic.3000066400000000000000000000131031455652431600173700ustar00rootroot00000000000000.TH EFIDP_MAKE_GENERIC 3 "Mon 11 May 2015" .SH NAME efidp_make_generic, efidp_make_end_instance, efidp_make_end_entire, efidp_make_vendor, efidp_make_file, efidp_make_hd, efidp_make_nvme, efidp_make_sas, efidp_make_ipv4, efidp_make_mac_addr, efidp_make_sata, efidp_make_scsi, efidp_make_acpi_hid, efidp_make_acpi_hid_ex, efidp_make_edd10, efidp_make_pci, efidp_make_hw_vendor, efidp_make_msg_vendor, efidp_make_media_vendor \- Create EFI Device Path node data structures for specific device types efidp_set_node_data, efidp_duplicate_path, efidp_append_path, efidp_append_node, efidp_append_instance \- Manipulate EFI Device Path and node relationships. efidp_is_valid, efidp_instance_size, efidp_size, efidp_get_next_end, efidp_is_multiinstance, efidp_next_instance, efidp_next_node, efidp_node_size, efidp_type, efidp_subtype \- Inspect EFI Device Path data structures efidp_parse_device_node, efidp_parse_device_path \- Create EFI Device Path structures from printable strings. efidp_format_device_path \- Format EFI Device Path structures as printable strings. .SH SYNOPSIS .nf .B #include .sp \fBssize_t \fRefidp_make_generic\fB(\kZuint8_t *\fIbuf\fP, ssize_t \fIsize\fB, .ta \nZu uint8_t \fItype\fB, uint8_t \fIsubtype\fB, ssize_t \fItotal_size\fB);\fR \fBssize_t \fRefidp_make_end_instance\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB);\fR \fBssize_t \fRefidp_make_end_entire\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fR\fB);\fR \fBssize_t \fRefidp_make_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint8_t \fItype\fB, .ta \nZu uint8_t \fIsubtype\fB, efi_guid_t \fIvendor_guid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBssize_t \fRefidp_make_file\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB, char *\fIfilename\fB);\fR .ta \fBssize_t \fRefidp_make_hd\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fInum\fB, .ta \nZu uint64_t \fIpart_start\fB, uint64_t \fIpart_size\fB, uint8_t *\fIsignature\fB, uint8_t \fIformat\fB, uint8_t \fIsignature_type\fB);\fR \fBssize_t \fRefidp_make_nvme\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint32_t \fInamespace_id\fB, uint8_t *\fIieee_eui_64\fB);\fR \fBssize_t \fRefidp_make_sas\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint64_t \fIsas_address\fB);\fR \fBssize_t \fRefidp_make_ipv4\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint32_t \fIlocal\fB, uint32_t \fIremote\fB, uint32_t \fIgateway\fB, uint32_t \fInetmask\fB, uint16_t \fIlocal_port\fB, uint16_t \fIremote_port\fB, uint16_t \fIprotocol\fB, int \fIis_static\fB);\fR \fBssize_t \fRefidp_make_mac_addr\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint8_t \fIif_type\fB, const uint8_t const *\fImac_addr\fB, ssize_t \fImac_addr_size\fB);\fR \fBssize_t \fRefidp_make_sata\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint16_t \fIhba_port\fB, .ta \nZu uint16_t \fIport_multiplier_port\fB, uint16_t \fIlun\fB);\fR \fBssize_t \fRefidp_make_scsi\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint16_t \fItarget\fB, .ta \nZu uint16_t \fIlun\fB);\fR \fBssize_t \fRefidp_make_acpi_hid\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fIhid\fB, .ta \nZu uint32_t \fIuid\fB);\fR \fBssize_t \fRefidp_make_acpi_hid_ex\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fIhid\fB, .ta \nZu uint32_t \fIuid\fB, uint32_t \fIcid\fB, char *\fIhidstr\fB, char *\fIuidstr\fB, char *\fIcidstr\fB);\fR \fBssize_t \fRefidp_make_edd10\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint32_t \fIhardware_device\fB);\fR \fBssize_t \fRefidp_make_pci\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint8_t \fIdevice\fB, .ta \nZu uint8_t \fIfunction\fR); \fBssize_t \fRefidp_make_hw_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu efi_guid_t \fIguid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBssize_t \fRefidp_make_msg_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu efi_guid_t \fIguid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBssize_t \fRefidp_make_media_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu efi_guid_t \fIguid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBint \fRefidp_set_node_data\fB(\kZconst_efidp \fIdn\fB, void *\fIbuf\fB, size_t \fIbufsize\fB); \fBint \fRefidp_duplicate_path\fB(\kZconst_efidp \fIdp\fB, efidp *\fIout\fB);\fR \fBint \fRefidp_append_path\fB(\kZconst_efidp \fIdp0\fB, const_efidp \fIdp1\fB, efidp *\fIout\fB); \fBint \fRefidp_append_node\fB(\kZconst_efidp \fIdp\fB, const_efidp \fIdn\fB, efidp *\fIout\fB);\fR \fBint \fRefidp_append_instance\fB(\kZconst_efidp \fIdp\fB, const_efidp \fIdpi\fB, efidp *\fIout\fB); \fBint16_t \fRefidp_type\fB(const_efidp \fIdp\fB);\fR \fBint16_t \fRefidp_subtype\fB(const_efidp \fIdp\fB);\fR \fBssize_t \fRefidp_node_size\fB(const_efidp \fIdn\fB);\fR \fBint \fRefidp_next_node\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR \fBint \fRefidp_next_instance\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR \fBint \fRefidp_is_multiinstance\fB(const_efidp \fIdn\fB);\fR \fBint \fRefidp_get_next_end\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR \fBssize_t \fRefidp_size\fB(const_efidp \fIdp\fB);\fR \fBssize_t \fRefidp_instance_size\fB(const_efidp \fIdpi\fB);\fR \fBint \fRefidp_is_valid\fB(const_efidp \fIdp\fB, ssize_t \fIlimit\fB);\fR \fBssize_t \fRefidp_parse_device_node\fB(char *\fIpath\fB, efidp \fIout\fB, size_t \fIsize\fB);\fR \fBssize_t \fRefidp_parse_device_path\fB(char *\fIpath\fB, efidp \fIout\fB, size_t \fIsize\fB);\fR \fBssize_t \fRefidp_format_device_path\fB(\kZchar *\fIbuf\fB, size_t \fIsize\fB, .ta \nZu const_efidp \fIdp\fB, ssize_t \fIlimit\fB);\fR .fi .SH AUTHORS .nf Peter Jones .fi efivar-39/docs/efisecdb.1.mdoc000066400000000000000000000154151455652431600163030ustar00rootroot00000000000000.Dd $Mdocdate: Jan 7 2021$ .Dt EFISECDB 1 .Sh NAME .Nm efisecdb .Nd utility for managing UEFI signature lists .Sh SYNOPSIS .Nm .Bk -words .Oo Fl s Ar SORT Oc .Oo Fl i Ar file Oo Fl i Ar file .Oc ... Oc \ \p .Oo .Cm Fl g Ar guid .Ao Cm Fl a | Fl r Ac .Ao .Cm Oo Fl t Ar hash-type Oc Cm Fl h Ar hash | .Cm Fl c Ar file .Ac \ \p .Oo .Cm Fl g Ar guid .Ao Cm Fl a | Fl r Ac .Ao .Cm Oo Fl t Ar hash-type Oc Cm Fl h Ar hash | .Cm Fl c Ar file .Ac .Oc ... Oc .Ao .Cm Fl d Op Fl A | .Cm Fl o Ar file | .Cm Fl L .Ac .Ek .Sh DESCRIPTION .Nm is a command line utility for management of UEFI signature lists in detached files. That is, it's for command line generation and management of files in the format of KEK, DB, and DBX. Operation occurs in three phases: .Bl -enum -compact .It Loading of security databases specified with .Fl Fl input .It Left-to-right processing of other options, using .Fl Fl hash-type, Fl Fl owner-guid, Fl Fl add, and .Fl Fl remove as state to build selectors to add or remove hashes and certificates specified by .Fl Fl hash and .Fl Fl certificate\fR. .It Generation of output .El The accumulated state is persistent; once an Owner GUID, Add or Delete operation, or hash type are specified, they need only be present again to change the operations that follow. Operations are added to the list to process when .Fl h Ar hash or .Fl c Ar cert are specified, and are processed in the order they appear. Additionally, at least one .Fl g argument and either .Fl Fl add or .Fl Fl remove must appear before the first use of .Fl h Ar hash or .Fl c Ar cert\fR. .Sh OPTIONS .Bl -tag .It Ao Fl s | Fl Fl sort Ac Ao Ar all | Ar data | Ar none | Ar type Ac Sort by data after sorting and grouping entry types, entry data, no sorting, or by entry type .It Ao Fl s | Fl Fl sort Ac Ao Ar ascending | Ar descending Ac Sort in ascending or descending order .It Fl i Ar file | Fl Fl infile Ar file Read EFI Security Database from .Ar file .It Fl g Ar guid | Fl Fl owner-guid Ar guid Use the specified GUID or symbolic refrence (i.e. {empty}) for forthcoming addition and removal operations .It Fl a | Fl Fl add | Fl r | Fl Fl remove Select .Ar add or .Ar remove for forthcoming operations .It Fl t Ar hash-type | Fl Fl hash-type Ar hash-type Select .Ar hash-type for forthcoming addition and removal operations .Po default \fIsha256\fR .Pc Use hash-type \fIhelp\fR to list supported hash types. .It Fl h Ar hash | Fl Fl hash Ar hash Add or remove the specified hash .It Fl c Ar file | Fl Fl certificate Ar file Add or remove the specified certificate .It Fl d | Fl Fl dump Produce a hex dump of the output .It Fl A | Fl Fl annotate Annotate the hex dump produced by .Fl Fl dump .It Fl o Ar file | Fl Fl outfile Ar file Write EFI Security Database to .Ar file .It Fl L | Fl Fl list-guids List the well known guids The output is tab delimited: GUID short_name desription .Sh EXAMPLES .Ss Dumping the current system's \fIDBX\fP database with annotations .Bd -literal -compact host:~$ \fBefisecdb -d -A -i /sys/firmware/efi/efivars/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f\fR 00000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 60 00 00 00 |....| esl[0].signature_list_size = 96 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c fe cf b2 32 |...2| esl[0].signature[0].data (end:0x0000004c) 00000030 d1 2e 99 4b 6d 48 5d 2c 71 67 72 8a a5 52 59 84 |...KmH],qgr..RY.| 00000040 ad 5c a6 1e 75 16 22 1f 07 9a 14 36 |.\..u."....6| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c fe 63 a8 4f |.c.O| esl[0].signature[1].data (end:0x0000007c) 00000060 78 2c c9 d3 fc f2 cc f9 fc 11 fb d0 37 60 87 87 |x,..........7`..| 00000070 58 d2 62 85 ed 12 66 9b dc 6e 6d 01 |X.b...f..nm.| 0000007c .Ed .Ss Building a new EFI Security Database for use as \fIKEK\fP, replacing one certificate. .Bd -literal -compact # Figure out the original cert... the easy way host:~$ \fBstrings KEK-* | grep microsoft.*crt\fR\p Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0 # Find it, because --export isn't implemented yet host:~$ \fBwget \e\p --user-agent='Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko' \e\p http://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt\fR\p --2020-06-04 20:41:27-- http://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt Resolving www.microsoft.com (www.microsoft.com)... 2600:141b:800:287::356e, 2600:141b:800:2a0::356e, 23.43.254.254 Connecting to www.microsoft.com (www.microsoft.com)|2600:141b:800:287::356e|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1539 (1.5K) [application/octet-stream] Saving to: ‘MicCorThiParMarRoo_2010-10-05.crt’ MicCorThiParMarRoo_ 100%[===================>] 1.50K --.-KB/s in 0s 2020-06-04 20:41:27 (177 MB/s) - ‘MicCorThiParMarRoo_2010-10-05.crt’ saved [1539/1539] # Pick a GUID-like object, any GUID-like object... host:~$ \fBuuidgen\fR aab3960c-501e-485e-ac59-62805970a3dd # Remove the old KEK entry and add a different one host:~$ \fBefisecdb -i KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c \e\p -g {microsoft} -r -c MicCorThiParMarRoo_2010-10-05.crt \e\p -g aab3960c-501e-485e-ac59-62805970a3dd -a -c pjkek.cer \e\p -o newkek.bin\fR\p .Ed .Ss Searching the list of well-known GUIDs .Bd -literal -compact host:~$ \fBefisecdb -L | grep shim\fR\p {605dab50-e046-4300-abb6-3dd810dd8b23} {shim} shim .Ed .Sh STANDARDS .Rs .%A UEFI Specification Working Group .%B Unified Extensible Firmware Interface (UEFI) Specification Version 2.8 .%I Unified Extensible Firmware Interface Forum .%D March 2019 .%U https://uefi.org/specifications\ \& .Re .Sh SEE ALSO .Xr authvar 1 , .Xr efikeygen 1 , .Xr pesign 1 .Sh AUTHORS .An Peter Jones .Sh BUGS .Nm is currently lacking several useful features: .Bl -bullet -compact .It positional exporting of certificates .It .Fl Fl dump and .Fl Fl annotate do not adjust the output width for the terminal .It certificates can't be specified for removal by their \fIToBeSigned\fR hash .El efivar-39/docs/efivar.1000066400000000000000000000023211455652431600150620ustar00rootroot00000000000000.TH EFIVAR "1" "September 2019" "efivar 37" "User Commands" .SH NAME efivar \- Tool to manipulate UEFI variables .SH SYNOPSIS .B efivar [\fI\,OPTION\/\fR...] .SH DESCRIPTION .TP \fB\-A\fR, \fB\-\-attributes=\fR attributes to use on append .TP \fB\-l\fR, \fB\-\-list\fR list current variables .TP \fB\-p\fR, \fB\-\-print\fR print variable specified by \fB\-\-name\fR .TP \fB\-D\fR, \fB\-\-dmpstore\fR use DMPSTORE format when exporting .TP \fB\-d\fR, \fB\-\-print\-decimal\fR print variable in decimal format values specified by \fB\-\-name\fR .TP \fB\-n\fR, \fB\-\-name=\fR variable to manipulate, in the form 8be4df61\-93ca\-11d2\-aa0d\-00e098032b8c\-Boot0000 .TP \fB\-a\fR, \fB\-\-append\fR append to variable specified by \fB\-\-name\fR .TP \fB\-f\fR, \fB\-\-datafile=\fR load or save variable contents from .TP \fB\-e\fR, \fB\-\-export=\fR export variable to .TP \fB\-i\fR, \fB\-\-import=\fR import variable from .TP \fB\-L\fR, \fB\-\-list\-guids\fR show internal guid list .TP \fB\-w\fR, \fB\-\-write\fR write to variable specified by \fB\-\-name\fR .SS "Help options:" .TP \-?, \fB\-\-help\fR Show this help message .TP \fB\-\-usage\fR Display brief usage message efivar-39/efivar.spec.in000066400000000000000000000163501455652431600153400ustar00rootroot00000000000000Name: efivar Version: @@VERSION@@ Release: 1%{?dist} Summary: Tools to manage UEFI variables License: LGPL-2.1-only URL: https://github.com/rhboot/efivar Requires: %{name}-libs = %{version}-%{release} ExclusiveArch: %{efi} BuildRequires: efi-srpm-macros BuildRequires: gcc BuildRequires: git BuildRequires: glibc-static BuildRequires: libabigail BuildRequires: mandoc BuildRequires: make # please don't fix this to reflect github's incomprehensible url that goes # to a different tarball. Source0: https://github.com/rhboot/efivar/releases/download/%{version}/efivar-%{version}.tar.bz2 %description efivar provides a simple command line interface to the UEFI variable facility. %package libs Summary: Library to manage UEFI variables %description libs Library to allow for the simple manipulation of UEFI variables. %package devel Summary: Development headers for libefivar Requires: %{name}-libs = %{version}-%{release} %description devel development headers required to use libefivar. %prep %setup -q -n %{name}-%{version} git init git config user.email "%{name}-owner@fedoraproject.org" git config user.name "Fedora Ninjas" git add . git commit -a -q -m "%{version} baseline." git am %{patches} - 32-1 - efivar 32 - lots of coverity fixes; mostly leaked memory and fds and the like - fix sysfs pci path formats - handle device paths for dns, nfit, bluetooth, wifi, emmc, btle. - improved abi checking on releases - Fix failures on EDIT_WRITE in edit_variable() when the variable doesn't exist - Add efi_guid_ux_capsule_guid to our guids - Now with %%check * Wed Aug 02 2017 Fedora Release Engineering - 31-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 31-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Mon Mar 06 2017 Peter Jones - 31-1 - Update to efivar 31 - Work around NVMe EUI sysfs change - Provide some oldish version strings we should have kept. - lots of overflow checking on our pointer math in dp parsing - fix major/minor device number handling in the linux code - Do better formatting checks for MBR partitions - Fixes for gcc 7 * Fri Feb 10 2017 Fedora Release Engineering - 30-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Mon Oct 17 2016 Peter Jones - 30-4 - Handle NVMe device attributes paths moving around in sysfs. * Wed Sep 28 2016 Peter Jones - 30-3 - Maybe even provide the *right* old linker deps. * Tue Sep 27 2016 Peter Jones - 30-2 - Try not to screw up SONAME stuff quite so badly. * Tue Sep 27 2016 Peter Jones - 30-1 - Fix efidp_*() functions with __pure__ that break with some optimizations - Fix NVMe EUI parsing. * Tue Sep 27 2016 Peter Jones - 29-1 - Use -pie not -PIE in our linker config - Fix some overflow checks for gcc < 5.x - Make variable class probes other than the first one actually work - Move -flto to CFLAGS - Pack all of the efi device path headers - Fix redundant decl of efi_guid_zero() * Wed Aug 17 2016 Peter Jones - 28-1 - Make our sonames always lib$FOO.1 , not lib$FOO.$VERSION . * Tue Aug 16 2016 Peter Jones - 27-1 - Bug fix for 086eeb17 in efivar 26. * Thu Aug 11 2016 Peter Jones - 26-1 - Use symmacros.h to make newer compilers happy - Fix a bug in efidp_size() double-counting End nodes sometimes. - Handle nonnull comparisons in the headers more gracefully. * Wed Aug 10 2016 Peter Jones - 25-1 - Rework version numbers. - Add error tracking API. - Remove use of deprecated readdir_r - SATA device path fixes. * Mon Jul 13 2015 Peter Jones - 0.21-1 - Rename "make test" so packagers don't think it's a good idea to run it during builds. - Error check sizes in vars_get_variable() - Fix some file size comparisons - make SONAME reflect the correct values. - Fix some uses of "const" - Compile with -O2 by default - Fix some strict-aliasing violations - Fix some of the .pc files and how we do linking to work better. * Tue Jun 02 2015 Peter Jones - 0.20-1 - Update to 0.20 - Make sure tester is build with the right link order for libraries. - Adjust linker order for pkg-config - Work around LocateDevicePath() not grokking PcieRoot() devices properly. - Rectify some missing changelog entries * Thu May 28 2015 Peter Jones - 0.19-1 - Update to 0.19 - add API from efibootmgr so fwupdate and other tools can use it. * Wed Oct 15 2014 Peter Jones - 0.15-1 - Update to 0.15 - Make 32-bit builds set variables' DataSize correctly. * Wed Oct 08 2014 Peter Jones - 0.14-1 - Update to 0.14 - add efi_id_guid_to_guid() and efi_guid_to_id_guid(), which support {ID GUID} as a concept. - Add some vendor specific guids to our guid list. - Call "empty" "zero" now, as many other places do. References to efi_guid_is_empty() and efi_guid_empty still exist for ABI compatibility. - add "efivar -L" to the man page. * Tue Oct 07 2014 Peter Jones - 0.13-1 - Update to 0.13: - add efi_symbol_to_guid() - efi_name_to_guid() will now fall back on efi_symbol_to_guid() as a last resort - "efivar -L" to list all the guids we know about - better namespacing on libefivar.so (rename well_known_* -> efi_well_known_*) * Thu Sep 25 2014 Peter Jones - 0.12-1 - Update to 0.12 * Wed Aug 20 2014 Peter Jones - 0.11-1 - Update to 0.11 * Fri May 02 2014 Peter Jones - 0.10-1 - Update package to 0.10. - Fixes a build error due to different cflags in the builders vs updstream makefile. * Fri May 02 2014 Peter Jones - 0.9-0.1 - Update package to 0.9. * Tue Apr 01 2014 Peter Jones - 0.8-0.1 - Update package to 0.8 as well. * Fri Oct 25 2013 Peter Jones - 0.7-1 - Update package to 0.7 - adds --append support to the binary. * Fri Sep 06 2013 Peter Jones - 0.6-1 - Update package to 0.6 - fixes to documentation from lersek - more validation of uefi guids - use .xz for archives * Thu Sep 05 2013 Peter Jones - 0.5-0.1 - Update to 0.5 * Mon Jun 17 2013 Peter Jones - 0.4-0.2 - Fix ldconfig invocation * Mon Jun 17 2013 Peter Jones - 0.4-0.1 - Initial spec file efivar-39/src/000077500000000000000000000000001455652431600133655ustar00rootroot00000000000000efivar-39/src/.gitignore000066400000000000000000000002151455652431600153530ustar00rootroot00000000000000!guids.S *.bin /efivar efivar-guids.h efivar-static efisecdb efisecdb-static makeguids guid-symbols.c guids.lds thread-test util-makeguids.c efivar-39/src/Android.mk000066400000000000000000000035321455652431600153010ustar00rootroot00000000000000# # Copyright (C) 2019 The Android-x86 Open Source Project # # Licensed under the GNU Lesser General Public License Version 2.1. # You may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.gnu.org/licenses/lgpl-2.1.html # LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := makeguids LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_CFLAGS := -DEFIVAR_BUILD_ENVIRONMENT LOCAL_SRC_FILES := guid.c makeguids.c LOCAL_LDLIBS := -ldl include $(BUILD_HOST_EXECUTABLE) include $(CLEAR_VARS) LOCAL_MODULE := libefivar LOCAL_MODULE_CLASS := STATIC_LIBRARIES LIBEFIBOOT_SOURCES := \ crc32.c \ creator.c \ disk.c \ gpt.c \ loadopt.c \ path-helpers.c \ $(notdir $(wildcard $(LOCAL_PATH)/linux*.c)) LIBEFIVAR_SOURCES := \ dp.c \ dp-acpi.c \ dp-hw.c \ dp-media.c \ dp-message.c \ efivarfs.c \ error.c \ export.c \ guid.c \ guids.S \ lib.c \ vars.c LIBEFISEC_SOURCES := \ sec.c include $(LOCAL_PATH)/include/version.mk LOCAL_SRC_FILES := $(LIBEFIBOOT_SOURCES) $(LIBEFIVAR_SOURCES) $(LIBEFISEC_SOURCES) LOCAL_CFLAGS := -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -std=gnu11 -DLIBEFIVAR_VERSION=$(VERSION) -Wno-missing-field-initializers LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_C_INCLUDES) $(LOCAL_C_INCLUDES)/efivar $(local-generated-sources-dir) LIBEFIVAR_GUIDS_H := $(local-generated-sources-dir)/efivar/efivar-guids.h LOCAL_GENERATED_SOURCES := $(LIBEFIVAR_GUIDS_H) $(local-generated-sources-dir)/guid-symbols.c $(LIBEFIVAR_GUIDS_H): PRIVATE_CUSTOM_TOOL = $^ $(addprefix $(dir $(@D)),guids.bin names.bin guid-symbols.c efivar/efivar-guids.h) $(LIBEFIVAR_GUIDS_H): $(BUILD_OUT_EXECUTABLES)/makeguids $(LOCAL_PATH)/guids.txt $(transform-generated-source) $(lastword $(LOCAL_GENERATED_SOURCES)): $(LIBEFIVAR_GUIDS_H) include $(BUILD_STATIC_LIBRARY) efivar-39/src/Makefile000066400000000000000000000135231455652431600150310ustar00rootroot00000000000000SRCDIR = $(realpath .) include $(TOPDIR)/src/include/deprecated.mk include $(TOPDIR)/src/include/version.mk include $(TOPDIR)/src/include/rules.mk include $(TOPDIR)/src/include/defaults.mk LIBTARGETS=libefivar.so libefiboot.so libefisec.so STATICLIBTARGETS=libefivar.a libefiboot.a libefisec.a BINTARGETS=efivar efisecdb thread-test STATICBINTARGETS=efivar-static efisecdb-static PCTARGETS=efivar.pc efiboot.pc efisec.pc TARGETS=$(LIBTARGETS) $(BINTARGETS) $(PCTARGETS) STATICTARGETS=$(STATICLIBTARGETS) $(STATICBINTARGETS) LIBEFISEC_SOURCES = sec.c secdb.c esl-iter.c util.c LIBEFISEC_OBJECTS = $(patsubst %.c,%.o,$(LIBEFISEC_SOURCES)) LIBEFIBOOT_SOURCES = crc32.c creator.c disk.c gpt.c loadopt.c path-helpers.c \ linux.c $(sort $(wildcard linux-*.c)) LIBEFIBOOT_OBJECTS = $(patsubst %.c,%.o,$(LIBEFIBOOT_SOURCES)) LIBEFIVAR_SOURCES = crc32.c dp.c dp-acpi.c dp-hw.c dp-media.c dp-message.c \ efivarfs.c error.c export.c guid.c guid-symbols.c \ lib.c vars.c time.c LIBEFIVAR_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(LIBEFIVAR_SOURCES))) EFIVAR_SOURCES = efivar.c guid.c util.c EFIVAR_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFIVAR_SOURCES))) EFISECDB_SOURCES = efisecdb.c guid-symbols.c secdb-dump.c util.c EFISECDB_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFISECDB_SOURCES))) GENERATED_SOURCES = include/efivar/efivar-guids.h guid-symbols.c MAKEGUIDS_SOURCES = makeguids.c util-makeguids.c MAKEGUIDS_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(MAKEGUIDS_SOURCES))) MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES) util-makeguids.c : util.c cp util.c util-makeguids.c ALL_SOURCES=$(LIBEFISEC_SOURCES) $(LIBEFIBOOT_SOURCES) $(LIBEFIVAR_SOURCES) \ $(MAKEGUIDS_SOURCES) $(GENERATED_SOURCES) $(EFIVAR_SOURCES) \ $(sort $(wildcard include/efivar/*.h)) ifneq ($(MAKECMDGOALS),clean) $(call deps-of,$(ALL_SOURCES)) : | deps -include $(call deps-of,$(ALL_SOURCES)) endif all : $(TARGETS) static : $(STATICTARGETS) $(BINTARGETS) : | $(LIBTARGETS) $(PCTARGETS) $(STATICTARGETS) : | $(STATICLIBTARGETS) $(PCTARGETS) abiclean : @rm -vf $(patsubst %.so,%.abixml,$@) abixml : | $(LIBTARGETS) abixml : $(patsubst %.so,%.abixml,$(LIBTARGETS)) abidw : $(patsubst %.so,%.abixml,$(LIBTARGETS)) git commit -s --amend $^ abicheck : $(patsubst %.so,%.abicheck,$(LIBTARGETS)) makeguids : CPPFLAGS=$(HOST_CPPFLAGS) makeguids : LIBS=dl makeguids : CC=$(HOSTCC) makeguids : CCLD=$(HOSTCCLD) makeguids : CFLAGS=$(HOST_CFLAGS) makeguids : LDFLAGS=$(HOST_LDFLAGS) makeguids : CCLDFLAGS=$(HOST_CCLDFLAGS) makeguids : $(MAKEGUIDS_OBJECTS) $(MAKEGUIDS_OUTPUT) : makeguids $(MAKEGUIDS_OUTPUT) : guids.txt @set -e ; \ missing=no ; \ for x in $$(cat guids.txt | awk '{ print $$2 }' | grep -v ^zz) ; do \ if ! grep -q "efi_guid_$${x}" libefivar.map.in ; then \ echo missing symbol "efi_guid_$${x}" ; \ missing=yes ; \ fi ; \ done ; \ if [ "$${missing}" != "no" ]; then \ exit 1 ; \ fi ./makeguids guids.txt guid-symbols.c include/efivar/efivar-guids.h prep : makeguids $(GENERATED_SOURCES) $(LIBEFIVAR_OBJECTS) $(LIBEFIBOOT_OBJECTS) : include/efivar/efivar-guids.h libefivar.a : | $(GENERATED_SOURCES) libefivar.a : $(patsubst %.o,%.static.o,$(LIBEFIVAR_OBJECTS)) libefivar.so : $(LIBEFIVAR_OBJECTS) libefivar.so : | $(GENERATED_SOURCES) libefivar.map libefivar.so : private LIBS=dl libefivar.so : private MAP=libefivar.map efivar : $(EFIVAR_OBJECTS) | libefivar.so efivar : private LIBS=efivar dl efivar-static : $(EFIVAR_OBJECTS) $(patsubst %.o,%.static.o,$(LIBEFIVAR_OBJECTS)) efivar-static : | $(GENERATED_SOURCES) efivar-static : private LIBS=dl libefiboot.a : $(patsubst %.o,%.static.o,$(LIBEFIBOOT_OBJECTS)) libefiboot.so : $(LIBEFIBOOT_OBJECTS) libefiboot.so : | libefiboot.map libefivar.so libefiboot.so : private LIBS=efivar libefiboot.so : private MAP=libefiboot.map libefisec.a : $(patsubst %.o,%.static.o,$(LIBEFISEC_OBJECTS)) libefisec.so : $(LIBEFISEC_OBJECTS) libefisec.so : | libefisec.map libefisec.so : private MAP=libefisec.map efisecdb : $(EFISECDB_OBJECTS) | libefisec.so efisecdb : private LIBS=efivar efisec dl efisecdb-static : $(EFISECDB_OBJECTS) efisecdb-static : $(patsubst %.o,%.static.o,$(LIBEFISEC_OBJECTS) $(LIBEFIVAR_OBJECTS)) efisecdb-static : | $(GENERATED_SOURCES) efisecdb-static : private LIBS=dl thread-test : libefivar.so # make sure we don't propagate CFLAGS to object files used by 'libefivar.so' thread-test.o : private CFLAGS=$(HOST_CFLAGS) -I$(TOPDIR)/src/include/efivar thread-test : private LIBS=pthread efivar deps : $(ALL_SOURCES) @$(MAKE) -f $(SRCDIR)/include/deps.mk deps SOURCES="$(ALL_SOURCES)" clean : @rm -rfv *~ *.o *.a *.E *.so *.so.* *.pc *.bin .*.d *.map \ makeguids guid-symbols.c util-makeguids.c \ include/efivar/efivar-guids.h $(TARGETS) \ $(STATICTARGETS) @# remove the deps files we used to create, as well. @rm -rfv .*.P .*.h.P *.S.P include/efivar/.*.h.P install : all $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR) $(foreach x,$(LIBTARGETS), \ $(INSTALL) -m 755 $(x) $(DESTDIR)$(LIBDIR)/$(x).1.$(VERSION) ;\ ln -fs $(x).1.$(VERSION) $(DESTDIR)$(LIBDIR)/$(x).1 ;\ ln -fs $(x).1.$(VERSION) $(DESTDIR)$(LIBDIR)/$(x) ;\ ) $(INSTALL) -d -m 755 $(DESTDIR)$(PCDIR) $(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)$(PCDIR) ;) $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)/efivar $(foreach x, $(sort $(wildcard $(TOPDIR)/src/include/efivar/*.h)), $(INSTALL) -m 644 $(x) $(DESTDIR)$(INCLUDEDIR)/efivar/$(notdir $(x));) $(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR) $(foreach x, $(filter-out %-test,$(BINTARGETS)), $(INSTALL) -m 755 $(x) $(DESTDIR)$(BINDIR);) test : all $(MAKE) -C test $@ .PHONY: abiclean abicheck abidw abixml all .PHONY: clean deps install test .SECONDARY : libefivar.so.1.$(VERSION) libefivar.so.1 .SECONDARY : libefiboot.so.1.$(VERSION) libefiboot.so.1 .SECONDARY : libefisec.so.1.$(VERSION) libefisec.so.1 .SECONDARY : $(GENERATED_SOURCES) .INTERMEDIATE : guids.bin names.bin .PRECIOUS : makeguids efivar-39/src/abignore000066400000000000000000000044301455652431600150770ustar00rootroot00000000000000# 1 function with some indirect sub-type change: # # [C]'function int efidp_append_instance(const_efidp, const_efidp, efidp*)' at dp.c:259:1 has some indirect sub-type changes: # parameter 1 of type 'typedef const_efidp' has sub-type changes: # underlying type 'const efidp_data*' changed: # in pointed to type 'const efidp_data': # in unqualified underlying type 'typedef efidp_data' at efivar-dp.h:882:1: # underlying type 'union __anonymous_union__' at efivar-dp.h:825:1 changed: # 5 data member insertions: # 'efidp_bt __anonymous_union__::bt' at efivar-dp.h:867:1 # 'efidp_btle __anonymous_union__::btle' at efivar-dp.h:870:1 # 'efidp_dns __anonymous_union__::dns' at efivar-dp.h:871:1 # 'efidp_emmc __anonymous_union__::emmc' at efivar-dp.h:869:1 # 'efidp_wifi __anonymous_union__::wifi' at efivar-dp.h:868:1 # [suppress_type] name = efidp_data type_kind = typedef has_data_member_inserted_at = end soname_regexp = libefi(var|boot|sec)\\.so\\..* # https://bugzilla.redhat.com/show_bug.cgi?id=2030482 (el9 only) # 1 function with some indirect sub-type change: # [C] 'function int _efi_set_variable(efi_guid_t, const char*, uint8_t*, size_t, uint32_t)' at lib.c:33:1 has some indirect sub-type changes: # parameter 1 of type 'typedef efi_guid_t' changed: # underlying type 'struct efi_guid_t' at efivar-types.h:13:1 changed: # type name changed from 'efi_guid_t' to '__anonymous_struct__6' # type size hasn't changed # no data member changes (5 filtered); [suppress_type] name = efi_guid_t type_kind = struct # 1 Added variable: # # 'const __anonymous_struct__ efi_guid_ux_capsule' {efi_guid_ux_capsule@@LIBEFIVAR_1.33} # [suppress_variable] change_kind = added-variable soname_regexp = libefivar\\.so\\..* symbol_name_regexp = ^efi_guid_[[:alnum:]_]+$ # allow new functions that are prefixed correctly [suppress_function] change_kind = added-function soname_regexp = ^libefi(var|boot|sec)\\.so\\..* name_regexp = ^(efidp_|efi_)[[:alnum:]_]+ # allow new variables that are prefixed correctly [suppress_variable] change_kind = added-variable soname_regexp = libefi(var|boot|sec)\\.so\\..* symbol_name_regexp = ^(efidp_|efi_)[[:alnum:]_]+ efivar-39/src/compiler.h000066400000000000000000000051711455652431600153540ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * compiler.h - compiler related macros * Copyright Peter Jones */ #ifndef COMPILER_H_ #define COMPILER_H_ /* GCC version checking borrowed from glibc. */ #if defined(__GNUC__) && defined(__GNUC_MINOR__) # define GNUC_PREREQ(maj,min) \ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) #else # define GNUC_PREREQ(maj,min) 0 #endif /* Does this compiler support compile-time error attributes? */ #if GNUC_PREREQ(4,3) # define ATTRIBUTE_ERROR(msg) \ __attribute__ ((__error__ (msg))) #else # define ATTRIBUTE_ERROR(msg) __attribute__ ((noreturn)) #endif #if GNUC_PREREQ(4,4) # define GNU_PRINTF gnu_printf #else # define GNU_PRINTF printf #endif #if GNUC_PREREQ(3,4) # define WARN_UNUSED_RESULT __attribute__ ((warn_unused_result)) #else # define WARN_UNUSED_RESULT #endif #if defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) # define CLANG_PREREQ(maj,min) \ ((__clang_major__ > (maj)) || \ (__clang_major__ == (maj) && __clang_minor__ >= (min))) #else # define CLANG_PREREQ(maj,min) 0 #endif #define UNUSED __attribute__((__unused__)) #define HIDDEN __attribute__((__visibility__ ("hidden"))) #define PUBLIC __attribute__((__visibility__ ("default"))) #define DESTRUCTOR __attribute__((__destructor__)) #define CONSTRUCTOR __attribute__((__constructor__)) #define ALIAS(x) __attribute__((weak, alias (#x))) #define NONNULL(...) __attribute__((__nonnull__(__VA_ARGS__))) #define PRINTF(...) __attribute__((__format__(printf, __VA_ARGS__))) #define FLATTEN __attribute__((__flatten__)) #define PACKED __attribute__((__packed__)) #if defined(__clang__) # define VERSION(sym, ver) #else # if GNUC_PREREQ(10,0) # define VERSION(sym, ver) __attribute__ ((symver (# ver))) # else # define VERSION(sym, ver) __asm__(".symver " # sym "," # ver); # endif #endif #define NORETURN __attribute__((__noreturn__)) #define ALIGNED(n) __attribute__((__aligned__(n))) #define CLEANUP_FUNC(x) __attribute__((__cleanup__(x))) #define __CONCAT3(a, b, c) a ## b ## c #define CONCATENATE(a, b) __CONCAT(a, b) #define CAT(a, b) __CONCAT(a, b) #define CAT3(a, b, c) __CONCAT3(a, b, c) #define STRING(x) __STRING(x) #define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) #define __ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a) - 1) #define ALIGN(x, a) __ALIGN((x), (a)) #define ALIGN_DOWN(x, a) __ALIGN((x) - ((a) - 1), (a)) #define ALIGNMENT_PADDING(value, align) ((align - (value % align)) % align) #define ALIGN_UP(value, align) ((value) + ALIGNMENT_PADDING(value, align)) #endif /* !COMPILER_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/crc32.c000066400000000000000000000157041455652431600144540ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * Dec 5, 2000 Matt Domsch * - Copied crc32.c from the linux/drivers/net/cipe directory. * - Now pass seed as an arg * - changed len to be an unsigned long * - changed crc32val to be a register * - License remains unchanged! It's still GPL-compatable! */ /* ============================================================= */ /* COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or */ /* code or tables extracted from it, as desired without restriction. */ /* */ /* First, the polynomial itself and its table of feedback terms. The */ /* polynomial is */ /* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */ /* */ /* Note that we take it "backwards" and put the highest-order term in */ /* the lowest-order bit. The X^32 term is "implied"; the LSB is the */ /* X^31 term, etc. The X^0 term (usually shown as "+1") results in */ /* the MSB being 1. */ /* */ /* Note that the usual hardware shift register implementation, which */ /* is what we're using (we're merely optimizing it by doing eight-bit */ /* chunks at a time) shifts bits into the lowest-order term. In our */ /* implementation, that means shifting towards the right. Why do we */ /* do it this way? Because the calculated CRC must be transmitted in */ /* order from highest-order term to lowest-order term. UARTs transmit */ /* characters in order from LSB to MSB. By storing the CRC this way, */ /* we hand it to the UART in the order low-byte to high-byte; the UART */ /* sends each low-bit to hight-bit; and the result is transmission bit */ /* by bit from highest- to lowest-order term without requiring any bit */ /* shuffling on our part. Reception works similarly. */ /* */ /* The feedback terms table consists of 256, 32-bit entries. Notes: */ /* */ /* The table can be generated at runtime if desired; code to do so */ /* is shown later. It might not be obvious, but the feedback */ /* terms simply represent the results of eight shift/xor opera- */ /* tions for all combinations of data and CRC register values. */ /* */ /* The values must be right-shifted by eight bits by the "updcrc" */ /* logic; the shift must be unsigned (bring in zeroes). On some */ /* hardware you could probably optimize the shift in assembler by */ /* using byte-swap instructions. */ /* polynomial $edb88320 */ /* */ /* -------------------------------------------------------------------- */ #include static uint32_t crc32_tab[] = { 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL, 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L, 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L, 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L, 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL, 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L, 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL, 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L, 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L, 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L, 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL, 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL, 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L, 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL, 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L, 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L, 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L, 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL, 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L, 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL, 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L, 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L, 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL, 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL, 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L, 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL, 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L, 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL, 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L, 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL, 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L, 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L, 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL, 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L, 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L, 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L, 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L, 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L, 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L, 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL, 0x2d02ef8dL }; /* Return a 32-bit CRC of the contents of the buffer. */ uint32_t crc32(const void *buf, unsigned long len, uint32_t seed) { unsigned long i; register uint32_t val; const unsigned char *s = buf; val = seed; for (i = 0; i < len; i ++) val = crc32_tab[(val ^ s[i]) & 0xff] ^ (val >> 8); return val; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/crc32.h000066400000000000000000000016421455652431600144550ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * crc32.h - headers for crc32 * */ #ifndef _CRC32_H #define _CRC32_H #include /* * This computes a 32 bit CRC of the data in the buffer, and returns the CRC. * The polynomial used is 0xedb88320. */ extern uint32_t crc32 (const void *buf, unsigned long len, uint32_t seed); /** * efi_crc32() - EFI version of crc32 function * @buf: buffer to calculate crc32 of * @len - length of buf * * Description: Returns EFI-style CRC32 value for @buf * * This function uses the little endian Ethernet polynomial * but seeds the function with ~0, and xor's with ~0 at the end. * Note, the EFI Specification, v1.02, has a reference to * Dr. Dobbs Journal, May 1994 (actually it's in May 1992). */ static inline uint32_t efi_crc32(const void *buf, unsigned long len) { return (crc32(buf, len, ~0L) ^ ~0L); } #endif /* _CRC32_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/creator.c000066400000000000000000000246241455652431600152000ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2015 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include "efiboot.h" static int NONNULL(1, 2, 3) find_file(const char * const filepath, char **devicep, char **relpathp) { struct stat fsb = { 0, }; int rc; int ret = -1; FILE *mounts = NULL; char linkbuf[PATH_MAX+1] = ""; ssize_t linklen = 0; linklen = strlen(filepath); if (linklen > PATH_MAX) { errno = ENAMETOOLONG; efi_error("filepath length exceeds PATH_MAX"); return -1; } strcpy(linkbuf, filepath); do { rc = stat(linkbuf, &fsb); if (rc < 0) return rc; if (S_ISLNK(fsb.st_mode)) { char tmp[PATH_MAX+1] = ""; ssize_t l; l = readlink(linkbuf, tmp, PATH_MAX); if (l < 0) { efi_error("readlink failed"); return -1; } tmp[l] = '\0'; linklen = l; strcpy(linkbuf, tmp); } else { break; } } while (1); mounts = setmntent("/proc/self/mounts", "r"); if (mounts == NULL) { efi_error("couldn not open /proc/self/mounts"); return -1; } struct mntent *me; while (1) { struct stat dsb = { 0, }; errno = 0; me = getmntent(mounts); if (!me) { if (feof(mounts)) { errno = ENOENT; efi_error("could not find mountpoint"); } goto err; } if (me->mnt_fsname[0] != '/') continue; rc = stat(me->mnt_fsname, &dsb); if (rc < 0) { if (errno == ENOENT) continue; efi_error("could not stat mountpoint"); goto err; } if (!S_ISBLK(dsb.st_mode)) continue; if (dsb.st_rdev == fsb.st_dev) { ssize_t mntlen = strlen(me->mnt_dir); if (mntlen >= linklen) continue; if (strncmp(linkbuf, me->mnt_dir, mntlen)) continue; *devicep = strdup(me->mnt_fsname); if (!*devicep) { errno = ENOMEM; efi_error("strdup failed"); goto err; } *relpathp = strdup(linkbuf + mntlen); if (!*relpathp) { free(*devicep); *devicep = NULL; errno = ENOMEM; efi_error("strdup failed"); goto err; } ret = 0; break; } } err: if (mounts) endmntent(mounts); return ret; } static int open_disk(struct device *dev, int flags) { char *diskpath = NULL; int rc; rc = asprintfa(&diskpath, "/dev/%s", dev->disk_name); if (rc < 0) { efi_error("could not allocate buffer"); return -1; } rc = open(diskpath, flags); if (rc < 0) efi_error("could not open disk"); return rc; } static char * tilt_slashes(char *s) { char *p; for (p = s; *p; p++) if (*p == '/') *p = '\\'; return s; } ssize_t efi_va_generate_file_device_path_from_esp(uint8_t *buf, ssize_t size, const char *devpath, int partition, const char *relpath, uint32_t options, va_list ap) { ssize_t ret = -1, off = 0, sz; struct device *dev = NULL; int fd = -1; int saved_errno; debug("partition:%d", partition); if (buf && size) memset(buf, '\0', size); fd = open(devpath, O_RDONLY); if (fd < 0) { efi_error("could not open device for ESP"); goto err; } dev = device_get(fd, partition); if (dev == NULL) { efi_error("could not get ESP disk info"); goto err; } if (partition < 0) { int disk_fd; debug("partition: %d", partition); disk_fd = open_disk(dev, (options & EFIBOOT_OPTIONS_WRITE_SIGNATURE) ? O_RDWR : O_RDONLY); if (disk_fd < 0) { efi_error("could not open disk"); goto err; } if (is_partitioned(disk_fd)) partition = 1; else partition = 0; debug("is_partitioned(): partition -> %d", partition); close(disk_fd); } set_part(dev, partition); if (partition == 0) { options |= EFIBOOT_ABBREV_NONE; options &= ~(EFIBOOT_ABBREV_HD| EFIBOOT_ABBREV_FILE| EFIBOOT_ABBREV_EDD10); } if (options & EFIBOOT_ABBREV_NONE) debug("EFIBOOT_ABBREV_NONE"); if (options & EFIBOOT_ABBREV_HD) debug("EFIBOOT_ABBREV_HD"); if (options & EFIBOOT_ABBREV_FILE) debug("EFIBOOT_ABBREV_FILE"); if (options & EFIBOOT_ABBREV_EDD10) debug("EFIBOOT_ABBREV_EDD10"); if (options & EFIBOOT_ABBREV_EDD10) { va_list aq; va_copy(aq, ap); dev->edd10_devicenum = va_arg(aq, uint32_t); va_end(aq); } if (!(options & (EFIBOOT_ABBREV_FILE|EFIBOOT_ABBREV_HD)) && (dev->flags & DEV_ABBREV_ONLY)) { efi_error_clear(); errno = EINVAL; efi_error("Device must use File() or HD() device path"); goto err; } if ((options & EFIBOOT_ABBREV_EDD10) && (!(options & EFIBOOT_ABBREV_FILE) && !(options & EFIBOOT_ABBREV_HD))) { sz = efidp_make_edd10(buf, size, dev->edd10_devicenum); if (sz < 0) { efi_error("could not make EDD 1.0 device path"); goto err; } off = sz; } else if (!(options & EFIBOOT_ABBREV_FILE) && !(options & EFIBOOT_ABBREV_HD)) { /* * We're probably on a modern kernel, so just parse the * symlink from /sys/dev/block/$major:$minor and get it * from there. */ sz = make_blockdev_path(buf, size, dev); if (sz < 0) { efi_error("could not create device path"); goto err; } off += sz; } if ((!(options & EFIBOOT_ABBREV_FILE) && dev->part_name) || ((options & EFIBOOT_ABBREV_HD) && ! dev->part_name)) { int disk_fd; int saved_errno; disk_fd = open_disk(dev, (options & EFIBOOT_OPTIONS_WRITE_SIGNATURE) ? O_RDWR : O_RDONLY); if (disk_fd < 0) { efi_error("could not open disk"); goto err; } sz = make_hd_dn(buf+off, size?size-off:0, disk_fd, dev->part, options); saved_errno = errno; close(disk_fd); errno = saved_errno; if (sz < 0) { efi_error("could not make HD() DP node"); goto err; } off += sz; } char *filepath = strdupa(relpath); tilt_slashes(filepath); sz = efidp_make_file(buf+off, size?size-off:0, filepath); if (sz < 0) { efi_error("could not make File() DP node"); goto err; } off += sz; sz = efidp_make_end_entire(buf+off, size?size-off:0); if (sz < 0) { efi_error("could not make EndEntire DP node"); goto err; } off += sz; ret = off; err: saved_errno = errno; if (dev) device_free(dev); if (fd >= 0) close(fd); errno = saved_errno; debug("= %zd", ret); return ret; } ssize_t NONNULL(3, 5) PUBLIC efi_generate_file_device_path_from_esp(uint8_t *buf, ssize_t size, const char *devpath, int partition, const char *relpath, uint32_t options, ...) { ssize_t ret; int saved_errno; va_list ap; va_start(ap, options); ret = efi_va_generate_file_device_path_from_esp(buf, size, devpath, partition, relpath, options, ap); saved_errno = errno; va_end(ap); errno = saved_errno; if (ret < 0) efi_error("could not generate File DP from ESP"); return ret; } static int get_part(char *devpath) { int fd; int partition = -1; struct device *dev = NULL; fd = open(devpath, O_RDONLY); if (fd < 0) { efi_error("could not open device for ESP"); goto err; } dev = device_get(fd, -1); if (dev == NULL) { efi_error("could not get ESP disk info"); goto err; } partition = dev->part; if (partition < 0) partition = 0; err: if (dev) device_free(dev); if (fd >= 0) close(fd); return partition; } ssize_t NONNULL(3) PUBLIC efi_generate_file_device_path(uint8_t *buf, ssize_t size, const char * const filepath, uint32_t options, ...) { int rc; ssize_t ret = -1; char *child_devpath = NULL; char *parent_devpath = NULL; char *relpath = NULL; va_list ap; int saved_errno; rc = find_file(filepath, &child_devpath, &relpath); if (rc < 0) { efi_error("could not canonicalize fs path"); goto err; } rc = find_parent_devpath(child_devpath, &parent_devpath); if (rc < 0) { efi_error("could not find parent device for file"); goto err; } debug("child_devpath:%s", child_devpath); debug("parent_devpath:%s", parent_devpath); debug("child_devpath:%s", child_devpath); debug("rc:%d", rc); rc = get_part(child_devpath); if (rc < 0) { efi_error("Couldn't get partition number for %s", child_devpath); goto err; } debug("detected partition:%d", rc); va_start(ap, options); if (!strcmp(parent_devpath, "/dev/block")) ret = efi_va_generate_file_device_path_from_esp(buf, size, child_devpath, rc, relpath, options, ap); else ret = efi_va_generate_file_device_path_from_esp(buf, size, parent_devpath, rc, relpath, options, ap); saved_errno = errno; va_end(ap); errno = saved_errno; if (ret < 0) efi_error("could not generate File DP from ESP"); err: saved_errno = errno; if (child_devpath) free(child_devpath); if (parent_devpath) free(parent_devpath); if (relpath) free(relpath); errno = saved_errno; return ret; } static ssize_t NONNULL(3, 4, 5, 6) make_ipv4_path(uint8_t *buf, ssize_t size, const char * const local_addr UNUSED, const char * const remote_addr UNUSED, const char * const gateway_addr UNUSED, const char * const netmask UNUSED, uint16_t local_port UNUSED, uint16_t remote_port UNUSED, uint16_t protocol UNUSED, uint8_t addr_origin UNUSED) { ssize_t ret; #if 0 if (local_addr == NULL || remote_addr == NULL || gateway_addr == NULL || netmask == NULL) { errno = EINVAL; return -1; } #endif ret = efidp_make_ipv4(buf, size, 0, 0, 0, 0, 0, 0, 0, 0); if (ret < 0) efi_error("could not make ipv4 DP node"); return ret; } ssize_t NONNULL(3, 4, 5, 6, 7) PUBLIC efi_generate_ipv4_device_path(uint8_t *buf, ssize_t size, const char * const ifname, const char * const local_addr, const char * const remote_addr, const char * const gateway_addr, const char * const netmask, uint16_t local_port, uint16_t remote_port, uint16_t protocol, uint8_t addr_origin) { ssize_t off = 0; ssize_t sz; sz = make_mac_path(buf, size, ifname); if (sz < 0) { efi_error("could not make MAC DP node"); return -1; } off += sz; sz = make_ipv4_path(buf+off, size?size-off:0, local_addr, remote_addr, gateway_addr, netmask, local_port, remote_port, protocol, addr_origin); if (sz < 0) { efi_error("could not make IPV4 DP node"); return -1; } off += sz; sz = efidp_make_end_entire(buf+off, size?size-off:0); if (sz < 0) { efi_error("could not make EndEntire DP node"); return -1; } off += sz; return off; } uint32_t PUBLIC efi_get_libefiboot_version(void) { return LIBEFIVAR_VERSION; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/diag.h000066400000000000000000000045041455652431600144450ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * diag.h - Set up appropriate -W flags based on which compiler is in use * Copyright Peter Jones */ #ifndef PRIVATE_DIAG_H_ #define PRIVATE_DIAG_H_ #if defined(__clang__) #pragma clang diagnostic ignored "-Wpointer-bool-conversion" /* * -Wmissing-field-initializers just encourages you to write worse code, * and that's all it's ever done. It vaguely made sense pre-C99, before * named initializers, but at this point it's just completely nonsense. */ #pragma clang diagnostic ignored "-Wmissing-field-initializers" #pragma clang diagnostic warning "-Wcpp" #endif #if defined(__GNUC__) && !defined(__clang__) /* * nonnull compare is more or less completetly defective; rather than * warning that you're *calling* something without ensuring an argument * can't be NULL, it complains in the implementation of the callee that * you're *checking* for NULL. Useful behavior would be to complain in the * caller if an argument hasn't been properly constrained, and to complain * in the callee if either the visibility is public and the variable * /isn't/ checked, or the visibility is hidden and it is - i.e. only * complain about checking if you can verify every caller. */ #if __GNUC__ > 6 #pragma GCC diagnostic ignored "-Wnonnull-compare" #endif /* * -Wmissing-field-initializers just encourages you to write worse code, * and that's all it's ever done. It vaguely made sense pre-C99, before * named initializers, but at this point it's just completely nonsense. */ #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #if defined(EFIVAR_SYNTAX_CHECKING) #pragma GCC diagnostic ignored "-Wcpp" #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #pragma GCC diagnostic ignored "-Wunused-function" #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wunused-result" #pragma GCC diagnostic ignored "-Wunused-variable" #else #pragma GCC diagnostic warning "-Wcpp" #pragma GCC diagnostic error "-Wunused-but-set-variable" #pragma GCC diagnostic error "-Wunused-function" #pragma GCC diagnostic error "-Wunused-parameter" #pragma GCC diagnostic error "-Wunused-result" #pragma GCC diagnostic error "-Wunused-variable" #endif /* !defined(EFIVAR_SYNTAX_CHECKING) */ #endif #endif /* !PRIVATE_DIAG_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/disk.c000066400000000000000000000155541455652431600144750ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2015 Red Hat, Inc. * Copyright (C) 2000-2001 Dell Computer Corporation */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "efiboot.h" /** * is_mbr_valid(): test MBR for validity * @mbr: pointer to a legacy mbr structure * * Description: Returns 1 if MBR is valid, 0 otherwise. * Validity depends on one thing: * 1) MSDOS signature is in the last two bytes of the MBR */ static inline int is_mbr_valid(legacy_mbr *mbr) { int ret; if (!mbr) return 0; ret = (mbr->magic == MSDOS_MBR_MAGIC); if (!ret) { errno = ENOTTY; efi_error("mbr magic is 0x%04hx not MSDOS_MBR_MAGIC (0x%04hx)", mbr->magic, MSDOS_MBR_MAGIC); } return ret; } /************************************************************ * msdos_disk_get_extended partition_info() * Requires: * - open file descriptor fd * - start, size * Modifies: all these * Returns: * 0 on success * non-zero on failure * ************************************************************/ static int msdos_disk_get_extended_partition_info (int fd UNUSED, legacy_mbr *mbr UNUSED, uint32_t num UNUSED, uint64_t *start UNUSED, uint64_t *size UNUSED) { /* Until I can handle these... */ //fprintf(stderr, "Extended partition info not supported.\n"); errno = ENOSYS; efi_error("extended partition info is not supported"); return -1; } /************************************************************ * msdos_disk_get_partition_info() * Requires: * - mbr * - open file descriptor fd (for extended partitions) * - start, size, signature, mbr_type, signature_type * Modifies: all these * Returns: * 0 on success * non-zero on failure * ************************************************************/ static int msdos_disk_get_partition_info (int fd, int write_signature, legacy_mbr *mbr, uint32_t num, uint64_t *start, uint64_t *size, uint32_t *signature, uint8_t *mbr_type, uint8_t *signature_type) { int rc; long disk_size=0; struct stat stat; struct timeval tv; if (!mbr) { errno = EINVAL; efi_error("mbr argument must not be NULL"); return -1; } if (!is_mbr_valid(mbr)) { errno = ENOENT; efi_error("mbr is not valid"); return -1; } *mbr_type = 0x01; *signature_type = 0x01; if (!mbr->unique_mbr_signature && !write_signature) { efi_error("\n******************************************************\n" "Warning! This MBR disk does not have a unique signature.\n" "If this is not the first disk found by EFI, you may not be able\n" "to boot from it without a unique signature.\n" "Run efibootmgr with the -w flag to write a unique signature\n" "to the disk.\n" "******************************************************"); } else if (!mbr->unique_mbr_signature && write_signature) { /* MBR Signatures must be unique for the EFI Boot Manager to find the right disk to boot from */ rc = fstat(fd, &stat); if (rc < 0) { efi_error("could not fstat disk"); return rc; } rc = gettimeofday(&tv, NULL); if (rc < 0) { efi_error("gettimeofday failed"); return rc; } /* Write the device type to the signature. This should be unique per disk per system */ mbr->unique_mbr_signature = tv.tv_usec << 16; mbr->unique_mbr_signature |= stat.st_rdev & 0xFFFF; /* Write it to the disk */ lseek(fd, 0, SEEK_SET); rc = write(fd, mbr, sizeof(*mbr)); if (rc < 0) { efi_error("could not write MBR signature"); return rc; } } *signature = mbr->unique_mbr_signature; if (num > 4) { /* Extended partition */ rc = msdos_disk_get_extended_partition_info(fd, mbr, num, start, size); if (rc < 0) { efi_error("could not get extended partition info"); return rc; } } else if (num == 0) { /* Whole disk */ *start = 0; ioctl(fd, BLKGETSIZE, &disk_size); *size = disk_size; } else if (num >= 1 && num <= 4) { /* Primary partition */ *start = mbr->partition[num-1].starting_lba; *size = mbr->partition[num-1].size_in_lba; } return 0; } static int get_partition_info(int fd, uint32_t options, uint32_t part, uint64_t *start, uint64_t *size, partition_signature_t *signature, uint8_t *mbr_type, uint8_t *signature_type) { legacy_mbr *mbr; void *mbr_sector; size_t mbr_size; off_t offset UNUSED; int this_bytes_read = 0; int gpt_invalid=0, mbr_invalid=0; int rc=0; int sector_size = get_sector_size(fd); mbr_size = lcm(sizeof(*mbr), sector_size); if ((rc = posix_memalign(&mbr_sector, sector_size, mbr_size)) != 0) { efi_error("posix_memalign failed"); goto error; } memset(mbr_sector, '\0', mbr_size); offset = lseek(fd, 0, SEEK_SET); this_bytes_read = read(fd, mbr_sector, mbr_size); if (this_bytes_read < (ssize_t)sizeof(*mbr)) { efi_error("short read trying to read mbr data"); rc = -1; goto error_free_mbr; } mbr = (legacy_mbr *)mbr_sector; gpt_invalid = gpt_disk_get_partition_info( fd, part, start, size, &signature->gpt_signature, mbr_type, signature_type, (options & EFIBOOT_OPTIONS_IGNORE_PMBR_ERR) ? 1 : 0, sector_size); if (gpt_invalid < 0) { mbr_invalid = msdos_disk_get_partition_info( fd, (options & EFIBOOT_OPTIONS_WRITE_SIGNATURE) ? 1 : 0, mbr, part, start, size, &signature->mbr_signature, mbr_type, signature_type); if (mbr_invalid < 0) { efi_error("neither MBR nor GPT is valid"); rc = -1; goto error_free_mbr; } efi_error_clear(); } error_free_mbr: free(mbr_sector); error: return rc; } bool HIDDEN is_partitioned(int fd) { int rc; uint32_t options = 0; uint32_t part = 1; uint64_t start = 0, size = 0; uint8_t mbr_type = 0, signature_type = 0; partition_signature_t signature; memset(&signature, 0, sizeof(signature)); rc = get_partition_info(fd, options, part, &start, &size, &signature, &mbr_type, &signature_type); if (rc < 0) return false; return true; } ssize_t HIDDEN make_hd_dn(uint8_t *buf, ssize_t size, int fd, int32_t partition, uint32_t options) { uint64_t part_start=0, part_size = 0; partition_signature_t signature; uint8_t format=0, signature_type=0; int rc; errno = 0; if (partition <= 0) return 0; memset(&signature, 0, sizeof(signature)); rc = get_partition_info(fd, options, partition, &part_start, &part_size, &signature, &format, &signature_type); if (rc < 0) { efi_error("could not get partition info"); return rc; } rc = efidp_make_hd(buf, size, partition, part_start, part_size, (uint8_t *)&signature, format, signature_type); if (rc < 0) efi_error("could not make HD DP node"); return rc; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/disk.h000066400000000000000000000007551455652431600144770ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2015 Red Hat, Inc. * Copyright (C) 2001 Dell Computer Corporation */ #ifndef _EFIBOOT_DISK_H #define _EFIBOOT_DISK_H extern bool HIDDEN is_partitioned(int fd); extern HIDDEN ssize_t make_hd_dn(uint8_t *buf, ssize_t size, int fd, int32_t partition, uint32_t options); #endif /* _EFIBOOT_DISK_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/dp-acpi.c000066400000000000000000000206461455652431600150560ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include "efivar.h" static ssize_t _format_acpi_adr(unsigned char *buf, size_t size, const char *dp_type UNUSED, const_efidp dp) { ssize_t off = 0; format(buf, size, off, "AcpiAdr", "AcpiAdr("); format_array(buf, size, off, "AcpiAdr", "0x%"PRIx32, __typeof__(dp->acpi_adr.adr[0]), dp->acpi_adr.adr, (efidp_node_size(dp)-4) / sizeof (dp->acpi_adr.adr[0])); format(buf, size, off, "AcpiAdr", ")"); return off; } #define format_acpi_adr(buf, size, off, dp) \ format_helper(_format_acpi_adr, buf, size, off, "AcpiAdr", dp) static ssize_t _format_acpi_hid_ex(unsigned char *buf, size_t size, const char *dp_type UNUSED, const_efidp dp, const char *hidstr, const char *cidstr, const char *uidstr) { ssize_t off = 0; debug("hid:0x%08x hidstr:'%s'", dp->acpi_hid_ex.hid, hidstr); debug("cid:0x%08x cidstr:'%s'", dp->acpi_hid_ex.cid, cidstr); debug("uid:0x%08x uidstr:'%s'", dp->acpi_hid_ex.uid, uidstr); if (!hidstr && !cidstr && (uidstr || dp->acpi_hid_ex.uid)) { format(buf, size, off, "AcpiExp", "AcpiExp(0x%"PRIx32",0x%"PRIx32",", dp->acpi_hid_ex.hid, dp->acpi_hid_ex.cid); if (uidstr) { format(buf, size, off, "AcpiExp", "%s)", uidstr); } else { format(buf, size, off, "AcpiExp", "0x%"PRIx32")", dp->acpi_hid_ex.uid); } return off; } format(buf, size, off, "AcpiEx", "AcpiEx("); if (hidstr) { format(buf, size, off, "AcpiEx", "%s,", hidstr); } else { format(buf, size, off, "AcpiEx", "0x%"PRIx32",", dp->acpi_hid_ex.hid); } if (cidstr) { format(buf, size, off, "AcpiEx", "%s,", cidstr); } else { format(buf, size, off, "AcpiEx", "0x%"PRIx32",", dp->acpi_hid_ex.cid); } if (uidstr) { format(buf, size, off, "AcpiEx", "%s)", uidstr); } else { format(buf, size, off, "AcpiEx", "0x%"PRIx32")", dp->acpi_hid_ex.uid); } return off; } #define format_acpi_hid_ex(buf, size, off, dp, hidstr, cidstr, uidstr) \ format_helper(_format_acpi_hid_ex, buf, size, off, "AcpiEx", dp,\ hidstr, cidstr, uidstr) ssize_t _format_acpi_dn(unsigned char *buf, size_t size, const_efidp dp) { ssize_t off = 0; const char *hidstr = NULL; size_t hidlen = 0; const char *uidstr = NULL; size_t uidlen = 0; const char *cidstr = NULL; // size_t cidlen = 0; if (dp->subtype == EFIDP_ACPI_ADR) { debug("formatting ACPI _ADR"); format_acpi_adr(buf, size, off, dp); return off; } else if (dp->subtype != EFIDP_ACPI_HID_EX && dp->subtype != EFIDP_ACPI_HID) { debug("DP subtype %d, formatting as ACPI Path", dp->subtype); format(buf, size, off, "AcpiPath", "AcpiPath(%d,", dp->subtype); format_hex(buf, size, off, "AcpiPath", (uint8_t *)dp+4, (efidp_node_size(dp)-4) / 2); format(buf, size, off, "AcpiPath", ")"); return off; } else if (dp->subtype == EFIDP_ACPI_HID_EX) { ssize_t limit = efidp_node_size(dp) - offsetof(efidp_acpi_hid_ex, hidstr); debug("formatting ACPI HID EX"); hidstr = dp->acpi_hid_ex.hidstr; hidlen = strnlen(hidstr, limit); limit -= hidlen + 1; if (limit) { uidstr = hidstr + hidlen + 1; uidlen = strnlen(uidstr, limit); limit -= uidlen + 1; } if (limit) { cidstr = uidstr + uidlen + 1; // cidlen = strnlen(cidstr, limit); // limit -= cidlen + 1; } if (uidstr) { switch (dp->acpi_hid.hid) { case EFIDP_ACPI_PCI_ROOT_HID: format(buf, size, off, "PciRoot", "PciRoot(%s)", uidstr); return off; case EFIDP_ACPI_CONTAINER_0A05_HID: case EFIDP_ACPI_CONTAINER_0A06_HID: format(buf, size, off, "AcpiContainer", "AcpiContainer(%s)", uidstr); break; case EFIDP_ACPI_PCIE_ROOT_HID: format(buf, size, off, "PcieRoot", "PcieRoot(%s)", uidstr); return off; case EFIDP_ACPI_EC_HID: format(buf, size, off, "EmbeddedController", "EmbeddedController()"); return off; default: format_acpi_hid_ex(buf, size, off, dp, hidstr, cidstr, uidstr); return off; } } } else if (dp->subtype == EFIDP_ACPI_HID) { debug("formatting ACPI HID 0x%08x", dp->acpi_hid.hid); switch (dp->acpi_hid.hid) { case EFIDP_ACPI_PCI_ROOT_HID: format(buf, size, off, "PciRoot", "PciRoot(0x%"PRIx32")", dp->acpi_hid.uid); break; case EFIDP_ACPI_CONTAINER_0A05_HID: case EFIDP_ACPI_CONTAINER_0A06_HID: format(buf, size, off, "AcpiContainer", "AcpiContainer()"); break; case EFIDP_ACPI_PCIE_ROOT_HID: format(buf, size, off, "PcieRoot", "PcieRoot(0x%"PRIx32")", dp->acpi_hid.uid); break; case EFIDP_ACPI_EC_HID: format(buf, size, off, "EmbeddedController", "EmbeddedController()"); break; case EFIDP_ACPI_FLOPPY_HID: format(buf, size, off, "Floppy", "Floppy(0x%"PRIx32")", dp->acpi_hid.uid); break; case EFIDP_ACPI_KEYBOARD_HID: format(buf, size, off, "Keyboard", "Keyboard(0x%"PRIx32")", dp->acpi_hid.uid); break; case EFIDP_ACPI_SERIAL_HID: format(buf, size, off, "Serial", "Serial(0x%"PRIx32")", dp->acpi_hid.uid); break; case EFIDP_ACPI_NVDIMM_HID: { int rc; const_efidp next = NULL; efidp_acpi_adr *adrdp; int end; format(buf, size, off, "NvRoot()", "NvRoot()"); rc = efidp_next_node(dp, &next); if (rc < 0 || !next) { efi_error("could not format DP"); return rc; } if (efidp_type(next) != EFIDP_ACPI_TYPE || efidp_subtype(next) != EFIDP_ACPI_ADR) { efi_error("Invalid child node type (0x%02x,0x%02x)", efidp_type(next), efidp_subtype(next)); return -EINVAL; } adrdp = (efidp_acpi_adr *)next; end = efidp_size_after(adrdp, header) / sizeof(adrdp->adr[0]); for (int i = 0; i < end; i++) { uint32_t node_controller, socket, memory_controller; uint32_t memory_channel, dimm; uint32_t adr = adrdp->adr[i]; efidp_decode_acpi_nvdimm_adr(adr, &node_controller, &socket, &memory_controller, &memory_channel, &dimm); if (i != 0) format(buf, size, off, "NvDimm", ","); format(buf, size, off, "NvDimm", "NvDimm(0x%03x,0x%01x,0x%01x,0x%01x,0x%01x)", node_controller, socket, memory_controller, memory_channel, dimm); } break; } default: debug("Decoding non-well-known HID"); switch (dp->subtype) { case EFIDP_ACPI_HID_EX: format_acpi_hid_ex(buf, size, off, dp, hidstr, cidstr, uidstr); break; case EFIDP_ACPI_HID: debug("Decoding ACPI HID"); format(buf, size, off, "Acpi", "Acpi(0x%08x,0x%"PRIx32")", dp->acpi_hid.hid, dp->acpi_hid.uid); break; default: debug("ACPI subtype %d???", dp->subtype); errno = EINVAL; return -1; } } } else { debug("Unknown ACPI device path type {0x%04hhx,0x%04hhx}", dp->type, dp->subtype); } return off; } ssize_t PUBLIC efidp_make_acpi_hid(uint8_t *buf, ssize_t size, uint32_t hid, uint32_t uid) { efidp_acpi_hid *acpi_hid = (efidp_acpi_hid *)buf; ssize_t req = sizeof (*acpi_hid); ssize_t sz; sz = efidp_make_generic(buf, size, EFIDP_ACPI_TYPE, EFIDP_ACPI_HID, sizeof (*acpi_hid)); if (size && sz == req) { acpi_hid->uid = uid; acpi_hid->hid = hid; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_acpi_hid_ex(uint8_t *buf, ssize_t size, uint32_t hid, uint32_t uid, uint32_t cid, const char *hidstr, const char *uidstr, const char *cidstr) { efidp_acpi_hid_ex *acpi_hid = (efidp_acpi_hid_ex *)buf; ssize_t req; ssize_t sz; size_t hidlen = hidstr ? strlen(hidstr) : 0; size_t uidlen = uidstr ? strlen(uidstr) : 0; size_t cidlen = cidstr ? strlen(cidstr) : 0; req = sizeof (*acpi_hid) + 3 + hidlen + uidlen + cidlen; sz = efidp_make_generic(buf, size, EFIDP_ACPI_TYPE, EFIDP_ACPI_HID_EX, req); if (size && sz == req) { acpi_hid->hid = hidlen ? 0 : hid; acpi_hid->uid = uidlen ? 0 : uid; acpi_hid->cid = cidlen ? 0 : cid; char *next = (char *)buf+offsetof(efidp_acpi_hid_ex, hidstr); if (hidlen) strcpy(next, hidstr); next += hidlen + 1; if (uidlen) strcpy(next, uidstr); next += uidlen + 1; if (cidlen) strcpy(next, cidstr); } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/dp-hw.c000066400000000000000000000055041455652431600145540ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2015 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include "efivar.h" ssize_t format_edd10_guid(unsigned char *buf, size_t size, const char *dp_type, const_efidp dp) { ssize_t off = 0; efidp_edd10 const *edd_dp = (efidp_edd10 *)dp; format(buf, size, off, dp_type, "EDD10(0x%"PRIx32")", edd_dp->hardware_device); return off; } ssize_t _format_hw_dn(unsigned char *buf, size_t size, const_efidp dp) { efi_guid_t edd10_guid = EDD10_HARDWARE_VENDOR_PATH_GUID; ssize_t off = 0; switch (dp->subtype) { case EFIDP_HW_PCI: format(buf, size, off, "Pci", "Pci(0x%"PRIx32",0x%"PRIx32")", dp->pci.device, dp->pci.function); break; case EFIDP_HW_PCCARD: format(buf, size, off, "PcCard", "PcCard(0x%"PRIx32")", dp->pccard.function); break; case EFIDP_HW_MMIO: format(buf, size, off, "MemoryMapped", "MemoryMapped(%"PRIu32",0x%"PRIx64",0x%"PRIx64")", dp->mmio.memory_type, dp->mmio.starting_address, dp->mmio.ending_address); break; case EFIDP_HW_VENDOR: if (!efi_guid_cmp(&dp->hw_vendor.vendor_guid, &edd10_guid)) { format_helper(format_edd10_guid, buf, size, off, "EDD 1.0", dp); } else { format_vendor(buf, size, off, "VenHw", dp); } break; case EFIDP_HW_CONTROLLER: format(buf, size, off, "Ctrl", "Ctrl(0x%"PRIx32")", dp->controller.controller); break; case EFIDP_HW_BMC: format(buf, size, off, "BMC", "BMC(%d,0x%"PRIx64")", dp->bmc.interface_type, dp->bmc.base_addr); break; default: format(buf, size, off, "Hardware", "HardwarePath(%d,", dp->subtype); format_hex(buf, size, off, "Hardware", (uint8_t *)dp+4, efidp_node_size(dp)-4); format(buf, size, off, "Hardware", ")"); break; } return off; } ssize_t PUBLIC efidp_make_pci(uint8_t *buf, ssize_t size, uint8_t device, uint8_t function) { efidp_pci *pci = (efidp_pci *)buf; ssize_t sz; ssize_t req = sizeof (*pci); sz = efidp_make_generic(buf, size, EFIDP_HARDWARE_TYPE, EFIDP_HW_PCI, req); if (size && sz == req) { pci->device = device; pci->function = function; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_edd10(uint8_t *buf, ssize_t size, uint32_t hardware_device) { efi_guid_t edd10_guid = EDD10_HARDWARE_VENDOR_PATH_GUID; efidp_edd10 *edd_dp = (efidp_edd10 *)buf; ssize_t sz; ssize_t req = sizeof (*edd_dp); sz = efidp_make_generic(buf, size, EFIDP_HARDWARE_TYPE, EFIDP_HW_VENDOR, req); if (size && sz == req) { memcpy(&edd_dp->vendor_guid, &edd10_guid, sizeof (edd10_guid)); edd_dp->hardware_device = hardware_device; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/dp-media.c000066400000000000000000000124741455652431600152210ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2015 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include "efivar.h" ssize_t _format_media_dn(unsigned char *buf, size_t size, const_efidp dp) { ssize_t off = 0; switch (dp->subtype) { case EFIDP_MEDIA_HD: format(buf, size, off, "HD", "HD(%d,", dp->hd.partition_number); switch (dp->hd.signature_type) { case EFIDP_HD_SIGNATURE_MBR: format(buf, size, off, "HD", "MBR,0x%"PRIx32",0x%"PRIx64",0x%"PRIx64")", (uint32_t)dp->hd.signature[0] | ((uint32_t)dp->hd.signature[1] << 8) | ((uint32_t)dp->hd.signature[2] << 16) | ((uint32_t)dp->hd.signature[3] << 24), dp->hd.start, dp->hd.size); break; case EFIDP_HD_SIGNATURE_GUID: format(buf, size, off, "HD", "GPT,"); format_guid(buf, size, off, "HD", dp->hd.signature); format(buf, size, off, "HD", ",0x%"PRIx64",0x%"PRIx64")", dp->hd.start, dp->hd.size); break; default: format(buf, size, off, "HD", "%d,", dp->hd.signature_type); format_hex(buf, size, off, "HD", dp->hd.signature, sizeof(dp->hd.signature)); format(buf, size, off, "HD", ",0x%"PRIx64",0x%"PRIx64")", dp->hd.start, dp->hd.size); break; } break; case EFIDP_MEDIA_CDROM: format(buf, size, off, "CDROM", "CDROM(%d,0x%"PRIx64",0x%"PRIx64")", dp->cdrom.boot_catalog_entry, dp->cdrom.partition_rba, dp->cdrom.sectors); break; case EFIDP_MEDIA_VENDOR: format_vendor(buf, size, off, "VenMedia", dp); break; case EFIDP_MEDIA_FILE: { size_t limit = (efidp_node_size(dp) - offsetof(efidp_file, name)) / 2; format_ucs2(buf, size, off, "File", dp->file.name, limit); break; } case EFIDP_MEDIA_PROTOCOL: format(buf, size, off, "Media", "Media("); format_guid(buf, size, off, "Media", &dp->protocol.protocol_guid); format(buf, size, off, "Media", ")"); break; case EFIDP_MEDIA_FIRMWARE_FILE: format(buf, size, off, "FvFile", "FvFile("); format_guid(buf, size, off, "FvFile", &dp->protocol.protocol_guid); format(buf, size, off, "FvFile", ")"); break; case EFIDP_MEDIA_FIRMWARE_VOLUME: format(buf, size, off, "FvVol", "FvVol("); format_guid(buf, size, off, "FvVol", &dp->protocol.protocol_guid); format(buf, size, off, "FvVol", ")"); break; case EFIDP_MEDIA_RELATIVE_OFFSET: format(buf, size, off, "Offset", "Offset(0x%"PRIx64",0x%"PRIx64")", dp->relative_offset.first_byte, dp->relative_offset.last_byte); break; case EFIDP_MEDIA_RAMDISK: { struct { efi_guid_t guid; char label[40]; } subtypes[] = { { EFIDP_VIRTUAL_DISK_GUID, "VirtualDisk" }, { EFIDP_VIRTUAL_CD_GUID, "VirtualCD" }, { EFIDP_PERSISTENT_VIRTUAL_DISK_GUID, "PersistentVirtualDisk" }, { EFIDP_PERSISTENT_VIRTUAL_CD_GUID, "PersistentVirtualCD" }, { efi_guid_empty, "" } }; char *label = NULL; for (int i = 0; !efi_guid_is_zero(&subtypes[i].guid); i++) { if (efi_guid_cmp(&subtypes[i].guid, &dp->ramdisk.disk_type_guid)) continue; label = subtypes[i].label; break; } if (label) { format(buf, size, off, label, "%s(0x%"PRIx64",0x%"PRIx64",%d)", label, dp->ramdisk.start_addr, dp->ramdisk.end_addr, dp->ramdisk.instance_number); break; } format(buf, size, off, "Ramdisk", "Ramdisk(0x%"PRIx64",0x%"PRIx64",%d,", dp->ramdisk.start_addr, dp->ramdisk.end_addr, dp->ramdisk.instance_number); format_guid(buf, size, off, "Ramdisk", &dp->ramdisk.disk_type_guid); format(buf, size, off, "Ramdisk", ")"); break; } default: format(buf, size, off, "Media", "MediaPath(%d,", dp->subtype); format_hex(buf, size, off, "Media", (uint8_t *)dp+4, (efidp_node_size(dp)-4) / 2); format(buf,size,off, "Media",")"); break; } return off; } ssize_t PUBLIC efidp_make_file(uint8_t *buf, ssize_t size, char *filepath) { efidp_file *file = (efidp_file *)buf; unsigned char *lf = (unsigned char *)filepath; ssize_t sz; ssize_t len = utf8len(lf, -1) + 1; ssize_t req = sizeof (*file) + len * sizeof (uint16_t); if (len == 0) { errno = EINVAL; efi_error("%s() called with %s file path", __func__, filepath == NULL ? "NULL" : "empty"); return -1; } sz = efidp_make_generic(buf, size, EFIDP_MEDIA_TYPE, EFIDP_MEDIA_FILE, req); if (size && sz == req) { memset(buf+4, 0, req-4); utf8_to_ucs2(file->name, req-4, 1, lf); } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_hd(uint8_t *buf, ssize_t size, uint32_t num, uint64_t part_start, uint64_t part_size, uint8_t *signature, uint8_t format, uint8_t signature_type) { efidp_hd *hd = (efidp_hd *)buf; ssize_t sz; ssize_t req = sizeof (*hd); sz = efidp_make_generic(buf, size, EFIDP_MEDIA_TYPE, EFIDP_MEDIA_HD, req); if (size && sz == req) { hd->partition_number = num; hd->start = part_start; hd->size = part_size; if (signature) memcpy(hd->signature, signature, sizeof (hd->signature)); hd->format = format; hd->signature_type = signature_type; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/dp-message.c000066400000000000000000000563441455652431600155720ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2015 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include "efivar.h" static ssize_t format_ipv4_addr_helper(unsigned char *buf, size_t size, const char *dp_type, const uint8_t *ipaddr, int32_t port) { ssize_t off = 0; format(buf, size, off, dp_type, "%hhu.%hhu.%hhu.%hhu", ipaddr[0], ipaddr[1], ipaddr[2], ipaddr[3]); if (port > 0) format(buf, size, off, dp_type, ":%hu", (uint16_t)port); return off; } static ssize_t format_ipv6_addr_helper(unsigned char *buf, size_t size, const char *dp_type, const uint8_t *ipaddr, int32_t port) { uint16_t *ip = (uint16_t *)ipaddr; ssize_t off = 0; format(buf, size, off, dp_type, "["); // deciding how to print an ipv6 ip requires 2 passes, because // RFC5952 says we have to use :: a) only once and b) to maximum effect. int largest_zero_block_size = 0; int largest_zero_block_offset = -1; int this_zero_block_size = 0; int this_zero_block_offset = -1; int in_zero_block = 0; int i; for (i = 0; i < 8; i++) { if (ip[i] != 0 && in_zero_block) { if (this_zero_block_size > largest_zero_block_size) { largest_zero_block_size = this_zero_block_size; largest_zero_block_offset = this_zero_block_offset; this_zero_block_size = 0; this_zero_block_offset = -1; in_zero_block = 0; } } if (ip[i] == 0) { if (in_zero_block == 0) { in_zero_block = 1; this_zero_block_offset = i; } this_zero_block_size++; } } if (this_zero_block_size > largest_zero_block_size) { largest_zero_block_size = this_zero_block_size; largest_zero_block_offset = this_zero_block_offset; /* * clang-analyzer hates these because they're the last use, * and they don't believe in writing code so that bugs won't * be introduced later... */ #if 0 this_zero_block_size = 0; this_zero_block_offset = -1; in_zero_block = 0; #endif } if (largest_zero_block_size == 1) largest_zero_block_offset = -1; for (i = 0; i < 8; i++) { if (largest_zero_block_offset == i) { format(buf, size, off, dp_type, "::"); i += largest_zero_block_size -1; continue; } else if (i > 0) { format(buf, size, off, dp_type, ":"); } format(buf, size, off, dp_type, "%x", ip[i]); } format(buf, size, off, dp_type, "]"); if (port > 0) format(buf, size, off, dp_type, ":%hu", (uint16_t)port); return off; } #define format_ip_protocol(buf, size, off, dp_type, proto) \ ({ \ switch(proto) { \ case 6: \ format(buf, size, off, dp_type, "TCP"); \ break; \ case 17: \ format(buf, size, off, dp_type, "UDP"); \ break; \ default: \ format(buf, size, off, dp_type, "%u", proto); \ break; \ } \ }) #define format_ipv4_addr(buf, size, off, addr, port) \ format_helper(format_ipv4_addr_helper, buf, size, off, \ "IPv4", addr, port) #define format_ipv6_addr(buf, size, off, addr, port) \ format_helper(format_ipv6_addr_helper, buf, size, off, \ "IPv6", addr, port) static ssize_t format_ip_addr_helper(unsigned char *buf, size_t size, const char *dp_type UNUSED, int is_ipv6, const efi_ip_addr_t *addr) { ssize_t off = 0; if (is_ipv6) format_helper(format_ipv6_addr_helper, buf, size, off, "IPv6", (const uint8_t *)&addr->v6, -1); else format_helper(format_ipv4_addr_helper, buf, size, off, "IPv4", (const uint8_t *)&addr->v4, -1); return off; } #define format_ip_addr(buf, size, off, dp_type, is_ipv6, addr) \ format_helper(format_ip_addr_helper, buf, size, off, \ dp_type, is_ipv6, addr) static ssize_t format_uart(unsigned char *buf, size_t size, const char *dp_type UNUSED, const_efidp dp) { uint32_t value; ssize_t off = 0; char *labels[] = {"None", "Hardware", "XonXoff", ""}; value = dp->uart_flow_control.flow_control_map; if (value > 2) { format(buf, size, off, "UartFlowControl", "UartFlowControl(%d)", value); return off; } format(buf, size, off, "UartFlowControl", "UartFlowControl(%s)", labels[value]); return off; } static ssize_t format_sas(unsigned char *buf, size_t size, const char *dp_type UNUSED, const_efidp dp) { ssize_t off = 0; const efidp_sas * const s = &dp->sas; int more_info = 0; int sassata = 0; int location = 0; int connect = 0; int drive_bay = -1; const char * const sassata_label[] = {"NoTopology", "SAS", "SATA"}; const char * const location_label[] = {"Internal", "External" }; const char * const connect_label[] = {"Direct", "Expanded" }; more_info = s->device_topology_info & EFIDP_SAS_TOPOLOGY_MASK; if (more_info) { sassata = (s->device_topology_info & EFIDP_SAS_DEVICE_MASK) >> EFIDP_SAS_DEVICE_SHIFT; if (sassata == EFIDP_SAS_DEVICE_SATA_EXTERNAL || sassata == EFIDP_SAS_DEVICE_SAS_EXTERNAL) location = 1; if (sassata == EFIDP_SAS_DEVICE_SAS_INTERNAL || sassata == EFIDP_SAS_DEVICE_SATA_INTERNAL) sassata = 1; else sassata = 2; connect = (s->device_topology_info & EFIDP_SAS_CONNECT_MASK) >> EFIDP_SAS_CONNECT_SHIFT; if (more_info == EFIDP_SAS_TOPOLOGY_NEXTBYTE) drive_bay = s->drive_bay_id + 1; } format(buf, size, off, "SAS", "SAS(%"PRIx64",%"PRIx64",%"PRIx16",%s", dp->subtype == EFIDP_MSG_SAS_EX ? be64_to_cpu(s->sas_address) : le64_to_cpu(s->sas_address), dp->subtype == EFIDP_MSG_SAS_EX ? be64_to_cpu(s->lun) : le64_to_cpu(s->lun), s->rtp, sassata_label[sassata]); if (more_info) { format(buf, size, off, "SAS", ",%s,%s", location_label[location], connect_label[connect]); } if (more_info == 2 && drive_bay >= 0) { format(buf, size, off, "SAS", ",%d", drive_bay); } format(buf, size, off, "SAS", ")"); return off; } #define class_helper(buf, size, off, label, dp) \ format(buf, size, off, label, \ "%s(0x%"PRIx16",0x%"PRIx16",%d,%d)", \ label, \ dp->usb_class.vendor_id, \ dp->usb_class.product_id, \ dp->usb_class.device_subclass, \ dp->usb_class.device_protocol) static ssize_t format_usb_class(unsigned char *buf, size_t size, const char *dp_type UNUSED, const_efidp dp) { ssize_t off = 0; switch (dp->usb_class.device_class) { case EFIDP_USB_CLASS_AUDIO: class_helper(buf, size, off, "UsbAudio", dp); break; case EFIDP_USB_CLASS_CDC_CONTROL: class_helper(buf, size, off, "UsbCDCControl", dp); break; case EFIDP_USB_CLASS_HID: class_helper(buf, size, off, "UsbHID", dp); break; case EFIDP_USB_CLASS_IMAGE: class_helper(buf, size, off, "UsbImage", dp); break; case EFIDP_USB_CLASS_PRINTER: class_helper(buf, size, off, "UsbPrinter", dp); break; case EFIDP_USB_CLASS_MASS_STORAGE: class_helper(buf, size, off, "UsbMassStorage", dp); break; case EFIDP_USB_CLASS_HUB: class_helper(buf, size, off, "UsbHub", dp); break; case EFIDP_USB_CLASS_CDC_DATA: class_helper(buf, size, off, "UsbCDCData", dp); break; case EFIDP_USB_CLASS_SMARTCARD: class_helper(buf, size, off, "UsbSmartCard", dp); break; case EFIDP_USB_CLASS_VIDEO: class_helper(buf, size, off, "UsbVideo", dp); break; case EFIDP_USB_CLASS_DIAGNOSTIC: class_helper(buf, size, off, "UsbDiagnostic", dp); break; case EFIDP_USB_CLASS_WIRELESS: class_helper(buf, size, off, "UsbWireless", dp); break; case EFIDP_USB_CLASS_254: switch (dp->usb_class.device_subclass) { case EFIDP_USB_SUBCLASS_FW_UPDATE: format(buf, size, off, "UsbDeviceFirmwareUpdate", "UsbDeviceFirmwareUpdate(0x%"PRIx16",0x%"PRIx16",%d)", dp->usb_class.vendor_id, dp->usb_class.product_id, dp->usb_class.device_protocol); break; case EFIDP_USB_SUBCLASS_IRDA_BRIDGE: format(buf, size, off, "UsbIrdaBridge", "UsbIrdaBridge(0x%"PRIx16",0x%"PRIx16",%d)", dp->usb_class.vendor_id, dp->usb_class.product_id, dp->usb_class.device_protocol); break; case EFIDP_USB_SUBCLASS_TEST_AND_MEASURE: format(buf, size, off, "UsbTestAndMeasurement", "UsbTestAndMeasurement(0x%"PRIx16",0x%"PRIx16",%d)", dp->usb_class.vendor_id, dp->usb_class.product_id, dp->usb_class.device_protocol); break; } break; default: format(buf, size, off, "UsbClass", "UsbClass(%"PRIx16",%"PRIx16",%d,%d)", dp->usb_class.vendor_id, dp->usb_class.product_id, dp->usb_class.device_subclass, dp->usb_class.device_protocol); break; } return off; } ssize_t _format_message_dn(unsigned char *buf, size_t size, const_efidp dp) { ssize_t off = 0; switch (dp->subtype) { case EFIDP_MSG_ATAPI: format(buf, size, off, "Ata", "Ata(%d,%d,%d)", dp->atapi.primary, dp->atapi.slave, dp->atapi.lun); break; case EFIDP_MSG_SCSI: format(buf, size, off, "SCSI", "SCSI(%d,%d)", dp->scsi.target, dp->scsi.lun); break; case EFIDP_MSG_FIBRECHANNEL: format(buf, size, off, "Fibre", "Fibre(%"PRIx64",%"PRIx64")", le64_to_cpu(dp->fc.wwn), le64_to_cpu(dp->fc.lun)); break; case EFIDP_MSG_FIBRECHANNELEX: format(buf, size, off, "Fibre", "Fibre(%"PRIx64",%"PRIx64")", be64_to_cpu(dp->fc.wwn), be64_to_cpu(dp->fc.lun)); break; case EFIDP_MSG_1394: format(buf, size, off, "I1394", "I1394(0x%"PRIx64")", dp->firewire.guid); break; case EFIDP_MSG_USB: format(buf, size, off, "USB", "USB(%d,%d)", dp->usb.parent_port, dp->usb.interface); break; case EFIDP_MSG_I2O: format(buf, size, off, "I2O", "I2O(%d)", dp->i2o.target); break; case EFIDP_MSG_INFINIBAND: format(buf, size, off, "Infiniband", "Infiniband(%08x,%"PRIx64"%"PRIx64",%"PRIx64",%"PRIu64",%"PRIu64")", dp->infiniband.resource_flags, dp->infiniband.port_gid[1], dp->infiniband.port_gid[0], dp->infiniband.ioc_guid, dp->infiniband.target_port_id, dp->infiniband.device_id); break; case EFIDP_MSG_MAC_ADDR: format(buf, size, off, "MAC", "MAC("); format_hex(buf, size, off, "MAC", dp->mac_addr.mac_addr, dp->mac_addr.if_type < 2 ? 6 : sizeof(dp->mac_addr.mac_addr)); format(buf, size, off, "MAC", ",%d)", dp->mac_addr.if_type); break; case EFIDP_MSG_IPv4: { efidp_ipv4_addr const *a = &dp->ipv4_addr; format(buf, size, off, "IPv4", "IPv4("); format_ipv4_addr(buf, size, off, a->remote_ipv4_addr, a->remote_port); format(buf, size, off, "IPv4", ","); format_ip_protocol(buf, size, off, "IPv4", a->protocol); format(buf, size, off, "IPv4", ",%s,", a->static_ip_addr ?"Static" :"DHCP"); format_ipv4_addr(buf, size, off, a->local_ipv4_addr, a->local_port); format(buf, size, off, "IPv4", ","); format_ipv4_addr(buf, size, off, a->gateway, 0); format(buf, size, off, "IPv4", ","); format_ipv4_addr(buf, size, off, a->netmask, 0); format(buf, size, off, "IPv4", ")"); break; } case EFIDP_MSG_VENDOR: { struct { efi_guid_t guid; char label[40]; ssize_t (*formatter)(unsigned char *buf, size_t size, const char *dp_type UNUSED, const_efidp dp); } subtypes[] = { { .guid = EFIDP_PC_ANSI_GUID, .label = "VenPcAnsi" }, { .guid = EFIDP_VT_100_GUID, .label = "VenVt100" }, { .guid = EFIDP_VT_100_PLUS_GUID, .label = "VenVt100Plus" }, { .guid = EFIDP_VT_UTF8_GUID, .label = "VenUtf8" }, { .guid = EFIDP_MSG_DEBUGPORT_GUID, .label = "DebugPort" }, { .guid = EFIDP_MSG_UART_GUID, .label = "", .formatter = format_uart }, { .guid = EFIDP_MSG_SAS_GUID, .label = "", .formatter = format_sas }, { .guid = efi_guid_empty, .label = "" } }; char *label = NULL; ssize_t (*formatter)(unsigned char *buf, size_t size, const char *dp_type UNUSED, const_efidp dp) = NULL; for (int i = 0; !efi_guid_is_zero(&subtypes[i].guid); i++) { if (efi_guid_cmp(&subtypes[i].guid, &dp->msg_vendor.vendor_guid)) continue; if (subtypes[i].label[0]) label = subtypes[i].label; formatter = subtypes[i].formatter; break; } if (!label && !formatter) { format_vendor(buf, size, off, "VenMsg", dp); break; } else if (!label && formatter) { format_helper(formatter, buf, size, off, "VenMsg", dp); break; } format(buf, size, off, label, "%s(", label); if (efidp_node_size(dp) > (ssize_t)(sizeof (efidp_header) + sizeof (efi_guid_t))) { format_hex(buf, size, off, label, dp->msg_vendor.vendor_data, efidp_node_size(dp) - sizeof (efidp_header) - sizeof (efi_guid_t)); } format(buf, size, off, label, ")"); break; } case EFIDP_MSG_IPv6: { efidp_ipv6_addr const *a = &dp->ipv6_addr; format(buf, size, off, "IPv6", "IPv6("); format_ipv6_addr(buf, size, off, a->remote_ipv6_addr, a->remote_port); format(buf, size, off, "IPv6",","); format_ip_protocol(buf, size, off, "IPv6", a->protocol); format(buf, size, off, "IPv6",","); switch (a->ip_addr_origin) { case EFIDP_IPv6_ORIGIN_STATIC: format(buf, size, off, "IPv6", "Static,"); break; case EFIDP_IPv6_ORIGIN_AUTOCONF: format(buf, size, off, "IPv6", "StatelessAutoConfigure,"); break; case EFIDP_IPv6_ORIGIN_STATEFUL: format(buf, size, off, "IPv6", "StatefulAutoConfigure,"); break; default: format(buf, size, off, "IPv6", "0x%hx,", a->ip_addr_origin); break; } format_ipv6_addr(buf, size, off, a->local_ipv6_addr, a->local_port); format(buf, size, off, "IPv6",","); format_ipv6_addr(buf, size, off, a->gateway_ipv6_addr, 0); format(buf, size, off, "IPv6",",%u)", a->prefix_length); break; } case EFIDP_MSG_UART: { int parity = dp->uart.parity; char parity_label[] = "DNEOMS"; int stop_bits = dp->uart.stop_bits; char *sb_label[] = {"D", "1", "1.5", "2"}; format(buf, size, off, "Uart", "Uart(%"PRIu64",%d,", dp->uart.baud_rate ? dp->uart.baud_rate : 115200, dp->uart.data_bits ? dp->uart.data_bits : 8); format(buf, size, off, "Uart", parity > 5 ? "%d," : "%c,", parity > 5 ? parity : parity_label[parity]); if (stop_bits > 3) format(buf, size, off, "Uart", "%d)", stop_bits); else format(buf, size, off, "Uart", "%s)", sb_label[stop_bits]); break; } case EFIDP_MSG_USB_CLASS: format_helper(format_usb_class, buf, size, off, "UsbClass", dp); break; case EFIDP_MSG_USB_WWID: { size_t limit = (efidp_node_size(dp) - offsetof(efidp_usb_wwid, serial_number)) / 2; format(buf, size, off, "UsbWwid", "UsbWwid(%"PRIx16",%"PRIx16",%d,", dp->usb_wwid.vendor_id, dp->usb_wwid.product_id, dp->usb_wwid.interface); format_ucs2(buf, size, off, "UsbWwid", dp->usb_wwid.serial_number, limit); format(buf, size, off, "UsbWwid", ")"); break; } case EFIDP_MSG_LUN: format(buf, size, off, "Unit", "Unit(%d)", dp->lun.lun); break; case EFIDP_MSG_SATA: format(buf, size, off, "Sata", "Sata(%d,%d,%d)", dp->sata.hba_port, dp->sata.port_multiplier_port, dp->sata.lun); break; case EFIDP_MSG_ISCSI: { ssize_t sz = efidp_node_size(dp) - offsetof(efidp_iscsi, target_name); if (sz < 0) { efi_error("bad DP node size"); return -1; } if (sz > EFIDP_ISCSI_MAX_TARGET_NAME_LEN) sz = EFIDP_ISCSI_MAX_TARGET_NAME_LEN; char target_name[sz + 1]; memcpy(target_name, dp->iscsi.target_name, sz); target_name[sz] = '\0'; uint64_t lun; memcpy(&lun, dp->iscsi.lun, sizeof (lun)); format(buf, size, off, "iSCSI", "iSCSI(%s,%d,0x%"PRIx64",%s,%s,%s,%s)", target_name, dp->iscsi.tpgt, be64_to_cpu(lun), (dp->iscsi.options >> EFIDP_ISCSI_HEADER_DIGEST_SHIFT) & EFIDP_ISCSI_HEADER_CRC32 ? "CRC32" : "None", (dp->iscsi.options >> EFIDP_ISCSI_DATA_DIGEST_SHIFT) & EFIDP_ISCSI_DATA_CRC32 ? "CRC32" : "None", (dp->iscsi.options >> EFIDP_ISCSI_AUTH_SHIFT) & EFIDP_ISCSI_AUTH_NONE ? "None" : \ (dp->iscsi.options >> EFIDP_ISCSI_CHAP_SHIFT) & EFIDP_ISCSI_CHAP_UNI ? "CHAP_UNI" : "CHAP_BI", dp->iscsi.protocol == 0 ? "TCP" : "Unknown"); break; } case EFIDP_MSG_VLAN: format(buf, size, off, "Vlan", "Vlan(%d)", dp->vlan.vlan_id); break; case EFIDP_MSG_SAS_EX: format_sas(buf, size, NULL, dp); break; case EFIDP_MSG_NVME: format(buf, size, off, "NVMe", "NVMe(0x%"PRIx32"," "%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X)", dp->nvme.namespace_id, dp->nvme.ieee_eui_64[0], dp->nvme.ieee_eui_64[1], dp->nvme.ieee_eui_64[2], dp->nvme.ieee_eui_64[3], dp->nvme.ieee_eui_64[4], dp->nvme.ieee_eui_64[5], dp->nvme.ieee_eui_64[6], dp->nvme.ieee_eui_64[7]); break; case EFIDP_MSG_URI: { ssize_t sz = efidp_node_size(dp) - offsetof(efidp_uri, uri); if (sz < 0) { efi_error("bad DP node size"); return -1; } char uri[sz + 1]; memcpy(uri, dp->uri.uri, sz); uri[sz] = '\0'; format(buf, size, off, "Uri", "Uri(%s)", uri); break; } case EFIDP_MSG_UFS: format(buf, size, off, "UFS", "UFS(%d,0x%02x)", dp->ufs.target_id, dp->ufs.lun); break; case EFIDP_MSG_SD: format(buf, size, off, "SD", "SD(%d)", dp->sd.slot_number); break; case EFIDP_MSG_BT: format(buf, size, off, "Bluetooth", "Bluetooth("); format_hex_separated(buf, size, off, "Bluetooth", ":", 1, dp->bt.addr, sizeof(dp->bt.addr)); format(buf, size, off, "Bluetooth", ")"); break; case EFIDP_MSG_WIFI: format(buf, size, off, "Wi-Fi", "Wi-Fi("); format_hex_separated(buf, size, off, "Wi-Fi", ":", 1, dp->wifi.ssid, sizeof(dp->wifi.ssid)); format(buf, size, off, "Wi-Fi", ")"); break; case EFIDP_MSG_EMMC: format(buf, size, off, "eMMC", "eMMC(%d)", dp->emmc.slot); break; case EFIDP_MSG_BTLE: format(buf, size, off, "BluetoothLE", "BluetoothLE("); format_hex_separated(buf, size, off, "BluetoothLE", ":", 1, dp->btle.addr, sizeof(dp->btle.addr)); format(buf, size, off, "BluetoothLE", ",%d)", dp->btle.addr_type); break; case EFIDP_MSG_DNS: { int end = (efidp_node_size(dp) - sizeof(dp->dns.header) - sizeof(dp->dns.is_ipv6) ) / sizeof(efi_ip_addr_t); format(buf, size, off, "Dns", "Dns("); for (int i=0; i < end; i++) { efi_ip_addr_t addr; memcpy(&addr, &dp->dns.addrs[i], sizeof(addr)); if (i != 0) format(buf, size, off, "Dns", ","); format_ip_addr(buf, size, off, "Dns", dp->dns.is_ipv6, &addr); } format(buf, size, off, "Dns", ")"); break; } case EFIDP_MSG_NVDIMM: format(buf, size, off, "NVDIMM", "NVDIMM("); format_guid(buf, size, off, "NVDIMM", &dp->nvdimm.uuid); format(buf, size, off, "NVDIMM", ")"); break; default: format(buf, size, off, "Msg", "Msg(%d,", dp->subtype); format_hex(buf, size, off, "Msg", (uint8_t *)dp+4, efidp_node_size(dp)-4); format(buf, size, off, "Msg", ")"); break; } return off; } ssize_t PUBLIC efidp_make_mac_addr(uint8_t *buf, ssize_t size, uint8_t if_type, const uint8_t * const mac_addr, ssize_t mac_addr_size) { efidp_mac_addr *mac = (efidp_mac_addr *)buf; ssize_t sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_MAC_ADDR, sizeof (*mac)); ssize_t req = sizeof (*mac); if (size && sz == req) { mac->if_type = if_type; memcpy(mac->mac_addr, mac_addr, mac_addr_size > 32 ? 32 : mac_addr_size); } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_ipv4(uint8_t *buf, ssize_t size, uint32_t local, uint32_t remote, uint32_t gateway, uint32_t netmask, uint16_t local_port, uint16_t remote_port, uint16_t protocol, int is_static) { efidp_ipv4_addr *ipv4 = (efidp_ipv4_addr *)buf; ssize_t sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_IPv4, sizeof (*ipv4)); ssize_t req = sizeof (*ipv4); if (size && sz == req) { *((uint32_t *)ipv4->local_ipv4_addr) = htonl(local); *((uint32_t *)ipv4->remote_ipv4_addr) = htonl(remote); ipv4->local_port = htons(local_port); ipv4->remote_port = htons(remote_port); ipv4->protocol = htons(protocol); ipv4->static_ip_addr = 0; if (is_static) ipv4->static_ip_addr = 1; *((uint32_t *)ipv4->gateway) = htonl(gateway); *((uint32_t *)ipv4->netmask) = htonl(netmask); } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_scsi(uint8_t *buf, ssize_t size, uint16_t target, uint16_t lun) { efidp_scsi *scsi = (efidp_scsi *)buf; ssize_t req = sizeof (*scsi); ssize_t sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_SCSI, sizeof (*scsi)); if (size && sz == req) { scsi->target = target; scsi->lun = lun; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_nvme(uint8_t *buf, ssize_t size, uint32_t namespace_id, uint8_t *ieee_eui_64) { efidp_nvme *nvme = (efidp_nvme *)buf; ssize_t req = sizeof (*nvme); ssize_t sz; sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_NVME, sizeof (*nvme)); if (size && sz == req) { nvme->namespace_id = namespace_id; if (ieee_eui_64) memcpy(nvme->ieee_eui_64, ieee_eui_64, sizeof (nvme->ieee_eui_64)); else memset(nvme->ieee_eui_64, '\0', sizeof (nvme->ieee_eui_64)); } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_sata(uint8_t *buf, ssize_t size, uint16_t hba_port, int16_t port_multiplier_port, uint16_t lun) { efidp_sata *sata = (efidp_sata *)buf; ssize_t req = sizeof (*sata); ssize_t sz; sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_SATA, sizeof (*sata)); if (size && sz == req) { sata->hba_port = hba_port; sata->port_multiplier_port = port_multiplier_port; sata->lun = lun; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_atapi(uint8_t *buf, ssize_t size, uint16_t primary, uint16_t slave, uint16_t lun) { efidp_atapi *atapi = (efidp_atapi *)buf; ssize_t req = sizeof (*atapi); ssize_t sz; sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_ATAPI, sizeof (*atapi)); if (size && sz == req) { atapi->primary = primary; atapi->slave = slave; atapi->lun = lun; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_sas(uint8_t *buf, ssize_t size, uint64_t sas_address) { efidp_sas *sas = (efidp_sas *)buf; ssize_t req = sizeof (*sas); ssize_t sz; sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_VENDOR, sizeof (*sas)); if (size && sz == req) { sas->vendor_guid = EFIDP_MSG_SAS_GUID; sas->reserved = 0; sas->sas_address = sas_address; sas->lun = 0; sas->device_topology_info = 0; sas->drive_bay_id = 0; sas->rtp = 0; } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_nvdimm(uint8_t *buf, ssize_t size, efi_guid_t *uuid) { efidp_nvdimm *nvdimm = (efidp_nvdimm *)buf; ssize_t req = sizeof (*nvdimm); ssize_t sz; sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_NVDIMM, sizeof (*nvdimm)); if (size && sz == req) { memcpy(&nvdimm->uuid, uuid, sizeof(*uuid)); } if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } ssize_t PUBLIC efidp_make_emmc(uint8_t *buf, ssize_t size, uint32_t slot_id) { efidp_emmc *emmc = (efidp_emmc *)buf; ssize_t req = sizeof (*emmc); ssize_t sz; sz = efidp_make_generic(buf, size, EFIDP_MESSAGE_TYPE, EFIDP_MSG_NVME, sizeof (*emmc)); if (size && sz == req) emmc->slot = slot_id; if (sz < 0) efi_error("efidp_make_generic failed"); return sz; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/dp.c000066400000000000000000000214331455652431600141370ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2015 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include "efivar.h" static const efidp_header end_entire = { .type = EFIDP_END_TYPE, .subtype = EFIDP_END_ENTIRE, .length = 4 }; static inline void * efidp_data_address(const_efidp dp) { if (dp->length <= 4) { errno = ENOSPC; efi_error("DP was smaller than DP header"); return NULL; } return (void *)((uint8_t *)dp + sizeof (dp)); } int PUBLIC efidp_set_node_data(const_efidp dn, void *buf, size_t bufsize) { if (dn->length < 4 || bufsize > (size_t)dn->length - 4) { errno = ENOSPC; efi_error("DP was smaller than DP header"); return -1; } void *data = efidp_data_address(dn); if (!data) { efi_error("efidp_data_address failed"); return -1; } memcpy(data, buf, bufsize); return 0; } static inline int efidp_duplicate_extra(const_efidp dp, efidp *out, size_t extra) { ssize_t sz; ssize_t plus; efidp new; sz = efidp_size(dp); if (sz < 0) { efi_error("efidp_size(dp) returned error"); return sz; } if (ADD(sz, extra, &plus)) { errno = EOVERFLOW; efi_error("arithmetic overflow computing allocation size"); return -1; } if (plus < (ssize_t)sizeof(efidp_header)) { errno = EINVAL; efi_error("allocation for new device path is smaller than device path header."); return -1; } new = calloc(1, plus); if (!new) { efi_error("allocation failed"); return -1; } memcpy(new, dp, sz); *out = new; return 0; } int PUBLIC efidp_duplicate_path(const_efidp dp, efidp *out) { int rc; rc = efidp_duplicate_extra(dp, out, 0); if (rc < 0) efi_error("efi_duplicate_extra(dp, out, 0) returned error"); return rc; } int PUBLIC efidp_append_path(const_efidp dp0, const_efidp dp1, efidp *out) { ssize_t lsz, rsz, newsz = 0; const_efidp le; int rc; if (!dp0 && !dp1) { rc = efidp_duplicate_path((const_efidp)&end_entire, out); if (rc < 0) efi_error("efidp_duplicate_path failed"); return rc; } if (dp0 && !dp1) { rc = efidp_duplicate_path(dp0, out); if (rc < 0) efi_error("efidp_duplicate_path failed"); return rc; } if (!dp0 && dp1) { rc = efidp_duplicate_path(dp1, out); if (rc < 0) efi_error("efidp_duplicate_path failed"); return rc; } lsz = efidp_size(dp0); if (lsz < 0) { efi_error("efidp_size(dp0) returned error"); return -1; } rsz = efidp_size(dp1); if (rsz < 0) { efi_error("efidp_size(dp1) returned error"); return -1; } le = dp0; while (1) { if (efidp_type(le) == EFIDP_END_TYPE && efidp_subtype(le) == EFIDP_END_ENTIRE) { ssize_t lesz = efidp_size(le); lsz -= lesz; break; } rc = efidp_get_next_end(le, &le); if (rc < 0) { efi_error("efidp_get_next_end() returned error"); return -1; } } efidp new; if (ADD(lsz, rsz, &newsz)) { errno = EOVERFLOW; efi_error("arithmetic overflow computing allocation size"); return -1; } if (newsz < (ssize_t)sizeof(efidp_header)) { errno = EINVAL; efi_error("allocation for new device path is smaller than device path header."); return -1; } new = malloc(newsz); if (!new) { efi_error("allocation failed"); return -1; } *out = new; memcpy(new, dp0, lsz); memcpy((uint8_t *)new + lsz, dp1, rsz); return 0; } int PUBLIC efidp_append_node(const_efidp dp, const_efidp dn, efidp *out) { ssize_t lsz = 0, rsz = 0, newsz; int rc; if (dp) { lsz = efidp_size(dp); if (lsz < 0) { efi_error("efidp_size(dp) returned error"); return -1; } const_efidp le; le = dp; while (1) { if (efidp_type(le) == EFIDP_END_TYPE && efidp_subtype(le) == EFIDP_END_ENTIRE) { ssize_t lesz = efidp_size(le); lsz -= lesz; break; } rc = efidp_get_next_end(le, &le); if (rc < 0) { efi_error("efidp_get_next_end() returned error"); return -1; } } } if (dn) { rsz = efidp_node_size(dn); if (rsz < 0) { efi_error("efidp_size(dn) returned error"); return -1; } } if (ADD(lsz, rsz, &newsz) || ADD(newsz, sizeof(end_entire), &newsz)) { errno = EOVERFLOW; efi_error("arithmetic overflow computing allocation size"); return -1; } efidp new = malloc(newsz); if (!new) { efi_error("allocation failed"); return -1; } *out = new; if (dp) memcpy(new, dp, lsz); if (dn) memcpy((uint8_t *)new + lsz, dn, rsz); memcpy((uint8_t *)new + lsz + rsz, &end_entire, sizeof (end_entire)); return 0; } int PUBLIC efidp_append_instance(const_efidp dp, const_efidp dpi, efidp *out) { ssize_t lsz, rsz; int rc; if (!dp && !dpi) { errno = EINVAL; return -1; } if (!dp && dpi) return efidp_duplicate_path(dpi, out); lsz = efidp_size(dp); if (lsz < 0) return -1; rsz = efidp_node_size(dpi); if (rsz < 0) return -1; efidp le; le = (efidp)dp; while (1) { if (le->type == EFIDP_END_TYPE && le->subtype == EFIDP_END_ENTIRE) break; rc = efidp_get_next_end(le, (const_efidp *)&le); if (rc < 0) return -1; } le->subtype = EFIDP_END_INSTANCE; efidp new = malloc(lsz + rsz + sizeof (end_entire)); if (!new) return -1; *out = new; memcpy(new, dp, lsz); memcpy((uint8_t *)new + lsz, dpi, rsz); return 0; } ssize_t PUBLIC efidp_format_device_path(unsigned char *buf, size_t size, const_efidp dp, ssize_t limit) { ssize_t off = 0; int first = 1; if (!dp) return -1; if (buf && size) memset(buf, 0, size); while (limit) { if (limit >= 0 && (limit < 4 || efidp_node_size(dp) > limit)) { if (off) return off; else return -1; } if (first) { first = 0; } else { if (dp->type == EFIDP_END_TYPE) { if (dp->type == EFIDP_END_INSTANCE) { format(buf, size, off, "\b", ","); } else { return off+1; } } else { format(buf, size, off, "\b", "/"); } } switch (dp->type) { case EFIDP_HARDWARE_TYPE: format_hw_dn(buf, size, off, dp); break; case EFIDP_ACPI_TYPE: format_acpi_dn(buf, size, off, dp); break; case EFIDP_MESSAGE_TYPE: format_message_dn(buf, size, off, dp); break; case EFIDP_MEDIA_TYPE: format_media_dn(buf, size, off, dp); break; case EFIDP_BIOS_BOOT_TYPE: { char *types[] = {"", "Floppy", "HD", "CDROM", "PCMCIA", "USB", "Network", "" }; if (dp->subtype != EFIDP_BIOS_BOOT) { format(buf, size, off, "BbsPath", "BbsPath(%d,", dp->subtype); format_hex(buf, size, off, "BbsPath", (uint8_t *)dp+4, efidp_node_size(dp)-4); format(buf, size, off, "BbsPath", ")"); break; } if (dp->bios_boot.device_type > 0 && dp->bios_boot.device_type < 7) { format(buf, size, off, "BBS", "BBS(%s,%s,0x%"PRIx32")", types[dp->bios_boot.device_type], dp->bios_boot.description, dp->bios_boot.status); } else { format(buf, size, off, "BBS", "BBS(%d,%s,0x%"PRIx32")", dp->bios_boot.device_type, dp->bios_boot.description, dp->bios_boot.status); } break; } case EFIDP_END_TYPE: if (dp->subtype == EFIDP_END_INSTANCE) { format(buf, size, off, "End", ","); break; } break; default: format(buf, size, off, "Path", "Path(%d,%d,", dp->type, dp->subtype); format_hex(buf, size, off, "Path", (uint8_t *)dp + 4, efidp_node_size(dp) - 4); format(buf, size, off, "Path", ")"); break; } if (limit) limit -= efidp_node_size(dp); int rc = efidp_next_node(dp, &dp); if (rc < 0) { efi_error("could not format DP"); return rc; } } return off+1; } ssize_t PUBLIC efidp_parse_device_node(unsigned char *path UNUSED, efidp out UNUSED, size_t size UNUSED) { efi_error("not implented"); errno = -ENOSYS; return -1; } ssize_t PUBLIC efidp_parse_device_path(unsigned char *path UNUSED, efidp out UNUSED, size_t size UNUSED) { efi_error("not implented"); errno = -ENOSYS; return -1; } ssize_t PUBLIC efidp_make_vendor(uint8_t *buf, ssize_t size, uint8_t type, uint8_t subtype, efi_guid_t vendor_guid, void *data, size_t data_size) { efidp_hw_vendor *vend = (efidp_hw_vendor *)buf; ssize_t sz; ssize_t req = sizeof (*vend) + data_size; sz = efidp_make_generic(buf, size, type, subtype, req); if (size && sz == req) { vend->vendor_guid = vendor_guid; memcpy(vend->vendor_data, data, data_size); } return sz; } ssize_t PUBLIC efidp_make_generic(uint8_t *buf, ssize_t size, uint8_t type, uint8_t subtype, ssize_t total_size) { efidp_header *head = (efidp_header *)buf; if (!size) return total_size; if (!buf) { errno = EINVAL; efi_error("%s was called with nonzero size and NULL buffer", __func__); return -1; } if (size < total_size) { errno = ENOSPC; efi_error("total size is bigger than size limit"); return -1; } head->type = type; head->subtype = subtype; head->length = total_size; return head->length; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/dp.h000066400000000000000000000126411455652431600141450ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2015 Red Hat, Inc. */ #ifndef _EFIVAR_INTERNAL_DP_H #define _EFIVAR_INTERNAL_DP_H #include #include #include #include #include "ucs2.h" #define format(buf, size, off, dp_type, fmt, args...) ({ \ ssize_t _insize = 0; \ void *_inbuf = NULL; \ if ((buf) != NULL && (size) > 0) { \ _inbuf = (buf) + (off); \ _insize = (size) - (off); \ } \ if ((off) >= 0 && \ ((buf == NULL && _insize == 0) || \ (buf != NULL && _insize >= 0))) { \ ssize_t _x = 0; \ _x = snprintf(_inbuf, _insize, fmt, ## args); \ if (_x < 0) { \ efi_error( \ "could not build %s DP string", \ (dp_type)); \ return _x; \ } \ (off) += _x; \ } \ off; \ }) #define format_helper(fn, buf, size, off, dp_type, args...) ({ \ ssize_t _x; \ _x = (fn)(((buf)+(off)), \ ((size)?((size)-(off)):0), dp_type, ## args); \ if (_x < 0) \ efi_error("could not build %s DP string", \ dp_type); \ (off) += _x; \ }) #define onstack(buf, len) ({ \ char *__newbuf = alloca(len); \ memcpy(__newbuf, buf, len); \ free(buf); \ (void *)__newbuf; \ }) #define format_guid(buf, size, off, dp_type, guid) ({ \ int _rc; \ char *_guidstr = NULL; \ efi_guid_t _guid; \ const efi_guid_t * const _guid_p = &_guid; \ \ memmove(&_guid, guid, sizeof(_guid)); \ _rc = efi_guid_to_str(_guid_p, &_guidstr); \ if (_rc < 0) { \ efi_error("could not build %s GUID DP string", \ dp_type); \ } else { \ _guidstr = onstack(_guidstr, \ strlen(_guidstr)+1); \ _rc = format(buf, size, off, dp_type, "%s", \ _guidstr); \ } \ _rc; \ }) static inline ssize_t UNUSED format_hex_helper(unsigned char *buf, size_t size, const char *dp_type, char *separator, int stride, const void * const addr, const size_t len) { ssize_t off = 0; for (size_t i = 0; i < len; i++) { if (i && separator && stride > 0 && i % stride == 0) format(buf, size, off, dp_type, "%s", separator); format(buf, size, off, dp_type, "%02x", *((const unsigned char * const )addr+i)); } return off; } #define format_hex(buf, size, off, dp_type, addr, len) \ format_helper(format_hex_helper, buf, size, off, dp_type, "", 0, \ addr, len) #define format_hex_separated(buf, size, off, dp_type, sep, stride, addr, len) \ format_helper(format_hex_helper, buf, size, off, dp_type, sep, stride, \ addr, len) static inline ssize_t UNUSED format_vendor_helper(unsigned char *buf, size_t size, char *label, const_efidp dp) { ssize_t off = 0; ssize_t bytes = efidp_node_size(dp) - sizeof (efidp_header) - sizeof (efi_guid_t); format(buf, size, off, label, "%s(", label); format_guid(buf, size, off, label, &dp->hw_vendor.vendor_guid); if (bytes) { format(buf, size, off, label, ","); format_hex(buf, size, off, label, dp->hw_vendor.vendor_data, bytes); } format(buf, size, off, label, ")"); return off; } #define format_vendor(buf, size, off, label, dp) \ format_helper(format_vendor_helper, buf, size, off, label, dp) #define format_ucs2(buf, size, off, dp_type, str, len) ({ \ uint16_t *_ucs2buf; \ uint32_t _ucs2size = sizeof(uint16_t) * len; \ _ucs2buf = alloca(_ucs2size); \ if (_ucs2buf == NULL || _ucs2size < sizeof(uint16_t)) \ return -1; \ memset(_ucs2buf, '\0', _ucs2size); \ memcpy(_ucs2buf, str, _ucs2size - sizeof(uint16_t)); \ unsigned char *_asciibuf; \ _asciibuf = ucs2_to_utf8(_ucs2buf, (len) - 1); \ if (_asciibuf == NULL) \ return -1; \ _asciibuf = onstack(_asciibuf, (len)); \ format(buf, size, off, dp_type, "%s", _asciibuf); \ }) #define format_array(buf, size, off, dp_type, fmt, type, addr, len) ({ \ for (size_t _i = 0; _i < len; _i++) { \ if (_i != 0) \ format(buf, size, off, dp_type, ","); \ format(buf, size, off, dp_type, fmt, \ ((type *)addr)[_i]); \ } \ off; \ }) extern ssize_t _format_hw_dn(unsigned char *buf, size_t size, const_efidp dp); extern ssize_t _format_acpi_dn(unsigned char *buf, size_t size, const_efidp dp); extern ssize_t _format_message_dn(unsigned char *buf, size_t size, const_efidp dp); extern ssize_t _format_media_dn(unsigned char *buf, size_t size, const_efidp dp); extern ssize_t _format_bios_boot_dn(unsigned char *buf, size_t size, const_efidp dp); #define format_helper_2(name, buf, size, off, dp) ({ \ ssize_t _sz; \ _sz = name(((buf)+(off)), \ ((size)?((size)-(off)):0), \ (dp)); \ if (_sz < 0) { \ efi_error("%s failed", #name); \ return -1; \ } \ (off) += _sz; \ }) #define format_hw_dn(buf, size, off, dp) \ format_helper_2(_format_hw_dn, buf, size, off, dp) #define format_acpi_dn(buf, size, off, dp) \ format_helper_2(_format_acpi_dn, buf, size, off, dp) #define format_message_dn(buf, size, off, dp) \ format_helper_2(_format_message_dn, buf, size, off, dp) #define format_media_dn(buf, size, off, dp) \ format_helper_2(_format_media_dn, buf, size, off, dp) #define format_bios_boot_dn(buf, size, off, dp) \ format_helper_2(_format_bios_boot_dn, buf, size, off, dp) #endif /* _EFIVAR_INTERNAL_DP_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/efiboot.h000066400000000000000000000004341455652431600151660ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * efiboot.h * Copyright 2018 Peter Jones */ #ifndef PRIVATE_EFIBOOT_H_ #define PRIVATE_EFIBOOT_H_ #include "efivar.h" #include #endif /* !PRIVATE_EFIBOOT_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/efiboot.pc.in000066400000000000000000000003721455652431600157470ustar00rootroot00000000000000prefix=@@PREFIX@@ exec_prefix=@@EXEC_PREFIX@@ libdir=@@LIBDIR@@ includedir=@@INCLUDEDIR@@ Name: efiboot Description: UEFI Boot variable support Version: @@VERSION@@ Requires.private: efivar Libs: -L${libdir} -lefiboot Cflags: -I${includedir}/efivar efivar-39/src/efisec.h000066400000000000000000000010661455652431600147770ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * efisec.h * Copyright 2018 Peter Jones */ #ifndef PRIVATE_EFISEC_H_ #define PRIVATE_EFISEC_H_ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include "efivar.h" #include "esl-iter.h" #include "secdb.h" #include "x509.h" #endif /* !PRIVATE_EFISEC_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/efisec.pc.in000066400000000000000000000003671455652431600155620ustar00rootroot00000000000000prefix=@@PREFIX@@ exec_prefix=@@EXEC_PREFIX@@ libdir=@@LIBDIR@@ includedir=@@INCLUDEDIR@@ Name: efisec Description: UEFI Security Features Version: @@VERSION@@ Libs: -L${libdir} -lefivar -lefisec Libs.private: -ldl Cflags: -I${includedir}/efivar efivar-39/src/efisecdb.c000066400000000000000000000327541455652431600153100ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * efisecdb.c - efi signature list management tool * Copyright Peter Jones * Copyright Red Hat, Inc. */ #include "fix_coverity.h" #include "linux.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "efisec.h" extern char *optarg; extern int optind, opterr, optopt; static efi_secdb_t *secdb = NULL; static list_t infiles; static list_t actions; struct hash_param { char *name; efi_secdb_type_t algorithm; ssize_t size; bool def; }; static struct hash_param hash_params[] = { {.name = "sha512", .algorithm = SHA512, .size = 64, .def = false, }, {.name = "sha256", .algorithm = SHA256, .size = 32, .def = true, }, {.name = "sha1", .algorithm = SHA1, .size = 20, .def = false, }, }; static int n_hash_params = sizeof(hash_params) / sizeof(hash_params[0]); static void set_hash_parameters(char *name, int *hash_number) { FILE *out; int def = -1; if (strcmp(name, "help")) { out = stderr; for (int i = 0; i < n_hash_params; i++) { if (!strcmp(name, hash_params[i].name)) { *hash_number = i; return; } } warnx("Invalid hash type \"%s\"", name); } else { out = stdout; } fprintf(out, "Supported hashes:"); for (int i = 0; i < n_hash_params; i++) { fprintf(out, " %s", hash_params[i].name); if (hash_params[i].def) def = i; } fprintf(out, "\n"); if (def >= 0) fprintf(out, "Default hash is %s\n", hash_params[def].name); exit(out == stderr); } static void secdb_warnx(const char * const fmt, ...) { va_list ap; int errnum = errno; fflush(stdout); fprintf(stderr, "%s: ", program_invocation_short_name); va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); errno = errnum; fprintf(stderr, "\n"); show_errors(); } static void NORETURN secdb_err(int status, const char * const fmt, ...) { va_list ap; int errnum = errno; fflush(stdout); fprintf(stderr, "%s: ", program_invocation_short_name); va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); errno = errnum; fprintf(stderr, ": %m\n"); show_errors(); exit(status); } static void NORETURN secdb_errx(int status, const char * const fmt, ...) { va_list ap; int errnum = errno; fflush(stdout); fprintf(stderr, "%s: ", program_invocation_short_name); va_start(ap, fmt); errno = errnum; vfprintf(stderr, fmt, ap); va_end(ap); show_errors(); exit(status); } static void NORETURN usage(int status) { fprintf(status == 0 ? stdout : stderr, "Usage: %s [OPTION...]\n" " -i, --infile= input database\n" " -o, --outfile= output database\n" " -a, --add following hashes or certs are to be added (default)\n" " -r, --remove following hashes or certs are to be removed\n" " -g, --owner-guid= following added entries use GUID as the owner\n" " -h, --hash= hash value to add (\n" " -t, --type= hash type to add (\"help\" lists options)\n" " -c, --certificate= certificate file to add\n" " -L, --list-guids list well known guids\n", program_invocation_short_name); exit(status); } typedef enum { ADD, REMOVE } action_type_t; typedef struct { list_t list; action_type_t action; efi_guid_t owner; efi_secdb_type_t algorithm; uint8_t *data; size_t datasz; } action_t; #define for_each_action(pos, head) list_for_each(pos, head) #define for_each_action_safe(pos, n, head) list_for_each_safe(pos, n, head) static void add_action(list_t *list, action_type_t action_type, const efi_guid_t *owner, efi_secdb_type_t algorithm, uint8_t *data, size_t datasz) { action_t *action; if (action_type == ADD && efi_guid_is_empty(owner)) errx(1, "no owner spefified for --add"); action = calloc(1, sizeof(action_t)); if (!action) err(1, "could not allocate memory"); action->action = action_type; action->owner = *owner; action->algorithm = algorithm; action->data = data; action->datasz = datasz; list_add_tail(&action->list, list); } static void free_actions(void) { list_t *pos, *tmp; for_each_action_safe(pos, tmp, &actions) { action_t *action = list_entry(pos, action_t, list); list_del(&action->list); xfree(action->data); free(action); } } static void free_infiles(void) { list_t *pos, *tmp; for_each_ptr_safe(pos, tmp, &infiles) { ptrlist_t *entry = list_entry(pos, ptrlist_t, list); list_del(&entry->list); free(entry); } } static void maybe_free_secdb(void) { if (secdb == NULL) return; efi_secdb_free(secdb); } static void check_hash_index(int hash_index) { if (hash_index < 0 || hash_index >= n_hash_params) errx(1, "hash type is not set"); } static void list_guids(void) { const struct efivar_guidname *guid = &efi_well_known_guids[0]; const uint64_t n = efi_n_well_known_guids; unsigned int i; debug("&guid[0]:%p n:%lu", &guid[0], n); for (i = 0; i < n; i++) { printf("{"GUID_FORMAT"}\t", GUID_FORMAT_ARGS(&guid[i].guid)); printf("{%s}\t", guid[i].name); printf("%s\t", guid[i].symbol); printf("%s\n", guid[i].description); } } /* * The return value here is the UNIX shell convention, 0 is success, > 0 is * failure. */ static int parse_input_files(list_t *infiles, efi_secdb_t **secdb, bool dump) { int status = 0; list_t *pos, *tmp; int rc; for_each_ptr_safe(pos, tmp, infiles) { int infd = -1; uint8_t *siglist = NULL; size_t siglistsz = 0; char *infile; ptrlist_t *entry = list_entry(pos, ptrlist_t, list); infile = entry->ptr; debug("adding input file %s entry:%p", infile, entry); infd = open(infile, O_RDONLY); if (infd < 0) err(1, "could not open \"%s\"", infile); rc = read_file(infd, &siglist, &siglistsz); if (rc < 0) err(1, "could not read \"%s\"", infile); siglistsz -= 1; close(infd); rc = efi_secdb_parse(siglist, siglistsz, secdb); efi_error_clear(); if (rc < 0) { /* haaaack city */ debug("*****************************"); debug(" starting over with offset 4"); debug("*****************************"); if (siglistsz > 4 && !(*(uint32_t *)siglist & ~0x7ffu)) rc = efi_secdb_parse(&siglist[4], siglistsz-4, secdb); if (rc < 0) { secdb_warnx("could not parse input file \"%s\"", infile); if (!dump) exit(1); status = 1; break; } } xfree(siglist); list_del(&entry->list); free(entry); } return status; } int main(int argc, char *argv[]) { efi_guid_t owner = efi_guid_empty; int rc; action_type_t mode = ADD; list_t *pos, *tmp; int c, i; int hash_index = -1; bool force = false; int verbose = 0; bool dump = false; bool annotate = false; bool wants_add_actions = false; bool did_list_guids = false; bool do_sort = true; bool do_sort_data = false; bool sort_descending = false; int status = 0; char *outfile = NULL; const char sopts[] = ":aAc:dfg:h:i:Lo:rs:t:v?"; const struct option lopts[] = { {"add", no_argument, NULL, 'a' }, {"annotate", no_argument, NULL, 'A' }, {"certificate", required_argument, NULL, 'c' }, {"dump", no_argument, NULL, 'd' }, {"force", no_argument, NULL, 'f' }, {"owner-guid", required_argument, NULL, 'g' }, {"hash", required_argument, NULL, 'h' }, {"infile", required_argument, NULL, 'i' }, {"list-guids", no_argument, NULL, 'L' }, {"outfile", required_argument, NULL, 'o' }, {"remove", no_argument, NULL, 'r' }, {"sort", required_argument, NULL, 's' }, {"type", required_argument, NULL, 't' }, {"verbose", no_argument, NULL, 'v' }, {"usage", no_argument, NULL, '?' }, {"help", no_argument, NULL, '?' }, {NULL, 0, NULL, '\0' } }; INIT_LIST_HEAD(&infiles); INIT_LIST_HEAD(&actions); atexit(free_actions); atexit(free_infiles); atexit(maybe_free_secdb); /* * parse the command line. * * note that we don't really process the security database inputs * here, and the cert and hash add/remove must be kept in order as * supplied. */ opterr = 0; while ((c = getopt_long(argc, argv, sopts, lopts, &i)) != -1) { uint8_t *data; ssize_t datasz; switch (c) { case 'A': dump = true; annotate = true; break; case 'a': mode = ADD; break; case 'c': if (optarg == NULL) secdb_errx(1, "--certificate requires a value"); datasz = get_file(&data, "%s", optarg); if (datasz < 0) secdb_err(1, "could not read certificate \"%s\"", optarg); datasz -= 1; // this is arbitrary but still much too small if (datasz < 16) secdb_err(1, "certificate \"%s\" is invalid", optarg); debug("%s certificate of %zd bytes", mode == ADD ? "adding" : "removing", datasz); if (mode == ADD) wants_add_actions = true; add_action(&actions, mode, &owner, X509_CERT, data, datasz); break; case 'd': dump = true; break; case 'f': force = true; break; case 'g': if (optarg == NULL) secdb_errx(1, "--owner-guid requires a value"); rc = efi_id_guid_to_guid(optarg, &owner); if (rc < 0) secdb_errx(1, "could not parse guid \"%s\"", optarg); break; case 'h': if (optarg == NULL) secdb_errx(1, "--hash requires a value"); check_hash_index(hash_index); datasz = strlen(optarg); if (datasz != hash_params[hash_index].size * 2) secdb_errx(1, "hash \"%s\" requires a %zd-bit value, but supplied value is %zd bits", hash_params[hash_index].name, hash_params[hash_index].size * 8, datasz * 4); datasz >>= 1; data = hex_to_bin(optarg, datasz); debug("%s hash %s", mode == ADD ? "adding" : "removing", optarg); if (mode == ADD) wants_add_actions = true; add_action(&actions, mode, &owner, hash_params[hash_index].algorithm, data, datasz); break; case 'i': if (optarg == NULL) secdb_errx(1, "--infile requires a value"); ptrlist_add(&infiles, optarg); break; case 'L': list_guids(); did_list_guids = true; break; case 'o': if (outfile) secdb_errx(1, "--outfile cannot be used multiple times."); if (optarg == NULL) secdb_errx(1, "--outfile requires a value"); outfile = optarg; break; case 'r': mode = REMOVE; break; case 's': if (optarg == NULL) { sort_err: secdb_errx(1, "--sort requires one of \"type\", \"data\", \"all\", or \"none\", \"ascending\", \"descending\""); } if (!strcmp(optarg, "type")) { do_sort = true; do_sort_data = false; } else if (!strcmp(optarg, "data")) { do_sort = false; do_sort_data = true; } else if (!strcmp(optarg, "all")) { do_sort = true; do_sort_data = true; } else if (!strcmp(optarg, "none")) { do_sort = false; do_sort_data = false; } else if (!strcmp(optarg, "ascending")) { sort_descending = false; } else if (!strcmp(optarg, "descending")) { sort_descending = true; } else if (!strcmp(optarg, "help")) { printf("sort options are: type data all none ascending descending"); exit(0); } else { goto sort_err; } break; case 't': if (optarg == NULL) secdb_errx(1, "--type requires a value"); set_hash_parameters(optarg, &hash_index); break; case 'v': if (optarg) { long v; errno = 0; v = strtol(optarg, NULL, 0); verbose = (errno == ERANGE) ? verbose + 1 : v; } else { verbose += 1; } break; case '?': usage(0); break; case ':': if (optarg != NULL) errx(1, "option '%c' does not take an argument (\"%s\")", optopt, optarg); } } setenv("NSS_DEFAULT_DB_TYPE", "sql", 0); efi_set_verbose(verbose, stderr); if (verbose) { setvbuf(stdout, NULL, _IONBF, 0); } if (!outfile && !dump) { if (did_list_guids) return 0; errx(1, "no output file specified"); } if (list_empty(&infiles) && !wants_add_actions) errx(1, "no input files or database additions"); secdb = efi_secdb_new(); if (!secdb) err(1, "could not allocate memory"); debug("top secdb:%p", secdb); efi_secdb_set_bool(secdb, EFI_SECDB_SORT, do_sort); efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DATA, do_sort_data); efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DESCENDING, sort_descending); status = parse_input_files(&infiles, &secdb, dump); if (status == 0) { for_each_action_safe(pos, tmp, &actions) { action_t *action = list_entry(pos, action_t, list); if (action->action == ADD) { debug("adding %d entry", action->algorithm); efi_secdb_add_entry(secdb, &action->owner, action->algorithm, (efi_secdb_data_t *)action->data, action->datasz); } else { debug("removing %d entry", action->algorithm); efi_secdb_del_entry(secdb, &action->owner, action->algorithm, (efi_secdb_data_t *)action->data, action->datasz); } list_del(&action->list); free(action->data); free(action); } } if (dump) secdb_dump(secdb, annotate); if (!outfile) exit(status); int outfd = -1; int flags = O_WRONLY | O_CREAT | (force ? 0 : O_EXCL); debug("adding output file %s", outfile); outfd = open(outfile, flags, 0600); if (outfd < 0) { char *tmpoutfile = outfile; if (errno != EEXIST) unlink(outfile); err(1, "could not open \"%s\"", tmpoutfile); } rc = ftruncate(outfd, 0); if (rc < 0) { unlink(outfile); err(1, "could not truncate output file \"%s\"", outfile); } void *output; size_t size = 0; rc = efi_secdb_realize(secdb, &output, &size); if (rc < 0) { unlink(outfile); secdb_err(1, "could not realize signature list"); } rc = write(outfd, output, size); if (rc < 0) { unlink(outfile); err(1, "could not write signature list"); } close(outfd); xfree(output); return 0; } efivar-39/src/efivar.c000066400000000000000000000376561455652431600150260ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include #include extern char *optarg; extern int optind, opterr, optopt; #include "efivar.h" #include "efivar/efivar-guids.h" #define ACTION_USAGE 0x00 #define ACTION_LIST 0x01 #define ACTION_PRINT 0x02 #define ACTION_APPEND 0x04 #define ACTION_LIST_GUIDS 0x08 #define ACTION_WRITE 0x10 #define ACTION_PRINT_DEC 0x20 #define ACTION_IMPORT 0x40 #define ACTION_EXPORT 0x80 #define EDIT_APPEND 0 #define EDIT_WRITE 1 #define SHOW_VERBOSE 0 #define SHOW_DECIMAL 1 static const char *attribute_names[] = { "Non-Volatile", "Boot Service Access", "Runtime Service Access", "Hardware Error Record", "Authenticated Write Access", "Time-Based Authenticated Write Access", "Append Write", "" }; static inline void validate_name(const char *name) { if (name == NULL) { err: warnx("Invalid variable name \"%s\"", (name == NULL) ? "(null)" : name); show_errors(); exit(1); } if (name[0] == '{') { const char *next = strchr(name+1, '}'); if (!next) goto err; if (next[1] != '-') goto err; if (next[2] == '\000') goto err; } else { if (strlen(name) < 38) goto err; if (name[8] != '-' || name[13] != '-' || name[18] != '-' || name[23] != '-' || name[36] != '-') goto err; } } static void list_all_variables(void) { efi_guid_t *guid = NULL; char *name = NULL; int rc; while ((rc = efi_get_next_variable_name(&guid, &name)) > 0) printf(GUID_FORMAT "-%s\n", GUID_FORMAT_ARGS(guid), name); if (rc < 0) { fprintf(stderr, "efivar: error listing variables: %m\n"); show_errors(); exit(1); } } static void parse_name(const char *guid_name, char **name, efi_guid_t *guid) { unsigned int guid_len = sizeof("84be9c3e-8a32-42c0-891c-4cd3b072becc"); char guid_buf[guid_len + 2]; int rc; off_t name_pos = 0; const char *left, *right; validate_name(guid_name); left = strchr(guid_name, '{'); right = strchr(guid_name, '}'); if (left && right) { if (right[1] != '-' || right[2] == '\0') { bad_name: errno = -EINVAL; fprintf(stderr, "efivar: invalid name \"%s\"\n", guid_name); show_errors(); exit(1); } name_pos = right + 1 - guid_name; strncpy(guid_buf, guid_name, name_pos); guid_buf[name_pos++] = '\0'; rc = efi_id_guid_to_guid(guid_buf, guid); if (rc < 0) goto bad_name; } else { /* it has to be at least the length of the guid, a dash, and * one more character */ if (strlen(guid_name) < guid_len + 2) goto bad_name; name_pos = guid_len - 1; if (guid_name[name_pos] != '-' || guid_name[name_pos+1] == '\0') goto bad_name; name_pos++; memset(guid_buf, 0, sizeof(guid_buf)); strncpy(guid_buf, guid_name, guid_len - 1); rc = text_to_guid(guid_buf, guid); if (rc < 0) goto bad_name; } char *name_buf = NULL; int name_len; name_len = strlen(guid_name + name_pos) + 1; name_buf = calloc(1, name_len); if (!name_buf) { fprintf(stderr, "efivar: %m\n"); exit(1); } strcpy(name_buf, guid_name + name_pos); *name = name_buf; } static void show_variable_data(efi_guid_t guid, const char *name, uint32_t attributes, uint8_t *data, size_t data_size, int display_type) { if (display_type == SHOW_VERBOSE) { printf("GUID: "GUID_FORMAT "\n", GUID_FORMAT_ARGS(&guid)); printf("Name: \"%s\"\n", name); printf("Attributes:\n"); for (int i = 0; attribute_names[i][0] != '\0'; i++) { if(attributes & (1 << i)) printf("\t%s\n", attribute_names[i]); } printf("Value:\n"); uint32_t index = 0; while (index < data_size) { char charbuf[] = "................"; printf("%08x ", index); /* print the hex values, and render the ascii bits into * charbuf */ while (index < data_size) { printf("%02x ", data[index]); if (index % 8 == 7) printf(" "); if (safe_to_print(data[index])) charbuf[index % 16] = data[index]; index++; if (index % 16 == 0) break; } /* If we're above data_size, finish out the line with * space, and also finish out charbuf with space */ while (index >= data_size && index % 16 != 0) { if (index % 8 == 7) printf(" "); printf(" "); charbuf[index % 16] = ' '; index++; if (index % 16 == 0) break; } printf("|%s|\n", charbuf); } } else if (display_type == SHOW_DECIMAL) { uint32_t index = 0; while (index < data_size) { // print the dec values while (index < data_size) { printf("%d ", data[index]); if (index % 8 == 7) printf(" "); index++; if (index % 16 == 0) break; } } printf("\n"); } } static void show_variable(char *guid_name, int display_type) { efi_guid_t guid = efi_guid_empty; char *name = NULL; int rc; uint8_t *data = NULL; size_t data_size = 0; uint32_t attributes; parse_name(guid_name, &name, &guid); if (!name || efi_guid_is_empty(&guid)) { fprintf(stderr, "efivar: could not parse variable name.\n"); show_errors(); exit(1); } errno = 0; rc = efi_get_variable(guid, name, &data, &data_size, &attributes); if (rc < 0) { fprintf(stderr, "efivar: show variable: %m\n"); show_errors(); exit(1); } show_variable_data(guid, name, attributes, data, data_size, display_type); free(name); if (data) free(data); } static void save_variable_data(efi_variable_t *var, char *outfile, bool dmpstore) { FILE *out = NULL; ssize_t sz; uint8_t *data = NULL; size_t datasz = 0; ssize_t (*export)(efi_variable_t *var, uint8_t *data, size_t size) = dmpstore ? efi_variable_export_dmpstore : efi_variable_export; out = fopen(outfile, "w"); if (!out) err(1, "Could not open \"%s\" for writing", outfile); sz = export(var, data, datasz); data = calloc(sz, 1); if (!data) err(1, "Could not allocate memory"); datasz = sz; sz = export(var, data, datasz); if (sz < 0) err(1, "Could not format data"); datasz = sz; sz = fwrite(data, 1, datasz, out); if (sz < (ssize_t)datasz) err(1, "Could not write to \"%s\"", outfile); fflush(out); fclose(out); } static void save_variable(char *guid_name, char *outfile, bool dmpstore) { efi_guid_t guid = efi_guid_empty; char *name = NULL; int rc; uint8_t *data = NULL; size_t data_size = 0; uint32_t attributes = 7; efi_variable_t *var; parse_name(guid_name, &name, &guid); if (!name || efi_guid_is_empty(&guid)) { fprintf(stderr, "efivar: could not parse variable name.\n"); show_errors(); exit(1); } errno = 0; rc = efi_get_variable(guid, name, &data, &data_size, &attributes); if (rc < 0) { fprintf(stderr, "efivar: show variable: %m\n"); show_errors(); exit(1); } var = efi_variable_alloc(); if (!var) { fprintf(stderr, "efivar: could not allocate variable storage.\n"); show_errors(); exit(1); } efi_variable_set_name(var, (unsigned char *)name); efi_variable_set_guid(var, &guid); efi_variable_set_attributes(var, attributes); efi_variable_set_data(var, data, data_size); save_variable_data(var, outfile, dmpstore); efi_variable_free(var, false); free(name); if (data) free(data); } static void edit_variable(const char *guid_name, void *data, size_t data_size, uint32_t attrib, int edit_type) { efi_guid_t guid = efi_guid_empty; char *name = NULL; int rc; uint8_t *old_data = NULL; size_t old_data_size = 0; uint32_t old_attributes = 0; parse_name(guid_name, &name, &guid); if (!name || efi_guid_is_empty(&guid)) { fprintf(stderr, "efivar: could not parse variable name.\n"); show_errors(); exit(1); } rc = efi_get_variable(guid, name, &old_data, &old_data_size, &old_attributes); /* Ignore errors, as -a can be used to create a variable */ if (attrib != 0) old_attributes = attrib; switch (edit_type){ case EDIT_APPEND: rc = efi_append_variable(guid, name, data, data_size, old_attributes); break; case EDIT_WRITE: rc = efi_set_variable(guid, name, data, data_size, old_attributes, 0644); break; } free(name); if (old_data) free(old_data); if (rc < 0) { fprintf(stderr, "efivar: %m\n"); show_errors(); exit(1); } } static void prepare_data(const char *filename, uint8_t **data, size_t *data_size) { int fd = -1; void *buf; size_t buflen = 0; struct stat statbuf; int rc; if (filename == NULL) { fprintf(stderr, "Input filename must be provided.\n"); exit(1); } fd = open(filename, O_RDONLY); if (fd < 0) goto err; memset(&statbuf, '\0', sizeof(statbuf)); rc = fstat(fd, &statbuf); if (rc < 0) goto err; buflen = statbuf.st_size; buf = mmap(NULL, buflen, PROT_READ, MAP_PRIVATE|MAP_POPULATE, fd, 0); if (buf == MAP_FAILED) goto err; *data = buf; *data_size = buflen; close(fd); return; err: if (fd >= 0) close(fd); fprintf(stderr, "Could not use \"%s\": %m\n", filename); exit(1); } static void __attribute__((__noreturn__)) usage(int ret) { FILE *out = ret == 0 ? stdout : stderr; fprintf(out, "Usage: %s [OPTION...]\n" " -A, --attributes= attributes to use on append\n" " -l, --list list current variables\n" " -p, --print print variable specified by --name\n" " -D, --dmpstore use DMPSTORE format when exporting\n" " -d, --print-decimal print variable in decimal values specified\n" " by --name\n" " -n, --name= variable to manipulate, in the form\n" " 8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0000\n" " -a, --append append to variable specified by --name\n" " -f, --datafile= load or save variable contents from \n" " -e, --export= export variable to \n" " -i, --import= import variable from */ #ifndef PRIVATE_EFIVAR_H_ #define PRIVATE_EFIVAR_H_ #pragma GCC diagnostic warning "-Wcpp" #include "fix_coverity.h" #include #include "compiler.h" #include "diag.h" #include "list.h" #include "util.h" #include "safemath.h" #include "efivar_endian.h" #include "lib.h" #include "guid.h" #include "generics.h" #include "dp.h" #include "gpt.h" #include "disk.h" #include "linux.h" #include "crc32.h" #include "hexdump.h" #include "path-helpers.h" #include "makeguids.h" #endif /* !PRIVATE_EFIVAR_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/efivar.pc.in000066400000000000000000000003601455652431600155710ustar00rootroot00000000000000prefix=@@PREFIX@@ exec_prefix=@@EXEC_PREFIX@@ libdir=@@LIBDIR@@ includedir=@@INCLUDEDIR@@ Name: efivar Description: UEFI Variable Management Version: @@VERSION@@ Libs: -L${libdir} -lefivar Libs.private: -ldl Cflags: -I${includedir}/efivar efivar-39/src/efivar_endian.h000066400000000000000000000023531455652431600163330ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * Copyright 2009-2015 Red Hat, Inc. * * Author: Peter Jones */ #ifndef _EFIVAR_ENDIAN_H #define _EFIVAR_ENDIAN_H #include #if __BYTE_ORDER == __LITTLE_ENDIAN #define cpu_to_le16(x) (x) #define cpu_to_le32(x) (x) #define cpu_to_le64(x) ((uint64_t)x) #define le16_to_cpu(x) (x) #define le32_to_cpu(x) (x) #define le64_to_cpu(x) ((uint64_t)x) #define cpu_to_be16(x) __builtin_bswap16(x) #define cpu_to_be32(x) __builtin_bswap32(x) #define cpu_to_be64(x) ((uint64_t)__builtin_bswap64(x)) #define be16_to_cpu(x) __builtin_bswap16(x) #define be32_to_cpu(x) __builtin_bswap32(x) #define be64_to_cpu(x) ((uint64_t)__builtin_bswap64(x)) #else #define cpu_to_be16(x) (x) #define cpu_to_be32(x) (x) #define cpu_to_be64(x) ((uint64_t)x) #define be16_to_cpu(x) (x) #define be32_to_cpu(x) (x) #define be64_to_cpu(x) ((uint64_t)x) #define cpu_to_le16(x) __builtin_bswap16(x) #define cpu_to_le32(x) __builtin_bswap32(x) #define cpu_to_le64(x) ((uint64_t)__builtin_bswap64(x)) #define le16_to_cpu(x) __builtin_bswap16(x) #define le32_to_cpu(x) __builtin_bswap32(x) #define le64_to_cpu(x) ((uint64_t)__builtin_bswap64(x)) #endif #endif /* _EFIVAR_ENDIAN_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/efivarfs.c000066400000000000000000000264331455652431600153460ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2013 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "efivar.h" #include #ifndef EFIVARFS_MAGIC # define EFIVARFS_MAGIC 0xde5e81e4 #endif static char const default_efivarfs_path[] = "/sys/firmware/efi/efivars/"; static char *efivarfs_path; static char const * get_efivarfs_path(void) { if (efivarfs_path) return efivarfs_path; efivarfs_path = secure_getenv("EFIVARFS_PATH"); if (efivarfs_path) efivarfs_path = strdup(efivarfs_path); else efivarfs_path = strdup(default_efivarfs_path); if (!efivarfs_path) err(1, "couldn't allocate memory"); return efivarfs_path; } static void CONSTRUCTOR init_efivarfs_path(void) { get_efivarfs_path(); } static void DESTRUCTOR fini_efivarfs_path(void) { if (efivarfs_path) { free(efivarfs_path); efivarfs_path = NULL; } } static int efivarfs_probe(void) { const char *path = get_efivarfs_path(); int rc = 0; struct statfs buf; memset(&buf, '\0', sizeof (buf)); rc = statfs(path, &buf); if (rc == 0) { char *tmp; __typeof__(buf.f_type) magic = EFIVARFS_MAGIC; if (!memcmp(&buf.f_type, &magic, sizeof (magic))) return 1; else efi_error("bad fs type for %s", path); tmp = getenv("EFIVARFS_PATH"); if (tmp && !strcmp(tmp, path)) { efi_error_clear(); return 1; } } else { efi_error("statfs(%s) failed", path); } return 0; } #define make_efivarfs_path(str, guid, name) ({ \ asprintf(str, "%s%s-" GUID_FORMAT, get_efivarfs_path(), \ name, GUID_FORMAT_ARGS(&(guid))); \ }) static int efivarfs_set_fd_immutable(int fd, int immutable) { unsigned int flags; int rc = 0; rc = ioctl(fd, FS_IOC_GETFLAGS, &flags); if (rc < 0) { if (errno == ENOTTY) rc = 0; else efi_error("ioctl(%d, FS_IOC_GETFLAGS) failed", fd); } else if ((immutable && !(flags & FS_IMMUTABLE_FL)) || (!immutable && (flags & FS_IMMUTABLE_FL))) { if (immutable) flags |= FS_IMMUTABLE_FL; else flags &= ~FS_IMMUTABLE_FL; rc = ioctl(fd, FS_IOC_SETFLAGS, &flags); if (rc < 0) efi_error("ioctl(%d, FS_IOC_SETFLAGS) failed", fd); } return rc; } static int efivarfs_make_fd_mutable(int fd, unsigned long *orig_attrs) { unsigned long mutable_attrs = 0; *orig_attrs = 0; if (ioctl(fd, FS_IOC_GETFLAGS, orig_attrs) == -1) return -1; if ((*orig_attrs & FS_IMMUTABLE_FL) == 0) return 0; mutable_attrs = *orig_attrs & ~(unsigned long)FS_IMMUTABLE_FL; if (ioctl(fd, FS_IOC_SETFLAGS, &mutable_attrs) == -1) return -1; return 0; } static int efivarfs_set_immutable(char *path, int immutable) { __typeof__(errno) error = 0; int fd; int rc = 0; fd = open(path, O_RDONLY); if (fd < 0) { if (errno == ENOTTY) { efi_error("open(%s, O_RDONLY) failed", path); return 0; } else { return fd; } } rc = efivarfs_set_fd_immutable(fd, immutable); error = errno; close(fd); errno = error; if (rc < 0) efi_error("efivarfs_set_fd_immutable(%d, %d) on %s failed", fd, immutable, path); return rc; } static int efivarfs_get_variable_size(efi_guid_t guid, const char *name, size_t *size) { char *path = NULL; int rc = 0; int ret = -1; __typeof__(errno) errno_value; rc = make_efivarfs_path(&path, guid, name); if (rc < 0) { efi_error("make_efivarfs_path failed"); goto err; } struct stat statbuf = { 0, }; rc = stat(path, &statbuf); if (rc < 0) { efi_error("stat(%s) failed", path); goto err; } ret = 0; /* Compensate for the size of the Attributes field. */ *size = statbuf.st_size - sizeof (uint32_t); err: errno_value = errno; if (path) free(path); errno = errno_value; return ret; } static int efivarfs_get_variable_attributes(efi_guid_t guid, const char *name, uint32_t *attributes) { int ret = -1; uint8_t *data; size_t data_size; uint32_t attribs; ret = efi_get_variable(guid, name, &data, &data_size, &attribs); if (ret < 0) { efi_error("efi_get_variable failed"); return ret; } *attributes = attribs; if (data) free(data); return ret; } static int efivarfs_get_variable(efi_guid_t guid, const char *name, uint8_t **data, size_t *data_size, uint32_t *attributes) { __typeof__(errno) errno_value; int ret = -1; size_t size = 0; uint32_t ret_attributes = 0; uint8_t *ret_data; int fd = -1; char *path = NULL; int rc; int ratelimit; /* * The kernel rate limiter hits us if we go faster than 100 efi * variable reads per second as non-root. So if we're not root, just * delay this long after each read. The user is not going to notice. * * 1s / 100 = 10000us. */ ratelimit = geteuid() == 0 ? 0 : 10000; rc = make_efivarfs_path(&path, guid, name); if (rc < 0) { efi_error("make_efivarfs_path failed"); goto err; } fd = open(path, O_RDONLY); if (fd < 0) { efi_error("open(%s)", path); goto err; } usleep(ratelimit); rc = read(fd, &ret_attributes, sizeof (ret_attributes)); if (rc < 0) { efi_error("read failed"); goto err; } usleep(ratelimit); rc = read_file(fd, &ret_data, &size); if (rc < 0) { efi_error("read_file failed"); goto err; } *attributes = ret_attributes; *data = ret_data; *data_size = size - 1; // read_file pads out 1 extra byte to NUL it */ ret = 0; err: errno_value = errno; if (fd >= 0) close(fd); if (path) free(path); errno = errno_value; return ret; } static int efivarfs_del_variable(efi_guid_t guid, const char *name) { char *path; int rc = make_efivarfs_path(&path, guid, name); if (rc < 0) { efi_error("make_efivarfs_path failed"); return -1; } efivarfs_set_immutable(path, 0); rc = unlink(path); if (rc < 0) efi_error("unlink failed"); __typeof__(errno) errno_value = errno; free(path); errno = errno_value; return rc; } static int efivarfs_set_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes, mode_t mode) { char *path; size_t alloc_size; uint8_t *buf; int rfd = -1; struct stat rfd_stat; unsigned long orig_attrs = 0; int restore_immutable_fd = -1; int wfd = -1; int open_wflags; int ret = -1; int save_errno; if (strlen(name) > 1024) { errno = EINVAL; efi_error("name too long (%zu of 1024)", strlen(name)); return -1; } if (data_size > (size_t)-1 - sizeof (attributes)) { errno = EOVERFLOW; efi_error("data_size too large (%zu)", data_size); return -1; } if (make_efivarfs_path(&path, guid, name) < 0) { efi_error("make_efivarfs_path failed"); return -1; } alloc_size = sizeof (attributes) + data_size; buf = malloc(alloc_size); if (buf == NULL) { efi_error("malloc(%zu) failed", alloc_size); goto err; } /* * Open the file first in read-only mode. This is necessary when the * variable exists and it is also protected -- then we first have to * *attempt* to clear the immutable flag from the file. For clearing * the flag, we can only open the file read-only. In other cases, * opening the file for reading is not necessary, but it doesn't hurt * either. */ rfd = open(path, O_RDONLY); if (rfd != -1) { /* save the containing device and the inode number for later */ if (fstat(rfd, &rfd_stat) == -1) { efi_error("fstat() failed on r/o fd %d", rfd); goto err; } /* if the file is indeed immutable, clear and remember it */ if (efivarfs_make_fd_mutable(rfd, &orig_attrs) == 0 && (orig_attrs & FS_IMMUTABLE_FL)) restore_immutable_fd = rfd; } /* * Open the variable file for writing now. First, use O_APPEND * dependent on the input attributes. Second, the file either doesn't * exist here, or it does and we made an attempt to make it mutable * above. If the file was created afresh between the two open()s, then * we catch that with O_EXCL. If the file was removed between the two * open()s, we catch that with lack of O_CREAT. If the file was * *replaced* between the two open()s, we'll catch that later with * fstat() comparison. */ open_wflags = O_WRONLY; if (attributes & EFI_VARIABLE_APPEND_WRITE) open_wflags |= O_APPEND; if (rfd == -1) open_wflags |= O_CREAT | O_EXCL; wfd = open(path, open_wflags, mode); if (wfd == -1) { efi_error("failed to %s %s for %s", rfd == -1 ? "create" : "open", path, ((attributes & EFI_VARIABLE_APPEND_WRITE) ? "appending" : "writing")); goto err; } /* * If we couldn't open the file for reading, then we have to attempt * making it mutable now -- in case we created a protected file (for * writing or appending), then the kernel made it immutable * immediately, and the write() below would fail otherwise. */ if (rfd == -1) { if (efivarfs_make_fd_mutable(wfd, &orig_attrs) == 0 && (orig_attrs & FS_IMMUTABLE_FL)) restore_immutable_fd = wfd; } else { /* make sure rfd and wfd refer to the same file */ struct stat wfd_stat; if (fstat(wfd, &wfd_stat) == -1) { efi_error("fstat() failed on w/o fd %d", wfd); goto err; } if (rfd_stat.st_dev != wfd_stat.st_dev || rfd_stat.st_ino != wfd_stat.st_ino) { errno = EINVAL; efi_error("r/o fd %d and w/o fd %d refer to different " "files", rfd, wfd); goto err; } } memcpy(buf, &attributes, sizeof (attributes)); memcpy(buf + sizeof (attributes), data, data_size); if (write(wfd, buf, alloc_size) == -1) { efi_error("writing to fd %d failed", wfd); goto err; } /* we're done */ ret = 0; err: save_errno = errno; /* if we're exiting with error and created the file, remove it */ if (ret == -1 && rfd == -1 && wfd != -1 && unlink(path) == -1) efi_error("failed to unlink %s", path); ioctl(restore_immutable_fd, FS_IOC_SETFLAGS, &orig_attrs); if (wfd >= 0) close(wfd); if (rfd >= 0) close(rfd); free(buf); free(path); errno = save_errno; return ret; } static int efivarfs_append_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes) { int rc; attributes |= EFI_VARIABLE_APPEND_WRITE; rc = efivarfs_set_variable(guid, name, data, data_size, attributes, 0); if (rc < 0) efi_error("efivarfs_set_variable failed"); return rc; } static int efivarfs_get_next_variable_name(efi_guid_t **guid, char **name) { int rc; rc = generic_get_next_variable_name(get_efivarfs_path(), guid, name); if (rc < 0) efi_error("generic_get_next_variable_name failed"); return rc; } static int efivarfs_chmod_variable(efi_guid_t guid, const char *name, mode_t mode) { char *path; int rc = make_efivarfs_path(&path, guid, name); if (rc < 0) { efi_error("make_efivarfs_path failed"); return -1; } rc = chmod(path, mode); int saved_errno = errno; if (rc < 0) efi_error("chmod(%s,0%o) failed", path, mode); free(path); errno = saved_errno; return -1; } struct efi_var_operations efivarfs_ops = { .name = "efivarfs", .probe = efivarfs_probe, .set_variable = efivarfs_set_variable, .append_variable = efivarfs_append_variable, .del_variable = efivarfs_del_variable, .get_variable = efivarfs_get_variable, .get_variable_attributes = efivarfs_get_variable_attributes, .get_variable_size = efivarfs_get_variable_size, .get_next_variable_name = efivarfs_get_next_variable_name, .chmod_variable = efivarfs_chmod_variable, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/error.c000066400000000000000000000124601455652431600146650ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. * Copyright (C) 2000-2001 Dell Computer Corporation */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include "efiboot.h" typedef struct { int error; char *filename; char *function; int line; char *message; } error_table_entry; static _Thread_local error_table_entry *error_table; static _Thread_local unsigned int current; int PUBLIC NONNULL(2, 3, 4, 5, 6) efi_error_get(unsigned int n, char ** const filename, char ** const function, int *line, char ** const message, int *error ) { if (!filename || !function || !line || !message || !error) { errno = EINVAL; return -1; } if (n >= current) return 0; *filename = error_table[n].filename; *function = error_table[n].function; *line = error_table[n].line; *message = error_table[n].message; *error = error_table[n].error; return 1; } static inline UNUSED void clear_error_entry(error_table_entry *et) { if (!et) return; if (et->filename) free(et->filename); if (et->function) free(et->function); if (et->message) free(et->message); memset(et, '\0', sizeof(*et)); } int PUBLIC NONNULL(1, 2, 5) PRINTF(5, 6) efi_error_set(const char *filename, const char *function, int line, int error, const char *fmt, ...) { error_table_entry et = { 0, }; error_table_entry *table; char *tmp; table = realloc(error_table, sizeof(et) * (current +1)); if (!table) goto err; error_table = table; et.error = error; et.line = line; tmp = filename ? strdup(filename) : NULL; if (!tmp) goto err; et.filename = tmp; tmp = function ? strdup(function) : NULL; if (!tmp) goto err; et.function = tmp; if (fmt) { int rc; int saved_errno; va_list ap; tmp = NULL; va_start(ap, fmt); rc = vasprintf(&tmp, fmt, ap); saved_errno = errno; va_end(ap); errno = saved_errno; if (rc < 0) goto err; et.message = tmp; } memcpy(&error_table[current], &et, sizeof(et)); current += 1; return current; err: if (et.filename) free(et.filename); if (et.function) free(et.function); if (et.message) free(et.message); errno = ENOMEM; return -1; } void PUBLIC efi_error_pop(void) { if (current <= 0) return; current -= 1; clear_error_entry(&error_table[current]); } static int efi_verbose; static FILE *efi_errlog, *efi_dbglog; #ifndef ANDROID static int efi_dbglog_fd = -1; static intptr_t efi_dbglog_cookie; #endif static int log_level; void PUBLIC efi_set_loglevel(int level) { log_level = level; } #ifndef ANDROID static ssize_t dbglog_write(void *cookie, const char *buf, size_t size) { FILE *log = efi_errlog ? efi_errlog : stderr; ssize_t ret = 0; while (ret < (ssize_t)size) { /* * This is limited to 32 characters per write because if * the only place this is going is strace logs, that's the * default character buffer display size. If it's going * anywhere else, you won't really notice the difference, * since we're not inserting newlines. */ ssize_t sz = MIN(size - ret, 32); if (efi_get_verbose() >= log_level) { sz = fwrite(buf + ret, 1, sz, log); if (sz < 1 && (ferror(log) || feof(log))) break; fflush(log); } else if (efi_dbglog_fd >= 0 && sz > 0) { if ((intptr_t)cookie != 0 && (intptr_t)cookie == efi_dbglog_cookie && (ret + sz) < 0 && buf[ret + sz - 1] == '\n') sz -= 1; sz = write(efi_dbglog_fd, buf + ret, sz); if (sz < 0) break; } ret += sz; } return ret; } static int dbglog_seek(void *cookie UNUSED, off_t *offset, int whence) { FILE *log = efi_errlog ? efi_errlog : stderr; int rc; rc = fseek(log, *offset, whence); if (rc < 0) return rc; *offset = ftell(log); return 0; } static int dbglog_close(void *cookie UNUSED) { if (efi_dbglog_fd >= 0) { close(efi_dbglog_fd); efi_dbglog_fd = -1; } if (efi_errlog) { int ret = fclose(efi_errlog); efi_errlog = NULL; return ret; } errno = EBADF; return -1; } #endif void PUBLIC efi_error_clear(void) { if (error_table) { for (unsigned int i = 0; i < current; i++) { error_table_entry *et = &error_table[i]; clear_error_entry(et); } free(error_table); } error_table = NULL; current = 0; } void DESTRUCTOR efi_error_fini(void) { efi_error_clear(); if (efi_dbglog) { fclose(efi_dbglog); efi_dbglog = NULL; } } static void CONSTRUCTOR efi_error_init(void) { #ifndef ANDROID ssize_t bytes; cookie_io_functions_t io_funcs = { .write = dbglog_write, .seek = dbglog_seek, .close = dbglog_close, }; efi_dbglog_fd = open("/dev/null", O_WRONLY|O_APPEND|O_CLOEXEC); if (efi_dbglog_fd < 0) return; bytes = getrandom(&efi_dbglog_cookie, sizeof(efi_dbglog_cookie), 0); if (bytes < (ssize_t)sizeof(efi_dbglog_cookie)) efi_dbglog_cookie = 0; efi_dbglog = fopencookie((void *)efi_dbglog_cookie, "a", io_funcs); #endif } FILE PUBLIC * efi_get_logfile(void) { return efi_dbglog; } void PUBLIC efi_set_verbose(int verbosity, FILE *errlog) { efi_verbose = verbosity; if (errlog) efi_errlog = errlog; } int PUBLIC efi_get_verbose(void) { return efi_verbose; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/esl-iter.c000066400000000000000000000340421455652431600152600ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * Copyright Red Hat, Inc. * Copyright Peter M. Jones */ #include "efisec.h" typedef struct esl_list_iter esl_list_iter; extern int esl_list_iter_new(esl_list_iter **iter, uint8_t *buf, size_t len); extern int esl_list_iter_end(esl_list_iter *iter); extern int esl_list_iter_next(esl_list_iter *iter, efi_guid_t *type, efi_signature_data_t **data, size_t *len); extern int esl_list_iter_next_with_size_correction( esl_list_iter *iter, efi_guid_t *type, efi_signature_data_t **data, size_t *len, bool correct_size); extern int esl_list_list_start(esl_list_iter *iter, void **buf); extern int esl_list_list_size(esl_list_iter *iter, size_t *bufsz); extern int esl_list_signature_list_size(esl_list_iter *iter, size_t *sls); extern int esl_list_header_size(esl_list_iter *iter, size_t *slh); extern int esl_list_sig_size(esl_list_iter *iter, size_t *ss); extern int esl_list_get_type(esl_list_iter *iter, efi_guid_t *type); struct esl_iter { esl_list_iter *iter; int line; efi_signature_data_t *esd; size_t len; size_t nmemb; unsigned int i; }; int NONNULL(1, 2) esl_iter_new(esl_iter **iter, uint8_t *buf, size_t len) { int rc; if (len < sizeof(efi_signature_list_t) + sizeof(efi_signature_data_t)) { efi_error("buffer is too small for any EFI_SIGNATURE_LIST entries: %zd < %zd", len, sizeof(efi_signature_list_t) + sizeof(efi_signature_data_t)); errno = EINVAL; return -1; } *iter = calloc(1, sizeof(esl_iter)); if (!*iter) { efi_error("memory allocation failed for %zd bytes", sizeof(esl_iter)); return -1; } rc = esl_list_iter_new(&(*iter)->iter, buf, len); if (rc < 0) { int error = errno; free(*iter); errno = error; efi_error("esl_list_iter_new() failed"); return -1; } (*iter)->i = -1; return 0; } int NONNULL(1) esl_iter_end(esl_iter *iter) { if (!iter) { errno = EINVAL; return -1; } if (iter->iter) esl_list_iter_end(iter->iter); free(iter); return 0; } esl_iter_status_t NONNULL(1, 2, 3, 4, 5) esl_iter_next_with_size_correction(esl_iter *iter, efi_guid_t *type, efi_guid_t *owner, uint8_t **data, size_t *len, bool correct_size) { esl_iter_status_t status = ESL_ITER_NEW_DATA; int rc; size_t ss, sls; if (!iter) { efi_error("iter is NULL"); errno = EINVAL; return -EINVAL; } if (iter->iter == NULL) { efi_error("iter->iter is NULL"); errno = EINVAL; return -EINVAL; } iter->line += 1; iter->i += 1; if (iter->i == iter->nmemb) { debug("Getting next efi_signature_data_t (correct_size:%d)", correct_size); iter->i = 0; if (correct_size) rc = esl_list_iter_next_with_size_correction(iter->iter, type, &iter->esd, &iter->len, true); else rc = esl_list_iter_next(iter->iter, type, &iter->esd, &iter->len); if (rc < 1) { if (rc < 0) efi_error("esl_list_iter_next() failed"); return rc; } debug("type:%p data:%p len:%zd", type, iter->esd, iter->len); status = ESL_ITER_NEW_LIST; if (!efi_guid_cmp(type, &efi_guid_x509_cert)) { int32_t asn1size; asn1size = get_asn1_seq_size(iter->esd->signature_data, iter->len - sizeof(iter->esd->signature_owner)); debug("iter->len:%zu sizeof(owner):%zd bufsz:%zd asn1sz:%d", iter->len, sizeof(iter->esd->signature_owner), iter->len - sizeof(iter->esd->signature_owner), asn1size); if (asn1size < 0) { debug("iterator data claims to be an X.509 Cert but is not valid ASN.1 DER"); } else if ((uint32_t)asn1size != iter->len - sizeof(iter->esd->signature_owner)) { debug("X.509 Cert ASN.1 size does not match signature_list Size (%d vs %zu)", asn1size, iter->len - sizeof(iter->esd->signature_owner)); } } size_t slh; rc = esl_list_header_size(iter->iter, &slh); if (rc < 0) { efi_error("esl_list_header_size() failed"); return rc; } rc = esl_list_sig_size(iter->iter, &ss); if (rc < 0) { efi_error("esl_list_sig_size() failed"); return rc; } rc = esl_list_signature_list_size(iter->iter, &sls); if (rc < 0) { efi_error("esl_list_list_size() failed"); return rc; } debug("list size:%zu header size:%zu data size:%zu", sls, slh, ss); /* if we'd have leftover data, then this ESD is garbage. */ if ((sls - sizeof(efi_signature_list_t) - slh) % ss != 0) { efi_error("signature list size is not a multiple of the signature entry size: %zd %% %zd = %zd", (sls - sizeof(efi_signature_list_t) - slh), ss, (sls - sizeof(efi_signature_list_t) - slh) % ss); errno = EINVAL; return -EINVAL; } iter->nmemb = (sls - sizeof(efi_signature_list_t) - slh) / ss; debug("iter->nmemb:%zd", iter->nmemb); } else { uint8_t *buf = NULL; size_t bufsz; debug("Getting next esd element"); rc = esl_list_sig_size(iter->iter, &ss); if (rc < 0) { efi_error("esl_list_sig_size() failed"); return rc; } rc = esl_list_list_size(iter->iter, &bufsz); if (rc < 0) { efi_error("esl_list_list_size() failed"); return rc; } rc = esl_list_list_start(iter->iter, (void **)&buf); if (rc < 0 || buf == NULL) { efi_error("esl_list_list_start() failed"); return rc; } rc = esl_list_signature_list_size(iter->iter, &sls); if (rc < 0) { efi_error("esl_list_list_size() failed"); return rc; } debug("signature data entry (0x%zx %c 0x%zx) (%zd %c %zd)", esd_get_esl_offset(iter) + ss, LEG(esd_get_esl_offset(iter) + ss, bufsz), bufsz, esd_get_esl_offset(iter) + ss, LEG(esd_get_esl_offset(iter) + ss, bufsz), bufsz); if (esd_get_esl_offset(iter) + ss > bufsz) { errno = EOVERFLOW; debug("EFI_SIGNATURE_LIST is malformed"); debug("signature data entry is not within list bounds (%zd > %zd) (0x%zx > 0x%zx)", esd_get_esl_offset(iter) + ss, bufsz + esd_get_esl_offset(iter) - ss, (intptr_t)iter->esd + ss - (intptr_t)buf, bufsz); if (!correct_size) efi_error("signature data entry is not within list bounds (%p > %p) (%zd > %zd) (0x%zx > 0x%zx)", (void *)((intptr_t)iter->esd + ss), (void *)((intptr_t)buf + bufsz), (intptr_t)iter->esd + ss - (intptr_t)buf, bufsz, (intptr_t)iter->esd + ss - (intptr_t)buf, bufsz); return -1; } iter->esd = (efi_signature_data_t *)((intptr_t)iter->esd + ss); } rc = esl_list_get_type(iter->iter, type); if (rc < 0) { efi_error("esl_list_get_type() failed"); return rc; } *owner = iter->esd->signature_owner; *data = iter->esd->signature_data; *len = ss - sizeof(iter->esd->signature_owner); return status; } esl_iter_status_t NONNULL(1, 2, 3, 4, 5) esl_iter_next(esl_iter *iter, efi_guid_t *type, efi_guid_t *owner, uint8_t **data, size_t *len) { return esl_iter_next_with_size_correction(iter, type, owner, data, len, false); } int NONNULL(1) esl_iter_get_line(esl_iter *iter) { if (!iter) { errno = EINVAL; return -1; } return iter->line; } struct esl_list_iter { uint8_t *buf; size_t len; off_t offset; efi_signature_list_t *esl; }; intptr_t NONNULL(1) esd_get_esl_offset(esl_iter *iter) { uint64_t esd = (uintptr_t)iter->esd; uint64_t esl = (uintptr_t)iter->iter->buf; return esd - esl; } int NONNULL(1, 2) esl_list_iter_new(esl_list_iter **iter, uint8_t *buf, size_t len) { debug("starting new iter list"); if (len < sizeof(efi_signature_list_t) + sizeof(efi_signature_data_t)) { errno = EINVAL; return -1; } *iter = calloc(1, sizeof(esl_list_iter)); if (!*iter) return -1; (*iter)->buf = buf; (*iter)->len = len; return 0; } int NONNULL(1) esl_list_iter_end(esl_list_iter *iter) { if (!iter) { errno = EINVAL; return -1; } free(iter); return 0; } int NONNULL(1, 2, 3, 4) esl_list_iter_next_with_size_correction(esl_list_iter *iter, efi_guid_t *type, efi_signature_data_t **data, size_t *len, bool correct_size) { if (!iter) { efi_error("iter is NULL"); errno = EINVAL; return -1; } if (iter->offset < 0) { efi_error("iter->offset (%jd) < 0", (intmax_t)iter->offset); errno = EINVAL; return -1; } if ((uint32_t)iter->offset >= iter->len) { efi_error("iter->offset (%jd) >= iter->len (%zd)", (intmax_t)iter->offset, iter->len); errno = EINVAL; return -1; } if (!iter->esl) { debug("Getting next ESL buffer (correct_size:%d)", correct_size); iter->esl = (efi_signature_list_t *)iter->buf; debug("list has %lu bytes left, element is %"PRIu32"(0x%"PRIx32") bytes", iter->len - iter->offset, iter->esl->signature_list_size, iter->esl->signature_list_size); if (iter->len - iter->offset < iter->esl->signature_list_size) { debug("EFI_SIGNATURE_LIST is malformed: len:%zd(0x%zx) offset:%zd(0x%zx) len-off:%zd(0x%zx) esl_size:%"PRIu32"(0x%"PRIx32")", iter->len, iter->len, iter->offset, iter->offset, iter->len - iter->offset, iter->len - iter->offset, iter->esl->signature_list_size, iter->esl->signature_list_size); if (correct_size && (iter->len - iter->offset) > 0) { warnx("correcting ESL size from %d to %jd at %lx", iter->esl->signature_list_size, (intmax_t)(iter->len - iter->offset), iter->offset); debug("correcting ESL size from %d to %zd at %lx", iter->esl->signature_list_size, iter->len - iter->offset, iter->offset); iter->esl->signature_list_size = iter->len - iter->offset; } else { efi_error("EFI_SIGNATURE_LIST is malformed"); errno = EOVERFLOW; return -1; } } } else { debug("Getting next efi_signature_list_t"); debug("list has %lu bytes left, element is %"PRIu32" bytes", iter->len - iter->offset, iter->esl->signature_list_size); efi_guid_t type; errno = 0; esl_list_get_type(iter, &type); if (iter->len - iter->offset < iter->esl->signature_list_size) { debug("EFI_SIGNATURE_LIST is malformed"); if (correct_size && (iter->len - iter->offset) > 0) { warnx("correcting ESL size from %d to %jd at 0x%lx", iter->esl->signature_list_size, (intmax_t)(iter->len - iter->offset), iter->offset); debug("correcting ESL size from %d to %zd at 0x%lx", iter->esl->signature_list_size, iter->len - iter->offset, iter->offset); iter->esl->signature_list_size = iter->len - iter->offset; } else { debug("EFI_SIGNATURE_LIST is malformed"); efi_error("EFI_SIGNATURE_LIST is malformed"); errno = EOVERFLOW; return -1; } } if (!efi_guid_cmp(&type, &efi_guid_x509_cert)) { int32_t asn1size; asn1size = get_asn1_seq_size( iter->buf + iter->offset + sizeof(efi_guid_t), *len - sizeof(efi_guid_t)); if (asn1size < 0) { debug("iterator data claims to be an X.509 Cert but is not valid ASN.1 DER"); } else if ((uint32_t)asn1size != iter->esl->signature_size - sizeof(efi_guid_t)) { debug("X.509 Cert ASN.1 size does not match signature_list_size (%d vs %zu)", asn1size, iter->esl->signature_size - sizeof(efi_guid_t)); } } iter->offset += iter->esl->signature_list_size; if ((uint32_t)iter->offset >= iter->len) return 0; iter->esl = (efi_signature_list_t *)((intptr_t)iter->buf + iter->offset); } efi_signature_list_t esl; memset(&esl, '\0', sizeof(esl)); /* if somehow we've gotten a buffer that's bigger than our * real list, this will be zeros, so we've hit the end. */ if (!memcmp(&esl, iter->esl, sizeof(esl))) return 0; debug("signature list size:%d iter->len:%zd iter->offset:%zd signature_size:%u", iter->esl->signature_list_size, iter->len, iter->offset, iter->esl->signature_size); /* if this list size is too big for our data, then it's malformed */ if (iter->esl->signature_list_size > iter->len - iter->offset) { debug("EFI_SIGNATURE_LIST is malformed"); if (correct_size && (iter->len - iter->offset) > 0) { warnx("correcting ESL size from %d to %jd at 0x%lx", iter->esl->signature_list_size, (intmax_t)(iter->len - iter->offset), iter->offset); debug("correcting ESL size from %d to %zd at 0x%lx", iter->esl->signature_list_size, iter->len - iter->offset, iter->offset); iter->esl->signature_list_size = iter->len - iter->offset; } else { efi_error("EFI_SIGNATURE_LIST is malformed"); errno = EOVERFLOW; return -1; } } size_t header_sz = sizeof(efi_signature_list_t) + iter->esl->signature_header_size; debug("sizeof(esl):%zd shs:%u hdrsz:%zd", sizeof(efi_signature_list_t), iter->esl->signature_header_size, header_sz); *type = iter->esl->signature_type; *data = (efi_signature_data_t *)((uint8_t *)iter->esl + header_sz); *len = iter->esl->signature_size; return 1; } int NONNULL(1, 2, 3, 4) esl_list_iter_next(esl_list_iter *iter, efi_guid_t *type, efi_signature_data_t **data, size_t *len) { return esl_list_iter_next_with_size_correction(iter, type, data, len, false); } int NONNULL(1, 2) esl_list_list_start(esl_list_iter *iter, void **buf) { if (!iter || !iter->esl || !buf) { errno = EINVAL; return -1; } *buf = iter->buf; return 0; } int NONNULL(1, 2) esl_list_list_size(esl_list_iter *iter, size_t *bufsz) { if (!iter) { errno = EINVAL; return -1; } *bufsz = iter->len; return 0; } int NONNULL(1, 2) esl_list_signature_list_size(esl_list_iter *iter, size_t *sls) { if (!iter || !iter->esl) { errno = EINVAL; return -1; } /* this has to be at least as large as its header to be valid */ if (iter->esl->signature_list_size < sizeof(efi_signature_list_t)) { errno = EINVAL; return -1; } *sls = iter->esl->signature_list_size; return 0; } int NONNULL(1, 2) esl_list_header_size(esl_list_iter *iter, size_t *slh) { if (!iter || !iter->esl) { errno = EINVAL; return -1; } *slh = iter->esl->signature_header_size; return 0; } int NONNULL(1, 2) esl_list_sig_size(esl_list_iter *iter, size_t *ss) { if (!iter || !iter->esl) { errno = EINVAL; return -1; } /* If signature size isn't positive, there's invalid data. */ if (iter->esl->signature_size < 1) { errno = EINVAL; return -1; } *ss = iter->esl->signature_size; return 0; } int NONNULL(1, 2) esl_list_get_type(esl_list_iter *iter, efi_guid_t *type) { if (!iter || !iter->esl) { errno = EINVAL; return -1; } memcpy(type, &iter->esl->signature_type, sizeof(*type)); return 0; } efivar-39/src/esl-iter.h000066400000000000000000000045171455652431600152710ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * Copyright Red Hat, Inc. * Copyright Peter M. Jones * * Author(s): Peter Jones */ #ifndef PRIVATE_ESL_ITER_H_ #define PRIVATE_ESL_ITER_H_ 1 #include "efisec.h" typedef struct esl_iter esl_iter; /* * esl_iter_new - create a new iterator over a efi security database * iter: pointer to a NULL esl_iter pointer. * buf: security database from the file * len: size of the file * * returns 0 on success, negative on error, sets errno. */ extern int esl_iter_new(esl_iter **iter, uint8_t *buf, size_t len) __attribute__((__nonnull__(1, 2))); /* * esl_iter_end - destroy the iterator created by esl_iter_new() * iter: the iterator being destroyed * * returns 0 on success, negative on error, sets errno. */ extern int esl_iter_end(esl_iter *iter) __attribute__((__nonnull__(1))); typedef enum esl_iter_status { ESL_ITER_ERROR = -1, ESL_ITER_DONE = 0, ESL_ITER_NEW_DATA = 1, ESL_ITER_NEW_LIST = 2, } esl_iter_status_t; /* * esl_iter_next - get the next item in the list * iter: the iterator * type: the type of the entry * owner: the owner of the entry * data: the identifying data * len: the size of the data * * returns negative and sets errno on error, * ESL_ITER_ERROR (-1) on error * ESL_ITER_DONE if there weren't any entries (type/owner/data/len are not populated) * ESL_ITER_NEW_DATA if an entry was returned * ESL_ITER_NEW_LIST if an entry was returned and from a new efi_signature_list */ extern esl_iter_status_t esl_iter_next(esl_iter *iter, efi_guid_t *type, efi_guid_t *owner, uint8_t **data, size_t *len) __attribute__((__nonnull__(1, 2, 3, 4, 5))); extern esl_iter_status_t esl_iter_next_with_size_correction(esl_iter *iter, efi_guid_t *type, efi_guid_t *owner, uint8_t **data, size_t *len, bool correct_size) __attribute__((__nonnull__(1, 2, 3, 4, 5))); /* * esl_iter_get_line - tell how many entries have been returned * iter: the iterator * * return value: -1 on error, with errno set, >=0 in all other cases */ extern int esl_iter_get_line(esl_iter *iter) __attribute__((__nonnull__(1))); /* * get the address of the current esd in this esl buffer */ intptr_t esd_get_esl_offset(esl_iter *iter) __attribute__((__nonnull__(1))); #endif /* PRIVATE_ESL_ITER_H_ */ efivar-39/src/export.c000066400000000000000000000376021455652431600150620ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2013 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include "efivar.h" #define EFIVAR_MAGIC 0xf3df1597u #define ATTRS_UNSET 0xa5a5a5a5a5a5a5a5 #define ATTRS_MASK 0xffffffff /* The exported structure is: * struct { * uint32_t magic; * uint32_t version; * uint64_t attr; * efi_guid_t guid; * uint32_t name_len; * uint32_t data_len; * uint16_t name[]; * uint8_t data[]; * uint32_t crc32; * } * * Unfortunately the exported structure from dmpstore is: * struct { * uint32_t name_size; // in bytes * uint32_t data_size; // in bytes * uint16_t name[]; * efi_guid_t guid; * uint32_t attr; * unit8_t data[]; * uint32_t crc32; * } */ #ifdef EFIVAR_BUILD_ENVIRONMENT #error wtf #endif ssize_t NONNULL(1, 3) efi_variable_import_dmpstore(uint8_t *data, size_t size, efi_variable_t **var_out) { efi_variable_t var; uint32_t namesz; uint32_t datasz; size_t min = sizeof (uint32_t) /* name size */ + sizeof (uint32_t) /* data size */ + sizeof (uint16_t) /* two bytes of name */ + sizeof (efi_guid_t) /* guid */ + sizeof (uint32_t) /* attr */ + 1 /* one byte of data */ + sizeof (uint32_t); /* crc32 */ size_t sz = sizeof (uint32_t) /* name size */ + sizeof (uint32_t) /* data size */ + sizeof (efi_guid_t) /* guid */ + sizeof (uint32_t) /* attr */ + sizeof (uint32_t); /* crc32 */ uint8_t *ptr = data; uint32_t crc; int saved_errno; if (size <= min) { etoosmall: errno = EINVAL; efi_error("data size is too small for dmpstore variable (%zu < %zu)", size, min); return -1; } memset(&var, 0, sizeof(var)); namesz = *(uint32_t *)ptr; debug("namesz:%"PRIu32, namesz); ptr += sizeof(uint32_t); if (namesz <= 2) { errno = EINVAL; debug("name size (%"PRIu32") must be greater than 2", namesz); return -1; } if (namesz % 2 != 0) { errno = EINVAL; efi_error("name size (%"PRIu32") cannot be odd", namesz); return -1; } datasz = *(uint32_t *)ptr; ptr += sizeof(uint32_t); debug("datasz:%"PRIu32, datasz); if (datasz == 0) { errno = EINVAL; efi_error("data size (%"PRIu32") must be nonzero", datasz); return -1; } if (ADD(sz, namesz, &sz)) { overflow: errno = EOVERFLOW; efi_error("arithmetic overflow computing allocation size"); return -1; } if (ADD(sz, datasz, &min)) goto overflow; if (size < min) goto etoosmall; size = min; if (!(ptr[namesz - 1] == 0 && ptr[namesz -2] == 0)) { errno = EINVAL; efi_error("variable name is not properly terminated."); return -1; } crc = efi_crc32(data, size - sizeof(uint32_t)); debug("efi_crc32(%p, %zu) -> 0x%"PRIx32", expected 0x%"PRIx32, data, size - sizeof(uint32_t), crc, *(uint32_t*)(data + size - sizeof(uint32_t))); if (memcmp(data + size - sizeof(uint32_t), &crc, sizeof(uint32_t))) { errno = EINVAL; efi_error("crc32 did not match"); return -1; } var.name = ucs2_to_utf8(ptr, -1); if (!var.name) goto oom; ptr += namesz; var.guid = malloc(sizeof (efi_guid_t)); if (!var.guid) goto oom; memcpy(var.guid, ptr, sizeof (efi_guid_t)); ptr += sizeof (efi_guid_t); var.attrs = *(uint32_t *)ptr; ptr += sizeof(uint32_t); var.data_size = datasz; var.data = malloc(datasz); if (!var.data) { efi_error("Could not allocate %"PRIu32" bytes", datasz); goto oom; } memcpy(var.data, ptr, datasz); if (!*var_out) { *var_out =malloc(sizeof (var)); if (!*var_out) goto oom; memcpy(*var_out, &var, sizeof (var)); } else { return -1; } return size; oom: saved_errno = errno; if (var.guid) free(var.guid); if (var.name) free(var.name); if (var.data) free(var.data); errno = saved_errno; efi_error("Could not allocate memory"); return -1; } ssize_t NONNULL(1, 3) efi_variable_import_efivar(uint8_t *data, size_t datasz, efi_variable_t **var_out) { efi_variable_t var; size_t min = sizeof (uint32_t) * 2 /* magic */ + sizeof (uint32_t) /* version */ + sizeof (uint64_t) /* attr */ + sizeof (efi_guid_t) /* guid */ + sizeof (uint32_t) * 2 /* name_len and data_len */ + sizeof (uint16_t) /* two bytes of name */ + 1 /* one byte of data */ + 4; /* crc32 */ uint32_t crc; uint8_t *ptr = data; uint32_t magic = EFIVAR_MAGIC; int test; errno = EINVAL; if (datasz <= min) return -1; test = memcmp(data, &magic, sizeof (uint32_t)); debug("test magic 0: cmp(0x%04x,0x%04x)->%d", *(uint32_t *)data, magic, test); if (test) { errno = EINVAL; efi_error("MAGIC for file format did not match."); return -1; } ptr += sizeof (uint32_t); debug("test version"); if (*(uint32_t *)ptr == 1) { ptr += sizeof (uint32_t); debug("version 1"); var.attrs = *(uint64_t *)ptr; ptr += sizeof (uint64_t); debug("var.attrs:0x%08"PRIx64, var.attrs); var.guid = malloc(sizeof (efi_guid_t)); if (!var.guid) return -1; *var.guid = *(efi_guid_t *)ptr; ptr += sizeof (efi_guid_t); debug("var.guid:"GUID_FORMAT, GUID_FORMAT_ARGS(var.guid)); uint32_t name_len = *(uint32_t *)ptr; ptr += sizeof (uint32_t); debug("name_len:%"PRIu32, name_len); uint32_t data_len = *(uint32_t *)ptr; ptr += sizeof (uint32_t); debug("data_len:%"PRIu32, data_len); min -= 3; min += name_len; min += data_len; if (name_len < 2 || name_len > (datasz - data_len) || data_len < 1 || data_len > (datasz - name_len)) { int saved_errno = errno; free(var.guid); errno = saved_errno; return -1; } crc = efi_crc32(data, datasz - sizeof(uint32_t)); debug("efi_crc32(%p, %zu) -> 0x%"PRIx32", expected 0x%"PRIx32, data, datasz - sizeof(uint32_t), crc, *(uint32_t*)(data + datasz - sizeof(uint32_t))); if (memcmp(data + datasz - sizeof (uint32_t), &crc, sizeof (uint32_t))) { free(var.guid); errno = EINVAL; efi_error("crc32 did not match"); return -1; } var.name = calloc(1, name_len + 1); if (!var.name) { int saved_errno = errno; free(var.guid); errno = saved_errno; return -1; } uint16_t *wname = (uint16_t *)ptr; for (uint32_t i = 0; i < name_len; i++) var.name[i] = wname[i] & 0xff; ptr += name_len; debug("name:%s", var.name); var.data_size = data_len; var.data = malloc(data_len); if (!var.data) { int saved_errno = errno; free(var.guid); free(var.name); errno = saved_errno; return -1; } memcpy(var.data, ptr, data_len); if (!*var_out) { *var_out =malloc(sizeof (var)); if (!*var_out) { int saved_errno = errno; free(var.guid); free(var.name); free(var.data); errno = saved_errno; return -1; } } memcpy(*var_out, &var, sizeof (var)); } else { return -1; } return min; } ssize_t NONNULL(1, 3) PUBLIC efi_variable_import(uint8_t *data, size_t size, efi_variable_t **var_out) { ssize_t rc; rc = efi_variable_import_efivar(data, size, var_out); if (rc >= 0) return rc; rc = efi_variable_import_dmpstore(data, size, var_out); return rc; } ssize_t NONNULL(1) PUBLIC efi_variable_export_dmpstore(efi_variable_t *var, uint8_t *data, size_t datasz) { uint32_t tmpu32; ssize_t tmpssz; uint32_t namesz; uint32_t needed = sizeof (uint32_t) /* name_size */ + sizeof (uint32_t) /* data_size */ + 2 /* name */ + sizeof (efi_guid_t) /* guid */ + sizeof (uint32_t) /* attrs */ + 1 /* data */ + 4; /* crc32 */ uint8_t *ptr; uint32_t crc; if (!var) { errno = EINVAL; efi_error("var cannot be NULL"); return -1; } if (!var->name) { errno = EINVAL; efi_error("var->name cannot be NULL"); return -1; } if (!var->data) { errno = EINVAL; efi_error("var->data cannot be NULL"); return -1; } debug("data: %p datasz: %zu", data, datasz); namesz = utf8size(var->name, -1); debug("sizeof(uint16_t):%zd * namesz:%"PRIu32, sizeof(uint16_t), namesz); if (MUL(sizeof (uint16_t), namesz, &namesz)) { overflow: errno = EOVERFLOW; efi_error("arithmetic overflow computing name size"); return -1; } debug("namesz -> %"PRIu32, namesz); /* * Remove our stand-ins for name size and data size before we add * them back in. */ needed -= 3; debug("needed:%"PRIu32" + namesz:%"PRIu32, needed, namesz); if (ADD(needed, namesz, &needed)) goto overflow; debug("needed -> %"PRIu32, needed); debug("needed:%"PRIu32" + var->data_size:%zd", needed, var->data_size); if (ADD(needed, var->data_size, &needed)) goto overflow; debug("needed -> %"PRIu32, needed); if (!data || datasz == 0) { debug("data: %p datasz: %zd -> returning needed size %"PRIu32, data, datasz, needed); return needed; } debug("datasz:%zu needed: %"PRIu32, datasz, needed); if (datasz < needed) { efi_error("needed: %"PRIu32" datasz: %zd -> returning needed datasz %zu", needed, datasz, needed - datasz); return needed - datasz; } ptr = data; tmpssz = utf8_to_ucs2(ptr + 8, datasz - 8, true, var->name); if (tmpssz < 0) { efi_error("UTF-8 to UCS-2 conversion failed"); return -1; } tmpu32 = tmpssz; tmpu32 *= sizeof(uint16_t); debug("namesz:%"PRIu32" - tmpu32:%"PRIu32, namesz, tmpu32); if (SUB(namesz, tmpu32, &tmpu32)) goto overflow; debug("tmpu32 -> %"PRIu32, tmpu32); debug("namesz:%"PRIu32" - tmpu32:%"PRIu32, namesz, tmpu32); if (SUB(namesz, tmpu32, &namesz)) goto overflow; debug("namesz -> %"PRIu32, namesz); debug("needed:%"PRIu32" - tmpu32:%"PRIu32, needed, tmpu32); if (SUB(needed, tmpu32, &needed)) goto overflow; debug("needed -> %"PRIu32, needed); debug("datasz:%zu needed: %"PRIu32, datasz, needed); if (datasz < needed) { debug("needed: %"PRIu32" datasz: %zd -> returning needed datasz %"PRIu32, needed, datasz, needed); return needed; } *(uint32_t *)ptr = namesz; ptr += sizeof (uint32_t); *(uint32_t *)ptr = var->data_size; ptr += sizeof (uint32_t); ptr += namesz; memcpy(ptr, var->guid, sizeof (efi_guid_t)); ptr += sizeof(efi_guid_t); *(uint32_t *)ptr = var->attrs; ptr += sizeof (uint32_t); memcpy(ptr, var->data, var->data_size); ptr += var->data_size; crc = efi_crc32(data, needed - sizeof(uint32_t)); debug("efi_crc32(%p, %zu) -> 0x%"PRIx32, data, needed - sizeof(uint32_t), crc); *(uint32_t *)ptr = crc; return needed; } ssize_t NONNULL(1) PUBLIC efi_variable_export(efi_variable_t *var, uint8_t *data, size_t datasz) { uint32_t tmpu32; ssize_t tmpssz; uint32_t namesz; uint32_t needed = sizeof (uint32_t) /* magic */ + sizeof (uint32_t) /* version */ + sizeof (uint64_t) /* attr */ + sizeof (efi_guid_t) /* guid */ + sizeof (uint32_t) /* name_len */ + sizeof (uint32_t) /* data_len */ + 2 /* name */ + 1 /* data */ + 4; /* crc32 */ uint8_t *ptr; uint32_t crc; if (!var) { errno = EINVAL; efi_error("var cannot be NULL"); return -1; } if (!var->name) { errno = EINVAL; efi_error("var->name cannot be NULL"); return -1; } if (!var->data) { errno = EINVAL; efi_error("var->data cannot be NULL"); return -1; } debug("data: %p datasz: %zu", data, datasz); namesz = utf8size(var->name, -1); debug("sizeof(uint16_t):%zd * namesz:%"PRIu32, sizeof(uint16_t), namesz); if (MUL(sizeof (uint16_t), namesz, &namesz)) { overflow: errno = EOVERFLOW; efi_error("arithmetic overflow computing name size"); return -1; } debug("namesz -> %"PRIu32, namesz); /* * Remove our stand-ins for name size and data size before we add * them back in. */ needed -= 3; debug("needed:%"PRIu32" + namesz:%"PRIu32, needed, namesz); if (ADD(needed, namesz, &needed)) goto overflow; debug("needed -> %"PRIu32, needed); debug("needed:%"PRIu32" + var->data_size:%zd", needed, var->data_size); if (ADD(needed, var->data_size, &needed)) goto overflow; debug("needed -> %"PRIu32, needed); if (!data || datasz == 0) { debug("data: %p datasz: %zd -> returning needed datasz %"PRIu32, data, datasz, needed); return needed; } debug("datasz:%zu needed: %"PRIu32, datasz, needed); if (datasz < needed) { efi_error("needed: %"PRIu32" datasz: %zd -> returning needed datasz %zd", needed, datasz, needed - datasz); return needed - datasz; } ptr = data; *(uint32_t *)ptr = EFIVAR_MAGIC; ptr += sizeof (uint32_t); *(uint32_t *)ptr = 1; ptr += sizeof (uint32_t); *(uint64_t *)ptr = var->attrs; ptr += sizeof (uint64_t); memcpy(ptr, var->guid, sizeof (efi_guid_t)); ptr += sizeof (efi_guid_t); tmpssz = utf8_to_ucs2(ptr + 8, datasz - 8, true, var->name); if (tmpssz < 0) { efi_error("UTF-8 to UCS-2 conversion failed"); return -1; } tmpu32 = tmpssz; tmpu32 *= sizeof(uint16_t); debug("namesz:%"PRIu32" - tmpu32:%"PRIu32, namesz, tmpu32); if (SUB(namesz, tmpu32, &tmpu32)) goto overflow; debug("tmpu32 -> %"PRIu32, tmpu32); debug("needed:%"PRIu32" - tmpu32:%"PRIu32, needed, tmpu32); if (SUB(needed, tmpu32, &needed)) goto overflow; debug("needed -> %"PRIu32, needed); debug("namesz:%"PRIu32" - tmpu32:%"PRIu32, namesz, tmpu32); if (SUB(namesz, tmpu32, &namesz)) goto overflow; debug("namesz -> %"PRIu32, namesz); debug("datasz:%zu needed: %"PRIu32, datasz, needed); if (datasz < needed) { efi_error("needed: %"PRIu32" datasz: %zd -> returning needed datasz %zd", needed, datasz, needed - datasz); return needed - datasz; } *(uint32_t *)ptr = namesz; ptr += sizeof (uint32_t); *(uint32_t *)ptr = var->data_size; ptr += sizeof (uint32_t); ptr += namesz; memcpy(ptr, var->data, var->data_size); ptr += var->data_size; crc = efi_crc32(data, needed - sizeof(uint32_t)); debug("efi_crc32(%p, %zu) -> 0x%"PRIx32, data, needed - sizeof(uint32_t), crc); *(uint32_t *)ptr = crc; return needed; } efi_variable_t PUBLIC * efi_variable_alloc(void) { efi_variable_t *var = calloc(1, sizeof (efi_variable_t)); if (!var) return NULL; var->attrs = ATTRS_UNSET; return var; } void PUBLIC efi_variable_free(efi_variable_t *var, int free_data) { if (!var) return; if (free_data) { if (var->guid) free(var->guid); if (var->name) free(var->name); if (var->data && var->data_size) free(var->data); } memset(var, '\0', sizeof (*var)); free(var); } int NONNULL(1, 2) PUBLIC efi_variable_set_name(efi_variable_t *var, unsigned char *name) { var->name = name; return 0; } unsigned char PUBLIC NONNULL(1) * efi_variable_get_name(efi_variable_t *var) { if (!var->name) { errno = ENOENT; } else { errno = 0; } return var->name; } int NONNULL(1, 2) PUBLIC efi_variable_set_guid(efi_variable_t *var, efi_guid_t *guid) { var->guid = guid; return 0; } int NONNULL(1, 2) PUBLIC efi_variable_get_guid(efi_variable_t *var, efi_guid_t **guid) { if (!var->guid) { errno = ENOENT; return -1; } *guid = var->guid; return 0; } int NONNULL(1, 2) PUBLIC efi_variable_set_data(efi_variable_t *var, uint8_t *data, size_t size) { if (!size) { errno = EINVAL; return -1; } var->data = data; var->data_size = size; return 0; } ssize_t NONNULL(1, 2, 3) PUBLIC efi_variable_get_data(efi_variable_t *var, uint8_t **data, size_t *size) { if (!var->data || !var->data_size) { errno = ENOENT; return -1; } *data = var->data; *size = var->data_size; return 0; } int NONNULL(1) PUBLIC efi_variable_set_attributes(efi_variable_t *var, uint64_t attrs) { var->attrs = attrs; return 0; } int NONNULL(1, 2) PUBLIC efi_variable_get_attributes(efi_variable_t *var, uint64_t *attrs) { if (var->attrs == ATTRS_UNSET) { errno = ENOENT; return -1; } *attrs = var->attrs; return 0; } int NONNULL(1) PUBLIC efi_variable_realize(efi_variable_t *var) { if (!var->name || !var->data || !var->data_size || var->attrs == ATTRS_UNSET) { errno = -EINVAL; return -1; } if (var->attrs & EFI_VARIABLE_HAS_AUTH_HEADER && !(var->attrs & EFI_VARIABLE_HAS_SIGNATURE)) { errno = -EPERM; return -1; } uint32_t attrs = var->attrs & ATTRS_MASK; if (attrs & EFI_VARIABLE_APPEND_WRITE) { return efi_append_variable(*var->guid, (char *)var->name, var->data, var->data_size, attrs); } return efi_set_variable(*var->guid, (char *)var->name, var->data, var->data_size, attrs, 0600); } // vim:fenc=utf-8:tw=75:noet efivar-39/src/fix_coverity.h000066400000000000000000000064511455652431600162560ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * fix_coverity.h * Copyright 2017 Peter Jones * */ #ifndef FIX_COVERITY_H #define FIX_COVERITY_H #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif #ifndef __COVERITY_GCC_VERSION_AT_LEAST #define __COVERITY_GCC_VERSION_AT_LEAST(x, y) 0 #define FAKE__COVERITY_GCC_VERSION_AT_LEAST__ #endif /* __COVERITY_GCC_VERSION_AT_LEAST */ /* With gcc 7 on x86_64 (at least), coverity pretends to be GCC but * accidentally doesn't create all of the types GCC would. * * In glibc's headers, bits/floatn.h has: * * #if (defined __x86_64__ \ * ? __GNUC_PREREQ (4, 3) \ * : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) * # define __HAVE_FLOAT128 1 * #else * # define __HAVE_FLOAT128 0 * #endif * * and stdlib.h has: * * #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) * slash* Likewise for the '_Float128' format *slash * extern _Float128 strtof128 (const char *__restrict __nptr, * char **__restrict __endptr) * __THROW __nonnull ((1)); * #endif * * Which then causes cov-emit to lose its shit: * * "/usr/include/stdlib.h", line 133: error #20: identifier "_Float128" is undefined * extern _Float128 strtof128 (const char *__restrict __nptr, * ^ * "/usr/include/stdlib.h", line 190: error #20: identifier "_Float128" is undefined * _Float128 __f) * ^ * "/usr/include/stdlib.h", line 236: error #20: identifier "_Float128" is undefined * extern _Float128 strtof128_l (const char *__restrict __nptr, * ^ * * And then you'll notice something like this later on: * [WARNING] Emitted 0 C/C++ compilation units (0%) successfully * * 0 C/C++ compilation units (0%) are ready for analysis * For more details, please look at: * /home/pjones/devel/github.com/dbxtool/master/cov-int/build-log.txt * * You would think that if you're writing something that pretends to be * gcc, and you've got a "build a configuration by running shit through gcc * and looking at the output" stage (which they do), you would run "gcc -da * -fdump-tree-all -c -o foo.o foo.c" on an empty file and snarf up all the * types defined in the foo.c.001t.tu output. Apparently, they do not. * * Anyway, even just defining the type doesn't always work in the face of * how _Complex is defined, so we cheat a bit here. Be prepared to vomit. */ #ifdef __x86_64__ #if __COVERITY_GCC_VERSION_AT_LEAST(7, 0) #include #ifdef __attribute_malloc__ #undef __attribute_malloc__ #define __attribute_malloc__ #endif #ifdef __attr_dealloc #undef __attr_dealloc #define __attr_dealloc(a, b) #endif #if 0 typedef float _Float128 __attribute__((__mode__(__TF__))); typedef __complex__ float __cfloat128 __attribute__ ((__mode__ (__TC__))); typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); #elif __GNUC__ >= 11 #define _Mdouble_complex_ #define _COMPLEX_H #ifdef __MATHCALL #undef __MATCHALL #define __MATHCALL(x) #include #undef _COMPLEX_H #include #endif #else #include #define __cplusplus 201103L #include #undef __cplusplus #endif #endif #endif #ifdef FAKE__COVERITY_GCC_VERSION_AT_LEAST__ #undef FAKE__COVERITY_GCC_VERSION_AT_LEAST #undef __COVERITY_GCC_VERSION_AT_LEAST #endif #endif /* !FIX_COVERITY_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/generics.h000066400000000000000000000077331455652431600153470ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * Copyright 2012-2016 Red Hat, Inc. */ #ifndef EFIVAR_BUILD_ENVIRONMENT #ifndef LIBEFIVAR_GENERIC_NEXT_VARIABLE_NAME_H #define LIBEFIVAR_GENERIC_NEXT_VARIABLE_NAME_H 1 #include #include #include #include #include #include #include #include static DIR *dir; static inline int UNUSED generic_get_next_variable_name(const char *path, efi_guid_t **guid, char **name) { static char ret_name[NAME_MAX+1]; static efi_guid_t ret_guid; if (!guid || !name) { errno = EINVAL; efi_error("invalid arguments"); return -1; } /* if only one of guid and name are null, there's no "next" variable, * because the current variable is invalid. */ if ((*guid == NULL && *name != NULL) || (*guid != NULL && *name == NULL)) { errno = EINVAL; efi_error("invalid arguments"); return -1; } /* if dir is NULL, we're also starting over */ if (!dir) { dir = opendir(path); if (!dir) { efi_error("opendir(%s) failed", path); return -1; } int fd = dirfd(dir); if (fd < 0) { __typeof__(errno) errno_value = errno; efi_error("dirfd failed"); closedir(dir); errno = errno_value; return -1; } int flags = fcntl(fd, F_GETFD); if (flags < 0) { efi_error("fcntl(fd, F_GETFD) failed"); } else { flags |= FD_CLOEXEC; if (fcntl(fd, F_SETFD, flags) < 0) efi_error("fcntl(fd, F_SETFD, flags | FD_CLOEXEC) failed"); } *guid = NULL; *name = NULL; } struct dirent *de = NULL; char *guidtext = "8be4df61-93ca-11d2-aa0d-00e098032b8c"; size_t guidlen = strlen(guidtext); while (1) { de = readdir(dir); if (de == NULL) { closedir(dir); dir = NULL; return 0; } /* a proper entry must have space for a guid, a dash, and * the variable name */ size_t namelen = strlen(de->d_name); if (namelen < guidlen + 2) continue; int rc = text_to_guid(de->d_name +namelen -guidlen, &ret_guid); if (rc < 0) { closedir(dir); dir = NULL; errno = EINVAL; efi_error("text_to_guid failed"); return -1; } strncpy(ret_name, de->d_name, sizeof(ret_name)); ret_name[namelen - guidlen - 1] = '\0'; *guid = &ret_guid; *name = ret_name; break; } return 1; } static void DESTRUCTOR close_dir(void); static void DESTRUCTOR close_dir(void) { if (dir != NULL) { closedir(dir); dir = NULL; } } /* this is a simple read/delete/write implementation of "update". Good luck. * -- pjones */ static int UNUSED FLATTEN generic_append_variable(efi_guid_t guid, const char *name, const uint8_t *new_data, size_t new_data_size, uint32_t new_attributes) { int rc; uint8_t *data = NULL; size_t data_size = 0; uint32_t attributes = 0; rc = efi_get_variable(guid, name, &data, &data_size, &attributes); if (rc >= 0) { if ((attributes | EFI_VARIABLE_APPEND_WRITE) != (new_attributes | EFI_VARIABLE_APPEND_WRITE)) { free(data); errno = EINVAL; return -1; } uint8_t *d = malloc(data_size + new_data_size); size_t ds = data_size + new_data_size; memcpy(d, data, data_size); memcpy(d + data_size, new_data, new_data_size); attributes &= ~EFI_VARIABLE_APPEND_WRITE; rc = efi_del_variable(guid, name); if (rc < 0) { efi_error("efi_del_variable failed"); free(data); free(d); return rc; } /* if this doesn't work, we accidentally deleted. There's * really not much to do about it, so return the error and * let our caller attempt to clean up :/ */ rc = efi_set_variable(guid, name, d, ds, attributes, 0600); if (rc < 0) efi_error("efi_set_variable failed"); free(d); free(data); } else if (rc < 0 && errno == ENOENT) { attributes = new_attributes & ~EFI_VARIABLE_APPEND_WRITE; rc = efi_set_variable(guid, name, new_data, new_data_size, attributes, 0600); } if (rc < 0) efi_error("efi_set_variable failed"); return rc; } #endif /* LIBEFIVAR_GENERIC_NEXT_VARIABLE_NAME_H */ #endif /* EFIVAR_BUILD_ENVIRONMENT */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/gpt.c000066400000000000000000000472301455652431600143310ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * gpt.[ch] * Copyright (C) 2000-2001 Dell Computer Corporation * * EFI GUID Partition Table handling * Per Intel EFI Specification v1.02 * http://developer.intel.com/technology/efi/efi.htm */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include "efivar.h" #ifndef BLKGETLASTSECT #define BLKGETLASTSECT _IO(0x12,108) /* get last sector of block device */ #endif struct blkdev_ioctl_param { unsigned int block; size_t content_length; char * block_contents; }; /** * is_pmbr_valid(): test Protective MBR for validity * @mbr: pointer to a legacy mbr structure * * Description: Returns 1 if PMBR is valid, 0 otherwise. * Validity depends on two things: * 1) MSDOS magic is in the last two bytes of the MBR * 2) One partition of type 0xEE is found */ static int is_pmbr_valid(legacy_mbr *mbr) { int i, found = 0, magic = 0; if (!mbr) return 0; magic = (le16_to_cpu(mbr->magic) == MSDOS_MBR_MAGIC); for (i = 0; magic && i < 4; i++) { if (mbr->partition[i].os_type == EFI_PMBR_OSTYPE_EFI_GPT) { found = 1; break; } } return (magic && found); } /** * kernel_has_blkgetsize64() * * Returns: 0 on false, 1 on true * True means kernel is 2.4.x, x>=18, or * is 2.5.x, x>4, or * is > 2.5 */ static int kernel_has_blkgetsize64(void) { int major=0, minor=0, patch=0, parsed; int rc; struct utsname u; memset(&u, 0, sizeof(u)); rc = uname(&u); if (rc) return 0; parsed = sscanf(u.release, "%d.%d.%d", &major, &minor, &patch); /* If the kernel is 2.4.15-2.4.18 and 2.5.0-2.5.3, i.e. the problem * kernels, then this will get 3 answers. If it doesn't, it isn't. */ if (parsed != 3) return 1; if (major == 2 && minor == 5 && patch < 4) return 0; if (major == 2 && minor == 4 && patch >= 15 && patch <= 18) return 0; return 1; } /************************************************************ * _get_num_sectors * Requires: * - filedes is an open file descriptor, suitable for reading * Modifies: nothing * Returns: * Last LBA value on success * 0 on error * * Try getting BLKGETSIZE64 and BLKSSZGET first, * then BLKGETSIZE if necessary. * Kernels 2.4.15-2.4.18 and 2.5.0-2.5.3 have a broken BLKGETSIZE64 * which returns the number of 512-byte sectors, not the size of * the disk in bytes. Fixed in kernels 2.4.18-pre8 and 2.5.4-pre3. ************************************************************/ static uint64_t _get_num_sectors(int filedes) { unsigned long sectors=0; uint64_t bytes=0; int rc; if (kernel_has_blkgetsize64()) { rc = ioctl(filedes, BLKGETSIZE64, &bytes); if (!rc) return bytes / get_sector_size(filedes); } rc = ioctl(filedes, BLKGETSIZE, §ors); if (rc) return 0; return sectors; } /************************************************************ * last_lba(): return number of last logical block of device * * @fd * * Description: returns Last LBA value on success, 0 on error. * Notes: The value st_blocks gives the size of the file * in 512-byte blocks, which is OK if * EFI_BLOCK_SIZE_SHIFT == 9. ************************************************************/ static uint64_t last_lba(int filedes) { int rc; uint64_t sectors = 0; struct stat s; memset(&s, 0, sizeof (s)); rc = fstat(filedes, &s); if (rc == -1) { efi_error("last_lba() could not stat: %s", strerror(errno)); return 0; } if (S_ISBLK(s.st_mode)) { sectors = _get_num_sectors(filedes); } else { efi_error("last_lba(): I don't know how to handle files with mode %x", s.st_mode); sectors = 1; } return sectors - 1; } static ssize_t read_lastoddsector(int fd, void *buffer, size_t count) { int rc; struct blkdev_ioctl_param ioctl_param; if (!buffer) return 0; ioctl_param.block = 0; /* read the last sector */ ioctl_param.content_length = count; ioctl_param.block_contents = buffer; rc = ioctl(fd, BLKGETLASTSECT, &ioctl_param); if (rc == -1) efi_error("read failed"); return !rc; } static ssize_t read_lba(int fd, uint64_t lba, void *buffer, size_t bytes) { int sector_size = get_sector_size(fd); off_t offset = lba * sector_size; ssize_t bytesread; void *iobuf; size_t iobuf_size; int rc; off_t new_offset; iobuf_size = lcm(bytes, sector_size); rc = posix_memalign(&iobuf, sector_size, iobuf_size); if (rc) return rc; memset(iobuf, 0, bytes); new_offset = lseek(fd, offset, SEEK_SET); if (new_offset == (off_t)-1) { free(iobuf); return 0; } bytesread = read(fd, iobuf, iobuf_size); memcpy(buffer, iobuf, bytes); free(iobuf); /* Kludge. This is necessary to read/write the last block of an odd-sized disk, until Linux 2.5.x kernel fixes. This is only used by gpt.c, and only to read one sector, so we don't have to be fancy. */ if (!bytesread && !(last_lba(fd) & 1) && lba == last_lba(fd)) { bytesread = read_lastoddsector(fd, buffer, bytes); } return bytesread; } /** * alloc_read_gpt_entries(): reads partition entries from disk * @fd is an open file descriptor to the whole disk * @gpt is a buffer into which the GPT will be put * Description: Returns ptes on success, NULL on error. * Allocates space for PTEs based on information found in @gpt. * Notes: remember to free pte when you're done! */ static gpt_entry * alloc_read_gpt_entries(int fd, uint32_t nptes, uint32_t ptesz, uint64_t ptelba) { gpt_entry *pte; size_t count = nptes * ptesz; if (!count) return NULL; pte = (gpt_entry *)malloc(count); if (!pte) return NULL; memset(pte, 0, count); if (!read_lba(fd, ptelba, pte, count)) { free(pte); return NULL; } return pte; } /** * alloc_read_gpt_header(): Allocates GPT header, reads into it from disk * @fd is an open file descriptor to the whole disk * @lba is the Logical Block Address of the partition table * * Description: returns GPT header on success, NULL on error. Allocates * and fills a GPT header starting at @ from @bdev. * Note: remember to free gpt when finished with it. */ static gpt_header * alloc_read_gpt_header(int fd, uint64_t lba) { gpt_header *gpt; gpt = (gpt_header *) malloc(sizeof (gpt_header)); if (!gpt) return NULL; memset(gpt, 0, sizeof (*gpt)); if (!read_lba(fd, lba, gpt, sizeof (gpt_header))) { free(gpt); return NULL; } return gpt; } /** * validate_nptes(): Tries to ensure that nptes is a reasonable value * @first_block is the beginning LBA to bound the table * @pte_start is the starting LBA of the partition table * @last_block is the end LBA of to bound the table * @ptesz is the size of a partition table entry * @nptes is the number of entries we have. * @blksz is the block size of the device. * * Description: returns 0 if the partition table doesn't fit, 1 if it does */ static int validate_nptes(uint64_t first_block, uint64_t pte_start, uint64_t last_block, uint32_t ptesz, uint32_t nptes, uint32_t blksz) { uint32_t min_entry_size = sizeof(gpt_entry); uint32_t min_entry_size_mod = 128 - sizeof(gpt_entry) % 128; uint64_t max_blocks, max_bytes; if (min_entry_size_mod == 128) min_entry_size_mod = 0; min_entry_size += min_entry_size_mod; if (ptesz < min_entry_size) return 0; if (pte_start < first_block || pte_start > last_block) return 0; max_blocks = last_block - pte_start; if (UINT64_MAX / blksz < max_blocks) return 0; max_bytes = max_blocks * blksz; if (UINT64_MAX / ptesz < max_bytes) return 0; if (ptesz > max_bytes / nptes) return 0; if (max_bytes / ptesz < nptes) return 0; return 1; } static int check_lba(uint64_t lba, uint64_t lastlba, char *name) { if (lba > lastlba) { efi_error("Invalid %s LBA %"PRIx64" max:%"PRIx64, name, lba, lastlba); return 0; } return 1; } /** * is_gpt_valid() - tests one GPT header and PTEs for validity * @fd is an open file descriptor to the whole disk * @lba is the logical block address of the GPT header to test * @gpt is a GPT header ptr, filled on return. * @ptes is a PTEs ptr, filled on return. * * Description: returns 1 if valid, 0 on error. * If valid, returns pointers to newly allocated GPT header and PTEs. */ static int is_gpt_valid(int fd, uint64_t lba, gpt_header ** gpt, gpt_entry ** ptes, uint32_t logical_block_size) { int rc = 0; /* default to not valid */ uint32_t crc, origcrc; uint64_t max_device_lba = last_lba(fd); if (!gpt || !ptes) return 0; if (!(*gpt = alloc_read_gpt_header(fd, lba))) return 0; /* Check the GUID Partition Table magic */ if (le64_to_cpu((*gpt)->magic) != GPT_HEADER_MAGIC) { efi_error("GUID Partition Table Header magic is wrong: %"PRIx64" != %"PRIx64, (uint64_t)le64_to_cpu((*gpt)->magic), GPT_HEADER_MAGIC); free(*gpt); *gpt = NULL; return rc; } uint32_t hdrsz = le32_to_cpu((*gpt)->header_size); uint32_t hdrmin = MAX(92, sizeof(gpt_header) - sizeof((*gpt)->reserved2)); if (hdrsz < hdrmin || hdrsz > logical_block_size) { efi_error("GUID Partition Table Header size is invalid (%d < %d < %d)", hdrmin, hdrsz, logical_block_size); free (*gpt); *gpt = NULL; return rc; } /* Check the GUID Partition Table Header CRC */ origcrc = le32_to_cpu((*gpt)->header_crc32); (*gpt)->header_crc32 = 0; crc = efi_crc32(*gpt, le32_to_cpu((*gpt)->header_size)); if (crc != origcrc) { efi_error("GPTH CRC check failed, %x != %x.", origcrc, crc); (*gpt)->header_crc32 = cpu_to_le32(origcrc); free(*gpt); *gpt = NULL; return 0; } (*gpt)->header_crc32 = cpu_to_le32(origcrc); /* Check that the my_lba entry points to the LBA * that contains the GPT we read */ uint64_t mylba = le64_to_cpu((*gpt)->my_lba); uint64_t altlba = le64_to_cpu((*gpt)->alternate_lba); if (mylba != lba && altlba != lba) { efi_error("lba %"PRIx64" != lba %"PRIx64".", mylba, lba); err: free(*gpt); *gpt = NULL; return 0; } if (!check_lba(mylba, max_device_lba, "GPT")) goto err; if (!check_lba(altlba, max_device_lba, "GPT Alt")) goto err; uint64_t ptelba = le64_to_cpu((*gpt)->partition_entry_lba); uint64_t fulba = le64_to_cpu((*gpt)->first_usable_lba); uint64_t lulba = le64_to_cpu((*gpt)->last_usable_lba); uint32_t nptes = le32_to_cpu((*gpt)->num_partition_entries); uint32_t ptesz = le32_to_cpu((*gpt)->sizeof_partition_entry); if (!check_lba(ptelba, max_device_lba, "PTE")) goto err; if (!check_lba(fulba, max_device_lba, "First Usable")) goto err; if (!check_lba(lulba, max_device_lba, "Last Usable")) goto err; if (ptesz < sizeof(gpt_entry) || ptesz % 128 != 0) { efi_error("Invalid GPT entry size is %d.", ptesz); goto err; } /* There's really no good answer to maximum bounds, but this large * would be completely absurd, so... */ if (nptes > 1024) { efi_error("Not honoring insane number of Partition Table Entries 0x%"PRIx32".", nptes); goto err; } if (ptesz > 4096) { efi_error("Not honoring insane Partition Table Entry size 0x%"PRIx32".", ptesz); goto err; } uint64_t pte_blocks; uint64_t firstlba, lastlba; if (altlba > mylba) { firstlba = mylba + 1; lastlba = fulba; pte_blocks = fulba - ptelba; rc = validate_nptes(firstlba, ptelba, fulba, ptesz, nptes, logical_block_size); } else { firstlba = lulba; lastlba = mylba; pte_blocks = mylba - ptelba; rc = validate_nptes(lulba, ptelba, mylba, ptesz, nptes, logical_block_size); } if (!rc) { efi_error("%"PRIu32" partition table entries with size 0x%"PRIx32" doesn't fit in 0x%"PRIx64" blocks between 0x%"PRIx64" and 0x%"PRIx64".", nptes, ptesz, pte_blocks, firstlba, lastlba); goto err; } if (!(*ptes = alloc_read_gpt_entries(fd, nptes, ptesz, ptelba))) { free(*gpt); *gpt = NULL; return 0; } /* Check the GUID Partition Entry Array CRC */ crc = efi_crc32(*ptes, nptes * ptesz); if (crc != le32_to_cpu((*gpt)->partition_entry_array_crc32)) { efi_error("GUID Partitition Entry Array CRC check failed."); free(*gpt); *gpt = NULL; free(*ptes); *ptes = NULL; return 0; } /* We're done, all's well */ return 1; } /** * compare_gpts() - Search disk for valid GPT headers and PTEs * @pgpt is the primary GPT header * @agpt is the alternate GPT header * @lastlba is the last LBA number * Description: Returns nothing. Sanity checks pgpt and agpt fields * and prints warnings on discrepancies. * */ static void compare_gpts(gpt_header *pgpt, gpt_header *agpt, uint64_t lastlba) { int error_found = 0; if (!pgpt || !agpt) return; if (le64_to_cpu(pgpt->my_lba) != le64_to_cpu(agpt->alternate_lba)) { efi_error("GPT:Primary header LBA != Alt. header alternate_lba" "GPT:0x%" PRIx64 " != 0x%" PRIx64, (uint64_t)le64_to_cpu(pgpt->my_lba), (uint64_t)le64_to_cpu(agpt->alternate_lba)); error_found++; } if (le64_to_cpu(pgpt->alternate_lba) != le64_to_cpu(agpt->my_lba)) { efi_error("GPT:Primary header alternate_lba != Alt. header my_lba" "GPT:0x%" PRIx64 " != 0x%" PRIx64, (uint64_t)le64_to_cpu(pgpt->alternate_lba), (uint64_t)le64_to_cpu(agpt->my_lba)); error_found++; } if (le64_to_cpu(pgpt->first_usable_lba) != le64_to_cpu(agpt->first_usable_lba)) { efi_error("GPT:first_usable_lbas don't match." "GPT:0x%" PRIx64 " != 0x%" PRIx64, (uint64_t)le64_to_cpu(pgpt->first_usable_lba), (uint64_t)le64_to_cpu(agpt->first_usable_lba)); error_found++; } if (le64_to_cpu(pgpt->last_usable_lba) != le64_to_cpu(agpt->last_usable_lba)) { efi_error("GPT:last_usable_lbas don't match." "GPT:0x%" PRIx64 " != 0x%" PRIx64, (uint64_t)le64_to_cpu(pgpt->last_usable_lba), (uint64_t)le64_to_cpu(agpt->last_usable_lba)); error_found++; } if (memcmp(&pgpt->disk_guid, &agpt->disk_guid, sizeof (pgpt->disk_guid))) { efi_error("GPT:disk_guids don't match."); error_found++; } if (le32_to_cpu(pgpt->num_partition_entries) != le32_to_cpu(agpt->num_partition_entries)) { efi_error("GPT:num_partition_entries don't match: 0x%x != 0x%x", le32_to_cpu(pgpt->num_partition_entries), le32_to_cpu(agpt->num_partition_entries)); error_found++; } if (le32_to_cpu(pgpt->sizeof_partition_entry) != le32_to_cpu(agpt->sizeof_partition_entry)) { efi_error("GPT:sizeof_partition_entry values don't match: 0x%x != 0x%x", le32_to_cpu(pgpt->sizeof_partition_entry), le32_to_cpu(agpt->sizeof_partition_entry)); error_found++; } if (le32_to_cpu(pgpt->partition_entry_array_crc32) != le32_to_cpu(agpt->partition_entry_array_crc32)) { efi_error("GPT:partition_entry_array_crc32 values don't match: 0x%x != 0x%x", le32_to_cpu(pgpt->partition_entry_array_crc32), le32_to_cpu(agpt->partition_entry_array_crc32)); error_found++; } if (le64_to_cpu(pgpt->alternate_lba) != lastlba) { efi_error("GPT:Primary header thinks Alt. header is not at the end of the disk." "GPT:0x%" PRIx64 " != 0x%" PRIx64, (uint64_t)le64_to_cpu(pgpt->alternate_lba), lastlba); error_found++; } if (le64_to_cpu(agpt->my_lba) != lastlba) { efi_error("GPT:Alternate GPT header not at the end of the disk." "GPT:0x%" PRIx64 " != 0x%" PRIx64, (uint64_t)le64_to_cpu(agpt->my_lba), lastlba); error_found++; } if (error_found) efi_error("GPT: Use GNU Parted to correct GPT errors."); } /** * find_valid_gpt() - Search disk for valid GPT headers and PTEs * @fd is an open file descriptor to the whole disk * @gpt is a GPT header ptr, filled on return. * @ptes is a PTEs ptr, filled on return. * Description: Returns 1 if valid, 0 on error. * If valid, returns pointers to newly allocated GPT header and PTEs. * Validity depends on finding either the Primary GPT header and PTEs valid, * or the Alternate GPT header and PTEs valid, and the PMBR valid. */ static int find_valid_gpt(int fd, gpt_header ** gpt, gpt_entry ** ptes, int ignore_pmbr_err, int logical_block_size) { int good_pgpt = 0, good_agpt = 0, good_pmbr = 0; gpt_header *pgpt = NULL, *agpt = NULL; gpt_entry *pptes = NULL, *aptes = NULL; legacy_mbr *legacymbr = NULL; uint64_t lastlba; int ret = -1; errno = EINVAL; if (!gpt || !ptes) return -1; lastlba = last_lba(fd); good_pgpt = is_gpt_valid(fd, GPT_PRIMARY_PARTITION_TABLE_LBA, &pgpt, &pptes, logical_block_size); if (good_pgpt) { good_agpt = is_gpt_valid(fd, le64_to_cpu(pgpt->alternate_lba), &agpt, &aptes, logical_block_size); if (!good_agpt) { good_agpt = is_gpt_valid(fd, lastlba, &agpt, &aptes, logical_block_size); } } else { good_agpt = is_gpt_valid(fd, lastlba, &agpt, &aptes, logical_block_size); } /* The obviously unsuccessful case */ if (!good_pgpt && !good_agpt) { goto fail; } /* This will be added to the EFI Spec. per Intel after v1.02. */ legacymbr = malloc(sizeof (*legacymbr)); if (legacymbr) { memset(legacymbr, 0, sizeof (*legacymbr)); read_lba(fd, 0, (uint8_t *) legacymbr, sizeof (*legacymbr)); good_pmbr = is_pmbr_valid(legacymbr); free(legacymbr); legacymbr=NULL; } /* Failure due to bad PMBR */ if ((good_pgpt || good_agpt) && !good_pmbr && !ignore_pmbr_err) { efi_error("Primary GPT is invalid, using alternate GPT."); goto fail; } /* Would fail due to bad PMBR, but force GPT anyhow */ if ((good_pgpt || good_agpt) && !good_pmbr && ignore_pmbr_err) { efi_error(" Warning: Disk has a valid GPT magic but invalid PMBR.\n" " Use GNU Parted to correct disk.\n" " gpt option taken, disk treated as GPT."); } compare_gpts(pgpt, agpt, lastlba); /* The good cases */ if (good_pgpt && (good_pmbr || ignore_pmbr_err)) { *gpt = pgpt; *ptes = pptes; } else if (good_agpt && (good_pmbr || ignore_pmbr_err)) { *gpt = agpt; *ptes = aptes; } ret = 0; errno = 0; fail: if (pgpt && (pgpt != *gpt || ret < 0)) { free(pgpt); pgpt=NULL; } if (pptes && (pptes != *ptes || ret < 0)) { free(pptes); pptes=NULL; } if (agpt && (agpt != *gpt || ret < 0)) { free(agpt); agpt=NULL; } if (aptes && (aptes != *ptes || ret < 0)) { free(aptes); aptes=NULL; } if (ret < 0) { *gpt = NULL; *ptes = NULL; } return ret; } /************************************************************ * gpt_disk_get_partition_info() * Requires: * - open file descriptor fd * - start, size, signature, mbr_type, signature_type * Modifies: all these * Returns: * 0 on success * non-zero on failure * ************************************************************/ int NONNULL(3, 4, 5, 6, 7) HIDDEN gpt_disk_get_partition_info(int fd, uint32_t num, uint64_t * start, uint64_t * size, efi_guid_t *signature, uint8_t * mbr_type, uint8_t * signature_type, int ignore_pmbr_error, int logical_block_size) { gpt_header *gpt = NULL; gpt_entry *ptes = NULL, *p; int rc = 0; rc = find_valid_gpt(fd, &gpt, &ptes, ignore_pmbr_error, logical_block_size); if (rc < 0) return rc; *mbr_type = 0x02; *signature_type = 0x02; if (num > 0 && num <= le32_to_cpu(gpt->num_partition_entries)) { p = &ptes[num - 1]; *start = le64_to_cpu(p->starting_lba); *size = le64_to_cpu(p->ending_lba) - le64_to_cpu(p->starting_lba) + 1; memcpy(signature, &p->unique_partition_guid, sizeof (p->unique_partition_guid)); } else { efi_error("partition %d is not valid", num); errno = EINVAL; rc = -1; } free(ptes); free(gpt); return rc; } /* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically * adjust the settings for this buffer only. This must remain at the end * of the file. * --------------------------------------------------------------------------- * Local variables: * c-indent-level: 4 * c-brace-imaginary-offset: 0 * c-brace-offset: -4 * c-argdecl-indent: 4 * c-label-offset: -4 * c-continued-statement-offset: 4 * c-continued-brace-offset: 0 * indent-tabs-mode: nil * tab-width: 8 * End: */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/gpt.h000066400000000000000000000120341455652431600143300ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * gpt.[ch] * Copyright (C) 2000-2001 Dell Computer Corporation * Copyright 2015-2020 Red Hat, Inc. * Copyright 2015-2020 Peter M. Jones * * EFI GUID Partition Table handling * Per Intel EFI Specification v1.02 * http://developer.intel.com/technology/efi/efi.htm */ #ifndef _EFIBOOT_GPT_H #define _EFIBOOT_GPT_H #include #include "include/efivar/efivar-types.h" #include "compiler.h" #define EFI_PMBR_OSTYPE_EFI ((uint8_t)0xEF) #define EFI_PMBR_OSTYPE_EFI_GPT ((uint8_t)0xEE) #define MSDOS_MBR_MAGIC ((uint16_t)0xaa55) #define GPT_BLOCK_SIZE 512 #define GPT_HEADER_MAGIC ((uint64_t)(0x5452415020494645ULL)) #define GPT_HEADER_REVISION_V1_02 0x00010200 #define GPT_HEADER_REVISION_V1_00 0x00010000 #define GPT_HEADER_REVISION_V0_99 0x00009900 #define GPT_PRIMARY_PARTITION_TABLE_LBA 1 #define PARTITION_SYSTEM_GUID \ EFI_GUID(0xC12A7328, 0xF81F, 0x11d2, 0xBA4B, \ 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B) #define LEGACY_MBR_PARTITION_GUID \ EFI_GUID(0x024DEE41, 0x33E7, 0x11d3, 0x9D69, \ 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F) #define PARTITION_MSFT_RESERVED_GUID \ EFI_GUID(0xE3C9E316, 0x0B5C, 0x4DB8, 0x817D, \ 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE) #define PARTITION_BASIC_DATA_GUID \ EFI_GUID(0xEBD0A0A2, 0xB9E5, 0x4433, 0x87C0, \ 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7) #define PARTITION_LINUX_RAID_GUID \ EFI_GUID(0xa19d880f, 0x05fc, 0x4d3b, 0xA006, \ 0x74, 0x3f, 0x0f, 0x84, 0x91, 0x1e) #define PARTITION_LINUX_SWAP_GUID \ EFI_GUID(0x0657fd6d, 0xa4ab, 0x43c4, 0x84E5, \ 0x09, 0x33, 0xc8, 0x4b, 0x4f, 0x4f) #define PARTITION_LINUX_LVM_GUID \ EFI_GUID(0xe6d6d379, 0xf507, 0x44c2, 0xa23c, \ 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28) typedef struct _gpt_header { uint64_t magic; uint32_t revision; uint32_t header_size; uint32_t header_crc32; uint32_t reserved1; uint64_t my_lba; uint64_t alternate_lba; uint64_t first_usable_lba; uint64_t last_usable_lba; efi_guid_t disk_guid; uint64_t partition_entry_lba; uint32_t num_partition_entries; uint32_t sizeof_partition_entry; uint32_t partition_entry_array_crc32; uint8_t reserved2[GPT_BLOCK_SIZE - 92]; } PACKED gpt_header; typedef struct _gpt_entry_attributes { uint64_t required_to_function:1; uint64_t reserved:47; uint64_t type_guid_specific:16; } PACKED gpt_entry_attributes; typedef struct _gpt_entry { efi_guid_t partition_type_guid; efi_guid_t unique_partition_guid; uint64_t starting_lba; uint64_t ending_lba; gpt_entry_attributes attributes; uint16_t partition_name[72 / sizeof(uint16_t)]; } PACKED gpt_entry; /* * These values are only defaults. The actual on-disk structures * may define different sizes, so use those unless creating a new GPT disk! */ #define GPT_DEFAULT_RESERVED_PARTITION_ENTRY_ARRAY_SIZE 16384 /* * Number of actual partition entries should be calculated as: */ #define GPT_DEFAULT_RESERVED_PARTITION_ENTRIES \ (GPT_DEFAULT_RESERVED_PARTITION_ENTRY_ARRAY_SIZE / \ sizeof(gpt_entry)) typedef struct _partition_record { uint8_t boot_indicator; /* Not used by EFI firmware. Set to 0x80 to indicate that this is the bootable legacy partition. */ uint8_t start_head; /* Start of partition in CHS address, not used by EFI firmware. */ uint8_t start_sector; /* Start of partition in CHS address, not used by EFI firmware. */ uint8_t start_track; /* Start of partition in CHS address, not used by EFI firmware. */ uint8_t os_type; /* OS type. A value of 0xEF defines an EFI system partition. Other values are reserved for legacy operating systems, and allocated independently of the EFI specification. */ uint8_t end_head; /* End of partition in CHS address, not used by EFI firmware. */ uint8_t end_sector; /* End of partition in CHS address, not used by EFI firmware. */ uint8_t end_track; /* End of partition in CHS address, not used by EFI firmware. */ uint32_t starting_lba; /* Starting LBA address of the partition on the disk. Used by EFI firmware to define the start of the partition. */ uint32_t size_in_lba; /* Size of partition in LBA. Used by EFI firmware to determine the size of the partition. */ } PACKED partition_record; /* * Protected Master Boot Record & Legacy MBR share same structure, which needs * to be packed because the uint16_t members force misalignment. */ typedef struct _legacy_mbr { uint8_t bootcode[440]; uint32_t unique_mbr_signature; uint16_t unknown; partition_record partition[4]; uint16_t magic; } PACKED legacy_mbr; #define EFI_GPT_PRIMARY_PARTITION_TABLE_LBA 1 typedef union { efi_guid_t gpt_signature; uint32_t mbr_signature; } partition_signature_t; /* Functions */ extern int NONNULL(3, 4, 5, 6, 7) HIDDEN gpt_disk_get_partition_info (int fd, uint32_t num, uint64_t *start, uint64_t *size, efi_guid_t *signature, uint8_t *mbr_type, uint8_t *signature_type, int ignore_pmbr_error, int logical_sector_size); #endif /* _EFIBOOT_GPT_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/guid.c000066400000000000000000000121051455652431600144600ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2014 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include "efivar.h" #define GUID_LENGTH_WITH_NUL 37 extern const efi_guid_t efi_guid_zero; int NONNULL(1, 2) PUBLIC efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b) { return efi_guid_cmp_(a, b); } int NONNULL(1) PUBLIC efi_guid_is_zero(const efi_guid_t *guid) { return !efi_guid_cmp(guid,&efi_guid_zero); } int efi_guid_is_empty(const efi_guid_t *guid) NONNULL(1) PUBLIC ALIAS(efi_guid_is_zero); int NONNULL(1, 2) PUBLIC efi_str_to_guid(const char *s, efi_guid_t *guid) { return efi_str_to_guid_(s, guid); } int NONNULL(1) PUBLIC efi_guid_to_str(const efi_guid_t *guid, char **sp) { char *ret = NULL; int rc = -1; if (!sp) { rc = snprintf(NULL, 0, GUID_FORMAT, GUID_FORMAT_ARGS(guid)); } else if (sp && *sp) { rc = snprintf(*sp, GUID_LENGTH_WITH_NUL, GUID_FORMAT, GUID_FORMAT_ARGS(guid)); } else { rc = asprintf(&ret, GUID_FORMAT, GUID_FORMAT_ARGS(guid)); if (rc >= 0) *sp = ret; } if (rc < 0) efi_error("Could not format guid"); return rc; } static int NONNULL(1, 2) cmpguidp(const void *p1, const void *p2) { struct efivar_guidname *gn1 = (struct efivar_guidname *)p1; struct efivar_guidname *gn2 = (struct efivar_guidname *)p2; return efi_guid_cmp_(&gn1->guid, &gn2->guid); } static int NONNULL(1, 2) cmpnamep(const void *p1, const void *p2) { struct efivar_guidname *gn1 = (struct efivar_guidname *)p1; struct efivar_guidname *gn2 = (struct efivar_guidname *)p2; return strncmp(gn1->name, gn2->name, sizeof(gn1->name)); } static int NONNULL(1, 2) _get_common_guidname(const efi_guid_t *guid, struct efivar_guidname **result) { struct efivar_guidname key; memset(&key, '\0', sizeof(key)); memcpy(&key.guid, guid, sizeof(*guid)); struct efivar_guidname *tmp; tmp = bsearch(&key, &efi_well_known_guids[0], efi_n_well_known_guids, sizeof(efi_well_known_guids[0]), cmpguidp); if (!tmp) { *result = NULL; errno = ENOENT; efi_error("GUID is not in common GUID list"); return -1; } *result = tmp; return 0; } int NONNULL(1, 2) PUBLIC efi_guid_to_name(efi_guid_t *guid, char **name) { struct efivar_guidname *result; int rc = _get_common_guidname(guid, &result); if (rc >= 0) { *name = strndup(result->name, sizeof(result->name) -1); return *name ? (int)strlen(*name) : -1; } rc = efi_guid_to_str(guid, name); if (rc >= 0) efi_error_clear(); return rc; } int NONNULL(1, 2) PUBLIC efi_guid_to_symbol(efi_guid_t *guid, char **symbol) { struct efivar_guidname *result; int rc = _get_common_guidname(guid, &result); if (rc >= 0) { *symbol = strndup(result->symbol, sizeof(result->symbol) -1); return *symbol ? (int)strlen(*symbol) : -1; } efi_error_clear(); errno = EINVAL; return -1; } int NONNULL(1) PUBLIC efi_guid_to_id_guid(const efi_guid_t *guid, char **sp) { struct efivar_guidname *result = NULL; char *ret = NULL; int rc; rc = _get_common_guidname(guid, &result); if (rc >= 0) { if (!sp) { return snprintf(NULL, 0, "{%s}", result->symbol + strlen("efi_guid_")); } else if (sp && *sp) { return snprintf(*sp, GUID_LENGTH_WITH_NUL + 2, "{%s}", result->symbol + strlen("efi_guid_")); } rc = asprintf(&ret, "{%s}", result->symbol + strlen("efi_guid_")); if (rc >= 0) *sp = ret; return rc; } if (!sp) { return snprintf(NULL, 0, "{"GUID_FORMAT"}", GUID_FORMAT_ARGS(guid)); } else if (sp && *sp) { return snprintf(*sp, GUID_LENGTH_WITH_NUL+2, "{"GUID_FORMAT"}", GUID_FORMAT_ARGS(guid)); } rc = asprintf(&ret, "{"GUID_FORMAT"}", GUID_FORMAT_ARGS(guid)); if (rc >= 0) *sp = ret; return rc; } int NONNULL(1, 2) PUBLIC efi_symbol_to_guid(const char *symbol, efi_guid_t *guid) { void *dlh = dlopen(NULL, RTLD_LAZY); if (!dlh) return -1; void *sym = dlsym(dlh, symbol); dlclose(dlh); if (!sym) return -1; memcpy(guid, sym, sizeof(*guid)); return 0; } int NONNULL(1, 2) PUBLIC efi_name_to_guid(const char *name, efi_guid_t *guid) { size_t namelen; struct efivar_guidname key; namelen = strnlen(name, 39); memset(&key, '\0', sizeof(key)); memcpy(key.name, name, namelen); if (namelen > 2 && name[0] == '{' && name[namelen - 1] == '}') { namelen -= 2; memcpy(key.name, name + 1, namelen); key.name[namelen] = 0; } key.name[sizeof(key.name) - 1] = '\0'; struct efivar_guidname *result; result = bsearch(&key, &efi_well_known_names[0], efi_n_well_known_names, sizeof(efi_well_known_names[0]), cmpnamep); if (result != NULL) { memcpy(guid, &result->guid, sizeof(*guid)); return 0; } int rc = efi_str_to_guid(key.name, guid); if (rc >= 0) return 0; char tmpname[sizeof(key.name) + 9]; strcpy(tmpname, "efi_guid_"); memmove(tmpname+9, key.name, sizeof(key.name) - 9); rc = efi_symbol_to_guid(tmpname, guid); if (rc >= 0) return rc; errno = ENOENT; return -1; } int efi_id_guid_to_guid(const char *name, efi_guid_t *guid) NONNULL(1, 2) PUBLIC ALIAS(efi_name_to_guid); // vim:fenc=utf-8:tw=75:noet efivar-39/src/guid.h000066400000000000000000000125621455652431600144740ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2013 Red Hat, Inc. */ #ifndef LIBEFIVAR_GUID_H #define LIBEFIVAR_GUID_H 1 #include #include #include #include #include #include "efivar_endian.h" #include "compiler.h" #include "include/efivar/efivar-types.h" #include "include/efivar/efivar.h" #define GUID_FORMAT "%08x-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x" #define GUID_FORMAT_ARGS(guidp) \ (guidp)->a, (guidp)->b, (guidp)->c, __builtin_bswap16((guidp)->d), \ (guidp)->e[0], (guidp)->e[1], (guidp)->e[2], (guidp)->e[3], \ (guidp)->e[4], (guidp)->e[5] static inline int real_isspace(char c) { char spaces[] = " \f\n\r\t\v"; for (int i = 0; spaces[i] != '\0'; i++) if (c == spaces[i]) return 1; return 0; } static inline int check_sanity(const char *text, size_t len) { size_t sl = strlen("84be9c3e-8a32-42c0-891c-4cd3b072becc"); errno = EINVAL; if (len < sl) return -1; else if (len > sl && !real_isspace(text[sl])) return -1; if (text[8] != '-' || text[13] != '-' || text[18] != '-' || text[23] != '-') return -1; errno = 0; return 0; } static inline int check_segment_sanity(const char *text, size_t len) { for(unsigned int i = 0; i < len; i++) { if (text[i] >= '0' && text[i] <= '9') continue; /* "| 0x20" is tolower() without having to worry about * locale concerns, since we know everything here must * be within traditional ascii space. */ if ((text[i] | 0x20) >= 'a' && (text[i] | 0x20) <= 'f') continue; errno = EINVAL; return -1; } return 0; } static inline int UNUSED text_to_guid(const char *text, efi_guid_t *guid) { /* these variables represent the length of the /string/ they hold, * not the interpreted length of the value from them. Mostly the * names make it more obvious to verify that my bounds checking is * correct. */ char eightbytes[9] = ""; char fourbytes[5] = ""; char twobytes[3] = ""; size_t textlen = strlen(text); size_t guidlen = strlen("84be9c3e-8a32-42c0-891c-4cd3b072becc"); if (textlen == guidlen + 2) { if (text[0] != '{' || text[textlen - 1] != '}') { errno = EINVAL; return -1; } text++; textlen -= 2; } if (check_sanity(text, textlen) < 0) return -1; /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(eightbytes, text, 8); if (check_segment_sanity(eightbytes, 8) < 0) return -1; guid->a = (uint32_t)strtoul(eightbytes, NULL, 16); guid->a = cpu_to_le32(guid->a); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(fourbytes, text+9, 4); if (check_segment_sanity(fourbytes, 4) < 0) return -1; guid->b = (uint16_t)strtoul(fourbytes, NULL, 16); guid->b = cpu_to_le16(guid->b); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(fourbytes, text+14, 4); if (check_segment_sanity(fourbytes, 4) < 0) return -1; guid->c = (uint16_t)strtoul(fourbytes, NULL, 16); guid->c = cpu_to_le16(guid->c); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(fourbytes, text+19, 4); if (check_segment_sanity(fourbytes, 4) < 0) return -1; guid->d = (uint16_t)strtoul(fourbytes, NULL, 16); guid->d = cpu_to_be16(guid->d); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(twobytes, text+24, 2); if (check_segment_sanity(twobytes, 2) < 0) return -1; guid->e[0] = (uint8_t)strtoul(twobytes, NULL, 16); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(twobytes, text+26, 2); if (check_segment_sanity(twobytes, 2) < 0) return -1; guid->e[1] = (uint8_t)strtoul(twobytes, NULL, 16); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(twobytes, text+28, 2); if (check_segment_sanity(twobytes, 2) < 0) return -1; guid->e[2] = (uint8_t)strtoul(twobytes, NULL, 16); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(twobytes, text+30, 2); if (check_segment_sanity(twobytes, 2) < 0) return -1; guid->e[3] = (uint8_t)strtoul(twobytes, NULL, 16); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(twobytes, text+32, 2); if (check_segment_sanity(twobytes, 2) < 0) return -1; guid->e[4] = (uint8_t)strtoul(twobytes, NULL, 16); /* 84be9c3e-8a32-42c0-891c-4cd3b072becc * ^ */ memcpy(twobytes, text+34, 2); if (check_segment_sanity(twobytes, 2) < 0) return -1; guid->e[5] = (uint8_t)strtoul(twobytes, NULL, 16); return 0; } #ifndef EFIVAR_GUIDS_H struct efivar_guidname { efi_guid_t guid; char symbol[256]; char name[256]; char description[256]; } __attribute__((__aligned__(16))); #endif /* EFIVAR_GUIDS_H */ static inline int efi_int_cmp_(uint64_t a, uint64_t b) { if (a < b) return -1; if (a > b) return 1; return 0; } static inline int NONNULL(1, 2) UNUSED efi_guid_cmp_(const efi_guid_t *a, const efi_guid_t *b) { if (a->a != b->a) return efi_int_cmp_(a->a, b->a); if (a->b != b->b) return efi_int_cmp_(a->b, b->b); if (a->c != b->c) return efi_int_cmp_(a->c, b->c); if (a->d != b->d) return efi_int_cmp_(be16_to_cpu(a->d), be16_to_cpu(b->d)); for (size_t i = 0; i < sizeof(a->e)/sizeof(a->e[0]); i++) { if (a->e[i] != b->e[i]) return efi_int_cmp_(a->e[i], b->e[i]); } return 0; } static inline int NONNULL(1, 2) UNUSED efi_str_to_guid_(const char *s, efi_guid_t *guid) { int rc; rc = text_to_guid(s, guid); if (rc < 0) efi_error("text_to_guid(\"%s\",...)", s); return rc; } #endif /* LIBEFIVAR_GUID */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/guids.txt000066400000000000000000000054421455652431600152460ustar00rootroot0000000000000000000000-0000-0000-0000-000000000000 zero zeroed sentinel guid 0223eddb-9079-4388-af77-2d65b1c35d3b redhat Red Hat 093e0fae-a6c4-4f50-9f1b-d41e2b89c19a sha512 SHA-512 hash 0abba7dc-e516-4167-bbf5-4d9d1c739416 fwupdate Linux Firmware Update Tool 0b6e5233-a65c-44c9-9407-d9ab83bfc8bd sha224 SHA-224 hash 126a762d-5758-4fca-8531-201a7f57f850 lenovo_boot_menu Lenovo Boot Menu 26dc4851-195f-4ae1-9a19-fbf883bbb35e supermicro Super Micro 3b053091-6c9f-04cc-b1ac-e2a51e3be5f5 asus Asus 3b8c8162-188c-46a4-aec9-be43f1d65697 ux_capsule Firmware update localized text image 3bd2a492-96c0-4079-b420-fcf98ef103ed x509_sha256 SHA-256 hash of X.509 Certificate 3c5766e8-269c-4e34-aa14-ed776e85b3b6 rsa2048 RSA 2048 pubkey 3cc24e96-22c7-41d8-8863-8e39dcdcc2cf lenovo Lenovo 3f7e615b-0d45-4f80-88dc-26b234958560 lenovo_diag Lenovo Diagnostics 446dbf63-2502-4cda-bcfa-2465d2b0fe9d x509_sha512 SHA-512 hash of X.509 Certificate 452e8ced-dfff-4b8c-ae01-5118862e682c external_management External Management Mechanism 4aafd29d-68df-49ee-8aa9-347d375665a7 pkcs7_cert PKCS7 Certificate 55555555-5555-5555-5555-555555555555 fives All Fives Test Data 605dab50-e046-4300-abb6-3dd810dd8b23 shim shim 665d3f60-ad3e-4cad-8e26-db46eee9f1b5 lenovo_rescue Lenovo Rescue and Recovery 67f8444f-8743-48f1-a328-1eaab8736080 rsa2048_sha1 RSA-2048 signature of a SHA-1 hash 6dc40ae4-2ee8-9c4c-a314-0fc7b2008710 canonical Canonical 70564dce-9afc-4ee3-85fc-949649d7e45c dell Dell 7076876e-80c2-4ee6-aad2-28b349a6865b x509_sha384 SHA-384 hash of X.509 Certificate 721c8b66-426c-4e86-8e99-3457c46ab0b9 lenovo_setup Lenovo Firmware Setup 77fa9abd-0359-4d32-bd60-28f4e78f784b microsoft Microsoft 7facc7b6-127f-4e9c-9c5d-080f98994345 lenovo_2 Lenovo 8108ac4e-9f11-4d59-850e-e21a522c59b2 auto_created_boot_option Automatically Created Boot Option 826ca512-cf10-4ac9-b187-be01496631bd sha1 SHA-1 82988420-7467-4490-9059-feb448dd1963 lenovo_me_config Lenovo ME Configuration Menu 8be4df61-93ca-11d2-aa0d-00e098032b8c global EFI Global Variable 91376aff-cba6-42be-949d-06fde81128e8 grub GRUB a5c059a1-94e4-4aa7-87b5-ab155c2bf072 x509_cert X.509 Certificate a7717414-c616-4977-9420-844712a735bf rsa2048_sha256_cert RSA-2048 key with SHA-256 Certificate a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380 lenovo_diag_splash Lenovo Diagnostic Splash Screen bc7838d2-0f82-4d60-8316-c068ee79d25b lenovo_msg Lenovo Vendor Message Device c1c41626-504c-4092-aca9-41f936934328 sha256 SHA-256 c57ad6b7-0515-40a8-9d21-551652854e37 shell EFI Shell d719b2cb-3d3a-4596-a3bc-dad00e67656f security EFI Security Database e2b36190-879b-4a3d-ad8d-f2e7bba32784 rsa2048_sha256 RSA-2048 signature of a SHA-256 hash f46ee6f4-4785-43a3-923d-7f786c3c8479 lenovo_startup_interrupt Lenovo Startup Interrupt Menu ff3e5307-9fd0-48c9-85f1-8ad56c701e01 sha384 SHA-384 ffffffff-ffff-ffff-ffff-ffffffffffff zzignore-this-guid zzignore-this-guid efivar-39/src/hexdump.h000066400000000000000000000066701455652431600152210ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2018-2020 Peter M. Jones */ #ifndef STATIC_HEXDUMP_H #define STATIC_HEXDUMP_H #include #include #include #include #include #include "compiler.h" #include "util.h" /* * prepare_hex(): writes the address of the region being dumped and the hex * representation into a line buffer */ static inline unsigned long UNUSED prepare_hex(void *data, size_t size, char *buf, int position) { char hexchars[] = "0123456789abcdef"; int offset = 0; unsigned long i; unsigned long j; unsigned long ret; unsigned long before = (position % 16); unsigned long after = (before+size >= 16) ? 0 : 16 - (before+size); for (i = 0; i < before; i++) { buf[offset++] = ' '; buf[offset++] = ' '; buf[offset++] = ' '; if (i == 7) buf[offset++] = ' '; } for (j = 0; j < 16 - after - before; j++) { uint8_t d = ((uint8_t *)data)[j]; buf[offset++] = hexchars[(d & 0xf0) >> 4]; buf[offset++] = hexchars[(d & 0x0f)]; if (i+j != 15) buf[offset++] = ' '; if (i+j == 7) buf[offset++] = ' '; } ret = 16 - after - before; j += i; for (i = 0; i < after; i++) { buf[offset++] = ' '; buf[offset++] = ' '; if (i+j != 15) buf[offset++] = ' '; if (i+j == 7) buf[offset++] = ' '; } buf[offset] = '\0'; return ret; } /* * prepare_text(): write the |.blah.blah.blah.b| bits of the hexdump into * a line buffer */ static inline void UNUSED prepare_text(void *data, size_t size, char *buf, int position) { int offset = 0; unsigned long i; unsigned long j; unsigned long before = position % 16; unsigned long after = (before+size > 16) ? 0 : 16 - (before+size); if (size == 0) { buf[0] = '\0'; return; } for (i = 0; i < before; i++) buf[offset++] = ' '; buf[offset++] = '|'; for (j = 0; j < 16 - after - before; j++) { if (safe_to_print(((uint8_t *)data)[j])) buf[offset++] = ((uint8_t *)data)[j]; else buf[offset++] = '.'; } buf[offset++] = '|'; buf[offset] = '\0'; } /* * variadic fhexdump formatted * think of it as: fprintf(f, %s%s\n", vformat(fmt, ap), hexdump(data,size)); */ static inline void UNUSED vfhexdumpf(FILE *f, const char *const fmt, uint8_t *data, unsigned long size, size_t at, va_list ap) { unsigned long display_offset = at; unsigned long offset = 0; while (offset < size) { char hexbuf[49]; char txtbuf[19]; unsigned long sz; sz = prepare_hex(data+offset, size-offset, hexbuf, (unsigned long)data+offset); if (sz == 0) return; prepare_text(data+offset, size-offset, txtbuf, (unsigned long)data+offset); vfprintf(f, fmt, ap); fprintf(f, "%08lx %s %s\n", display_offset, hexbuf, txtbuf); display_offset += sz; offset += sz; } fflush(f); } /* * fhexdump formatted * think of it as: fprintf(f, %s%s\n", format(fmt, ...), hexdump(data,size)); */ static inline void UNUSED fhexdumpf(FILE *f, const char *const fmt, uint8_t *data, unsigned long size, size_t at, ...) { va_list ap; va_start(ap, at); vfhexdumpf(f, fmt, data, size, at, ap); va_end(ap); } static inline void UNUSED hexdump(uint8_t *data, unsigned long size) { fhexdumpf(stdout, "", data, size, (intptr_t)data); } static inline void UNUSED hexdumpat(uint8_t *data, unsigned long size, size_t at) { fhexdumpf(stdout, "", data, size, at); } #endif /* STATIC_HEXDUMP_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/000077500000000000000000000000001455652431600150105ustar00rootroot00000000000000efivar-39/src/include/coverity.mk000066400000000000000000000024741455652431600172140ustar00rootroot00000000000000COV_EMAIL=$(call get-config,coverity.email) COV_TOKEN=$(call get-config,coverity.token) COV_URL=$(call get-config,coverity.url) COV_FILE=$(NAME)-coverity-$(VERSION)-$(COMMIT_ID).tar.bz2 cov-int : clean cov-build --dir cov-int make all cov-clean : @rm -vf $(NAME)-coverity-*.tar.* @if [[ -d cov-int ]]; then rm -rf cov-int && echo "removed 'cov-int'"; fi cov-file : | $(COV_FILE) $(COV_FILE) : cov-int tar caf $@ cov-int cov-upload : @if [[ -n "$(COV_URL)" ]] && \ [[ -n "$(COV_TOKEN)" ]] && \ [[ -n "$(COV_EMAIL)" ]] ; \ then \ echo curl --form token=$(COV_TOKEN) --form email="$(COV_EMAIL)" --form file=@"$(COV_FILE)" --form version=$(VERSION).1 --form description="$(COMMIT_ID)" "$(COV_URL)" ; \ curl --form token=$(COV_TOKEN) --form email="$(COV_EMAIL)" --form file=@"$(COV_FILE)" --form version=$(VERSION).1 --form description="$(COMMIT_ID)" "$(COV_URL)" ; \ else \ echo Coverity output is in $(COV_FILE) ; \ fi coverity : | cov-test coverity : cov-file cov-upload clean : | cov-clean COV_BUILD ?= $(shell x=$$(which --skip-alias --skip-functions cov-build 2>/dev/null) ; [ -n "$$x" ] && echo 1) ifeq ($(COV_BUILD),) COV_BUILD_ERROR = $(error cov-build not found) endif cov-test : ; $(COV_BUILD_ERROR) .PHONY : coverity cov-upload cov-clean cov-file cov-test # vim:ft=make efivar-39/src/include/defaults.mk000066400000000000000000000072351455652431600171570ustar00rootroot00000000000000PREFIX ?= /usr EXEC_PREFIX ?= $(PREFIX) LIBDIR ?= $(PREFIX)/lib64 DATADIR ?= $(PREFIX)/share MANDIR ?= $(DATADIR)/man INCLUDEDIR ?= $(PREFIX)/include BINDIR ?= $(EXEC_PREFIX)/bin PCDIR ?= $(LIBDIR)/pkgconfig DESTDIR ?= PKGS ?= CROSS_COMPILE ?= COMPILER ?= gcc ifeq ($(origin CC),command line) override COMPILER := $(CC) override CC := $(CROSS_COMPILE)$(COMPILER) endif $(call set-if-undefined,CC,$(CROSS_COMPILE)$(COMPILER)) $(call set-if-undefined,CCLD,$(CC)) $(call set-if-undefined,HOSTCC,$(COMPILER)) $(call set-if-undefined,HOSTCCLD,$(HOSTCC)) # temporary, see https://sourceware.org/bugzilla/show_bug.cgi?id=28264 #OPTIMIZE_GCC = -flto OPTIMIZE_GCC = OPTIMIZE ?= -Og $(call family,OPTIMIZE) DEBUGINFO ?= -g3 WARNINGS_GCC ?= WARNINGS_CCC_ANALYZER ?= $(WARNINGS_GCC) WARNINGS ?= -Wall -Wextra $(call family,WARNINGS) ERRORS_GCC ?= ERRORS ?= -Werror $(call family,ERRORS) CPPFLAGS ?= override _CPPFLAGS := $(CPPFLAGS) override CPPFLAGS = $(_CPPFLAGS) -DLIBEFIVAR_VERSION=$(VERSION) \ -D_GNU_SOURCE \ -D_FILE_OFFSET_BITS=64 \ -I$(TOPDIR)/src/include/ CFLAGS ?= $(OPTIMIZE) $(DEBUGINFO) $(WARNINGS) $(ERRORS) CFLAGS_GCC ?= -specs=$(TOPDIR)/src/include/gcc.specs \ -fno-merge-constants override _CFLAGS := $(CFLAGS) override CFLAGS = $(_CFLAGS) \ -std=gnu11 \ -funsigned-char \ -fvisibility=hidden \ $(call family,CFLAGS) \ $(call pkg-config-cflags) LDFLAGS_CLANG ?= -rtlib=compiler-rt CCLDFLAGS ?= LDFLAGS ?= override _CCLDFLAGS := $(CCLDFLAGS) override _LDFLAGS := $(LDFLAGS) override LDFLAGS = $(CFLAGS) -L. $(_LDFLAGS) $(_CCLDFLAGS) \ -Wl,--build-id \ -Wl,--no-allow-shlib-undefined \ -Wl,--no-undefined-version \ -Wl,-z,now \ -Wl,-z,muldefs \ -Wl,-z,relro \ -Wl,--fatal-warnings \ $(call family,LDFLAGS) $(call family,CCLDFLAGS) \ $(call pkg-config-ccldflags) override CCLDFLAGS = $(LDFLAGS) SOFLAGS_GCC = SOFLAGS_CLANG = SOFLAGS ?= override _SOFLAGS := $(SOFLAGS) override SOFLAGS = $(_SOFLAGS) \ -shared -Wl,-soname,$@.1 \ -Wl,--version-script=$(MAP) \ $(call family,SOFLAGS) HOST_ARCH=$(shell uname -m) ifneq ($(HOST_ARCH),ia64) ifneq ($(HOST_ARCH),riscv64) HOST_MARCH=-march=native else HOST_MARCH= endif else HOST_MARCH= endif HOST_CPPFLAGS ?= $(CPPFLAGS) override _HOST_CPPFLAGS := $(HOST_CPPFLAGS) override HOST_CPPFLAGS = $(_HOST_CPPFLAGS) \ -DEFIVAR_BUILD_ENVIRONMENT $(HOST_MARCH) HOST_CFLAGS_GCC ?= HOST_CFLAGS_CLANG ?= HOST_CFLAGS ?= $(CFLAGS) $(call family,HOST_CFLAGS) override _HOST_CFLAGS := $(HOST_CFLAGS) override HOST_CFLAGS = $(_HOST_CFLAGS) HOST_LDFLAGS_CLANG ?= -Wl,--fatal-warnings,-z,relro -rtlib=compiler-rt HOST_LDFLAGS_GCC ?= -Wl,--no-undefined-version HOST_LDFLAGS ?= HOST_CCLDFLAGS ?= override _HOST_LDFLAGS := $(HOST_LDFLAGS) override _HOST_CCLDFLAGS := $(HOST_CCLDFLAGS) override HOST_LDFLAGS = $(HOST_CFLAGS) -L. \ $(_HOST_LDFLAGS) $(_HOST_CCLDFLAGS) \ -Wl,--build-id \ -Wl,--no-allow-shlib-undefined \ -Wl,-z,now \ -Wl,-z,muldefs \ $(call family,HOST_LDFLAGS) \ $(call family,HOST_CCLDFLAGS) \ $(call pkg-config-ccldflags) override HOST_CCLDFLAGS = $(HOST_LDFLAGS) PKG_CONFIG ?= $(shell if [ -e "$$(env $(CROSS_COMPILE)pkg-config 2>&1)" ]; then echo $(CROSS_COMPILE)pkg-config ; else echo pkg-config ; fi) INSTALL ?= install AR := $(CROSS_COMPILE)$(COMPILER)-ar NM := $(CROSS_COMPILE)$(COMPILER)-nm RANLIB := $(CROSS_COMPILE)$(COMPILER)-ranlib ABIDW := abidw ABIDIFF := abidiff MANDOC := mandoc LDLIBS=$(foreach lib,$(LIBS),-l$(lib)) $(call pkg-config-ldlibs) COMMIT_ID=$(shell git log -1 --pretty=%H 2>/dev/null || echo master) NAME=efivar # Docs are enabled by default. Set ENABLE_DOCS=0 to disable # building/installing docs. ENABLE_DOCS ?= 1 # vim:ft=make efivar-39/src/include/deprecated.mk000066400000000000000000000023541455652431600174450ustar00rootroot00000000000000# # This is all stuff pjones should not have done the way he did initially, and # it's deprecated and will eventually go away. # ifneq ($(origin prefix),undefined) ifeq ($(origin PREFIX),undefined) override PREFIX = $(prefix) endif endif ifneq ($(origin exec_prefix),undefined) ifeq ($(origin EXEC_PREFIX),undefined) override EXEC_PREFIX = $(exec_prefix) endif endif ifneq ($(origin libdir),undefined) ifeq ($(origin LIBDIR),undefined) override LIBDIR = $(libdir) endif endif ifneq ($(origin datadir),undefined) ifeq ($(origin DATADIR),undefined) override DATADIR = $(datadir) endif endif ifneq ($(origin mandir),undefined) ifeq ($(origin MANDIR),undefined) override MANDIR = $(mandir) endif endif ifneq ($(origin includedir),undefined) ifeq ($(origin INCLUDEDIR),undefined) override INCLUDEDIR = $(includedir) endif endif ifneq ($(origin bindir),undefined) ifeq ($(origin BINDIR),undefined) override BINDIR = $(bindir) endif endif ifneq ($(origin CC_FOR_BUILD),undefined) ifeq ($(origin HOSTCC),file) override HOSTCC = $(CC_FOR_BUILD) endif endif ifneq ($(origin CCLD_FOR_BUILD),undefined) ifeq ($(origin HOSTCCLD),file) override HOSTCCLD = $(CCLD_FOR_BUILD) endif endif # vim:ft=make efivar-39/src/include/deps.mk000066400000000000000000000006251455652431600162770ustar00rootroot00000000000000SRCDIR = $(realpath .) all : deps include $(TOPDIR)/src/include/version.mk include $(TOPDIR)/src/include/rules.mk include $(TOPDIR)/src/include/defaults.mk .%.d : %.c @$(CC) $(CFLAGS) $(CPPFLAGS) -MM -MG -MF $@ $^ @sed -i 's/:/: |/g' $@ .%.d : %.S @$(CC) $(CFLAGS) $(CPPFLAGS) -MM -MG -MF $@ $^ @sed -i 's/:/: |/g' $@ SOURCES ?= deps : $(call deps-of,$(filter-out %.h,$(SOURCES))) .PHONY: deps efivar-39/src/include/efivar/000077500000000000000000000000001455652431600162645ustar00rootroot00000000000000efivar-39/src/include/efivar/efiboot-creator.h000066400000000000000000000032661455652431600215300ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2015 Red Hat, Inc. * Copyright (C) 2001 Dell Computer Corporation */ #ifndef _EFIBOOT_CREATOR_H #define _EFIBOOT_CREATOR_H #ifdef __cplusplus extern "C" { #endif #define EFIBOOT_ABBREV_NONE 0x00000001 #define EFIBOOT_ABBREV_HD 0x00000002 #define EFIBOOT_ABBREV_FILE 0x00000004 #define EFIBOOT_ABBREV_EDD10 0x00000008 #define EFIBOOT_OPTIONS_IGNORE_FS_ERROR 0x00000010 #define EFIBOOT_OPTIONS_WRITE_SIGNATURE 0x00000020 #define EFIBOOT_OPTIONS_IGNORE_PMBR_ERR 0x00000040 extern ssize_t efi_generate_file_device_path(uint8_t *buf, ssize_t size, const char * const filepath, uint32_t options, ...) __attribute__((__nonnull__ (3))); extern ssize_t efi_generate_file_device_path_from_esp(uint8_t *buf, ssize_t size, const char *devpath, int partition, const char *relpath, uint32_t options, ...) __attribute__((__nonnull__ (3, 5))) __attribute__((__visibility__ ("default"))); extern ssize_t efi_generate_ipv4_device_path(uint8_t *buf, ssize_t size, const char * const ifname, const char * const local_addr, const char * const remote_addr, const char * const gateway_addr, const char * const netmask, uint16_t local_port, uint16_t remote_port, uint16_t protocol, uint8_t addr_origin) __attribute__((__nonnull__ (3,4,5,6,7))) __attribute__((__visibility__ ("default"))); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _EFIBOOT_CREATOR_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efiboot-loadopt.h000066400000000000000000000051001455652431600215200ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2015 Red Hat, Inc. * Copyright (C) 2001 Dell Computer Corporation */ #ifndef _EFIBOOT_LOADOPT_H #define _EFIBOOT_LOADOPT_H 1 #ifdef __cplusplus extern "C" { #endif typedef struct efi_load_option_s efi_load_option; extern ssize_t efi_loadopt_create(uint8_t *buf, ssize_t size, uint32_t attributes, efidp dp, ssize_t dp_size, unsigned char *description, uint8_t *optional_data, size_t optional_data_size) __attribute__((__nonnull__ (6))); extern efidp efi_loadopt_path(efi_load_option *opt, ssize_t limit) __attribute__((__nonnull__ (1))); extern const unsigned char * efi_loadopt_desc(efi_load_option *opt, ssize_t limit) __attribute__((__visibility__ ("default"))) __attribute__((__nonnull__ (1))); extern uint32_t efi_loadopt_attrs(efi_load_option *opt) __attribute__((__nonnull__ (1))) __attribute__((__visibility__ ("default"))); extern void efi_loadopt_attr_set(efi_load_option *opt, uint16_t attr) __attribute__((__nonnull__ (1))) __attribute__((__visibility__ ("default"))); extern void efi_loadopt_attr_clear(efi_load_option *opt, uint16_t attr) __attribute__((__nonnull__ (1))) __attribute__((__visibility__ ("default"))); extern uint16_t efi_loadopt_pathlen(efi_load_option *opt, ssize_t limit) __attribute__((__nonnull__ (1))) __attribute__((__visibility__ ("default"))); extern int efi_loadopt_optional_data(efi_load_option *opt, size_t opt_size, unsigned char **datap, size_t *len) __attribute__((__nonnull__ (1,3))) __attribute__((__visibility__ ("default"))); extern ssize_t efi_loadopt_args_from_file(uint8_t *buf, ssize_t size, char *filename) __attribute__((__nonnull__ (3))) __attribute__((__visibility__ ("default"))); extern ssize_t efi_loadopt_args_as_utf8(uint8_t *buf, ssize_t size, uint8_t *utf8) __attribute__((__nonnull__ (3))) __attribute__((__visibility__ ("default"))); extern ssize_t efi_loadopt_args_as_ucs2(uint16_t *buf, ssize_t size, uint8_t *utf8) __attribute__((__nonnull__ (3))) __attribute__((__visibility__ ("default"))); extern ssize_t efi_loadopt_optional_data_size(efi_load_option *opt, size_t size) __attribute__((__nonnull__ (1))) __attribute__((__visibility__ ("default"))); extern int efi_loadopt_is_valid(efi_load_option *opt, size_t size) __attribute__((__nonnull__ (1))) __attribute__((__visibility__ ("default"))); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _EFIBOOT_LOADOPT_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efiboot.h000066400000000000000000000013531455652431600200660ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2015 Red Hat, Inc. * Copyright (C) 2001 Dell Computer Corporation */ #ifndef EFIBOOT_H #define EFIBOOT_H 1 #include #include #include #include #include #include #include #include #include #include #ifdef __cplusplus extern "C" { #endif extern uint32_t efi_get_libefiboot_version(void) __attribute__((__visibility__("default"))); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* EFIBOOT_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efisec-secdb.h000066400000000000000000000052611455652431600207550ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * efisec-secdb.h - interfaces for EFI security databases * Copyright Peter Jones */ #ifndef EFISEC_SECDB_H_ #define EFISEC_SECDB_H_ #ifdef __cplusplus extern "C" { #endif typedef struct efi_secdb efi_secdb_t; typedef union { efi_sha1_hash_t sha1; efi_sha224_hash_t sha224; efi_sha256_hash_t sha256; efi_sha384_hash_t sha384; efi_sha512_hash_t sha512; efi_rsa2048_sig_t rsa2048; efi_rsa2048_sig_t rsa2048_sha1; efi_rsa2048_sig_t rsa2048_sha256; efi_cert_x509_sha256_t x509_sha256_t; efi_cert_x509_sha384_t x509_sha384_t; efi_cert_x509_sha512_t x509_sha512_t; uint8_t raw[0]; } efi_secdb_data_t; typedef enum { X509_CERT, // a raw x509 cert X509_SHA256, // SHA-256 hash of the TBSData SHA256, // SHA-256 hash X509_SHA512, // SHA-512 hash of the TBSData SHA512, // SHA-512 hash X509_SHA384, // SHA-384 hash of the TBSData SHA224, // SHA-224 hash SHA384, // SHA-384 hash SHA1, // SHA-1 hash RSA2048, // RSA-2048 pubkey (m, e=0x10001) RSA2048_SHA1, // RSA-2048 signature of a SHA-1 hash RSA2048_SHA256, // RSA-2048 signature of a SHA-256 hash MAX_SECDB_TYPE } efi_secdb_type_t; typedef enum { EFI_SECDB_SORT, EFI_SECDB_SORT_DATA, EFI_SECDB_SORT_DESCENDING, } efi_secdb_flag_t; extern efi_secdb_t *efi_secdb_new(void); extern int efi_secdb_set_bool(efi_secdb_t *secdb, efi_secdb_flag_t flag, bool value); extern int efi_secdb_parse(uint8_t *data, size_t datasz, efi_secdb_t **secdbp); extern int efi_secdb_add_entry(efi_secdb_t *secdb, const efi_guid_t *owner, efi_secdb_type_t algorithm, efi_secdb_data_t *data, size_t datasz); extern int efi_secdb_del_entry(efi_secdb_t *secdb, const efi_guid_t *owner, efi_secdb_type_t algorithm, efi_secdb_data_t *data, size_t datasz); extern int efi_secdb_realize(efi_secdb_t *secdb, /* caller owns out */ void **out, size_t *outsize); extern void efi_secdb_free(efi_secdb_t *secdb); typedef enum { ERROR = -1, BREAK = 0, CONTINUE = 1, } efi_secdb_visitor_status_t; typedef efi_secdb_visitor_status_t (efi_secdb_visitor_t)(unsigned int listnum, unsigned int signum, const efi_guid_t * const owner, const efi_secdb_type_t algorithm, const void * const header, const size_t headersz, const efi_secdb_data_t * const data, const size_t datasz, void *closure); extern int efi_secdb_visit_entries(efi_secdb_t *secdb, efi_secdb_visitor_t *visitor, void *closure); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* !EFISEC_SECDB_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efisec-types.h000066400000000000000000000217271455652431600210460ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * authenticode.h - Authenticode definitions and types * Copyright 2019-2020 Peter Jones */ #ifndef EFISEC_TYPES_H_ #define EFISEC_TYPES_H_ 1 #include #include #ifdef __cplusplus extern "C" { #endif /* * Storage for specific hashes and cryptographic (pkcs1, not pkcs7) * signatures */ typedef uint8_t efi_sha1_hash_t[20]; typedef uint8_t efi_sha224_hash_t[28]; typedef uint8_t efi_sha256_hash_t[32]; typedef uint8_t efi_sha384_hash_t[48]; typedef uint8_t efi_sha512_hash_t[64]; typedef uint8_t efi_rsa2048_sig_t[256]; /* * Security database definitions and types */ #define EFI_GLOBAL_PLATFORM_KEY L"PK" #define EFI_GLOBAL_KEY_EXCHANGE_KEY L"KEK" #define EFI_IMAGE_SECURITY_DATABASE L"db" #define EFI_IMAGE_SECURITY_DATABASE1 L"dbx" #define EFI_IMAGE_SECURITY_DATABASE2 L"dbt" #define EFI_IMAGE_SECURITY_DATABASE3 L"dbr" typedef struct { efi_sha256_hash_t to_be_signed_hash; efi_time_t time_of_revocation; } efi_cert_x509_sha256_t __attribute__((__aligned__(1))); typedef struct { efi_sha384_hash_t to_be_signed_hash; efi_time_t time_of_revocation; } efi_cert_x509_sha384_t __attribute__((__aligned__(1))); typedef struct { efi_sha512_hash_t to_be_signed_hash; efi_time_t time_of_revocation; } efi_cert_x509_sha512_t __attribute__((__aligned__(1))); typedef struct { efi_guid_t signature_owner; uint8_t signature_data[]; } efi_signature_data_t __attribute__((__aligned__(1))); typedef struct { efi_guid_t signature_type; uint32_t signature_list_size; uint32_t signature_header_size; uint32_t signature_size; // uint8_t signature_header[]; // efi_signature_data signatures[][signature_size]; } efi_signature_list_t __attribute__((__aligned__(1))); /********************************************************** * Stuff used by authenticode and authenticated variables * **********************************************************/ #define WIN_CERT_REVISION_1_0 ((uint16_t)0x0100) #define WIN_CERT_REVISION_2_0 ((uint16_t)0x0200) #define WIN_CERT_TYPE_PKCS_SIGNED_DATA ((uint16_t)0x0002) #define WIN_CERT_TYPE_EFI_PKCS115 ((uint16_t)0x0ef0) #define WIN_CERT_TYPE_EFI_GUID ((uint16_t)0x0ef1) typedef struct { uint32_t length; uint16_t revision; uint16_t cert_type; } win_certificate_header_t; /* * The spec says: * * This structure is the certificate header. There may be zero or more * certificates. * • If the wCertificateType field is set to WIN_CERT_TYPE_EFI_PKCS115, * then the certificate follows the format described in * WIN_CERTIFICATE_EFI_PKCS1_15. * • If the wCertificateType field is set to WIN_CERT_TYPE_EFI_GUID, then * the certificate follows the format described in * WIN_CERTIFICATE_UEFI_GUID. * • If the wCertificateType field is set to WIN_CERT_TYPE_PKCS_SIGNED_DATA * then the certificate is formatted as described in the Authenticode * specification. * * Which basically means we see the first two in EFI signature databases, * and the third one in authenticode signatures. It goes on to say: * * Table 11. * PE/COFF Certificates Types and UEFI Signature Database Certificate Types * +---------------------------------------+-----------------------------------+ * | Image Certificate Type | Verified Using Signature Database | * | | Type | * +---------------------------------------+-----------------------------------+ * | WIN_CERT_TYPE_EFI_PKCS115 | EFI_CERT_RSA2048_GUID (public key)| * | ( Signature Size = 256 bytes) | | * +---------------------------------------+-----------------------------------+ * | WIN_CERT_TYPE_EFI_GUID | EFI_CERT_RSA2048_GUID (public key)| * | ( CertType = | | * | EFI_CERT_TYPE_RSA2048_SHA256_GUID ) | | * +---------------------------------------+-----------------------------------+ * | WIN_CERT_TYPE_EFI_GUID | EFI_CERT_X509_GUID | * | (CertType = EFI_CERT_TYPE_PKCS7_GUID) | EFI_CERT_RSA2048_GUID | * | | (when applicable) | * | | EFI_CERT_X509_SHA256_GUID | * | | (when applicable) | * | | EFI_CERT_X509_SHA384_GUID | * | | (when applicable) | * | | EFI_CERT_X509_SHA512_GUID | * | | (when applicable) | * +---------------------------------------+-----------------------------------+ * | WIN_CERT_TYPE_PKCS_SIGNED_DATA | EFI_CERT_X509_GUID | * | | EFI_CERT_RSA2048_GUID | * | | (when applicable) | * | | EFI_CERT_X509_SHA256_GUID | * | | (when applicable) | * | | EFI_CERT_X509_SHA384_GUID | * | | (when applicable) | * | | EFI_CERT_X509_SHA512_GUID | * | | (when applicable) | * +---------------------------------------+-----------------------------------+ * |(Always applicable regardless of | EFI_CERT_SHA1_GUID, | * | whether a certificate is present or | EFI_CERT_SHA224_GUID, | * | not) | EFI_CERT_SHA256_GUID, | * | | EFI_CERT_SHA384_GUID, | * | | EFI_CERT_SHA512_GUID | * | | In this case, the database | * | | contains the hash of the image. | * +---------------------------------------+-----------------------------------+ */ /* * hdr.cert_type = WIN_CERT_TYPE_PKCS_SIGNED_DATA */ typedef struct { win_certificate_header_t hdr; uint8_t data[]; // pkcs7 signedData } win_certificate_pkcs_signed_data_t; /* * hdr.cert_type = WIN_CERT_TYPE_EFI_PKCS115 */ typedef struct { win_certificate_header_t hdr; efi_guid_t hash_alg; uint8_t signature[]; } win_certificate_efi_pkcs1_15_t; /* * hdr.cert_type = WIN_CERT_TYPE_EFI_GUID */ typedef struct { win_certificate_header_t hdr; efi_guid_t type; uint8_t data[]; } win_certificate_uefi_guid_t; /* * public_key: pubkey that may or may not be trusted * signature: a RSA2048 signature of the SHA256 authenticode hash */ typedef struct { efi_guid_t hash_type; uint8_t public_key[256]; uint8_t signature[256]; } efi_cert_rsa2048_sha256_t; typedef struct { uint64_t monotonic_count; win_certificate_uefi_guid_t auth_info; } efi_variable_authentication_t __attribute__((aligned (1))); typedef struct { efi_time_t timestamp; win_certificate_uefi_guid_t auth_info; } efi_variable_authentication_2_t __attribute__((aligned (1))); #define EFI_VARIABLE_AUTHENTICATION_3_CERT_ID_SHA256 ((uint8_t)1) /* XXX the spec doesn't say if this is supposed to be packed/align(1) */ typedef struct { uint8_t type; uint32_t id_size; uint8_t id[]; } efi_variable_authentication_3_cert_id_t __attribute__((aligned (1))); #define EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE ((uint8_t)1) #define EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE ((uint8_t)2) /* XXX the spec doesn't say if this is supposed to be packed/align(1) */ typedef struct { uint8_t version; uint8_t type; uint32_t metadata_size; // this is everything except data[] uint32_t flags; } efi_variable_authentication_3_header_t __attribute__((aligned (1))); #define EFI_VARIABLE_ENHANCED_AUTH_FLAG_UPDATE_CERT ((uint32_t)0x00000001) typedef struct { uint32_t nonce_size; uint8_t nonce[]; } efi_variable_authentication_3_nonce_t; /* XXX the spec sort of implies that this is supposed to be packed/align(1) */ typedef struct { efi_variable_authentication_3_header_t hdr; efi_time_t timestamp; // if EFI_VARIABLE_ENHANCED_AUTH_FLAG_UPDATE_CERT is set: // uint8_t newcert[]; // uint8_t signing_cert[]; } efi_variable_timestamped_authentication_3 __attribute__((aligned (1))); /* XXX the spec sort of implies that this is supposed to be packed/align(1) */ typedef struct { efi_variable_authentication_3_header_t hdr; efi_variable_authentication_3_nonce_t nonce; // if EFI_VARIABLE_ENHANCED_AUTH_FLAG_UPDATE_CERT is set: // uint8_t newcert[]; // uint8_t signing_cert[]; } efi_variable_nonced_authentication_3 __attribute__((aligned (1))); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* !SECURITY_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efisec.h000066400000000000000000000010701455652431600176710ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefisec - library for the manipulation of EFI boot variables * Copyright 2020 Peter M. Jones * Copyright 2020 Red Hat, Inc. */ #ifndef EFISEC_H #define EFISEC_H 1 #include #include #include #ifdef __cplusplus extern "C" { #endif extern uint32_t efi_get_libefisec_version(void) __attribute__((__visibility__("default"))); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* EFISEC_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efivar-dp.h000066400000000000000000001004321455652431600203120ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2015 Red Hat, Inc. */ #ifndef _EFIVAR_DP_H #define _EFIVAR_DP_H 1 #include #ifdef __cplusplus extern "C" { #endif #define efidp_encode_bitfield_(name, shift, mask) \ (((name) << (shift)) & (mask)) #define efidp_decode_bitfield_(value, name, shift, mask) \ ({ (name) = ((value) & (mask)) >> (shift); }) #define efidp_size_after(dp, field) \ (efidp_size((const_efidp)dp) - \ (offsetof(__typeof__ (*(dp)), field) + sizeof((dp)->field))) #define EFIVAR_PACKED __attribute__((__packed__)) /* Generic device path header */ typedef struct { uint8_t type; uint8_t subtype; uint16_t length; } EFIVAR_PACKED efidp_header; /* A little bit of housekeeping... */ typedef uint8_t efidp_boolean; /* Each of the top-level types */ #define EFIDP_HARDWARE_TYPE 0x01 #define EFIDP_ACPI_TYPE 0x02 #define EFIDP_MESSAGE_TYPE 0x03 #define EFIDP_MEDIA_TYPE 0x04 #define EFIDP_BIOS_BOOT_TYPE 0x05 #define EFIDP_END_TYPE 0x7f /* Each hardware subtype */ #define EFIDP_HW_PCI 0x01 typedef struct { efidp_header header; uint8_t function; uint8_t device; } EFIVAR_PACKED efidp_pci; extern ssize_t efidp_make_pci(uint8_t *buf, ssize_t size, uint8_t device, uint8_t function); #define EFIDP_HW_PCCARD 0x02 typedef struct { efidp_header header; uint8_t function; } EFIVAR_PACKED efidp_pccard; #define EFIDP_HW_MMIO 0x03 typedef struct { efidp_header header; uint32_t memory_type; uint64_t starting_address; uint64_t ending_address; } EFIVAR_PACKED efidp_mmio; #define EFIDP_HW_VENDOR 0x04 typedef struct { efidp_header header; efi_guid_t vendor_guid; uint8_t vendor_data[]; } EFIVAR_PACKED efidp_hw_vendor; typedef efidp_hw_vendor efidp_vendor_hw; #define efidp_make_hw_vendor(buf, size, guid, data, data_size) \ efidp_make_vendor(buf, size, EFIDP_HARDWARE_TYPE, \ EFIDP_HW_VENDOR, guid, data, data_size) #define EDD10_HARDWARE_VENDOR_PATH_GUID \ EFI_GUID(0xCF31FAC5,0xC24E,0x11d2,0x85F3,0x00,0xA0,0xC9,0x3E,0xC9,0x3B) typedef struct { efidp_header header; efi_guid_t vendor_guid; uint32_t hardware_device; } EFIVAR_PACKED efidp_edd10; extern ssize_t efidp_make_edd10(uint8_t *buf, ssize_t size, uint32_t hardware_device); #define EFIDP_HW_CONTROLLER 0x05 typedef struct { efidp_header header; uint32_t controller; } EFIVAR_PACKED efidp_controller; #define EFIDP_HW_BMC 0x06 typedef struct { efidp_header header; uint8_t interface_type; uint64_t base_addr; } EFIVAR_PACKED efidp_bmc; #define EFIDP_BMC_UNKNOWN 0x00 #define EFIDP_BMC_KEYBOARD 0x01 #define EFIDP_BMC_SMIC 0x02 #define EFIDP_BMC_BLOCK 0x03 /* Each ACPI subtype */ #define EFIDP_ACPI_HID 0x01 typedef struct { efidp_header header; uint32_t hid; uint32_t uid; } EFIVAR_PACKED efidp_acpi_hid; extern ssize_t efidp_make_acpi_hid(uint8_t *buf, ssize_t size, uint32_t hid, uint32_t uid); #define EFIDP_ACPI_HID_EX 0x02 typedef struct { efidp_header header; uint32_t hid; uint32_t uid; uint32_t cid; /* three ascii string fields follow */ char hidstr[]; } EFIVAR_PACKED efidp_acpi_hid_ex; extern ssize_t efidp_make_acpi_hid_ex(uint8_t *buf, ssize_t size, uint32_t hid, uint32_t uid, uint32_t cid, const char *hidstr, const char *uidstr, const char *cidstr); #define EFIDP_PNP_EISA_ID_CONST 0x41d0 #define EFIDP_PNP_ACPI_ID_CONST 0x8e09 #define EFIDP_EISA_ID(_Name, _Num) ((uint32_t)((_Name) | (_Num) << 16)) #define EFIDP_EISA_PNP_ID(_PNPId) EFIDP_EISA_ID(EFIDP_PNP_EISA_ID_CONST,\ (_PNPId)) #define EFIDP_EFI_PNP_ID(_PNPId) EFIDP_EISA_ID(EFIDP_PNP_EISA_ID_CONST,\ (_PNPId)) #define EFIDP_EFI_ACPI_ID(_HID) EFIDP_EISA_ID(EFIDP_PNP_ACPI_ID_CONST,\ (_HID)) #define EFIDP_PNP_EISA_ID_MASK 0xffff #define EFIDP_EISA_ID_TO_NUM(_Id) ((_Id) >> 16) #define EFIDP_ACPI_ID_MASK 0xffff #define EFIDP_ACPI_ID_TO_NUM(_HID) ((_HID) >> 16) #define EFIDP_ACPI_PCI_ROOT_HID EFIDP_EFI_PNP_ID(0x0a03) #define EFIDP_ACPI_CONTAINER_0A05_HID EFIDP_EFI_PNP_ID(0x0a05) #define EFIDP_ACPI_CONTAINER_0A06_HID EFIDP_EFI_PNP_ID(0x0a06) #define EFIDP_ACPI_PCIE_ROOT_HID EFIDP_EFI_PNP_ID(0x0a08) #define EFIDP_ACPI_EC_HID EFIDP_EFI_PNP_ID(0x0a09) #define EFIDP_ACPI_FLOPPY_HID EFIDP_EFI_PNP_ID(0x0604) #define EFIDP_ACPI_KEYBOARD_HID EFIDP_EFI_PNP_ID(0x0301) #define EFIDP_ACPI_SERIAL_HID EFIDP_EFI_PNP_ID(0x0501) #define EFIDP_ACPI_PARALLEL_HID EFIDP_EFI_PNP_ID(0x0401) #define EFIDP_ACPI_NVDIMM_HID EFIDP_EFI_ACPI_ID(0x0012) #define EFIDP_ACPI_ADR 0x03 typedef struct { efidp_header header; uint32_t adr[]; } EFIVAR_PACKED efidp_acpi_adr; #define EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_MASK 0x80000000 #define EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_SHIFT 31 #define EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_ACPI 0x1 #define EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_OTHER 0x0 #define EFIDP_ACPI_ADR_VGA_PIPE_ID_MASK 0x001C0000 #define EFIDP_ACPI_ADR_VGA_PIPE_ID_SHIFT 18 #define EFIDP_ACPI_ADR_NONVGA_OUTPUT_ID_MASK 0x00020000 #define EFIDP_ACPI_ADR_NONVGA_OUTPUT_ID_SHIFT 17 #define EFIDP_ACPI_ADR_FIRMWARE_DETECT_MASK 0x00010000 #define EFIDP_ACPI_ADR_FIRMWARE_DETECT_SHIFT 16 #define EFIDP_ACPI_ADR_VENDOR_INFO_MASK 0x0000f000 #define EFIDP_ACPI_ADR_VENDOR_INFO_SHIFT 12 #define EFIDP_ACPI_ADR_DISPLAY_TYPE_MASK 0x00000f00 #define EFIDP_ACPI_ADR_DISPLAY_TYPE_SHIFT 8 #define EFIDP_ACPI_ADR_DISPLAY_TYPE_OTHER 0 #define EFIDP_ACPI_ADR_DISPLAY_TYPE_VGA 1 #define EFIDP_ACPI_ADR_DISPLAY_TYPE_TV 2 #define EFIDP_ACPI_ADR_DISPLAY_TYPE_EXTERNAL_DIGITAL 3 #define EFIDP_ACPI_ADR_DISPLAY_TYPE_INTERNAL_DIGITAL 4 #define EFIDP_ACPI_ADR_DISPLAY_PORT_MASK 0x000000f0 #define EFIDP_ACPI_ADR_DISPLAY_PORT_SHIFT 4 #define EFIDP_ACPI_ADR_DISPLAY_INDEX_MASK 0x0000000f #define EFIDP_ACPI_ADR_DISPLAY_INDEX_SHIFT 0 #define efidp_encode_acpi_display_adr(device_id_scheme, pipe_id, \ nonvga_output, \ firmware_can_detect, vendor_info, \ type, port, index, adr) \ ({ \ ((uint32_t)(adr)) = ((uint32_t)( \ efidp_encode_bitfield_(device_id_scheme, \ EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_SHIFT, \ EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_MASK) | \ efidp_encode_bitfield_(pipe_id, \ EFIDP_ACPI_ADR_VGA_PIPE_ID_SHIFT, \ EFIDP_ACPI_ADR_VGA_PIPE_ID_MASK) | \ efidp_encode_bitfield_(nonvga_output, \ EFIDP_ACPI_ADR_NONVGA_OUTPUT_ID_SHIFT, \ EFIDP_ACPI_ADR_NONVGA_OUTPUT_ID_MASK) | \ efidp_encode_bitfield_(firmware_can_detect, \ EFIDP_ACPI_ADR_FIRMWARE_DETECT_SHIFT, \ EFIDP_ACPI_ADR_FIRMWARE_DETECT_MASK) | \ efidp_encode_bitfield_(vendor_info, \ EFIDP_ACPI_ADR_VENDOR_INFO_SHIFT, \ EFIDP_ACPI_ADR_VENDOR_INFO_MASK) | \ efidp_encode_bitfield_(type, \ EFIDP_ACPI_ADR_DISPLAY_TYPE_SHIFT, \ EFIDP_ACPI_ADR_DISPLAY_TYPE_MASK) | \ efidp_encode_bitfield_(port, \ EFIDP_ACPI_ADR_DISPLAY_PORT_SHIFT, \ EFIDP_ACPI_ADR_DISPLAY_PORT_MASK) | \ efidp_encode_bitfield_(index, \ EFIDP_ACPI_ADR_DISPLAY_INDEX_SHIFT, \ EFIDP_ACPI_ADR_DISPLAY_INDEX_MASK))); \ (device_id_scheme == EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_ACPI); \ }) #define efidp_decode_acpi_display_adr(adr, device_id_scheme, pipe_id, \ nonvga_output, \ firmware_can_detect, vendor_info, \ type, port, index) ({ \ efidp_decode_bitfield_(adr, *(device_id_scheme), \ EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_SHIFT, \ EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_MASK); \ efidp_decode_bitfield_(adr, *(pipe_id), \ EFIDP_ACPI_ADR_VGA_PIPE_ID_SHIFT, \ EFIDP_ACPI_ADR_VGA_PIPE_ID_MASK); \ efidp_decode_bitfield_(adr, *(nonvga_output), \ EFIDP_ACPI_ADR_NONVGA_OUTPUT_ID_SHIFT, \ EFIDP_ACPI_ADR_NONVGA_OUTPUT_ID_MASK); \ efidp_decode_bitfield_(adr, *(firmware_can_detect), \ EFIDP_ACPI_ADR_FIRMWARE_DETECT_SHIFT, \ EFIDP_ACPI_ADR_FIRMWARE_DETECT_MASK); \ efidp_decode_bitfield_(adr, *(vendor_info), \ EFIDP_ACPI_ADR_VENDOR_INFO_SHIFT, \ EFIDP_ACPI_ADR_VENDOR_INFO_MASK); \ efidp_decode_bitfield_(adr, *(type), \ EFIDP_ACPI_ADR_DISPLAY_TYPE_SHIFT, \ EFIDP_ACPI_ADR_DISPLAY_TYPE_MASK); \ efidp_decode_bitfield_(adr, *(port), \ EFIDP_ACPI_ADR_DISPLAY_PORT_SHIFT, \ EFIDP_ACPI_ADR_DISPLAY_PORT_MASK); \ efidp_decode_bitfield_(adr, *(index), \ EFIDP_ACPI_ADR_DISPLAY_INDEX_SHIFT, \ EFIDP_ACPI_ADR_DISPLAY_INDEX_MASK); \ (*(device_id_scheme)) == EFIDP_ACPI_ADR_DEVICE_ID_SCHEME_ACPI; \ }) #define EFIDP_ACPI_ADR_NVDIMM_NODE_CONTROLLER_MASK 0x0fff0000 #define EFIDP_ACPI_ADR_NVDIMM_NODE_CONTROLLER_SHIFT 16 #define EFIDP_ACPI_ADR_NVDIMM_SOCKET_ID_MASK 0x0000f000 #define EFIDP_ACPI_ADR_NVDIMM_SOCKET_ID_SHIFT 12 #define EFIDP_ACPI_ADR_NVDIMM_MEMORY_CONTROLLER_MASK 0x00000f00 #define EFIDP_ACPI_ADR_NVDIMM_MEMORY_CONTROLLER_SHIFT 8 #define EFIDP_ACPI_ADR_NVDIMM_MEMORY_CHANNEL_MASK 0x000000f0 #define EFIDP_ACPI_ADR_NVDIMM_MEMORY_CHANNEL_SHIFT 4 #define EFIDP_ACPI_ADR_NVDIMM_DIMM_MASK 0x0f00000f #define EFIDP_ACPI_ADR_NVDIMM_DIMM_SHIFT 0 #define efidp_encode_acpi_nvdimm_adr(node_controller, \ socket, memory_controller, \ memory_channel, dimm, adr) \ ({ \ ((uint32_t)(adr)) = ((uint32_t)( \ efidp_encode_bitfield_(node_controller, \ EFIDP_ACPI_ADR_NVDIMM_NODE_CONTROLLER_SHIFT,\ EFIDP_ACPI_ADR_NVDIMM_NODE_CONTROLLER_MASK) | \ efidp_encode_bitfield_(socket, \ EFIDP_ACPI_ADR_NVDIMM_SOCKET_ID_SHIFT, \ EFIDP_ACPI_ADR_NVDIMM_SOCKET_ID_MASK) | \ efidp_encode_bitfield_(memory_controller, \ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CONTROLLER_SHIFT,\ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CONTROLLER_MASK)|\ efidp_encode_bitfield_(memory_channel, \ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CHANNEL_SHIFT,\ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CHANNEL_MASK) | \ efidp_encode_bitfield_(dimm, \ EFIDP_ACPI_ADR_NVDIMM_DIMM_SHIFT, \ EFIDP_ACPI_ADR_NVDIMM_DIMM_MASK)); \ }) #define efidp_decode_acpi_nvdimm_adr(adr, node_controller, socket, \ memory_controller, memory_channel, \ dimm) \ ({ \ efidp_decode_bitfield_(adr, *(node_controller), \ EFIDP_ACPI_ADR_NVDIMM_NODE_CONTROLLER_SHIFT,\ EFIDP_ACPI_ADR_NVDIMM_NODE_CONTROLLER_MASK);\ efidp_decode_bitfield_(adr, *(socket), \ EFIDP_ACPI_ADR_NVDIMM_SOCKET_ID_SHIFT, \ EFIDP_ACPI_ADR_NVDIMM_SOCKET_ID_MASK); \ efidp_decode_bitfield_(adr, *(memory_controller), \ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CONTROLLER_SHIFT,\ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CONTROLLER_MASK);\ efidp_decode_bitfield_(adr, *(memory_channel), \ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CHANNEL_SHIFT,\ EFIDP_ACPI_ADR_NVDIMM_MEMORY_CHANNEL_MASK);\ efidp_decode_bitfield_(adr, *(dimm), \ EFIDP_ACPI_ADR_NVDIMM_DIMM_SHIFT, \ EFIDP_ACPI_ADR_NVDIMM_DIMM_MASK); \ 0; \ }) /* Each messaging subtype */ #define EFIDP_MSG_ATAPI 0x01 typedef struct { efidp_header header; uint8_t primary; uint8_t slave; uint16_t lun; } EFIVAR_PACKED efidp_atapi; extern ssize_t efidp_make_atapi(uint8_t *buf, ssize_t size, uint16_t primary, uint16_t slave, uint16_t lun); #define EFIDP_MSG_SCSI 0x02 typedef struct { efidp_header header; uint16_t target; uint16_t lun; } EFIVAR_PACKED efidp_scsi; extern ssize_t efidp_make_scsi(uint8_t *buf, ssize_t size, uint16_t target, uint16_t lun); #define EFIDP_MSG_FIBRECHANNEL 0x03 typedef struct { efidp_header header; uint32_t reserved; uint64_t wwn; uint64_t lun; } EFIVAR_PACKED efidp_fc; #define EFIDP_MSG_FIBRECHANNELEX 0x15 typedef struct { efidp_header header; uint32_t reserved; uint8_t wwn[8]; uint8_t lun[8]; } EFIVAR_PACKED efidp_fcex; #define EFIDP_MSG_1394 0x04 typedef struct { efidp_header header; uint32_t reserved; uint64_t guid; } EFIVAR_PACKED efidp_1394; #define EFIDP_MSG_USB 0x05 typedef struct { efidp_header header; uint8_t parent_port; uint8_t interface; } EFIVAR_PACKED efidp_usb; #define EFIDP_MSG_USB_CLASS 0x0f typedef struct { efidp_header header; uint16_t vendor_id; uint16_t product_id; uint8_t device_class; uint8_t device_subclass; uint8_t device_protocol; } EFIVAR_PACKED efidp_usb_class; #define EFIDP_USB_CLASS_AUDIO 0x01 #define EFIDP_USB_CLASS_CDC_CONTROL 0x02 #define EFIDP_USB_CLASS_HID 0x03 #define EFIDP_USB_CLASS_IMAGE 0x06 #define EFIDP_USB_CLASS_PRINTER 0x07 #define EFIDP_USB_CLASS_MASS_STORAGE 0x08 #define EFIDP_USB_CLASS_HUB 0x09 #define EFIDP_USB_CLASS_CDC_DATA 0x0a #define EFIDP_USB_CLASS_SMARTCARD 0x0b #define EFIDP_USB_CLASS_VIDEO 0x0e #define EFIDP_USB_CLASS_DIAGNOSTIC 0xdc #define EFIDP_USB_CLASS_WIRELESS 0xde #define EFIDP_USB_CLASS_254 0xfe #define EFIDP_USB_SUBCLASS_FW_UPDATE 0x01 #define EFIDP_USB_SUBCLASS_IRDA_BRIDGE 0x02 #define EFIDP_USB_SUBCLASS_TEST_AND_MEASURE 0x03 #define EFIDP_MSG_USB_WWID 0x10 typedef struct { efidp_header header; uint16_t interface; uint16_t vendor_id; uint16_t product_id; uint16_t serial_number[]; } EFIVAR_PACKED efidp_usb_wwid; #define EFIDP_MSG_LUN 0x11 typedef struct { efidp_header header; uint8_t lun; } EFIVAR_PACKED efidp_lun; #define EFIDP_MSG_SATA 0x12 typedef struct { efidp_header header; uint16_t hba_port; uint16_t port_multiplier_port; uint16_t lun; } EFIVAR_PACKED efidp_sata; #define SATA_HBA_DIRECT_CONNECT_FLAG 0x8000 extern ssize_t efidp_make_sata(uint8_t *buf, ssize_t size, uint16_t hba_port, int16_t port_multiplier_port, uint16_t lun); #define EFIDP_MSG_I2O 0x06 typedef struct { efidp_header header; uint32_t target; } EFIVAR_PACKED efidp_i2o; #define EFIDP_MSG_MAC_ADDR 0x0b typedef struct { efidp_header header; uint8_t mac_addr[32]; uint8_t if_type; } EFIVAR_PACKED efidp_mac_addr; extern ssize_t efidp_make_mac_addr(uint8_t *buf, ssize_t size, uint8_t if_type, const uint8_t * const mac_addr, ssize_t mac_addr_size); #define EFIDP_MSG_IPv4 0x0c typedef struct { efidp_header header; uint8_t local_ipv4_addr[4]; uint8_t remote_ipv4_addr[4]; uint16_t local_port; uint16_t remote_port; uint16_t protocol; efidp_boolean static_ip_addr; uint8_t gateway[4]; uint8_t netmask[4]; } EFIVAR_PACKED efidp_ipv4_addr; /* everything here is in host byte order */ extern ssize_t efidp_make_ipv4(uint8_t *buf, ssize_t size, uint32_t local, uint32_t remote, uint32_t gateway, uint32_t netmask, uint16_t local_port, uint16_t remote_port, uint16_t protocol, int is_static); #define EFIDP_IPv4_ORIGIN_DHCP 0x00 #define EFIDP_IPv4_ORIGIN_STATIC 0x01 #define EFIDP_MSG_IPv6 0x0d typedef struct { efidp_header header; uint8_t local_ipv6_addr[16]; uint8_t remote_ipv6_addr[16]; uint16_t local_port; uint16_t remote_port; uint16_t protocol; uint8_t ip_addr_origin; uint8_t prefix_length; uint8_t gateway_ipv6_addr[16]; } EFIVAR_PACKED efidp_ipv6_addr; #define EFIDP_IPv6_ORIGIN_MANUAL 0x00 #define EFIDP_IPv6_ORIGIN_STATIC 0x00 #define EFIDP_IPv6_ORIGIN_AUTOCONF 0x01 #define EFIDP_IPv6_ORIGIN_STATEFUL 0x02 #define EFIDP_MSG_VLAN 0x14 typedef struct { efidp_header header; uint16_t vlan_id; } EFIVAR_PACKED efidp_vlan; #define EFIDP_MSG_INFINIBAND 0x09 typedef struct { efidp_header header; uint32_t resource_flags; uint64_t port_gid[2]; union { uint64_t ioc_guid; uint64_t service_id; }; uint64_t target_port_id; uint64_t device_id; } EFIVAR_PACKED efidp_infiniband; #define EFIDP_INFINIBAND_RESOURCE_IOC_SERVICE 0x01 #define EFIDP_INFINIBAND_RESOURCE_EXTENDED_BOOT 0x02 #define EFIDP_INFINIBAND_RESOURCE_CONSOLE 0x04 #define EFIDP_INFINIBAND_RESOURCE_STORAGE 0x08 #define EFIDP_INFINIBAND_RESOURCE_NETWORK 0x10 #define EFIDP_MSG_UART 0x0e typedef struct { efidp_header header; uint32_t reserved; uint64_t baud_rate; uint8_t data_bits; uint8_t parity; uint8_t stop_bits; } EFIVAR_PACKED efidp_uart; #define EFIDP_UART_PARITY_DEFAULT 0x00 #define EFIDP_UART_PARITY_NONE 0x01 #define EFIDP_UART_PARITY_EVEN 0x02 #define EFIDP_UART_PARITY_ODD 0x03 #define EFIDP_UART_PARITY_MARK 0x04 #define EFIDP_UART_PARITY_SPACE 0x05 #define EFIDP_UART_STOP_BITS_DEFAULT 0x00 #define EFIDP_UART_STOP_BITS_ONE 0x01 #define EFIDP_UART_STOP_BITS_ONEFIVE 0x02 #define EFIDP_UART_STOP_BITS_TWO 0x03 #define EFIDP_PC_ANSI_GUID \ EFI_GUID(0xe0c14753,0xf9be,0x11d2,0x9a0c,0x00,0x90,0x27,0x3f,0xc1,0x4d) #define EFIDP_VT_100_GUID \ EFI_GUID(0xdfa66065,0xb419,0x11d3,0x9a2d,0x00,0x90,0x27,0x3f,0xc1,0x4d) #define EFIDP_VT_100_PLUS_GUID\ EFI_GUID(0x7baec70b,0x57e0,0x4c76,0x8e87,0x2f,0x9e,0x28,0x08,0x83,0x43) #define EFIDP_VT_UTF8_GUID\ EFI_GUID(0xad15a0d6,0x8bec,0x4acf,0xa073,0xd0,0x1d,0xe7,0x7e,0x2d,0x88) #define EFIDP_MSG_VENDOR 0x0a typedef struct { efidp_header header; efi_guid_t vendor_guid; uint8_t vendor_data[]; } EFIVAR_PACKED efidp_msg_vendor; typedef efidp_msg_vendor efidp_vendor_msg; #define efidp_make_msg_vendor(buf, size, guid, data, data_size) \ efidp_make_vendor(buf, size, EFIDP_MESSAGE_TYPE, \ EFIDP_MSG_VENDOR, guid, data, data_size) /* The next ones are phrased as vendor specific, but they're in the spec. */ #define EFIDP_MSG_UART_GUID \ EFI_GUID(0x37499a9d,0x542f,0x4c89,0xa026,0x35,0xda,0x14,0x20,0x94,0xe4) typedef struct { efidp_header header; efi_guid_t vendor_guid; uint32_t flow_control_map; } EFIVAR_PACKED efidp_uart_flow_control; #define EFIDP_UART_FLOW_CONTROL_HARDWARE 0x1 #define EFIDP_UART_FLOW_CONTROL_XONXOFF 0x2 #define EFIDP_MSG_SAS_GUID \ EFI_GUID(0xd487ddb4,0x008b,0x11d9,0xafdc,0x00,0x10,0x83,0xff,0xca,0x4d) typedef struct { efidp_header header; efi_guid_t vendor_guid; uint32_t reserved; uint64_t sas_address; uint64_t lun; uint8_t device_topology_info; uint8_t drive_bay_id; /* If EFIDP_SAS_TOPOLOGY_NEXTBYTE set */ uint16_t rtp; } EFIVAR_PACKED efidp_sas; extern ssize_t efidp_make_sas(uint8_t *buf, ssize_t size, uint64_t sas_address); /* device_topology_info Bits 0:3 (enum) */ #define EFIDP_SAS_TOPOLOGY_MASK 0x02 #define EFIDP_SAS_TOPOLOGY_NONE 0x0 #define EFIDP_SAS_TOPOLOGY_THISBYTE 0x1 #define EFIDP_SAS_TOPOLOGY_NEXTBYTE 0x2 /* device_topology_info Bits 4:5 (enum) */ #define EFIDP_SAS_DEVICE_MASK 0x30 #define EFIDP_SAS_DEVICE_SHIFT 4 #define EFIDP_SAS_DEVICE_SAS_INTERNAL 0x0 #define EFIDP_SAS_DEVICE_SATA_INTERNAL 0x1 #define EFIDP_SAS_DEVICE_SAS_EXTERNAL 0x2 #define EFIDP_SAS_DEVICE_SATA_EXTERNAL 0x3 /* device_topology_info Bits 6:7 (enum) */ #define EFIDP_SAS_CONNECT_MASK 0x40 #define EFIDP_SAS_CONNECT_SHIFT 6 #define EFIDP_SAS_CONNECT_DIRECT 0x0 #define EFIDP_SAS_CONNECT_EXPANDER 0x1 #define EFIDP_MSG_SAS_EX 0x16 typedef struct { efidp_header header; uint8_t sas_address[8]; uint8_t lun[8]; uint8_t device_topology_info; uint8_t drive_bay_id; /* If EFIDP_SAS_TOPOLOGY_NEXTBYTE set */ uint16_t rtp; } EFIVAR_PACKED efidp_sas_ex; #define EFIDP_MSG_DEBUGPORT_GUID \ EFI_GUID(0xEBA4E8D2,0x3858,0x41EC,0xA281,0x26,0x47,0xBA,0x96,0x60,0xD0) #define EFIDP_MSG_ISCSI 0x13 typedef struct { efidp_header header; uint16_t protocol; uint16_t options; uint8_t lun[8]; uint16_t tpgt; uint8_t target_name[]; } EFIVAR_PACKED efidp_iscsi; /* options bits 0:1 */ #define EFIDP_ISCSI_HEADER_DIGEST_SHIFT 0 #define EFIDP_ISCSI_NO_HEADER_DIGEST 0x0 #define EFIDP_ISCSI_HEADER_CRC32 0x2 /* option bits 2:3 */ #define EFIDP_ISCSI_DATA_DIGEST_SHIFT 2 #define EFIDP_ISCSI_NO_DATA_DIGEST 0x0 #define EFIDP_ISCSI_DATA_CRC32 0x2 /* option bits 4:9 */ #define EFIDP_ISCSI_RESERVED 0x0 /* option bits 10:11 */ #define EFIDP_ISCSI_AUTH_SHIFT 10 #define EFIDP_ISCSI_AUTH_CHAP 0x0 #define EFIDP_ISCSI_AUTH_NONE 0x2 /* option bit 12 */ #define EFIDP_ISCSI_CHAP_SHIFT 12 #define EFIDP_ISCSI_CHAP_BI 0x0 #define EFIDP_ISCSI_CHAP_UNI 0x1 #define EFIDP_ISCSI_MAX_TARGET_NAME_LEN 223 #define EFIDP_MSG_NVME 0x17 typedef struct { efidp_header header; uint32_t namespace_id; uint8_t ieee_eui_64[8]; } EFIVAR_PACKED efidp_nvme; extern ssize_t efidp_make_nvme(uint8_t *buf, ssize_t size, uint32_t namespace_id, uint8_t *ieee_eui_64); #define EFIDP_MSG_URI 0x18 typedef struct { efidp_header header; uint8_t uri[]; } EFIVAR_PACKED efidp_uri; #define EFIDP_MSG_UFS 0x19 typedef struct { efidp_header header; uint8_t target_id; uint8_t lun; } EFIVAR_PACKED efidp_ufs; #define EFIDP_MSG_SD 0x1a typedef struct { efidp_header header; uint8_t slot_number; } EFIVAR_PACKED efidp_sd; #define EFIDP_MSG_BT 0x1b typedef struct { efidp_header header; uint8_t addr[6]; } EFIVAR_PACKED efidp_bt; #define EFIDP_MSG_WIFI 0x1c typedef struct { efidp_header header; uint8_t ssid[32]; } EFIVAR_PACKED efidp_wifi; #define EFIDP_MSG_EMMC 0x1d typedef struct { efidp_header header; uint8_t slot; } EFIVAR_PACKED efidp_emmc; extern ssize_t efidp_make_emmc(uint8_t *buf, ssize_t size, uint32_t slot_id); #define EFIDP_MSG_BTLE 0x1e typedef struct { efidp_header header; uint8_t addr[6]; uint8_t addr_type; } EFIVAR_PACKED efidp_btle; #define EFIDP_MSG_BTLE_ADDR_TYPE_PUBLIC 0 #define EFIDP_MSG_BTLE_ADDR_TYPE_RANDOM 1 #define EFIDP_MSG_DNS 0x1f typedef struct { efidp_header header; uint8_t is_ipv6; efi_ip_addr_t addrs[]; } EFIVAR_PACKED efidp_dns; #define EFIDP_MSG_NVDIMM 0x20 typedef struct { efidp_header header; efi_guid_t uuid; } EFIVAR_PACKED efidp_nvdimm; extern ssize_t efidp_make_nvdimm(uint8_t *buf, ssize_t size, efi_guid_t *uuid); /* Each media subtype */ #define EFIDP_MEDIA_HD 0x1 typedef struct { efidp_header header; uint32_t partition_number; uint64_t start; uint64_t size; uint8_t signature[16]; uint8_t format; uint8_t signature_type; #ifdef __ia64 uint8_t padding[6]; /* Emperically needed */ #endif } EFIVAR_PACKED EFIVAR_PACKED efidp_hd; extern ssize_t efidp_make_hd(uint8_t *buf, ssize_t size, uint32_t num, uint64_t part_start, uint64_t part_size, uint8_t *signature, uint8_t format, uint8_t signature_type); #define EFIDP_HD_FORMAT_PCAT 0x01 #define EFIDP_HD_FORMAT_GPT 0x02 #define EFIDP_HD_SIGNATURE_NONE 0x00 #define EFIDP_HD_SIGNATURE_MBR 0x01 #define EFIDP_HD_SIGNATURE_GUID 0x02 #define EFIDP_MEDIA_CDROM 0x2 typedef struct { efidp_header header; uint32_t boot_catalog_entry; uint64_t partition_rba; uint64_t sectors; } EFIVAR_PACKED efidp_cdrom; #define EFIDP_MEDIA_VENDOR 0x3 typedef struct { efidp_header header; efi_guid_t vendor_guid; uint8_t vendor_data[]; } EFIVAR_PACKED efidp_media_vendor; typedef efidp_media_vendor efidp_vendor_media; #define efidp_make_media_vendor(buf, size, guid, data, data_size) \ efidp_make_vendor(buf, size, EFIDP_MEDIA_TYPE, \ EFIDP_MEDIA_VENDOR, guid, data, data_size) #define EFIDP_MEDIA_FILE 0x4 typedef struct { efidp_header header; uint16_t name[]; } EFIVAR_PACKED efidp_file; extern ssize_t efidp_make_file(uint8_t *buf, ssize_t size, char *filename); #define EFIDP_MEDIA_PROTOCOL 0x5 typedef struct { efidp_header header; efi_guid_t protocol_guid; } EFIVAR_PACKED efidp_protocol; #define EFIDP_MEDIA_FIRMWARE_FILE 0x6 typedef struct { efidp_header header; uint8_t pi_info[]; } EFIVAR_PACKED efidp_firmware_file; #define EFIDP_MEDIA_FIRMWARE_VOLUME 0x7 typedef struct { efidp_header header; uint8_t pi_info[]; } EFIVAR_PACKED efidp_firmware_volume; #define EFIDP_MEDIA_RELATIVE_OFFSET 0x8 typedef struct { efidp_header header; uint32_t reserved; uint64_t first_byte; uint64_t last_byte; } EFIVAR_PACKED efidp_relative_offset; #define EFIDP_MEDIA_RAMDISK 0x9 typedef struct { efidp_header header; uint64_t start_addr; uint64_t end_addr; efi_guid_t disk_type_guid; uint16_t instance_number; } EFIVAR_PACKED efidp_ramdisk; #define EFIDP_VIRTUAL_DISK_GUID \ EFI_GUID(0x77AB535A,0x45FC,0x624B,0x5560,0xF7,0xB2,0x81,0xD1,0xF9,0x6E) #define EFIDP_VIRTUAL_CD_GUID \ EFI_GUID(0x3D5ABD30,0x4175,0x87CE,0x6D64,0xD2,0xAD,0xE5,0x23,0xC4,0xBB) #define EFIDP_PERSISTENT_VIRTUAL_DISK_GUID \ EFI_GUID(0x5CEA02C9,0x4D07,0x69D3,0x269F,0x44,0x96,0xFB,0xE0,0x96,0xF9) #define EFIDP_PERSISTENT_VIRTUAL_CD_GUID \ EFI_GUID(0x08018188,0x42CD,0xBB48,0x100F,0x53,0x87,0xD5,0x3D,0xED,0x3D) /* Each BIOS Boot subtype */ #define EFIDP_BIOS_BOOT 0x1 typedef struct { efidp_header header; uint16_t device_type; uint16_t status; uint8_t description[]; } EFIVAR_PACKED efidp_bios_boot; #define EFIDP_BIOS_BOOT_DEVICE_TYPE_FLOPPY 1 #define EFIDP_BIOS_BOOT_DEVICE_TYPE_HD 2 #define EFIDP_BIOS_BOOT_DEVICE_TYPE_CDROM 3 #define EFIDP_BIOS_BOOT_DEVICE_TYPE_PCMCIA 4 #define EFIDP_BIOS_BOOT_DEVICE_TYPE_USB 5 #define EFIDP_BIOS_BOOT_DEVICE_TYPE_EMBEDDED_NET 6 #define EFIDP_BIOS_BOOT_DEVICE_TYPE_UNKNOWN 0xff #define EFIDP_END_ENTIRE 0xff #define EFIDP_END_INSTANCE 0x01 /* utility functions */ typedef union { struct { uint8_t type; uint8_t subtype; uint16_t length; }; efidp_header header; efidp_pci pci; efidp_pccard pccard; efidp_mmio mmio; efidp_hw_vendor hw_vendor; efidp_controller controller; efidp_bmc bmc; efidp_acpi_hid acpi_hid; efidp_acpi_hid_ex acpi_hid_ex; efidp_acpi_adr acpi_adr; efidp_atapi atapi; efidp_scsi scsi; efidp_fc fc; efidp_fcex fcex; efidp_1394 firewire; efidp_usb usb; efidp_usb_class usb_class; efidp_usb_wwid usb_wwid; efidp_lun lun; efidp_sata sata; efidp_i2o i2o; efidp_mac_addr mac_addr; efidp_ipv4_addr ipv4_addr; efidp_ipv6_addr ipv6_addr; efidp_vlan vlan; efidp_infiniband infiniband; efidp_uart uart; efidp_msg_vendor msg_vendor; efidp_uart_flow_control uart_flow_control; efidp_sas sas; efidp_sas_ex sas_ex; efidp_iscsi iscsi; efidp_nvme nvme; efidp_uri uri; efidp_ufs ufs; efidp_sd sd; efidp_bt bt; efidp_wifi wifi; efidp_emmc emmc; efidp_btle btle; efidp_dns dns; efidp_nvdimm nvdimm; efidp_hd hd; efidp_cdrom cdrom; efidp_media_vendor media_vendor; efidp_file file; efidp_protocol protocol; efidp_firmware_file firmware_file; efidp_firmware_volume firmware_volume; efidp_relative_offset relative_offset; efidp_ramdisk ramdisk; efidp_bios_boot bios_boot; } EFIVAR_PACKED efidp_data; typedef efidp_data *efidp; typedef const efidp_data *const_efidp; extern int efidp_set_node_data(const_efidp dn, void *buf, size_t bufsize); extern int efidp_duplicate_path(const_efidp dp, efidp *out); extern int efidp_append_path(const_efidp dp0, const_efidp dp1, efidp *out); extern int efidp_append_node(const_efidp dp, const_efidp dn, efidp *out); extern int efidp_append_instance(const_efidp dp, const_efidp dpi, efidp *out); #if defined(__clang__) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpointer-bool-conversion" #endif #if defined(__GNUC__) && !defined(__clang__) #define EFIVAR_ARTIFICIAL __attribute__((__artificial__)) #else #define EFIVAR_ARTIFICIAL #endif #define EFIVAR_UNUSED __attribute__((__unused__)) #define EFIVAR_WARN_UNCHECKED __attribute__((__warn_unused_result__)) static inline int16_t EFIVAR_ARTIFICIAL EFIVAR_UNUSED efidp_type(const_efidp dp) { if (!dp) { errno = EINVAL; return -1; } return (uint8_t)dp->type; } static inline int16_t EFIVAR_ARTIFICIAL EFIVAR_UNUSED efidp_subtype(const_efidp dp) { if (!dp) { errno = EINVAL; return -1; } return (uint8_t)dp->subtype; } static inline ssize_t EFIVAR_ARTIFICIAL EFIVAR_UNUSED EFIVAR_WARN_UNCHECKED efidp_node_size(const_efidp dn) { if (!dn || dn->length < 4) { errno = EINVAL; return -1; } return dn->length; } static inline int EFIVAR_ARTIFICIAL EFIVAR_UNUSED EFIVAR_WARN_UNCHECKED efidp_next_node(const_efidp in, const_efidp *out) { ssize_t sz; if (efidp_type(in) == EFIDP_END_TYPE && efidp_subtype(in) == EFIDP_END_ENTIRE) return 0; sz = efidp_node_size(in); if (sz < 0) return -1; /* I love you gcc. */ *out = (const_efidp)(const efidp_header *)((const uint8_t *)in + sz); if (*out < in) { errno = EINVAL; return -1; } return 1; } static inline int EFIVAR_ARTIFICIAL EFIVAR_UNUSED EFIVAR_WARN_UNCHECKED efidp_next_instance(const_efidp in, const_efidp *out) { ssize_t sz; if (efidp_type(in) != EFIDP_END_TYPE || efidp_subtype(in) != EFIDP_END_INSTANCE) { errno = EINVAL; return -1; } sz = efidp_node_size(in); if (sz < 0) return -1; /* I love you gcc. */ *out = (const_efidp)(const efidp_header *)((uint8_t *)in + sz); if (*out < in) { errno = EINVAL; return -1; } return 1; } static inline int EFIVAR_ARTIFICIAL EFIVAR_UNUSED EFIVAR_WARN_UNCHECKED efidp_is_multiinstance(const_efidp dn) { while (1) { const_efidp next = NULL; int rc; rc = efidp_next_node(dn, &next); if (rc < 0) { errno = EINVAL; return -1; } else if (rc == 0) { return 0; } dn = next; if (efidp_type(dn) == EFIDP_END_TYPE && efidp_subtype(dn) == EFIDP_END_INSTANCE) return 1; if (efidp_type(dn) == EFIDP_END_TYPE && efidp_subtype(dn) == EFIDP_END_ENTIRE) return 0; } return 0; } static inline int EFIVAR_ARTIFICIAL EFIVAR_UNUSED EFIVAR_WARN_UNCHECKED efidp_get_next_end(const_efidp in, const_efidp *out) { while (1) { const_efidp next; ssize_t sz; if (efidp_type(in) == EFIDP_END_TYPE) { *out = in; return 0; } sz = efidp_node_size(in); if (sz < 0) break; next = (const_efidp)(const efidp_header *)((uint8_t *)in + sz); if (next < in) { errno = EINVAL; return -1; } in = next; } return -1; } static inline ssize_t EFIVAR_ARTIFICIAL EFIVAR_UNUSED EFIVAR_WARN_UNCHECKED efidp_size(const_efidp dp) { ssize_t ret = 0; if (!dp) { errno = EINVAL; return -1; } if (efidp_type(dp) == EFIDP_END_TYPE && efidp_subtype(dp) == EFIDP_END_ENTIRE) return efidp_node_size(dp); while (1) { int rc; ssize_t sz; const_efidp next = NULL; sz = efidp_node_size(dp); if (sz < 0) return sz; ret += sz; rc = efidp_next_instance(dp, &next); if (rc < 0) { rc = efidp_next_node(dp, &next); if (rc == 0) break; } if (rc < 0) return rc; dp = next; } return ret; } static inline ssize_t EFIVAR_ARTIFICIAL EFIVAR_UNUSED EFIVAR_WARN_UNCHECKED efidp_instance_size(const_efidp dpi) { ssize_t ret = 0; while (1) { ssize_t sz; const_efidp next = NULL; int rc; sz = efidp_node_size(dpi); if (sz < 0) return sz; ret += sz; if (efidp_type(dpi) == EFIDP_END_TYPE) break; rc = efidp_next_node(dpi, &next); if (rc < 0) return rc; dpi = next; } return ret; } static inline int EFIVAR_ARTIFICIAL EFIVAR_UNUSED efidp_is_valid(const_efidp dp, ssize_t limit) { efidp_header *hdr = (efidp_header *)dp; /* just to make it so I'm not checking for negatives everywhere, * limit this at a truly absurdly large size. */ if (limit < 0) limit = INT_MAX; while (limit > 0 && hdr) { efidp_header *next; if (limit < (int64_t)(sizeof (efidp_header))) return 0; switch (hdr->type) { case EFIDP_HARDWARE_TYPE: if (hdr->subtype != EFIDP_HW_VENDOR && hdr->length > 1024) { errno = EINVAL; efi_error("invalid hardware node"); return 0; } break; case EFIDP_ACPI_TYPE: if (hdr->length > 1024) { errno = EINVAL; efi_error("invalid ACPI node"); return 0; } break; case EFIDP_MESSAGE_TYPE: if (hdr->subtype != EFIDP_MSG_VENDOR && hdr->length > 1024) { errno = EINVAL; efi_error("invalid message node"); return 0; } break; case EFIDP_MEDIA_TYPE: if (hdr->subtype != EFIDP_MEDIA_VENDOR && hdr->length > 1024) { errno = EINVAL; efi_error("invalid media node"); return 0; } break; case EFIDP_BIOS_BOOT_TYPE: break; case EFIDP_END_TYPE: if (hdr->length > 4) { errno = EINVAL; efi_error("invalid end node"); return 0; } break; default: errno = EINVAL; efi_error("invalid device path node type"); return 0; } if (limit < hdr->length) { errno = EINVAL; efi_error("device path node length overruns buffer"); return 0; } limit -= hdr->length; if (hdr->type != EFIDP_END_TYPE && hdr->type != EFIDP_END_ENTIRE) break; next = (efidp_header *)((uint8_t *)hdr + hdr->length); if (next < hdr) { errno = EINVAL; return -1; } hdr = next; } if (limit < 0) { errno = EINVAL; efi_error("device path node length overruns buffer"); return 0; } return 1; } /* and now, printing and parsing */ extern ssize_t efidp_parse_device_node(unsigned char *path, efidp out, size_t size); extern ssize_t efidp_parse_device_path(unsigned char *path, efidp out, size_t size); extern ssize_t efidp_format_device_path(unsigned char *buf, size_t size, const_efidp dp, ssize_t limit); extern ssize_t efidp_make_vendor(uint8_t *buf, ssize_t size, uint8_t type, uint8_t subtype, efi_guid_t vendor_guid, void *data, size_t data_size); extern ssize_t efidp_make_generic(uint8_t *buf, ssize_t size, uint8_t type, uint8_t subtype, ssize_t total_size); #define efidp_make_end_entire(buf, size) \ efidp_make_generic(buf, size, EFIDP_END_TYPE, EFIDP_END_ENTIRE, \ sizeof (efidp_header)); #define efidp_make_end_instance(buf, size) \ efidp_make_generic(buf, size, EFIDP_END_TYPE, \ EFIDP_END_INSTANCE, sizeof (efidp_header)); #if defined(__clang__) #pragma clang diagnostic pop #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _EFIVAR_DP_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efivar-time.h000066400000000000000000000023021455652431600206420ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1 /* * efivar-time.h * Copyright 2020 Peter Jones */ #if defined(EFIVAR_NO_EFI_TIME_T) && EFIVAR_NO_EFI_TIME_T && \ !defined(EFIVAR_TIME_H_) #define EFIVAR_TIME_H_ 1 #endif #ifndef EFIVAR_TIME_H_ #define EFIVAR_TIME_H_ 1 #include #ifdef __cplusplus extern "C" { #endif extern int tm_to_efi_time(const struct tm *const s, efi_time_t *d, bool tzadj); extern int efi_time_to_tm(const efi_time_t * const s, struct tm *d); extern char *efi_asctime(const efi_time_t *const time); extern char *efi_asctime_r(const efi_time_t *const time, char *buf); extern efi_time_t *efi_gmtime(const time_t *time); extern efi_time_t *efi_gmtime_r(const time_t *time, efi_time_t *result); extern efi_time_t *efi_localtime(const time_t *time); extern efi_time_t *efi_localtime_r(const time_t *time, efi_time_t *result); extern time_t efi_mktime(const efi_time_t *const time); extern char *efi_strptime(const char *s, const char *format, efi_time_t *time); extern size_t efi_strftime(char *s, size_t max, const char *format, const efi_time_t *time); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* !EFIVAR_TIME_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efivar-types.h000066400000000000000000000063361455652431600210630ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1 /* * Copyright 2012-2020 Red Hat, Inc. * Copyright 2012-2020 Peter M. Jones * * Author(s): Peter Jones */ #ifndef EFI_TYPES_H #define EFI_TYPES_H 1 #include #ifdef __cplusplus extern "C" { #endif typedef struct { uint32_t a; uint16_t b; uint16_t c; uint16_t d; uint8_t e[6]; } efi_guid_t __attribute__((__aligned__(1))); #if BYTE_ORDER == LITTLE_ENDIAN #define EFI_GUID(a,b,c,d,e0,e1,e2,e3,e4,e5) \ ((efi_guid_t) {(a), (b), (c), __builtin_bswap16(d), { (e0), (e1), (e2), (e3), (e4), (e5) }}) #else #define EFI_GUID(a,b,c,d,e0,e1,e2,e3,e4,e5) \ ((efi_guid_t) {(a), (b), (c), (d), { (e0), (e1), (e2), (e3), (e4), (e5) }}) #endif #define EFI_GLOBAL_GUID EFI_GUID(0x8be4df61,0x93ca,0x11d2,0xaa0d,0x00,0xe0,0x98,0x03,0x2b,0x8c) typedef struct { uint8_t addr[4]; } efi_ipv4_addr_t; typedef struct { uint8_t addr[16]; } efi_ipv6_addr_t; typedef union { uint32_t addr[4]; efi_ipv4_addr_t v4; efi_ipv6_addr_t v6; } efi_ip_addr_t; typedef struct { uint8_t addr[32]; } efi_mac_addr_t; typedef unsigned long efi_status_t; typedef uint16_t efi_char16_t; typedef unsigned long uintn_t; typedef long intn_t; #if !defined(EFIVAR_NO_EFI_TIME_T) || EFIVAR_NO_EFI_TIME_T #define EFIVAR_HAVE_EFI_TIME_T 1 /* * This can never be correct, as defined, in the face of leap seconds. * Because seconds here are defined with a range of [0,59], we can't * express leap seconds correctly there. Because TimeZone is specified in * minutes West of UTC, rather than seconds (like struct tm), it can't be * used to correct when we cross a leap second boundary condition. As a * result, EFI_TIME can only express UT1, rather than UTC, and there's no * way when converting to know wether the error has been taken into * account, nor if it should be. * * As I write this, there is a 37 second error. */ typedef struct { uint16_t year; // 1900 - 9999 uint8_t month; // 1 - 12 uint8_t day; // 1 - 31 uint8_t hour; // 0 - 23 uint8_t minute; // 0 - 59 uint8_t second; // 0 - 59 // ha ha only serious uint8_t pad1; // 0 uint32_t nanosecond; // 0 - 999,999,999 int16_t timezone; // minutes from UTC or EFI_UNSPECIFIED_TIMEZONE uint8_t daylight; // bitfield uint8_t pad2; // 0 } efi_time_t __attribute__((__aligned__(1))); #define EFI_TIME_ADJUST_DAYLIGHT ((uint8_t)0x01) #define EFI_TIME_IN_DAYLIGHT ((uint8_t)0x02) #define EFI_UNSPECIFIED_TIMEZONE ((uint16_t)0x07ff) #endif /* !defined(EFIVAR_NO_EFI_TIME_T) || EFIVAR_NO_EFI_TIME_T */ #define EFI_VARIABLE_NON_VOLATILE ((uint64_t)0x0000000000000001) #define EFI_VARIABLE_BOOTSERVICE_ACCESS ((uint64_t)0x0000000000000002) #define EFI_VARIABLE_RUNTIME_ACCESS ((uint64_t)0x0000000000000004) #define EFI_VARIABLE_HARDWARE_ERROR_RECORD ((uint64_t)0x0000000000000008) #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS ((uint64_t)0x0000000000000010) #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS ((uint64_t)0x0000000000000020) #define EFI_VARIABLE_APPEND_WRITE ((uint64_t)0x0000000000000040) #define EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS ((uint64_t)0x0000000000000080) #ifdef __cplusplus } /* extern "C" */ #endif #endif /* EFI_TYPES_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/efivar/efivar.h000066400000000000000000000160251455652431600177150ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2014 Red Hat, Inc. */ #ifndef EFIVAR_H #define EFIVAR_H 1 #include #include #include #include #include #include #include #include #include #include #include #ifndef EFIVAR_BUILD_ENVIRONMENT #include #endif #ifdef __cplusplus extern "C" { #endif #define EFI_VARIABLE_HAS_AUTH_HEADER 0x0000000100000000 #define EFI_VARIABLE_HAS_SIGNATURE 0x0000000200000000 extern int efi_variables_supported(void); extern int efi_get_variable_size(efi_guid_t guid, const char *name, size_t *size) __attribute__((__nonnull__ (2, 3))); extern int efi_get_variable_attributes(efi_guid_t, const char *name, uint32_t *attributes) __attribute__((__nonnull__ (2, 3))); extern int efi_get_variable_exists(efi_guid_t, const char *name) __attribute__((__nonnull__ (2))); extern int efi_get_variable(efi_guid_t guid, const char *name, uint8_t **data, size_t *data_size, uint32_t *attributes) __attribute__((__nonnull__ (2, 3, 4, 5))); extern int efi_del_variable(efi_guid_t guid, const char *name) __attribute__((__nonnull__ (2))); extern int efi_set_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes, mode_t mode) __attribute__((__nonnull__ (2, 3))); extern int efi_append_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes) __attribute__((__nonnull__ (2, 3))); extern int efi_get_next_variable_name(efi_guid_t **guid, char **name) __attribute__((__nonnull__ (1, 2))); extern int efi_chmod_variable(efi_guid_t guid, const char *name, mode_t mode) __attribute__((__nonnull__ (2))); extern int efi_str_to_guid(const char *s, efi_guid_t *guid) __attribute__((__nonnull__ (1, 2))); extern int efi_guid_to_str(const efi_guid_t *guid, char **sp) __attribute__((__nonnull__ (1))); extern int efi_guid_to_id_guid(const efi_guid_t *guid, char **sp) __attribute__((__nonnull__ (1))); extern int efi_guid_to_symbol(efi_guid_t *guid, char **symbol) __attribute__((__nonnull__ (1, 2))); extern int efi_guid_to_name(efi_guid_t *guid, char **name) __attribute__((__nonnull__ (1, 2))); extern int efi_name_to_guid(const char *name, efi_guid_t *guid) __attribute__((__nonnull__ (1, 2))); extern int efi_id_guid_to_guid(const char *name, efi_guid_t *guid) __attribute__((__nonnull__ (1, 2))); extern int efi_symbol_to_guid(const char *symbol, efi_guid_t *guid) __attribute__((__nonnull__ (1, 2))); extern int efi_guid_is_zero(const efi_guid_t *guid); extern int efi_guid_is_empty(const efi_guid_t *guid); extern int efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b); /* import / export functions */ typedef struct efi_variable efi_variable_t; extern ssize_t efi_variable_import(uint8_t *data, size_t size, efi_variable_t **var) __attribute__((__nonnull__ (1, 3))); extern ssize_t efi_variable_export(efi_variable_t *var, uint8_t *data, size_t size) __attribute__((__nonnull__ (1))); extern ssize_t efi_variable_export_dmpstore(efi_variable_t *var, uint8_t *data, size_t size) __attribute__((__nonnull__ (1))); extern efi_variable_t *efi_variable_alloc(void) __attribute__((__visibility__ ("default"))); extern void efi_variable_free(efi_variable_t *var, int free_data); extern int efi_variable_set_name(efi_variable_t *var, unsigned char *name) __attribute__((__nonnull__ (1, 2))); extern unsigned char *efi_variable_get_name(efi_variable_t *var) __attribute__((__visibility__ ("default"))) __attribute__((__nonnull__ (1))); extern int efi_variable_set_guid(efi_variable_t *var, efi_guid_t *guid) __attribute__((__nonnull__ (1, 2))); extern int efi_variable_get_guid(efi_variable_t *var, efi_guid_t **guid) __attribute__((__nonnull__ (1, 2))); extern int efi_variable_set_data(efi_variable_t *var, uint8_t *data, size_t size) __attribute__((__nonnull__ (1, 2))); extern ssize_t efi_variable_get_data(efi_variable_t *var, uint8_t **data, size_t *size) __attribute__((__nonnull__ (1, 2, 3))); extern int efi_variable_set_attributes(efi_variable_t *var, uint64_t attrs) __attribute__((__nonnull__ (1))); extern int efi_variable_get_attributes(efi_variable_t *var, uint64_t *attrs) __attribute__((__nonnull__ (1, 2))); extern int efi_variable_realize(efi_variable_t *var) __attribute__((__nonnull__ (1))); #ifndef EFIVAR_BUILD_ENVIRONMENT extern int efi_error_get(unsigned int n, char ** const filename, char ** const function, int *line, char ** const message, int *error) __attribute__((__nonnull__ (2, 3, 4, 5, 6))); extern int efi_error_set(const char *filename, const char *function, int line, int error, const char *fmt, ...) __attribute__((__visibility__ ("default"))) __attribute__((__nonnull__ (1, 2, 5))) __attribute__((__format__ (printf, 5, 6))); extern void efi_error_clear(void); extern void efi_error_pop(void); extern void efi_set_loglevel(int level); #else static inline int __attribute__((__nonnull__ (2, 3, 4, 5, 6))) efi_error_get(unsigned int n __attribute__((__unused__)), char ** const filename __attribute__((__unused__)), char ** const function __attribute__((__unused__)), int *line __attribute__((__unused__)), char ** const message __attribute__((__unused__)), int *error __attribute__((__unused__))) { return 0; } static inline int __attribute__((__nonnull__ (1, 2, 5))) __attribute__((__format__ (printf, 5, 6))) efi_error_set(const char *filename __attribute__((__unused__)), const char *function __attribute__((__unused__)), int line __attribute__((__unused__)), int error __attribute__((__unused__)), const char *fmt __attribute__((__unused__)), ...) { return 0; } static inline void efi_error_clear(void) { return; } static inline void efi_error_pop(void) { return; } static inline void efi_set_loglevel(int level __attribute__((__unused__))) { return; } #endif #define efi_error_real__(errval, file, function, line, fmt, args...) \ efi_error_set(file, function, line, errval, (fmt), ## args) #define efi_error(fmt, args...) \ efi_error_real__(errno, __FILE__, __func__, __LINE__, (fmt), ## args) #define efi_error_val(errval, msg, args...) \ efi_error_real__(errval, __FILE__, __func__, __LINE__, (fmt), ## args) extern void efi_set_verbose(int verbosity, FILE *errlog) __attribute__((__visibility__("default"))); extern int efi_get_verbose(void) __attribute__((__visibility__("default"))); extern FILE * efi_get_logfile(void) __attribute__((__visibility__("default"))); extern uint32_t efi_get_libefivar_version(void) __attribute__((__visibility__("default"))); #ifdef __cplusplus } /* extern "C" */ #endif #include #include #endif /* EFIVAR_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/include/gcc.specs000066400000000000000000000006311455652431600166030ustar00rootroot00000000000000*cc1_options: + %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} -grecord-gcc-switches *self_spec: + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now} -grecord-gcc-switches *link: + %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:% $@ %.3 : %.3.mdoc $(MANDOC) -mdoc -Tman -Ios=Linux $^ > $@ % : %.c % : %.o $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) -o $@ $(sort $^) $(LDLIBS) %-static : CCLDFLAGS+=-static %-static : %.o $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) -o $@ $(sort $^) $(LDLIBS) %.so : $(CCLD) $(CCLDFLAGS) $(CPPFLAGS) $(SOFLAGS) -o $@ $^ $(LDLIBS) ln -vfs $@ $@.1 %.abixml : %.so $(ABIDW) --headers-dir $(TOPDIR)/src/include/efivar/ --out-file $@ $^ @sed -i -s 's,$(TOPDIR)/,,g' $@ %.abicheck : %.so $(ABIDIFF) \ --suppr abignore \ --headers-dir2 $(TOPDIR)/src/include/efivar/ \ $(patsubst %.so,%.abixml,$<) \ $< %.o : %.c $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) %.static.o : %.c $(CC) $(CFLAGS) -fPIE $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) %.o : %.S $(CC) $(CFLAGS) -fPIC $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) %.static.o : %.S $(CC) $(CFLAGS) -fPIE $(CPPFLAGS) -c -o $@ $(filter %.c %.o %.S,$^) %.S: %.c $(CC) $(CFLAGS) $(CPPFLAGS) -S $< -o $@ %.E: %.c $(CC) $(CFLAGS) $(CPPFLAGS) -E $< -o $@ %.c : %.h define substitute-version sed \ -e "s,@@VERSION@@,$(VERSION),g" \ -e "s,@@LIBDIR@@,$(LIBDIR),g" \ -e "s,@@PREFIX@@,$(PREFIX),g" \ -e "s,@@EXEC_PREFIX@@,$(EXEC_PREFIX),g" \ -e "s,@@INCLUDEDIR@@,$(INCLUDEDIR),g" \ $(1) > $(2) endef %.pc : %.pc.in @$(call substitute-version,$<,$@) %.spec : %.spec.in @$(call substitute-version,$<,$@) %.map : %.map.in @$(call substitute-version,$<,$@) pkg-config-cflags = $(if $(PKGS),$(shell $(PKG_CONFIG) --cflags $(PKGS))) pkg-config-ccldflags = $(if $(PKGS),$(shell $(PKG_CONFIG) --libs-only-L --libs-only-other $(PKGS))) pkg-config-ldlibs = $(if $(PKGS),$(shell $(PKG_CONFIG) --libs-only-l $(PKGS))) deps-of = $(foreach src,$(filter %.c,$(1)),$(patsubst %.c,.%.d,$(src))) \ $(foreach src,$(filter %.S,$(1)),$(patsubst %.S,.%.d,$(src))) get-config = $(shell git config --local --get "efivar.$(1)") # vim:ft=make efivar-39/src/include/scan-build.mk000066400000000000000000000011031455652431600173550ustar00rootroot00000000000000SCAN_BUILD ?= $(shell x=$$(which --skip-alias --skip-functions scan-build 2>/dev/null) ; [ -n "$$x" ] && echo 1) ifeq ($(SCAN_BUILD),) SCAN_BUILD_ERROR = $(error scan-build not found) endif scan-test : ; $(SCAN_BUILD_ERROR) scan-clean : clean @if [[ -d scan-results ]]; then rm -rf scan-results && echo "removed 'scan-results'"; fi scan-build : | scan-test scan-build : clean $(MAKE) -C src makeguids scan-build -o scan-results make $(DASHJ) CC=clang all scan-build-all: | scan-build scan : | scan-build .PHONY : scan-build scan-clean scan-build-all scan # vim:ft=make efivar-39/src/include/version.mk000066400000000000000000000000131455652431600170200ustar00rootroot00000000000000VERSION=39 efivar-39/src/lib.c000066400000000000000000000142051455652431600143010ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2013 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include "efivar.h" static int default_probe(void) { return 1; } struct efi_var_operations default_ops = { .name = "default", .probe = default_probe, }; struct efi_var_operations *ops = NULL; VERSION(_efi_set_variable, _efi_set_variable@libefivar.so.0) int NONNULL(2, 3) PUBLIC _efi_set_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes) { int rc; if (!ops->set_variable) { efi_error("set_variable() is not implemented"); errno = ENOSYS; return -1; } rc = ops->set_variable(guid, name, data, data_size, attributes, 0600); if (rc < 0) efi_error("ops->set_variable() failed"); return rc; } VERSION(_efi_set_variable_variadic, efi_set_variable@libefivar.so.0) int NONNULL(2, 3) PUBLIC _efi_set_variable_variadic(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes, ...) { int rc; if (!ops->set_variable) { efi_error("set_variable() is not implemented"); errno = ENOSYS; return -1; } rc = ops->set_variable(guid, name, data, data_size, attributes, 0600); if (rc < 0) efi_error("ops->set_variable() failed"); return rc; } VERSION(_efi_set_variable_mode,efi_set_variable@@LIBEFIVAR_0.24) int NONNULL(2, 3) PUBLIC _efi_set_variable_mode(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes, mode_t mode) { int rc; if (!ops->set_variable) { efi_error("set_variable() is not implemented"); errno = ENOSYS; return -1; } rc = ops->set_variable(guid, name, data, data_size, attributes, mode); if (rc < 0) efi_error("ops->set_variable() failed"); else efi_error_clear(); return rc; } int NONNULL(2, 3) PUBLIC efi_set_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes, mode_t mode) ALIAS(_efi_set_variable_mode); int NONNULL(2, 3) PUBLIC efi_append_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes) { int rc; if (!ops->append_variable) { rc = generic_append_variable(guid, name, data, data_size, attributes); if (rc < 0) efi_error("generic_append_variable() failed"); else efi_error_clear(); return rc; } rc = ops->append_variable(guid, name, data, data_size, attributes); if (rc < 0) efi_error("ops->append_variable() failed"); else efi_error_clear(); return rc; } int NONNULL(2) PUBLIC efi_del_variable(efi_guid_t guid, const char *name) { int rc; if (!ops->del_variable) { efi_error("del_variable() is not implemented"); errno = ENOSYS; return -1; } rc = ops->del_variable(guid, name); if (rc < 0) efi_error("ops->del_variable() failed"); else efi_error_clear(); return rc; } int NONNULL(2, 3, 4, 5) PUBLIC efi_get_variable(efi_guid_t guid, const char *name, uint8_t **data, size_t *data_size, uint32_t *attributes) { int rc; if (!ops->get_variable) { efi_error("get_variable() is not implemented"); errno = ENOSYS; return -1; } rc = ops->get_variable(guid, name, data, data_size, attributes); if (rc < 0) efi_error("ops->get_variable failed"); else efi_error_clear(); return rc; } int NONNULL(2, 3) PUBLIC efi_get_variable_attributes(efi_guid_t guid, const char *name, uint32_t *attributes) { int rc; if (!ops->get_variable_attributes) { efi_error("get_variable_attributes() is not implemented"); errno = ENOSYS; return -1; } rc = ops->get_variable_attributes(guid, name, attributes); if (rc < 0) efi_error("ops->get_variable_attributes() failed"); else efi_error_clear(); return rc; } int NONNULL(2) PUBLIC efi_get_variable_exists(efi_guid_t guid, const char *name) { uint32_t unused_attributes = 0; return efi_get_variable_attributes(guid, name, &unused_attributes); } int NONNULL(2, 3) PUBLIC efi_get_variable_size(efi_guid_t guid, const char *name, size_t *size) { int rc; if (!ops->get_variable_size) { efi_error("get_variable_size() is not implemented"); errno = ENOSYS; return -1; } rc = ops->get_variable_size(guid, name, size); if (rc < 0) efi_error("ops->get_variable_size() failed"); else efi_error_clear(); return rc; } int NONNULL(1, 2) PUBLIC efi_get_next_variable_name(efi_guid_t **guid, char **name) { int rc; if (!ops->get_next_variable_name) { efi_error("get_next_variable_name() is not implemented"); errno = ENOSYS; return -1; } rc = ops->get_next_variable_name(guid, name); if (rc < 0) efi_error("ops->get_next_variable_name() failed"); else efi_error_clear(); return rc; } int NONNULL(2) PUBLIC efi_chmod_variable(efi_guid_t guid, const char *name, mode_t mode) { int rc; if (!ops->chmod_variable) { efi_error("chmod_variable() is not implemented"); errno = ENOSYS; return -1; } rc = ops->chmod_variable(guid, name, mode); if (rc < 0) efi_error("ops->chmod_variable() failed"); else efi_error_clear(); return rc; } int PUBLIC efi_variables_supported(void) { if (ops == &default_ops) return 0; return 1; } static void CONSTRUCTOR libefivar_init(void); static void CONSTRUCTOR libefivar_init(void) { struct efi_var_operations *ops_list[] = { &efivarfs_ops, &vars_ops, &default_ops, NULL }; char *ops_name = getenv("LIBEFIVAR_OPS"); if (ops_name && strcasestr(ops_name, "help")) { printf("LIBEFIVAR_OPS operations available:\n"); for (int i = 0; ops_list[i] != NULL; i++) printf("\t%s\n", ops_list[i]->name); exit(0); } for (int i = 0; ops_list[i] != NULL; i++) { if (ops_name != NULL) { if (!strcmp(ops_list[i]->name, ops_name) || !strcmp(ops_list[i]->name, "default")) { ops = ops_list[i]; break; } } else { int rc = ops_list[i]->probe(); if (rc <= 0) { efi_error("ops_list[%d]->probe() failed", i); } else { efi_error_clear(); ops = ops_list[i]; break; } } } } uint32_t PUBLIC efi_get_libefivar_version(void) { return LIBEFIVAR_VERSION; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/lib.h000066400000000000000000000027041455652431600143070ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2013 Red Hat, Inc. */ #ifndef LIBEFIVAR_LIB_H #define LIBEFIVAR_LIB_H 1 #include #include #include #include #include struct efi_variable { uint64_t attrs; efi_guid_t *guid; unsigned char *name; uint8_t *data; size_t data_size; }; struct efi_var_operations { char name[NAME_MAX]; int (*probe)(void); int (*set_variable)(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes, mode_t mode); int (*del_variable)(efi_guid_t guid, const char *name); int (*get_variable)(efi_guid_t guid, const char *name, uint8_t **data, size_t *data_size, uint32_t *attributes); int (*get_variable_attributes)(efi_guid_t guid, const char *name, uint32_t *attributes); int (*get_variable_size)(efi_guid_t guid, const char *name, size_t *size); int (*get_next_variable_name)(efi_guid_t **guid, char **name); int (*append_variable)(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes); int (*chmod_variable)(efi_guid_t guid, const char *name, mode_t mode); }; typedef unsigned long efi_status_t; extern struct efi_var_operations vars_ops; extern struct efi_var_operations efivarfs_ops; #endif /* LIBEFIVAR_LIB_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/libefiboot.abixml000066400000000000000000005345141455652431600167150ustar00rootroot00000000000000 efivar-39/src/libefiboot.map.in000066400000000000000000000014201455652431600166040ustar00rootroot00000000000000libefiboot.so.0 { global: efi_generate_file_device_path; efi_generate_file_device_path_from_esp; efi_generate_ipv4_device_path; efi_va_generate_file_device_path_from_esp; efi_loadopt_args_as_ucs2; efi_loadopt_args_as_utf8; efi_loadopt_args_from_file; efi_loadopt_attr_clear; efi_loadopt_attr_set; efi_loadopt_attrs; efi_loadopt_create; efi_loadopt_desc; efi_loadopt_is_valid; efi_loadopt_optional_data; efi_loadopt_optional_data_size; efi_loadopt_path; efi_loadopt_pathlen; local: *; }; LIBEFIBOOT_0.0 { } libefiboot.so.0; LIBEFIBOOT_0.24 { } LIBEFIBOOT_0.0; LIBEFIBOOT_1.28 { } LIBEFIBOOT_0.24; LIBEFIBOOT_1.29 { } LIBEFIBOOT_1.28; LIBEFIBOOT_1.30 { } LIBEFIBOOT_1.29; LIBEFIBOOT_1.31 { global: efi_get_libefiboot_version; } LIBEFIBOOT_1.30; efivar-39/src/libefisec.abixml000066400000000000000000001400001455652431600165030ustar00rootroot00000000000000 efivar-39/src/libefisec.map.in000066400000000000000000000004111455652431600164120ustar00rootroot00000000000000libefisec.so.0 { local: *; }; LIBEFISEC_1.38 { global: efi_get_libefisec_version; efi_secdb_add_entry; efi_secdb_algs_; efi_secdb_del_entry; efi_secdb_free; efi_secdb_new; efi_secdb_parse; efi_secdb_realize; efi_secdb_set_bool; } libefisec.so.0; efivar-39/src/libefivar.abixml000066400000000000000000006512571455652431600165460ustar00rootroot00000000000000 efivar-39/src/libefivar.map.in000066400000000000000000000064321455652431600164410ustar00rootroot00000000000000libefivar.so.0 { global: efi_append_variable; efi_chmod_variable; efi_del_variable; efi_get_next_variable_name; efi_get_variable; efi_get_variable_attributes; efi_get_variable_size; efi_guid_is_empty; efi_guid_to_id_guid; efi_guid_to_name; efi_guid_to_str; efi_guid_to_symbol; efi_id_guid_to_guid; efi_name_to_guid; _efi_set_variable; _efi_set_variable_variadic; efi_str_to_guid; efi_variable_export; efi_variable_free; efi_variable_get_attributes; efi_variable_get_data; efi_variable_get_guid; efi_variable_get_name; efi_variable_import; efi_variable_realize; efi_variable_set_attributes; efi_variable_set_data; efi_variable_set_guid; efi_variable_set_name; efi_variables_supported; efi_well_known_guids; efi_well_known_guids_; efi_well_known_guids_end; efidp_append_instance; efidp_append_node; efidp_append_path; efidp_duplicate_path; efidp_format_device_path; efidp_make_acpi_hid; efidp_make_acpi_hid_ex; efidp_make_atapi; efidp_make_edd10; efidp_make_file; efidp_make_generic; efidp_make_hd; efidp_make_ipv4; efidp_make_mac_addr; efidp_make_nvme; efidp_make_pci; efidp_make_sas; efidp_make_sata; efidp_make_scsi; efidp_make_vendor; efidp_make_emmc; efidp_parse_device_node; efidp_parse_device_path; efidp_set_node_data; efi_guid_empty; efi_guid_global; efi_guid_lenovo; efi_guid_lenovo_2; efi_guid_lenovo_boot_menu; efi_guid_lenovo_diag; efi_guid_lenovo_diag_splash; efi_guid_lenovo_me_config; efi_guid_lenovo_msg; efi_guid_lenovo_rescue; efi_guid_lenovo_setup; efi_guid_lenovo_startup_interrupt; efi_guid_microsoft; efi_guid_pkcs7_cert; efi_guid_redhat; efi_guid_redhat_2; efi_guid_rsa2048; efi_guid_rsa2048_sha1; efi_guid_rsa2048_sha256; efi_guid_rsa2048_sha256_cert; efi_guid_security; efi_guid_sha1; efi_guid_sha224; efi_guid_sha256; efi_guid_sha384; efi_guid_sha512; efi_guid_shell; efi_guid_shim; efi_guid_x509_cert; efi_guid_x509_sha256; efi_guid_x509_sha384; efi_guid_x509_sha512; efi_guid_zero; local: *; }; LIBEFIVAR_0.0 { } libefivar.so.0; LIBEFIVAR_0.24 { global: efi_set_variable; efi_guid_cmp; } LIBEFIVAR_0.0; LIBEFIVAR_1.28 { } LIBEFIVAR_0.24; LIBEFIVAR_1.29 { } LIBEFIVAR_1.28; LIBEFIVAR_1.30 { global: efi_error_set; efi_error_get; efi_error_clear; } LIBEFIVAR_1.29; LIBEFIVAR_1.33 { global: efi_guid_ux_capsule; efidp_make_nvdimm; } LIBEFIVAR_1.30; LIBEFIVAR_1.35 { global: efi_get_variable_exists; efi_guid_fwupdate; } LIBEFIVAR_1.33; LIBEFIVAR_1.36 { global: efi_set_verbose; efi_get_verbose; efi_get_logfile; } LIBEFIVAR_1.35; LIBEFIVAR_1.37 { } LIBEFIVAR_1.36; LIBEFIVAR_1.38 { global: efi_error_pop; efi_set_loglevel; efi_get_libefivar_version; efi_guid_asus; efi_guid_auto_created_boot_option; efi_guid_canonical; efi_guid_dell; efi_guid_external_management; efi_guid_fives; efi_guid_grub; efi_guid_supermicro; efi_variable_alloc; efi_variable_export_dmpstore; efi_well_known_names; efi_well_known_names_; efi_well_known_names_end; efi_n_well_known_names; efi_n_well_known_guids; tm_to_efi_time; efi_time_to_tm; efi_asctime; efi_asctime_r; efi_gmtime; efi_gmtime_r; efi_localtime; efi_localtime_r; efi_mktime; efi_strptime; efi_strftime; } LIBEFIVAR_1.37; efivar-39/src/linux-acpi-root.c000066400000000000000000000123331455652431600165650ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * support for ACPI-like platform root hub and devices * * various devices /sys/dev/block/$major:$minor start with: * maj:min -> ../../devices/ACPI0000:00/$PCI_DEVICES/$BLOCKDEV_STUFF/block/$DISK/$PART * i.e.: APMC0D0D:00/ata1/host0/target0:0:0/0:0:0:0/block/sda * ^ root hub ^blockdev stuff * or: * maj:min -> ../../devices/ACPI0000:00/$PCI_DEVICES/$BLOCKDEV_STUFF/block/$DISK/$PART * i.e.: APMC0D0D:00/0000:00:1d.0/0000:05:00.0/ata1/host0/target0:0:0/0:0:0:0/block/sda * ^ root hub ^pci dev ^pci dev ^ blockdev stuff */ static ssize_t parse_acpi_root(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; int rc; int pos0 = -1, pos1 = -1, pos2 = -1; uint16_t pad0; uint8_t pad1; char *acpi_header = NULL; char *colon; debug("entry"); /* * find the ACPI root dunno0 and dunno1; they basically look like: * ABCD0000:00/ * ^d0 ^d1 * This is annoying because "/%04ms%h:%hhx/" won't bind from the right * side in sscanf. */ rc = sscanf(current, "../../devices/%nplatform/%n", &pos0, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 0 || pos0 == -1 || pos1 == -1) return 0; current += pos1; debug("searching for an ACPI string like A0000:00 or ACPI0000:00"); pos0 = 0; /* * If it's too short to be A0000:00, it's not an ACPI string */ if (strlen(current) < 8) return 0; colon = strchr(current, ':'); if (!colon) return 0; pos1 = colon - current; /* * If colon doesn't point at something between one of these: * A0000:00 ACPI0000:00 * ^ 5 ^ 8 * Then it's not an ACPI string. */ if (pos1 < 5 || pos1 > 8) return 0; debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); dev->acpi_root.acpi_hid_str = strndup(current, pos1 + 1); if (!dev->acpi_root.acpi_hid_str) { efi_error("Could not allocate memory"); return -1; } dev->acpi_root.acpi_hid_str[pos1] = 0; debug("acpi_hid_str:'%s'", dev->acpi_root.acpi_hid_str); /* * The string is like ACPI0000:00. * ^^^^ * Here we're saying only this bit has been parsed, though we've * partially parsed up to the colon. */ pos1 -= 4; acpi_header = strndupa(current, pos1); if (!acpi_header) return 0; acpi_header[pos1] = 0; debug("acpi_header:'%s'", acpi_header); /* * If we can't find these numbers, it's not an ACPI string */ rc = sscanf(current+pos1, "%hx:%hhx/%n", &pad0, &pad1, &pos2); if (rc != 2) { efi_error("Could not parse ACPI path \"%s\"", current); return 0; } debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d", current, rc, pos0, pos1, pos2); dbgmk(" ", pos0, pos2); current += pos2; const char * const formats[] = { "devices/platform/%s%04hX:%02hhX", "devices/platform/%s%04hx:%02hhx", NULL }; for (unsigned int i = 0; formats[i]; i++) { rc = parse_acpi_hid_uid(dev, formats[i], acpi_header, pad0, pad1); debug("rc:%d acpi_header:%s pad0:%04hx pad1:%02hhx", rc, acpi_header, pad0, pad1); if (rc >= 0) break; if (errno != ENOENT) { efi_error("Could not parse hid/uid"); return rc; } } debug("Parsed HID:0x%08x UID:0x%"PRIx64" uidstr:'%s' path:'%s'", dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid, dev->acpi_root.acpi_uid_str, dev->acpi_root.acpi_cid_str); debug("current:'%s' sz:%zd", current, current - path); return current - path; } static ssize_t dp_create_acpi_root(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz = 0, new = 0; debug("entry buf:%p size:%zd off:%zd", buf, size, off); if (dev->acpi_root.acpi_uid_str || dev->acpi_root.acpi_cid_str) { debug("creating acpi_hid_ex dp hid:0x%08x uid:0x%"PRIx64" uidstr:'%s' cidstr:'%s'", dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid, dev->acpi_root.acpi_uid_str, dev->acpi_root.acpi_cid_str); new = efidp_make_acpi_hid_ex(buf + off, size ? size - off : 0, dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid, dev->acpi_root.acpi_cid, dev->acpi_root.acpi_hid_str, dev->acpi_root.acpi_uid_str, dev->acpi_root.acpi_cid_str); if (new < 0) { efi_error("efidp_make_acpi_hid_ex() failed"); return new; } } else { debug("creating acpi_hid dp hid:0x%08x uid:0x%0"PRIx64, dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid); new = efidp_make_acpi_hid(buf + off, size ? size - off : 0, dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid); if (new < 0) { efi_error("efidp_make_acpi_hid() failed"); return new; } } sz += new; debug("returning %zd", sz); return sz; } enum interface_type acpi_root_iftypes[] = { acpi_root, unknown }; struct dev_probe HIDDEN acpi_root_parser = { .name = "acpi_root", .iftypes = acpi_root_iftypes, .flags = DEV_PROVIDES_ROOT, .parse = parse_acpi_root, .create = dp_create_acpi_root, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-acpi.c000066400000000000000000000047411455652431600156100ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" int HIDDEN parse_acpi_hid_uid(struct device *dev, const char *fmt, ...) { int rc; char *path = NULL; va_list ap; char *fbuf = NULL; uint16_t tmp16; uint32_t acpi_hid = 0; uint64_t acpi_uid_int = 0; debug("entry"); va_start(ap, fmt); rc = vasprintfa(&path, fmt, ap); va_end(ap); debug("path:%s rc:%d", path, rc); if (rc < 0 || path == NULL) return -1; rc = read_sysfs_file(&fbuf, "%s/firmware_node/path", path); if (rc > 0 && fbuf) { size_t l = strlen(fbuf); if (l > 1) { fbuf[l-1] = 0; dev->acpi_root.acpi_cid_str = strdup(fbuf); debug("Setting ACPI root path to '%s'", fbuf); } } rc = read_sysfs_file(&fbuf, "%s/firmware_node/hid", path); if (rc < 0 || fbuf == NULL) { efi_error("could not read %s/firmware_node/hid", path); return -1; } rc = strlen(fbuf); if (rc < 4) { hid_err: efi_error("could not parse %s/firmware_node/hid", path); return -1; } rc -= 4; rc = sscanf((char *)fbuf + rc, "%04hx", &tmp16); debug("rc:%d hid:0x%08x\n", rc, tmp16); if (rc != 1) goto hid_err; acpi_hid = EFIDP_EFI_PNP_ID(tmp16); /* * Apparently basically nothing can look up a PcieRoot() node, * because they just check _CID. So since _CID for the root pretty * much always has to be PNP0A03 anyway, just use that no matter * what. */ if (acpi_hid == EFIDP_ACPI_PCIE_ROOT_HID) acpi_hid = EFIDP_ACPI_PCI_ROOT_HID; dev->acpi_root.acpi_hid = acpi_hid; debug("acpi root HID:0x%08x", acpi_hid); errno = 0; fbuf = NULL; rc = read_sysfs_file(&fbuf, "%s/firmware_node/uid", path); if ((rc < 0 && errno != ENOENT) || (rc > 0 && fbuf == NULL)) { efi_error("could not read %s/firmware_node/uid", path); return -1; } if (rc > 0) { rc = sscanf((char *)fbuf, "%"PRIu64"\n", &acpi_uid_int); if (rc == 1) { dev->acpi_root.acpi_uid = acpi_uid_int; } else { /* kernel uses "%s\n" to print it, so there * should always be some value and a newline... */ int l = strlen((char *)fbuf); if (l >= 1) { fbuf[l-1] = '\0'; dev->acpi_root.acpi_uid_str = strdup(fbuf); } } } debug("acpi root UID:0x%"PRIx64" uidstr:'%s'", dev->acpi_root.acpi_uid, dev->acpi_root.acpi_uid_str); errno = 0; return 0; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-ata.c000066400000000000000000000076551455652431600154500ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" bool HIDDEN is_pata(struct device *dev) { if (!strncmp(dev->driver, "pata_", 5) || !strncmp(dev->driver, "ata_", 4)) return true; if (dev->n_pci_devs > 0 && dev->pci_dev[dev->n_pci_devs - 1].driverlink) { char *slash = dev->pci_dev[dev->n_pci_devs - 1].driverlink; slash = strrchr(slash, '/'); if (slash && (!strncmp(slash, "/ata_", 5) || !strncmp(slash, "/pata_", 6))) return true; } return false; } /* * support for old-school ATA devices * * /sys/dev/block/$major:$minor looks like: * 8:0 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda * 8:1 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda1 * 11:0 -> ../../devices/pci0000:00/0000:00:11.5/ata3/host2/target2:0:0/2:0:0:0/block/sr0 */ static ssize_t parse_ata(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; uint32_t scsi_host, scsi_bus, scsi_device, scsi_target; uint64_t scsi_lun; int pos; debug("entry"); /* IDE disks can have up to 64 partitions, or 6 bits worth, * and have one bit for the disk number. * This leaves an extra bit at the top. */ if (dev->major == 3) { dev->disknum = (dev->minor >> 6) & 1; dev->controllernum = (dev->major - 3 + 0) + dev->disknum; dev->interface_type = ata; set_part(dev, dev->minor & 0x3F); } else if (dev->major == 22) { dev->disknum = (dev->minor >> 6) & 1; dev->controllernum = (dev->major - 22 + 2) + dev->disknum; dev->interface_type = ata; set_part(dev, dev->minor & 0x3F); } else if (dev->major >= 33 && dev->major <= 34) { dev->disknum = (dev->minor >> 6) & 1; dev->controllernum = (dev->major - 33 + 4) + dev->disknum; dev->interface_type = ata; set_part(dev, dev->minor & 0x3F); } else if (dev->major >= 56 && dev->major <= 57) { dev->disknum = (dev->minor >> 6) & 1; dev->controllernum = (dev->major - 56 + 8) + dev->disknum; dev->interface_type = ata; set_part(dev, dev->minor & 0x3F); } else if (dev->major >= 88 && dev->major <= 91) { dev->disknum = (dev->minor >> 6) & 1; dev->controllernum = (dev->major - 88 + 12) + dev->disknum; dev->interface_type = ata; set_part(dev, dev->minor & 0x3F); } else { debug("If this is ATA, it isn't using a traditional IDE inode."); } if (is_pata(dev)) { dev->interface_type = ata; } else { /* * If it isn't one of the pata drivers or ata_piix, it isn't a * PATA device. */ return 0; } char *host = strstr(path, "/host"); if (!host) return -1; pos = parse_scsi_link(host + 1, &scsi_host, &scsi_bus, &scsi_device, &scsi_target, &scsi_lun, NULL, NULL, NULL); if (pos < 0) return -1; current += pos; dev->ata_info.scsi_host = scsi_host; dev->ata_info.scsi_bus = scsi_bus; dev->ata_info.scsi_device = scsi_device; dev->ata_info.scsi_target = scsi_target; dev->ata_info.scsi_lun = scsi_lun; char *block = strstr(current, "/block/"); if (block) current += block + 1 - current; debug("current:'%s' sz:%zd", current, current - path); return current - path; } static ssize_t dp_create_ata(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz; debug("entry"); sz = efidp_make_atapi(buf + off, size ? size - off : 0, dev->ata_info.scsi_device, dev->ata_info.scsi_target - 1, dev->ata_info.scsi_lun); if (sz < 0) efi_error("efidp_make_atapi() failed"); return sz; } enum interface_type ata_iftypes[] = { ata, atapi, unknown }; struct dev_probe ata_parser = { .name = "ata", .iftypes = ata_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_ata, .create = dp_create_ata, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-emmc.c000066400000000000000000000051141455652431600156100ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include "efiboot.h" /* * support for emmc devices * * /sys/dev/block/$major:$minor looks like: * 179:0 -> ../../devices/pci0000:00/0000:00:1c.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0 * 179:1 -> ../../devices/pci0000:00/0000:00:1c.0/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p1 * * /sys/dev/block/179:0/device looks like: * device -> ../../../mmc0:0001 * * /sys/dev/block/179:1/partition looks like: * $ cat partition * 1 * */ static ssize_t parse_emmc(struct device *dev, const char *path, const char *root UNUSED) { const char * current = path; int rc; int32_t tosser0, tosser1, tosser2, tosser3, slot_id, partition; int pos0 = -1, pos1 = -1, pos2 = -1; debug("entry"); debug("searching for mmc_host/mmc0/mmc0:0001/block/mmcblk0 or mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p1"); rc = sscanf(current, "%nmmc_host/mmc%d/mmc%d:%d/block/mmcblk%d%n/mmcblk%dp%d%n", &pos0, &tosser0, &tosser1, &tosser2, &slot_id, &pos1, &tosser3, &partition, &pos2); debug("current:\"%s\" rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); dbgmk(" ", pos0, MAX(pos1,pos2)); /* * If it isn't of that form, it's not one of our emmc devices. */ if (rc != 4 && rc != 6) return 0; dev->emmc_info.slot_id = slot_id; dev->interface_type = emmc; if (rc == 6 && dev->part == -1) dev->part = partition; current += pos1; debug("current:'%s' sz:%zd", current, current - path); return current - path; } static ssize_t dp_create_emmc(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz; debug("entry"); sz = efidp_make_emmc(buf + off, size ? size - off : 0, dev->emmc_info.slot_id); return sz; } static char * make_part_name(struct device *dev) { char *ret = NULL; ssize_t rc; if (dev->part < 1) return NULL; rc = asprintf(&ret, "%sp%d", dev->disk_name, dev->part); if (rc < 0) { efi_error("could not allocate memory"); return NULL; } return ret; } static enum interface_type emmc_iftypes[] = { emmc, unknown }; struct dev_probe HIDDEN emmc_parser = { .name = "emmc", .iftypes = emmc_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_emmc, .create = dp_create_emmc, .make_part_name = make_part_name, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-i2o.c000066400000000000000000000022721455652431600153620ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * support for I2O devices * ... probably doesn't work. */ static ssize_t parse_i2o(struct device *dev, const char *current, const char *root UNUSED) { debug("entry"); /* I2O disks can have up to 16 partitions, or 4 bits worth. */ if (dev->major >= 80 && dev->major <= 87) { dev->interface_type = i2o; dev->disknum = 16*(dev->major-80) + (dev->minor >> 4); set_part(dev, dev->minor & 0xF); } else { /* If it isn't those majors, it's not an i2o dev */ return 0; } char *block = strstr(current, "/block/"); ssize_t sz = block ? block + 1 - current : -1; debug("current:'%s' sz:%zd", current, sz); return sz; } enum interface_type i2o_iftypes[] = { i2o, unknown }; struct dev_probe HIDDEN i2o_parser = { .name = "i2o", .iftypes = i2o_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_i2o, .create = NULL, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-md.c000066400000000000000000000033441455652431600152720ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * "support" for partitioned md devices - basically we just need to format * the partition name. * * /sys/dev/block/$major:$minor looks like: * 259:0 -> ../../devices/virtual/block/md1/md1p1 * 9:1 -> ../../devices/virtual/block/md1 * */ static ssize_t parse_md(struct device *dev, const char *current, const char *root UNUSED) { int rc; int32_t md, tosser0, part; int pos0 = 0, pos1 = 0; debug("entry"); debug("searching for mdM/mdMpN"); rc = sscanf(current, "md%d/%nmd%dp%d%n", &md, &pos0, &tosser0, &part, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); /* * If it isn't of that form, it's not one of our partitioned md devices. */ if (rc != 3) return 0; dev->interface_type = md; if (dev->part == -1) dev->part = part; debug("current:'%s' sz:%d\n", current, pos1); return pos1; } static char * make_part_name(struct device *dev) { char *ret = NULL; ssize_t rc; if (dev->part < 1) return NULL; rc = asprintf(&ret, "%sp%d", dev->disk_name, dev->part); if (rc < 0) { efi_error("could not allocate memory"); return NULL; } return ret; } static enum interface_type md_iftypes[] = { md, unknown }; struct dev_probe HIDDEN md_parser = { .name = "md", .iftypes = md_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_md, .make_part_name = make_part_name, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-nvme.c000066400000000000000000000126671455652431600156470ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include "efiboot.h" /* * support for NVMe devices * * /sys/dev/block/$major:$minor looks like: * 259:0 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1 * 259:1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1/nvme0n1p1 * or: * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 * 259:1 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 * or: * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 * * /sys/dev/block/259:0/device looks like: * device -> ../../nvme0 * * /sys/dev/block/259:1/partition looks like: * $ cat partition * 1 * * /sys/class/block/nvme0n1/eui looks like: * $ cat /sys/class/block/nvme0n1/eui * 00 25 38 53 5a 16 1d a9 */ static ssize_t parse_nvme(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; int i, rc; int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; uint8_t *filebuf = NULL; int pos0 = -1, pos1 = -1, pos2 = -1; struct subdir { const char * const name; const char * const fmt; int *pos0, *pos1; } subdirs[] = { {"nvme-subsysN/", "%nnvme-subsys%d/%n", &pos0, &pos2}, {"ctl/", "%nctl/%n%n", &pos0, &pos1}, {"nvme/", "%nnvme/%n%n", &pos0, &pos1}, {NULL, } }; debug("entry"); /* * in this case, *any* of these is okay. */ for (i = 0; subdirs[i].name; i++) { debug("searching for %s", subdirs[i].name); pos0 = tosser0 = pos1 = -1; rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1, &pos2); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, *subdirs[i].pos0, *subdirs[i].pos1); dbgmk(" ", *subdirs[i].pos0, *subdirs[i].pos1); if (*subdirs[i].pos0 >= 0 && *subdirs[i].pos1 >= *subdirs[i].pos0) { current += *subdirs[i].pos1; break; } } if (!subdirs[i].name) return 0; debug("searching for nvme-subsysN/"); if (!strncmp("nvme-subsysN/", subdirs[i].name, 13)) { debug("searching for nvme0n1"); rc = sscanf(current, "%nnvme%dn%d%n", &pos0, &ctrl_id, &ns_id, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 2) return 0; } else { debug("searching for nvme0/nvme0n1 or nvme0/nvme0n1/nvme0n1p1"); rc = sscanf(current, "%nnvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", &pos0, &tosser0, &ctrl_id, &ns_id, &pos1, &tosser1, &tosser2, &partition, &pos2); debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); dbgmk(" ", pos0, MAX(pos1,pos2)); /* * If it isn't of that form, it's not one of our nvme devices. */ if (rc != 3 && rc != 6) return 0; if (rc == 3) pos2 = pos1; } dev->nvme_info.ctrl_id = ctrl_id; dev->nvme_info.ns_id = ns_id; dev->nvme_info.has_eui = 0; dev->interface_type = nvme; if (rc == 6) { if (dev->part == -1) dev->part = partition; pos1 = pos2; } current += pos1; /* * now fish the eui out of sysfs is there is one... */ debug("looking for the eui"); char *euipath = NULL; rc = read_sysfs_file(&filebuf, "class/block/nvme%dn%d/eui", ctrl_id, ns_id); if (rc < 0 && (errno == ENOENT || errno == ENOTDIR)) { rc = find_device_file(&euipath, "eui", "class/block/nvme%dn%d", ctrl_id, ns_id); if (rc >= 0 && euipath != NULL) rc = read_sysfs_file(&filebuf, "%s", euipath); } if (rc >= 0 && filebuf != NULL) { uint8_t eui[8]; if (rc < 23) { errno = EINVAL; return -1; } rc = sscanf((char *)filebuf, "%02hhx %02hhx %02hhx %02hhx " "%02hhx %02hhx %02hhx %02hhx", &eui[0], &eui[1], &eui[2], &eui[3], &eui[4], &eui[5], &eui[6], &eui[7]); if (rc < 8) { errno = EINVAL; return -1; } debug("eui is %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx", eui[0], eui[1], eui[2], eui[3], eui[4], eui[5], eui[6], eui[7]); dev->nvme_info.has_eui = 1; memcpy(dev->nvme_info.eui, eui, sizeof(eui)); } debug("current:'%s' sz:%zd", current, current - path); return current - path; } static ssize_t dp_create_nvme(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz; debug("entry"); sz = efidp_make_nvme(buf + off, size ? size - off : 0, dev->nvme_info.ns_id, dev->nvme_info.has_eui ? dev->nvme_info.eui : NULL); return sz; } static char * make_part_name(struct device *dev) { char *ret = NULL; ssize_t rc; if (dev->part < 1) return NULL; rc = asprintf(&ret, "%sp%d", dev->disk_name, dev->part); if (rc < 0) { efi_error("could not allocate memory"); return NULL; } return ret; } static enum interface_type nvme_iftypes[] = { nvme, unknown }; struct dev_probe HIDDEN nvme_parser = { .name = "nvme", .iftypes = nvme_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_nvme, .create = dp_create_nvme, .make_part_name = make_part_name, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-pci-root.c000066400000000000000000000063661455652431600164350ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * support for PCI root hub and devices * * various devices /sys/dev/block/$major:$minor start with: * maj:min -> ../../devices/pci$PCIROOT/$PCI_DEVICES/$BLOCKDEV_STUFF/block/$DISK/$PART * i.e.: pci0000:00/0000:00:1d.0/0000:05:00.0/ * ^ root hub ^device ^device * * for network devices, we also get: * /sys/class/net/$IFACE -> ../../devices/$PCI_STUFF/net/$IFACE * */ static ssize_t parse_pci_root(struct device *dev, const char *path, const char *root UNUSED) { const char * current = path; int rc; int pos0 = -1, pos1 = -1; uint16_t root_domain; uint8_t root_bus; debug("entry"); /* * find the pci root domain and port; they basically look like: * pci0000:00/ * ^d ^p */ rc = sscanf(current, "%n../../devices/pci%hx:%hhx/%n", &pos0, &root_domain, &root_bus, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); /* * If we can't find that, it's not a PCI device. */ if (rc != 2) return 0; current += pos1; dev->pci_root.pci_domain = root_domain; dev->pci_root.pci_bus = root_bus; rc = parse_acpi_hid_uid(dev, "devices/pci%04hx:%02hhx", root_domain, root_bus); if (rc < 0) return -1; errno = 0; debug("current:'%s' sz:%zd\n", current, current - path); return current - path; } static ssize_t dp_create_pci_root(struct device *dev UNUSED, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t new = 0, sz = 0; debug("entry buf:%p size:%zd off:%zd", buf, size, off); debug("returning 0"); if (dev->acpi_root.acpi_uid_str) { debug("creating acpi_hid_ex dp hid:0x%08x uid:'%s'", dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid_str); new = efidp_make_acpi_hid_ex(buf + off, size ? size - off : 0, dev->acpi_root.acpi_hid, 0, 0, "", dev->acpi_root.acpi_uid_str, ""); if (new < 0) { efi_error("efidp_make_acpi_hid_ex() failed"); return new; } } else { debug("creating acpi_hid dp hid:0x%08x uid:0x%0"PRIx64, dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid); new = efidp_make_acpi_hid(buf + off, size ? size - off : 0, dev->acpi_root.acpi_hid, dev->acpi_root.acpi_uid); if (new < 0) { efi_error("efidp_make_acpi_hid() failed"); return new; } } sz += new; debug("returning %zd", sz); return sz; } enum interface_type pci_root_iftypes[] = { pci_root, unknown }; struct dev_probe HIDDEN pci_root_parser = { .name = "pci_root", .iftypes = pci_root_iftypes, .flags = DEV_PROVIDES_ROOT, .parse = parse_pci_root, .create = dp_create_pci_root, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-pci.c000066400000000000000000000104561455652431600154470ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * support for PCI root hub and devices * * various devices /sys/dev/block/$major:$minor start with: * maj:min -> ../../devices/pci$PCIROOT/$PCI_DEVICES/$BLOCKDEV_STUFF/block/$DISK/$PART * i.e.: pci0000:00/0000:00:1d.0/0000:05:00.0/ * ^ root hub ^device ^device * * for network devices, we also get: * /sys/class/net/$IFACE -> ../../devices/$PCI_DEVICES/net/$IFACE * * In both cases our "current" pointer should be at $PCI_DEVICES. * */ static ssize_t parse_pci(struct device *dev, const char *path, const char *root) { const char *current = path; int rc; debug("entry"); /* find the pci domain/bus/device/function: * 0000:00:01.0/0000:01:00.0/ * ^d ^b ^d ^f (of the last one in the series) */ while (*current) { uint16_t domain; uint8_t bus, device, function; struct pci_dev_info *pci_dev; unsigned int i = dev->n_pci_devs; struct stat statbuf; int pos0 = -1, pos1 = -1; debug("searching for 0000:00:00.0/"); rc = sscanf(current, "%n%hx:%hhx:%hhx.%hhx/%n", &pos0, &domain, &bus, &device, &function, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 4) break; current += pos1; debug("found pci domain %04hx:%02hhx:%02hhx.%02hhx", domain, bus, device, function); pci_dev = realloc(dev->pci_dev, sizeof(*pci_dev) * (i + 1)); if (!pci_dev) { efi_error("realloc(%p, %zd * (%d + 1)) failed", dev->pci_dev, sizeof(*pci_dev), i); return -1; } dev->pci_dev = pci_dev; dev->pci_dev[i].pci_domain = domain; dev->pci_dev[i].pci_bus = bus; dev->pci_dev[i].pci_device = device; dev->pci_dev[i].pci_function = function; char *tmp = strndup(root, current-root+1); char *linkbuf = NULL; if (!tmp) { efi_error("could not allocate memory"); return -1; } tmp[current - root] = '\0'; rc = sysfs_stat(&statbuf, "class/block/%s/driver", tmp); if (rc < 0 && errno == ENOENT) { debug("No driver link for /sys/class/block/%s", tmp); debug("Assuming this is just a buggy platform core driver"); dev->pci_dev[i].driverlink = NULL; } else { rc = sysfs_readlink(&linkbuf, "class/block/%s/driver", tmp); if (rc < 0 || !linkbuf) { efi_error("Could not find driver for pci device %s", tmp); free(tmp); return -1; } else { dev->pci_dev[i].driverlink = strdup(linkbuf); debug("driver:%s\n", linkbuf); } } free(tmp); dev->n_pci_devs += 1; } debug("current:'%s' sz:%zd\n", current, current - path); return current - path; } static ssize_t dp_create_pci(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz = 0, new = 0; debug("entry buf:%p size:%zd off:%zd", buf, size, off); debug("creating PCI device path nodes"); for (unsigned int i = 0; i < dev->n_pci_devs; i++) { debug("creating PCI device path node %u", i); new = efidp_make_pci(buf + off, size ? size - off : 0, dev->pci_dev[i].pci_device, dev->pci_dev[i].pci_function); if (new < 0) { efi_error("efidp_make_pci() failed"); return new; } sz += new; off += new; } debug("returning %zd", sz); return sz; } enum interface_type pci_iftypes[] = { pci, unknown }; struct dev_probe HIDDEN pci_parser = { .name = "pci", .iftypes = pci_iftypes, .parse = parse_pci, .create = dp_create_pci, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-pmem.c000066400000000000000000000126231455652431600156300ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * support NVDIMM-P (pmem / btt) devices * (does not include NVDIMM-${ANYTHING_ELSE}) * * /sys/dev/block/$major:$minor looks like: * 259:0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region9/btt9.0/block/pmem9s * 259:1 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region11/btt11.0/block/pmem11s * 259:3 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region11/btt11.0/block/pmem11s/pmem11s1 * * /sys/dev/block/259:0/device looks like: * device -> ../../../btt9.0 * /sys/dev/block/259:1/device looks like: * device -> ../../../btt11.0 * * /sys/dev/block/259:1/partition looks like: * $ cat partition * 1 * * /sys/dev/block/259:0/uuid looks like: * $ cat uuid * 6e54091e-7476-47ac-824b-b6dd69878661 * * pmem12s -> ../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region12/btt12.1/block/pmem12s * dev: 259:0 * device -> ../../../btt12.1 * device/uuid: 0cee166e-dd56-4bc2-99d2-2544b69025b8 * 259:0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region12/btt12.1/block/pmem12s * * pmem12.1s -> ../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region12/btt12.2/block/pmem12.1s * dev: 259:1 * device -> ../../../btt12.2 * device/uuid: 78d94521-91f7-47db-b3a7-51b764281940 * 259:1 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region12/btt12.2/block/pmem12.1s * * pmem12.2 -> ../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region12/pfn12.1/block/pmem12.2 * dev: 259:2 * device -> ../../../pfn12.1 * device/uuid: 829c5205-89a5-4581-9819-df7d7754c622 * 259:2 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region12/pfn12.1/block/pmem12.2 */ static ssize_t parse_pmem(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; uint8_t *filebuf = NULL; uint8_t system, sysbus, acpi_id; uint16_t pnp_id; int ndbus, region, btt_region_id, btt_id, rc; int pos0 = -1, pos1 = -1; char *namespace = NULL; debug("entry"); if (!strcmp(dev->driver, "nd_pmem")) { ; #if 0 /* dunno */ } else if (!strcmp(dev->driver, "nd_blk")) { /* dunno */ dev->inteface_type = scsi; #endif } else { /* * not a pmem device */ return 0; } /* * We're not actually using any of the values here except pos1 (our * return value), but rather just being paranoid that this is the sort * of device we care about. * * 259:0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region12/btt12.1/block/pmem12s */ pos0 = pos1 = -1; rc = sscanf(current, "../../devices/%nLNXSYSTM:%hhx/LNXSYBUS:%hhx/ACPI%hx:%hhx/ndbus%d/region%d/btt%d.%d/%n", &pos0, &system, &sysbus, &pnp_id, &acpi_id, &ndbus, ®ion, &btt_region_id, &btt_id, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc < 8) return 0; current += pos1; /* * but the UUID we really do need to have. */ rc = read_sysfs_file(&filebuf, "class/block/%s/device/namespace", dev->disk_name); if ((rc < 0 && errno == ENOENT) || filebuf == NULL) return -1; rc = sscanf((char *)filebuf, "%ms[^\n]\n", &namespace); if (rc != 1 || namespace == NULL) return -1; filebuf = NULL; debug("nvdimm namespace is '%s'", namespace); rc = read_sysfs_file(&filebuf, "bus/nd/devices/%s/uuid", namespace); free(namespace); if (rc < 0 || filebuf == NULL) return -1; rc = efi_str_to_guid((char *)filebuf, &dev->nvdimm_info.namespace_label); if (rc < 0) return -1; filebuf = NULL; rc = read_sysfs_file(&filebuf, "class/block/%s/device/uuid", dev->disk_name); if (rc < 0 || filebuf == NULL) return -1; rc = efi_str_to_guid((char *)filebuf, &dev->nvdimm_info.nvdimm_label); if (rc < 0) return -1; /* * Right now it's not clear what encoding NVDIMM($uuid) gets in the * binary format, so this will be in the mixed endian format EFI GUIDs * are in (33221100-1100-1100-0011-223344556677) unless you set this * variable. */ if (getenv("LIBEFIBOOT_SWIZZLE_PMEM_UUID") != NULL) { swizzle_guid_to_uuid(&dev->nvdimm_info.namespace_label); swizzle_guid_to_uuid(&dev->nvdimm_info.nvdimm_label); } dev->interface_type = nd_pmem; debug("current:'%s' sz:%zd", current, current - path); return current - path; } static ssize_t dp_create_pmem(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz, sz1; debug("entry"); sz = efidp_make_nvdimm(buf + off, size ? size - off : 0, &dev->nvdimm_info.namespace_label); if (sz < 0) return sz; off += sz; sz1 = efidp_make_nvdimm(buf + off, size ? size - off : 0, &dev->nvdimm_info.nvdimm_label); if (sz1 < 0) return sz1; return sz + sz1; } enum interface_type pmem_iftypes[] = { nd_pmem, unknown }; struct dev_probe HIDDEN pmem_parser = { .name = "pmem", .iftypes = pmem_iftypes, .flags = DEV_PROVIDES_ROOT|DEV_PROVIDES_HD, .parse = parse_pmem, .create = dp_create_pmem, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-sas.c000066400000000000000000000211301455652431600154510ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2018 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" static int get_port_expander_sas_address(uint64_t *sas_address, uint32_t scsi_host, uint32_t local_port_id, uint32_t remote_port_id, uint32_t remote_scsi_target) { uint8_t *filebuf = NULL; int rc; /* * We find sas_address via this insanity: * /sys/class/scsi_host/host2 -> ../../devices/pci0000:74/0000:74:02.0/host2/scsi_host/host2 * /sys/devices/pci0000:74/0000:74:02.0/host2/scsi_host/host2/device -> ../../../host2 * /sys/devices/pci0000:74/0000:74:02.0/host2/device -> ../../../host2 * /sys/devices/host2/port-2:0/expander-2:0/sas_device/expander-2:0/sas_address * * But since host2 is always host2, we can skip most of that and just * go for: * /sys/devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/sas_device/end_device-2:0:2/sas_address */ #if 0 /* previously thought this was right, but it's the expander's address, not the target's address */ /* * /sys/class/scsi_host/host2/device/port-2:0/expander-2:0/sas_device/expander-2:0/sas_address * ... I think. I would have expected that to be port-2:0:0 and I * don't understand why it isn't. (I do now; this is the expander not * the port.) */ debug("looking for /sys/class/scsi_host/host%d/device/port-%d:%d/expander-%d:%d/sas_device/expander-%d:%d/sas_address", scsi_host, scsi_host, port_id, scsi_host, remote_scsi_target, scsi_host, remote_scsi_target); rc = read_sysfs_file(&filebuf, "class/scsi_host/host%d/device/port-%d:%d/expander-%d:%d/sas_device/expander-%d:%d/sas_address", scsi_host, scsi_host, port_id, scsi_host, remote_scsi_target, scsi_host, remote_scsi_target); if (rc < 0 || filebuf == NULL) { debug("didn't find it."); return -1; } #else debug("looking for /sys/class/scsi_host/host%d/device/port-%d:%d/expander-%d:%d/port-%d:%d:%d/end_device-%d:%d:%d/sas_device/end_device-%d:%d:%d/sas_address", scsi_host, scsi_host, local_port_id, scsi_host, remote_scsi_target, scsi_host, remote_scsi_target, remote_port_id, scsi_host, remote_scsi_target, remote_port_id, scsi_host, remote_scsi_target, remote_port_id); rc = read_sysfs_file(&filebuf, "class/scsi_host/host%d/device/port-%d:%d/expander-%d:%d/port-%d:%d:%d/end_device-%d:%d:%d/sas_device/end_device-%d:%d:%d/sas_address", scsi_host, scsi_host, local_port_id, scsi_host, remote_scsi_target, scsi_host, remote_scsi_target, remote_port_id, scsi_host, remote_scsi_target, remote_port_id, scsi_host, remote_scsi_target, remote_port_id); if (rc < 0 || filebuf == NULL) { debug("didn't find it."); return -1; } #endif rc = sscanf((char *)filebuf, "%"PRIx64, sas_address); if (rc != 1) return -1; return 0; } static int get_local_sas_address(uint64_t *sas_address, struct device *dev) { int rc; char *filebuf = NULL; rc = read_sysfs_file(&filebuf, "class/block/%s/device/sas_address", dev->disk_name); if (rc < 0 || filebuf == NULL) return -1; rc = sscanf((char *)filebuf, "%"PRIx64, sas_address); if (rc != 1) return -1; return 0; } /* * support for SAS devices * * /sys/dev/block/$major:$minor looks like: * 8:32 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sdc * 8:33 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sdc/sdc1 * * /sys/dev/block/8:32/device looks like: * DUNNO. But I suspect it's: ../../../4:0:0:0 * * These things are also things in this case: * /sys/class/scsi_host/host4/host_sas_address * /sys/class/block/sdc/device/sas_address * * I'm not sure at the moment if they're the same or not. * * There are also other devices that look like: * * 8:0 -> ../../devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda * 8:1 -> ../../devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda/sda1 * * /sys/dev/block/8:0/device -> ../../../2:0:0:0 * * This exists: * * /sys/class/scsi_host/host2 -> ../../devices/pci0000:74/0000:74:02.0/host2/scsi_host/host2 * /sys/devices/pci0000:74/0000:74:02.0/host2/scsi_host/host2/device -> ../../../host2 * /sys/devices/pci0000:74/0000:74:02.0/host2/device -> ../../../host2 * /sys/devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/sas_device/expander-2:0/sas_address * * but the device doesn't actually have a sas_host_address, because it's on a * port expander, and sas_address doesn't directly exist under /sys/class/ * anywhere. */ static ssize_t parse_sas(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; struct stat statbuf = { 0, }; int rc; uint32_t scsi_host, scsi_bus, scsi_device, scsi_target; uint32_t local_port_id = 0, remote_port_id = 0; uint32_t remote_scsi_target = 0; uint64_t scsi_lun; ssize_t pos; uint64_t sas_address = 0; debug("entry"); pos = parse_scsi_link(current, &scsi_host, &scsi_bus, &scsi_device, &scsi_target, &scsi_lun, &local_port_id, &remote_port_id, &remote_scsi_target); /* * If we can't parse the scsi data, it isn't a sas device, so return 0 * not error. */ if (pos < 0) return 0; current += pos; /* * Make sure it has the actual /SAS/ bits before we continue * validating all this junk. */ debug("looking for /sys/class/scsi_host/host%d/host_sas_address", scsi_host); rc = sysfs_stat(&statbuf, "class/scsi_host/host%d/host_sas_address", scsi_host); /* * If we can't parse the scsi data, it isn't a /SAS/ device, so return * 0 not error. Later errors mean it is an ata device, but we can't * parse it right, so they return -1. */ if (rc < 0) { debug("didn't find it."); /* * If it's on a port expander, it won't have the * host_sas_address, so we need to check if it's a sas_host * instead. * It may work to just check this to begin with, but I don't * have such a device in front of me right now. */ debug("looking for /sys/class/sas_host/host%d", scsi_host); rc = sysfs_stat(&statbuf, "class/sas_host/host%d", scsi_host); if (rc < 0) { debug("didn't find it."); return 0; } debug("found it."); /* * So it *is* a sas_host, and we have to fish the sas_address * from the remote port */ rc = get_port_expander_sas_address(&sas_address, scsi_host, local_port_id, remote_port_id, remote_scsi_target); if (rc < 0) { debug("Couldn't find port expander sas address"); return 0; } } else { /* * we also need to get the actual sas_address from someplace... */ debug("found it."); rc = get_local_sas_address(&sas_address, dev); if (rc < 0) { debug("Couldn't find sas address"); return 0; } } debug("sas address is 0x%"PRIx64, sas_address); dev->sas_info.sas_address = sas_address; dev->scsi_info.scsi_bus = scsi_bus; dev->scsi_info.scsi_device = scsi_device; dev->scsi_info.scsi_target = scsi_target; dev->scsi_info.scsi_lun = scsi_lun; dev->interface_type = sas; debug("current:'%s' sz:%zd", current, current - path); return current - path; } static ssize_t dp_create_sas(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz; debug("entry"); sz = efidp_make_sas(buf + off, size ? size - off : 0, dev->sas_info.sas_address); return sz; } enum interface_type sas_iftypes[] = { sas, unknown }; struct dev_probe HIDDEN sas_parser = { .name = "sas", .iftypes = sas_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_sas, .create = dp_create_sas, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-sata.c000066400000000000000000000172331455652431600156240ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include "efiboot.h" /* * Support for SATA (and in some cases other ATA) devices * * /dev/sda as SATA looks like: * /sys/dev/block/8:0 -> ../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda * ^ ^ ^ ^ ^ ^ ^ ^ ^ * | | | | | | | | lun again * | | | | | | | target again * | | | | | | device again * | | | | | bus again * | | | | 64-bit lun * | | | 32-bit target * | | 32-bit device * | 32-bit scsi "bus" * ata print id * * This is not only highly repetitive, but most of it is always 0 anyway. * * /dev/sda1 looks like: * /sys/dev/block/8:1 -> ../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1 * * sda/device looks like: * device -> ../../../0:0:0:0 * * For all of these we're searching for a match for $PRINT_ID and then getting * the other info - if there's a port multiplier and if so what's the PMPN, * and what's the port number: * /sys/class/ata_device/dev$PRINT_ID.$PMPN.$DEVICE - values "print id", pmp id, and device number * /sys/class/ata_device/dev$PRINT_ID.$DEVICE - values are "print id" and device number * /sys/class/ata_port/ata$PRINT_ID/port_no - contains off-by-one port number) * */ static ssize_t sysfs_sata_get_port_info(uint32_t print_id, struct device *dev) { DIR *d; struct dirent *de; uint8_t *buf = NULL; int rc; d = sysfs_opendir("class/ata_device/"); if (!d) { efi_error("could not open /sys/class/ata_device/"); return -1; } while ((de = readdir(d)) != NULL) { uint32_t found_print_id; uint32_t found_pmp; uint32_t found_devno = 0; if (!strcmp(de->d_name, ".") || !strcmp(de->d_name, "..")) continue; rc = sscanf(de->d_name, "dev%d.%d.%d", &found_print_id, &found_pmp, &found_devno); if (rc < 2 || rc > 3) { closedir(d); errno = EINVAL; return -1; } else if (found_print_id != print_id) { continue; } else if (rc == 3) { /* * the kernel doesn't ever tell us the SATA PMPN * sentinal value, it'll give us devM.N instead of * devM.N.O in that case instead. */ if (found_pmp > 0x7fff) { closedir(d); errno = EINVAL; return -1; } dev->sata_info.ata_devno = 0; dev->sata_info.ata_pmp = found_pmp; break; } else if (rc == 2) { dev->sata_info.ata_devno = 0; dev->sata_info.ata_pmp = 0xffff; break; } } closedir(d); rc = read_sysfs_file(&buf, "class/ata_port/ata%d/port_no", print_id); if (rc <= 0 || buf == NULL) return -1; rc = sscanf((char *)buf, "%d", &dev->sata_info.ata_port); if (rc != 1) return -1; /* * ata_port numbers are 1-indexed from libata in the kernel, but * they're 0-indexed in the spec. For maximal confusion. */ if (dev->sata_info.ata_port == 0) { errno = EINVAL; return -1; } else { dev->sata_info.ata_port -= 1; } return 0; } static ssize_t parse_sata(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; uint32_t print_id; uint32_t scsi_bus, tosser0; uint32_t scsi_device, tosser1; uint32_t scsi_target, tosser2; uint64_t scsi_lun, tosser3; int pos0 = -1, pos1 = -1; int rc; debug("entry"); if (is_pata(dev)) { debug("This is a PATA device; skipping."); return 0; } /* find the ata info: * ata1/host0/target0:0:0/0:0:0:0 * ^dev ^host x y z */ debug("searching for ata1/"); rc = sscanf(current, "%nata%"PRIu32"/%n", &pos0, &print_id, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); /* * If we don't find this one, it isn't an ata device, so return 0 not * error. Later errors mean it is an ata device, but we can't parse * it right, so they return -1. */ if (rc != 1) return 0; current += pos1; pos0 = pos1 = -1; debug("searching for host0/"); rc = sscanf(current, "%nhost%"PRIu32"/%n", &pos0, &scsi_bus, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 1) return -1; current += pos1; pos0 = pos1 = -1; debug("searching for target0:0:0:0/"); rc = sscanf(current, "%ntarget%"PRIu32":%"PRIu32":%"PRIu64"/%n", &pos0, &scsi_device, &scsi_target, &scsi_lun, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 3) return -1; current += pos1; pos0 = pos1 = -1; debug("searching for 0:0:0:0/"); rc = sscanf(current, "%n%"PRIu32":%"PRIu32":%"PRIu32":%"PRIu64"/%n", &pos0, &tosser0, &tosser1, &tosser2, &tosser3, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 4) return -1; current += pos1; rc = sysfs_sata_get_port_info(print_id, dev); if (rc < 0) return -1; dev->sata_info.scsi_bus = scsi_bus; dev->sata_info.scsi_device = scsi_device; dev->sata_info.scsi_target = scsi_target; dev->sata_info.scsi_lun = scsi_lun; if (dev->interface_type == unknown) dev->interface_type = sata; debug("current:'%s' sz:%zd\n", current, current - path); return current - path; } static ssize_t dp_create_sata(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz = -1; debug("entry buf:%p size:%zd off:%zd", buf, size, off); if (dev->interface_type == ata || dev->interface_type == atapi) { sz = efidp_make_atapi(buf + off, size ? size - off : 0, dev->sata_info.ata_port, dev->sata_info.ata_pmp, dev->sata_info.ata_devno); if (sz < 0) efi_error("efidp_make_atapi() failed"); } else if (dev->interface_type == sata) { sz = efidp_make_sata(buf + off, size ? size - off : 0, dev->sata_info.ata_port, dev->sata_info.ata_pmp, dev->sata_info.ata_devno); if (sz < 0) efi_error("efidp_make_sata() failed"); } else { return -EINVAL; } return sz; } enum interface_type sata_iftypes[] = { sata, unknown }; struct dev_probe HIDDEN sata_parser = { .name = "sata", .iftypes = sata_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_sata, .create = dp_create_sata, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-scsi.c000066400000000000000000000230201455652431600156240ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include "efiboot.h" /* * support for Old-school SCSI devices */ /* * helper for scsi formats... */ ssize_t HIDDEN parse_scsi_link(const char *path, uint32_t *scsi_host, uint32_t *scsi_bus, uint32_t *scsi_device, uint32_t *scsi_target, uint64_t *scsi_lun, uint32_t *local_port_id, uint32_t *remote_port_id, uint32_t *remote_target_id) { const char *current = path; int rc; int pos0 = -1, pos1 = -1, pos2 = -1; debug("entry"); /* * This structure is completely ridiculous. * * /dev/sdc as SAS looks like: * /sys/dev/block/8:32 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sdc * /dev/sdc1 looks like: * /sys/dev/block/8:33 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sdc/sdc1 * * OR * * /dev/sdc as SAS looks like: * /sys/dev/block/8:32 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:2:0/end_device-4:2:0/target4:2:0/4:2:0:0/block/sdc * /dev/sdc1 looks like: * /sys/dev/block/8:33 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:2:0/end_device-4:2:0/target4:2:0/4:2:0:0/block/sdc/sdc1 * * /sys/block/sdc/device looks like: * device-> ../../../4:2:0:0 * * OR * * 8:0 -> ../../devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda * 8:1 -> ../../devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda/sda1 * * /sys/block/sda/device looks like: * device -> ../../../2:0:0:0 * * * sas_address exists, but it's hard to find: * /sys/devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/sas_device/expander-2:0/sas_address * but sas_host_address is nowhere to be found, and sas_address * doesn't directly exist under /sys/class/ anywhere. So you actually * have to go to * /sys/devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/sas_device/expander-2:0/sas_address * and chop that off to * /sys/devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/ * and then add a bunch of port and end device crap to it to get: * /sys/devices/pci0000:74/0000:74:02.0/host2/port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/sas_device/end_device-2:0:2/sas_address */ /* * So we start when current is: * host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sdc/sdc1 * or * host2/port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda/sda1 */ uint32_t tosser0, tosser1, tosser2; /* ignore a bunch of stuff * host4/port-4:0 * or host4/port-4:0:0 */ debug("searching for host4/"); rc = sscanf(current, "%nhost%d/%n", scsi_host, &pos0, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 1) return -1; current += pos1; pos0 = pos1 = -1; /* * We might have this next: * port-2:0/expander-2:0/port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda/sda1 * or: * port-2:0/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda/sda1 * or maybe (not sure): * port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda/sda1 */ debug("searching for port-4:0 or port-4:0:0"); rc = sscanf(current, "%nport-%d:%d%n:%d%n", &pos0, &tosser0, &tosser1, &pos1, &tosser2, &pos2); debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); dbgmk(" ", pos0, MAX(pos1, pos2)); if (rc == 3) { if (remote_port_id) *remote_port_id = tosser2; pos1 = pos2; } else if (rc == 2) { if (local_port_id) *local_port_id = tosser1; } else if (rc != 0) { return -1; } else { pos1 = 0; } current += pos1; if (current[0] == '/') current += 1; pos0 = pos1 = pos2 = -1; /* * We might have this next: * expander-2:0/port-2:0:2/end_device-2:0:2/target2:0:0/2:0:0:0/block/sda/sda1 * ^ port id * ^ scsi target id * ^ host number * ^ host number * We don't actually care about either number in expander-.../, * because they're replicated in all the other places. We just need * to get past it. */ debug("searching for expander-4:0/"); rc = sscanf(current, "%nexpander-%d:%d/%n", &pos0, &tosser0, &tosser1, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc == 2) { if (!remote_target_id) { efi_error("Device is PHY is a remote target, but remote_target_id is NULL"); return -1; } *remote_target_id = tosser1; current += pos1; pos0 = pos1 = -1; /* * if we have that, we should have a 3-part port next */ debug("searching for port-2:0:2/"); rc = sscanf(current, "%nport-%d:%d:%d/%n", &pos0, &tosser0, &tosser1, &tosser2, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 3) { efi_error("Couldn't parse port expander port string"); return -1; } current += pos1; } pos0 = pos1 = -1; /* next: * /end_device-4:0 * or /end_device-4:0:0 * awesomely these are the exact same fields that go into port-blah, * but we don't care for now about any of them anyway. */ debug("searching for end_device-4:0/ or end_device-4:0:0/"); rc = sscanf(current, "%nend_device-%d:%d%n:%d%n", &pos0, &tosser0, &tosser1, &pos1, &tosser2, &pos2); debug("current:'%s' rc:%d pos0:%d\n", current, rc, pos0); dbgmk(" ", pos0, MAX(pos1, pos2)); if (rc == 3) { if (remote_port_id) *remote_port_id = tosser2; pos1 = pos2; } else if (rc == 2) { if (local_port_id) *local_port_id = tosser1; } else { pos1 = 0; } current += pos1; pos0 = pos1 = pos2 = -1; if (current[0] == '/') current += 1; /* now: * /target4:0:0/ */ uint64_t tosser3; debug("searching for target4:0:0/"); rc = sscanf(current, "%ntarget%d:%d:%"PRIu64"/%n", &pos0, &tosser0, &tosser1, &tosser3, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 3) return -1; current += pos1; pos0 = pos1 = -1; /* now: * %d:%d:%d:%llu/ */ debug("searching for 4:0:0:0/"); rc = sscanf(current, "%n%d:%d:%d:%"PRIu64"/%n", &pos0, scsi_bus, scsi_device, scsi_target, scsi_lun, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 4) return -1; current += pos1; debug("current:'%s' sz:%zd", current, current - path); return current - path; } static ssize_t parse_scsi(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; uint32_t scsi_host, scsi_bus, scsi_device, scsi_target; uint64_t scsi_lun; int pos0, pos1; int rc; debug("entry"); debug("searching device for ../../../0:0:0:0"); pos0 = pos1 = -1; rc = sscanf(dev->device, "../../../%n%d:%d:%d:%"PRIu64"%n", &pos0, &dev->scsi_info.scsi_bus, &dev->scsi_info.scsi_device, &dev->scsi_info.scsi_target, &dev->scsi_info.scsi_lun, &pos1); debug("device:'%s' rc:%d pos0:%d pos1:%d\n", dev->device, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 4) return 0; pos0 = parse_scsi_link(current, &scsi_host, &scsi_bus, &scsi_device, &scsi_target, &scsi_lun, NULL, NULL, NULL); if (pos0 < 0) return 0; current += pos0; /* * SCSI disks can have up to 16 partitions, or 4 bits worth * and have one bit for the disk number. */ if (dev->major == 8) { dev->interface_type = scsi; dev->disknum = (dev->minor >> 4); set_part(dev, dev->minor & 0xF); } else if (dev->major >= 65 && dev->major <= 71) { dev->interface_type = scsi; dev->disknum = 16*(dev->major-64) + (dev->minor >> 4); set_part(dev, dev->minor & 0xF); } else if (dev->major >= 128 && dev->major <= 135) { dev->interface_type = scsi; dev->disknum = 16*(dev->major-128) + (dev->minor >> 4); set_part(dev, dev->minor & 0xF); } else { efi_error("couldn't parse scsi major/minor"); return -1; } debug("current:'%s' sz:%zd\n", current, current - path); return current - path; } static ssize_t dp_create_scsi(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off) { ssize_t sz = 0; debug("entry"); sz = efidp_make_scsi(buf + off, size ? size - off : 0, dev->scsi_info.scsi_target, dev->scsi_info.scsi_lun); if (sz < 0) efi_error("efidp_make_scsi() failed"); return sz; } enum interface_type scsi_iftypes[] = { scsi, unknown }; struct dev_probe HIDDEN scsi_parser = { .name = "scsi", .iftypes = scsi_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_scsi, .create = dp_create_scsi, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-soc-root.c000066400000000000000000000030131455652431600164300ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * support for soc platforms * * various devices /sys/dev/block/$major:$minor start with: * maj:min -> ../../devices/platform/soc/$DEVICETREE_NODE/$BLOCKDEV_STUFF/block/$DISK/$PART * i.e.: soc/1a400000.sata/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1 * ^ dt node ^ blockdev stuff ^ disk * I don't *think* the devicetree nodes stack. */ static ssize_t parse_soc_root(struct device *dev UNUSED, const char *path, const char *root UNUSED) { const char *current = path; int rc; int pos0 = -1, pos1 = -1; debug("entry"); rc = sscanf(current, "../../devices/%nplatform/soc/%*[^/]/%n", &pos0, &pos1); if (rc != 0 || pos0 == -1 || pos1 == -1) return 0; debug("current:'%s' rc:%d pos0:%d pos1:%d", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); current += pos1; debug("current:'%s' sz:%zd\n", current, current - path); return current - path; } enum interface_type soc_root_iftypes[] = { soc_root, unknown }; struct dev_probe HIDDEN soc_root_parser = { .name = "soc_root", .iftypes = soc_root_iftypes, .flags = DEV_ABBREV_ONLY|DEV_PROVIDES_ROOT, .parse = parse_soc_root, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-virtblk.c000066400000000000000000000033641455652431600163510ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * support for virtio block devices * /sys/dev/block/maj:min look like: * 252:0 -> ../../devices/pci0000:00/0000:00:07.0/virtio2/block/vda * 252:1 -> ../../devices/pci0000:00/0000:00:07.0/virtio2/block/vda/vda1 * * vda/device looks like: * device -> ../../../virtio2 * * In this case we get 1 storage controller per pci device, so we actually * write the device path as: * * PciRoot(0x0)/Pci(0x7,0x0)/HD(1,GPT,14d30998-b5e3-4b8f-9be3-58a454dd06bf,0x800,0x53000)/File(\EFI\fedora\shimx64.efi) * * But usually we just write the HD() entry, of course. */ static ssize_t parse_virtblk(struct device *dev, const char *path, const char *root UNUSED) { const char *current = path; uint32_t tosser; int pos0 = -1, pos1 = -1; int rc; debug("entry"); debug("searching for virtio0/"); rc = sscanf(current, "%nvirtio%x/%n", &pos0, &tosser, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); /* * If we couldn't find virtioX/ then it isn't a virtio device. */ if (rc < 1) return 0; dev->interface_type = virtblk; current += pos1; debug("current:'%s' sz:%zd\n", current, current - path); return current - path; } enum interface_type virtblk_iftypes[] = { virtblk, unknown }; struct dev_probe HIDDEN virtblk_parser = { .name = "virtio block", .iftypes = virtblk_iftypes, .flags = DEV_PROVIDES_HD, .parse = parse_virtblk, .create = NULL, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux-virtual-root.c000066400000000000000000000035731455652431600173450ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include "efiboot.h" /* * Support virtually rooted devices (fibre+nvme, etc.) * * /sys/dev/block/$major:$minor looks like: * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 * 259:1 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 * or: * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 */ static ssize_t parse_virtual_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) { int rc; ssize_t sz = 0; int pos0 = 0, pos1 = 0; struct subdir { const char * const name; const char * const fmt; } subdirs[] = { {"../../devices/virtual", "%n../../devices/virtual/%n"}, {"nvme-subsystem/", "%nnvme-subsystem/%n"}, {"nvme-fabrics/ctl/", "%nnvme-fabrics/ctl/%n"}, {NULL, NULL} }; debug("entry"); for (int i = 0; subdirs[i].name; i++) { debug("searching for %s", subdirs[i].name); pos0 = pos1 = -1; rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1); debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); dbgmk(" ", pos0, pos1); if (rc != 0 || pos0 == -1 || pos1 == -1) continue; sz += pos1; current += pos1; if (i > 0) goto found; } sz = 0; found: debug("current:'%s' sz:%zd\n", current, sz); return sz; } static enum interface_type virtual_root_iftypes[] = { virtual_root, unknown }; struct dev_probe HIDDEN virtual_root_parser = { .name = "virtual_root", .iftypes = virtual_root_iftypes, .flags = DEV_ABBREV_ONLY|DEV_PROVIDES_ROOT, .parse = parse_virtual_root, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux.c000066400000000000000000000456611455652431600147040ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. * Copyright (C) 2001 Dell Computer Corporation */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "efiboot.h" int HIDDEN find_parent_devpath(const char * const child, char **parent) { int ret; char *node; char *linkbuf; /* strip leading /dev/ */ node = strrchr(child, '/'); if (!node) return -1; node++; /* look up full path symlink */ ret = sysfs_readlink(&linkbuf, "class/block/%s", node); if (ret < 0 || !linkbuf) return ret; /* strip child */ node = strrchr(linkbuf, '/'); if (!node) return -1; *node = '\0'; /* read parent */ node = strrchr(linkbuf, '/'); if (!node) return -1; *node = '\0'; node++; /* write out new path */ ret = asprintf(parent, "/dev/%s", node); if (ret < 0) return ret; return 0; } int HIDDEN set_part_name(struct device *dev, const char * const fmt, ...) { ssize_t rc; va_list ap; int error; if (dev->part <= 0) return 0; va_start(ap, fmt); rc = vasprintf(&dev->part_name, fmt, ap); error = errno; va_end(ap); errno = error; if (rc < 0) efi_error("could not allocate memory"); return rc; } int HIDDEN reset_part_name(struct device *dev) { char *part = NULL; int rc; if (dev->part_name) { free(dev->part_name); dev->part_name = NULL; } if (dev->part < 1) return 0; if (dev->n_probes > 0 && dev->probes[dev->n_probes-1] && dev->probes[dev->n_probes-1]->make_part_name) { part = dev->probes[dev->n_probes]->make_part_name(dev); dev->part_name = part; rc = 0; } else { rc = asprintf(&dev->part_name, "%s%d", dev->disk_name, dev->part); if (rc < 0) efi_error("could not allocate memory"); } return rc; } int HIDDEN set_part(struct device *dev, int value) { int rc; if (dev->part == value) return 0; dev->part = value; rc = reset_part_name(dev); if (rc < 0) efi_error("reset_part_name() failed"); return rc; } int HIDDEN set_disk_name(struct device *dev, const char * const fmt, ...) { ssize_t rc; va_list ap; int error; va_start(ap, fmt); rc = vasprintf(&dev->disk_name, fmt, ap); error = errno; va_end(ap); errno = error; if (rc < 0) efi_error("could not allocate memory"); return rc; } int HIDDEN set_disk_and_part_name(struct device *dev) { int rc = -1; char *ultimate = pathseg(dev->link, -1); char *penultimate = pathseg(dev->link, -2); char *approximate = pathseg(dev->link, -3); char *proximate = pathseg(dev->link, -4); char *psl5 = pathseg(dev->link, -5); /* * devlinks look something like: * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART */ errno = 0; debug("dev->disk_name:%p dev->part_name:%p", dev->disk_name, dev->part_name); debug("dev->part:%d", dev->part); debug("ultimate:'%s'", ultimate ? : ""); debug("penultimate:'%s'", penultimate ? : ""); debug("approximate:'%s'", approximate ? : ""); debug("proximate:'%s'", proximate ? : ""); debug("psl5:'%s'", psl5 ? : ""); if (ultimate && penultimate && ((proximate && !strcmp(proximate, "nvme")) || (approximate && !strcmp(approximate, "block")))) { /* * 259:1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1/nvme0n1p1 * 8:1 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda1 * 8:33 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sdc/sdc1 * 252:1 -> ../../devices/pci0000:00/0000:00:07.0/virtio2/block/vda/vda1 * 259:3 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region11/btt11.0/block/pmem11s/pmem11s1 */ set_disk_name(dev, "%s", penultimate); set_part_name(dev, "%s", ultimate); debug("disk:%s part:%s", penultimate, ultimate); rc = 0; } else if (ultimate && approximate && !strcmp(approximate, "nvme")) { /* * 259:0 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1 */ set_disk_name(dev, "%s", ultimate); set_part_name(dev, "%sp%d", ultimate, dev->part); debug("disk:%s part:%sp%d", ultimate, ultimate, dev->part); rc = 0; } else if (ultimate && penultimate && !strcmp(penultimate, "block")) { /* * 253:0 -> ../../devices/virtual/block/dm-0 (... I guess) * 8:0 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/block/sda * 11:0 -> ../../devices/pci0000:00/0000:00:11.5/ata3/host2/target2:0:0/2:0:0:0/block/sr0 * 8:32 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/host4/port-4:0/end_device-4:0/target4:0:0/4:0:0:0/block/sdc * 252:0 -> ../../devices/pci0000:00/0000:00:07.0/virtio2/block/vda * 259:0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region9/btt9.0/block/pmem9s * 259:1 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0012:00/ndbus0/region11/btt11.0/block/pmem11s */ set_disk_name(dev, "%s", ultimate); set_part_name(dev, "%s%d", ultimate, dev->part); debug("disk:%s part:%s%d", ultimate, ultimate, dev->part); rc = 0; } else if (ultimate && approximate && !strcmp(approximate, "mtd")) { /* * 31:0 -> ../../devices/platform/1e000000.palmbus/1e000b00.spi/spi_master/spi32766/spi32766.0/mtd/mtd0/mtdblock0 */ set_disk_name(dev, "%s", ultimate); debug("disk:%s", ultimate); rc = 0; } else if ((proximate && ultimate && !strcmp(proximate, "nvme-fabrics")) || (approximate && ultimate && !strcmp(approximate, "nvme-subsystem"))) { /* * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 * ^ proximate ^ ultimate * or * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 * ^ approximate ^ penultimate * ultimate ^ */ set_disk_name(dev, "%s", ultimate); debug("disk:%s", ultimate); rc = 0; } else if ((psl5 && penultimate && ultimate && !strcmp(psl5, "nvme-fabrics")) || (proximate && penultimate && ultimate && !strcmp(proximate, "nvme-subsystem"))) { /* * 259:1 -> ../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 * ^psl5 ^ penultimate * ultimate ^ * or * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 * ^ proximate ^ penultimate * ultimate ^ */ set_disk_name(dev, "%s", penultimate); set_part_name(dev, "%s", ultimate); debug("disk:%s part:%s", penultimate, ultimate); rc = 0; } if (rc < 0) efi_error("Could not parse disk name:\"%s\"", dev->link); return rc; } static struct dev_probe *dev_probes[] = { /* * pmem needs to be before PCI, so if it provides root it'll * be found first. */ &pmem_parser, &acpi_root_parser, &pci_root_parser, &soc_root_parser, &virtual_root_parser, &pci_parser, &virtblk_parser, &sas_parser, &sata_parser, &nvme_parser, &ata_parser, &scsi_parser, &i2o_parser, &emmc_parser, NULL }; void HIDDEN device_free(struct device *dev) { if (!dev) return; if (dev->link) free(dev->link); if (dev->device) free(dev->device); if (dev->driver) free(dev->driver); if (dev->probes) free(dev->probes); if (dev->acpi_root.acpi_hid_str) free(dev->acpi_root.acpi_hid_str); if (dev->acpi_root.acpi_uid_str) free(dev->acpi_root.acpi_uid_str); if (dev->acpi_root.acpi_cid_str) free(dev->acpi_root.acpi_cid_str); if (dev->interface_type == network) { if (dev->ifname) free(dev->ifname); } else { if (dev->disk_name) free(dev->disk_name); if (dev->part_name) free(dev->part_name); } for (unsigned int i = 0; i < dev->n_pci_devs; i++) if (dev->pci_dev[i].driverlink) free(dev->pci_dev[i].driverlink); if (dev->pci_dev) free(dev->pci_dev); memset(dev, 0, sizeof(*dev)); free(dev); } static void print_dev_dp_node(struct device *dev, struct dev_probe *probe) { ssize_t dpsz; uint8_t *dp; ssize_t bufsz; uint8_t *buf; ssize_t sz; dpsz = probe->create(dev, NULL, 0, 0); if (dpsz <= 0) return; dp = alloca(dpsz + 4); if (!dp) return; dpsz = probe->create(dev, dp, dpsz, 0); if (dpsz <= 0) return; sz = efidp_make_end_entire(dp + dpsz, 4); if (sz < 0) return; dpsz += sz; bufsz = efidp_format_device_path(NULL, 0, (const_efidp)dp, dpsz); if (bufsz <= 0) return; buf = alloca(bufsz); if (!buf) return; bufsz = efidp_format_device_path(buf, bufsz, (const_efidp)dp, dpsz); if (bufsz <= 0) return; debug("Device path node is %s", buf); } struct device HIDDEN *device_get(int fd, int partition) { struct device *dev; char *linkbuf = NULL, *tmpbuf = NULL; int i = 0; unsigned int n = 0; int rc; size_t nmemb = (sizeof(dev_probes) / sizeof(dev_probes[0])) + 1; dev = calloc(1, sizeof(*dev)); if (!dev) { efi_error("could not allocate %zd bytes", sizeof(*dev)); return NULL; } dev->part = partition; debug("partition:%d dev->part:%d", partition, dev->part); dev->probes = calloc(nmemb, sizeof(struct dev_probe *)); if (!dev->probes) { efi_error("could not allocate %zd bytes", nmemb * sizeof(struct dev_probe *)); goto err; } rc = fstat(fd, &dev->stat); if (rc < 0) { efi_error("fstat(%d) failed", fd); goto err; } dev->pci_root.pci_domain = 0xffff; dev->pci_root.pci_bus = 0xff; if (S_ISBLK(dev->stat.st_mode)) { dev->major = major(dev->stat.st_rdev); dev->minor = minor(dev->stat.st_rdev); } else if (S_ISREG(dev->stat.st_mode)) { dev->major = major(dev->stat.st_dev); dev->minor = minor(dev->stat.st_dev); } else { efi_error("device is not a block device or regular file"); goto err; } rc = sysfs_readlink(&linkbuf, "dev/block/%"PRIu64":%"PRIu32, dev->major, dev->minor); if (rc < 0 || !linkbuf) { efi_error("readlink of /sys/dev/block/%"PRIu64":%"PRIu32" failed", dev->major, dev->minor); goto err; } dev->link = strdup(linkbuf); if (!dev->link) { efi_error("strdup(\"%s\") failed", linkbuf); goto err; } debug("dev->link: %s", dev->link); if (dev->part == -1) { rc = read_sysfs_file(&tmpbuf, "dev/block/%s/partition", dev->link); if (rc < 0 || !tmpbuf) { efi_error("device has no /partition node; not a partition"); } else { rc = sscanf((char *)tmpbuf, "%d\n", &dev->part); if (rc != 1) efi_error("couldn't parse partition number for %s", tmpbuf); } } rc = set_disk_and_part_name(dev); if (rc < 0) { efi_error("could not set disk and partition names"); goto err; } debug("dev->disk_name: %s", dev->disk_name); debug("dev->part_name: %s", dev->part_name); rc = sysfs_readlink(&tmpbuf, "block/%s/device", dev->disk_name); if (rc < 0 || !tmpbuf) { debug("readlink of /sys/block/%s/device failed", dev->disk_name); dev->device = strdup(""); } else { dev->device = strdup(tmpbuf); } if (!dev->device) { efi_error("strdup(\"%s\") failed", tmpbuf); goto err; } /* * So, on a normal disk, you get something like: * /sys/block/sda/device -> ../../0:0:0:0 * /sys/block/sda/device/driver -> ../../../../../../../bus/scsi/drivers/sd * * On a directly attached nvme device you get: * /sys/block/nvme0n1/device -> ../../nvme0 * /sys/block/nvme0n1/device/device -> ../../../0000:6e:00.0 * /sys/block/nvme0n1/device/device/driver -> ../../../../bus/pci/drivers/nvme * * On a fabric-attached nvme device, you get something like: * /sys/block/nvme0n1/device -> ../../nvme0 * /sys/block/nvme0n1/device/device -> ../../ctl * /sys/block/nvme0n1/device/device/device -> ../../../../../0000:6e:00.0 * /sys/block/nvme0n1/device/device/device/driver -> ../../../../../../bus/pci/drivers/nvme-fabrics * * ... I think? I don't have one in front of me. */ char *filepath = NULL; rc = find_device_file(&filepath, "driver", "block/%s", dev->disk_name); if (rc >= 0) { rc = sysfs_readlink(&tmpbuf, "%s", filepath); if (rc < 0 || !tmpbuf) { efi_error("readlink of /sys/%s failed", filepath); goto err; } linkbuf = pathseg(tmpbuf, -1); if (!linkbuf) { efi_error("could not get segment -1 of \"%s\"", tmpbuf); goto err; } dev->driver = strdup(linkbuf); } else { dev->driver = strdup(""); } if (!dev->driver) { efi_error("strdup(\"%s\") failed", linkbuf); goto err; } const char *current = dev->link; bool needs_root = true; int last_successful_probe = -1; debug("searching for device nodes in %s", dev->link); for (i = 0; dev_probes[i] && dev_probes[i]->parse && *current; i++) { struct dev_probe *probe = dev_probes[i]; int pos; if (!needs_root && (probe->flags & DEV_PROVIDES_ROOT)) { debug("not testing %s because flags is 0x%x", probe->name, probe->flags); continue; } debug("trying %s", probe->name); pos = probe->parse(dev, current, dev->link); if (pos < 0) { debug("parsing %s failed", probe->name); continue; } else if (pos > 0) { char match[pos+1]; strncpy(match, current, pos); match[pos] = '\0'; debug("%s matched '%s'", probe->name, match); dev->flags |= probe->flags; if (probe->flags & DEV_PROVIDES_HD || probe->flags & DEV_PROVIDES_ROOT || probe->flags & DEV_ABBREV_ONLY) needs_root = false; if (probe->create) print_dev_dp_node(dev, probe); dev->probes[n++] = dev_probes[i]; current += pos; if (current[0] == '\0') debug("finished"); else debug("current:'%s'", current); last_successful_probe = i; if (!*current || !strncmp(current, "block/", 6)) break; continue; } debug("dev_probes[%d]: %p dev->interface_type: %d\n", i+1, dev_probes[i+1], dev->interface_type); if (dev_probes[i+1] == NULL && dev->interface_type == unknown) { pos = 0; rc = sscanf(current, "%*[^/]/%n", &pos); if (rc < 0) { slash_err: efi_error("Cannot parse device link segment \"%s\"", current); goto err; } while (current[pos] == '/') pos += 1; if (!current[pos]) goto slash_err; debug("Cannot parse device link segment '%s'", current); debug("Skipping to '%s'", current + pos); debug("This means we can only create abbreviated paths"); dev->flags |= DEV_ABBREV_ONLY; i = last_successful_probe; current += pos; if (!*current || !strncmp(current, "block/", 6)) break; } } if (dev->interface_type == unknown && !(dev->flags & DEV_ABBREV_ONLY) && !strcmp(current, "block/")) { efi_error("unknown storage interface"); errno = ENOSYS; goto err; } return dev; err: device_free(dev); return NULL; } int HIDDEN make_blockdev_path(uint8_t *buf, ssize_t size, struct device *dev) { ssize_t off = 0; debug("entry buf:%p size:%zd", buf, size); for (unsigned int i = 0; dev->probes[i] && dev->probes[i]->parse; i++) { struct dev_probe *probe = dev->probes[i]; ssize_t sz; if (!probe->create) continue; sz = probe->create(dev, buf + off, size ? size - off : 0, 0); if (sz < 0) { efi_error("could not create %s device path", probe->name); return sz; } off += sz; } debug("= %zd", off); return off; } ssize_t HIDDEN make_mac_path(uint8_t *buf, ssize_t size, const char * const ifname) { struct ifreq ifr; struct ethtool_drvinfo drvinfo = { 0, }; int fd = -1, rc; ssize_t ret = -1, sz, off = 0; char busname[PATH_MAX+1] = ""; struct device dev; memset(&dev, 0, sizeof (dev)); dev.interface_type = network; dev.ifname = strdupa(ifname); if (!dev.ifname) return -1; /* * find the device link, which looks like: * ../../devices/$PCI_STUFF/net/$IFACE */ rc = sysfs_readlink(&dev.link, "class/net/%s", ifname); if (rc < 0 || !dev.link) goto err; memset(&ifr, 0, sizeof (ifr)); strncpy(ifr.ifr_name, ifname, IF_NAMESIZE); ifr.ifr_name[IF_NAMESIZE-1] = '\0'; drvinfo.cmd = ETHTOOL_GDRVINFO; ifr.ifr_data = (caddr_t)&drvinfo; fd = socket(AF_INET, SOCK_DGRAM, 0); if (fd < 0) goto err; rc = ioctl(fd, SIOCETHTOOL, &ifr); if (rc < 0) goto err; strncpy(busname, drvinfo.bus_info, PATH_MAX); rc = ioctl(fd, SIOCGIFHWADDR, &ifr); if (rc < 0) goto err; sz = pci_parser.create(&dev, buf, size, off); if (sz < 0) goto err; off += sz; sz = efidp_make_mac_addr(buf+off, size?size-off:0, ifr.ifr_ifru.ifru_hwaddr.sa_family, (uint8_t *)ifr.ifr_ifru.ifru_hwaddr.sa_data, sizeof(ifr.ifr_ifru.ifru_hwaddr.sa_data)); if (sz < 0) goto err; off += sz; ret = off; err: if (fd >= 0) close(fd); return ret; } /************************************************************ * get_sector_size * Requires: * - filedes is an open file descriptor, suitable for reading * Modifies: nothing * Returns: * sector size, or 512. ************************************************************/ int UNUSED get_sector_size(int filedes) { int rc, sector_size = 512; rc = ioctl(filedes, BLKSSZGET, §or_size); if (rc) sector_size = 512; return sector_size; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/linux.h000066400000000000000000000213651455652431600147040ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2019 Red Hat, Inc. * Copyright (C) 2001 Dell Computer Corporation */ #ifndef _EFIBOOT_LINUX_H #define _EFIBOOT_LINUX_H #include #include #include #include #include "include/efivar/efivar-types.h" #include "compiler.h" struct acpi_root_info { uint32_t acpi_hid; uint64_t acpi_uid; uint32_t acpi_cid; char *acpi_hid_str; char *acpi_uid_str; char *acpi_cid_str; }; struct pci_root_info { uint16_t pci_domain; uint8_t pci_bus; }; struct pci_dev_info { uint16_t pci_domain; uint8_t pci_bus; uint8_t pci_device; uint8_t pci_function; char *driverlink; }; struct scsi_info { uint32_t scsi_bus; uint32_t scsi_device; uint32_t scsi_target; uint64_t scsi_lun; }; struct sas_info { uint32_t scsi_bus; uint32_t scsi_device; uint32_t scsi_target; uint64_t scsi_lun; uint64_t sas_address; }; struct sata_info { uint32_t scsi_bus; uint32_t scsi_device; uint32_t scsi_target; uint64_t scsi_lun; uint32_t ata_devno; uint32_t ata_port; uint32_t ata_pmp; uint32_t ata_print_id; }; struct ata_info { uint32_t scsi_bus; uint32_t scsi_device; uint32_t scsi_target; uint64_t scsi_lun; uint32_t scsi_host; }; struct nvme_info { int32_t ctrl_id; int32_t ns_id; int has_eui; uint8_t eui[8]; }; struct nvdimm_info { efi_guid_t namespace_label; efi_guid_t nvdimm_label; }; struct emmc_info { int32_t slot_id; }; enum interface_type { unknown, isa, acpi_root, pci_root, soc_root, virtual_root, pci, network, ata, atapi, scsi, sata, sas, usb, i1394, fibre, i2o, md, virtblk, nvme, nd_pmem, emmc, }; struct dev_probe; struct device { enum interface_type interface_type; uint32_t flags; char *link; char *device; char *driver; struct dev_probe **probes; unsigned int n_probes; union { struct { struct stat stat; unsigned int controllernum; unsigned int disknum; int part; uint64_t major; uint32_t minor; uint32_t edd10_devicenum; char *disk_name; char *part_name; struct acpi_root_info acpi_root; struct pci_root_info pci_root; unsigned int n_pci_devs; struct pci_dev_info *pci_dev; union { struct scsi_info scsi_info; struct sas_info sas_info; struct sata_info sata_info; struct ata_info ata_info; struct nvme_info nvme_info; struct emmc_info emmc_info; struct nvdimm_info nvdimm_info; }; }; char *ifname; }; }; extern struct device HIDDEN *device_get(int fd, int partition); extern void HIDDEN device_free(struct device *dev); extern int HIDDEN set_disk_and_part_name(struct device *dev); extern int HIDDEN set_part(struct device *dev, int value); extern int HIDDEN set_part_name(struct device *dev, const char * const fmt, ...); extern int HIDDEN set_disk_name(struct device *dev, const char * const fmt, ...); extern bool HIDDEN is_pata(struct device *dev); extern int HIDDEN make_blockdev_path(uint8_t *buf, ssize_t size, struct device *dev); extern int HIDDEN parse_acpi_hid_uid(struct device *dev, const char *fmt, ...); extern int HIDDEN eb_nvme_ns_id(int fd, uint32_t *ns_id); int HIDDEN get_sector_size(int filedes); extern int HIDDEN find_parent_devpath(const char * const child, char **parent); extern ssize_t HIDDEN make_mac_path(uint8_t *buf, ssize_t size, const char * const ifname); #define read_sysfs_file(buf, fmt, args...) \ ({ \ uint8_t *buf_ = NULL; \ ssize_t bufsize_ = -1; \ int error_; \ \ bufsize_ = get_file(&buf_, "/sys/" fmt, ## args); \ if (bufsize_ > 0) { \ uint8_t *buf2_ = alloca(bufsize_); \ error_ = errno; \ if (buf2_) \ memcpy(buf2_, buf_, bufsize_); \ free(buf_); \ *(buf) = (__typeof__(*(buf)))buf2_; \ errno = error_; \ } else if (buf_) { \ /* covscan is _sure_ we leak buf_ if bufsize_ */\ /* is <= 0, which is wrong, but appease it. */\ free(buf_); \ buf_ = NULL; \ } \ bufsize_; \ }) #define sysfs_readlink(linkbuf, fmt, args...) \ ({ \ char *_lb = alloca(PATH_MAX+1); \ char *_pn; \ int _rc; \ \ *(linkbuf) = NULL; \ _rc = asprintfa(&_pn, "/sys/" fmt, ## args); \ if (_rc >= 0) { \ ssize_t _linksz; \ _rc = _linksz = readlink(_pn, _lb, PATH_MAX); \ if (_linksz >= 0) \ _lb[_linksz] = '\0'; \ else \ efi_error("readlink of %s failed", _pn);\ *(linkbuf) = _lb; \ } else { \ efi_error("could not allocate memory"); \ } \ _rc; \ }) #define sysfs_access(mode, fmt, args...) \ ({ \ int rc_; \ char *pn_; \ \ rc_ = asprintfa(&pn_, "/sys/" fmt, ## args); \ if (rc_ >= 0) { \ rc_ = access(pn_, mode); \ if (rc_ < 0) \ efi_error("could not access %s", pn_); \ } else { \ efi_error("could not allocate memory"); \ } \ rc_; \ }) #define sysfs_stat(statbuf, fmt, args...) \ ({ \ int rc_; \ char *pn_; \ \ rc_ = asprintfa(&pn_, "/sys/" fmt, ## args); \ if (rc_ >= 0) { \ rc_ = stat(pn_, statbuf); \ if (rc_ < 0) \ efi_error("could not stat %s", pn_); \ } else { \ efi_error("could not allocate memory"); \ } \ rc_; \ }) #define sysfs_opendir(fmt, args...) \ ({ \ int rc_; \ char *pn_; \ DIR *dir_ = NULL; \ \ rc_ = asprintfa(&pn_, "/sys/" fmt, ## args); \ if (rc_ >= 0) { \ dir_ = opendir(pn_); \ if (dir_ == NULL) \ efi_error("could not open %s", pn_); \ } else { \ efi_error("could not allocate memory"); \ } \ dir_; \ }) /* * Iterate a /sys/block directory looking for device/foo, device/device/foo, * etc. I'm not proud of this method. */ #define find_device_file(result, name, fmt, args...) \ ({ \ int rc_ = 0; \ debug("searching for %s from in %s", name, dev->disk_name); \ for (unsigned int try_ = 0; true; try_++) { \ char *slashdev_; \ \ slashdev_ = alloca(sizeof("device") \ + try_ * strlen("/device")); \ if (!slashdev_) { \ rc_ = -1; \ efi_error("cannot allocate memory: %m"); \ goto find_device_link_err_; \ } \ \ char *nul_ = stpcpy(slashdev_, "device"); \ for (unsigned int i_ = 0; i_ < try_; i_++) \ nul_ = stpcpy(nul_, "/device"); \ \ debug("trying /sys/" fmt "/%s/%s", \ ## args, slashdev_, name); \ \ rc_ = sysfs_access(F_OK, fmt "/%s", ## args, slashdev_);\ if (rc_ < 0) { \ if (errno == ENOENT) { \ efi_error_pop(); \ break; \ } \ efi_error("cannot access /sys/"fmt"/%s: %m", \ ## args, slashdev_); \ goto find_device_link_err_; \ } \ \ rc_ = sysfs_access(F_OK, fmt "/%s/%s", \ ## args, slashdev_, name); \ if (rc_ < 0) { \ if (errno == ENOENT) { \ efi_error_pop(); \ break; \ } \ efi_error("cannot access /sys/"fmt"/%s/%s: %m", \ ## args, slashdev_, name); \ goto find_device_link_err_; \ } \ \ rc_ = asprintfa(result, fmt "/%s/%s", \ ## args, slashdev_, name); \ if (rc_ < 0) { \ efi_error("cannot allocate memory: %m"); \ goto find_device_link_err_; \ } \ } \ find_device_link_err_: \ rc_; \ }) #define DEV_PROVIDES_ROOT 1 #define DEV_PROVIDES_HD 2 #define DEV_ABBREV_ONLY 4 struct dev_probe { char *name; enum interface_type *iftypes; uint32_t flags; ssize_t (*parse)(struct device *dev, const char * const current, const char * const root); ssize_t (*create)(struct device *dev, uint8_t *buf, ssize_t size, ssize_t off); char *(*make_part_name)(struct device *dev); }; extern ssize_t parse_scsi_link(const char *current, uint32_t *host, uint32_t *bus, uint32_t *device, uint32_t *target, uint64_t *lun, uint32_t *local_port_id, uint32_t *remote_port_id, uint32_t *remote_target_id); /* device support implementations */ extern struct dev_probe pmem_parser; extern struct dev_probe pci_root_parser; extern struct dev_probe acpi_root_parser; extern struct dev_probe soc_root_parser; extern struct dev_probe virtual_root_parser; extern struct dev_probe pci_parser; extern struct dev_probe sas_parser; extern struct dev_probe sata_parser; extern struct dev_probe nvme_parser; extern struct dev_probe virtblk_parser; extern struct dev_probe i2o_parser; extern struct dev_probe scsi_parser; extern struct dev_probe ata_parser; extern struct dev_probe emmc_parser; #endif /* _EFIBOOT_LINUX_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/list.h000066400000000000000000000072711455652431600145200ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * list.h - simple list primitives */ #ifndef LIST_H_ #define LIST_H_ #include #define container_of(ptr, type, member) \ ({ \ void *__mptr = (void *)(ptr); \ ((type *)(__mptr - offsetof(type, member))); \ }) struct list_head { struct list_head *next; struct list_head *prev; }; typedef struct list_head list_t; #define LIST_HEAD_INIT(name) \ { \ .next = &(name), .prev = &(name) \ } #define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(name) #define INIT_LIST_HEAD(ptr) \ ({ \ (ptr)->next = (ptr); \ (ptr)->prev = (ptr); \ }) static inline int __attribute__((__unused__)) list_empty(const struct list_head *head) { return head->next == head; } static inline void __list_add(struct list_head *new, struct list_head *prev, struct list_head *next) { next->prev = new; new->next = next; new->prev = prev; prev->next = new; } static inline void list_add(struct list_head *new, struct list_head *head) { __list_add(new, head, head->next); } static inline void __attribute__((__unused__)) list_add_tail(struct list_head *new, struct list_head *head) { __list_add(new, head->prev, head); } static inline void __list_del(struct list_head *prev, struct list_head *next) { next->prev = prev; prev->next = next; } static inline void __list_del_entry(struct list_head *entry) { __list_del(entry->prev, entry->next); } static inline void __attribute__((__unused__)) list_del(struct list_head *entry) { __list_del_entry(entry); entry->next = NULL; entry->prev = NULL; } #define list_entry(ptr, type, member) container_of(ptr, type, member) #define list_first_entry(ptr, type, member) \ list_entry((ptr)->next, type, member) #define list_last_entry(ptr, type, member) list_entry((ptr)->prev, type, member) #define list_for_each(pos, head) \ for (pos = (head)->next; pos != (head); pos = pos->next) #define list_for_each_safe(pos, n, head) \ for (pos = (head)->next, n = pos->next; pos != (head); \ pos = n, n = pos->next) #define list_for_each_prev(pos, head) \ for (pos = (head)->prev; pos != (head); pos = pos->prev) #define list_for_each_prev_safe(pos, n, head) \ for (pos = (head)->prev, n = pos->prev; pos != (head); \ pos = n, n = pos->prev) static inline size_t list_size(struct list_head *entry) { list_t *pos; size_t i = 0; list_for_each(pos, entry) { i++; } return i; } /* * Sort a list with cmp() * creates a temporary array on the heap */ static inline int __attribute__((__unused__)) list_sort(struct list_head *head, int (*cmp)(const void *a, const void *b, void *state), void *state) { struct list_head **array = NULL, *pos; size_t nmemb, i = 0; nmemb = list_size(head); array = calloc(nmemb, sizeof (head)); if (!array) return -1; list_for_each(pos, head) { /* * clang-analyzer can't quite figure out that this iterator * is limited by the same expression as list_size() is * using, so it complains that this is eventually accessing * uninitialized memory. This check below accomplishes * nothing, it's effectively i < nmemb, but done with * pointers. */ char *ptr = (char *)&array[i]; char *end = (char *)&array[nmemb]; if (ptr >= end) break; array[i++] = pos; } qsort_r(array, nmemb, sizeof(*array), cmp, state); INIT_LIST_HEAD(head); for (i = 0; i < nmemb; i++) { INIT_LIST_HEAD(array[i]); list_add(array[i], head); head = head->next; } free(array); return 0; } #endif /* !LIST_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/loadopt.c000066400000000000000000000167041455652431600152030ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefiboot - library for the manipulation of EFI boot variables * Copyright 2012-2015 Red Hat, Inc. * Copyright (C) 2001 Dell Computer Corporation */ #include "fix_coverity.h" #include #include "efiboot.h" #include "include/efivar/efiboot-loadopt.h" #include "util.h" #include "hexdump.h" typedef struct efi_load_option_s { uint32_t attributes; uint16_t file_path_list_length; uint16_t description[]; // uint8_t file_path_list[]; // uint8_t optional_data[]; } PACKED efi_load_option; ssize_t NONNULL(6) PUBLIC efi_loadopt_create(uint8_t *buf, ssize_t size, uint32_t attributes, efidp dp, ssize_t dp_size, unsigned char *description, uint8_t *optional_data, size_t optional_data_size) { ssize_t desc_len = utf8len((uint8_t *)description, 1024) * 2 + 2; ssize_t sz = sizeof (attributes) + sizeof (uint16_t) + desc_len + dp_size + optional_data_size; debug("entry buf:%p size:%zd dp:%p dp_size:%zd", buf, size, dp, dp_size); if (size == 0) return sz; if (size < sz) { errno = ENOSPC; return -1; } debug("testing buf"); if (!buf) { invalid: errno = EINVAL; return -1; } debug("testing optional data presence"); if (!optional_data && optional_data_size != 0) goto invalid; debug("testing dp presence"); if ((!dp && dp_size == 0) || dp_size < 0) goto invalid; if (dp) { debug("testing dp validity"); if (!efidp_is_valid(dp, dp_size)) { if (efi_get_verbose() >= 1) hexdump((void *)dp, dp_size); goto invalid; } debug("testing dp size: dp_size:%zd efidp_size(dp):%zd", dp_size, efidp_size(dp)); if (efidp_size(dp) != dp_size) { if (efi_get_verbose() >= 1) hexdump((void *)dp, dp_size); goto invalid; } } if (buf) { uint8_t *pos = buf; *(uint32_t *)pos = attributes; pos += sizeof (attributes); *(uint16_t *)pos = dp_size; pos += sizeof (uint16_t); utf8_to_ucs2((uint16_t *)pos, desc_len, 1, (uint8_t *)description); pos += desc_len; if (dp) memcpy(pos, dp, dp_size); pos += dp_size; if (optional_data && optional_data_size > 0) memcpy(pos, optional_data, optional_data_size); } return sz; } ssize_t NONNULL(1) PUBLIC efi_loadopt_optional_data_size(efi_load_option *opt, size_t size) { ssize_t sz; ssize_t ret; uint8_t *p; ret = size; if (ret < (ssize_t)sizeof(*opt)) { efi_error("load option size is too small for header (%zd/%zd)", ret, sizeof(*opt)); return -1; } ret -= sizeof(*opt); if (ret < opt->file_path_list_length) { efi_error("load option size is too small for path (%zd/%d)", size, opt->file_path_list_length); return -1; } ret -= opt->file_path_list_length; if (ret < 0) { efi_error("leftover size is negative (%zd)", ret); return -1; } /* "size" as the limit means sz will be size or less in all cases; no * need to test it. if it /is/ size, there's no optional data. */ sz = ucs2size(opt->description, ret); p = (uint8_t *)(opt->description) + sz; ret -= sz; if (ret < 0) { efi_error("leftover size is negative (%zd)", ret); return -1; } if (!efidp_is_valid((const_efidp)p, opt->file_path_list_length)) { efi_error("efi device path is not valid"); return -1; } for (sz = 0; sz < opt->file_path_list_length; sz += efidp_size((const_efidp)(p + sz))) ; if (sz != opt->file_path_list_length) { efi_error("size does not match file path size (%zd/%d)", sz, opt->file_path_list_length); return -1; } return ret; } int NONNULL(1) PUBLIC efi_loadopt_is_valid(efi_load_option *opt, size_t size) { ssize_t rc; rc = efi_loadopt_optional_data_size(opt, size); return (rc >= 0); } uint32_t NONNULL(1) PUBLIC efi_loadopt_attrs(efi_load_option *opt) { return opt->attributes; } void NONNULL(1) PUBLIC efi_loadopt_attr_set(efi_load_option *opt, uint16_t attr) { opt->attributes |= attr; } void NONNULL(1) PUBLIC efi_loadopt_attr_clear(efi_load_option *opt, uint16_t attr) { opt->attributes &= ~attr; } uint16_t NONNULL(1) PUBLIC /* limit here is the /whole/ load option */ efi_loadopt_pathlen(efi_load_option *opt, ssize_t limit) { uint16_t len = opt->file_path_list_length; if (limit >= 0) { if (len > limit) return 0; if (limit - offsetof(efi_load_option, file_path_list_length) < len) return 0; } return len; } efidp NONNULL(1) PUBLIC /* limit here is the /whole/ load option */ efi_loadopt_path(efi_load_option *opt, ssize_t limit) { char *p = (char *)opt; size_t sz; size_t left; efidp dp; left = (size_t)limit; if (left <= offsetof(efi_load_option, description)) return NULL; left -= offsetof(efi_load_option, description); p += offsetof(efi_load_option, description); sz = ucs2size(opt->description, left); if (sz >= left) // since there's no room for a file path... return NULL; p += sz; left -= sz; if (left < opt->file_path_list_length) return NULL; dp = (efidp)p; if (!efidp_is_valid(dp, opt->file_path_list_length)) return NULL; return dp; } int NONNULL(1,3) PUBLIC efi_loadopt_optional_data(efi_load_option *opt, size_t opt_size, unsigned char **datap, size_t *len) { unsigned char *p = (unsigned char *)opt; size_t l = sizeof (opt->attributes) + sizeof (opt->file_path_list_length); size_t ul; if (l > opt_size) { over_limit: *len = 0; errno = EINVAL; return -1; } ul = ucs2size(opt->description, opt_size - l); if (opt->file_path_list_length > opt_size) goto over_limit; if (ul > opt_size) goto over_limit; if (opt_size - ul < opt->file_path_list_length) goto over_limit; l += ul + opt->file_path_list_length; if (l > opt_size) goto over_limit; *datap = (unsigned char *)(p + l); if (len && opt_size > 0) *len = (p+opt_size) - *datap; return 0; } ssize_t NONNULL(3) PUBLIC efi_loadopt_args_from_file(uint8_t *buf, ssize_t size, char *filename) { int rc; ssize_t ret = -1; struct stat statbuf = { 0, }; int saved_errno; FILE *f; if (!buf && size != 0) { errno = -EINVAL; return -1; } f = fopen(filename, "r"); if (!f) return -1; rc = fstat(fileno(f), &statbuf); if (rc < 0) goto err; if (size == 0) { fclose(f); return statbuf.st_size; } if (size < statbuf.st_size) { errno = ENOSPC; goto err; } ret = fread(buf, 1, statbuf.st_size, f); if (ret < statbuf.st_size) ret = -1; err: saved_errno = errno; if (f) fclose(f); errno = saved_errno; return ret; } ssize_t NONNULL(3) PUBLIC efi_loadopt_args_as_utf8(uint8_t *buf, ssize_t size, uint8_t *utf8) { ssize_t req; if (!buf && size != 0) { errno = EINVAL; return -1; } /* we specifically want the storage size without NUL here, * not the size with NUL or the number of utf8 characters */ req = strlen((char *)utf8); if (size == 0) return req; if (size < req) { errno = ENOSPC; return -1; } memcpy(buf, utf8, req); return req; } ssize_t NONNULL(3) PUBLIC efi_loadopt_args_as_ucs2(uint16_t *buf, ssize_t size, uint8_t *utf8) { ssize_t req; if (!buf && size > 0) { errno = EINVAL; return -1; } req = utf8len(utf8, -1) * sizeof(uint16_t); if (size == 0) return req; if (size < req) { errno = ENOSPC; return -1; } return utf8_to_ucs2(buf, size, 0, utf8); } static unsigned char *last_desc; static void DESTRUCTOR teardown(void) { if (last_desc) free(last_desc); last_desc = NULL; } const unsigned char NONNULL(1) PUBLIC * efi_loadopt_desc(efi_load_option *opt, ssize_t limit) { if (last_desc) { free(last_desc); last_desc = NULL; } last_desc = ucs2_to_utf8(opt->description, limit); return last_desc; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/makeguids.c000066400000000000000000000212711455652431600155050ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2013 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include "efivar.h" #include "guid.h" #pragma GCC diagnostic ignored "-Wunused-parameter" efi_guid_t const efi_guid_zero = {0}; efi_guid_t const efi_guid_empty = {0}; static int cmpguidp(const void *p1, const void *p2) { struct efivar_guidname *gn1 = (struct efivar_guidname *)p1; struct efivar_guidname *gn2 = (struct efivar_guidname *)p2; return efi_guid_cmp_(&gn1->guid, &gn2->guid); } static int cmpnamep(const void *p1, const void *p2) { struct efivar_guidname *gn1 = (struct efivar_guidname *)p1; struct efivar_guidname *gn2 = (struct efivar_guidname *)p2; return strncmp(gn1->name, gn2->name, sizeof(gn1->name)); } struct guid_aliases { char *name; char *alias; }; static struct guid_aliases guid_aliases[] = { { "efi_guid_empty", "efi_guid_zero" }, { "efi_guid_redhat_2", "efi_guid_redhat" }, { NULL, NULL } }; static void make_aliases(FILE *symout, FILE *header, const char *alias, const efi_guid_t *guid) { for (unsigned int i = 0; guid_aliases[i].name != NULL; i++) { if (!strcmp(guid_aliases[i].alias, alias)) { fprintf(symout, "\nconst efi_guid_t\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t%s = {cpu_to_le32(0x%08x),cpu_to_le16(0x%04hx)," "cpu_to_le16(0x%04hx),cpu_to_be16(0x%02hhx%02hhx)," "{0x%02hhx,0x%02hhx,0x%02hhx,0x%02hhx,0x%02hhx,0x%02hhx}};\n\n", guid_aliases[i].name, guid->a, guid->b, guid->c, (uint8_t)(guid->d & 0xff), (uint8_t)((guid->d & 0xff00) >> 8), guid->e[0], guid->e[1], guid->e[2], guid->e[3], guid->e[4], guid->e[5]); fprintf(header, "extern const efi_guid_t %s __attribute__((__visibility__ (\"default\")));\n", guid_aliases[i].name); } } } static void write_guidnames(FILE *out, const char *listname, struct efivar_guidname *guidnames, size_t n, const char *symver) { size_t i; fprintf(out, "const struct efivar_guidname\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t%s_[%zd]= {\n", listname, n); for (i = 0; i < n; i++) { struct efivar_guidname *gn = &guidnames[i]; fprintf(out, "\t\t{.guid={.a=cpu_to_le32(%#x),\n" "\t\t .b=cpu_to_le16(%#x),\n" "\t\t .c=cpu_to_le16(%#x),\n" "\t\t .d=cpu_to_be16(0x%02hhx%02hhx),\n" "\t\t .e={%#x,%#x,%#x,%#x,%#x,%#x}},\n" "\t\t .symbol=\"%s\",\n" "\t\t .name=\"%s\",\n" "\t\t .description=\"%s\",\n" "\t\t},\n", gn->guid.a, gn->guid.b, gn->guid.c, (uint8_t)(gn->guid.d & 0xff), (uint8_t)((gn->guid.d & 0xff00) >> 8), gn->guid.e[0], gn->guid.e[1], gn->guid.e[2], gn->guid.e[3], gn->guid.e[4], gn->guid.e[5], gn->symbol, gn->name, gn->description); } fprintf(out, "};\n"); fprintf(out, "const struct efivar_guidname\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t* const %s = %s_;\n", listname, listname); fprintf(out, "const struct efivar_guidname\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t* const %s_end = %s_\n\t+ %zd;\n", listname, listname, n - 1); } int main(int argc, char *argv[]) { int rc; FILE *symout, *header; if (argc < 4) { errx(1, "Not enough arguments.\n"); } else if (argc > 4) { errx(1, "Too many arguments.\n"); } symout = fopen(argv[2], "w"); if (symout == NULL) err(1, "could not open \"%s\"", argv[2]); rc = chmod(argv[2], 0644); if (rc < 0) warn("chmod(%s, 0644)", argv[2]); header = fopen(argv[3], "w"); if (header == NULL) err(1, "could not open \"%s\"", argv[3]); rc = chmod(argv[3], 0644); if (rc < 0) warn("chmod(%s, 0644)", argv[3]); struct guidname_index *guidnames = NULL; rc = read_guids_at(AT_FDCWD, argv[1], &guidnames); if (rc < 0) err(1, "could not read \"%s\"", argv[1]); struct efivar_guidname *outbuf; outbuf = calloc(guidnames->nguids, sizeof(struct efivar_guidname)); if (!outbuf) err(1, "could not allocate memory"); unsigned int line = guidnames->nguids; char *strtab = guidnames->strtab; fprintf(header, "#ifndef EFIVAR_GUIDS_H\n#define EFIVAR_GUIDS_H 1\n\n"); fprintf(header, "\ #ifdef __cplusplus\n\ extern \"C\" {\n\ #endif\n"); fprintf(header, "\n\ struct efivar_guidname {\n\ efi_guid_t guid;\n\ char symbol[256];\n\ char name[256];\n\ char description[256];\n\ } __attribute__((__aligned__(16)));\n\n"); fprintf(symout, "#ifndef EFIVAR_BUILD_ENVIRONMENT\n"); fprintf(symout, "#define EFIVAR_BUILD_ENVIRONMENT\n"); fprintf(symout, "#endif /* EFIVAR_BUILD_ENVIRONMENT */\n\n"); fprintf(symout, "#include \"fix_coverity.h\"\n"); fprintf(symout, "#include \n"); fprintf(symout, "#include \n"); fprintf(symout, "\n\ #if BYTE_ORDER == BIG_ENDIAN\n\ #define cpu_to_be32(n) (n)\n\ #define cpu_to_be16(n) (n)\n\ #define cpu_to_le32(n) (__builtin_bswap32(n))\n\ #define cpu_to_le16(n) (__builtin_bswap16(n))\n\ #else\n\ #define cpu_to_le32(n) (n)\n\ #define cpu_to_le16(n) (n)\n\ #define cpu_to_be32(n) (__builtin_bswap32(n))\n\ #define cpu_to_be16(n) (__builtin_bswap16(n))\n\ #endif\n\ """); unsigned int i; for (i = 0; i < line; i++) { struct guidname_offset *gno = &guidnames->offsets[i]; char *sym = &strtab[gno->symoff]; char *name = &strtab[gno->nameoff]; char *desc = &strtab[gno->descoff]; make_aliases(symout, header, sym, &gno->guid); size_t sz; outbuf[i].guid = gno->guid; sz = sizeof(outbuf[i].symbol); strncpy(outbuf[i].symbol, sym, sz); outbuf[i].symbol[sz - 1] = '\0'; sz = sizeof(outbuf[i].name); strncpy(outbuf[i].name, name, sz); outbuf[i].name[sz - 1] = '\0'; sz = sizeof(outbuf[i].description); strncpy(outbuf[i].description, desc, sz); outbuf[i].description[sz - 1] = '\0'; if (!strcmp(sym, "efi_guid_zzignore-this-guid")) break; fprintf(header, "extern const efi_guid_t %s __attribute__((__visibility__ (\"default\")));\n", sym); fprintf(symout, "const efi_guid_t\n" "__attribute__((__visibility__ (\"default\")))\n" "\t%s = {cpu_to_le32(0x%08x),cpu_to_le16(0x%04hx)," "cpu_to_le16(0x%04hx),cpu_to_be16(0x%02hhx%02hhx)," "{0x%02hhx,0x%02hhx,0x%02hhx,0x%02hhx,0x%02hhx,0x%02hhx}};\n\n", sym, gno->guid.a, gno->guid.b, gno->guid.c, (uint8_t)(gno->guid.d & 0xff), (uint8_t)((gno->guid.d & 0xff00) >> 8), gno->guid.e[0], gno->guid.e[1], gno->guid.e[2], gno->guid.e[3], gno->guid.e[4], gno->guid.e[5]); } fprintf(header, "\n"); fprintf(header, "#ifndef EFIVAR_BUILD_ENVIRONMENT\n\n"); fprintf(header, "extern const struct efivar_guidname\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t* const efi_well_known_guids;\n"); fprintf(header, "extern const struct efivar_guidname\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t* const efi_well_known_guids_end;\n"); fprintf(header, "extern const uint64_t\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\tefi_n_well_known_guids;\n\n"); fprintf(header, "extern const struct efivar_guidname\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t* const efi_well_known_names;\n"); fprintf(header, "extern const struct efivar_guidname\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\t* const efi_well_known_names_end;\n"); fprintf(header, "extern const uint64_t\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\tefi_n_well_known_names;\n\n"); fprintf(header, "#endif /* EFIVAR_BUILD_ENVIRONMENT */\n"); /* * These are intentionally off by one, omitting: * ffffffff-ffff-ffff-ffff-ffffffffffff zzignore-this-guid zzignore-this-guid */ fprintf(symout, "const uint64_t\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\tefi_n_well_known_guids = %u;\n", i); fprintf(symout, "const uint64_t\n" "\t__attribute__((__visibility__ (\"default\")))\n" "\tefi_n_well_known_names = %u;\n\n", i); /* * Emit the end from here as well. */ fprintf(header, "\n\ #ifdef __cplusplus\n\ } /* extern \"C\" */\n\ #endif\n"); fprintf(header, "\n#endif /* EFIVAR_GUIDS_H */\n"); fclose(header); fprintf(symout, "struct efivar_guidname {\n" "\tefi_guid_t guid;\n" "\tchar symbol[256];\n" "\tchar name[256];\n" "\tchar description[256];\n" "} __attribute__((__aligned__(16)));\n\n"); qsort(outbuf, line, sizeof(struct efivar_guidname), cmpguidp); write_guidnames(symout, "efi_well_known_guids", outbuf, line, "libefivar.so.0"); qsort(outbuf, line, sizeof(struct efivar_guidname), cmpnamep); write_guidnames(symout, "efi_well_known_names", outbuf, line, "LIBEFIVAR_1.38"); fclose(symout); free(guidnames->strtab); free(guidnames); return 0; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/makeguids.h000066400000000000000000000145571455652431600155230ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * makeguids.h - stuff makeguids needs that we also need at runtime * Copyright Peter Jones */ #ifndef EFIVAR_MAKEGUIDS_H_ #define EFIVAR_MAKEGUIDS_H_ #include #include #include #include #include "compiler.h" #include "guid.h" #include "util.h" struct guidname_offset { efi_guid_t guid; off_t nameoff; off_t symoff; off_t descoff; }; struct guidname_index { union { struct { char *strtab; size_t strsz; size_t nguids; }; struct guidname_offset pad[1]; }; struct guidname_offset offsets[]; }; static int gnopguidcmp(const void *p1, const void *p2, void *ctxp UNUSED) { struct guidname_offset *gno1 = (struct guidname_offset *)p1; struct guidname_offset *gno2 = (struct guidname_offset *)p2; return efi_guid_cmp_(&gno1->guid, &gno2->guid); } static inline int __attribute__((__unused__)) read_guids_at(const int dirfd, const char * const path, struct guidname_index **guidnamesp) { int fd = -1; char *buf = NULL; size_t bufsz = 0; int errnum; int rc = -1; struct guidname_offset *guids = NULL; char *strtab = NULL; if ((dirfd < 0 && !(dirfd & AT_FDCWD)) || path == NULL || (path[0] == '\0' && !(dirfd & AT_EMPTY_PATH)) || guidnamesp == NULL) { errno = EINVAL; return -1; } fd = openat(dirfd, path, O_RDONLY|O_CLOEXEC); if (fd < 0) return fd; rc = read_file(fd, (uint8_t **)&buf, &bufsz); errnum = errno; close(fd); if (rc < 0) { errno = errnum; return -1; } /* * okay, so here's how we're doing this: * * 1) make an allocation that's big enough for one offset table. * The offset data takes up: * * bufsz * - nguids * (sizeof(efi_guid_t) * 2 + sizeof('-') * 4 * + sizeof('\t') + strlen(label) * + sizeof('\t') + strlen(desc) * + sizeof('\n')) * + nguids * (sizeof(efi_guid_t) + sizeof(off_t) * 2) * * which on a an ILP64 machine (the biggest case) means * * bufsz * - nguids * (36 + 2 + 2 + 1) * + nguids * (16 + 16) * * so for nguids = {1..N} entries that's * * bufsz - 1 * 41 + 1 * 32 == bufsz - 41 + 32 == bufsz - 9 * bufsz - 2 * 41 + 2 * 32 == bufsz - 82 + 64 == bufsz - 18 * etc * * There may be one fewer newline at the end but we've added a * '\0' to be sure, so bufsz is almost big enough. And of * course if the strings or whitespace are bigger we reclaim * space even faster. So bufsz will do just fine. * * 2) make an allocation that is sure to be big enough for all the * string data we save. In practice this is * * nguids * (strlen(name) + sizeof('\0') * + strlen(name) + sizeof("efi_guid_")) * * but we don't know nguids yet, but we know the maximum nguids * is: * * bufsz / (sizeof(efi_guid_t) * 2 + sizeof('-') * 4 * + sizeof('\t') + strlen(name) * + sizeof('\t') + strlen(desc) * + sizeof('\n')) * * which in the largest valid case, where strlen(name) == 1 and * strlen(desc) == 1, is * * bufsz / (16 + 2 + 4 + 1 + 1 + 1 + 1 + 1) * * and so the maximum number of entries is bufsz/27, and the * most storage we can need is * * (bufsz / 27) * (strlen(name) + sizeof('\0') * + strlen(name) + sizeof("efi_guid_")) * === * (bufsz / 27) * (1 + 1 + 1 + + 1) * === * (bufsz / 27) * 15 * * which is to say it's a bit over half the size of the input * data. I'm just going to use bufsz. * * 3) do one pass across buf, copying strings to strtab and building * guids in place * * 4) move the first entry to the end of guids * * 5) store a struct strtab in the first position * * 6) realloc guids and strtab down to size * * 8) sort guids[1:n] * * 9) set guidnames = guids * */ /* * pad (at least) one NUL char at the end. */ char *nbuf = realloc(buf, ALIGN_UP((bufsz+1), page_size)); if (!nbuf) { efi_error("Could not realloc guid file buffer"); goto err; } buf = nbuf; buf[bufsz] = '\0'; guids = calloc(1, ALIGN_UP(bufsz, page_size)); if (!guids) goto err; strtab = calloc(1, ALIGN_UP(bufsz, page_size)); if (!strtab) goto err; size_t bpos = 0, spos = 0, nguids = 0; for (; bpos < bufsz && buf[bpos] != 0; nguids++) { struct guidname_offset *gno = &guids[nguids]; char guidstr[37]; char *symbol = strchr(&buf[bpos], '\t'); if (symbol == NULL) { efi_error("invalid guid string data on line %zd", nguids); goto err; } *symbol = '\0'; symbol += 1; strncpy(guidstr, &buf[bpos], 37); guidstr[36] = '\0'; char *desc = strchrnul(symbol, '\t'); if (*desc != '\0') { *desc = '\0'; desc += 1; } char *end = strchrnul(desc, '\n'); *end = '\0'; efi_guid_t guid; rc = efi_str_to_guid_(guidstr, &guid); if (rc < 0) { efi_error("unparsable guid on line %zd", nguids); goto err; } char *s = &strtab[spos]; off_t nameoff, symoff, descoff; nameoff = s - strtab; s = stpcpy(s, symbol); *(s++) = '\0'; symoff = s - strtab; s = stpcpy(s, "efi_guid_"); s = stpcpy(s, symbol); *(s++) = '\0'; descoff = s - strtab; s = stpcpy(s, desc); *(s++) = '\0'; spos = s - strtab; gno->guid = guid; gno->nameoff = nameoff; gno->symoff = symoff; gno->descoff = descoff; bpos = end - buf + 1; } if (spos == 0) { efi_error("guid table produced no strings"); goto err; } char *newstrtab = realloc(strtab, ALIGN_UP(spos, page_size)); if (!newstrtab) { efi_error("could not realloc strtab for guid table"); goto err; } strtab = newstrtab; struct guidname_offset *newguids; newguids = realloc(guids, ALIGN_UP((1+nguids) * sizeof(newguids[0]), page_size)); if (!newguids) { efi_error("could not realloc guidnames table"); goto err; } guids = newguids; memcpy(&guids[nguids], &guids[0], sizeof(guids[0])); struct guidname_index *guidnames; guidnames = (struct guidname_index *)guids; guidnames->strtab = strtab; guidnames->nguids = nguids; guidnames->strsz = spos; qsort_r(&guidnames->offsets[0], nguids, sizeof(struct guidname_offset), gnopguidcmp, guidnames); *guidnamesp = guidnames; xfree(buf); return 0; err: xfree(strtab); xfree(guids); xfree(buf); return rc; } #endif /* !EFIVAR_MAKEGUIDS_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/path-helpers.c000066400000000000000000000071631455652431600161340ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * path-helper.c * Copyright 2018 Peter Jones */ #include "fix_coverity.h" #include "efivar.h" static bool cinpat(const char c, const char *pat) { for (unsigned int i = 0; pat[i]; i++) if (pat[i] == c) return true; return false; } static unsigned int strxcspn(const char *s, const char *pattern) { unsigned int i; for (i = 0; s[i]; i++) { if (!cinpat(s[i], pattern)) break; } return i; } struct span { const char *pos; size_t len; }; /* * count how many parts of a path there are, with some caveats: * a leading / is one because it's a directory, but all other slashes are * treated as separators, so i.e.: * 1: / * 2: /foo foo/bar foo/bar/ * 3: /foo/bar /foo/bar/ foo/bar/baz * * the usage model here is 1 pass to count, one allocation, one pass to * separate. */ unsigned int HIDDEN count_spans(const char *str, const char *reject, unsigned int *chars) { unsigned int s = 0, c = 0, pos = 0; if (str[0] == '/') { s += 1; c += 2; pos += 1; } while (str[pos]) { unsigned int n; n = strcspn(str + pos, reject); if (n) { s += 1; c += n + 1; pos += n; } pos += strxcspn(str + pos, reject); } if (chars) *chars = c; return s; } void HIDDEN fill_spans(const char *str, const char *reject, void *spanbuf) { struct span *spans = (struct span *)spanbuf; struct span *span = spans; unsigned int pos = 0; if (str[0] == '/') { span->pos = str; span->len = 1; span++; pos += 1; } while (str[pos]) { unsigned int n; n = strcspn(str + pos, reject); if (n) { span->pos = str + pos; span->len = n; span++; pos += n; } pos += strxcspn(str + pos, reject); } span->pos = NULL; span->len = 0; } #define split_spans(str, reject) \ ({ \ struct span *ret_ = NULL; \ unsigned int s_, c_; \ \ s_ = count_spans(str, "/", &c_); \ if (s_) { \ ret_ = alloca(sizeof(struct span[s_+1])); \ if (ret_) \ fill_spans(str, reject, ret_); \ } else { \ errno = 0; \ } \ ret_; \ }) int HIDDEN find_path_segment(const char *path, int segment, const char **pos, size_t *len) { struct span *span, *last; int nspans = 0; if (!pos || !len) { errno = EINVAL; return -1; } span = split_spans(path, "/"); if (!span) { if (errno) return -1; *pos = NULL; *len = 0; return 0; } for (last = span; last->pos; last++) nspans += 1; if (segment < 0) segment = nspans + segment; if (nspans < 1 || segment < 0 || segment >= nspans) { errno = ENOENT; return -1; } for (int i = 0; i < segment; i++) span++; *pos = span->pos; *len = span->len; return 0; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/path-helpers.h000066400000000000000000000015741455652431600161410ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * path-helper.h * Copyright 2018 Peter Jones */ #ifndef PATH_HELPER_H_ #define PATH_HELPER_H_ void HIDDEN fill_spans(const char *str, const char *reject, void *spanbuf); unsigned int HIDDEN count_spans(const char *str, const char *reject, unsigned int *chars); int HIDDEN find_path_segment(const char *path, int segment, const char **pos, size_t *len); #define pathseg(path, seg) \ ({ \ const char *pos_ = NULL; \ char *ret_ = NULL; \ size_t len_ = 0; \ int rc_; \ \ rc_ = find_path_segment(path, seg, &pos_, &len_); \ if (rc_ >= 0) { \ ret_ = alloca(len_ + 1); \ if (ret_) { \ memcpy(ret_, pos_, len_); \ ret_[len_] = '\0'; \ } \ } \ ret_; \ }) #endif /* !PATH_HELPER_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/protocol-guids.txt000066400000000000000000000211411455652431600170770ustar00rootroot0000000000000000000000-0000-0000-0000-000000000000 zero zeroed sentinal guid 00720665-67eb-4a99-baf7-d3c33a1c7cc9 tcp4sb TCPv4 Service Binding Protocol 00ca959f-6cfa-4db1-95bc-e46c47514390 tls TLS Protocol 02e800be-8f01-4aa6-946b-d71388e1833f mtftp4sb MTFTPv4 Service Binding Protocol 03c4e603-ac28-11d3-9a2d-0090273fc14d pxe PXE Base Code Protocol 0a8badd5-03b8-4d19-b128-7b8f0edaa596 hiicfgkwd HII Config Keyword Handler Protocol 0b64aab0-5429-11d4-9816-00a0c91fadcf bis Boot Integrity Services Protocol 0da55bc9-45f8-4bb4-8719-5224f18a4d45 wmaccon Wireless Mac Connection Protocol 0db48a36-4e54-ea9c-9b09-1ea5be3a660b rest Rest Protocol 0faaecb1-226e-4782-aace-7db9bcbf4daf ftp4sb FTP 4 Service Binding Protocol 0fd96974-23aa-4cdc-b9cb-98d17750322a hiistring HII String Protocol 143b7632-b81b-4cb7-abd3-b625a5b9bffe extscsipassthru Ext SCSI Pass Thru Protocol 151c8eae-7f2c-472c-9e54-9828194f6a88 diskio2 Disk IO 2 Protocol 15853d7c-3ddf-43e0-a1cb-ebf85b8f872c deferredimg Deferred Image Load Protocol 1682fe44-bd7a-4407-b7c7-dca37ca3922d tlscfg TLS Configuration Protocol 1a1241e6-8f19-41a9-bce-e8ef-39e06546 hiiimageex HII Image Ex Protocol 1aced566-76ed-4218-bc81-767f1f977a89 netid Network Interface Identifier Protocol 1b0fb9bf-699d-4fdd-a7c3-2546681bf63b wmaccon2 Wireless Mac Connection 2 Protocol 1d3de7f0-0807-424f-aa69-11a54e19a46f atapassthru ATA Pass Thru Protocol 1e93e633-d65a-459e-ab84-93d9ec266d18 tapeio Tape IO Protocol 245dca21-fb7b-11d3-8f01-00a0c969723b pxecb PXE Base Code Callback Protocol 2755590c-6f3c-42fa-9ea4-a3ba543cda25 debug Debug Support Protocol 2a4d1adf-21dc-4b81-a42f-8b8ee2380060 smartcard Smart Card Reader Protocol 2c8759d5-5c2d-66ef-925f-b66c101957e2 ip6 IPv6 Protocol 2f707ebb-4a1a-11d4-9a38-0090273fc14d pcirootbridge PCI Root bridge IO Protocol 3152bca5-eade-433d-862e-c01cdc291f44 rng Random Number Generator Protocol 31878c87-0b75-11d5-9a4f-0090273fc14d spointer Simple Pointer Protocol 31a6406a-6bdf-4e46-b2a2-ebaa89c40920 hiiimage HII Image Protocol 330d4706-f2a0-4e4f-a369-b66fa8d54385 hiicfgaccess HII Config access Protocol 387477c1-69c7-11d2-8e39-00a0c969723b conin Simple Text Input Protocol 387477c2-69c7-11d2-8e39-00a0c969723b conout Simple Text Output Protocol 388278d3-7b85-42f0-aba9-fb4bfd69f5ab btiosb Bluetooth IO Service Binding Protocol 3ad9df29-4501-478d-b1f8-7f7fe70e50f3 udp4 UDPv4 Protocol 3b95aa31-3793-434b-8667-c8070892e05e ipv4cfg IPv4 Configuration Protocol 3e745226-9818-45b6-a2ac-d7cd0e8ba2bc usb2hc USB2 HC Protocol Guid 4006c0c1-fcb3-403e-996d-4a6c8724e06d loadfile2 Load File 2 Protocol 41d94cd2-35b6-455a-8258-d4e51334aadd ip4 IPv4 Protocol 42881c98-a4f3-44b0-a39d-dfa18667d8cd hashsb Hash Service Binding Protocol 4311edc0-6054-46d4-9e40-893ea952fccc hiipopup HII Popup Protocol 45bcd98e-59ad-4174-9546-344a07485898 supplicantsb Supplicant Service Binding Protocol 467313de-4e30-43f1-943e-323f89845db5 btio Bluetooth IO Protocol 46e44855-bd60-4ab7-ab0d-a679b9447d77 tcp6 TCPv6 Protocol 47889fb2-d671-4fab-a0ca-df0e44df70d6 pkcs7verify PKCS7 Verify Protocol 4cf5b200-68b8-4ca5-9eec-b23e3f50029a pciio PCI IO Protocol 4f948815-b4b9-43cb-8a33-90e060b34955 udp6 UDPv6 Protocol 55b1d734-c5e1-49db-9647-b16afbee305b hash2 Hash 2 Protocol 56ec3091-954c-11d2-8e3f-00a0c969723b loadfile Load File Protocol 587e72d7-cc50-4f79-8209-ca291fc1a10f hiicfgrte HII Config Routing Protocol 59324945-ec44-4c0d-b1cd-9db139df070c iscsiname iSCSI Initiator Name Protocol 5b446ed1-e30b-4faa-871a-3654eca36080 ipv4cfg2 IPv4 Configuration 2 Protocol 5d9f96db-e731-4caa-a00d-72e187cd7762 eap EAP Protocol 605dab50-e046-4300-abb6-3dd810dd8b23 shim shim Verify Protocol 62960cf3-40ff-4263-a77c-dfdebd191b4b btcfg Bluetooth Config Protocol 65530bc7-a359-410f-b010-5aadc7ec2b62 tcp4 TCPv4 Protocol 66ed4721-3c98-4d3e-81e3-d03dd39a7254 udp6sb UDPv6 Service Binding Protocol 6fd5b00c-d426-4283-9887-6cf5cf1cb1fe usrmgr User Manager Protocol 716ef0d9-ff83-4f69-81e9-518bd39a8e70 sdmmcpassthru SD MMC Pass Thru Protocol 7671d9d0-53db-4173-aa69-2327f21f0bc7 authinfo Authentication Info Protocol 78247c57-63db-4708-99c2-a8b4a9a61f6b mtftp4 MTFTPv4 Protocol 7a59b29b-910b-4171-8242-a85a0df25b5b http HTTP Protocol 7ab33a91-ace5-4326-b572-e7ee33d39f16 mnp Managed Network Protocol 7f1647c8-b76e-44b2-a565-f70ff19cd19e dns6sb DNSv6 Service Binding Protocol 83f01464-99bd-45e5-b383-af6305d8e9e6 udp4sb UDPv4 Service Binding Protocol 849e6875-db35-4df8-b41e-c8f33718073f hiifontex HII Font Ex Protocol 86c77a67-0b97-4633-a187-49104d0685c7 fmp Firmware Management Protocol 87c8bad7-0595-4053-8297-dede395f5d5b dhcp6 DHCPv6 Protocol 898890e9-84b2-4f3a-8c58-d8577813e0ac btattr Bluetooth Attribute Protocol 8a219718-4ef5-4761-91c8-c0f04bda9e56 dhcp4 DHCPv4 Protocol 8cf2f62c-bc9b-4821-808d-ec9ec421a1a0 partinfo Partition Information Protocol 8d59d32b-c655-4ae9-9b15-f25904992a43 apointer Absolute Pointer Protocol 8f76da58-1f99-4275-a4ec-4756515b1ce8 btlecfg Bluetooth LE Config Protocol 9042a9de-23dc-4a38-96fb-7aded080516a gop Graphics Output Protocol 932f47e6-2362-4002-803e-3cd54b138f85 scsiio SCSI IO Protocol 937fe521-95ae-4d1a-8929-48bcd90ad31a ip6cfg IPv6 Configuration Protocol 952cb795-ff36-48cf-a249-4df486d6ab8d tlssb TLS Service Binding Protocol 95a9a93e-a86e-4926-aaef-9918e772d987 eraseblock Erase Block Protocol 964e5b21-6459-11d2-8e39-00a0c969723b blockio Block IO Protocol 964e5b22-6459-11d2-8e39-00a0c969723b fs Simple File System Protocol 9d9a39d8-bd42-4a73-a4d5-8ee94be11380 dhcp4sb DHCPv4 Service Binding Protocol 9da34ae0-eaf9-4bbf-8ec3-fd60226c44be resetnotify Reset Notification Protocol 9e23d768-d2f3-4366-9fc3-3a7aba864374 vlan VLAN Config Protocol 9e66f251-727c-418c-bfd6-c2b4252818ea hiiimagedecode HII Image decoder Protocol 9fb9a8a1-2f4a-43a6-889c-d0f7b6c47ad5 dhcp6sb DHCPv6 Service Binding Protocol a00490ba-3f1a-4b4c-ab90-4fa99726a1e8 biocrypt Block IO crypto Protocol a19832b9-ac25-11d3-9a2d-0090273fc14d snp Simple Network Protocol a3979e64-ace8-4ddc-bc07-4d66b8fd0977 ipsec2 IPSec 2 Protocol a4c751fc-23ae-4c3e-92e9-4964cf63f349 unicode Unicode Collation Protocol a77b2472-e282-4e9f-a245-c2c0e27bbcc1 blockio2 Block IO 2 Protocol ab38a0df-6873-44a9-87e6-d4eb56148449 ramdisk RAM Disk Protocol ae3d28cc-e05b-4fa1-a011-7eb55a3f1401 dns4 DNSv4 Protocol afbfde41-2e6e-4262-ba65-62b9236e5495 timestamp Timestamp Protocol b3930571-beba-4fc5-9203-9427242e6a43 bthc Bluetooth HC Protocol b3f79d9a-436c-dc11-b052-cd85df524ce6 regexp Regular Expression Protocol b625b186-e063-44f7-8905-6a74dc6f52b4 dns4sb DNSv4 Service Binding Protocol b81bfab0-0eb3-4cf9-8465-7fa986361664 ufsdevcfg UFS device Config Protocol b9d4c360-bcfb-4f9b-9298-53c136982258 hiiformbrowse2 HII Form Browser 2 Protocol ba23b311-343d-11e6-9185-5820b1d65299 httpcb HTTP Boot Callback Protocol bb25cf6f-f1d4-11d2-9a0c-0090273fc1fd nvmepassthru NVM Express Pass Thru Protocol bb25cf6f-f1d4-11d2-9a0c-0090273fc1fd serial Serial IO Protocol bdc8e6af-d9bc-4379-a72a-e0c4e75dae1c httpsb HTTP Service Binding Protocol bf0a78ba-ec29-49cf-a1c9-7ae54eab6a51 mtftp6 MTFTPv6 Protocol c51711e7-b4bf-404a-bfb8-0a048ef1ffe4 ip4sb IPv4 Service Binding Protocol c5184932-dba5-46db-a5ba-cc0bda9c1435 hash Hash Protocol c88b0b6d-0dfc-49a7-9c-b449-74b4c3a78 storeagesec Storage Security Command Protocol ca37bc1f-a327-4ae9-828a-8c40d8506a17 dns6 DNSv6 Protocol ce345171-ba0b-11d2-8e4f-00a0c969723b diskio Disk IO Protocol ce5e5929-c7a3-4602-ad9e-c9daf94ebfcf ipseccfg IPSec Configuration Protocol d40b6b80-97d5-4282-bb1d-223a16918058 nvdimm NVDIMM Label Protocol d8117cfe-94a6-11d4-9a3a-0090273fc14d decompress Decompress Protocol d9760ff3-3cca-4267-80f9-7527fafa4223 mtftp6sb MTFTPv6 Service Binding Protocol da836f8d-217f-4ca0-99c2-1ca4e16077ea hash2sb Hash 2 Service Binding Protocol dd9e7534-7762-4698-8c14-f58517a625aa coninex Simple Text Input Ex Protocol dfb386f7-e100-43ad-9c9a-ed90d08a5e12 ipsec IPSec Protocol e98adb03-b8b9-4af8-ba20-26e9114cbce5 usrcred User Credential Protocol e9ca4775-8657-47fc-97e7-7ed65a084324 hiifont HII Font Protocol eb338826-681b-4295-b356-2b364c757b09 ftp4 FTP 4 Protocol eba4e8d2-3858-41ec-a281-2647ba9660d0 debugport Debugport Protocol ec20eb79-6c1a-4664-9a0d-d2e4cc16d664 tcp6sb TCPv6 Service Binding Protocol ec3a978d-7c4e-48fa-9abe-6ad91cc8f811 kms Key Management Service Protocol ec835dd3-fe0f-617b-a621-b350c3e13388 ip6sb IPv6 Service Binding Protocol ef9fc172-a1b2-4693-b327-6d32fc416042 hiidb HII Database Protocol f36ff770-a7e1-42cf-9ed2-56f0f271f44c mnpsb Managed Network Service Binding Protocol f44c00ee-1f2c-4a00-aa09-1c9f3e0800a3 arpsb ARP Service Binding Protocol f4b427bb-ba21-4f16-bc4e-43e416ab619c arp ARP Protocol f7102853-7787-4dc2-a8a8-21b5dd05c89b hiifontglyphgen HII Font Glyph Generator Protocol ffe06bdd-6107-46a6-7bb2-5a9c7ec5275c acpitable ACPI Table Protocol ffffffff-ffff-ffff-ffff-ffffffffffff zzignore-this-guid zzignore-this-guid efivar-39/src/safemath.h000066400000000000000000000133461455652431600153350ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * safemath.h * Copyright 2016-2019 Peter Jones */ #ifndef SAFEMATH_H_ #define SAFEMATH_H_ #include "compiler.h" #if GNUC_PREREQ(5, 1) || CLANG_PREREQ(3, 8) #define ADD(a, b, res) ({ \ __auto_type a_ = (a); \ (((res) == NULL) \ ? __builtin_add_overflow((a), (b), &a_) \ : __builtin_add_overflow((a), (b), (res))); \ }) #define SUB(a, b, res) ({ \ __auto_type a_ = (a); \ (((res) == NULL) \ ? __builtin_sub_overflow((a), (b), &a_) \ : __builtin_sub_overflow((a), (b), (res))); \ }) #define MUL(a, b, res) ({ \ __auto_type a_ = (a); \ (((res) == NULL) \ ? __builtin_mul_overflow((a), (b), &a_) \ : __builtin_mul_overflow((a), (b), (res))); \ }) #define DIV(a, b, res) ({ \ bool ret_ = true; \ if ((b) != 0) { \ if (!is_null(res)) \ (*(res)) = (a) / (b); \ ret_ = false; \ } else { \ errno = EOVERFLOW; /* no EDIVBYZERO? */ \ } \ ret_; \ }) /* * These really just exists for chaining results easily with || in an expr */ #define MOD(a, b, res) ({ \ if (!is_null(res)) \ (*(res)) = (a) % (b); \ false; \ }) #define DIVMOD(a, b, resd, resm) (DIV((a), (b), (resd)) || MOD((a), (b), (resm))) #define ASSIGN(a, res) ADD((a), (typeof(a)) 0, (res)) #define ABS(val, absval) ({ \ bool res_; \ if (val < 0) \ res_ = SUB((typeof(val)) 0, (val), absval); \ else \ res_ = ASSIGN((val), (absval)); \ res_; \ }) #define INCREMENT(a) ADD((a), 1, &(a)) #define DECREMENT(a) SUB((a), 1, &(a)) #define generic_sint_builtin_(op, x) \ _Generic((x), \ int: CAT(__builtin_, op)(x), \ long: CAT33(__builtin_, op, l)(x), \ long long: CAT3(__builtin_, op, ll)(x) \ ) #define FFS(x) generic_sint_builtin_(ffs, x) #define CLRSB(x) generic_sint_builtin_(clrsb, x) #define generic_uint_builtin_(op, x) \ _Generic((x), \ unsigned int: CAT(__builtin_, op)(x), \ unsigned long: CAT3(__builtin_, op, l)(x), \ unsigned long long: CAT3(__builtin_, op, ll)(x) \ ) #define CLZ(x) generic_uint_builtin_(clz, x) #define CTZ(x) generic_uint_builtin_(ctz, x) #define POPCOUNT(x) generic_uint_builtin_(popcount, x) #define PARITY(x) generic_uint_builtin_(parity, x) #define int_add(a, b, c) ADD(a, b, c) #define uint_add(a, b, c) ADD(a, b, c) #define long_add(a, b, c) ADD(a, b, c) #define ulong_add(a, b, c) ADD(a, b, c) #define int_sub(a, b, c) SUB(a, b, c) #define uint_sub(a, b, c) SUB(a, b, c) #define long_sub(a, b, c) SUB(a, b, c) #define ulong_sub(a, b, c) SUB(a, b, c) #define int_mul(a, b, c) MUL(a, b, c) #define uint_mul(a, b, c) MUL(a, b, c) #define long_mul(a, b, c) MUL(a, b, c) #define ulong_mul(a, b, c) MUL(a, b, c) #else #warning gcc 5.1 or newer or clang 3.8 or newer is required #endif #ifndef int_add #define int_add(a, b, c) ({ \ const int _limit = INT_MAX; \ long int _ret = _limit - (a); \ _ret = _ret > (b); \ if (!_ret) \ *(c) = ((a) + (b)); \ (bool)_ret; \ }) #endif #ifndef uint_add #define uint_add(a, b, c) ({ \ const unsigned int _limit = UINT_MAX; \ unsigned int _ret = _limit - (a); \ _ret = _ret > (b); \ if (!_ret) \ *(c) = ((a) + (b)); \ (bool)_ret; \ }) #endif #ifndef long_add #define long_add(a, b, c) ({ \ const long _limit = LONG_MAX; \ long _ret = _limit - (a); \ _ret = _ret > (b); \ if (!_ret) \ *(c) = ((a) + (b)); \ (bool)_ret; \ }) #endif #ifndef ulong_add #define ulong_add(a, b, c) ({ \ const unsigned long _limit = ULONG_MAX; \ unsigned long _ret = _limit - (a); \ _ret = _ret > (b); \ if (!_ret) \ *(c) = ((a) + (b)); \ (bool)_ret; \ }) #endif #ifndef int_mul #define int_mul(a, b, c) ({ \ int _ret; \ _ret = __builtin_popcount(a) + __builtin_popcount(b); \ _ret = _ret < ((sizeof(a) + sizeof(b)) << 4); \ if (!_ret) \ *(c) = ((a) * (b)); \ (bool)_ret; \ }) #endif #ifndef uint_mul #define uint_mul(a, b, c) int_mul(a, b, c) #endif #ifndef long_mul #define long_mul(a, b, c) int_mul(a, b, c) #endif #ifndef ulong_mul #define ulong_mul(a, b, c) int_mul(a, b, c) #endif #ifndef int_sub #define int_sub(a, b, c) ({ \ const long _min_limit = INT_MIN; \ const long _max_limit = INT_MAX; \ int _ret; \ _ret = _min_limit + (b); \ _ret = !(_ret < (a)); \ if (!_ret) { \ _ret = _max_limit - (a); \ _ret = _ret > (b); \ } \ if (!_ret) \ *(c) = ((a) - (b)); \ (bool)_ret; \ }) #endif #ifndef uint_sub #define uint_sub(a, b, c) ({ \ const unsigned int _limit = UINT_MAX; \ unsigned int _ret = _limit - (a); \ _ret = _ret > (b); \ if (!_ret) \ *(c) = ((a) - (b)); \ (bool)_ret; \ }) #endif #ifndef long_sub #define long_sub(a, b, c) ({ \ const long _min_limit = LONG_MIN; \ const long _max_limit = LONG_MAX; \ int _ret; \ _ret = _min_limit + (b); \ _ret = !(_ret < (a)); \ if (!_ret) { \ _ret = _max_limit - (a); \ _ret = _ret > (b); \ } \ if (!_ret) \ *(c) = ((a) - (b)); \ (bool)_ret; \ }) #endif #ifndef ulong_sub #define ulong_sub(a, b, c) ({ \ const unsigned long _limit = ULONG_MAX; \ unsigned long _ret = _limit - (a); \ _ret = _ret > (b); \ if (!_ret) \ *(c) = ((a) - (b)); \ _ret; \ }) #endif #ifndef ADD #define ADD(a, b, c) ({ \ (*(c)) = ((a) + (b)); \ }) #endif #ifndef MUL #define MUL(a, b, c) ({ \ (*(c)) = ((a) * (b)); \ }) #endif #ifndef SUB #define SUB(a, b, c) ({ \ (*(c)) = ((a) - (b)); \ }) #endif #endif /* !SAFEMATH_H_ */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/sec.c000066400000000000000000000003661455652431600143100ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * sec.c * Copyright 2020 Peter Jones * */ #include "efivar.h" uint32_t PUBLIC efi_get_libefisec_version(void) { return LIBEFIVAR_VERSION; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/secdb-dump.c000066400000000000000000000133551455652431600155630ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * secdb-dump.c - efi_secdb_t hex-dump + annotation * Copyright Peter Jones */ #include "efisec.h" #include "hexdump.h" #undef DEBUG_LEVEL #define DEBUG_LEVEL LOG_DEBUG_DUMPER static bool annotate = false; static char *buf = NULL; static size_t bufsz = 0; static size_t start = 0; static inline void secdb_dump_finish(void) { if (buf && bufsz) { hexdumpat((uint8_t *)buf, bufsz, start); free(buf); } buf = NULL; bufsz = 0; } static inline ssize_t secdb_buffer(char *val, size_t valsz, ssize_t offset) { char *nbuf; size_t nbufsz, allocsz; if (!buf) { // just because valgrind is annoying about realloc(NULL, ...) buf = calloc(1, page_size); if (!buf) return -1; } nbufsz = offset + valsz; allocsz = ALIGN_UP(nbufsz, page_size); nbuf = realloc(buf, allocsz); if (!nbuf) { free(buf); buf = NULL; bufsz = 0; return -1; } memset(nbuf + bufsz, '\0', allocsz - bufsz); memcpy(nbuf + offset, val, valsz); buf = nbuf; bufsz = nbufsz; return nbufsz; } static inline ssize_t secdb_dump_value(char *val, size_t size, ssize_t offset, char *fmt, ...) { char posbuf[9]; char hexbuf[49]; char textbuf[19]; size_t printed = 0; va_list ap; bool once = false; unsigned int i; posbuf[sizeof(posbuf)-1] = '\0'; hexbuf[sizeof(hexbuf)-1] = '\0'; textbuf[sizeof(textbuf)-1] = '\0'; if (!annotate) { if (size == 0) return offset; return secdb_buffer(val, size, offset); } if (size == 0 && strlen(fmt) == 0) return offset; if (size == 0) { memset(posbuf, ' ', sizeof(posbuf)-1); memset(hexbuf, ' ', sizeof(hexbuf)-1); memset(textbuf, ' ', sizeof(textbuf)-1); sprintf(posbuf, "%08zx", offset + printed); prepare_text("", 0, textbuf, offset + printed); for (i = strlen(textbuf); annotate && i < sizeof(textbuf)-1; i++) textbuf[i] = ' '; textbuf[sizeof(textbuf)-1] = '\0'; printf("%s %s %s", posbuf, hexbuf, textbuf); if (annotate) { printf(" "); va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); } printf("\n"); } while (size - printed) { size_t sz; memset(posbuf, ' ', sizeof(posbuf)-1); memset(hexbuf, ' ', sizeof(hexbuf)-1); memset(textbuf, ' ', sizeof(textbuf)-1); sprintf(posbuf, "%08zx", offset + printed); debug("size:%zd printed:%zd", size, printed); sz = prepare_hex(val+printed, size-printed, hexbuf, offset+printed); prepare_text(val+printed, size-printed, textbuf, offset+printed); for (i = strlen(textbuf); annotate && i < sizeof(textbuf)-1; i++) textbuf[i] = ' '; textbuf[sizeof(textbuf)-1] = '\0'; printed += sz; printf("%s %s %s", posbuf, hexbuf, textbuf); if (!once && annotate) { printf(" "); va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); once = true; } printf("\n"); } return offset + printed; } static inline ssize_t secdb_dump_esl(efi_secdb_t *secdb, int esl, ssize_t offset) { const efi_guid_t *alg; char *id_guid = NULL; alg = secdb_guid_from_type(secdb->algorithm); if (!alg) alg = &efi_guid_empty; efi_guid_to_id_guid(alg, &id_guid); offset = secdb_dump_value((char *)alg, sizeof(efi_guid_t), offset, "esl[%d].signature_type = %s", esl, id_guid); xfree(id_guid); if (offset < 0) return offset; offset = secdb_dump_value((char *)&secdb->listsz, sizeof(secdb->listsz), offset, "esl[%d].signature_list_size = %d (0x%x)", esl, secdb->listsz, secdb->listsz); if (offset < 0) return offset; offset = secdb_dump_value((char *)&secdb->hdrsz, sizeof(secdb->hdrsz), offset, "esl[%d].signature_header_size = %d", esl, secdb->hdrsz); if (offset < 0) return offset; offset = secdb_dump_value((char *)&secdb->sigsz, sizeof(secdb->sigsz), offset, "esl[%d].signature_size = %d", esl, secdb->sigsz); if (offset < 0) return offset; offset = secdb_dump_value((char *)NULL, secdb->hdrsz, offset, "esl[%d].signature_header (end:0x%08zx)", esl, offset + secdb->hdrsz); return offset; } static inline ssize_t secdb_dump_esd(secdb_entry_t *entry, int esl, int esd, size_t data_size, ssize_t offset) { char *id_guid = NULL; efi_guid_to_id_guid(&entry->owner, &id_guid); offset = secdb_dump_value((char *)&entry->owner, sizeof(efi_guid_t), offset, "esl[%d].signature[%d].owner = %s", esl, esd, id_guid); xfree(id_guid); if (offset < 0) return offset; offset = secdb_dump_value((char *)&entry->data, data_size, offset, "esl[%d].signature[%d].data (end:0x%08zx)", esl, esd, offset+data_size); return offset; } void secdb_dump(efi_secdb_t *secdb, bool annotations) { int esln = 0; list_t *pos0, *pos1; ssize_t offset = 0; start = offset; annotate = annotations; for_each_secdb(pos0, &secdb->list) { efi_secdb_t *esl; int esdn = 0; esl = list_entry(pos0, efi_secdb_t, list); debug("esl[%d]:%p", esln, esl); offset = secdb_dump_esl(esl, esln, offset); if (offset < 0) break; for_each_secdb_entry(pos1, &esl->entries) { secdb_entry_t *esd; bool has_owner = true; size_t datasz = esl->sigsz; int rc; rc = secdb_entry_has_owner_from_type(esl->algorithm, &has_owner); if (rc < 0) { int saved_errno = errno; secdb_dump_finish(); errno = saved_errno; efi_error("could not determine signature type"); return; } if (has_owner) datasz -= sizeof(efi_guid_t); esd = list_entry(pos1, secdb_entry_t, list); debug("esl[%d].esd[%d]:%p owner:%p data:%p-%p datasz:%zd", esln, esdn, esd, &esd->owner, &esd->data, &esd->data+datasz, datasz); offset = secdb_dump_esd(esd, esln, esdn, datasz, offset); esdn += 1; if (offset < 0) break; } if (offset < 0) break; esln += 1; } secdb_dump_finish(); printf("%08zx\n", offset); fflush(stdout); } // vim:fenc=utf-8:tw=75:noet efivar-39/src/secdb.c000066400000000000000000000473341455652431600146240ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * secdb.c - management of EFI security databases * Copyright Peter Jones * Copyright Red Hat, Inc. */ #include "efisec.h" #include "efivar/efisec-secdb.h" /* * create a new in-memory signature list */ PUBLIC efi_secdb_t * efi_secdb_new(void) { debug("Allocating new secdb"); efi_secdb_t *secdb = calloc(1, sizeof(*secdb)); if (!secdb) { efi_error("Could not allocate %zd bytes of memory", sizeof(*secdb)); return NULL; } INIT_LIST_HEAD(&secdb->list); INIT_LIST_HEAD(&secdb->entries); efi_secdb_set_bool(secdb, EFI_SECDB_SORT, true); efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DATA, false); efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DESCENDING, false); return secdb; } /* * find the secdb entry for a given size and algorithm, or return NULL and set * errno to ENOENT if there aren't any. */ static inline efi_secdb_t * find_secdb_entry(efi_secdb_t *top, efi_secdb_type_t algorithm, size_t datasz) { efi_secdb_t *secdb = NULL; list_t *pos; size_t sigsz = datasz + sizeof(efi_guid_t); char *algstr = NULL; if (algorithm != X509_CERT) sigsz = secdb_entry_size_from_type(algorithm); efi_guid_to_id_guid(secdb_guid_from_type(algorithm), &algstr); debug("searching for entry with type:%s sz:%zd(0x%zx) datasz:%zd(0x%zx)", algstr, sigsz, sigsz, datasz, datasz); xfree(algstr); for_each_secdb_prev(pos, &top->list) { efi_secdb_t *candidate = list_entry(pos, efi_secdb_t, list); if (candidate->listsz == 0 || candidate->algorithm == MAX_SECDB_TYPE || (candidate->algorithm == algorithm && candidate->sigsz == sigsz)) { secdb = candidate; debug("found secdb %p", secdb); return secdb; } } errno = ENOENT; return NULL; } static inline efi_secdb_t * alloc_secdb_entry(efi_secdb_t *top, efi_secdb_type_t algorithm, size_t datasz) { efi_secdb_t *secdb = NULL; size_t sigsz = datasz; if (algorithm != X509_CERT) sigsz = secdb_entry_size_from_type(algorithm); debug("allocating new secdb entry alg %d", algorithm); secdb = efi_secdb_new(); if (!secdb) return NULL; INIT_LIST_HEAD(&secdb->entries); INIT_LIST_HEAD(&secdb->list); secdb->algorithm = algorithm; secdb->hdrsz = secdb_header_size_from_type(algorithm); secdb->sigsz = sigsz; secdb->flags = top->flags; debug("Adding secdb:%p to top:%p with hdrsz:%"PRIu32"(0x%"PRIx32") sigsz:%"PRIu32"(0x%"PRIx32")", secdb, top, secdb->hdrsz, secdb->hdrsz, secdb->sigsz, secdb->sigsz); list_add_tail(&secdb->list, &top->list); return secdb; } /* * find the secdb entry for a given size and algorithm, or allocate and * initialize a new one if there aren't any. */ static inline efi_secdb_t * find_or_alloc_secdb_entry(efi_secdb_t *top, efi_secdb_type_t algorithm, size_t datasz) { efi_secdb_t *secdb = NULL; size_t sigsz = datasz; if (algorithm != X509_CERT) sigsz = secdb_entry_size_from_type(algorithm); secdb = find_secdb_entry(top, algorithm, datasz); if (!secdb) { debug("could not find secdb entry of alg:%d datasz:%zd(0x%zx)", algorithm, datasz, datasz); secdb = alloc_secdb_entry(top, algorithm, datasz); if (!secdb) return NULL; } secdb->algorithm = algorithm; secdb->sigsz = sigsz; return secdb; } /* * delete an entry from our internal representation */ PUBLIC int efi_secdb_del_entry(efi_secdb_t *top, const efi_guid_t *owner, efi_secdb_type_t algorithm, efi_secdb_data_t *data, size_t datasz) { efi_secdb_t *secdb; list_t *pos; size_t sigsz = datasz; bool has_owner = false; if (algorithm != X509_CERT) sigsz = secdb_entry_size_from_type(algorithm); if (secdb_entry_has_owner_from_type(algorithm, &has_owner) < 0) return -1; if (has_owner) sigsz -= sizeof(efi_guid_t); if (!top || (has_owner && !owner) || !data || !datasz) { errno = EINVAL; return -1; } secdb = find_secdb_entry(top, algorithm, datasz); if (!secdb) return -1; for_each_secdb_entry(pos, &secdb->entries) { secdb_entry_t *entry = list_entry(pos, secdb_entry_t, list); if (!memcmp(data, &entry->data, sigsz) && (!has_owner || !efi_guid_cmp(owner, &entry->owner))) { debug("deleting entry at %p\n", &entry); list_del(&entry->list); free(entry); break; } } return 0; } static int secdb_add_entry_data(efi_secdb_t *secdb, const efi_guid_t * const owner, efi_secdb_data_t *data, uint32_t datasz) { secdb_entry_t *new; size_t allocsz; if (!secdb || !owner || !data || !datasz) { errno = EINVAL; return -1; } allocsz = offsetof(secdb_entry_t, data) + datasz; new = calloc(1, allocsz); if (!new) return -1; INIT_LIST_HEAD(&new->list); memcpy(&new->data, data, datasz); memcpy(&new->owner, owner, sizeof(efi_guid_t)); debug("Adding to secdb:%p entry:%p owner:%p data:%p datasz:%"PRIu32"(0x%"PRIx32")", secdb, new, &new->owner, &new->data, datasz, datasz); list_add_tail(&new->list, &secdb->entries); debug("nsigs:%zd -> %zd", secdb->nsigs, secdb->nsigs+1); secdb->nsigs += 1; if (secdb->nsigs == 1 && secdb->algorithm == X509_CERT && secdb->sigsz == sizeof(efi_guid_t)) { debug("secdb->sigsz:%"PRIu32"(0x%"PRIx32") -> %"PRIu32"(0x%"PRIx32") datasz:%"PRIu32"(0x%"PRIx32")", secdb->sigsz, secdb->sigsz, secdb->sigsz + datasz, secdb->sigsz + datasz, datasz, datasz); secdb->sigsz += datasz; } secdb->listsz = secdb_entry_size(secdb); return 0; } int efi_secdb_add_entry_or_secdb(efi_secdb_t *top, const efi_guid_t *owner, efi_secdb_type_t algorithm, efi_secdb_data_t *data, size_t datasz, bool force_new_secdb) { list_t *pos; efi_secdb_t *secdb = NULL; bool has_owner = false; size_t sigsz; bool sort = false; bool sort_data = false; bool sort_descending = false; int (*cmp)(const void *, const void *, void *); if (!top) { errno = EINVAL; efi_error("invalid efi_secdb_t %p", top); return -1; } if (secdb_entry_has_owner_from_type(algorithm, &has_owner) < 0) return -1; sigsz = datasz + (has_owner ? sizeof(*owner) : 0); if (force_new_secdb) { debug("forcing new secdb entry (has_owner:%d)", has_owner); secdb = alloc_secdb_entry(top, algorithm, sigsz); secdb->algorithm = algorithm; secdb->sigsz = sigsz; } else { debug("finding secdb alg:%d datasz:%zd(0x%zx) sigsz:%zd(0x%zx) has_owner:%d", algorithm, datasz, datasz, sigsz, sigsz, has_owner); secdb = find_or_alloc_secdb_entry(top, algorithm, sigsz); } if (!secdb) return -1; sort = secdb->flags & (1ul << EFI_SECDB_SORT); sort_data = secdb->flags & (1ul << EFI_SECDB_SORT_DATA); sort_descending = secdb->flags & (1ul << EFI_SECDB_SORT_DESCENDING); for_each_secdb_entry(pos, &secdb->entries) { secdb_entry_t *entry = list_entry(pos, secdb_entry_t, list); if (!memcmp(data, &entry->data, datasz)) return 0; } debug("adding %zd(0x%zd) bytes of data", datasz, datasz); secdb_add_entry_data(secdb, owner, data, datasz); if (sort_data && secdb->sigsz) { debug("sorting data %s", sort_descending ? "desc" : "asc"); cmp = sort_descending ? secdb_entry_cmp_descending : secdb_entry_cmp; list_sort(&secdb->entries, cmp, &datasz); } if (sort) { debug("sorting lists %s", sort_descending ? "desc" : "asc"); cmp = sort_descending ? secdb_cmp_descending : secdb_cmp; list_sort(&top->list, cmp, NULL); } return 0; } /* * add an entry to our internal representation */ PUBLIC int efi_secdb_add_entry(efi_secdb_t *top, const efi_guid_t *owner, efi_secdb_type_t algorithm, efi_secdb_data_t *data, size_t datasz) { return efi_secdb_add_entry_or_secdb(top, owner, algorithm, data, datasz, false); } int PUBLIC efi_secdb_set_bool(efi_secdb_t *secdb, efi_secdb_flag_t flag, bool value) { if (!secdb) { efi_error("invalid secdb"); errno = EINVAL; return -1; } if (flag < 0 || flag > EFI_SECDB_SORT_DESCENDING) { efi_error("invalid flag '%d'", flag); errno = EINVAL; return -1; } if (value) secdb->flags |= (1ul << flag); else secdb->flags &= ~(1ul << flag); return 0; } /* * parse a signature list file into our internal representation */ PUBLIC int efi_secdb_parse(uint8_t *data, size_t datasz, efi_secdb_t **secdbp) { esl_iter *iter = NULL; int rc; efi_secdb_t *secdb; bool new_secdb = false; bool sort = false; bool sort_descending = true; if (!data || !datasz) { efi_error("Invalid secdb data (data=%p datasz=%zd(0x%zx))", data, datasz, datasz); errno = EINVAL; return -1; } if (!secdbp) { efi_error("Invalid secdb pointer"); errno = EINVAL; return -1; } secdb = *secdbp; if (!secdb) { secdb = efi_secdb_new(); if (!secdb) return -1; new_secdb = true; } sort = secdb->flags & (1ul << EFI_SECDB_SORT); sort_descending = secdb->flags & (1ul << EFI_SECDB_SORT_DESCENDING); debug("adding %zd(0x%zx) bytes to secdb %p", datasz, datasz, secdb); rc = esl_iter_new(&iter, data, datasz); if (rc < 0) { efi_error("Could not iterate security database"); if (new_secdb) efi_secdb_free(secdb); return rc; } do { uint8_t *sig = NULL; size_t sigsz = 0; efi_guid_t secdb_type_guid, owner; efi_secdb_type_t secdb_type; bool corrected = false; bool force = false; rc = esl_iter_next(iter, &secdb_type_guid, &owner, &sig, &sigsz); if (rc < 0 && errno == EOVERFLOW) { debug("esl_iter_next at %zd(0x%zx) is malformed; attempting correction", esd_get_esl_offset(iter), esd_get_esl_offset(iter)); corrected = true; rc = esl_iter_next_with_size_correction(iter, &secdb_type_guid, &owner, &sig, &sigsz, true); debug("got new entry at 0x%zx with sigsz:%zd", esd_get_esl_offset(iter), sigsz); } if (rc < 0) { efi_error("Could not get next security database entry"); esl_iter_end(iter); if (new_secdb) free(secdb); return rc; } if (rc == ESL_ITER_DONE) break; if (new_secdb) secdb->sigsz = sigsz; debug("sigsz:%zd", sigsz); secdb_type = secdb_entry_type_from_guid(&secdb_type_guid); debug("secdb_type:%d", secdb_type); if (corrected) force = true; if (rc == ESL_ITER_NEW_LIST && !sort) force = true; if (new_secdb) force = false; if (force) { if (corrected) debug("forcing new secdb due to size correction"); else if (rc == ESL_ITER_NEW_LIST && !sort) debug("forcing new secdb due to new input ESL sort!=type"); else debug("wth? why is force set"); } efi_secdb_add_entry_or_secdb(secdb, &owner, secdb_type, (efi_secdb_data_t *)sig, sigsz, force); new_secdb = false; } while (rc > 0); esl_iter_end(iter); if (sort) { debug("sorting lists %s", sort_descending ? "desc" : "asc"); list_sort(&secdb->list, sort_descending ? secdb_cmp_descending : secdb_cmp, NULL); } *secdbp = secdb; return 0; } struct visitor_state { /* listnum from the previous invocation */ unsigned int listnum; efi_signature_list_t *esl; char *buf; size_t pos; }; /* * realize a signature list file from our internal representation into */ static efi_secdb_visitor_status_t secdb_realize_visitor(unsigned int listnum, unsigned int signum, const efi_guid_t * const owner, const efi_secdb_type_t algorithm, const void * const header, const size_t headersz, const efi_secdb_data_t * const data, const size_t datasz, void *closure) { struct visitor_state *state = closure; const efi_guid_t *alg = secdb_guid_from_type(algorithm); char *buf; size_t allocsz, esdsz; ptrdiff_t skew; efi_signature_list_t *esl; efi_signature_data_t *esd; bool has_owner = true; int rc; rc = secdb_entry_has_owner_from_type(algorithm, &has_owner); if (rc < 0) efi_error("could not determine signature type"); esdsz = datasz + (has_owner ? sizeof(efi_guid_t) : 0); debug("listnum:%d signum:%d has_owner:%d", listnum, signum, has_owner); if (listnum > state->listnum || signum == 0) { allocsz = state->pos + sizeof(state->esl) + headersz + esdsz; allocsz = ALIGN_UP(allocsz, page_size); buf = realloc(state->buf, allocsz); if (!buf) { efi_error("could not allocate %zd bytes", allocsz); return ERROR; } esl = (efi_signature_list_t *)(buf + state->pos); state->buf = buf; state->esl = esl; memset(buf + state->pos, 0, allocsz - state->pos); memcpy(&esl->signature_type, alg, sizeof(efi_guid_t)); esl->signature_list_size = sizeof(efi_signature_list_t) + headersz; esl->signature_header_size = headersz; esl->signature_size = esdsz; state->pos += sizeof(*esl); if (header && headersz > 0) memcpy(buf+state->pos, header, headersz); state->pos += headersz; esd = (efi_signature_data_t *)(buf + state->pos); } else { allocsz = ALIGN_UP(state->pos + esdsz, page_size); buf = realloc(state->buf, allocsz); skew = buf - state->buf; if (!buf) { efi_error("could not allocate %zd bytes", allocsz); return ERROR; } memset(buf + state->pos, 0, allocsz - state->pos); esl = (efi_signature_list_t *)((char *)state->esl + skew); state->buf = buf; state->esl = esl; esd = (efi_signature_data_t *)(buf + state->pos); } debug("esl[%u]:%p esd[%u]:%p", listnum, esl, signum, esd); memcpy(&esd->signature_owner, owner, sizeof(efi_guid_t)); memcpy(&esd->signature_data[0], data, datasz); esl->signature_list_size += esdsz; state->pos += esdsz; state->listnum = listnum; return CONTINUE; } /* * realize a signature list file from our internal representation */ PUBLIC int efi_secdb_realize(efi_secdb_t *secdb, void **out, size_t *outsize) { struct visitor_state state = { 0, }; state.buf = calloc(1, page_size); state.esl = (efi_signature_list_t *)state.buf; if (!state.buf) { efi_error("could not allocate %zd bytes", page_size); return ERROR; } efi_secdb_visit_entries(secdb, secdb_realize_visitor, &state); *out = state.buf; *outsize = state.pos; return 0; } /* * Free a single secdb and all of its components, but not other * linked secdb enties */ void secdb_free_entry(efi_secdb_t *secdb) { list_t *pos = NULL, *tmp = NULL; if (!secdb) return; for_each_secdb_entry_safe(pos, tmp, &secdb->entries) { secdb_entry_t *entry = list_entry(pos, secdb_entry_t, list); bool has_owner = true; int rc; rc = secdb_entry_has_owner_from_type(secdb->algorithm, &has_owner); if (rc < 0) efi_error("could not determine signature type"); list_del(&entry->list); xfree(entry); } memset(secdb, 0, sizeof(*secdb)); xfree(secdb); } /* * free a whole list of secdb entries */ PUBLIC void efi_secdb_free(efi_secdb_t *top) { list_t *pos = NULL, *tmp = NULL; if (!top) return; for_each_secdb_safe(pos, tmp, &top->list) { efi_secdb_t *secdb = list_entry(pos, efi_secdb_t, list); list_del(&secdb->list); secdb_free_entry(secdb); } free(top); } static efi_secdb_visitor_status_t secdb_visit_entries(efi_secdb_t *secdb, int i, efi_secdb_visitor_t *visitor, void *closure) { int j = 0; list_t *pos; size_t datasz; bool has_owner = true; int rc; rc = secdb_entry_has_owner_from_type(secdb->algorithm, &has_owner); if (rc < 0) { efi_error("could not determine signature type"); return ERROR; } datasz = secdb->sigsz - (has_owner ? sizeof(efi_guid_t) : 0); for_each_secdb_entry(pos, &secdb->entries) { secdb_entry_t *entry = list_entry(pos, secdb_entry_t, list); efi_secdb_visitor_status_t status; debug("secdb[%d]:%p entry[%d]:%p pos:%p = {%p, %p}", i, secdb, j, entry, pos, pos ? pos->prev : 0, pos ? pos->next : 0); debug("secdb[%d]:%p entry[%d]:%p owner:"GUID_FORMAT" data:%p-%p datasz:%zd", i, secdb, j, entry, GUID_FORMAT_ARGS(&entry->owner), &entry->data, &entry->data+datasz, datasz); status = visitor(i, j++, &entry->owner, secdb->algorithm, NULL, 0, &entry->data, datasz, closure); if (status == ERROR) return ERROR; if (status == BREAK) return BREAK; } return CONTINUE; } PUBLIC int efi_secdb_visit_entries(efi_secdb_t *top, efi_secdb_visitor_t *visitor, void *closure) { efi_secdb_visitor_status_t status = CONTINUE; list_t *pos = NULL, *tmp = NULL; int i = 0; for_each_secdb_safe(pos, tmp, &top->list) { efi_secdb_t *secdb = list_entry(pos, efi_secdb_t, list); debug("secdb[%d]:%p pos:%p = {%p, %p}", i, secdb, pos, pos ? pos->prev : 0, pos ? pos->next : 0); debug("secdb[%d]:%p nsigs:%zu sigsz:%d", i, secdb, secdb->nsigs, secdb->sigsz); status = secdb_visit_entries(secdb, i++, visitor, closure); if (status == ERROR) return -1; if (status == BREAK) break; } return 0; } static inline int bytecmp(const void *ap, const void *bp, size_t sz) { const uint8_t *a = (const uint8_t *)ap; const uint8_t *b = (const uint8_t *)bp; for (size_t i = 0; i < sz; i++) { int sub = a[i] - b[i]; if (sub != 0) { debug("byte %zu differs: a=0x%02hhx %c b=0x%02hhx", i, a[i], LEGR(sub), b[i]); return sub; } } return 0; } /* * compare secdb_entry_t items */ int secdb_entry_cmp(const void *ap, const void *bp, void *state) { const secdb_entry_t *a = *(const secdb_entry_t **)ap; const secdb_entry_t *b = *(const secdb_entry_t **)bp; size_t sigsz = *(size_t *)state; int rc; rc = efi_guid_cmp(&a->owner, &b->owner); if (rc != 0) { debug("owner guids differ: "GUID_FORMAT" %c "GUID_FORMAT, GUID_FORMAT_ARGS(&a->owner), LEGR(rc), GUID_FORMAT_ARGS(&b->owner)); return rc; } return bytecmp(a->data.raw, b->data.raw, sigsz); } int secdb_entry_cmp_descending(const void *ap, const void *bp, void *state) { return secdb_entry_cmp(bp, ap, state); } /* * compare efi_secdb_t items */ int secdb_cmp(const void *ap, const void *bp, void * state UNUSED) { const efi_secdb_t *a; const efi_secdb_t *b; if (ap == NULL || bp == NULL) return ap - bp; a = *(efi_secdb_t **)ap; b = *(efi_secdb_t **)bp; if (a->algorithm == MAX_SECDB_TYPE) { debug("sorting unready data from secdb:%p", a); return -1; } if (b->algorithm == MAX_SECDB_TYPE) { debug("sorting unready data from secdb:%p", b); return 1; } if (a->algorithm != b->algorithm) { return a->algorithm - b->algorithm; } if (a->sigsz != b->sigsz) { return a->sigsz - b->sigsz; } return a->listsz - b->listsz; } int secdb_cmp_descending(const void *ap, const void *bp, void * state) { return secdb_cmp(bp, ap, state); } const secdb_alg_t PUBLIC efi_secdb_algs_[MAX_SECDB_TYPE] = { [SHA1] = { .class = HASH, .guid = &efi_guid_sha1, .header_size = 0, .has_owner = true, .size = 20, }, [SHA224] = { .class = HASH, .guid = &efi_guid_sha224, .header_size = 0, .has_owner = true, .size = 28, }, [SHA256] = { .class = HASH, .guid = &efi_guid_sha256, .header_size = 0, .has_owner = true, .size = 32, }, [SHA384] = { .class = HASH, .guid = &efi_guid_sha384, .header_size = 0, .has_owner = true, .size = 48, }, [SHA512] = { .class = HASH, .guid = &efi_guid_sha512, .header_size = 0, .has_owner = true, .size = 64, }, [RSA2048] = { .class = SIGNATURE, .guid = &efi_guid_rsa2048, .header_size = 0, .has_owner = true, .size = 256, }, [RSA2048_SHA1] = { .class = SIGNATURE, .guid = &efi_guid_rsa2048_sha1, .header_size = 0, .has_owner = true, .size = 256, }, [RSA2048_SHA256] = { .class = SIGNATURE, .guid = &efi_guid_rsa2048_sha256, .header_size = 0, .has_owner = true, .size = 256, }, [X509_SHA256] = { .class = CERTIFICATE_HASH, .guid = &efi_guid_x509_sha256, .header_size = 0, .has_owner = true, .size = 256, }, [X509_SHA384] = { .class = CERTIFICATE_HASH, .guid = &efi_guid_x509_sha384, .header_size = 0, .has_owner = true, .size = 384, }, [X509_SHA512] = { .class = CERTIFICATE_HASH, .guid = &efi_guid_x509_sha512, .header_size = 0, .has_owner = true, .size = 512, }, [X509_CERT] = { .class = CERTIFICATE, .guid = &efi_guid_x509_cert, .header_size = 0, .has_owner = true, .size = 0, }, }; const size_t num_efi_secdb_algs_ = sizeof(efi_secdb_algs_) / sizeof(secdb_alg_t); // vim:fenc=utf-8:tw=75:noet efivar-39/src/secdb.h000066400000000000000000000133161455652431600146220ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * secdb.h - management of EFI security databases * Copyright Peter Jones * Copyright Red Hat, Inc. */ #ifndef PRIVATE_SECDB_H #define PRIVATE_SECDB_H 1 #include "efisec.h" #include typedef enum { BAD, HASH, SIGNATURE, CERTIFICATE_HASH, CERTIFICATE, } secdb_entry_class_t; typedef struct { const secdb_entry_class_t class; const char * const name; const efi_guid_t *guid; const size_t header_size; const bool has_owner; const size_t size; } secdb_alg_t; struct secdb_entry { list_t list; efi_guid_t owner; efi_secdb_data_t data; }; typedef struct secdb_entry secdb_entry_t; /***************************************************************************** * our internal representation. Each entry in secdb represents one distinct * * {owner, algorithm, size}; i.e. all efi_guid_x509_sha512 with the same * * owner can go on the same entry, but each efi_guid_x509_cert of a * * different size needs its own * *****************************************************************************/ struct efi_secdb { list_t list; // link to our next signature sublist uint64_t flags; // bitmask of boolean flags efi_secdb_type_t algorithm; // signature type uint32_t listsz; // esl_size + (hdrsz + nsigs) * sigsz uint32_t hdrsz; // total size of header uint32_t sigsz; // size of each signature size_t nsigs; // number of signatures void *header; // unused list_t entries; // list of signature data entries }; #define for_each_secdb(pos, head) list_for_each(pos, head) #define for_each_secdb_safe(pos, n, head) list_for_each_safe(pos, n, head) #define for_each_secdb_prev(pos, head) list_for_each_prev(pos, head) #define for_each_secdb_entry(pos, head) list_for_each(pos, head) #define for_each_secdb_entry_safe(pos, n, head) list_for_each_safe(pos, n, head) extern const secdb_alg_t PUBLIC efi_secdb_algs_[MAX_SECDB_TYPE]; /********************************************************* * some helpers to look up sizes for each algorithm type * *********************************************************/ /* * does data (and datasz) include an owner guid? */ static inline int secdb_entry_has_owner_from_guid(efi_guid_t *alg_guid, bool *answer) { for (efi_secdb_type_t i = 0; i < MAX_SECDB_TYPE; i++) { if (!memcmp(alg_guid, efi_secdb_algs_[i].guid, sizeof(*alg_guid))) { *answer = efi_secdb_algs_[i].has_owner; return 0; } } errno = EINVAL; return -1; } /* * does data (and datasz) include an owner guid? */ static inline int secdb_entry_has_owner_from_type(efi_secdb_type_t secdb_type, bool *answer) { if (secdb_type < 0 || secdb_type >= MAX_SECDB_TYPE) { errno = EINVAL; return -1; } *answer = efi_secdb_algs_[secdb_type].has_owner; return 0; } /* * get the secdb_type from the efi_guid for the algorithm */ static inline efi_secdb_type_t secdb_entry_type_from_guid(const efi_guid_t * const guid) { for (efi_secdb_type_t i = 0; i < MAX_SECDB_TYPE; i++) { if (!memcmp(guid, efi_secdb_algs_[i].guid, sizeof(*guid))) return i; } return -1; } /* * lookup the efi guid for a signature type from the efi_secdb_type_t type */ static inline efi_guid_t const * secdb_guid_from_type(const efi_secdb_type_t secdb_type) { if (secdb_type < 0 || secdb_type >= MAX_SECDB_TYPE) { errno = EINVAL; return NULL; } return efi_secdb_algs_[secdb_type].guid; } /* * find the size to store a signature from the efi guid for the signature type */ static inline size_t secdb_entry_size_from_guid(const efi_guid_t * const alg_guid) { efi_secdb_type_t type; type = secdb_entry_type_from_guid(alg_guid); if (type < 0) return type; return efi_secdb_algs_[type].size + (efi_secdb_algs_[type].has_owner ? sizeof(efi_guid_t) : 0); } /* * find the size to store a signature from the secdb_type_t type, including * signature owner. It's the size of the entire esl.Signatures array entry. */ static inline size_t secdb_entry_size_from_type(const efi_secdb_type_t secdb_type) { if (secdb_type < 0 || secdb_type >= MAX_SECDB_TYPE) { errno = EINVAL; return -1; } return efi_secdb_algs_[secdb_type].size + (efi_secdb_algs_[secdb_type].has_owner ? sizeof(efi_guid_t) : 0); } /* * find the size of the esl header... i.e. always 0 but complicated */ static inline int32_t secdb_header_size_from_type(const efi_secdb_type_t secdb_type) { if (secdb_type < 0 || secdb_type >= MAX_SECDB_TYPE) { errno = EINVAL; return -1; } return efi_secdb_algs_[secdb_type].header_size; } /* * calculate secdb->listsz * returns 0 for lists with no signatures */ static inline size_t secdb_entry_size(efi_secdb_t *secdb) { size_t sz; if (!secdb || secdb->nsigs == 0) return 0; sz = sizeof(efi_signature_list_t) + secdb->hdrsz + secdb->sigsz * secdb->nsigs; debug("secdb:%p sz:%zd", secdb, sz); return sz; } /* * calculate all the secdb->listsz for a all the linked * efi_secdbs. * returns 0 for lists with no signatures */ static inline size_t secdb_size(efi_secdb_t *secdb) { list_t *pos = NULL; size_t sz = 0; if (!secdb) return 0; for_each_secdb(pos, &secdb->list) { efi_secdb_t *entry = list_entry(pos, efi_secdb_t, list); sz += secdb_entry_size(entry); } return sz; } /* * compare secdb_entry_t items */ extern int secdb_entry_cmp(const void *a, const void *b, void *state); extern int secdb_entry_cmp_descending(const void *a, const void *b, void *state); /* * compare efi_secdb_t items; */ extern int secdb_cmp(const void *a, const void *b, void *state); extern int secdb_cmp_descending(const void *a, const void *b, void *state); /* * hexdump with annotations */ extern void secdb_dump(efi_secdb_t *secdb, bool annotate); #endif /* PRIVATE_SECDB_H */ efivar-39/src/test/000077500000000000000000000000001455652431600143445ustar00rootroot00000000000000efivar-39/src/test/.gitignore000066400000000000000000000000071455652431600163310ustar00rootroot00000000000000tester efivar-39/src/test/Makefile000066400000000000000000000007001455652431600160010ustar00rootroot00000000000000SRCDIR = $(realpath .) include $(TOPDIR)/src/include/defaults.mk include $(TOPDIR)/src/include/version.mk CCLDFLAGS += -L$(TOPDIR)/src/ -Wl,-rpath=$(TOPDIR)/src/ LIBS=efivar all : tester install : clean : @rm -rfv tester *.o *.E *.S test : tester ./tester tester :: tester.o $(CC) $(cflags) $(LDFLAGS) -Wl,-rpath,$(TOPDIR)/src -L$(TOPDIR)/src -o $@ $^ -lefivar -ldl .PHONY: all clean install test include $(TOPDIR)/src/include/rules.mk efivar-39/src/test/tester.c000066400000000000000000000156131455652431600160240ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * tester.c * Copyright 2012-2018 Red Hat, Inc. * Copyright 2012-2018 Peter M. Jones */ #include #include #include #include #include #include #include #include #include #include #include #define TEST_GUID EFI_GUID(0x84be9c3e,0x8a32,0x42c0,0x891c,0x4c,0xd3,0xb0,0x72,0xbe,0xcc) uint8_t * __attribute__((malloc)) __attribute__((alloc_size(1))) get_random_bytes(size_t size) { uint8_t *ret = NULL; int errno_saved = 0; int fd = -1; if (!size) return ret; uint8_t *retdata = malloc(size); if (!retdata) goto fail; fd = open("/dev/urandom", O_RDONLY); if (fd < 0) goto fail; int rc = read(fd, retdata, size); if (rc < 0) goto fail; ret = retdata; retdata = NULL; fail: errno_saved = errno; if (fd >= 0) close(fd); if (retdata) free(retdata); errno = errno_saved; return ret; } struct test { const char *name; size_t size; int result; }; static void print_error(int line, struct test *test, int rc, char *fmt, ...) __attribute__ ((format (printf, 4, 5))); static void print_error(int line, struct test *test, int rc, char *fmt, ...) { fprintf(stderr, "FAIL: \"%s\"(line %d) (%d) ", test->name, line, rc); va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } #define report_error(test, ret, rc, ...) ({ \ __typeof(errno) __errno_saved = errno; \ free(testdata); \ if (data) { \ free(data); \ data = NULL; \ } \ if (test->result != rc) { \ print_error(__LINE__, test, rc, __VA_ARGS__); \ ret = -1; \ errno = __errno_saved; \ goto fail; \ } \ errno = __errno_saved; \ }) int do_test(struct test *test) { int rc = -1; errno = 0; uint8_t *testdata = NULL; uint8_t *data = NULL; testdata = get_random_bytes(test->size); if (testdata == NULL && errno != 0) { perror(test->name); return -1; } int ret = 0; printf("testing efi_set_variable()\n"); rc = efi_set_variable(TEST_GUID, test->name, testdata, test->size, EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, 0600); if (rc < 0) { report_error(test, ret, rc, "set test failed: %m\n"); } size_t datasize = 0; uint32_t attributes = 0; printf("testing efi_get_variable_size()\n"); rc = efi_get_variable_size(TEST_GUID, test->name, &datasize); if (rc < 0) report_error(test, ret, rc, "get size test failed: %m\n"); printf("testing efi_get_variable_exists()\n"); rc = efi_get_variable_exists(TEST_GUID, test->name); if (rc < 0) report_error(test, ret, rc, "get exists test failed: %m\n"); if (datasize != test->size) report_error(test, ret, -1, "get size test failed: wrong size: %zd should be %zd\n", datasize, test->size); printf("testing efi_get_variable()\n"); rc = efi_get_variable(TEST_GUID, test->name, &data, &datasize, &attributes); if (rc < 0) report_error(test, ret, rc, "get test failed: %m\n"); if (datasize != test->size) report_error(test, ret, -1, "get size test failed: wrong size: %zd should be %zd\n", datasize, test->size); if (testdata != NULL && test->size > 0) if (memcmp(data, testdata, test->size)) report_error(test, ret, rc, "get test failed: bad data\n"); free(data); data = NULL; if (attributes != (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE)) report_error(test, ret, rc, "get test failed: wrong attributes\n"); printf("testing efi_get_variable_attributes()\n"); rc = efi_get_variable_attributes(TEST_GUID, test->name, &attributes); if (rc < 0) report_error(test, ret, rc, "get attributes test failed: %m\n"); if (attributes != (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE)) report_error(test, ret, rc, "get attributes test failed: wrong attributes\n"); printf("testing efi_del_variable()\n"); rc = efi_del_variable(TEST_GUID, test->name); if (rc < 0) report_error(test, ret, rc, "del test failed: %m\n"); rc = efi_set_variable(TEST_GUID, test->name, testdata, test->size, EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, 0600); if (rc < 0) { report_error(test, ret, rc, "set test failed: %m\n"); } printf("testing efi_append_variable()\n"); rc = efi_append_variable(TEST_GUID, test->name, testdata, test->size, EFI_VARIABLE_APPEND_WRITE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE); if (rc < 0) { report_error(test, ret, rc, "append test failed: %m\n"); } printf("testing efi_get_variable()\n"); rc = efi_get_variable(TEST_GUID, test->name, &data, &datasize, &attributes); if (rc < 0) report_error(test, ret, rc, "get test failed: %m\n"); if (datasize != test->size * 2) report_error(test, ret, -1, "get size test failed: wrong size: %zd should be %zd (append may be at fault)\n", datasize, test->size * 2); if (memcmp(data, testdata, test->size)) report_error(test, ret, rc, "get test failed: bad data\n"); if (memcmp(data + test->size, testdata, test->size)) report_error(test, ret, rc, "get test failed: bad data\n"); printf("testing efi_del_variable()\n"); rc = efi_del_variable(TEST_GUID, test->name); if (rc < 0 && test->size != 0) report_error(test, ret, rc, "del test failed: %m\n"); else ret = test->result; free(data); free(testdata); fail: if (ret != test->result) return -1; return 0; } int main(void) { if (!efi_variables_supported()) { printf("UEFI variables not supported on this machine.\n"); return 0; } struct test tests[] = { {.name= "empty", .size = 0, .result= -1}, {.name= "one", .size = 1, .result= 0 }, {.name= "two", .size = 2, .result= 0 }, {.name= "three", .size = 3, .result= 0 }, {.name= "four", .size = 4, .result= 0 }, {.name= "five", .size = 5, .result= 0 }, {.name= "seven", .size = 7, .result= 0 }, {.name= "eight", .size = 8, .result= 0 }, {.name= "nine", .size = 9, .result= 0 }, {.name= "fifteen", .size = 15, .result= 0 }, {.name= "sixteen", .size = 16, .result= 0 }, {.name= "seventeen", .size = 17, .result= 0 }, {.name= "thirtyone", .size = 31, .result= 0 }, {.name= "thirtytwo", .size = 32, .result= 0 }, {.name= "thirtythree", .size = 33, .result= 0 }, {.name= "tentwentyfour", .size = 1024, .result= 0}, {.name= "tentwentyfive", .size = 1025, .result= 0}, {.name= "", .size = 0, .result= 0} }; for (int x = 0; tests[x].name[0] != '\0'; x++) { efi_del_variable(TEST_GUID, tests[x].name); } int ret = 0; for (int x = 0; tests[x].name[0] != '\0'; x++) { printf("About to test %s\n", tests[x].name); int rc = do_test(&tests[x]); if (rc < 0) { efi_del_variable(TEST_GUID, tests[x].name); ret = 1; break; } } return ret; } efivar-39/src/thread-test.c000066400000000000000000000101171455652431600157550ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * thread-test.c - test (some) efivar thread safety * Copyright Jonathan Marler */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include #include #define LOOP_COUNT 100 static int verbosity = 0; // returns: the number of threads created static size_t multi_pthread_create(pthread_t * threads, unsigned count, void *(*start_routine)(void *)) { size_t i = 0; int result; for (; i < count; i++) { result = pthread_create(&threads[i], NULL, start_routine, NULL); if (result != 0) { err(1, "pthread_create failed"); break; } } return i; } #define TEST_SUCCESS NULL #define TEST_FAIL ((void*)1) static const char *test_result_str(void *result) { if (result == TEST_SUCCESS) return "SUCCESS"; if (result == PTHREAD_CANCELED) return "CANCELED"; return "FAIL"; } // returns: 0 on success static int multi_pthread_join(pthread_t * threads, unsigned count, void **worst_result) { for (unsigned i = 0; i < count; i++) { void *result; int join_result; join_result = pthread_join(threads[i], &result); if (join_result != 0) { warnx("pthread_join failed"); return 1; } if (verbosity >= 1) printf("[MAIN-THREAD] child %d exited with %s\n", i, test_result_str(result)); if (result != NULL) { *worst_result = result; } } return 0; } static void *loop_get_variable_size_test(void *_ __attribute__((__unused__))) { if (verbosity >= 2) printf("[DEBUG] test running on new thread!\n"); for (unsigned i = 0; i < LOOP_COUNT; i++) { size_t size; efi_guid_t guid = { 0 }; int result; result = efi_get_variable_size(guid, "foo2", &size); if (result == 0 || errno != ENOENT) { err(1, "fail, iteration=%u, result=%d expected ENOENT, got", i, result); return TEST_FAIL; } else if (verbosity >= 2) { printf("[DEBUG] iteration=%u, result=%d errno=%d\n", i, result, errno); } } return TEST_SUCCESS; } static int multithreaded_test(size_t count, void *(*test_func)(void *)) { pthread_t *threads = alloca(sizeof(pthread_t) * count); if (count != multi_pthread_create(threads, count, test_func)) { // error already logged return 1; } void *worst_result = TEST_SUCCESS; if (multi_pthread_join(threads, count, &worst_result)) { // error already logged return 1; } if (verbosity >= 1) printf("worst result %s\n", test_result_str(worst_result)); return (worst_result == TEST_SUCCESS) ? 0 : -1; } static void __attribute__((__noreturn__)) usage(int ret) { FILE *out = ret == 0 ? stdout : stderr; fprintf(out, "Usage: %s [OPTION...]\n" " -v, --verbose be more verbose\n" " -t, --thread-count N use N threads\n" "Help options:\n" " -?, --help Show this help message\n" " --usage Display brief usage message\n", program_invocation_short_name); exit(ret); } int main(int argc, char *argv[]) { unsigned long thread_count = 64; char *sopts = "vt:?"; struct option lopts[] = { {"help", no_argument, 0, '?'}, {"quiet", no_argument, 0, 'q'}, {"thread-count", no_argument, 0, 't'}, {"usage", no_argument, 0, 0}, {"verbose", no_argument, 0, 'v'}, {0, 0, 0, 0}, }; int c; int i; int rc; while ((c = getopt_long(argc, argv, sopts, lopts, &i)) != -1) { switch (c) { case 'q': verbosity -= 1; break; case 't': thread_count = strtoul(optarg, NULL, 0); if (errno == ERANGE || errno == EINVAL) err(1, "invalid argument for -t: %s", optarg); break; case 'v': verbosity += 1; break; case '?': usage(EXIT_SUCCESS); break; case 0: if (strcmp(lopts[i].name, "usage")) usage(EXIT_SUCCESS); break; } } if (verbosity >= 1) printf("thread count %lu\n", thread_count); rc = multithreaded_test(thread_count, loop_get_variable_size_test); if (verbosity >= 0) printf("thread test %s\n", rc == 0 ? "passed" : "failed"); return rc; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/time.c000066400000000000000000000100071455652431600144650ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1 /* * time.c - efi_time_t helper functions * Copyright 2020 Peter Jones */ #include "efivar.h" int efi_time_to_tm(const efi_time_t * const s, struct tm *d) { if (!s || !d) { errno = EINVAL; return -1; } d->tm_year = s->year - 1900; d->tm_mon = s->month - 1; d->tm_mday = s->day; d->tm_hour = s->hour; d->tm_min = s->minute; /* * Just ignore EFI's range problem here and pretend we're in UTC * not UT1. */ d->tm_sec = s->second; d->tm_isdst = (s->daylight & EFI_TIME_IN_DAYLIGHT) ? 1 : 0; return 0; } int tm_to_efi_time(const struct tm * const s, efi_time_t *d, bool tzadj) { if (!s || !d) { errno = EINVAL; return -1; } d->pad2 = 0; d->daylight = s->tm_isdst ? EFI_TIME_IN_DAYLIGHT : 0; d->timezone = 0; d->nanosecond = 0; d->pad1 = 0; d->second = s->tm_sec < 60 ? s->tm_sec : 59; d->minute = s->tm_min; d->hour = s->tm_hour; d->day = s->tm_mday; d->month = s->tm_mon + 1; d->year = s->tm_year + 1900; if (tzadj) { tzset(); d->timezone = timezone / 60; } return 0; } static char *otz_; static char *ntz_; static const char * newtz(int16_t timezone_) { if (!otz_) otz_ = strdup(secure_getenv("TZ")); if (ntz_) { free(ntz_); ntz_ = NULL; } if (timezone_ == EFI_UNSPECIFIED_TIMEZONE) { unsetenv("TZ"); } else { char tzsign = timezone_ >= 0 ? '+' : '-'; int tzabs = tzsign == '+' ? timezone_ : -timezone_; int16_t tzhours = tzabs / 60; int16_t tzminutes = tzabs % 60; int rc; /* * I have no idea what the right thing to do with DST is * here, so I'm going to ignore it. */ rc = asprintf(&ntz_, "UTC%c%"PRId16":%"PRId16":00", tzsign, tzhours, tzminutes); if (rc < 1) return NULL; setenv("TZ", ntz_, 1); } tzset(); return ntz_; } static const char * oldtz(void) { if (ntz_) { free(ntz_); ntz_ = NULL; if (otz_) setenv("TZ", otz_, 1); else unsetenv("TZ"); } tzset(); return otz_; } efi_time_t * efi_gmtime_r(const time_t *time, efi_time_t *result) { struct tm tm = { 0 }; if (!time || !result) { errno = EINVAL; return NULL; } gmtime_r(time, &tm); tm_to_efi_time(&tm, result, false); return result; } efi_time_t * efi_gmtime(const time_t *time) { static efi_time_t ret; if (!time) { errno = EINVAL; return NULL; } efi_gmtime_r(time, &ret); return &ret; } efi_time_t * efi_localtime_r(const time_t *time, efi_time_t *result) { struct tm tm = { 0 }; if (!time || !result) { errno = EINVAL; return NULL; } localtime_r(time, &tm); tm_to_efi_time(&tm, result, true); return result; } efi_time_t * efi_localtime(const time_t *time) { static efi_time_t ret; if (!time) { errno = EINVAL; return NULL; } efi_localtime_r(time, &ret); return &ret; } time_t efi_mktime(const efi_time_t * const time) { struct tm tm = { 0 }; time_t ret; if (!time) { errno = EINVAL; return (time_t)-1; } newtz(time->timezone); efi_time_to_tm(time, &tm); ret = mktime(&tm); oldtz(); return ret; } char * efi_strptime(const char *s, const char *format, efi_time_t *time) { struct tm tm; char *end; if (!s || !format || !time) { errno = EINVAL; return NULL; } memset(&tm, 0, sizeof(tm)); end = strptime(s, format, &tm); if (end == NULL) return NULL; if (tm_to_efi_time(&tm, time, true) < 0) return NULL; return end; } char * efi_asctime_r(const efi_time_t * const time, char *buf) { struct tm tm = { 0, }; char *ret; newtz(time->timezone); efi_time_to_tm(time, &tm); ret = asctime_r(&tm, buf); oldtz(); return ret; } char * efi_asctime(const efi_time_t * const time) { struct tm tm; char *ret; newtz(time->timezone); efi_time_to_tm(time, &tm); ret = asctime(&tm); oldtz(); return ret; } size_t efi_strftime(char *s, size_t max, const char *format, const efi_time_t *time) { size_t ret = 0; struct tm tm = { 0 }; if (!s || !format || !time) { errno = EINVAL; return ret; } newtz(time->timezone); efi_time_to_tm(time, &tm); ret = strftime(s, max, format, &tm); oldtz(); return ret; } // vim:fenc=utf-8:tw=75:noet efivar-39/src/ucs2.h000066400000000000000000000145501455652431600144170ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * Copyright 2012-2016 Red Hat, Inc. */ #ifndef _EFIVAR_UCS2_H #define _EFIVAR_UCS2_H #define ev_bits(val, mask, shift) \ (((val) & ((mask) << (shift))) >> (shift)) /* * ucs2len(): Count the number of characters in a UCS-2 string. * s: a UCS-2 string * limit: the maximum number of uint16_t bytepairs to examine * * returns the number of characters before NUL is found (i.e., excluding * the NUL character). If limit is non-negative, no character index above * limit will be accessed, and the maximum return value is limit. */ static inline size_t UNUSED ucs2len(const void *s, ssize_t limit) { ssize_t i; const uint8_t *s8 = s; for (i = 0; i < (limit >= 0 ? limit : i+1) && !(s8[0] == 0 && s8[1] == 0); i++, s8 += 2) ; return i; } /* * ucs2size(): count the number of bytes in use by a UCS-2 string. * s: a UCS-2 string * limit: the maximum number of uint16_t bytepairs to examine * * returns the number of bytes, including NUL, in the UCS-2 string s. If * limit is non-negative, no character index above limit will be accessed, * and the maximum return value is limit. */ static inline size_t UNUSED ucs2size(const void *s, ssize_t limit) { size_t rc = ucs2len(s, limit); rc *= sizeof (uint16_t); rc += sizeof (uint16_t); if (limit > 0 && rc > (size_t)limit) return limit; return rc; } /* * utf8len(): Count the number of characters in a UTF-8 string. * s: a UTF-8 string * limit: the maximum number of bytes to examine * * returns the number of UTF-8 charters before NUL is found (i.e., * excluding the NUL character). If limit is non-negative, no character * index above limit will be accessed, and the maximum return value is * limit. * * Caveat: only good up to 3-byte sequences. */ static inline size_t UNUSED NONNULL(1) utf8len(const unsigned char *s, ssize_t limit) { ssize_t i, j; for (i = 0, j = 0; i < (limit >= 0 ? limit : i+1) && s[i] != '\0'; j++, i++) { if (!(s[i] & 0x80)) { ; } else if ((s[i] & 0xc0) == 0xc0 && !(s[i] & 0x20)) { i += 1; } else if ((s[i] & 0xe0) == 0xe0 && !(s[i] & 0x10)) { i += 2; } } return j; } /* * utf8size(): count the number of bytes in use by a UTF-8 string. * s: a UTF-8 string * limit: the maximum number of bytes to examine * * returns the number of bytes, including NUL, in the UTF-8 string s. * If limit is non-negative, no character index above limit will be * accessed, and the maximum return value is limit. */ static inline size_t UNUSED NONNULL(1) utf8size(const unsigned char *s, ssize_t limit) { size_t ret = utf8len(s,limit); if (ret < (limit >= 0 ? (size_t)limit : ret+1)) ret++; return ret; } /* * ucs2_to_utf8(): convert UCS-2 to UTF-8 * s: the UCS-2 string * limit: the maximum number of characters to copy from s, including the * NUL terminator, or -1 for no limit. * * returns an allocated string, into which at most limit - 1 characters of * UTF-8 are translated from UCS-2. The return value is *always* * NUL-terminated. */ static inline unsigned char * UNUSED ucs2_to_utf8(const void * const s, ssize_t limit) { ssize_t i, j; unsigned char *out, *ret; const uint16_t * const chars = s; if (limit < 0) limit = ucs2len(chars, -1); out = malloc(limit * 6 + 1); if (!out) return NULL; memset(out, 0, limit * 6 +1); for (i=0, j=0; chars[i] && i < (limit >= 0 ? limit : i+1); i++,j++) { if (chars[i] <= 0x7f) { out[j] = chars[i]; } else if (chars[i] > 0x7f && chars[i] <= 0x7ff) { out[j++] = 0xc0 | ev_bits(chars[i], 0x1f, 6); out[j] = 0x80 | ev_bits(chars[i], 0x3f, 0); #if 1 } else if (chars[i] > 0x7ff) { out[j++] = 0xe0 | ev_bits(chars[i], 0xf, 12); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 6); out[j] = 0x80| ev_bits(chars[i], 0x3f, 0); } #else } else if (chars[i] > 0x7ff && chars[i] < 0x10000) { out[j++] = 0xe0 | ev_bits(chars[i], 0xf, 12); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 6); out[j] = 0x80| ev_bits(chars[i], 0x3f, 0); } else if (chars[i] > 0xffff && chars[i] < 0x200000) { out[j++] = 0xf0 | ev_bits(chars[i], 0x7, 18); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 12); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 6); out[j] = 0x80| ev_bits(chars[i], 0x3f, 0); } else if (chars[i] > 0x1fffff && chars[i] < 0x4000000) { out[j++] = 0xf8 | ev_bits(chars[i], 0x3, 24); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 18); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 12); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 6); out[j] = 0x80 | ev_bits(chars[i], 0x3f, 0); } else if (chars[i] > 0x3ffffff) { out[j++] = 0xfc | ev_bits(chars[i], 0x1, 30); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 24); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 18); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 12); out[j++] = 0x80 | ev_bits(chars[i], 0x3f, 6); out[j] = 0x80 | ev_bits(chars[i], 0x3f, 0); } #endif } out[j++] = '\0'; ret = realloc(out, j); if (!ret) { free(out); return NULL; } return ret; } /* * utf8_to_ucs2(): convert UTF-8 to UCS-2 * s: the destination buffer to write to. * size: the size of the allocation to write to * terminate: whether or not to add a terminator to the string * utf8: the utf8 source * * returns the number of characters written to s, including the NUL * terminator if "terminate" is true, or -1 on error. In the case of an * error, the buffer will not be modified. */ static inline ssize_t UNUSED NONNULL(4) utf8_to_ucs2(void *s, ssize_t size, bool terminate, const unsigned char *utf8) { ssize_t req; ssize_t i, j; uint16_t *ucs2 = s; uint16_t val16; if (!ucs2 && size > 0) { errno = EINVAL; return -1; } req = utf8len(utf8, -1) * sizeof (uint16_t); if (terminate && req > 0) req += 1; if (size == 0 || req <= 0) return req; if (size < req) { errno = ENOSPC; return -1; } for (i=0, j=0; i < (size >= 0 ? size : i+1) && utf8[i] != '\0'; j++) { uint32_t val = 0; if ((utf8[i] & 0xe0) == 0xe0 && !(utf8[i] & 0x10)) { val = ((utf8[i+0] & 0x0f) << 12) |((utf8[i+1] & 0x3f) << 6) |((utf8[i+2] & 0x3f) << 0); i += 3; } else if ((utf8[i] & 0xc0) == 0xc0 && !(utf8[i] & 0x20)) { val = ((utf8[i+0] & 0x1f) << 6) |((utf8[i+1] & 0x3f) << 0); i += 2; } else { val = utf8[i] & 0x7f; i += 1; } val16 = val; ucs2[j] = val16; } if (terminate) { val16 = 0; ucs2[j++] = val16; } return j; }; #endif /* _EFIVAR_UCS2_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/util.c000066400000000000000000000005201455652431600145030ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * util.c - utility functions and data that can't go in a header * Copyright Peter Jones */ #include "efivar.h" size_t HIDDEN page_size = 4096; void CONSTRUCTOR set_up_global_constants(void) { page_size = sysconf(_SC_PAGE_SIZE); } // vim:fenc=utf-8:tw=75:noet efivar-39/src/util.h000066400000000000000000000250031455652431600145130ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * Copyright 2011-2014 Red Hat, Inc. * All rights reserved. * * Author(s): Peter Jones */ #ifndef EFIVAR_UTIL_H #define EFIVAR_UTIL_H 1 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "include/efivar/efivar.h" #include "compiler.h" #include "list.h" static inline int UNUSED read_file(int fd, uint8_t **result, size_t *bufsize) { uint8_t *p; size_t size = 4096; size_t filesize = 0; ssize_t s = 0; uint8_t *buf, *newbuf; if (!(newbuf = calloc(size, sizeof (uint8_t)))) { efi_error("could not allocate memory"); *result = buf = NULL; *bufsize = 0; return -1; } buf = newbuf; do { p = buf + filesize; /* size - filesize shouldn't exceed SSIZE_MAX because we're * only allocating 4096 bytes at a time and we're checking that * before doing so. */ s = read(fd, p, size - filesize); if (s < 0 && errno == EAGAIN) { /* * if we got EAGAIN, there's a good chance we've hit * the kernel rate limiter. Doing more reads is just * going to make it worse, so instead, give it a rest. */ sched_yield(); continue; } else if (s < 0) { int saved_errno = errno; free(buf); *result = buf = NULL; *bufsize = 0; errno = saved_errno; efi_error("could not read from file"); return -1; } filesize += s; /* only exit for empty reads */ if (s == 0) break; if (filesize >= size) { /* See if we're going to overrun and return an error * instead. */ if (size > (size_t)-1 - 4096) { free(buf); *result = buf = NULL; *bufsize = 0; errno = ENOMEM; efi_error("could not read from file"); return -1; } newbuf = realloc(buf, size + 4096); if (newbuf == NULL) { int saved_errno = errno; free(buf); *result = buf = NULL; *bufsize = 0; errno = saved_errno; efi_error("could not allocate memory"); return -1; } buf = newbuf; memset(buf + size, '\0', 4096); size += 4096; } } while (1); newbuf = realloc(buf, filesize+1); if (!newbuf) { free(buf); *result = buf = NULL; efi_error("could not allocate memory"); return -1; } newbuf[filesize] = '\0'; *result = newbuf; *bufsize = filesize+1; return 0; } static inline uint64_t UNUSED lcm(uint64_t x, uint64_t y) { uint64_t m = x, n = y, o; while ((o = m % n)) { m = n; n = o; } return (x / n) * y; } #define xfree(x) ({ if (x) { free(x); x = NULL; } }) #ifndef strdupa #define strdupa(s) \ (__extension__ ({ \ const char *__in = (s); \ size_t __len; \ char *__out = NULL; \ if (__in) { \ __len = strlen (__in); \ __out = (char *) alloca (__len + 1); \ strcpy(__out, __in); \ } \ __out; \ })) #endif #ifndef strndupa #define strndupa(s, l) \ (__extension__ ({ \ const char *__in = (s); \ size_t __len; \ char *__out = NULL; \ if (__in) { \ __len = strnlen (__in, (l)); \ __out = (char *) alloca (__len + 1); \ strncpy(__out, __in, __len); \ __out[__len] = '\0'; \ } \ __out; \ })) #endif #define asprintfa(str, fmt, args...) \ ({ \ char *_tmp = NULL; \ int _rc; \ *(str) = NULL; \ _rc = asprintf((str), (fmt), ## args); \ if (_rc > 0) { \ _tmp = strdupa(*(str)); \ if (!_tmp) { \ _rc = -1; \ } else { \ free(*(str)); \ *(str) = _tmp; \ } \ } else { \ _rc = -1; \ } \ _rc; \ }) #define vasprintfa(str, fmt, ap) \ ({ \ char *_tmp = NULL; \ int _rc; \ *(str) = NULL; \ _rc = vasprintf((str), (fmt), (ap)); \ if (_rc > 0) { \ _tmp = strdupa(*(str)); \ if (!_tmp) { \ _rc = -1; \ } else { \ free(*(str)); \ *(str) = _tmp; \ } \ } else { \ _rc = -1; \ } \ _rc; \ }) extern size_t HIDDEN page_size; static inline ssize_t UNUSED get_file(uint8_t **result, const char * const fmt, ...) { char *path; uint8_t *buf = NULL; size_t bufsize = 0; ssize_t rc; va_list ap; int error; int fd; if (result == NULL) { efi_error("invalid parameter 'result'"); return -1; } va_start(ap, fmt); rc = vasprintfa(&path, fmt, ap); va_end(ap); if (rc < 0) { efi_error("could not allocate memory"); return -1; } fd = open(path, O_RDONLY); if (fd < 0) { efi_error("could not open file \"%s\" for reading", path); return -1; } rc = read_file(fd, &buf, &bufsize); error = errno; close(fd); errno = error; if (rc < 0 || bufsize < 1) { /* * I don't think this can happen, but I can't convince * cov-scan */ if (buf) free(buf); *result = NULL; efi_error("could not read file \"%s\"", path); return -1; } *result = buf; return bufsize; } static inline void UNUSED swizzle_guid_to_uuid(efi_guid_t *guid) { uint32_t *u32; uint16_t *u16; u32 = (uint32_t *)guid; u32[0] = __builtin_bswap32(u32[0]); u16 = (uint16_t *)&u32[1]; u16[0] = __builtin_bswap16(u16[0]); u16[1] = __builtin_bswap16(u16[1]); } static inline void UNUSED debug_markers_(const char * const file, int line, const char * const func, int level, const char * const prefix, ...) { FILE *logfile; va_list ap; int pos; int n = 0; bool on = false; va_start(ap, prefix); for (n = 0, pos = va_arg(ap, int); pos >= 0; pos = va_arg(ap, int), n++) ; va_end(ap); if (n < 2) return; n = 0; efi_set_loglevel(level); logfile = efi_get_logfile(); if (!logfile) return; fprintf(logfile, "%s:%d %s(): %s", file, line, func, prefix ? prefix : ""); va_start(ap, prefix); while ((pos = va_arg(ap, int)) >= 0) { for (; n <= pos; n++) { if (n == pos) on = !on; fprintf(logfile, "%c", on ? '^' : ' '); } } fprintf(logfile, "\n"); va_end(ap); } static inline int UNUSED log_(char *file, int line, const char *func, int level, char *fmt, ...) { efi_set_loglevel(level); FILE *logfile = efi_get_logfile(); size_t len = strlen(fmt); va_list ap; int rc = 0; int sz; if (!logfile) return 0; sz = fprintf(logfile, "%s:%d %s(): ", file, line, func); if (sz < 0) return sz; rc += sz; va_start(ap, fmt); sz = vfprintf(logfile, fmt, ap); va_end(ap); if (sz < 0) { return sz; } rc += sz; if (!len || fmt[len - 1] != '\n') { sz = fprintf(logfile, "\n"); if (sz < 0) return sz; rc += sz; } fflush(logfile); return rc; } #define LOG_VERBOSE 0 #define LOG_DEBUG 1 #define LOG_DEBUG_DUMPER 2 #define DEBUG_LEVEL 1 /* * makeguids includes util.h, which means any declarations that reference * something we're not linking in to makeguids needs to be avoided here. * * log_() uses efi_set_loglevel()/efi_get_loglevel(), which are provided by * libefivar, and we're not actually using it meaningfully in makeguids at * all, but the compiler gets to choose whether to include it in the output * for a compilation unit, and removing it is an optimization that is * optional. So wrapping this here keeps from makeguids getting a linker * error on a symbol it isn't actually using anyway. */ #ifdef log #undef log #endif #ifdef EFIVAR_BUILD_ENVIRONMENT #define log(level, fmt, args...) #define debug(fmt, args...) #else #define log(level, fmt, args...) log_(__FILE__, __LINE__, __func__, level, fmt, ## args) #define debug(fmt, args...) log(DEBUG_LEVEL, fmt, ## args) #endif #define log_hex_(file, line, func, level, buf, size) \ ({ \ efi_set_loglevel(level); \ fhexdumpf(efi_get_logfile(), "%s:%d %s(): ", \ (uint8_t *)buf, size, \ file, line, func); \ }) #define log_hex(level, buf, size) log_hex_(__FILE__, __LINE__, __func__, level, buf, size) #define debug_hex(buf, size) log_hex(LOG_DEBUG, buf, size) #define dbgmk(prefix, args...) debug_markers_(__FILE__, __LINE__, __func__, LOG_DEBUG, prefix, ## args, -1) static inline UNUSED void show_errors(void) { int rc = 1; if (efi_get_verbose() < 1) return; printf("Error trace:\n"); for (int i = 0; rc > 0; i++) { char *filename = NULL; char *function = NULL; int line = 0; char *message = NULL; int error = 0; size_t len; rc = efi_error_get(i, &filename, &function, &line, &message, &error); if (rc < 0) err(1, "error fetching trace value"); if (rc == 0) break; printf(" %s:%d %s(): %s: %s", filename, line, function, strerror(error), message); len = strlen(message); if (len >= 1 && message[len-1] != '\n') printf("\n"); } fflush(stdout); efi_error_clear(); } typedef struct { list_t list; void *ptr; } ptrlist_t; static inline UNUSED void ptrlist_add(list_t *list, char *ptr) { ptrlist_t *pl = calloc(1, sizeof(ptrlist_t)); if (!pl) err(1, "could not allocate memory"); pl->ptr = ptr; list_add_tail(&pl->list, list); } #define for_each_ptr(pos, head) list_for_each(pos, head) #define for_each_ptr_safe(pos, tmp, head) list_for_each_safe(pos, tmp, head) static inline UNUSED int16_t hexchar_to_bin(char hex) { if (hex >= '0' && hex <= '9') return hex - '0'; if (hex >= 'A' && hex <= 'F') return hex - 'A' + 10; if (hex >= 'a' && hex <= 'f') return hex - 'a' + 10; return -1; } static inline UNUSED uint8_t * hex_to_bin(char *hex, size_t size) { uint8_t *ret = calloc(1, size+1); if (!ret) return NULL; for (unsigned int i = 0, j = 0; i < size*2; i+= 2, j++) { int16_t val; val = hexchar_to_bin(hex[i]); if (val > 15 || val < 0) goto out_of_range; ret[j] = (val & 0xf) << 4; val = hexchar_to_bin(hex[i+1]); if (val > 15 || val < 0) goto out_of_range; ret[j] |= val & 0xf; }; return ret; out_of_range: free(ret); errno = ERANGE; return NULL; } #define LEG(x, y) \ ({ \ intmax_t x_ = (intmax_t)(x); \ intmax_t y_ = (intmax_t)(y); \ ((x_ > y_) ? '>' : ((x_ < y_) ? '<' : '='));\ }) #define LEGR(r) (((r) > 0) ? '>' : (((r) < 0) ? '<' : '=')) /* * this is isprint() but it doesn't consider characters that move the * cursor or have other side effects as printable */ static inline bool UNUSED safe_to_print(const int c) { if (!isprint(c)) return false; switch (c) { case '\a': case '\b': case '\t': case '\n': case '\v': case '\f': case '\r': return false; default: break; } return true; } #endif /* EFIVAR_UTIL_H */ // vim:fenc=utf-8:tw=75:noet efivar-39/src/vars.c000066400000000000000000000312211455652431600145030ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * libefivar - library for the manipulation of EFI variables * Copyright 2012-2013 Red Hat, Inc. */ #include "fix_coverity.h" #include #include #include #include #include #include #include #include #include #include #include "efivar.h" static const char default_vars_path[] = "/sys/firmware/efi/vars/"; static const char * get_vars_path(void) { static const char *path; if (path) return path; path = getenv("VARS_PATH"); if (!path) path = default_vars_path; return path; } typedef struct efi_kernel_variable_32_t { uint16_t VariableName[1024/sizeof(uint16_t)]; efi_guid_t VendorGuid; uint32_t DataSize; uint8_t Data[1024]; uint32_t Status; uint32_t Attributes; } PACKED efi_kernel_variable_32_t; typedef struct efi_kernel_variable_64_t { uint16_t VariableName[1024/sizeof(uint16_t)]; efi_guid_t VendorGuid; uint64_t DataSize; uint8_t Data[1024]; uint64_t Status; uint32_t Attributes; } PACKED efi_kernel_variable_64_t; static ssize_t get_file_data_size(int dfd, char *name) { char raw_var[NAME_MAX + 9]; memset(raw_var, '\0', sizeof (raw_var)); strncpy(raw_var, name, NAME_MAX); strcat(raw_var, "/raw_var"); int fd = openat(dfd, raw_var, O_RDONLY); if (fd < 0) { efi_error("openat failed"); return -1; } char buf[4096]; ssize_t sz, total = 0; int tries = 5; while (1) { sz = read(fd, buf, 4096); if (sz < 0 && (errno == EAGAIN || errno == EINTR)) { if (tries--) continue; total = -1; break; } if (sz < 0) { int saved_errno = errno; close(fd); errno = saved_errno; return -1; } if (sz == 0) break; total += sz; } close(fd); return total; } /* * Determine which ABI the kernel has given us. * * We have two situations - before and after kernel's commit e33655a38. * Before hand, the situation is like: * 64-on-64 - 64-bit DataSize and status * 32-on-32 - 32-bit DataSize and status * 32-on-64 - 64-bit DataSize and status * * After it's like this if CONFIG_COMPAT is enabled: * 64-on-64 - 64-bit DataSize and status * 32-on-64 - 32-bit DataSize and status * 32-on-32 - 32-bit DataSize and status * * Is there a better way to figure this out? * Submit your patch here today! */ static int is_64bit(void) { static int sixtyfour_bit = -1; DIR *dir = NULL; int dfd = -1; int saved_errno; if (sixtyfour_bit != -1) return sixtyfour_bit; dir = opendir(get_vars_path()); if (!dir) goto err; dfd = dirfd(dir); if (dfd < 0) goto err; while (1) { struct dirent *entry = readdir(dir); if (entry == NULL) break; if (!strcmp(entry->d_name, "..") || !strcmp(entry->d_name, ".")) continue; ssize_t size = get_file_data_size(dfd, entry->d_name); if (size < 0) { continue; } else if (size == 2084) { sixtyfour_bit = 1; } else { sixtyfour_bit = 0; } errno = 0; break; } if (sixtyfour_bit == -1) sixtyfour_bit = __SIZEOF_POINTER__ == 4 ? 0 : 1; err: saved_errno = errno; if (dir) closedir(dir); errno = saved_errno; return sixtyfour_bit; } static int get_size_from_file(const char *filename, size_t *retsize) { uint8_t *buf = NULL; size_t bufsize = -1; int errno_value; int ret = -1; int fd = open(filename, O_RDONLY); if (fd < 0) { efi_error("open(%s, O_RDONLY) failed", filename); goto err; } int rc = read_file(fd, &buf, &bufsize); if (rc < 0) { efi_error("read_file(%s) failed", filename); goto err; } long long size = strtoll((char *)buf, NULL, 0); if ((size == LLONG_MIN || size == LLONG_MAX) && errno == ERANGE) { *retsize = -1; } else if (size < 0) { *retsize = -1; } else { *retsize = (size_t)size; ret = 0; } err: errno_value = errno; if (fd >= 0) close(fd); if (buf != NULL) free(buf); errno = errno_value; return ret; } static int vars_probe(void) { char *newvar; /* If we can't tell if it's 64bit or not, this interface is no good. */ if (is_64bit() < 0) { efi_error("is_64bit() failed"); return 0; } if (asprintfa(&newvar, "%s%s", get_vars_path(), "new_var") < 0) { efi_error("asprintfa failed"); return 0; } if (!access(newvar, F_OK)) return 1; efi_error("access(%s, F_OK) failed", newvar); return 0; } static int vars_get_variable_size(efi_guid_t guid, const char *name, size_t *size) { int errno_value; int ret = -1; char *path = NULL; int rc = asprintf(&path, "%s%s-"GUID_FORMAT"/size", get_vars_path(), name, GUID_FORMAT_ARGS(&guid)); if (rc < 0) { efi_error("asprintf failed"); goto err; } size_t retsize = 0; rc = get_size_from_file(path, &retsize); if (rc >= 0) { ret = 0; *size = retsize; } else if (rc < 0) { efi_error("get_size_from_file(%s) failed", path); } err: errno_value = errno; if (path) free(path); errno = errno_value; return ret; } static int vars_get_variable_attributes(efi_guid_t guid, const char *name, uint32_t *attributes) { int ret = -1; uint8_t *data; size_t data_size; uint32_t attribs; ret = efi_get_variable(guid, name, &data, &data_size, &attribs); if (ret < 0) { efi_error("efi_get_variable() failed"); return ret; } *attributes = attribs; if (data) free(data); return ret; } static int vars_get_variable(efi_guid_t guid, const char *name, uint8_t **data, size_t *data_size, uint32_t *attributes) { int errno_value; int ret = -1; uint8_t *buf = NULL; size_t bufsize = -1; char *path = NULL; int rc; int fd = -1; int ratelimit; /* * The kernel rate limiter hits us if we go faster than 100 efi * variable reads per second as non-root. So if we're not root, just * delay this long after each read. The user is not going to notice. * * 1s / 100 = 10000us. */ ratelimit = geteuid() == 0 ? 0 : 10000; rc = asprintf(&path, "%s%s-" GUID_FORMAT "/raw_var", get_vars_path(), name, GUID_FORMAT_ARGS(&guid)); if (rc < 0) { efi_error("asprintf failed"); goto err; } fd = open(path, O_RDONLY); if (fd < 0) { efi_error("open(%s, O_RDONLY) failed", path); goto err; } usleep(ratelimit); rc = read_file(fd, &buf, &bufsize); if (rc < 0) { efi_error("read_file(%s) failed", path); goto err; } bufsize -= 1; /* read_file pads out 1 extra byte to NUL it */ if (is_64bit()) { efi_kernel_variable_64_t *var64; if (bufsize != sizeof(efi_kernel_variable_64_t)) { errno = EFBIG; efi_error("file size is wrong for 64-bit variable (%zd of %zd)", bufsize, sizeof(efi_kernel_variable_64_t)); goto err; } var64 = (void *)buf; *data = malloc(var64->DataSize); if (!*data) { efi_error("malloc failed"); goto err; } memcpy(*data, var64->Data, var64->DataSize); *data_size = var64->DataSize; *attributes = var64->Attributes; } else { efi_kernel_variable_32_t *var32; if (bufsize != sizeof(efi_kernel_variable_32_t)) { efi_error("file size is wrong for 32-bit variable (%zd of %zd)", bufsize, sizeof(efi_kernel_variable_32_t)); errno = EFBIG; goto err; } var32 = (void *)buf; *data = malloc(var32->DataSize); if (!*data) { efi_error("malloc failed"); goto err; } memcpy(*data, var32->Data, var32->DataSize); *data_size = var32->DataSize; *attributes = var32->Attributes; } ret = 0; err: errno_value = errno; if (buf) free(buf); if (fd >= 0) close(fd); if (path) free(path); errno = errno_value; return ret; } static int vars_del_variable(efi_guid_t guid, const char *name) { int errno_value; int ret = -1; char *path = NULL; int rc; int fd = -1; uint8_t *buf = NULL; size_t buf_size = 0; char *delvar; rc = asprintf(&path, "%s%s-" GUID_FORMAT "/raw_var", get_vars_path(), name, GUID_FORMAT_ARGS(&guid)); if (rc < 0) { efi_error("asprintf failed"); goto err; } fd = open(path, O_RDONLY); if (fd < 0) { efi_error("open(%s, O_RDONLY) failed", path); goto err; } rc = read_file(fd, &buf, &buf_size); buf_size -= 1; /* read_file pads out 1 extra byte to NUL it */ if (rc < 0) { efi_error("read_file(%s) failed", path); goto err; } if (buf_size != sizeof(efi_kernel_variable_64_t) && buf_size != sizeof(efi_kernel_variable_32_t)) { efi_error("variable size %zd is not 32-bit (%zd) or 64-bit (%zd)", buf_size, sizeof(efi_kernel_variable_32_t), sizeof(efi_kernel_variable_64_t)); errno = EFBIG; goto err; } if (asprintfa(&delvar, "%s%s", get_vars_path(), "del_var") < 0) { efi_error("asprintfa() failed"); goto err; } close(fd); fd = open(delvar, O_WRONLY); if (fd < 0) { efi_error("open(%s, O_WRONLY) failed", delvar); goto err; } rc = write(fd, buf, buf_size); if (rc >= 0) ret = 0; else efi_error("write() failed"); err: errno_value = errno; if (buf) free(buf); if (fd >= 0) close(fd); if (path) free(path); errno = errno_value; return ret; } static int _vars_chmod_variable(char *path, mode_t mode) { mode_t mask = umask(umask(0)); char *files[] = { "", "attributes", "data", "guid", "raw_var", "size", NULL }; int saved_errno = 0; int ret = 0; for (int i = 0; files[i] != NULL; i++) { char *new_path = NULL; int rc = asprintf(&new_path, "%s/%s", path, files[i]); if (rc > 0) { rc = chmod(new_path, mode & ~mask); if (rc < 0) { if (saved_errno == 0) saved_errno = errno; ret = -1; } free(new_path); } else if (rc < 0) { if (saved_errno == 0) saved_errno = errno; ret = -1; } } errno = saved_errno; return ret; } static int vars_chmod_variable(efi_guid_t guid, const char *name, mode_t mode) { if (strlen(name) > 1024) { errno = EINVAL; return -1; } char *path; int rc = asprintf(&path, "%s%s-" GUID_FORMAT, get_vars_path(), name, GUID_FORMAT_ARGS(&guid)); if (rc < 0) { efi_error("asprintf failed"); return -1; } rc = _vars_chmod_variable(path, mode); int saved_errno = errno; efi_error("_vars_chmod_variable() failed"); free(path); errno = saved_errno; return rc; } static int vars_set_variable(efi_guid_t guid, const char *name, const uint8_t *data, size_t data_size, uint32_t attributes, mode_t mode) { int errno_value; size_t len; int ret = -1; int fd = -1; if (strlen(name) > 1024) { efi_error("variable name size is too large (%zd of 1024)", strlen(name)); errno = EINVAL; return -1; } if (data_size > 1024) { efi_error("variable data size is too large (%zd of 1024)", data_size); errno = ENOSPC; return -1; } char *path; int rc = asprintf(&path, "%s%s-" GUID_FORMAT "/data", get_vars_path(), name, GUID_FORMAT_ARGS(&guid)); if (rc < 0) { efi_error("asprintf failed"); goto err; } len = rc; if (!access(path, F_OK)) { rc = efi_del_variable(guid, name); if (rc < 0) { efi_error("efi_del_variable failed"); goto err; } } char *newvar; if (asprintfa(&newvar, "%s%s", get_vars_path(), "new_var") < 0) { efi_error("asprintfa failed"); goto err; } if (is_64bit()) { efi_kernel_variable_64_t var64 = { .VendorGuid = guid, .DataSize = data_size, .Status = 0, .Attributes = attributes }; for (int i = 0; name[i] != '\0'; i++) var64.VariableName[i] = name[i]; memcpy(var64.Data, data, data_size); fd = open(newvar, O_WRONLY); if (fd < 0) { efi_error("open(%s, O_WRONLY) failed", newvar); goto err; } rc = write(fd, &var64, sizeof(var64)); } else { efi_kernel_variable_32_t var32 = { .VendorGuid = guid, .DataSize = data_size, .Status = 0, .Attributes = attributes }; for (int i = 0; name[i] != '\0'; i++) var32.VariableName[i] = name[i]; memcpy(var32.Data, data, data_size); fd = open(newvar, O_WRONLY); if (fd < 0) { efi_error("open(%s, O_WRONLY) failed", newvar); goto err; } rc = write(fd, &var32, sizeof(var32)); } if (rc >= 0) ret = 0; else efi_error("write() failed"); /* this is inherently racy, but there's no way to do it correctly with * this kernel API. Fortunately, all directory contents get created * with root.root ownership and an effective umask of 177 */ path[len-5] = '\0'; _vars_chmod_variable(path, mode); err: errno_value = errno; if (path) free(path); if (fd >= 0) close(fd); errno = errno_value; return ret; } static int vars_get_next_variable_name(efi_guid_t **guid, char **name) { int rc; const char *vp = get_vars_path(); rc = generic_get_next_variable_name(vp, guid, name); if (rc < 0) efi_error("generic_get_next_variable_name(%s,...) failed", vp); return rc; } struct efi_var_operations vars_ops = { .name = "vars", .probe = vars_probe, .set_variable = vars_set_variable, .del_variable = vars_del_variable, .get_variable = vars_get_variable, .get_variable_attributes = vars_get_variable_attributes, .get_variable_size = vars_get_variable_size, .get_next_variable_name = vars_get_next_variable_name, .chmod_variable = vars_chmod_variable, }; // vim:fenc=utf-8:tw=75:noet efivar-39/src/x509.h000066400000000000000000000034761455652431600142550ustar00rootroot00000000000000// SPDX-License-Identifier: LGPL-2.1-or-later /* * x509.h - X.509/ASN.1 helper functions * Copyright 2019-2020 Peter M. Jones */ #ifndef EFIVAR_X509_H #define EFIVAR_X509_H #define SMALLEST_POSSIBLE_DER_SEQ 3 #include #include #include "util.h" static inline int32_t __attribute__((unused)) get_asn1_seq_size(uint8_t *location, uint32_t size) { uint8_t i; uint8_t octets; uint32_t der_len = 0; if (size < SMALLEST_POSSIBLE_DER_SEQ) return -1; // If it's not a CONSTRUCTED SEQUENCE it's not a certificate if (location[0] != 0x30) { debug("%p: %d != 0x30", &location[0], location[0]); return -1; } if (!(location[1] & 0x80)) { // Short form, which is too small to hold a certificate. debug("%p: %d & 0x80 == 1", &location[1], location[1]); return -1; } // Long form octets = location[1] & 0x7; // There is no chance our data is more than 3GB. if (octets > 4 || (octets == 4 && (location[2] & 0x8))) { debug("octets: %" PRIu32 " %p:%d", octets, &location[2], location[2] & 0x8); return -1; } // and if our size won't fit in the data it's wrong as well if (size - 2 < octets) { debug("size-2: %" PRIu32 " < octets %" PRIu32, size - 2, octets); return -1; } for (i = 0; i < octets; i++) { der_len <<= 8; debug("der_len %" PRIu32 " |= location[%u] = %u = %u", der_len, i + 2, location[i + 2], der_len | location[i + 2]); der_len |= location[i + 2]; } // and if der_len is greater than what's left, it's bad too. if (size - 2 - octets < der_len) { debug("size - 2 - octets (%" PRIu32 ") < der_len (%" PRIu32 ")", size - 2 - octets, der_len); return -1; } // or else it's a reasonable certificate from a size point of view. return der_len + 4; } #undef SMALLEST_POSSIBLE_DER_SEQ #endif // vim:fenc=utf-8:tw=75:noet efivar-39/tests/000077500000000000000000000000001455652431600137405ustar00rootroot00000000000000efivar-39/tests/.gitignore000066400000000000000000000002211455652431600157230ustar00rootroot00000000000000!*.cer !*.esl *.esl.txt *.result.* !*.var *.export.var test.*.result.var test.*.esl.result test.*.esl.goal.txt !test.esl.annotation.esl.goal.txt efivar-39/tests/Makefile000066400000000000000000000301501455652431600153770ustar00rootroot00000000000000# # Makefile # Peter Jones, 2019-06-18 11:10 # TESTS = test.dmpstore.export \ test.efivar.export \ test.grubenv.var \ test.bootorder.var \ test.conin.var \ test.efivar.threading \ test.parse.db \ test.esl.annotation \ test.esl.sha256.unsorted \ test.esl.sha256.ascending \ test.esl.sha256.removal.descending \ test.esl.sha256.addition.unsorted \ test.esl.cert.addition \ test.esl.cert.removal all: clean $(TESTS) GRUB_PREFIX ?= grub2 VALGRIND ?= V ?= 0 ifeq ($(V),0) quiet=@ rmverbose= else quiet= rmverbose=-v endif ifeq ($(V),2) loud=-vvvv else loud= endif EFIVAR ?= $(VALGRIND) $(TOPDIR)/src/efivar $(loud) EFISECDB ?= $(VALGRIND) $(TOPDIR)/src/efisecdb $(loud) EFIVAR ?= $(VALGRIND) $(TOPDIR)/src/efivar $(loud) clean: $(quiet)rm $(rmverbose) -f test.*.result* \ test.esl.annotation.esl.result \ test.esl.cert.addition.esl.goal.txt \ test.esl.cert.removal.esl.goal.txt \ test.esl.sha256.addition.unsorted.esl.goal.txt \ test.esl.sha256.ascending.esl.goal.txt \ test.esl.sha256.removal.descending.esl.goal.txt \ test.esl.sha256.unsorted.esl.goal.txt test.dmpstore.export: $(quiet)echo testing export to DMPSTORE format $(quiet)$(GRUB_PREFIX)-editenv test.dmpstore.export.result.env create $(quiet)$(GRUB_PREFIX)-editenv test.dmpstore.export.result.env set debug=all,-scripting,-lexer $(quiet)truncate -s 512 test.dmpstore.export.result.env $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -n {grub}-GRUB_ENV -f test.dmpstore.export.result.env -D -e test.dmpstore.export.result.var $(quiet)@if grep -q "Do not edit" test.dmpstore.export.result.env ; then \ cmp test.dmpstore.export.result.var test.dmpstore.export.new.goal.var ; \ else \ cmp test.dmpstore.export.result.var test.dmpstore.export.old.goal.var ; \ fi $(quiet)rm -f test.dmpstore.export.result.* $(quiet)echo passed test.efivar.export: $(quiet)echo testing export to libefivar format $(quiet)$(GRUB_PREFIX)-editenv test.efivar.export.result.env create $(quiet)$(GRUB_PREFIX)-editenv test.efivar.export.result.env set debug=all,-scripting,-lexer $(quiet)truncate -s 512 test.efivar.export.result.env $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -n {grub}-GRUB_ENV -f test.efivar.export.result.env -e test.efivar.export.result.var $(quiet)if grep -q "Do not edit" test.efivar.export.result.env ; then \ cmp test.efivar.export.result.var test.efivar.export.new.goal.var ; \ else \ cmp test.efivar.export.result.var test.efivar.export.old.goal.var ; \ fi $(quiet)rm -f test.efivar.export.result.* $(quiet)echo passed test.grubenv.var: $(quiet)$(GRUB_PREFIX)-editenv test.grubenv.var.result.env create $(quiet)$(GRUB_PREFIX)-editenv test.grubenv.var.result.env set debug=all,-scripting,-lexer $(quiet)truncate -s 512 test.grubenv.var.result.env $(quiet)echo test importing from DMPSTORE and exporting to DMPSTORE and symbolic guid-name validation $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -n {grub}-GRUB_ENV -f test.grubenv.var.result.env -D -e test.grubenv.var.0.export.var $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.grubenv.var.0.export.var -e test.grubenv.var.0.result.var -D $(quiet)if grep -q "Do not edit" test.grubenv.var.result.env ; then \ cmp test.grubenv.var.0.result.var test.grubenv.var.0.new.goal.var ; \ else \ cmp test.grubenv.var.0.result.var test.grubenv.var.0.old.goal.var ; \ fi $(quiet)rm test.grubenv.var.0.result.* $(quiet)echo passed $(quiet)echo test importing from DMPSTORE and exporting to libefivar $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -n {grub}-GRUB_ENV -f test.grubenv.var.result.env -D -e test.grubenv.var.1.export.var $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.grubenv.var.1.export.var -e test.grubenv.var.1.result.var $(quiet)if grep -q "Do not edit" test.grubenv.var.result.env ; then \ cmp test.grubenv.var.1.result.var test.grubenv.var.1.new.goal.var ; \ else \ cmp test.grubenv.var.1.result.var test.grubenv.var.1.old.goal.var ; \ fi $(quiet)rm test.grubenv.var.1.result.* $(quiet)echo passed $(quiet)echo test importing from libefivar and exporting to DMPSTORE and mixed-case guid-name validation $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -n 91376aff-cBa6-42bE-949d-06fde81128e8-GRUB_ENV -f test.grubenv.var.result.env -e test.grubenv.var.2.export.var $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.grubenv.var.2.export.var -e test.grubenv.var.2.result.var -D $(quiet)if grep -q "Do not edit" test.grubenv.var.result.env ; then \ cmp test.grubenv.var.2.result.var test.grubenv.var.2.new.goal.var ; \ else \ cmp test.grubenv.var.2.result.var test.grubenv.var.2.old.goal.var ; \ fi $(quiet)rm test.grubenv.var.2.result.* $(quiet)echo passed $(quiet)echo test importing from libefivar and exporting to libefivar and guid-name validation $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -n 91376aff-cba6-42be-949d-06fde81128e8-GRUB_ENV -f test.grubenv.var.result.env -e test.grubenv.var.3.export.var $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.grubenv.var.3.export.var -e test.grubenv.var.3.result.var $(quiet)if grep -q "Do not edit" test.grubenv.var.result.env ; then \ cmp test.grubenv.var.3.result.var test.grubenv.var.3.new.goal.var ; \ else \ cmp test.grubenv.var.3.result.var test.grubenv.var.3.old.goal.var ; \ fi $(quiet)rm -f test.grubenv.var.3.result.* test.grubenv.var.result.env test.grubenv.var.3.goal.var $(quiet)echo passed $(quiet)echo testing efivar -L $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -L | \ grep -q '^{91376aff-cba6-42be-949d-06fde81128e8} {grub} efi_guid_grub GRUB$$' $(quiet)echo passed test.bootorder.var: $(quiet)echo testing with BootOrder variable dmpstore generated $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.bootorder.var.goal.var -e test.bootorder.var.0.result.var $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.bootorder.var.0.result.var -e test.bootorder.var.1.result.var -D $(quiet)cmp test.bootorder.var.goal.var test.bootorder.var.1.result.var $(quiet)echo passed test.conin.var: $(quiet)echo testing with ConIn variable dmpstore generated $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.conin.var.goal.var -e test.conin.var.0.result.var $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFIVAR) -i test.conin.var.0.result.var -e test.conin.var.1.result.var -D $(quiet)cmp test.conin.var.goal.var test.conin.var.1.result.var $(quiet)echo passed test.efivar.threading: $(quiet)echo testing threading in libefivar $(quiet)TOPDIR=$(TOPDIR) $(TOPDIR)/tests/test-threading test.esl.dump.x509.sha256: $(quiet)echo testing ESL dumping with x509 + sha256 sums $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFISECDB) \ -i test.esl.sha256.addition.unsorted.esl.goal -A > test.esl.dump.x509.sha256.result.txt $(quiet)cmp test.esl.dump.x509.sha256.goal.txt test.esl.sha256.addition.unsorted.result.txt $(quiet)echo passed %.goal.txt : %.goal $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src ../src/efisecdb --dump --annotate \ -s none -i $< > $@ %.result.txt : %.result $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src ../src/efisecdb --dump --annotate \ -s none -i $< > $@ %.var.result.txt : %.var $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src ../src/efisecdb --dump --annotate \ -s none -i $< > $@ test.parse.db: test.parse.db.var.result.txt $(quiet)echo testing parsing db variable $(quiet)if ! cmp test.parse.db.var.goal.txt test.parse.db.var.result.txt ; then \ diff -U 200 test.parse.db.var.goal.txt test.parse.db.var.result.txt ; \ exit 1 ; \ fi $(quiet)echo passed test.esl.annotation.esl.result : test.esl.annotation.esl $(quiet)cp $(rmverbose) $< $@ test.esl.annotation: test.esl.annotation.esl.goal.txt test.esl.annotation: test.esl.annotation.esl.result.txt $(quiet)echo testing ESL annotation with x509 + sha256 sums $(quiet)if ! cmp $@.esl.goal.txt $@.esl.result.txt ; then \ diff -U 200 $@.esl.goal.txt $@.esl.result.txt ; \ exit 1 ; \ fi $(quiet)echo passed test.esl.sha256.unsorted.esl.result: $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFISECDB) -g {redhat} -t sha256 -a \ -h 87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7 \ -h 0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f \ -h a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478 \ -h 8d74beec1be996322ad76813bafb92d40839895d6dd7ee808b17ca201eac98be \ -s none -f -o $@ test.esl.sha256.unsorted: test.esl.sha256.unsorted.esl.result.txt test.esl.sha256.unsorted.esl.goal.txt $(quiet)echo testing ESL creation with sha256 sums '(unsorted)' $(quiet)if ! cmp $@.esl.goal $@.esl.result ; then \ diff -U 200 $@.esl.goal.txt $@.esl.result.txt ; \ exit 1 ; \ fi $(quiet)echo passed test.esl.sha256.ascending.esl.result: $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFISECDB) -g {redhat} -t sha256 -a \ -h 87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7 \ -h 0263829989b6fd954f72baaf2fc64bc2e2f01d692d4de72986ea808f6e99813f \ -h a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478 \ -h 8d74beec1be996322ad76813bafb92d40839895d6dd7ee808b17ca201eac98be \ -s data -s ascending -f -o $@ test.esl.sha256.ascending: test.esl.sha256.ascending.esl.goal.txt test.esl.sha256.ascending.esl.result.txt $(quiet)echo testing ESL creation with sha256 sums '(ascending)' $(quiet)if ! cmp $@.esl.goal $@.esl.result ; then \ diff -U 200 $@.esl.goal.txt $@.esl.result.txt ; \ exit 1 ; \ fi $(quiet)echo passed test.esl.sha256.removal.descending.esl.result: $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFISECDB) -g {redhat} -t sha256 \ -i test.esl.sha256.unsorted.esl.goal -r \ -h a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478 \ -s data -s descending -f -o $@ test.esl.sha256.removal.descending: test.esl.sha256.removal.descending.esl.result.txt test.esl.sha256.removal.descending: test.esl.sha256.removal.descending.esl.goal.txt $(quiet)echo testing ESL entry removal with sha256 sums '(descending)' $(quiet)if ! cmp $@.esl.goal $@.esl.result ; then \ diff -U 200 $@.esl.goal.txt $@.esl.result.txt ; \ exit 1 ; \ fi $(quiet)echo passed test.esl.sha256.addition.unsorted.esl.result: $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFISECDB) -g {redhat} -t sha256 \ -i test.esl.sha256.addition.unsorted.esl.goal -a \ -h a3a5e715f0cc574a73c3f9bebb6bc24f32ffd5b67b387244c2c909da779a1478 \ -s none -f -o test.esl.sha256.addition.unsorted.esl.result test.esl.sha256.addition.unsorted: test.esl.sha256.addition.unsorted.esl.result.txt test.esl.sha256.addition.unsorted: test.esl.sha256.addition.unsorted.esl.goal.txt $(quiet)echo testing adding a sha256 sum to an existing ESL '(unsorted)' $(quiet)if ! cmp $@.esl.goal $@.esl.result ; then \ diff -U 200 $@.esl.goal.txt $@.esl.result.txt ; \ exit 1 ; \ fi $(quiet)echo passed test.esl.cert.addition.esl.result: $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFISECDB) -g {redhat} -t sha256 \ -i test.esl.sha256.unsorted.esl.goal -a -c test.esl.cert.addition.cert.cer \ -f -o test.esl.cert.addition.esl.result test.esl.cert.addition: $(quiet)echo testing ESL entry addition with x509 cert $(quiet)$(MAKE) test.esl.cert.addition.esl.result.txt test.esl.cert.addition.esl.goal.txt $(quiet)if ! cmp test.esl.cert.addition.esl.goal test.esl.cert.addition.esl.result ; then \ diff -U 200 test.esl.cert.addition.esl.goal.txt test.esl.cert.addition.esl.result.txt ; \ exit 1 ; \ fi $(quiet)rm -f test.esl.cert.addition.esl.result test.esl.cert.addition.*.esl.txt $(quiet)echo passed test.esl.cert.removal.esl.goal.txt : test.esl.cert.removal.esl.goal test.esl.cert.removal.esl.result: $(quiet)LD_LIBRARY_PATH=$(TOPDIR)/src $(EFISECDB) -g {redhat} -t sha256 \ -i test.esl.cert.addition.cert.esl.goal -r -c test.esl.cert.addition.cert.cer \ -f -o test.esl.cert.removal.esl.result test.esl.cert.removal: $(quiet)echo testing ESL entry removal with x509 cert $(quiet)$(MAKE) test.esl.cert.removal.esl.goal.txt test.esl.cert.removal.esl.result.txt $(quiet)if ! cmp test.esl.cert.removal.esl.goal test.esl.cert.removal.esl.result ; then \ diff -U 200 test.esl.cert.removal.esl.goal.txt test.esl.cert.removal.esl.result.txt ; \ exit 1 ; \ fi $(quiet)cmp test.esl.cert.removal.esl.goal test.esl.cert.removal.esl.result $(quiet)rm -f test.esl.cert.removal.esl.result $(quiet)echo passed .PHONY: all clean $(TESTS) # vim:ft=make # efivar-39/tests/machine0/000077500000000000000000000000001455652431600154245ustar00rootroot00000000000000efivar-39/tests/machine0/annotations/000077500000000000000000000000001455652431600177615ustar00rootroot00000000000000efivar-39/tests/machine0/annotations/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000203401455652431600260260ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 18 06 00 00 |....| esl[0].signature_list_size = 1560 (0x618) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 fc 05 00 00 |....| esl[0].signature_size = 1532 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 e8 |0...| esl[0].signature[0].data (end:0x00000618) 00000030 30 82 03 d0 a0 03 02 01 02 02 0a 61 0a d1 88 00 |0..........a....| 00000040 00 00 00 00 03 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 |Corporation1;09.| 000000b0 03 55 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 |.U...2Microsoft | 000000c0 43 6f 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 |Corporation Thir| 000000d0 64 20 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c |d Party Marketpl| 000000e0 61 63 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 |ace Root0...1106| 000000f0 32 34 32 30 34 31 32 39 5a 17 0d 32 36 30 36 32 |24204129Z..26062| 00000100 34 32 30 35 31 32 39 5a 30 81 80 31 0b 30 09 06 |4205129Z0..1.0..| 00000110 03 55 04 06 13 02 55 53 31 13 30 11 06 03 55 04 |.U....US1.0...U.| 00000120 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 |...Washington1.0| 00000130 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 |...U....Redmond1| 00000140 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 |.0...U....Micros| 00000150 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 |oft Corporation1| 00000160 2a 30 28 06 03 55 04 03 13 21 4d 69 63 72 6f 73 |*0(..U...!Micros| 00000170 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 |oft Corporation | 00000180 4b 45 4b 20 43 41 20 32 30 31 31 30 82 01 22 30 |KEK CA 20110.."0| 00000190 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 |...*.H..........| 000001a0 01 0f 00 30 82 01 0a 02 82 01 01 00 c4 e8 b5 8a |...0............| 000001b0 bf ad 57 26 b0 26 c3 ea e7 fb 57 7a 44 02 5d 07 |..W&.&....WzD.].| 000001c0 0d da 4a e5 74 2a e6 b0 0f ec 6d eb ec 7f b9 e3 |..J.t*....m.....| 000001d0 5a 63 32 7c 11 17 4f 0e e3 0b a7 38 15 93 8e c6 |Zc2|..O....8....| 000001e0 f5 e0 84 b1 9a 9b 2c e7 f5 b7 91 d6 09 e1 e2 c0 |......,.........| 000001f0 04 a8 ac 30 1c df 48 f3 06 50 9a 64 a7 51 7f c8 |...0..H..P.d.Q..| 00000200 85 4f 8f 20 86 ce fe 2f e1 9f ff 82 c0 ed e9 cd |.O. .../........| 00000210 ce f4 53 6a 62 3a 0b 43 b9 e2 25 fd fe 05 f9 d4 |..Sjb:.C..%.....| 00000220 c4 14 ab 11 e2 23 89 8d 70 b7 a4 1d 4d ec ae e5 |.....#..p...M...| 00000230 9c fa 16 c2 d7 c1 cb d4 e8 c4 2f e5 99 ee 24 8b |........../...$.| 00000240 03 ec 8d f2 8b ea c3 4a fb 43 11 12 0b 7e b5 47 |.......J.C...~.G| 00000250 92 6c dc e6 04 89 eb f5 33 04 eb 10 01 2a 71 e5 |.l......3....*q.| 00000260 f9 83 13 3c ff 25 09 2f 68 76 46 ff ba 4f be dc |...<.%./hvF..O..| 00000270 ad 71 2a 58 aa fb 0e d2 79 3d e4 9b 65 3b cc 29 |.q*X....y=..e;.)| 00000280 2a 9f fc 72 59 a2 eb ae 92 ef f6 35 13 80 c6 02 |*..rY......5....| 00000290 ec e4 5f cc 9d 76 cd ef 63 92 c1 af 79 40 84 79 |.._..v..c...y@.y| 000002a0 87 7f e3 52 a8 e8 9d 7b 07 69 8f 15 02 03 01 00 |...R...{.i......| 000002b0 01 a3 82 01 4f 30 82 01 4b 30 10 06 09 2b 06 01 |....O0..K0...+..| 000002c0 04 01 82 37 15 01 04 03 02 01 00 30 1d 06 03 55 |...7.......0...U| 000002d0 1d 0e 04 16 04 14 62 fc 43 cd a0 3e a4 cb 67 12 |......b.C..>..g.| 000002e0 d2 5b d9 55 ac 7b cc b6 8a 5f 30 19 06 09 2b 06 |.[.U.{..._0...+.| 000002f0 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 |....7.......S.u.| 00000300 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 |b.C.A0...U......| 00000310 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 |..0...U.......0.| 00000320 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 |...0...U.#..0...| 00000330 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 08 3b |EfRC.~X...N.#U.;| 00000340 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 30 53 30 |:"j.0\..U...U0S0| 00000350 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f 63 72 |Q.O.M.Khttp://cr| 00000360 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f |l.microsoft.com/| 00000370 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 |pki/crl/products| 00000380 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 |/MicCorThiParMar| 00000390 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 |Roo_2010-10-05.c| 000003a0 72 6c 30 60 06 08 2b 06 01 05 05 07 01 01 04 54 |rl0`..+........T| 000003b0 30 52 30 50 06 08 2b 06 01 05 05 07 30 02 86 44 |0R0P..+.....0..D| 000003c0 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f |http://www.micro| 000003d0 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 |soft.com/pki/cer| 000003e0 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d |ts/MicCorThiParM| 000003f0 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 |arRoo_2010-10-05| 00000400 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |.crt0...*.H.....| 00000410 0b 05 00 03 82 02 01 00 d4 84 88 f5 14 94 18 02 |................| 00000420 ca 2a 3c fb 2a 92 1c 0c d7 a0 d1 f1 e8 52 66 a8 |.*<.*........Rf.| 00000430 ee a2 b5 75 7a 90 00 aa 2d a4 76 5a ea 79 b7 b9 |...uz...-.vZ.y..| 00000440 37 6a 51 7b 10 64 f6 e1 64 f2 02 67 be f7 a8 1b |7jQ{.d..d..g....| 00000450 78 bd ba ce 88 58 64 0c d6 57 c8 19 a3 5f 05 d6 |x....Xd..W..._..| 00000460 db c6 d0 69 ce 48 4b 32 b7 eb 5d d2 30 f5 c0 f5 |...i.HK2..].0...| 00000470 b8 ba 78 07 a3 2b fe 9b db 34 56 84 ec 82 ca ae |..x..+...4V.....| 00000480 41 25 70 9c 6b e9 fe 90 0f d7 96 1f e5 e7 94 1f |A%p.k...........| 00000490 b2 2a 0c 8d 4b ff 28 29 10 7b f7 d7 7c a5 d1 76 |.*..K.().{..|..v| 000004a0 b9 05 c8 79 ed 0f 90 92 9c c2 fe df 6f 7e 6c 0f |...y........o~l.| 000004b0 7b d4 c1 45 dd 34 51 96 39 0f e5 5e 56 d8 18 05 |{..E.4Q.9..^V...| 000004c0 96 f4 07 a6 42 b3 a0 77 fd 08 19 f2 71 56 cc 9f |....B..w....qV..| 000004d0 86 23 a4 87 cb a6 fd 58 7e d4 69 67 15 91 7e 81 |.#.....X~.ig..~.| 000004e0 f2 7f 13 e5 0d 8b 8a 3c 87 84 eb e3 ce bd 43 e5 |.......<......C.| 000004f0 ad 2d 84 93 8e 6a 2b 5a 7c 44 fa 52 aa 81 c8 2d |.-...j+Z|D.R...-| 00000500 1c bb e0 52 df 00 11 f8 9a 3d c1 60 b0 e1 33 b5 |...R.....=.`..3.| 00000510 a3 88 d1 65 19 0a 1a e7 ac 7c a4 c1 82 87 4e 38 |...e.....|....N8| 00000520 b1 2f 0d c5 14 87 6f fd 8d 2e bc 39 b6 e7 e6 c3 |./....o....9....| 00000530 e0 e4 cd 27 84 ef 94 42 ef 29 8b 90 46 41 3b 81 |...'...B.)..FA;.| 00000540 1b 67 d8 f9 43 59 65 cb 0d bc fd 00 92 4f f4 75 |.g..CYe......O.u| 00000550 3b a7 a9 24 fc 50 41 40 79 e0 2d 4f 0a 6a 27 76 |;..$.PA@y.-O.j'v| 00000560 6e 52 ed 96 69 7b af 0f f7 87 05 d0 45 c2 ad 53 |nR..i{......E..S| 00000570 14 81 1f fb 30 04 aa 37 36 61 da 4a 69 1b 34 d8 |....0..76a.Ji.4.| 00000580 68 ed d6 02 cf 6c 94 0c d3 cf 6c 22 79 ad b1 f0 |h....l....l"y...| 00000590 bc 03 a2 46 60 a9 c4 07 c2 21 82 f1 fd f2 e8 79 |...F`....!.....y| 000005a0 32 60 bf d8 ac a5 22 14 4b ca c1 d8 4b eb 7d 3f |2`....".K...K.}?| 000005b0 57 35 b2 e6 4f 75 b4 b0 60 03 22 53 ae 91 79 1d |W5..Ou..`."S..y.| 000005c0 d6 9b 41 1f 15 86 54 70 b2 de 0d 35 0f 7c b0 34 |..A...Tp...5.|.4| 000005d0 72 ba 97 60 3b f0 79 eb a2 b2 1c 5d a2 16 b8 87 |r..`;.y....]....| 000005e0 c5 e9 1b f6 b5 97 25 6f 38 9f e3 91 fa 8a 79 98 |......%o8.....y.| 000005f0 c3 69 0e b7 a3 1c 20 05 97 f8 ca 14 ae 00 d7 c4 |.i.... .........| 00000600 f3 c0 14 10 75 6b 34 a0 1b b5 99 60 f3 5c b0 c5 |....uk4....`.\..| 00000610 57 4e 36 d2 32 84 bf 9e |WN6.2...| 00000618 efivar-39/tests/machine0/annotations/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000203401455652431600273330ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 18 06 00 00 |....| esl[0].signature_list_size = 1560 (0x618) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 fc 05 00 00 |....| esl[0].signature_size = 1532 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 e8 |0...| esl[0].signature[0].data (end:0x00000618) 00000030 30 82 03 d0 a0 03 02 01 02 02 0a 61 0a d1 88 00 |0..........a....| 00000040 00 00 00 00 03 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 |Corporation1;09.| 000000b0 03 55 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 |.U...2Microsoft | 000000c0 43 6f 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 |Corporation Thir| 000000d0 64 20 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c |d Party Marketpl| 000000e0 61 63 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 |ace Root0...1106| 000000f0 32 34 32 30 34 31 32 39 5a 17 0d 32 36 30 36 32 |24204129Z..26062| 00000100 34 32 30 35 31 32 39 5a 30 81 80 31 0b 30 09 06 |4205129Z0..1.0..| 00000110 03 55 04 06 13 02 55 53 31 13 30 11 06 03 55 04 |.U....US1.0...U.| 00000120 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 |...Washington1.0| 00000130 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 |...U....Redmond1| 00000140 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 |.0...U....Micros| 00000150 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 |oft Corporation1| 00000160 2a 30 28 06 03 55 04 03 13 21 4d 69 63 72 6f 73 |*0(..U...!Micros| 00000170 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 |oft Corporation | 00000180 4b 45 4b 20 43 41 20 32 30 31 31 30 82 01 22 30 |KEK CA 20110.."0| 00000190 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 |...*.H..........| 000001a0 01 0f 00 30 82 01 0a 02 82 01 01 00 c4 e8 b5 8a |...0............| 000001b0 bf ad 57 26 b0 26 c3 ea e7 fb 57 7a 44 02 5d 07 |..W&.&....WzD.].| 000001c0 0d da 4a e5 74 2a e6 b0 0f ec 6d eb ec 7f b9 e3 |..J.t*....m.....| 000001d0 5a 63 32 7c 11 17 4f 0e e3 0b a7 38 15 93 8e c6 |Zc2|..O....8....| 000001e0 f5 e0 84 b1 9a 9b 2c e7 f5 b7 91 d6 09 e1 e2 c0 |......,.........| 000001f0 04 a8 ac 30 1c df 48 f3 06 50 9a 64 a7 51 7f c8 |...0..H..P.d.Q..| 00000200 85 4f 8f 20 86 ce fe 2f e1 9f ff 82 c0 ed e9 cd |.O. .../........| 00000210 ce f4 53 6a 62 3a 0b 43 b9 e2 25 fd fe 05 f9 d4 |..Sjb:.C..%.....| 00000220 c4 14 ab 11 e2 23 89 8d 70 b7 a4 1d 4d ec ae e5 |.....#..p...M...| 00000230 9c fa 16 c2 d7 c1 cb d4 e8 c4 2f e5 99 ee 24 8b |........../...$.| 00000240 03 ec 8d f2 8b ea c3 4a fb 43 11 12 0b 7e b5 47 |.......J.C...~.G| 00000250 92 6c dc e6 04 89 eb f5 33 04 eb 10 01 2a 71 e5 |.l......3....*q.| 00000260 f9 83 13 3c ff 25 09 2f 68 76 46 ff ba 4f be dc |...<.%./hvF..O..| 00000270 ad 71 2a 58 aa fb 0e d2 79 3d e4 9b 65 3b cc 29 |.q*X....y=..e;.)| 00000280 2a 9f fc 72 59 a2 eb ae 92 ef f6 35 13 80 c6 02 |*..rY......5....| 00000290 ec e4 5f cc 9d 76 cd ef 63 92 c1 af 79 40 84 79 |.._..v..c...y@.y| 000002a0 87 7f e3 52 a8 e8 9d 7b 07 69 8f 15 02 03 01 00 |...R...{.i......| 000002b0 01 a3 82 01 4f 30 82 01 4b 30 10 06 09 2b 06 01 |....O0..K0...+..| 000002c0 04 01 82 37 15 01 04 03 02 01 00 30 1d 06 03 55 |...7.......0...U| 000002d0 1d 0e 04 16 04 14 62 fc 43 cd a0 3e a4 cb 67 12 |......b.C..>..g.| 000002e0 d2 5b d9 55 ac 7b cc b6 8a 5f 30 19 06 09 2b 06 |.[.U.{..._0...+.| 000002f0 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 |....7.......S.u.| 00000300 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 |b.C.A0...U......| 00000310 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 |..0...U.......0.| 00000320 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 |...0...U.#..0...| 00000330 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 08 3b |EfRC.~X...N.#U.;| 00000340 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 30 53 30 |:"j.0\..U...U0S0| 00000350 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f 63 72 |Q.O.M.Khttp://cr| 00000360 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f |l.microsoft.com/| 00000370 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 |pki/crl/products| 00000380 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 |/MicCorThiParMar| 00000390 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 |Roo_2010-10-05.c| 000003a0 72 6c 30 60 06 08 2b 06 01 05 05 07 01 01 04 54 |rl0`..+........T| 000003b0 30 52 30 50 06 08 2b 06 01 05 05 07 30 02 86 44 |0R0P..+.....0..D| 000003c0 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f |http://www.micro| 000003d0 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 |soft.com/pki/cer| 000003e0 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d |ts/MicCorThiParM| 000003f0 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 |arRoo_2010-10-05| 00000400 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |.crt0...*.H.....| 00000410 0b 05 00 03 82 02 01 00 d4 84 88 f5 14 94 18 02 |................| 00000420 ca 2a 3c fb 2a 92 1c 0c d7 a0 d1 f1 e8 52 66 a8 |.*<.*........Rf.| 00000430 ee a2 b5 75 7a 90 00 aa 2d a4 76 5a ea 79 b7 b9 |...uz...-.vZ.y..| 00000440 37 6a 51 7b 10 64 f6 e1 64 f2 02 67 be f7 a8 1b |7jQ{.d..d..g....| 00000450 78 bd ba ce 88 58 64 0c d6 57 c8 19 a3 5f 05 d6 |x....Xd..W..._..| 00000460 db c6 d0 69 ce 48 4b 32 b7 eb 5d d2 30 f5 c0 f5 |...i.HK2..].0...| 00000470 b8 ba 78 07 a3 2b fe 9b db 34 56 84 ec 82 ca ae |..x..+...4V.....| 00000480 41 25 70 9c 6b e9 fe 90 0f d7 96 1f e5 e7 94 1f |A%p.k...........| 00000490 b2 2a 0c 8d 4b ff 28 29 10 7b f7 d7 7c a5 d1 76 |.*..K.().{..|..v| 000004a0 b9 05 c8 79 ed 0f 90 92 9c c2 fe df 6f 7e 6c 0f |...y........o~l.| 000004b0 7b d4 c1 45 dd 34 51 96 39 0f e5 5e 56 d8 18 05 |{..E.4Q.9..^V...| 000004c0 96 f4 07 a6 42 b3 a0 77 fd 08 19 f2 71 56 cc 9f |....B..w....qV..| 000004d0 86 23 a4 87 cb a6 fd 58 7e d4 69 67 15 91 7e 81 |.#.....X~.ig..~.| 000004e0 f2 7f 13 e5 0d 8b 8a 3c 87 84 eb e3 ce bd 43 e5 |.......<......C.| 000004f0 ad 2d 84 93 8e 6a 2b 5a 7c 44 fa 52 aa 81 c8 2d |.-...j+Z|D.R...-| 00000500 1c bb e0 52 df 00 11 f8 9a 3d c1 60 b0 e1 33 b5 |...R.....=.`..3.| 00000510 a3 88 d1 65 19 0a 1a e7 ac 7c a4 c1 82 87 4e 38 |...e.....|....N8| 00000520 b1 2f 0d c5 14 87 6f fd 8d 2e bc 39 b6 e7 e6 c3 |./....o....9....| 00000530 e0 e4 cd 27 84 ef 94 42 ef 29 8b 90 46 41 3b 81 |...'...B.)..FA;.| 00000540 1b 67 d8 f9 43 59 65 cb 0d bc fd 00 92 4f f4 75 |.g..CYe......O.u| 00000550 3b a7 a9 24 fc 50 41 40 79 e0 2d 4f 0a 6a 27 76 |;..$.PA@y.-O.j'v| 00000560 6e 52 ed 96 69 7b af 0f f7 87 05 d0 45 c2 ad 53 |nR..i{......E..S| 00000570 14 81 1f fb 30 04 aa 37 36 61 da 4a 69 1b 34 d8 |....0..76a.Ji.4.| 00000580 68 ed d6 02 cf 6c 94 0c d3 cf 6c 22 79 ad b1 f0 |h....l....l"y...| 00000590 bc 03 a2 46 60 a9 c4 07 c2 21 82 f1 fd f2 e8 79 |...F`....!.....y| 000005a0 32 60 bf d8 ac a5 22 14 4b ca c1 d8 4b eb 7d 3f |2`....".K...K.}?| 000005b0 57 35 b2 e6 4f 75 b4 b0 60 03 22 53 ae 91 79 1d |W5..Ou..`."S..y.| 000005c0 d6 9b 41 1f 15 86 54 70 b2 de 0d 35 0f 7c b0 34 |..A...Tp...5.|.4| 000005d0 72 ba 97 60 3b f0 79 eb a2 b2 1c 5d a2 16 b8 87 |r..`;.y....]....| 000005e0 c5 e9 1b f6 b5 97 25 6f 38 9f e3 91 fa 8a 79 98 |......%o8.....y.| 000005f0 c3 69 0e b7 a3 1c 20 05 97 f8 ca 14 ae 00 d7 c4 |.i.... .........| 00000600 f3 c0 14 10 75 6b 34 a0 1b b5 99 60 f3 5c b0 c5 |....uk4....`.\..| 00000610 57 4e 36 d2 32 84 bf 9e |WN6.2...| 00000618 efivar-39/tests/machine0/annotations/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000174071455652431600257400ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 be 05 00 00 |....| esl[0].signature_list_size = 1470 (0x5be) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 a2 05 00 00 |....| esl[0].signature_size = 1442 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 2d 2d 2d 2d |----| esl[0].signature[0].data (end:0x000005be) 00000030 2d 42 45 47 49 4e 20 4e 45 57 20 43 45 52 54 49 |-BEGIN NEW CERTI| 00000040 46 49 43 41 54 45 20 52 45 51 55 45 53 54 2d 2d |FICATE REQUEST--| 00000050 2d 2d 2d 0d 0a 4d 49 49 44 7a 54 43 43 41 72 57 |---..MIIDzTCCArW| 00000060 67 41 77 49 42 41 67 49 51 4d 78 41 42 39 68 45 |gAwIBAgIQMxAB9hE| 00000070 71 68 34 39 4d 4d 50 4e 6e 78 33 63 44 41 6a 41 |qh49MMPNnx3cDAjA| 00000080 4e 42 67 6b 71 68 6b 69 47 39 77 30 42 41 51 73 |NBgkqhkiG9w0BAQs| 00000090 46 41 44 43 42 0d 0a 69 44 45 4d 4d 41 6f 47 41 |FADCB..iDEMMAoGA| 000000a0 31 55 45 42 68 4d 44 56 56 4e 42 4d 51 73 77 43 |1UEBhMDVVNBMQswC| 000000b0 51 59 44 56 51 51 49 44 41 4a 44 51 54 45 52 4d |QYDVQQIDAJDQTERM| 000000c0 41 38 47 41 31 55 45 42 77 77 49 55 32 46 75 49 |A8GA1UEBwwIU2FuI| 000000d0 45 70 76 63 32 55 78 0d 0a 49 44 41 65 42 67 4e |Epvc2Ux..IDAeBgN| 000000e0 56 42 41 6f 4d 46 31 4e 31 63 47 56 79 49 45 31 |VBAoMF1N1cGVyIE1| 000000f0 70 59 33 4a 76 49 45 4e 76 63 6e 42 76 63 6d 46 |pY3JvIENvcnBvcmF| 00000100 30 61 57 39 75 4d 54 59 77 4e 41 59 44 56 51 51 |0aW9uMTYwNAYDVQQ| 00000110 44 44 43 31 54 64 58 42 6c 0d 0a 63 69 42 4e 61 |DDC1TdXBl..ciBNa| 00000120 57 4e 79 62 79 42 44 62 33 4a 77 62 33 4a 68 64 |WNybyBDb3Jwb3Jhd| 00000130 47 6c 76 62 69 42 4c 59 57 4a 35 62 47 46 72 5a |GlvbiBLYWJ5bGFrZ| 00000140 53 42 51 62 47 46 30 5a 6d 39 79 62 53 42 4c 5a |SBQbGF0Zm9ybSBLZ| 00000150 58 6b 77 48 68 63 4e 4d 54 59 77 0d 0a 4e 6a 49 |XkwHhcNMTYw..NjI| 00000160 79 4d 6a 45 79 4e 44 4d 31 57 68 63 4e 4d 6a 49 |yMjEyNDM1WhcNMjI| 00000170 77 4e 6a 49 79 4d 6a 45 7a 4e 44 49 35 57 6a 43 |wNjIyMjEzNDI5WjC| 00000180 42 69 44 45 4d 4d 41 6f 47 41 31 55 45 42 68 4d |BiDEMMAoGA1UEBhM| 00000190 44 56 56 4e 42 4d 51 73 77 43 51 59 44 0d 0a 56 |DVVNBMQswCQYD..V| 000001a0 51 51 49 44 41 4a 44 51 54 45 52 4d 41 38 47 41 |QQIDAJDQTERMA8GA| 000001b0 31 55 45 42 77 77 49 55 32 46 75 49 45 70 76 63 |1UEBwwIU2FuIEpvc| 000001c0 32 55 78 49 44 41 65 42 67 4e 56 42 41 6f 4d 46 |2UxIDAeBgNVBAoMF| 000001d0 31 4e 31 63 47 56 79 49 45 31 70 59 33 4a 76 0d |1N1cGVyIE1pY3Jv.| 000001e0 0a 49 45 4e 76 63 6e 42 76 63 6d 46 30 61 57 39 |.IENvcnBvcmF0aW9| 000001f0 75 4d 54 59 77 4e 41 59 44 56 51 51 44 44 43 31 |uMTYwNAYDVQQDDC1| 00000200 54 64 58 42 6c 63 69 42 4e 61 57 4e 79 62 79 42 |TdXBlciBNaWNybyB| 00000210 44 62 33 4a 77 62 33 4a 68 64 47 6c 76 62 69 42 |Db3Jwb3JhdGlvbiB| 00000220 4c 0d 0a 59 57 4a 35 62 47 46 72 5a 53 42 51 62 |L..YWJ5bGFrZSBQb| 00000230 47 46 30 5a 6d 39 79 62 53 42 4c 5a 58 6b 77 67 |GF0Zm9ybSBLZXkwg| 00000240 67 45 69 4d 41 30 47 43 53 71 47 53 49 62 33 44 |gEiMA0GCSqGSIb3D| 00000250 51 45 42 41 51 55 41 41 34 49 42 44 77 41 77 67 |QEBAQUAA4IBDwAwg| 00000260 67 45 4b 0d 0a 41 6f 49 42 41 51 43 39 6d 7a 2b |gEK..AoIBAQC9mz+| 00000270 6f 43 67 57 32 42 30 6e 4f 36 32 52 6a 4c 6b 72 |oCgW2B0nO62RjLkr| 00000280 71 76 41 52 54 44 48 41 48 76 64 6f 72 37 67 6b |qvARTDHAHvdor7gk| 00000290 35 31 37 36 31 6a 4c 79 4c 68 57 6a 6b 58 66 30 |51761jLyLhWjkXf0| 000002a0 41 79 47 37 7a 0d 0a 49 32 6d 44 37 46 53 47 70 |AyG7z..I2mD7FSGp| 000002b0 79 6d 52 45 33 51 41 78 6d 42 48 6f 7a 4d 30 39 |ymRE3QAxmBHozM09| 000002c0 47 78 4a 6c 66 7a 68 6f 75 67 30 50 35 45 35 74 |GxJlfzhoug0P5E5t| 000002d0 51 48 79 52 58 64 38 54 2b 37 67 57 70 4d 43 46 |QHyRXd8T+7gWpMCF| 000002e0 78 34 79 44 50 69 39 0d 0a 48 49 6d 77 57 36 76 |x4yDPi9..HImwW6v| 000002f0 36 46 4b 73 39 62 6e 47 2f 4b 4f 7a 2b 4c 76 4d |6FKs9bnG/KOz+LvM| 00000300 75 68 4f 7a 55 53 54 52 2f 56 6e 42 71 6b 32 4b |uhOzUSTR/VnBqk2K| 00000310 45 67 58 58 2f 77 67 52 6e 6a 76 73 59 68 70 4f |EgXX/wgRnjvsYhpO| 00000320 49 67 44 61 75 6b 75 71 74 0d 0a 78 4f 47 6d 31 |IgDaukuqt..xOGm1| 00000330 65 67 75 77 71 48 74 58 6a 78 47 33 68 41 69 75 |eguwqHtXjxG3hAiu| 00000340 72 56 4c 34 4c 5a 6c 42 33 72 57 67 72 31 64 38 |rVL4LZlB3rWgr1d8| 00000350 79 2f 2b 66 34 72 34 68 61 74 66 44 4e 70 52 51 |y/+f4r4hatfDNpRQ| 00000360 53 58 6c 63 73 39 4f 34 54 48 78 0d 0a 6a 46 2b |SXlcs9O4THx..jF+| 00000370 57 50 52 57 66 52 39 4f 4e 41 6d 39 47 4c 4e 64 |WPRWfR9ONAm9GLNd| 00000380 2f 68 79 55 61 65 6a 57 78 68 38 70 58 44 44 55 |/hyUaejWxh8pXDDU| 00000390 46 71 75 33 73 33 79 4f 30 4f 6c 65 4d 75 69 6d |Fqu3s3yO0OleMuim| 000003a0 58 30 43 5a 76 75 4c 6d 35 62 73 63 77 0d 0a 70 |X0CZvuLm5bscw..p| 000003b0 64 2f 2f 37 6a 2b 4d 6a 4b 44 6e 4c 64 41 30 53 |d//7j+MjKDnLdA0S| 000003c0 74 68 4b 4f 66 6e 7a 79 76 6b 68 41 67 4d 42 41 |thKOfnzyvkhAgMBA| 000003d0 41 47 6a 4d 54 41 76 4d 41 34 47 41 31 55 64 44 |AGjMTAvMA4GA1UdD| 000003e0 77 45 42 2f 77 51 45 41 77 49 45 38 44 41 64 0d |wEB/wQEAwIE8DAd.| 000003f0 0a 42 67 4e 56 48 51 34 45 46 67 51 55 5a 57 78 |.BgNVHQ4EFgQUZWx| 00000400 66 56 32 4c 46 69 61 65 44 55 57 58 58 6f 70 54 |fV2LFiaeDUWXXopT| 00000410 61 63 38 79 4c 58 34 6b 77 44 51 59 4a 4b 6f 5a |ac8yLX4kwDQYJKoZ| 00000420 49 68 76 63 4e 41 51 45 4c 42 51 41 44 67 67 45 |IhvcNAQELBQADggE| 00000430 42 0d 0a 41 4a 42 58 55 44 75 6a 6d 36 59 6a 76 |B..AJBXUDujm6Yjv| 00000440 46 6c 30 66 66 59 37 38 6b 4a 64 79 4b 2f 38 34 |Fl0ffY78kJdyK/84| 00000450 58 46 2f 64 33 36 66 51 73 66 51 71 67 50 43 7a |XF/d36fQsfQqgPCz| 00000460 6d 6e 5a 38 6c 4d 41 2b 47 44 5a 6e 72 6b 75 35 |mnZ8lMA+GDZnrku5| 00000470 65 34 62 0d 0a 73 49 6e 63 39 39 77 5a 63 4c 47 |e4b..sInc99wZcLG| 00000480 42 45 53 78 4d 33 41 4e 32 79 67 77 65 37 7a 53 |BESxM3AN2ygwe7zS| 00000490 75 4e 48 4f 53 57 55 6b 38 63 4c 52 44 67 74 68 |uNHOSWUk8cLRDgth| 000004a0 77 48 73 43 62 71 72 67 35 4c 69 41 4e 71 34 44 |wHsCbqrg5LiANq4D| 000004b0 32 7a 57 59 73 0d 0a 2b 53 4b 42 76 38 6c 43 47 |2zWYs..+SKBv8lCG| 000004c0 64 4c 39 4b 55 65 63 70 7a 6b 44 50 30 74 79 51 |dL9KUecpzkDP0tyQ| 000004d0 43 6d 34 47 62 72 70 6b 67 56 45 49 79 32 73 2b |Cm4GbrpkgVEIy2s+| 000004e0 47 71 48 36 38 62 59 48 74 38 75 5a 33 64 42 51 |GqH68bYHt8uZ3dBQ| 000004f0 50 73 71 68 53 63 73 0d 0a 46 65 6b 61 48 63 6d |PsqhScs..FekaHcm| 00000500 38 6a 49 6e 2f 62 37 50 6a 65 37 4d 77 4b 6e 6c |8jIn/b7Pje7MwKnl| 00000510 6f 75 4e 7a 63 4f 2f 5a 39 75 46 57 6e 4d 61 49 |ouNzcO/Z9uFWnMaI| 00000520 6b 38 61 39 34 44 38 70 49 52 77 77 49 32 78 4c |k8a94D8pIRwwI2xL| 00000530 76 51 34 31 64 4f 55 41 41 0d 0a 36 53 73 63 34 |vQ41dOUAA..6Ssc4| 00000540 6b 73 5a 39 76 71 68 38 68 55 44 66 6b 32 55 32 |ksZ9vqh8hUDfk2U2| 00000550 42 62 2b 2b 35 59 43 43 68 71 2f 45 6c 42 4d 69 |Bb++5YCChq/ElBMi| 00000560 36 4c 32 4d 4b 52 76 62 7a 4c 48 4a 2f 69 32 53 |6L2MKRvbzLHJ/i2S| 00000570 55 65 71 66 43 58 51 4f 69 69 58 0d 0a 2b 57 35 |UeqfCXQOiiX..+W5| 00000580 70 2f 54 46 75 2b 70 35 57 68 4b 52 62 51 77 77 |p/TFu+p5WhKRbQww| 00000590 7a 50 42 30 3d 0d 0a 2d 2d 2d 2d 2d 45 4e 44 20 |zPB0=..-----END | 000005a0 4e 45 57 20 43 45 52 54 49 46 49 43 41 54 45 20 |NEW CERTIFICATE | 000005b0 52 45 51 55 45 53 54 2d 2d 2d 2d 2d 0d 0a |REQUEST-----..| 000005be efivar-39/tests/machine0/annotations/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000174071455652431600272450ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 be 05 00 00 |....| esl[0].signature_list_size = 1470 (0x5be) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 a2 05 00 00 |....| esl[0].signature_size = 1442 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 2d 2d 2d 2d |----| esl[0].signature[0].data (end:0x000005be) 00000030 2d 42 45 47 49 4e 20 4e 45 57 20 43 45 52 54 49 |-BEGIN NEW CERTI| 00000040 46 49 43 41 54 45 20 52 45 51 55 45 53 54 2d 2d |FICATE REQUEST--| 00000050 2d 2d 2d 0d 0a 4d 49 49 44 7a 54 43 43 41 72 57 |---..MIIDzTCCArW| 00000060 67 41 77 49 42 41 67 49 51 4d 78 41 42 39 68 45 |gAwIBAgIQMxAB9hE| 00000070 71 68 34 39 4d 4d 50 4e 6e 78 33 63 44 41 6a 41 |qh49MMPNnx3cDAjA| 00000080 4e 42 67 6b 71 68 6b 69 47 39 77 30 42 41 51 73 |NBgkqhkiG9w0BAQs| 00000090 46 41 44 43 42 0d 0a 69 44 45 4d 4d 41 6f 47 41 |FADCB..iDEMMAoGA| 000000a0 31 55 45 42 68 4d 44 56 56 4e 42 4d 51 73 77 43 |1UEBhMDVVNBMQswC| 000000b0 51 59 44 56 51 51 49 44 41 4a 44 51 54 45 52 4d |QYDVQQIDAJDQTERM| 000000c0 41 38 47 41 31 55 45 42 77 77 49 55 32 46 75 49 |A8GA1UEBwwIU2FuI| 000000d0 45 70 76 63 32 55 78 0d 0a 49 44 41 65 42 67 4e |Epvc2Ux..IDAeBgN| 000000e0 56 42 41 6f 4d 46 31 4e 31 63 47 56 79 49 45 31 |VBAoMF1N1cGVyIE1| 000000f0 70 59 33 4a 76 49 45 4e 76 63 6e 42 76 63 6d 46 |pY3JvIENvcnBvcmF| 00000100 30 61 57 39 75 4d 54 59 77 4e 41 59 44 56 51 51 |0aW9uMTYwNAYDVQQ| 00000110 44 44 43 31 54 64 58 42 6c 0d 0a 63 69 42 4e 61 |DDC1TdXBl..ciBNa| 00000120 57 4e 79 62 79 42 44 62 33 4a 77 62 33 4a 68 64 |WNybyBDb3Jwb3Jhd| 00000130 47 6c 76 62 69 42 4c 59 57 4a 35 62 47 46 72 5a |GlvbiBLYWJ5bGFrZ| 00000140 53 42 51 62 47 46 30 5a 6d 39 79 62 53 42 4c 5a |SBQbGF0Zm9ybSBLZ| 00000150 58 6b 77 48 68 63 4e 4d 54 59 77 0d 0a 4e 6a 49 |XkwHhcNMTYw..NjI| 00000160 79 4d 6a 45 79 4e 44 4d 31 57 68 63 4e 4d 6a 49 |yMjEyNDM1WhcNMjI| 00000170 77 4e 6a 49 79 4d 6a 45 7a 4e 44 49 35 57 6a 43 |wNjIyMjEzNDI5WjC| 00000180 42 69 44 45 4d 4d 41 6f 47 41 31 55 45 42 68 4d |BiDEMMAoGA1UEBhM| 00000190 44 56 56 4e 42 4d 51 73 77 43 51 59 44 0d 0a 56 |DVVNBMQswCQYD..V| 000001a0 51 51 49 44 41 4a 44 51 54 45 52 4d 41 38 47 41 |QQIDAJDQTERMA8GA| 000001b0 31 55 45 42 77 77 49 55 32 46 75 49 45 70 76 63 |1UEBwwIU2FuIEpvc| 000001c0 32 55 78 49 44 41 65 42 67 4e 56 42 41 6f 4d 46 |2UxIDAeBgNVBAoMF| 000001d0 31 4e 31 63 47 56 79 49 45 31 70 59 33 4a 76 0d |1N1cGVyIE1pY3Jv.| 000001e0 0a 49 45 4e 76 63 6e 42 76 63 6d 46 30 61 57 39 |.IENvcnBvcmF0aW9| 000001f0 75 4d 54 59 77 4e 41 59 44 56 51 51 44 44 43 31 |uMTYwNAYDVQQDDC1| 00000200 54 64 58 42 6c 63 69 42 4e 61 57 4e 79 62 79 42 |TdXBlciBNaWNybyB| 00000210 44 62 33 4a 77 62 33 4a 68 64 47 6c 76 62 69 42 |Db3Jwb3JhdGlvbiB| 00000220 4c 0d 0a 59 57 4a 35 62 47 46 72 5a 53 42 51 62 |L..YWJ5bGFrZSBQb| 00000230 47 46 30 5a 6d 39 79 62 53 42 4c 5a 58 6b 77 67 |GF0Zm9ybSBLZXkwg| 00000240 67 45 69 4d 41 30 47 43 53 71 47 53 49 62 33 44 |gEiMA0GCSqGSIb3D| 00000250 51 45 42 41 51 55 41 41 34 49 42 44 77 41 77 67 |QEBAQUAA4IBDwAwg| 00000260 67 45 4b 0d 0a 41 6f 49 42 41 51 43 39 6d 7a 2b |gEK..AoIBAQC9mz+| 00000270 6f 43 67 57 32 42 30 6e 4f 36 32 52 6a 4c 6b 72 |oCgW2B0nO62RjLkr| 00000280 71 76 41 52 54 44 48 41 48 76 64 6f 72 37 67 6b |qvARTDHAHvdor7gk| 00000290 35 31 37 36 31 6a 4c 79 4c 68 57 6a 6b 58 66 30 |51761jLyLhWjkXf0| 000002a0 41 79 47 37 7a 0d 0a 49 32 6d 44 37 46 53 47 70 |AyG7z..I2mD7FSGp| 000002b0 79 6d 52 45 33 51 41 78 6d 42 48 6f 7a 4d 30 39 |ymRE3QAxmBHozM09| 000002c0 47 78 4a 6c 66 7a 68 6f 75 67 30 50 35 45 35 74 |GxJlfzhoug0P5E5t| 000002d0 51 48 79 52 58 64 38 54 2b 37 67 57 70 4d 43 46 |QHyRXd8T+7gWpMCF| 000002e0 78 34 79 44 50 69 39 0d 0a 48 49 6d 77 57 36 76 |x4yDPi9..HImwW6v| 000002f0 36 46 4b 73 39 62 6e 47 2f 4b 4f 7a 2b 4c 76 4d |6FKs9bnG/KOz+LvM| 00000300 75 68 4f 7a 55 53 54 52 2f 56 6e 42 71 6b 32 4b |uhOzUSTR/VnBqk2K| 00000310 45 67 58 58 2f 77 67 52 6e 6a 76 73 59 68 70 4f |EgXX/wgRnjvsYhpO| 00000320 49 67 44 61 75 6b 75 71 74 0d 0a 78 4f 47 6d 31 |IgDaukuqt..xOGm1| 00000330 65 67 75 77 71 48 74 58 6a 78 47 33 68 41 69 75 |eguwqHtXjxG3hAiu| 00000340 72 56 4c 34 4c 5a 6c 42 33 72 57 67 72 31 64 38 |rVL4LZlB3rWgr1d8| 00000350 79 2f 2b 66 34 72 34 68 61 74 66 44 4e 70 52 51 |y/+f4r4hatfDNpRQ| 00000360 53 58 6c 63 73 39 4f 34 54 48 78 0d 0a 6a 46 2b |SXlcs9O4THx..jF+| 00000370 57 50 52 57 66 52 39 4f 4e 41 6d 39 47 4c 4e 64 |WPRWfR9ONAm9GLNd| 00000380 2f 68 79 55 61 65 6a 57 78 68 38 70 58 44 44 55 |/hyUaejWxh8pXDDU| 00000390 46 71 75 33 73 33 79 4f 30 4f 6c 65 4d 75 69 6d |Fqu3s3yO0OleMuim| 000003a0 58 30 43 5a 76 75 4c 6d 35 62 73 63 77 0d 0a 70 |X0CZvuLm5bscw..p| 000003b0 64 2f 2f 37 6a 2b 4d 6a 4b 44 6e 4c 64 41 30 53 |d//7j+MjKDnLdA0S| 000003c0 74 68 4b 4f 66 6e 7a 79 76 6b 68 41 67 4d 42 41 |thKOfnzyvkhAgMBA| 000003d0 41 47 6a 4d 54 41 76 4d 41 34 47 41 31 55 64 44 |AGjMTAvMA4GA1UdD| 000003e0 77 45 42 2f 77 51 45 41 77 49 45 38 44 41 64 0d |wEB/wQEAwIE8DAd.| 000003f0 0a 42 67 4e 56 48 51 34 45 46 67 51 55 5a 57 78 |.BgNVHQ4EFgQUZWx| 00000400 66 56 32 4c 46 69 61 65 44 55 57 58 58 6f 70 54 |fV2LFiaeDUWXXopT| 00000410 61 63 38 79 4c 58 34 6b 77 44 51 59 4a 4b 6f 5a |ac8yLX4kwDQYJKoZ| 00000420 49 68 76 63 4e 41 51 45 4c 42 51 41 44 67 67 45 |IhvcNAQELBQADggE| 00000430 42 0d 0a 41 4a 42 58 55 44 75 6a 6d 36 59 6a 76 |B..AJBXUDujm6Yjv| 00000440 46 6c 30 66 66 59 37 38 6b 4a 64 79 4b 2f 38 34 |Fl0ffY78kJdyK/84| 00000450 58 46 2f 64 33 36 66 51 73 66 51 71 67 50 43 7a |XF/d36fQsfQqgPCz| 00000460 6d 6e 5a 38 6c 4d 41 2b 47 44 5a 6e 72 6b 75 35 |mnZ8lMA+GDZnrku5| 00000470 65 34 62 0d 0a 73 49 6e 63 39 39 77 5a 63 4c 47 |e4b..sInc99wZcLG| 00000480 42 45 53 78 4d 33 41 4e 32 79 67 77 65 37 7a 53 |BESxM3AN2ygwe7zS| 00000490 75 4e 48 4f 53 57 55 6b 38 63 4c 52 44 67 74 68 |uNHOSWUk8cLRDgth| 000004a0 77 48 73 43 62 71 72 67 35 4c 69 41 4e 71 34 44 |wHsCbqrg5LiANq4D| 000004b0 32 7a 57 59 73 0d 0a 2b 53 4b 42 76 38 6c 43 47 |2zWYs..+SKBv8lCG| 000004c0 64 4c 39 4b 55 65 63 70 7a 6b 44 50 30 74 79 51 |dL9KUecpzkDP0tyQ| 000004d0 43 6d 34 47 62 72 70 6b 67 56 45 49 79 32 73 2b |Cm4GbrpkgVEIy2s+| 000004e0 47 71 48 36 38 62 59 48 74 38 75 5a 33 64 42 51 |GqH68bYHt8uZ3dBQ| 000004f0 50 73 71 68 53 63 73 0d 0a 46 65 6b 61 48 63 6d |PsqhScs..FekaHcm| 00000500 38 6a 49 6e 2f 62 37 50 6a 65 37 4d 77 4b 6e 6c |8jIn/b7Pje7MwKnl| 00000510 6f 75 4e 7a 63 4f 2f 5a 39 75 46 57 6e 4d 61 49 |ouNzcO/Z9uFWnMaI| 00000520 6b 38 61 39 34 44 38 70 49 52 77 77 49 32 78 4c |k8a94D8pIRwwI2xL| 00000530 76 51 34 31 64 4f 55 41 41 0d 0a 36 53 73 63 34 |vQ41dOUAA..6Ssc4| 00000540 6b 73 5a 39 76 71 68 38 68 55 44 66 6b 32 55 32 |ksZ9vqh8hUDfk2U2| 00000550 42 62 2b 2b 35 59 43 43 68 71 2f 45 6c 42 4d 69 |Bb++5YCChq/ElBMi| 00000560 36 4c 32 4d 4b 52 76 62 7a 4c 48 4a 2f 69 32 53 |6L2MKRvbzLHJ/i2S| 00000570 55 65 71 66 43 58 51 4f 69 69 58 0d 0a 2b 57 35 |UeqfCXQOiiX..+W5| 00000580 70 2f 54 46 75 2b 70 35 57 68 4b 52 62 51 77 77 |p/TFu+p5WhKRbQww| 00000590 7a 50 42 30 3d 0d 0a 2d 2d 2d 2d 2d 45 4e 44 20 |zPB0=..-----END | 000005a0 4e 45 57 20 43 45 52 54 49 46 49 43 41 54 45 20 |NEW CERTIFICATE | 000005b0 52 45 51 55 45 53 54 2d 2d 2d 2d 2d 0d 0a |REQUEST-----..| 000005be efivar-39/tests/machine0/annotations/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000000626451455652431600261210ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 76 06 00 00 |v...| esl[0].signature_list_size = 1654 (0x676) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 5a 06 00 00 |Z...| esl[0].signature_size = 1626 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 30 82 06 46 |0..F| esl[0].signature[0].data (end:0x00000676) 00000030 30 82 05 2e a0 03 02 01 02 02 13 33 00 00 b4 a7 |0..........3....| 00000040 2c c6 c7 fb c8 da da 27 00 02 00 00 b4 a7 30 0d |,......'......0.| 00000050 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 79 31 |..*.H........0y1| 00000060 0b 30 09 06 03 55 04 06 13 02 55 53 31 0b 30 09 |.0...U....US1.0.| 00000070 06 03 55 04 08 13 02 43 41 31 14 30 12 06 03 55 |..U....CA1.0...U| 00000080 04 07 13 0b 53 61 6e 74 61 20 43 6c 61 72 61 31 |....Santa Clara1| 00000090 1a 30 18 06 03 55 04 0a 13 11 49 6e 74 65 6c 20 |.0...U....Intel | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 2b 30 29 06 |Corporation1+0).| 000000b0 03 55 04 03 13 22 49 6e 74 65 6c 20 45 78 74 65 |.U..."Intel Exte| 000000c0 72 6e 61 6c 20 42 61 73 69 63 20 49 73 73 75 69 |rnal Basic Issui| 000000d0 6e 67 20 43 41 20 33 42 30 1e 17 0d 31 34 30 39 |ng CA 3B0...1409| 000000e0 32 39 31 37 31 39 33 39 5a 17 0d 31 35 30 39 32 |29171939Z..15092| 000000f0 39 31 37 31 39 33 39 5a 30 7d 31 0b 30 09 06 03 |9171939Z0}1.0...| 00000100 55 04 06 13 02 55 53 31 0b 30 09 06 03 55 04 08 |U....US1.0...U..| 00000110 13 02 43 41 31 14 30 12 06 03 55 04 07 13 0b 53 |..CA1.0...U....S| 00000120 61 6e 74 61 20 43 6c 61 72 61 31 1a 30 18 06 03 |anta Clara1.0...| 00000130 55 04 0a 13 11 49 6e 74 65 6c 20 43 6f 72 70 6f |U....Intel Corpo| 00000140 72 61 74 69 6f 6e 31 2f 30 2d 06 03 55 04 03 13 |ration1/0-..U...| 00000150 26 49 6e 74 65 6c 28 52 29 20 44 43 47 20 53 50 |&Intel(R) DCG SP| 00000160 53 20 53 65 72 76 65 72 20 50 54 55 20 4f 70 74 |S Server PTU Opt| 00000170 69 6f 6e 20 52 4f 4d 30 82 01 22 30 0d 06 09 2a |ion ROM0.."0...*| 00000180 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 |.H.............0| 00000190 82 01 0a 02 82 01 01 00 bd a8 06 b1 55 50 cf 88 |............UP..| 000001a0 e7 a3 cf f1 10 f0 ed 05 6e bb 6c 90 51 3d 09 74 |........n.l.Q=.t| 000001b0 d5 5b 7f 23 e9 e6 52 80 aa 72 0a 1d dc 43 e8 fc |.[.#..R..r...C..| 000001c0 36 e5 d4 8b b3 4b be 03 bb a1 9d 93 07 97 20 b4 |6....K........ .| 000001d0 4a 19 8b d1 8a 6b 05 a6 9b bb b3 ac 74 a7 17 4b |J....k......t..K| 000001e0 fb 4a 8f 2e d4 0d bd 2c 8f 8b 0c 56 54 d8 00 78 |.J.....,...VT..x| 000001f0 97 25 0c 9d 92 68 0f 79 92 fb 30 fb 03 69 9c 33 |.%...h.y..0..i.3| 00000200 1b 07 7f 04 5d fb a5 17 f3 a2 e8 c9 3f 1e 22 38 |....].......?."8| 00000210 22 e5 03 ee 33 91 cd 27 ae fb 1e 44 7f 86 59 80 |"...3..'...D..Y.| 00000220 2f c5 f9 4b f3 c1 70 ac 58 5a 99 eb 03 13 8b 8a |/..K..p.XZ......| 00000230 9c 98 aa 47 4b 6e 2d 8c 0d 5f db f2 8f 41 f4 5e |...GKn-.._...A.^| 00000240 14 49 1d a7 cb b6 02 fc f4 70 ff 02 de 9d 26 0d |.I.......p....&.| 00000250 12 c4 83 c2 f8 cd c2 ba c6 e3 69 24 13 42 ef 7a |..........i$.B.z| 00000260 32 25 fa 0c 7e ec e1 08 08 72 a6 5c 61 fe 73 bc |2%..~....r.\a.s.| 00000270 49 a6 47 63 72 c2 5b 22 80 88 c3 f1 a3 e5 b9 74 |I.Gcr.[".......t| 00000280 a0 1f 88 ba 79 21 bd 2f a7 6f bb a6 21 09 d9 21 |....y!./.o..!..!| 00000290 83 bc bd 71 20 35 1c 85 02 03 01 00 01 a3 82 02 |...q 5..........| 000002a0 c1 30 82 02 bd 30 0b 06 03 55 1d 0f 04 04 03 02 |.0...0...U......| 000002b0 07 80 30 13 06 03 55 1d 25 04 0c 30 0a 06 08 2b |..0...U.%..0...+| 000002c0 06 01 05 05 07 03 03 30 1d 06 03 55 1d 0e 04 16 |.......0...U....| 000002d0 04 14 40 06 49 c6 16 6b de e2 65 a9 77 06 4b df |..@.I..k..e.w.K.| 000002e0 cc 90 88 60 a0 5f 30 1f 06 03 55 1d 23 04 18 30 |...`._0...U.#..0| 000002f0 16 80 14 e5 9c 00 ae 43 00 bd 1a 5a 4a b7 89 b6 |.......C...ZJ...| 00000300 e7 88 d0 0e 77 2d 22 30 81 cf 06 03 55 1d 1f 04 |....w-"0....U...| 00000310 81 c7 30 81 c4 30 81 c1 a0 81 be a0 81 bb 86 57 |..0..0.........W| 00000320 68 74 74 70 3a 2f 2f 77 77 77 2e 69 6e 74 65 6c |http://www.intel| 00000330 2e 63 6f 6d 2f 72 65 70 6f 73 69 74 6f 72 79 2f |.com/repository/| 00000340 43 52 4c 2f 49 6e 74 65 6c 25 32 30 45 78 74 65 |CRL/Intel%20Exte| 00000350 72 6e 61 6c 25 32 30 42 61 73 69 63 25 32 30 49 |rnal%20Basic%20I| 00000360 73 73 75 69 6e 67 25 32 30 43 41 25 32 30 33 42 |ssuing%20CA%203B| 00000370 28 32 29 2e 63 72 6c 86 60 68 74 74 70 3a 2f 2f |(2).crl.`http://| 00000380 63 65 72 74 69 66 69 63 61 74 65 73 2e 69 6e 74 |certificates.int| 00000390 65 6c 2e 63 6f 6d 2f 72 65 70 6f 73 69 74 6f 72 |el.com/repositor| 000003a0 79 2f 43 52 4c 2f 49 6e 74 65 6c 25 32 30 45 78 |y/CRL/Intel%20Ex| 000003b0 74 65 72 6e 61 6c 25 32 30 42 61 73 69 63 25 32 |ternal%20Basic%2| 000003c0 30 49 73 73 75 69 6e 67 25 32 30 43 41 25 32 30 |0Issuing%20CA%20| 000003d0 33 42 28 32 29 2e 63 72 6c 30 82 01 1b 06 08 2b |3B(2).crl0.....+| 000003e0 06 01 05 05 07 01 01 04 82 01 0d 30 82 01 09 30 |...........0...0| 000003f0 6c 06 08 2b 06 01 05 05 07 30 02 86 60 68 74 74 |l..+.....0..`htt| 00000400 70 3a 2f 2f 77 77 77 2e 69 6e 74 65 6c 2e 63 6f |p://www.intel.co| 00000410 6d 2f 72 65 70 6f 73 69 74 6f 72 79 2f 63 65 72 |m/repository/cer| 00000420 74 69 66 69 63 61 74 65 73 2f 49 6e 74 65 6c 25 |tificates/Intel%| 00000430 32 30 45 78 74 65 72 6e 61 6c 25 32 30 42 61 73 |20External%20Bas| 00000440 69 63 25 32 30 49 73 73 75 69 6e 67 25 32 30 43 |ic%20Issuing%20C| 00000450 41 25 32 30 33 42 28 32 29 2e 63 72 74 30 75 06 |A%203B(2).crt0u.| 00000460 08 2b 06 01 05 05 07 30 02 86 69 68 74 74 70 3a |.+.....0..ihttp:| 00000470 2f 2f 63 65 72 74 69 66 69 63 61 74 65 73 2e 69 |//certificates.i| 00000480 6e 74 65 6c 2e 63 6f 6d 2f 72 65 70 6f 73 69 74 |ntel.com/reposit| 00000490 6f 72 79 2f 63 65 72 74 69 66 69 63 61 74 65 73 |ory/certificates| 000004a0 2f 49 6e 74 65 6c 25 32 30 45 78 74 65 72 6e 61 |/Intel%20Externa| 000004b0 6c 25 32 30 42 61 73 69 63 25 32 30 49 73 73 75 |l%20Basic%20Issu| 000004c0 69 6e 67 25 32 30 43 41 25 32 30 33 42 28 32 29 |ing%20CA%203B(2)| 000004d0 2e 63 72 74 30 22 06 08 2b 06 01 05 05 07 30 01 |.crt0"..+.....0.| 000004e0 86 16 68 74 74 70 3a 2f 2f 6f 63 73 70 2e 69 6e |..http://ocsp.in| 000004f0 74 65 6c 2e 63 6f 6d 2f 30 0c 06 03 55 1d 13 01 |tel.com/0...U...| 00000500 01 ff 04 02 30 00 30 3d 06 09 2b 06 01 04 01 82 |....0.0=..+.....| 00000510 37 15 07 04 30 30 2e 06 26 2b 06 01 04 01 82 37 |7...00..&+.....7| 00000520 15 08 86 c3 8c 75 84 99 e5 51 83 fd 81 28 85 8e |.....u...Q...(..| 00000530 9f 53 82 91 c0 09 67 81 a8 a9 54 84 ee a4 09 02 |.S....g...T.....| 00000540 01 64 02 01 09 30 1b 06 09 2b 06 01 04 01 82 37 |.d...0...+.....7| 00000550 15 0a 04 0e 30 0c 30 0a 06 08 2b 06 01 05 05 07 |....0.0...+.....| 00000560 03 03 30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 |..0...*.H.......| 00000570 00 03 82 01 01 00 8b fe 7c c2 0a 8e f6 ba 2a 13 |........|.....*.| 00000580 37 8d 4c 6b ef 6e d4 84 b8 1b 39 5a 84 29 8c 0a |7.Lk.n....9Z.)..| 00000590 57 16 ce 75 d6 49 8a c8 0c 29 b7 09 af 18 10 98 |W..u.I...)......| 000005a0 14 54 ea c4 3c 5b b1 96 de 22 b3 13 a0 69 a0 c3 |.T..<[..."...i..| 000005b0 b7 c3 c2 27 89 a1 d0 58 00 21 da a2 53 18 d6 4d |...'...X.!..S..M| 000005c0 a1 e7 76 3e 1f 27 a8 10 d7 c7 4f 38 8a 93 c0 75 |..v>.'....O8...u| 000005d0 26 bb e2 4e 34 b3 59 da b2 11 3c 6c 09 e4 0c 50 |&..N4.Y...x.S.| 00000640 23 32 69 ef d0 b5 77 32 c9 2b ab 10 44 9c 8f ed |#2i...w2.+..D...| 00000650 79 99 63 0e 42 b0 fb 18 b3 45 8b de e5 1c 01 47 |y.c.B....E.....G| 00000660 ce 2a fa 9f a8 a5 3c e1 fb e5 d1 14 3c 30 14 88 |.*....<.....<0..| 00000670 51 87 1d e9 a9 6c |Q....l| 00000676 a1 59 c0 a5 e4 94 a7 4a 87 b5 |.Y.....J..| esl[1].signature_type = {x509_cert} 00000680 ab 15 5c 2b f0 72 |..\+.r| 00000686 40 06 00 00 |@...| esl[1].signature_list_size = 1600 (0x640) 0000068a 00 00 00 00 |....| esl[1].signature_header_size = 0 0000068e 24 06 |$.| esl[1].signature_size = 1572 00000690 00 00 |..| 00000692 esl[1].signature_header (end:0x00000692) 00000692 bd 9a fa 77 59 03 32 4d bd 60 28 f4 e7 8f |...wY.2M.`(...| esl[1].signature[0].owner = {microsoft} 000006a0 78 4b |xK| 000006a2 30 82 06 10 30 82 03 f8 a0 03 02 01 02 02 |0...0.........| esl[1].signature[0].data (end:0x00000cb6) 000006b0 0a 61 08 d3 c4 00 00 00 00 00 04 30 0d 06 09 2a |.a.........0...*| 000006c0 86 48 86 f7 0d 01 01 0b 05 00 30 81 91 31 0b 30 |.H........0..1.0| 000006d0 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 000006e0 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 000006f0 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000700 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 00000710 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000720 6e 31 3b 30 39 06 03 55 04 03 13 32 4d 69 63 72 |n1;09..U...2Micr| 00000730 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000740 6e 20 54 68 69 72 64 20 50 61 72 74 79 20 4d 61 |n Third Party Ma| 00000750 72 6b 65 74 70 6c 61 63 65 20 52 6f 6f 74 30 1e |rketplace Root0.| 00000760 17 0d 31 31 30 36 32 37 32 31 32 32 34 35 5a 17 |..110627212245Z.| 00000770 0d 32 36 30 36 32 37 32 31 33 32 34 35 5a 30 81 |.260627213245Z0.| 00000780 81 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13 |.1.0...U....US1.| 00000790 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e 67 |0...U....Washing| 000007a0 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 65 |ton1.0...U....Re| 000007b0 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 15 |dmond1.0...U....| 000007c0 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 |Microsoft Corpor| 000007d0 61 74 69 6f 6e 31 2b 30 29 06 03 55 04 03 13 22 |ation1+0)..U..."| 000007e0 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 |Microsoft Corpor| 000007f0 61 74 69 6f 6e 20 55 45 46 49 20 43 41 20 32 30 |ation UEFI CA 20| 00000800 31 31 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |110.."0...*.H...| 00000810 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000820 01 01 00 a5 08 6c 4c c7 45 09 6a 4b 0c a4 c0 87 |.....lL.E.jK....| 00000830 7f 06 75 0c 43 01 54 64 e0 16 7f 07 ed 92 7d 0b |..u.C.Td......}.| 00000840 b2 73 bf 0c 0a c6 4a 45 61 a0 c5 16 2d 96 d3 f5 |.s....JEa...-...| 00000850 2b a0 fb 4d 49 9b 41 80 90 3c b9 54 fd e6 bc d1 |+..MI.A..<.T....| 00000860 9d c4 a4 18 8a 7f 41 8a 5c 59 83 68 32 bb 8c 47 |......A.\Y.h2..G| 00000870 c9 ee 71 bc 21 4f 9a 8a 7c ff 44 3f 8d 8f 32 b2 |..q.!O..|.D?..2.| 00000880 26 48 ae 75 b5 ee c9 4c 1e 4a 19 7e e4 82 9a 1d |&H.u...L.J.~....| 00000890 78 77 4d 0c b0 bd f6 0f d3 16 d3 bc fa 2b a5 51 |xwM..........+.Q| 000008a0 38 5d f5 fb ba db 78 02 db ff ec 0a 1b 96 d5 83 |8]....x.........| 000008b0 b8 19 13 e9 b6 c0 7b 40 7b e1 1f 28 27 c9 fa ef |......{@{..('...| 000008c0 56 5e 1c e6 7e 94 7e c0 f0 44 b2 79 39 e5 da b2 |V^..~.~..D.y9...| 000008d0 62 8b 4d bf 38 70 e2 68 24 14 c9 33 a4 08 37 d5 |b.M.8p.h$..3..7.| 000008e0 58 69 5e d3 7c ed c1 04 53 08 e7 4e b0 2a 87 63 |Xi^.|...S..N.*.c| 000008f0 08 61 6f 63 15 59 ea b2 2b 79 d7 0c 61 67 8a 5b |.aoc.Y..+y..ag.[| 00000900 fd 5e ad 87 7f ba 86 67 4f 71 58 12 22 04 22 22 |.^.....gOqX.".""| 00000910 ce 8b ef 54 71 00 ce 50 35 58 76 95 08 ee 6a b1 |...Tq..P5Xv...j.| 00000920 a2 01 d5 02 03 01 00 01 a3 82 01 76 30 82 01 72 |...........v0..r| 00000930 30 12 06 09 2b 06 01 04 01 82 37 15 01 04 05 02 |0...+.....7.....| 00000940 03 01 00 01 30 23 06 09 2b 06 01 04 01 82 37 15 |....0#..+.....7.| 00000950 02 04 16 04 14 f8 c1 6b b7 7f 77 53 4a f3 25 37 |.......k..wSJ.%7| 00000960 1d 4e a1 26 7b 0f 20 70 80 30 1d 06 03 55 1d 0e |.N.&{. p.0...U..| 00000970 04 16 04 14 13 ad bf 43 09 bd 82 70 9c 8c d5 4f |.......C...p...O| 00000980 31 6e d5 22 98 8a 1b d4 30 19 06 09 2b 06 01 04 |1n."....0...+...| 00000990 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 62 00 |..7.......S.u.b.| 000009a0 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 01 86 |C.A0...U........| 000009b0 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 01 01 |0...U.......0...| 000009c0 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 45 66 |.0...U.#..0...Ef| 000009d0 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 08 3b 3a 22 |RC.~X...N.#U.;:"| 000009e0 6a a8 30 5c 06 03 55 1d 1f 04 55 30 53 30 51 a0 |j.0\..U...U0S0Q.| 000009f0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f 63 72 6c 2e |O.M.Khttp://crl.| 00000a00 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b |microsoft.com/pk| 00000a10 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 2f 4d |i/crl/products/M| 00000a20 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 52 6f |icCorThiParMarRo| 00000a30 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 72 6c |o_2010-10-05.crl| 00000a40 30 60 06 08 2b 06 01 05 05 07 01 01 04 54 30 52 |0`..+........T0R| 00000a50 30 50 06 08 2b 06 01 05 05 07 30 02 86 44 68 74 |0P..+.....0..Dht| 00000a60 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f 73 6f |tp://www.microso| 00000a70 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 74 73 |ft.com/pki/certs| 00000a80 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 |/MicCorThiParMar| 00000a90 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 |Roo_2010-10-05.c| 00000aa0 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 |rt0...*.H.......| 00000ab0 00 03 82 02 01 00 35 08 42 ff 30 cc ce f7 76 0c |......5.B.0...v.| 00000ac0 ad 10 68 58 35 29 46 32 76 27 7c ef 12 41 27 42 |..hX5)F2v'|..A'B| 00000ad0 1b 4a aa 6d 81 38 48 59 13 55 f3 e9 58 34 a6 16 |.J.m.8HY.U..X4..| 00000ae0 0b 82 aa 5d ad 82 da 80 83 41 06 8f b4 1d f2 03 |...].....A......| 00000af0 b9 f3 1a 5d 1b f1 50 90 f9 b3 55 84 42 28 1c 20 |...]..P...U.B(. | 00000b00 bd b2 ae 51 14 c5 c0 ac 97 95 21 1c 90 db 0f fc |...Q......!.....| 00000b10 77 9e 95 73 91 88 ca bd bd 52 b9 05 50 0d df 57 |w..s.....R..P..W| 00000b20 9e a0 61 ed 0d e5 6d 25 d9 40 0f 17 40 c8 ce a3 |..a...m%.@..@...| 00000b30 4a c2 4d af 9a 12 1d 08 54 8f bd c7 bc b9 2b 3d |J.M.....T.....+=| 00000b40 49 2b 1f 32 fc 6a 21 69 4f 9b c8 7e 42 34 fc 36 |I+.2.j!iO..~B4.6| 00000b50 06 17 8b 8f 20 40 c0 b3 9a 25 75 27 cd c9 03 a3 |.... @...%u'....| 00000b60 f6 5d d1 e7 36 54 7a b9 50 b5 d3 12 d1 07 bf bb |.]..6Tz.P.......| 00000b70 74 df dc 1e 8f 80 d5 ed 18 f4 2f 14 16 6b 2f de |t........./..k/.| 00000b80 66 8c b0 23 e5 c7 84 d8 ed ea c1 33 82 ad 56 4b |f..#.......3..VK| 00000b90 18 2d f1 68 95 07 cd cf f0 72 f0 ae bb dd 86 85 |.-.h.....r......| 00000ba0 98 2c 21 4c 33 2b f0 0f 4a f0 68 87 b5 92 55 32 |.,!L3+..J.h...U2| 00000bb0 75 a1 6a 82 6a 3c a3 25 11 a4 ed ad d7 04 ae cb |u.j.j<.%........| 00000bc0 d8 40 59 a0 84 d1 95 4c 62 91 22 1a 74 1d 8c 3d |.@Y....Lb.".t..=| 00000bd0 47 0e 44 a6 e4 b0 9b 34 35 b1 fa b6 53 a8 2c 81 |G.D....45...S.,.| 00000be0 ec a4 05 71 c8 9d b8 ba e8 1b 44 66 e4 47 54 0e |...q......Df.GT.| 00000bf0 8e 56 7f b3 9f 16 98 b2 86 d0 68 3e 90 23 b5 2f |.V........h>.#./| 00000c00 5e 8f 50 85 8d c6 8d 82 5f 41 a1 f4 2e 0d e0 99 |^.P....._A......| 00000c10 d2 6c 75 e4 b6 69 b5 21 86 fa 07 d1 f6 e2 4d d1 |.lu..i.!......M.| 00000c20 da ad 2c 77 53 1e 25 32 37 c7 6c 52 72 95 86 b0 |..,wS.%27.lRr...| 00000c30 f1 35 61 6a 19 f5 b2 3b 81 50 56 a6 32 2d fe a2 |.5aj...;.PV.2-..| 00000c40 89 f9 42 86 27 18 55 a1 82 ca 5a 9b f8 30 98 54 |..B.'.U...Z..0.T| 00000c50 14 a6 47 96 25 2f c8 26 e4 41 94 1a 5c 02 3f e5 |..G.%/.&.A..\.?.| 00000c60 96 e3 85 5b 3c 3e 3f bb 47 16 72 55 e2 25 22 b1 |...[<>?.G.rU.%".| 00000c70 d9 7b e7 03 06 2a a3 f7 1e 90 46 c3 00 0d d6 19 |.{...*....F.....| 00000c80 89 e3 0e 35 27 62 03 71 15 a6 ef d0 27 a0 a0 59 |...5'b.q....'..Y| 00000c90 37 60 f8 38 94 b8 e0 78 70 f8 ba 4c 86 87 94 f6 |7`.8...xp..L....| 00000ca0 e0 ae 02 45 ee 65 c2 b6 a3 7e 69 16 75 07 92 9b |...E.e...~i.u...| 00000cb0 f5 a6 bc 59 83 58 |...Y.X| 00000cb6 a1 59 c0 a5 e4 94 a7 4a 87 b5 |.Y.....J..| esl[2].signature_type = {x509_cert} 00000cc0 ab 15 5c 2b f0 72 |..\+.r| 00000cc6 07 06 00 00 |....| esl[2].signature_list_size = 1543 (0x607) 00000cca 00 00 00 00 |....| esl[2].signature_header_size = 0 00000cce eb 05 |..| esl[2].signature_size = 1515 00000cd0 00 00 |..| 00000cd2 esl[2].signature_header (end:0x00000cd2) 00000cd2 bd 9a fa 77 59 03 32 4d bd 60 28 f4 e7 8f |...wY.2M.`(...| esl[2].signature[0].owner = {microsoft} 00000ce0 78 4b |xK| 00000ce2 30 82 05 d7 30 82 03 bf a0 03 02 01 02 02 |0...0.........| esl[2].signature[0].data (end:0x000012bd) 00000cf0 0a 61 07 76 56 00 00 00 00 00 08 30 0d 06 09 2a |.a.vV......0...*| 00000d00 86 48 86 f7 0d 01 01 0b 05 00 30 81 88 31 0b 30 |.H........0..1.0| 00000d10 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000d20 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000d30 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000d40 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 00000d50 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000d60 6e 31 32 30 30 06 03 55 04 03 13 29 4d 69 63 72 |n1200..U...)Micr| 00000d70 6f 73 6f 66 74 20 52 6f 6f 74 20 43 65 72 74 69 |osoft Root Certi| 00000d80 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 |ficate Authority| 00000d90 20 32 30 31 30 30 1e 17 0d 31 31 31 30 31 39 31 | 20100...1110191| 00000da0 38 34 31 34 32 5a 17 0d 32 36 31 30 31 39 31 38 |84142Z..26101918| 00000db0 35 31 34 32 5a 30 81 84 31 0b 30 09 06 03 55 04 |5142Z0..1.0...U.| 00000dc0 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a |...US1.0...U....| 00000dd0 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 |Washington1.0...| 00000de0 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c |U....Redmond1.0.| 00000df0 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 |..U....Microsoft| 00000e00 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 2e 30 2c | Corporation1.0,| 00000e10 06 03 55 04 03 13 25 4d 69 63 72 6f 73 6f 66 74 |..U...%Microsoft| 00000e20 20 57 69 6e 64 6f 77 73 20 50 72 6f 64 75 63 74 | Windows Product| 00000e30 69 6f 6e 20 50 43 41 20 32 30 31 31 30 82 01 22 |ion PCA 20110.."| 00000e40 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 00000e50 82 01 0f 00 30 82 01 0a 02 82 01 01 00 dd 0c bb |....0...........| 00000e60 a2 e4 2e 09 e3 e7 c5 f7 96 69 bc 00 21 bd 69 33 |.........i..!.i3| 00000e70 33 ef ad 04 cb 54 80 ee 06 83 bb c5 20 84 d9 f7 |3....T...... ...| 00000e80 d2 8b f3 38 b0 ab a4 ad 2d 7c 62 79 05 ff e3 4a |...8....-|by...J| 00000e90 3f 04 35 20 70 e3 c4 e7 6b e0 9c c0 36 75 e9 8a |?.5 p...k...6u..| 00000ea0 31 dd 8d 70 e5 dc 37 b5 74 46 96 28 5b 87 60 23 |1..p..7.tF.([.`#| 00000eb0 2c bf dc 47 a5 67 f7 51 27 9e 72 eb 07 a6 c9 b9 |,..G.g.Q'.r.....| 00000ec0 1e 3b 53 35 7c e5 d3 ec 27 b9 87 1c fe b9 c9 23 |.;S5|...'......#| 00000ed0 09 6f a8 46 91 c1 6e 96 3c 41 d3 cb a3 3f 5d 02 |.o.F..n.http:| 00001070 2f 2f 77 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e |//www.microsoft.| 00001080 63 6f 6d 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 |com/pki/certs/Mi| 00001090 63 52 6f 6f 43 65 72 41 75 74 5f 32 30 31 30 2d |cRooCerAut_2010-| 000010a0 30 36 2d 32 33 2e 63 72 74 30 0d 06 09 2a 86 48 |06-23.crt0...*.H| 000010b0 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 14 fc 7c |...............|| 000010c0 71 51 a5 79 c2 6e b2 ef 39 3e bc 3c 52 0f 6e 2b |qQ.y.n..9>..\`.....| 000011a0 d3 09 e9 f4 f6 96 85 b6 7f 51 88 66 47 19 8d a2 |.........Q.fG...| 000011b0 b0 12 3d 81 2a 68 05 77 bb 91 4c 62 7b b6 c1 07 |..=.*h.w..Lb{...| 000011c0 c7 ba 7a 87 34 03 0e 4b 62 7a 99 e9 ca fc ce 4a |..z.4..Kbz.....J| 000011d0 37 c9 2d a4 57 7c 1c fe 3d dc b8 0f 5a fa d6 c4 |7.-.W|..=...Z...| 000011e0 b3 02 85 02 3a ea b3 d9 6e e4 69 21 37 de 81 d1 |....:...n.i!7...| 000011f0 f6 75 19 05 67 d3 93 57 5e 29 1b 39 c8 ee 2d e1 |.u..g..W^).9..-.| 00001200 cd e4 45 73 5b d0 d2 ce 7a ab 16 19 82 46 58 d0 |..Es[...z....FX.| 00001210 5e 9d 81 b3 67 af 6c 35 f2 bc e5 3f 24 e2 35 a2 |^...g.l5...?$.5.| 00001220 0a 75 06 f6 18 56 99 d4 78 2c d1 05 1b eb d0 88 |.u...V..x,......| 00001230 01 9d aa 10 f1 05 df ba 7e 2c 63 b7 06 9b 23 21 |........~,c...#!| 00001240 c4 f9 78 6c e2 58 17 06 36 2b 91 12 03 cc a4 d9 |..xl.X..6+......| 00001250 f2 2d ba f9 94 9d 40 ed 18 45 f1 ce 8a 5c 6b 3e |.-....@..E...\k>| 00001260 ab 03 d3 70 18 2a 0a 6a e0 5f 47 d1 d5 63 0a 32 |...p.*.j._G..c.2| 00001270 f2 af d7 36 1f 2a 70 5a e5 42 59 08 71 4b 57 ba |...6.*pZ.BY.qKW.| 00001280 7e 83 81 f0 21 3c f4 1c c1 c5 b9 90 93 0e 88 45 |~...!<.........E| 00001290 93 86 e9 b1 20 99 be 98 cb c5 95 a4 5d 62 d6 a0 |.... .......]b..| 000012a0 63 08 20 bd 75 10 77 7d 3d f3 45 b9 9f 97 9f cb |c. .u.w}=.E.....| 000012b0 57 80 6f 33 a9 04 cf 77 a4 62 1c 59 7e |W.o3...w.b.Y~| 000012bd efivar-39/tests/machine0/annotations/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000626451455652431600273240ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 76 06 00 00 |v...| esl[0].signature_list_size = 1654 (0x676) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 5a 06 00 00 |Z...| esl[0].signature_size = 1626 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 30 82 06 46 |0..F| esl[0].signature[0].data (end:0x00000676) 00000030 30 82 05 2e a0 03 02 01 02 02 13 33 00 00 b4 a7 |0..........3....| 00000040 2c c6 c7 fb c8 da da 27 00 02 00 00 b4 a7 30 0d |,......'......0.| 00000050 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 79 31 |..*.H........0y1| 00000060 0b 30 09 06 03 55 04 06 13 02 55 53 31 0b 30 09 |.0...U....US1.0.| 00000070 06 03 55 04 08 13 02 43 41 31 14 30 12 06 03 55 |..U....CA1.0...U| 00000080 04 07 13 0b 53 61 6e 74 61 20 43 6c 61 72 61 31 |....Santa Clara1| 00000090 1a 30 18 06 03 55 04 0a 13 11 49 6e 74 65 6c 20 |.0...U....Intel | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 2b 30 29 06 |Corporation1+0).| 000000b0 03 55 04 03 13 22 49 6e 74 65 6c 20 45 78 74 65 |.U..."Intel Exte| 000000c0 72 6e 61 6c 20 42 61 73 69 63 20 49 73 73 75 69 |rnal Basic Issui| 000000d0 6e 67 20 43 41 20 33 42 30 1e 17 0d 31 34 30 39 |ng CA 3B0...1409| 000000e0 32 39 31 37 31 39 33 39 5a 17 0d 31 35 30 39 32 |29171939Z..15092| 000000f0 39 31 37 31 39 33 39 5a 30 7d 31 0b 30 09 06 03 |9171939Z0}1.0...| 00000100 55 04 06 13 02 55 53 31 0b 30 09 06 03 55 04 08 |U....US1.0...U..| 00000110 13 02 43 41 31 14 30 12 06 03 55 04 07 13 0b 53 |..CA1.0...U....S| 00000120 61 6e 74 61 20 43 6c 61 72 61 31 1a 30 18 06 03 |anta Clara1.0...| 00000130 55 04 0a 13 11 49 6e 74 65 6c 20 43 6f 72 70 6f |U....Intel Corpo| 00000140 72 61 74 69 6f 6e 31 2f 30 2d 06 03 55 04 03 13 |ration1/0-..U...| 00000150 26 49 6e 74 65 6c 28 52 29 20 44 43 47 20 53 50 |&Intel(R) DCG SP| 00000160 53 20 53 65 72 76 65 72 20 50 54 55 20 4f 70 74 |S Server PTU Opt| 00000170 69 6f 6e 20 52 4f 4d 30 82 01 22 30 0d 06 09 2a |ion ROM0.."0...*| 00000180 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 |.H.............0| 00000190 82 01 0a 02 82 01 01 00 bd a8 06 b1 55 50 cf 88 |............UP..| 000001a0 e7 a3 cf f1 10 f0 ed 05 6e bb 6c 90 51 3d 09 74 |........n.l.Q=.t| 000001b0 d5 5b 7f 23 e9 e6 52 80 aa 72 0a 1d dc 43 e8 fc |.[.#..R..r...C..| 000001c0 36 e5 d4 8b b3 4b be 03 bb a1 9d 93 07 97 20 b4 |6....K........ .| 000001d0 4a 19 8b d1 8a 6b 05 a6 9b bb b3 ac 74 a7 17 4b |J....k......t..K| 000001e0 fb 4a 8f 2e d4 0d bd 2c 8f 8b 0c 56 54 d8 00 78 |.J.....,...VT..x| 000001f0 97 25 0c 9d 92 68 0f 79 92 fb 30 fb 03 69 9c 33 |.%...h.y..0..i.3| 00000200 1b 07 7f 04 5d fb a5 17 f3 a2 e8 c9 3f 1e 22 38 |....].......?."8| 00000210 22 e5 03 ee 33 91 cd 27 ae fb 1e 44 7f 86 59 80 |"...3..'...D..Y.| 00000220 2f c5 f9 4b f3 c1 70 ac 58 5a 99 eb 03 13 8b 8a |/..K..p.XZ......| 00000230 9c 98 aa 47 4b 6e 2d 8c 0d 5f db f2 8f 41 f4 5e |...GKn-.._...A.^| 00000240 14 49 1d a7 cb b6 02 fc f4 70 ff 02 de 9d 26 0d |.I.......p....&.| 00000250 12 c4 83 c2 f8 cd c2 ba c6 e3 69 24 13 42 ef 7a |..........i$.B.z| 00000260 32 25 fa 0c 7e ec e1 08 08 72 a6 5c 61 fe 73 bc |2%..~....r.\a.s.| 00000270 49 a6 47 63 72 c2 5b 22 80 88 c3 f1 a3 e5 b9 74 |I.Gcr.[".......t| 00000280 a0 1f 88 ba 79 21 bd 2f a7 6f bb a6 21 09 d9 21 |....y!./.o..!..!| 00000290 83 bc bd 71 20 35 1c 85 02 03 01 00 01 a3 82 02 |...q 5..........| 000002a0 c1 30 82 02 bd 30 0b 06 03 55 1d 0f 04 04 03 02 |.0...0...U......| 000002b0 07 80 30 13 06 03 55 1d 25 04 0c 30 0a 06 08 2b |..0...U.%..0...+| 000002c0 06 01 05 05 07 03 03 30 1d 06 03 55 1d 0e 04 16 |.......0...U....| 000002d0 04 14 40 06 49 c6 16 6b de e2 65 a9 77 06 4b df |..@.I..k..e.w.K.| 000002e0 cc 90 88 60 a0 5f 30 1f 06 03 55 1d 23 04 18 30 |...`._0...U.#..0| 000002f0 16 80 14 e5 9c 00 ae 43 00 bd 1a 5a 4a b7 89 b6 |.......C...ZJ...| 00000300 e7 88 d0 0e 77 2d 22 30 81 cf 06 03 55 1d 1f 04 |....w-"0....U...| 00000310 81 c7 30 81 c4 30 81 c1 a0 81 be a0 81 bb 86 57 |..0..0.........W| 00000320 68 74 74 70 3a 2f 2f 77 77 77 2e 69 6e 74 65 6c |http://www.intel| 00000330 2e 63 6f 6d 2f 72 65 70 6f 73 69 74 6f 72 79 2f |.com/repository/| 00000340 43 52 4c 2f 49 6e 74 65 6c 25 32 30 45 78 74 65 |CRL/Intel%20Exte| 00000350 72 6e 61 6c 25 32 30 42 61 73 69 63 25 32 30 49 |rnal%20Basic%20I| 00000360 73 73 75 69 6e 67 25 32 30 43 41 25 32 30 33 42 |ssuing%20CA%203B| 00000370 28 32 29 2e 63 72 6c 86 60 68 74 74 70 3a 2f 2f |(2).crl.`http://| 00000380 63 65 72 74 69 66 69 63 61 74 65 73 2e 69 6e 74 |certificates.int| 00000390 65 6c 2e 63 6f 6d 2f 72 65 70 6f 73 69 74 6f 72 |el.com/repositor| 000003a0 79 2f 43 52 4c 2f 49 6e 74 65 6c 25 32 30 45 78 |y/CRL/Intel%20Ex| 000003b0 74 65 72 6e 61 6c 25 32 30 42 61 73 69 63 25 32 |ternal%20Basic%2| 000003c0 30 49 73 73 75 69 6e 67 25 32 30 43 41 25 32 30 |0Issuing%20CA%20| 000003d0 33 42 28 32 29 2e 63 72 6c 30 82 01 1b 06 08 2b |3B(2).crl0.....+| 000003e0 06 01 05 05 07 01 01 04 82 01 0d 30 82 01 09 30 |...........0...0| 000003f0 6c 06 08 2b 06 01 05 05 07 30 02 86 60 68 74 74 |l..+.....0..`htt| 00000400 70 3a 2f 2f 77 77 77 2e 69 6e 74 65 6c 2e 63 6f |p://www.intel.co| 00000410 6d 2f 72 65 70 6f 73 69 74 6f 72 79 2f 63 65 72 |m/repository/cer| 00000420 74 69 66 69 63 61 74 65 73 2f 49 6e 74 65 6c 25 |tificates/Intel%| 00000430 32 30 45 78 74 65 72 6e 61 6c 25 32 30 42 61 73 |20External%20Bas| 00000440 69 63 25 32 30 49 73 73 75 69 6e 67 25 32 30 43 |ic%20Issuing%20C| 00000450 41 25 32 30 33 42 28 32 29 2e 63 72 74 30 75 06 |A%203B(2).crt0u.| 00000460 08 2b 06 01 05 05 07 30 02 86 69 68 74 74 70 3a |.+.....0..ihttp:| 00000470 2f 2f 63 65 72 74 69 66 69 63 61 74 65 73 2e 69 |//certificates.i| 00000480 6e 74 65 6c 2e 63 6f 6d 2f 72 65 70 6f 73 69 74 |ntel.com/reposit| 00000490 6f 72 79 2f 63 65 72 74 69 66 69 63 61 74 65 73 |ory/certificates| 000004a0 2f 49 6e 74 65 6c 25 32 30 45 78 74 65 72 6e 61 |/Intel%20Externa| 000004b0 6c 25 32 30 42 61 73 69 63 25 32 30 49 73 73 75 |l%20Basic%20Issu| 000004c0 69 6e 67 25 32 30 43 41 25 32 30 33 42 28 32 29 |ing%20CA%203B(2)| 000004d0 2e 63 72 74 30 22 06 08 2b 06 01 05 05 07 30 01 |.crt0"..+.....0.| 000004e0 86 16 68 74 74 70 3a 2f 2f 6f 63 73 70 2e 69 6e |..http://ocsp.in| 000004f0 74 65 6c 2e 63 6f 6d 2f 30 0c 06 03 55 1d 13 01 |tel.com/0...U...| 00000500 01 ff 04 02 30 00 30 3d 06 09 2b 06 01 04 01 82 |....0.0=..+.....| 00000510 37 15 07 04 30 30 2e 06 26 2b 06 01 04 01 82 37 |7...00..&+.....7| 00000520 15 08 86 c3 8c 75 84 99 e5 51 83 fd 81 28 85 8e |.....u...Q...(..| 00000530 9f 53 82 91 c0 09 67 81 a8 a9 54 84 ee a4 09 02 |.S....g...T.....| 00000540 01 64 02 01 09 30 1b 06 09 2b 06 01 04 01 82 37 |.d...0...+.....7| 00000550 15 0a 04 0e 30 0c 30 0a 06 08 2b 06 01 05 05 07 |....0.0...+.....| 00000560 03 03 30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 |..0...*.H.......| 00000570 00 03 82 01 01 00 8b fe 7c c2 0a 8e f6 ba 2a 13 |........|.....*.| 00000580 37 8d 4c 6b ef 6e d4 84 b8 1b 39 5a 84 29 8c 0a |7.Lk.n....9Z.)..| 00000590 57 16 ce 75 d6 49 8a c8 0c 29 b7 09 af 18 10 98 |W..u.I...)......| 000005a0 14 54 ea c4 3c 5b b1 96 de 22 b3 13 a0 69 a0 c3 |.T..<[..."...i..| 000005b0 b7 c3 c2 27 89 a1 d0 58 00 21 da a2 53 18 d6 4d |...'...X.!..S..M| 000005c0 a1 e7 76 3e 1f 27 a8 10 d7 c7 4f 38 8a 93 c0 75 |..v>.'....O8...u| 000005d0 26 bb e2 4e 34 b3 59 da b2 11 3c 6c 09 e4 0c 50 |&..N4.Y...x.S.| 00000640 23 32 69 ef d0 b5 77 32 c9 2b ab 10 44 9c 8f ed |#2i...w2.+..D...| 00000650 79 99 63 0e 42 b0 fb 18 b3 45 8b de e5 1c 01 47 |y.c.B....E.....G| 00000660 ce 2a fa 9f a8 a5 3c e1 fb e5 d1 14 3c 30 14 88 |.*....<.....<0..| 00000670 51 87 1d e9 a9 6c |Q....l| 00000676 a1 59 c0 a5 e4 94 a7 4a 87 b5 |.Y.....J..| esl[1].signature_type = {x509_cert} 00000680 ab 15 5c 2b f0 72 |..\+.r| 00000686 40 06 00 00 |@...| esl[1].signature_list_size = 1600 (0x640) 0000068a 00 00 00 00 |....| esl[1].signature_header_size = 0 0000068e 24 06 |$.| esl[1].signature_size = 1572 00000690 00 00 |..| 00000692 esl[1].signature_header (end:0x00000692) 00000692 bd 9a fa 77 59 03 32 4d bd 60 28 f4 e7 8f |...wY.2M.`(...| esl[1].signature[0].owner = {microsoft} 000006a0 78 4b |xK| 000006a2 30 82 06 10 30 82 03 f8 a0 03 02 01 02 02 |0...0.........| esl[1].signature[0].data (end:0x00000cb6) 000006b0 0a 61 08 d3 c4 00 00 00 00 00 04 30 0d 06 09 2a |.a.........0...*| 000006c0 86 48 86 f7 0d 01 01 0b 05 00 30 81 91 31 0b 30 |.H........0..1.0| 000006d0 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 000006e0 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 000006f0 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000700 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 00000710 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000720 6e 31 3b 30 39 06 03 55 04 03 13 32 4d 69 63 72 |n1;09..U...2Micr| 00000730 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000740 6e 20 54 68 69 72 64 20 50 61 72 74 79 20 4d 61 |n Third Party Ma| 00000750 72 6b 65 74 70 6c 61 63 65 20 52 6f 6f 74 30 1e |rketplace Root0.| 00000760 17 0d 31 31 30 36 32 37 32 31 32 32 34 35 5a 17 |..110627212245Z.| 00000770 0d 32 36 30 36 32 37 32 31 33 32 34 35 5a 30 81 |.260627213245Z0.| 00000780 81 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13 |.1.0...U....US1.| 00000790 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e 67 |0...U....Washing| 000007a0 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 65 |ton1.0...U....Re| 000007b0 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 15 |dmond1.0...U....| 000007c0 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 |Microsoft Corpor| 000007d0 61 74 69 6f 6e 31 2b 30 29 06 03 55 04 03 13 22 |ation1+0)..U..."| 000007e0 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 |Microsoft Corpor| 000007f0 61 74 69 6f 6e 20 55 45 46 49 20 43 41 20 32 30 |ation UEFI CA 20| 00000800 31 31 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |110.."0...*.H...| 00000810 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000820 01 01 00 a5 08 6c 4c c7 45 09 6a 4b 0c a4 c0 87 |.....lL.E.jK....| 00000830 7f 06 75 0c 43 01 54 64 e0 16 7f 07 ed 92 7d 0b |..u.C.Td......}.| 00000840 b2 73 bf 0c 0a c6 4a 45 61 a0 c5 16 2d 96 d3 f5 |.s....JEa...-...| 00000850 2b a0 fb 4d 49 9b 41 80 90 3c b9 54 fd e6 bc d1 |+..MI.A..<.T....| 00000860 9d c4 a4 18 8a 7f 41 8a 5c 59 83 68 32 bb 8c 47 |......A.\Y.h2..G| 00000870 c9 ee 71 bc 21 4f 9a 8a 7c ff 44 3f 8d 8f 32 b2 |..q.!O..|.D?..2.| 00000880 26 48 ae 75 b5 ee c9 4c 1e 4a 19 7e e4 82 9a 1d |&H.u...L.J.~....| 00000890 78 77 4d 0c b0 bd f6 0f d3 16 d3 bc fa 2b a5 51 |xwM..........+.Q| 000008a0 38 5d f5 fb ba db 78 02 db ff ec 0a 1b 96 d5 83 |8]....x.........| 000008b0 b8 19 13 e9 b6 c0 7b 40 7b e1 1f 28 27 c9 fa ef |......{@{..('...| 000008c0 56 5e 1c e6 7e 94 7e c0 f0 44 b2 79 39 e5 da b2 |V^..~.~..D.y9...| 000008d0 62 8b 4d bf 38 70 e2 68 24 14 c9 33 a4 08 37 d5 |b.M.8p.h$..3..7.| 000008e0 58 69 5e d3 7c ed c1 04 53 08 e7 4e b0 2a 87 63 |Xi^.|...S..N.*.c| 000008f0 08 61 6f 63 15 59 ea b2 2b 79 d7 0c 61 67 8a 5b |.aoc.Y..+y..ag.[| 00000900 fd 5e ad 87 7f ba 86 67 4f 71 58 12 22 04 22 22 |.^.....gOqX.".""| 00000910 ce 8b ef 54 71 00 ce 50 35 58 76 95 08 ee 6a b1 |...Tq..P5Xv...j.| 00000920 a2 01 d5 02 03 01 00 01 a3 82 01 76 30 82 01 72 |...........v0..r| 00000930 30 12 06 09 2b 06 01 04 01 82 37 15 01 04 05 02 |0...+.....7.....| 00000940 03 01 00 01 30 23 06 09 2b 06 01 04 01 82 37 15 |....0#..+.....7.| 00000950 02 04 16 04 14 f8 c1 6b b7 7f 77 53 4a f3 25 37 |.......k..wSJ.%7| 00000960 1d 4e a1 26 7b 0f 20 70 80 30 1d 06 03 55 1d 0e |.N.&{. p.0...U..| 00000970 04 16 04 14 13 ad bf 43 09 bd 82 70 9c 8c d5 4f |.......C...p...O| 00000980 31 6e d5 22 98 8a 1b d4 30 19 06 09 2b 06 01 04 |1n."....0...+...| 00000990 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 62 00 |..7.......S.u.b.| 000009a0 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 01 86 |C.A0...U........| 000009b0 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 01 01 |0...U.......0...| 000009c0 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 45 66 |.0...U.#..0...Ef| 000009d0 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 08 3b 3a 22 |RC.~X...N.#U.;:"| 000009e0 6a a8 30 5c 06 03 55 1d 1f 04 55 30 53 30 51 a0 |j.0\..U...U0S0Q.| 000009f0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f 63 72 6c 2e |O.M.Khttp://crl.| 00000a00 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b |microsoft.com/pk| 00000a10 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 2f 4d |i/crl/products/M| 00000a20 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 52 6f |icCorThiParMarRo| 00000a30 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 72 6c |o_2010-10-05.crl| 00000a40 30 60 06 08 2b 06 01 05 05 07 01 01 04 54 30 52 |0`..+........T0R| 00000a50 30 50 06 08 2b 06 01 05 05 07 30 02 86 44 68 74 |0P..+.....0..Dht| 00000a60 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f 73 6f |tp://www.microso| 00000a70 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 74 73 |ft.com/pki/certs| 00000a80 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 |/MicCorThiParMar| 00000a90 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 |Roo_2010-10-05.c| 00000aa0 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 |rt0...*.H.......| 00000ab0 00 03 82 02 01 00 35 08 42 ff 30 cc ce f7 76 0c |......5.B.0...v.| 00000ac0 ad 10 68 58 35 29 46 32 76 27 7c ef 12 41 27 42 |..hX5)F2v'|..A'B| 00000ad0 1b 4a aa 6d 81 38 48 59 13 55 f3 e9 58 34 a6 16 |.J.m.8HY.U..X4..| 00000ae0 0b 82 aa 5d ad 82 da 80 83 41 06 8f b4 1d f2 03 |...].....A......| 00000af0 b9 f3 1a 5d 1b f1 50 90 f9 b3 55 84 42 28 1c 20 |...]..P...U.B(. | 00000b00 bd b2 ae 51 14 c5 c0 ac 97 95 21 1c 90 db 0f fc |...Q......!.....| 00000b10 77 9e 95 73 91 88 ca bd bd 52 b9 05 50 0d df 57 |w..s.....R..P..W| 00000b20 9e a0 61 ed 0d e5 6d 25 d9 40 0f 17 40 c8 ce a3 |..a...m%.@..@...| 00000b30 4a c2 4d af 9a 12 1d 08 54 8f bd c7 bc b9 2b 3d |J.M.....T.....+=| 00000b40 49 2b 1f 32 fc 6a 21 69 4f 9b c8 7e 42 34 fc 36 |I+.2.j!iO..~B4.6| 00000b50 06 17 8b 8f 20 40 c0 b3 9a 25 75 27 cd c9 03 a3 |.... @...%u'....| 00000b60 f6 5d d1 e7 36 54 7a b9 50 b5 d3 12 d1 07 bf bb |.]..6Tz.P.......| 00000b70 74 df dc 1e 8f 80 d5 ed 18 f4 2f 14 16 6b 2f de |t........./..k/.| 00000b80 66 8c b0 23 e5 c7 84 d8 ed ea c1 33 82 ad 56 4b |f..#.......3..VK| 00000b90 18 2d f1 68 95 07 cd cf f0 72 f0 ae bb dd 86 85 |.-.h.....r......| 00000ba0 98 2c 21 4c 33 2b f0 0f 4a f0 68 87 b5 92 55 32 |.,!L3+..J.h...U2| 00000bb0 75 a1 6a 82 6a 3c a3 25 11 a4 ed ad d7 04 ae cb |u.j.j<.%........| 00000bc0 d8 40 59 a0 84 d1 95 4c 62 91 22 1a 74 1d 8c 3d |.@Y....Lb.".t..=| 00000bd0 47 0e 44 a6 e4 b0 9b 34 35 b1 fa b6 53 a8 2c 81 |G.D....45...S.,.| 00000be0 ec a4 05 71 c8 9d b8 ba e8 1b 44 66 e4 47 54 0e |...q......Df.GT.| 00000bf0 8e 56 7f b3 9f 16 98 b2 86 d0 68 3e 90 23 b5 2f |.V........h>.#./| 00000c00 5e 8f 50 85 8d c6 8d 82 5f 41 a1 f4 2e 0d e0 99 |^.P....._A......| 00000c10 d2 6c 75 e4 b6 69 b5 21 86 fa 07 d1 f6 e2 4d d1 |.lu..i.!......M.| 00000c20 da ad 2c 77 53 1e 25 32 37 c7 6c 52 72 95 86 b0 |..,wS.%27.lRr...| 00000c30 f1 35 61 6a 19 f5 b2 3b 81 50 56 a6 32 2d fe a2 |.5aj...;.PV.2-..| 00000c40 89 f9 42 86 27 18 55 a1 82 ca 5a 9b f8 30 98 54 |..B.'.U...Z..0.T| 00000c50 14 a6 47 96 25 2f c8 26 e4 41 94 1a 5c 02 3f e5 |..G.%/.&.A..\.?.| 00000c60 96 e3 85 5b 3c 3e 3f bb 47 16 72 55 e2 25 22 b1 |...[<>?.G.rU.%".| 00000c70 d9 7b e7 03 06 2a a3 f7 1e 90 46 c3 00 0d d6 19 |.{...*....F.....| 00000c80 89 e3 0e 35 27 62 03 71 15 a6 ef d0 27 a0 a0 59 |...5'b.q....'..Y| 00000c90 37 60 f8 38 94 b8 e0 78 70 f8 ba 4c 86 87 94 f6 |7`.8...xp..L....| 00000ca0 e0 ae 02 45 ee 65 c2 b6 a3 7e 69 16 75 07 92 9b |...E.e...~i.u...| 00000cb0 f5 a6 bc 59 83 58 |...Y.X| 00000cb6 a1 59 c0 a5 e4 94 a7 4a 87 b5 |.Y.....J..| esl[2].signature_type = {x509_cert} 00000cc0 ab 15 5c 2b f0 72 |..\+.r| 00000cc6 07 06 00 00 |....| esl[2].signature_list_size = 1543 (0x607) 00000cca 00 00 00 00 |....| esl[2].signature_header_size = 0 00000cce eb 05 |..| esl[2].signature_size = 1515 00000cd0 00 00 |..| 00000cd2 esl[2].signature_header (end:0x00000cd2) 00000cd2 bd 9a fa 77 59 03 32 4d bd 60 28 f4 e7 8f |...wY.2M.`(...| esl[2].signature[0].owner = {microsoft} 00000ce0 78 4b |xK| 00000ce2 30 82 05 d7 30 82 03 bf a0 03 02 01 02 02 |0...0.........| esl[2].signature[0].data (end:0x000012bd) 00000cf0 0a 61 07 76 56 00 00 00 00 00 08 30 0d 06 09 2a |.a.vV......0...*| 00000d00 86 48 86 f7 0d 01 01 0b 05 00 30 81 88 31 0b 30 |.H........0..1.0| 00000d10 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000d20 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000d30 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000d40 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 00000d50 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000d60 6e 31 32 30 30 06 03 55 04 03 13 29 4d 69 63 72 |n1200..U...)Micr| 00000d70 6f 73 6f 66 74 20 52 6f 6f 74 20 43 65 72 74 69 |osoft Root Certi| 00000d80 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 |ficate Authority| 00000d90 20 32 30 31 30 30 1e 17 0d 31 31 31 30 31 39 31 | 20100...1110191| 00000da0 38 34 31 34 32 5a 17 0d 32 36 31 30 31 39 31 38 |84142Z..26101918| 00000db0 35 31 34 32 5a 30 81 84 31 0b 30 09 06 03 55 04 |5142Z0..1.0...U.| 00000dc0 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a |...US1.0...U....| 00000dd0 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 |Washington1.0...| 00000de0 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c |U....Redmond1.0.| 00000df0 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 |..U....Microsoft| 00000e00 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 2e 30 2c | Corporation1.0,| 00000e10 06 03 55 04 03 13 25 4d 69 63 72 6f 73 6f 66 74 |..U...%Microsoft| 00000e20 20 57 69 6e 64 6f 77 73 20 50 72 6f 64 75 63 74 | Windows Product| 00000e30 69 6f 6e 20 50 43 41 20 32 30 31 31 30 82 01 22 |ion PCA 20110.."| 00000e40 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 00000e50 82 01 0f 00 30 82 01 0a 02 82 01 01 00 dd 0c bb |....0...........| 00000e60 a2 e4 2e 09 e3 e7 c5 f7 96 69 bc 00 21 bd 69 33 |.........i..!.i3| 00000e70 33 ef ad 04 cb 54 80 ee 06 83 bb c5 20 84 d9 f7 |3....T...... ...| 00000e80 d2 8b f3 38 b0 ab a4 ad 2d 7c 62 79 05 ff e3 4a |...8....-|by...J| 00000e90 3f 04 35 20 70 e3 c4 e7 6b e0 9c c0 36 75 e9 8a |?.5 p...k...6u..| 00000ea0 31 dd 8d 70 e5 dc 37 b5 74 46 96 28 5b 87 60 23 |1..p..7.tF.([.`#| 00000eb0 2c bf dc 47 a5 67 f7 51 27 9e 72 eb 07 a6 c9 b9 |,..G.g.Q'.r.....| 00000ec0 1e 3b 53 35 7c e5 d3 ec 27 b9 87 1c fe b9 c9 23 |.;S5|...'......#| 00000ed0 09 6f a8 46 91 c1 6e 96 3c 41 d3 cb a3 3f 5d 02 |.o.F..n.http:| 00001070 2f 2f 77 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e |//www.microsoft.| 00001080 63 6f 6d 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 |com/pki/certs/Mi| 00001090 63 52 6f 6f 43 65 72 41 75 74 5f 32 30 31 30 2d |cRooCerAut_2010-| 000010a0 30 36 2d 32 33 2e 63 72 74 30 0d 06 09 2a 86 48 |06-23.crt0...*.H| 000010b0 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 14 fc 7c |...............|| 000010c0 71 51 a5 79 c2 6e b2 ef 39 3e bc 3c 52 0f 6e 2b |qQ.y.n..9>..\`.....| 000011a0 d3 09 e9 f4 f6 96 85 b6 7f 51 88 66 47 19 8d a2 |.........Q.fG...| 000011b0 b0 12 3d 81 2a 68 05 77 bb 91 4c 62 7b b6 c1 07 |..=.*h.w..Lb{...| 000011c0 c7 ba 7a 87 34 03 0e 4b 62 7a 99 e9 ca fc ce 4a |..z.4..Kbz.....J| 000011d0 37 c9 2d a4 57 7c 1c fe 3d dc b8 0f 5a fa d6 c4 |7.-.W|..=...Z...| 000011e0 b3 02 85 02 3a ea b3 d9 6e e4 69 21 37 de 81 d1 |....:...n.i!7...| 000011f0 f6 75 19 05 67 d3 93 57 5e 29 1b 39 c8 ee 2d e1 |.u..g..W^).9..-.| 00001200 cd e4 45 73 5b d0 d2 ce 7a ab 16 19 82 46 58 d0 |..Es[...z....FX.| 00001210 5e 9d 81 b3 67 af 6c 35 f2 bc e5 3f 24 e2 35 a2 |^...g.l5...?$.5.| 00001220 0a 75 06 f6 18 56 99 d4 78 2c d1 05 1b eb d0 88 |.u...V..x,......| 00001230 01 9d aa 10 f1 05 df ba 7e 2c 63 b7 06 9b 23 21 |........~,c...#!| 00001240 c4 f9 78 6c e2 58 17 06 36 2b 91 12 03 cc a4 d9 |..xl.X..6+......| 00001250 f2 2d ba f9 94 9d 40 ed 18 45 f1 ce 8a 5c 6b 3e |.-....@..E...\k>| 00001260 ab 03 d3 70 18 2a 0a 6a e0 5f 47 d1 d5 63 0a 32 |...p.*.j._G..c.2| 00001270 f2 af d7 36 1f 2a 70 5a e5 42 59 08 71 4b 57 ba |...6.*pZ.BY.qKW.| 00001280 7e 83 81 f0 21 3c f4 1c c1 c5 b9 90 93 0e 88 45 |~...!<.........E| 00001290 93 86 e9 b1 20 99 be 98 cb c5 95 a4 5d 62 d6 a0 |.... .......]b..| 000012a0 63 08 20 bd 75 10 77 7d 3d f3 45 b9 9f 97 9f cb |c. .u.w}=.E.....| 000012b0 57 80 6f 33 a9 04 cf 77 a4 62 1c 59 7e |W.o3...w.b.Y~| 000012bd efivar-39/tests/machine0/annotations/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000000174071455652431600262770ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 be 05 00 00 |....| esl[0].signature_list_size = 1470 (0x5be) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 a2 05 00 00 |....| esl[0].signature_size = 1442 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 2d 2d 2d 2d |----| esl[0].signature[0].data (end:0x000005be) 00000030 2d 42 45 47 49 4e 20 4e 45 57 20 43 45 52 54 49 |-BEGIN NEW CERTI| 00000040 46 49 43 41 54 45 20 52 45 51 55 45 53 54 2d 2d |FICATE REQUEST--| 00000050 2d 2d 2d 0d 0a 4d 49 49 44 7a 54 43 43 41 72 57 |---..MIIDzTCCArW| 00000060 67 41 77 49 42 41 67 49 51 4d 78 41 42 39 68 45 |gAwIBAgIQMxAB9hE| 00000070 71 68 34 39 4d 4d 50 4e 6e 78 33 63 44 41 6a 41 |qh49MMPNnx3cDAjA| 00000080 4e 42 67 6b 71 68 6b 69 47 39 77 30 42 41 51 73 |NBgkqhkiG9w0BAQs| 00000090 46 41 44 43 42 0d 0a 69 44 45 4d 4d 41 6f 47 41 |FADCB..iDEMMAoGA| 000000a0 31 55 45 42 68 4d 44 56 56 4e 42 4d 51 73 77 43 |1UEBhMDVVNBMQswC| 000000b0 51 59 44 56 51 51 49 44 41 4a 44 51 54 45 52 4d |QYDVQQIDAJDQTERM| 000000c0 41 38 47 41 31 55 45 42 77 77 49 55 32 46 75 49 |A8GA1UEBwwIU2FuI| 000000d0 45 70 76 63 32 55 78 0d 0a 49 44 41 65 42 67 4e |Epvc2Ux..IDAeBgN| 000000e0 56 42 41 6f 4d 46 31 4e 31 63 47 56 79 49 45 31 |VBAoMF1N1cGVyIE1| 000000f0 70 59 33 4a 76 49 45 4e 76 63 6e 42 76 63 6d 46 |pY3JvIENvcnBvcmF| 00000100 30 61 57 39 75 4d 54 59 77 4e 41 59 44 56 51 51 |0aW9uMTYwNAYDVQQ| 00000110 44 44 43 31 54 64 58 42 6c 0d 0a 63 69 42 4e 61 |DDC1TdXBl..ciBNa| 00000120 57 4e 79 62 79 42 44 62 33 4a 77 62 33 4a 68 64 |WNybyBDb3Jwb3Jhd| 00000130 47 6c 76 62 69 42 4c 59 57 4a 35 62 47 46 72 5a |GlvbiBLYWJ5bGFrZ| 00000140 53 42 51 62 47 46 30 5a 6d 39 79 62 53 42 4c 5a |SBQbGF0Zm9ybSBLZ| 00000150 58 6b 77 48 68 63 4e 4d 54 59 77 0d 0a 4e 6a 49 |XkwHhcNMTYw..NjI| 00000160 79 4d 6a 45 79 4e 44 4d 31 57 68 63 4e 4d 6a 49 |yMjEyNDM1WhcNMjI| 00000170 77 4e 6a 49 79 4d 6a 45 7a 4e 44 49 35 57 6a 43 |wNjIyMjEzNDI5WjC| 00000180 42 69 44 45 4d 4d 41 6f 47 41 31 55 45 42 68 4d |BiDEMMAoGA1UEBhM| 00000190 44 56 56 4e 42 4d 51 73 77 43 51 59 44 0d 0a 56 |DVVNBMQswCQYD..V| 000001a0 51 51 49 44 41 4a 44 51 54 45 52 4d 41 38 47 41 |QQIDAJDQTERMA8GA| 000001b0 31 55 45 42 77 77 49 55 32 46 75 49 45 70 76 63 |1UEBwwIU2FuIEpvc| 000001c0 32 55 78 49 44 41 65 42 67 4e 56 42 41 6f 4d 46 |2UxIDAeBgNVBAoMF| 000001d0 31 4e 31 63 47 56 79 49 45 31 70 59 33 4a 76 0d |1N1cGVyIE1pY3Jv.| 000001e0 0a 49 45 4e 76 63 6e 42 76 63 6d 46 30 61 57 39 |.IENvcnBvcmF0aW9| 000001f0 75 4d 54 59 77 4e 41 59 44 56 51 51 44 44 43 31 |uMTYwNAYDVQQDDC1| 00000200 54 64 58 42 6c 63 69 42 4e 61 57 4e 79 62 79 42 |TdXBlciBNaWNybyB| 00000210 44 62 33 4a 77 62 33 4a 68 64 47 6c 76 62 69 42 |Db3Jwb3JhdGlvbiB| 00000220 4c 0d 0a 59 57 4a 35 62 47 46 72 5a 53 42 51 62 |L..YWJ5bGFrZSBQb| 00000230 47 46 30 5a 6d 39 79 62 53 42 4c 5a 58 6b 77 67 |GF0Zm9ybSBLZXkwg| 00000240 67 45 69 4d 41 30 47 43 53 71 47 53 49 62 33 44 |gEiMA0GCSqGSIb3D| 00000250 51 45 42 41 51 55 41 41 34 49 42 44 77 41 77 67 |QEBAQUAA4IBDwAwg| 00000260 67 45 4b 0d 0a 41 6f 49 42 41 51 43 39 6d 7a 2b |gEK..AoIBAQC9mz+| 00000270 6f 43 67 57 32 42 30 6e 4f 36 32 52 6a 4c 6b 72 |oCgW2B0nO62RjLkr| 00000280 71 76 41 52 54 44 48 41 48 76 64 6f 72 37 67 6b |qvARTDHAHvdor7gk| 00000290 35 31 37 36 31 6a 4c 79 4c 68 57 6a 6b 58 66 30 |51761jLyLhWjkXf0| 000002a0 41 79 47 37 7a 0d 0a 49 32 6d 44 37 46 53 47 70 |AyG7z..I2mD7FSGp| 000002b0 79 6d 52 45 33 51 41 78 6d 42 48 6f 7a 4d 30 39 |ymRE3QAxmBHozM09| 000002c0 47 78 4a 6c 66 7a 68 6f 75 67 30 50 35 45 35 74 |GxJlfzhoug0P5E5t| 000002d0 51 48 79 52 58 64 38 54 2b 37 67 57 70 4d 43 46 |QHyRXd8T+7gWpMCF| 000002e0 78 34 79 44 50 69 39 0d 0a 48 49 6d 77 57 36 76 |x4yDPi9..HImwW6v| 000002f0 36 46 4b 73 39 62 6e 47 2f 4b 4f 7a 2b 4c 76 4d |6FKs9bnG/KOz+LvM| 00000300 75 68 4f 7a 55 53 54 52 2f 56 6e 42 71 6b 32 4b |uhOzUSTR/VnBqk2K| 00000310 45 67 58 58 2f 77 67 52 6e 6a 76 73 59 68 70 4f |EgXX/wgRnjvsYhpO| 00000320 49 67 44 61 75 6b 75 71 74 0d 0a 78 4f 47 6d 31 |IgDaukuqt..xOGm1| 00000330 65 67 75 77 71 48 74 58 6a 78 47 33 68 41 69 75 |eguwqHtXjxG3hAiu| 00000340 72 56 4c 34 4c 5a 6c 42 33 72 57 67 72 31 64 38 |rVL4LZlB3rWgr1d8| 00000350 79 2f 2b 66 34 72 34 68 61 74 66 44 4e 70 52 51 |y/+f4r4hatfDNpRQ| 00000360 53 58 6c 63 73 39 4f 34 54 48 78 0d 0a 6a 46 2b |SXlcs9O4THx..jF+| 00000370 57 50 52 57 66 52 39 4f 4e 41 6d 39 47 4c 4e 64 |WPRWfR9ONAm9GLNd| 00000380 2f 68 79 55 61 65 6a 57 78 68 38 70 58 44 44 55 |/hyUaejWxh8pXDDU| 00000390 46 71 75 33 73 33 79 4f 30 4f 6c 65 4d 75 69 6d |Fqu3s3yO0OleMuim| 000003a0 58 30 43 5a 76 75 4c 6d 35 62 73 63 77 0d 0a 70 |X0CZvuLm5bscw..p| 000003b0 64 2f 2f 37 6a 2b 4d 6a 4b 44 6e 4c 64 41 30 53 |d//7j+MjKDnLdA0S| 000003c0 74 68 4b 4f 66 6e 7a 79 76 6b 68 41 67 4d 42 41 |thKOfnzyvkhAgMBA| 000003d0 41 47 6a 4d 54 41 76 4d 41 34 47 41 31 55 64 44 |AGjMTAvMA4GA1UdD| 000003e0 77 45 42 2f 77 51 45 41 77 49 45 38 44 41 64 0d |wEB/wQEAwIE8DAd.| 000003f0 0a 42 67 4e 56 48 51 34 45 46 67 51 55 5a 57 78 |.BgNVHQ4EFgQUZWx| 00000400 66 56 32 4c 46 69 61 65 44 55 57 58 58 6f 70 54 |fV2LFiaeDUWXXopT| 00000410 61 63 38 79 4c 58 34 6b 77 44 51 59 4a 4b 6f 5a |ac8yLX4kwDQYJKoZ| 00000420 49 68 76 63 4e 41 51 45 4c 42 51 41 44 67 67 45 |IhvcNAQELBQADggE| 00000430 42 0d 0a 41 4a 42 58 55 44 75 6a 6d 36 59 6a 76 |B..AJBXUDujm6Yjv| 00000440 46 6c 30 66 66 59 37 38 6b 4a 64 79 4b 2f 38 34 |Fl0ffY78kJdyK/84| 00000450 58 46 2f 64 33 36 66 51 73 66 51 71 67 50 43 7a |XF/d36fQsfQqgPCz| 00000460 6d 6e 5a 38 6c 4d 41 2b 47 44 5a 6e 72 6b 75 35 |mnZ8lMA+GDZnrku5| 00000470 65 34 62 0d 0a 73 49 6e 63 39 39 77 5a 63 4c 47 |e4b..sInc99wZcLG| 00000480 42 45 53 78 4d 33 41 4e 32 79 67 77 65 37 7a 53 |BESxM3AN2ygwe7zS| 00000490 75 4e 48 4f 53 57 55 6b 38 63 4c 52 44 67 74 68 |uNHOSWUk8cLRDgth| 000004a0 77 48 73 43 62 71 72 67 35 4c 69 41 4e 71 34 44 |wHsCbqrg5LiANq4D| 000004b0 32 7a 57 59 73 0d 0a 2b 53 4b 42 76 38 6c 43 47 |2zWYs..+SKBv8lCG| 000004c0 64 4c 39 4b 55 65 63 70 7a 6b 44 50 30 74 79 51 |dL9KUecpzkDP0tyQ| 000004d0 43 6d 34 47 62 72 70 6b 67 56 45 49 79 32 73 2b |Cm4GbrpkgVEIy2s+| 000004e0 47 71 48 36 38 62 59 48 74 38 75 5a 33 64 42 51 |GqH68bYHt8uZ3dBQ| 000004f0 50 73 71 68 53 63 73 0d 0a 46 65 6b 61 48 63 6d |PsqhScs..FekaHcm| 00000500 38 6a 49 6e 2f 62 37 50 6a 65 37 4d 77 4b 6e 6c |8jIn/b7Pje7MwKnl| 00000510 6f 75 4e 7a 63 4f 2f 5a 39 75 46 57 6e 4d 61 49 |ouNzcO/Z9uFWnMaI| 00000520 6b 38 61 39 34 44 38 70 49 52 77 77 49 32 78 4c |k8a94D8pIRwwI2xL| 00000530 76 51 34 31 64 4f 55 41 41 0d 0a 36 53 73 63 34 |vQ41dOUAA..6Ssc4| 00000540 6b 73 5a 39 76 71 68 38 68 55 44 66 6b 32 55 32 |ksZ9vqh8hUDfk2U2| 00000550 42 62 2b 2b 35 59 43 43 68 71 2f 45 6c 42 4d 69 |Bb++5YCChq/ElBMi| 00000560 36 4c 32 4d 4b 52 76 62 7a 4c 48 4a 2f 69 32 53 |6L2MKRvbzLHJ/i2S| 00000570 55 65 71 66 43 58 51 4f 69 69 58 0d 0a 2b 57 35 |UeqfCXQOiiX..+W5| 00000580 70 2f 54 46 75 2b 70 35 57 68 4b 52 62 51 77 77 |p/TFu+p5WhKRbQww| 00000590 7a 50 42 30 3d 0d 0a 2d 2d 2d 2d 2d 45 4e 44 20 |zPB0=..-----END | 000005a0 4e 45 57 20 43 45 52 54 49 46 49 43 41 54 45 20 |NEW CERTIFICATE | 000005b0 52 45 51 55 45 53 54 2d 2d 2d 2d 2d 0d 0a |REQUEST-----..| 000005be efivar-39/tests/machine0/annotations/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000174071455652431600275020ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 be 05 00 00 |....| esl[0].signature_list_size = 1470 (0x5be) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 a2 05 00 00 |....| esl[0].signature_size = 1442 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 2d 2d 2d 2d |----| esl[0].signature[0].data (end:0x000005be) 00000030 2d 42 45 47 49 4e 20 4e 45 57 20 43 45 52 54 49 |-BEGIN NEW CERTI| 00000040 46 49 43 41 54 45 20 52 45 51 55 45 53 54 2d 2d |FICATE REQUEST--| 00000050 2d 2d 2d 0d 0a 4d 49 49 44 7a 54 43 43 41 72 57 |---..MIIDzTCCArW| 00000060 67 41 77 49 42 41 67 49 51 4d 78 41 42 39 68 45 |gAwIBAgIQMxAB9hE| 00000070 71 68 34 39 4d 4d 50 4e 6e 78 33 63 44 41 6a 41 |qh49MMPNnx3cDAjA| 00000080 4e 42 67 6b 71 68 6b 69 47 39 77 30 42 41 51 73 |NBgkqhkiG9w0BAQs| 00000090 46 41 44 43 42 0d 0a 69 44 45 4d 4d 41 6f 47 41 |FADCB..iDEMMAoGA| 000000a0 31 55 45 42 68 4d 44 56 56 4e 42 4d 51 73 77 43 |1UEBhMDVVNBMQswC| 000000b0 51 59 44 56 51 51 49 44 41 4a 44 51 54 45 52 4d |QYDVQQIDAJDQTERM| 000000c0 41 38 47 41 31 55 45 42 77 77 49 55 32 46 75 49 |A8GA1UEBwwIU2FuI| 000000d0 45 70 76 63 32 55 78 0d 0a 49 44 41 65 42 67 4e |Epvc2Ux..IDAeBgN| 000000e0 56 42 41 6f 4d 46 31 4e 31 63 47 56 79 49 45 31 |VBAoMF1N1cGVyIE1| 000000f0 70 59 33 4a 76 49 45 4e 76 63 6e 42 76 63 6d 46 |pY3JvIENvcnBvcmF| 00000100 30 61 57 39 75 4d 54 59 77 4e 41 59 44 56 51 51 |0aW9uMTYwNAYDVQQ| 00000110 44 44 43 31 54 64 58 42 6c 0d 0a 63 69 42 4e 61 |DDC1TdXBl..ciBNa| 00000120 57 4e 79 62 79 42 44 62 33 4a 77 62 33 4a 68 64 |WNybyBDb3Jwb3Jhd| 00000130 47 6c 76 62 69 42 4c 59 57 4a 35 62 47 46 72 5a |GlvbiBLYWJ5bGFrZ| 00000140 53 42 51 62 47 46 30 5a 6d 39 79 62 53 42 4c 5a |SBQbGF0Zm9ybSBLZ| 00000150 58 6b 77 48 68 63 4e 4d 54 59 77 0d 0a 4e 6a 49 |XkwHhcNMTYw..NjI| 00000160 79 4d 6a 45 79 4e 44 4d 31 57 68 63 4e 4d 6a 49 |yMjEyNDM1WhcNMjI| 00000170 77 4e 6a 49 79 4d 6a 45 7a 4e 44 49 35 57 6a 43 |wNjIyMjEzNDI5WjC| 00000180 42 69 44 45 4d 4d 41 6f 47 41 31 55 45 42 68 4d |BiDEMMAoGA1UEBhM| 00000190 44 56 56 4e 42 4d 51 73 77 43 51 59 44 0d 0a 56 |DVVNBMQswCQYD..V| 000001a0 51 51 49 44 41 4a 44 51 54 45 52 4d 41 38 47 41 |QQIDAJDQTERMA8GA| 000001b0 31 55 45 42 77 77 49 55 32 46 75 49 45 70 76 63 |1UEBwwIU2FuIEpvc| 000001c0 32 55 78 49 44 41 65 42 67 4e 56 42 41 6f 4d 46 |2UxIDAeBgNVBAoMF| 000001d0 31 4e 31 63 47 56 79 49 45 31 70 59 33 4a 76 0d |1N1cGVyIE1pY3Jv.| 000001e0 0a 49 45 4e 76 63 6e 42 76 63 6d 46 30 61 57 39 |.IENvcnBvcmF0aW9| 000001f0 75 4d 54 59 77 4e 41 59 44 56 51 51 44 44 43 31 |uMTYwNAYDVQQDDC1| 00000200 54 64 58 42 6c 63 69 42 4e 61 57 4e 79 62 79 42 |TdXBlciBNaWNybyB| 00000210 44 62 33 4a 77 62 33 4a 68 64 47 6c 76 62 69 42 |Db3Jwb3JhdGlvbiB| 00000220 4c 0d 0a 59 57 4a 35 62 47 46 72 5a 53 42 51 62 |L..YWJ5bGFrZSBQb| 00000230 47 46 30 5a 6d 39 79 62 53 42 4c 5a 58 6b 77 67 |GF0Zm9ybSBLZXkwg| 00000240 67 45 69 4d 41 30 47 43 53 71 47 53 49 62 33 44 |gEiMA0GCSqGSIb3D| 00000250 51 45 42 41 51 55 41 41 34 49 42 44 77 41 77 67 |QEBAQUAA4IBDwAwg| 00000260 67 45 4b 0d 0a 41 6f 49 42 41 51 43 39 6d 7a 2b |gEK..AoIBAQC9mz+| 00000270 6f 43 67 57 32 42 30 6e 4f 36 32 52 6a 4c 6b 72 |oCgW2B0nO62RjLkr| 00000280 71 76 41 52 54 44 48 41 48 76 64 6f 72 37 67 6b |qvARTDHAHvdor7gk| 00000290 35 31 37 36 31 6a 4c 79 4c 68 57 6a 6b 58 66 30 |51761jLyLhWjkXf0| 000002a0 41 79 47 37 7a 0d 0a 49 32 6d 44 37 46 53 47 70 |AyG7z..I2mD7FSGp| 000002b0 79 6d 52 45 33 51 41 78 6d 42 48 6f 7a 4d 30 39 |ymRE3QAxmBHozM09| 000002c0 47 78 4a 6c 66 7a 68 6f 75 67 30 50 35 45 35 74 |GxJlfzhoug0P5E5t| 000002d0 51 48 79 52 58 64 38 54 2b 37 67 57 70 4d 43 46 |QHyRXd8T+7gWpMCF| 000002e0 78 34 79 44 50 69 39 0d 0a 48 49 6d 77 57 36 76 |x4yDPi9..HImwW6v| 000002f0 36 46 4b 73 39 62 6e 47 2f 4b 4f 7a 2b 4c 76 4d |6FKs9bnG/KOz+LvM| 00000300 75 68 4f 7a 55 53 54 52 2f 56 6e 42 71 6b 32 4b |uhOzUSTR/VnBqk2K| 00000310 45 67 58 58 2f 77 67 52 6e 6a 76 73 59 68 70 4f |EgXX/wgRnjvsYhpO| 00000320 49 67 44 61 75 6b 75 71 74 0d 0a 78 4f 47 6d 31 |IgDaukuqt..xOGm1| 00000330 65 67 75 77 71 48 74 58 6a 78 47 33 68 41 69 75 |eguwqHtXjxG3hAiu| 00000340 72 56 4c 34 4c 5a 6c 42 33 72 57 67 72 31 64 38 |rVL4LZlB3rWgr1d8| 00000350 79 2f 2b 66 34 72 34 68 61 74 66 44 4e 70 52 51 |y/+f4r4hatfDNpRQ| 00000360 53 58 6c 63 73 39 4f 34 54 48 78 0d 0a 6a 46 2b |SXlcs9O4THx..jF+| 00000370 57 50 52 57 66 52 39 4f 4e 41 6d 39 47 4c 4e 64 |WPRWfR9ONAm9GLNd| 00000380 2f 68 79 55 61 65 6a 57 78 68 38 70 58 44 44 55 |/hyUaejWxh8pXDDU| 00000390 46 71 75 33 73 33 79 4f 30 4f 6c 65 4d 75 69 6d |Fqu3s3yO0OleMuim| 000003a0 58 30 43 5a 76 75 4c 6d 35 62 73 63 77 0d 0a 70 |X0CZvuLm5bscw..p| 000003b0 64 2f 2f 37 6a 2b 4d 6a 4b 44 6e 4c 64 41 30 53 |d//7j+MjKDnLdA0S| 000003c0 74 68 4b 4f 66 6e 7a 79 76 6b 68 41 67 4d 42 41 |thKOfnzyvkhAgMBA| 000003d0 41 47 6a 4d 54 41 76 4d 41 34 47 41 31 55 64 44 |AGjMTAvMA4GA1UdD| 000003e0 77 45 42 2f 77 51 45 41 77 49 45 38 44 41 64 0d |wEB/wQEAwIE8DAd.| 000003f0 0a 42 67 4e 56 48 51 34 45 46 67 51 55 5a 57 78 |.BgNVHQ4EFgQUZWx| 00000400 66 56 32 4c 46 69 61 65 44 55 57 58 58 6f 70 54 |fV2LFiaeDUWXXopT| 00000410 61 63 38 79 4c 58 34 6b 77 44 51 59 4a 4b 6f 5a |ac8yLX4kwDQYJKoZ| 00000420 49 68 76 63 4e 41 51 45 4c 42 51 41 44 67 67 45 |IhvcNAQELBQADggE| 00000430 42 0d 0a 41 4a 42 58 55 44 75 6a 6d 36 59 6a 76 |B..AJBXUDujm6Yjv| 00000440 46 6c 30 66 66 59 37 38 6b 4a 64 79 4b 2f 38 34 |Fl0ffY78kJdyK/84| 00000450 58 46 2f 64 33 36 66 51 73 66 51 71 67 50 43 7a |XF/d36fQsfQqgPCz| 00000460 6d 6e 5a 38 6c 4d 41 2b 47 44 5a 6e 72 6b 75 35 |mnZ8lMA+GDZnrku5| 00000470 65 34 62 0d 0a 73 49 6e 63 39 39 77 5a 63 4c 47 |e4b..sInc99wZcLG| 00000480 42 45 53 78 4d 33 41 4e 32 79 67 77 65 37 7a 53 |BESxM3AN2ygwe7zS| 00000490 75 4e 48 4f 53 57 55 6b 38 63 4c 52 44 67 74 68 |uNHOSWUk8cLRDgth| 000004a0 77 48 73 43 62 71 72 67 35 4c 69 41 4e 71 34 44 |wHsCbqrg5LiANq4D| 000004b0 32 7a 57 59 73 0d 0a 2b 53 4b 42 76 38 6c 43 47 |2zWYs..+SKBv8lCG| 000004c0 64 4c 39 4b 55 65 63 70 7a 6b 44 50 30 74 79 51 |dL9KUecpzkDP0tyQ| 000004d0 43 6d 34 47 62 72 70 6b 67 56 45 49 79 32 73 2b |Cm4GbrpkgVEIy2s+| 000004e0 47 71 48 36 38 62 59 48 74 38 75 5a 33 64 42 51 |GqH68bYHt8uZ3dBQ| 000004f0 50 73 71 68 53 63 73 0d 0a 46 65 6b 61 48 63 6d |PsqhScs..FekaHcm| 00000500 38 6a 49 6e 2f 62 37 50 6a 65 37 4d 77 4b 6e 6c |8jIn/b7Pje7MwKnl| 00000510 6f 75 4e 7a 63 4f 2f 5a 39 75 46 57 6e 4d 61 49 |ouNzcO/Z9uFWnMaI| 00000520 6b 38 61 39 34 44 38 70 49 52 77 77 49 32 78 4c |k8a94D8pIRwwI2xL| 00000530 76 51 34 31 64 4f 55 41 41 0d 0a 36 53 73 63 34 |vQ41dOUAA..6Ssc4| 00000540 6b 73 5a 39 76 71 68 38 68 55 44 66 6b 32 55 32 |ksZ9vqh8hUDfk2U2| 00000550 42 62 2b 2b 35 59 43 43 68 71 2f 45 6c 42 4d 69 |Bb++5YCChq/ElBMi| 00000560 36 4c 32 4d 4b 52 76 62 7a 4c 48 4a 2f 69 32 53 |6L2MKRvbzLHJ/i2S| 00000570 55 65 71 66 43 58 51 4f 69 69 58 0d 0a 2b 57 35 |UeqfCXQOiiX..+W5| 00000580 70 2f 54 46 75 2b 70 35 57 68 4b 52 62 51 77 77 |p/TFu+p5WhKRbQww| 00000590 7a 50 42 30 3d 0d 0a 2d 2d 2d 2d 2d 45 4e 44 20 |zPB0=..-----END | 000005a0 4e 45 57 20 43 45 52 54 49 46 49 43 41 54 45 20 |NEW CERTIFICATE | 000005b0 52 45 51 55 45 53 54 2d 2d 2d 2d 2d 0d 0a |REQUEST-----..| 000005be efivar-39/tests/machine0/annotations/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000000203401455652431600262670ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 1d 06 00 00 |....| esl[0].signature_list_size = 1565 (0x61d) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 01 06 00 00 |....| esl[0].signature_size = 1537 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 ed |0...| esl[0].signature[0].data (end:0x0000061d) 00000030 30 82 03 d5 a0 03 02 01 02 02 10 28 cc 3a 25 bf |0..........(.:%.| 00000040 ba 44 ac 44 9a 9b 58 6b 43 39 aa 30 0d 06 09 2a |.D.D..XkC9.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 81 88 31 0b 30 |.H........0..1.0| 00000060 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000070 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000080 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000090 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 000000a0 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 000000b0 6e 31 32 30 30 06 03 55 04 03 13 29 4d 69 63 72 |n1200..U...)Micr| 000000c0 6f 73 6f 66 74 20 52 6f 6f 74 20 43 65 72 74 69 |osoft Root Certi| 000000d0 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 |ficate Authority| 000000e0 20 32 30 31 30 30 1e 17 0d 31 30 30 36 32 33 32 | 20100...1006232| 000000f0 31 35 37 32 34 5a 17 0d 33 35 30 36 32 33 32 32 |15724Z..35062322| 00000100 30 34 30 31 5a 30 81 88 31 0b 30 09 06 03 55 04 |0401Z0..1.0...U.| 00000110 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a |...US1.0...U....| 00000120 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 |Washington1.0...| 00000130 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c |U....Redmond1.0.| 00000140 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 |..U....Microsoft| 00000150 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 | Corporation1200| 00000160 06 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 |..U...)Microsoft| 00000170 20 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 | Root Certificat| 00000180 65 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 |e Authority 2010| 00000190 30 82 02 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 000001a0 01 05 00 03 82 02 0f 00 30 82 02 0a 02 82 02 01 |........0.......| 000001b0 00 b9 08 9e 28 e4 e4 ec 06 4e 50 68 b3 41 c5 7b |....(....NPh.A.{| 000001c0 eb ae b6 8e af 81 ba 22 44 1f 65 34 69 4c be 70 |......."D.e4iL.p| 000001d0 40 17 f2 16 7b e2 79 fd 86 ed 0d 39 f4 1b a8 ad |@...{.y....9....| 000001e0 92 90 1e cb 3d 76 8f 5a d9 b5 91 10 2e 3c 05 8d |....=v.Z.....<..| 000001f0 8a 6d 24 54 e7 1f ed 56 ad 83 b4 50 9c 15 a5 17 |.m$T...V...P....| 00000200 74 88 59 20 fc 08 c5 84 76 d3 68 d4 6f 28 78 ce |t.Y ....v.h.o(x.| 00000210 5c b8 f3 50 90 44 ff e3 63 5f be a1 9a 2c 96 15 |\..P.D..c_...,..| 00000220 04 d6 07 fe 1e 84 21 e0 42 31 11 c4 28 36 94 cf |......!.B1..(6..| 00000230 50 a4 62 9e c9 d6 ab 71 00 b2 5b 0c e6 96 d4 0a |P.b....q..[.....| 00000240 24 96 f5 ff c6 d5 b7 1b d7 cb b7 21 62 af 12 dc |$..........!b...| 00000250 a1 5d 37 e3 1a fb 1a 46 98 c0 9b c0 e7 63 1f 2a |.]7....F.....c.*| 00000260 08 93 02 7e 1e 6a 8e f2 9f 18 89 e4 22 85 a2 b1 |...~.j......"...| 00000270 84 57 40 ff f5 0e d8 6f 9c ed e2 45 31 01 cd 17 |.W@....o...E1...| 00000280 e9 7f b0 81 45 e3 aa 21 40 26 a1 72 aa a7 4f 3c |....E..!@&.r..O<| 00000290 01 05 7e ee 83 58 b1 5e 06 63 99 62 91 78 82 b7 |..~..X.^.c.b.x..| 000002a0 0d 93 0c 24 6a b4 1b db 27 ec 5f 95 04 3f 93 4a |...$j...'._..?.J| 000002b0 30 f5 97 18 b3 a7 f9 19 a7 93 33 1d 01 c8 db 22 |0.........3...."| 000002c0 52 5c d7 25 c9 46 f9 a2 fb 87 59 43 be 9b 62 b1 |R\.%.F....YC..b.| 000002d0 8d 2d 86 44 1a 46 ac 78 61 7e 30 09 fa ae 89 c4 |.-.D.F.xa~0.....| 000002e0 41 2a 22 66 03 91 39 45 9c c7 8b 0c a8 ca 0d 2f |A*"f..9E......./| 000002f0 fb 52 ea 0c f7 63 33 23 9d fe b0 1f ad 67 d6 a7 |.R...c3#.....g..| 00000300 50 03 c6 04 70 63 b5 2c b1 86 5a 43 b7 fb ae f9 |P...pc.,..ZC....| 00000310 6e 29 6e 21 21 41 26 06 8c c9 c3 ee b0 c2 85 93 |n)n!!A&.........| 00000320 a1 b9 85 d9 e6 32 6c 4b 4c 3f d6 5d a3 e5 b5 9d |.....2lKL?.]....| 00000330 77 c3 9c c0 55 b7 74 00 e3 b8 38 ab 83 97 50 e1 |w...U.t...8...P.| 00000340 9a 42 24 1d c6 c0 a3 30 d1 1a 5a c8 52 34 f7 73 |.B$....0..Z.R4.s| 00000350 f1 c7 18 1f 33 ad 7a ec cb 41 60 f3 23 94 20 c2 |....3.z..A`.#. .| 00000360 48 45 ac 5c 51 c6 2e 80 c2 e2 77 15 bd 85 87 ed |HE.\Q.....w.....| 00000370 36 9d 96 91 ee 00 b5 a3 70 ec 9f e3 8d 80 68 83 |6.......p.....h.| 00000380 76 ba af 5d 70 52 22 16 e2 66 fb ba b3 c5 c2 f7 |v..]pR"..f......| 00000390 3e 2f 77 a6 ca de c1 a6 c6 48 4c c3 37 51 23 d3 |>/w......HL.7Q#.| 000003a0 27 d7 b8 4e 70 96 f0 a1 44 76 af 78 cf 9a e1 66 |'..Np...Dv.x...f| 000003b0 13 02 03 01 00 01 a3 51 30 4f 30 0b 06 03 55 1d |.......Q0O0...U.| 000003c0 0f 04 04 03 02 01 86 30 0f 06 03 55 1d 13 01 01 |.......0...U....| 000003d0 ff 04 05 30 03 01 01 ff 30 1d 06 03 55 1d 0e 04 |...0....0...U...| 000003e0 16 04 14 d5 f6 56 cb 8f e8 a2 5c 62 68 d1 3d 94 |.....V....\bh.=.| 000003f0 90 5b d7 ce 9a 18 c4 30 10 06 09 2b 06 01 04 01 |.[.....0...+....| 00000400 82 37 15 01 04 03 02 01 00 30 0d 06 09 2a 86 48 |.7.......0...*.H| 00000410 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 ac a5 96 |................| 00000420 8c bf bb ae a6 f6 d7 71 87 43 31 56 88 fd 1c 32 |.......q.C1V...2| 00000430 71 5b 35 b7 d4 f0 91 f2 af 37 e2 14 f1 f3 02 26 |q[5......7.....&| 00000440 05 3e 16 14 7f 14 ba b8 4f fb 89 b2 b2 e7 d4 09 |.>......O.......| 00000450 cc 6d b9 5b 3b 64 65 70 66 b7 f2 b1 5a df 1a 02 |.m.[;depf...Z...| 00000460 f3 f5 51 b8 67 6d 79 f3 bf 56 7b e4 84 b9 2b 1e |..Q.gmy..V{...+.| 00000470 9b 40 9c 26 34 f9 47 18 98 69 d8 1c d7 b6 d1 bf |.@.&4.G..i......| 00000480 8f 61 c2 67 c4 b5 ef 60 43 8e 10 1b 36 49 e4 20 |.a.g...`C...6I. | 00000490 ca ad a7 c1 b1 27 65 09 f8 cd f5 5b 2a d0 84 33 |.....'e....[*..3| 000004a0 f3 ef 1f f2 f5 9c 0b 58 93 37 a0 75 a0 de 72 de |.......X.7.u..r.| 000004b0 6c 75 2a 66 22 f5 8c 06 30 56 9f 40 b9 30 aa 40 |lu*f"...0V.@.0.@| 000004c0 77 15 82 d7 8b ec c0 d3 b2 bd 83 c5 77 0c 1e ae |w...........w...| 000004d0 af 19 53 a0 4d 79 71 9f 0f af 30 ce 67 f9 d6 2c |..S.Myq...0.g..,| 000004e0 cc 22 41 7a 07 f2 97 42 18 ce 59 79 10 55 de 6f |."Az...B..Yy.U.o| 000004f0 10 e4 b8 da 83 66 40 16 09 68 23 5b 97 2e 26 9a |.....f@..h#[..&.| 00000500 02 bb 57 8c c5 b8 ba 69 62 32 80 89 9e a1 fd c0 |..W....ib2......| 00000510 92 7c 7b 2b 33 19 84 2a 63 c5 00 68 62 fa 9f 47 |.|{+3..*c..hb..G| 00000520 8d 99 7a 45 3a a7 e9 ed ee 69 42 b5 f3 81 9b 47 |..zE:....iB....G| 00000530 56 10 7b fc 70 36 84 18 73 ea ef f9 97 4d 9e 33 |V.{.p6..s....M.3| 00000540 23 dd 26 0b ba 2a b7 3f 44 dc 83 27 ff bd 61 59 |#.&..*.?D..'..aY| 00000550 2b 11 b7 ca 4f db c5 8b 0c 1c 31 ae 32 f8 f8 b9 |+...O.....1.2...| 00000560 42 f7 7f dc 61 9a 76 b1 5a 04 e1 11 3d 66 45 b7 |B...a.v.Z...=fE.| 00000570 18 71 be c9 24 85 d6 f3 d4 ba 41 34 5d 12 2d 25 |.q..$.....A4].-%| 00000580 b9 8d a6 13 48 6d 4b b0 07 7d 99 93 09 61 81 74 |....HmK..}...a.t| 00000590 57 26 8a ab 69 e3 e4 d9 c7 88 cc 24 d8 ec 52 24 |W&..i......$..R$| 000005a0 5c 1e bc 91 14 e2 96 de eb 0a da 9e dd 5f b3 5b |\............_.[| 000005b0 db d4 82 ec c6 20 50 87 25 40 3a fb c7 ee cd fe |..... P.%@:.....| 000005c0 33 e5 6e c3 84 09 55 03 25 39 c0 e9 35 5d 65 31 |3.n...U.%9..5]e1| 000005d0 a8 f6 bf a0 09 cd 29 c7 b3 36 32 2e dc 95 f3 83 |......)..62.....| 000005e0 c1 5a cf 8b 8d f6 ea b3 21 f8 a4 ed 1e 31 0e b6 |.Z......!....1..| 000005f0 4c 11 ab 60 0b a4 12 23 22 17 a3 36 64 82 91 04 |L..`...#"..6d...| 00000600 12 e0 ab 6f 1e cb 50 05 61 b4 40 ff 59 86 71 d1 |...o..P.a.@.Y.q.| 00000610 d5 33 69 7c a9 73 8a 38 d7 64 0c f1 69 |.3i|.s.8.d..i| 0000061d efivar-39/tests/machine0/annotations/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000203401455652431600274720ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 1d 06 00 00 |....| esl[0].signature_list_size = 1565 (0x61d) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 01 06 00 00 |....| esl[0].signature_size = 1537 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 ed |0...| esl[0].signature[0].data (end:0x0000061d) 00000030 30 82 03 d5 a0 03 02 01 02 02 10 28 cc 3a 25 bf |0..........(.:%.| 00000040 ba 44 ac 44 9a 9b 58 6b 43 39 aa 30 0d 06 09 2a |.D.D..XkC9.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 81 88 31 0b 30 |.H........0..1.0| 00000060 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000070 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000080 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000090 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 000000a0 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 000000b0 6e 31 32 30 30 06 03 55 04 03 13 29 4d 69 63 72 |n1200..U...)Micr| 000000c0 6f 73 6f 66 74 20 52 6f 6f 74 20 43 65 72 74 69 |osoft Root Certi| 000000d0 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 |ficate Authority| 000000e0 20 32 30 31 30 30 1e 17 0d 31 30 30 36 32 33 32 | 20100...1006232| 000000f0 31 35 37 32 34 5a 17 0d 33 35 30 36 32 33 32 32 |15724Z..35062322| 00000100 30 34 30 31 5a 30 81 88 31 0b 30 09 06 03 55 04 |0401Z0..1.0...U.| 00000110 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a |...US1.0...U....| 00000120 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 |Washington1.0...| 00000130 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c |U....Redmond1.0.| 00000140 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 |..U....Microsoft| 00000150 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 | Corporation1200| 00000160 06 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 |..U...)Microsoft| 00000170 20 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 | Root Certificat| 00000180 65 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 |e Authority 2010| 00000190 30 82 02 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 000001a0 01 05 00 03 82 02 0f 00 30 82 02 0a 02 82 02 01 |........0.......| 000001b0 00 b9 08 9e 28 e4 e4 ec 06 4e 50 68 b3 41 c5 7b |....(....NPh.A.{| 000001c0 eb ae b6 8e af 81 ba 22 44 1f 65 34 69 4c be 70 |......."D.e4iL.p| 000001d0 40 17 f2 16 7b e2 79 fd 86 ed 0d 39 f4 1b a8 ad |@...{.y....9....| 000001e0 92 90 1e cb 3d 76 8f 5a d9 b5 91 10 2e 3c 05 8d |....=v.Z.....<..| 000001f0 8a 6d 24 54 e7 1f ed 56 ad 83 b4 50 9c 15 a5 17 |.m$T...V...P....| 00000200 74 88 59 20 fc 08 c5 84 76 d3 68 d4 6f 28 78 ce |t.Y ....v.h.o(x.| 00000210 5c b8 f3 50 90 44 ff e3 63 5f be a1 9a 2c 96 15 |\..P.D..c_...,..| 00000220 04 d6 07 fe 1e 84 21 e0 42 31 11 c4 28 36 94 cf |......!.B1..(6..| 00000230 50 a4 62 9e c9 d6 ab 71 00 b2 5b 0c e6 96 d4 0a |P.b....q..[.....| 00000240 24 96 f5 ff c6 d5 b7 1b d7 cb b7 21 62 af 12 dc |$..........!b...| 00000250 a1 5d 37 e3 1a fb 1a 46 98 c0 9b c0 e7 63 1f 2a |.]7....F.....c.*| 00000260 08 93 02 7e 1e 6a 8e f2 9f 18 89 e4 22 85 a2 b1 |...~.j......"...| 00000270 84 57 40 ff f5 0e d8 6f 9c ed e2 45 31 01 cd 17 |.W@....o...E1...| 00000280 e9 7f b0 81 45 e3 aa 21 40 26 a1 72 aa a7 4f 3c |....E..!@&.r..O<| 00000290 01 05 7e ee 83 58 b1 5e 06 63 99 62 91 78 82 b7 |..~..X.^.c.b.x..| 000002a0 0d 93 0c 24 6a b4 1b db 27 ec 5f 95 04 3f 93 4a |...$j...'._..?.J| 000002b0 30 f5 97 18 b3 a7 f9 19 a7 93 33 1d 01 c8 db 22 |0.........3...."| 000002c0 52 5c d7 25 c9 46 f9 a2 fb 87 59 43 be 9b 62 b1 |R\.%.F....YC..b.| 000002d0 8d 2d 86 44 1a 46 ac 78 61 7e 30 09 fa ae 89 c4 |.-.D.F.xa~0.....| 000002e0 41 2a 22 66 03 91 39 45 9c c7 8b 0c a8 ca 0d 2f |A*"f..9E......./| 000002f0 fb 52 ea 0c f7 63 33 23 9d fe b0 1f ad 67 d6 a7 |.R...c3#.....g..| 00000300 50 03 c6 04 70 63 b5 2c b1 86 5a 43 b7 fb ae f9 |P...pc.,..ZC....| 00000310 6e 29 6e 21 21 41 26 06 8c c9 c3 ee b0 c2 85 93 |n)n!!A&.........| 00000320 a1 b9 85 d9 e6 32 6c 4b 4c 3f d6 5d a3 e5 b5 9d |.....2lKL?.]....| 00000330 77 c3 9c c0 55 b7 74 00 e3 b8 38 ab 83 97 50 e1 |w...U.t...8...P.| 00000340 9a 42 24 1d c6 c0 a3 30 d1 1a 5a c8 52 34 f7 73 |.B$....0..Z.R4.s| 00000350 f1 c7 18 1f 33 ad 7a ec cb 41 60 f3 23 94 20 c2 |....3.z..A`.#. .| 00000360 48 45 ac 5c 51 c6 2e 80 c2 e2 77 15 bd 85 87 ed |HE.\Q.....w.....| 00000370 36 9d 96 91 ee 00 b5 a3 70 ec 9f e3 8d 80 68 83 |6.......p.....h.| 00000380 76 ba af 5d 70 52 22 16 e2 66 fb ba b3 c5 c2 f7 |v..]pR"..f......| 00000390 3e 2f 77 a6 ca de c1 a6 c6 48 4c c3 37 51 23 d3 |>/w......HL.7Q#.| 000003a0 27 d7 b8 4e 70 96 f0 a1 44 76 af 78 cf 9a e1 66 |'..Np...Dv.x...f| 000003b0 13 02 03 01 00 01 a3 51 30 4f 30 0b 06 03 55 1d |.......Q0O0...U.| 000003c0 0f 04 04 03 02 01 86 30 0f 06 03 55 1d 13 01 01 |.......0...U....| 000003d0 ff 04 05 30 03 01 01 ff 30 1d 06 03 55 1d 0e 04 |...0....0...U...| 000003e0 16 04 14 d5 f6 56 cb 8f e8 a2 5c 62 68 d1 3d 94 |.....V....\bh.=.| 000003f0 90 5b d7 ce 9a 18 c4 30 10 06 09 2b 06 01 04 01 |.[.....0...+....| 00000400 82 37 15 01 04 03 02 01 00 30 0d 06 09 2a 86 48 |.7.......0...*.H| 00000410 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 ac a5 96 |................| 00000420 8c bf bb ae a6 f6 d7 71 87 43 31 56 88 fd 1c 32 |.......q.C1V...2| 00000430 71 5b 35 b7 d4 f0 91 f2 af 37 e2 14 f1 f3 02 26 |q[5......7.....&| 00000440 05 3e 16 14 7f 14 ba b8 4f fb 89 b2 b2 e7 d4 09 |.>......O.......| 00000450 cc 6d b9 5b 3b 64 65 70 66 b7 f2 b1 5a df 1a 02 |.m.[;depf...Z...| 00000460 f3 f5 51 b8 67 6d 79 f3 bf 56 7b e4 84 b9 2b 1e |..Q.gmy..V{...+.| 00000470 9b 40 9c 26 34 f9 47 18 98 69 d8 1c d7 b6 d1 bf |.@.&4.G..i......| 00000480 8f 61 c2 67 c4 b5 ef 60 43 8e 10 1b 36 49 e4 20 |.a.g...`C...6I. | 00000490 ca ad a7 c1 b1 27 65 09 f8 cd f5 5b 2a d0 84 33 |.....'e....[*..3| 000004a0 f3 ef 1f f2 f5 9c 0b 58 93 37 a0 75 a0 de 72 de |.......X.7.u..r.| 000004b0 6c 75 2a 66 22 f5 8c 06 30 56 9f 40 b9 30 aa 40 |lu*f"...0V.@.0.@| 000004c0 77 15 82 d7 8b ec c0 d3 b2 bd 83 c5 77 0c 1e ae |w...........w...| 000004d0 af 19 53 a0 4d 79 71 9f 0f af 30 ce 67 f9 d6 2c |..S.Myq...0.g..,| 000004e0 cc 22 41 7a 07 f2 97 42 18 ce 59 79 10 55 de 6f |."Az...B..Yy.U.o| 000004f0 10 e4 b8 da 83 66 40 16 09 68 23 5b 97 2e 26 9a |.....f@..h#[..&.| 00000500 02 bb 57 8c c5 b8 ba 69 62 32 80 89 9e a1 fd c0 |..W....ib2......| 00000510 92 7c 7b 2b 33 19 84 2a 63 c5 00 68 62 fa 9f 47 |.|{+3..*c..hb..G| 00000520 8d 99 7a 45 3a a7 e9 ed ee 69 42 b5 f3 81 9b 47 |..zE:....iB....G| 00000530 56 10 7b fc 70 36 84 18 73 ea ef f9 97 4d 9e 33 |V.{.p6..s....M.3| 00000540 23 dd 26 0b ba 2a b7 3f 44 dc 83 27 ff bd 61 59 |#.&..*.?D..'..aY| 00000550 2b 11 b7 ca 4f db c5 8b 0c 1c 31 ae 32 f8 f8 b9 |+...O.....1.2...| 00000560 42 f7 7f dc 61 9a 76 b1 5a 04 e1 11 3d 66 45 b7 |B...a.v.Z...=fE.| 00000570 18 71 be c9 24 85 d6 f3 d4 ba 41 34 5d 12 2d 25 |.q..$.....A4].-%| 00000580 b9 8d a6 13 48 6d 4b b0 07 7d 99 93 09 61 81 74 |....HmK..}...a.t| 00000590 57 26 8a ab 69 e3 e4 d9 c7 88 cc 24 d8 ec 52 24 |W&..i......$..R$| 000005a0 5c 1e bc 91 14 e2 96 de eb 0a da 9e dd 5f b3 5b |\............_.[| 000005b0 db d4 82 ec c6 20 50 87 25 40 3a fb c7 ee cd fe |..... P.%@:.....| 000005c0 33 e5 6e c3 84 09 55 03 25 39 c0 e9 35 5d 65 31 |3.n...U.%9..5]e1| 000005d0 a8 f6 bf a0 09 cd 29 c7 b3 36 32 2e dc 95 f3 83 |......)..62.....| 000005e0 c1 5a cf 8b 8d f6 ea b3 21 f8 a4 ed 1e 31 0e b6 |.Z......!....1..| 000005f0 4c 11 ab 60 0b a4 12 23 22 17 a3 36 64 82 91 04 |L..`...#"..6d...| 00000600 12 e0 ab 6f 1e cb 50 05 61 b4 40 ff 59 86 71 d1 |...o..P.a.@.Y.q.| 00000610 d5 33 69 7c a9 73 8a 38 d7 64 0c f1 69 |.3i|.s.8.d..i| 0000061d efivar-39/tests/machine0/annotations/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000001125341455652431600263020ustar00rootroot0000000000000000000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 8c 02 00 00 |....| esl[0].signature_list_size = 652 (0x28c) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 80 b4 d9 69 |...i| esl[0].signature[0].data (end:0x0000004c) 00000030 31 bf 0d 02 fd 91 a6 1e 19 d1 4f 1d a4 52 e6 6d |1.........O..R.m| 00000040 b2 40 8c a8 60 4d 41 1f 92 65 9f 0a |.@..`MA..e..| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c f5 2f 83 a3 |./..| esl[0].signature[1].data (end:0x0000007c) 00000060 fa 9c fb d6 92 0f 72 28 24 db e4 03 45 34 d2 5b |......r($...E4.[| 00000070 85 07 24 6b 3b 95 7d ac 6e 1b ce 7a |..$k;.}.n..z| 0000007c bd 9a fa 77 |...w| esl[0].signature[2].owner = {microsoft} 00000080 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000008c c5 d9 d8 a1 |....| esl[0].signature[2].data (end:0x000000ac) 00000090 86 e2 c8 2d 09 af aa 2a 6f 7f 2e 73 87 0d 3e 64 |...-...*o..s..>d| 000000a0 f7 2c 4e 08 ef 67 79 6a 84 0f 0f bd |.,N..gyj....| 000000ac bd 9a fa 77 |...w| esl[0].signature[3].owner = {microsoft} 000000b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000bc 36 33 84 d1 |63..| esl[0].signature[3].data (end:0x000000dc) 000000c0 4d 1f 2e 0b 78 15 62 64 84 c4 59 ad 57 a3 18 ef |M...x.bd..Y.W...| 000000d0 43 96 26 60 48 d0 58 c5 a1 9b bf 76 |C.&`H.X....v| 000000dc bd 9a fa 77 |...w| esl[0].signature[4].owner = {microsoft} 000000e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000ec 1a ec 84 b8 |....| esl[0].signature[4].data (end:0x0000010c) 000000f0 4b 6c 65 a5 12 20 a9 be 71 81 96 52 30 21 0d 62 |Kle.. ..q..R0!.b| 00000100 d6 d3 3c 48 99 9c 6b 29 5a 2b 0a 06 |....h2.....'| 00000280 25 27 df b6 3d 49 d2 95 72 a6 f4 4c |%'..=I..r..L| 0000028c 26 16 c4 c1 |&...| esl[1].signature_type = {sha256} 00000290 4c 50 92 40 ac a9 41 f9 36 93 43 28 |LP.@..A.6.C(| 0000029c 1c 0c 00 00 |....| esl[1].signature_list_size = 3100 (0xc1c) 000002a0 00 00 00 00 |....| esl[1].signature_header_size = 0 000002a4 30 00 00 00 |0...| esl[1].signature_size = 48 000002a8 esl[1].signature_header (end:0x000002a8) 000002a8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[0].owner = {microsoft} 000002b0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000002b8 07 5e ea 06 05 89 54 8b |.^....T.| esl[1].signature[0].data (end:0x000002d8) 000002c0 a0 60 b2 fe ed 10 da 3c 20 c7 fe 9b 17 cd 02 6b |.`.....< ......k| 000002d0 94 e8 a6 83 b8 11 52 38 |......R8| 000002d8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[1].owner = {microsoft} 000002e0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000002e8 07 e6 c6 a8 58 64 6f b1 |....Xdo.| esl[1].signature[1].data (end:0x00000308) 000002f0 ef c6 79 03 fe 28 b1 16 01 1f 23 67 fe 92 e6 be |..y..(....#g....| 00000300 2b 36 99 9e ff 39 d0 9e |+6...9..| 00000308 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[2].owner = {microsoft} 00000310 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000318 09 df 5f 4e 51 12 08 ec |.._NQ...| esl[1].signature[2].data (end:0x00000338) 00000320 78 b9 6d 12 d0 81 25 fd b6 03 86 8d e3 9f 6f 72 |x.m...%.......or| 00000330 92 78 52 59 9b 65 9c 26 |.xRY.e.&| 00000338 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[3].owner = {microsoft} 00000340 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000348 0b bb 43 92 da ac 7a b8 |..C...z.| esl[1].signature[3].data (end:0x00000368) 00000350 9b 30 a4 ac 65 75 31 b9 7b fa ab 04 f9 0b 0d af |.0..eu1.{.......| 00000360 e5 f9 b6 eb 90 a0 63 74 |......ct| 00000368 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[4].owner = {microsoft} 00000370 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000378 0c 18 93 39 76 2d f3 36 |...9v-.6| esl[1].signature[4].data (end:0x00000398) 00000380 ab 3d d0 06 a4 63 df 71 5a 39 cf b0 f4 92 46 5c |.=...c.qZ9....F\| 00000390 60 0e 6c 6b d7 bd 89 8c |`.lk....| 00000398 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[5].owner = {microsoft} 000003a0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000003a8 0d 0d be ca 6f 29 ec a0 |....o)..| esl[1].signature[5].data (end:0x000003c8) 000003b0 6f 33 1a 7d 72 e4 88 4b 12 09 7f b3 48 98 3a 2a |o3.}r..K....H.:*| 000003c0 14 a0 d7 3f 4f 10 14 0f |...?O...| 000003c8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[6].owner = {microsoft} 000003d0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000003d8 0d c9 f3 fb 99 96 21 48 |......!H| esl[1].signature[6].data (end:0x000003f8) 000003e0 c3 ca 83 36 32 75 8d 3e d4 fc 8d 0b 00 07 b9 5b |...62u.>.......[| 000003f0 31 e6 52 8f 2a cd 5b fc |1.R.*.[.| 000003f8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[7].owner = {microsoft} 00000400 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000408 10 6f ac ea cf ec fd 4e |.o.....N| esl[1].signature[7].data (end:0x00000428) 00000410 30 3b 74 f4 80 a0 80 98 e2 d0 80 2b 93 6f 8e c7 |0;t........+.o..| 00000420 74 ce 21 f3 16 86 68 9c |t.!...h.| 00000428 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[8].owner = {microsoft} 00000430 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000438 17 4e 3a 0b 5b 43 c6 a6 |.N:.[C..| esl[1].signature[8].data (end:0x00000458) 00000440 07 bb d3 40 4f 05 34 1e 3d cf 39 62 67 ce 94 f8 |...@O.4.=.9bg...| 00000450 b5 0e 2e 23 a9 da 92 0c |...#....| 00000458 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[9].owner = {microsoft} 00000460 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000468 18 33 34 29 ff 05 62 ed |.34)..b.| esl[1].signature[9].data (end:0x00000488) 00000470 9f 97 03 3e 11 48 dc ee e5 2d be 2e 49 6d 54 10 |...>.H...-..ImT.| 00000480 b5 cf d6 c8 64 d2 d1 0f |....d...| 00000488 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[10].owner = {microsoft} 00000490 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000498 2b 99 cf 26 42 2e 92 fe |+..&B...| esl[1].signature[10].data (end:0x000004b8) 000004a0 36 5f bf 4b c3 0d 27 08 6c 9e e1 4b 7a 6f ff 44 |6_.K..'.l..Kzo.D| 000004b0 fb 2f 6b 90 01 69 99 39 |./k..i.9| 000004b8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[11].owner = {microsoft} 000004c0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000004c8 2b bf 2c a7 b8 f1 d9 1f |+.,.....| esl[1].signature[11].data (end:0x000004e8) 000004d0 27 ee 52 b6 fb 2a 5d d0 49 b8 5a 2b 9b 52 9c 5d |'.R..*].I.Z+.R.]| 000004e0 66 62 06 81 04 b0 55 f8 |fb....U.| 000004e8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[12].owner = {microsoft} 000004f0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000004f8 2c 73 d9 33 25 ba 6d cb |,s.3%.m.| esl[1].signature[12].data (end:0x00000518) 00000500 e5 89 d4 a4 c6 3c 5b 93 55 59 ef 92 fb f0 50 ed |.....<[.UY....P.| 00000510 50 c4 e2 08 52 06 f1 7d |P...R..}| 00000518 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[13].owner = {microsoft} 00000520 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000528 2e 70 91 67 86 a6 f7 73 |.p.g...s| esl[1].signature[13].data (end:0x00000548) 00000530 51 1f a7 18 1f ab 0f 1d 70 b5 57 c6 32 2e a9 23 |Q.......p.W.2..#| 00000540 b2 a8 d3 b9 2b 51 af 7d |....+Q.}| 00000548 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[14].owner = {microsoft} 00000550 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000558 30 66 28 fa 54 77 30 57 |0f(.Tw0W| esl[1].signature[14].data (end:0x00000578) 00000560 28 ba 4a 46 7d e7 d0 38 7a 54 f5 69 d3 76 9f ce |(.JF}..8zT.i.v..| 00000570 5e 75 ec 89 d2 8d 15 93 |^u......| 00000578 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[15].owner = {microsoft} 00000580 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000588 36 08 ed ba f5 ad 0f 41 |6......A| esl[1].signature[15].data (end:0x000005a8) 00000590 a4 14 a1 77 7a bf 2f af 5e 67 03 34 67 5e c3 99 |...wz./.^g.4g^..| 000005a0 5e 69 35 82 9e 0c aa d2 |^i5.....| 000005a8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[16].owner = {microsoft} 000005b0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000005b8 38 41 d2 21 36 8d 15 83 |8A.!6...| esl[1].signature[16].data (end:0x000005d8) 000005c0 d7 5c 0a 02 e6 21 60 39 4d 6c 4e 0a 67 60 b6 f6 |.\...!`9MlN.g`..| 000005d0 07 b9 03 62 bc 85 5b 02 |...b..[.| 000005d8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[17].owner = {microsoft} 000005e0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000005e8 3f ce 9b 9f df 3e f0 9d |?....>..| esl[1].signature[17].data (end:0x00000608) 000005f0 54 52 b0 f9 5e e4 81 c2 b7 f0 6d 74 3a 73 79 71 |TR..^.....mt:syq| 00000600 55 8e 70 13 6a ce 3e 73 |U.p.j.>s| 00000608 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[18].owner = {microsoft} 00000610 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000618 43 97 da ca 83 9e 7f 63 |C......c| esl[1].signature[18].data (end:0x00000638) 00000620 07 7c b5 0c 92 df 43 bc 2d 2f b2 a8 f5 9f 26 fc |.|....C.-/....&.| 00000630 7a 0e 4b d4 d9 75 16 92 |z.K..u..| 00000638 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[19].owner = {microsoft} 00000640 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000648 47 cc 08 61 27 e2 06 9a |G..a'...| esl[1].signature[19].data (end:0x00000668) 00000650 86 e0 3a 6b ef 2c d4 10 f8 c5 5a 6d 6b db 36 21 |..:k.,....Zmk.6!| 00000660 68 c3 1b 2c e3 2a 5a df |h..,.*Z.| 00000668 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[20].owner = {microsoft} 00000670 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000678 51 88 31 fe 73 82 b5 14 |Q.1.s...| esl[1].signature[20].data (end:0x00000698) 00000680 d0 3e 15 c6 21 22 8b 8a b6 54 79 bd 0c bf a3 c5 |.>..!"...Ty.....| 00000690 c1 d0 f4 8d 9c 30 61 35 |.....0a5| 00000698 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[21].owner = {microsoft} 000006a0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000006a8 5a e9 49 ea 88 55 eb 93 |Z.I..U..| esl[1].signature[21].data (end:0x000006c8) 000006b0 e4 39 db c6 5b da 2e 42 85 2c 2f df 67 89 fa 14 |.9..[..B.,/.g...| 000006c0 67 36 e3 c3 41 0f 2b 5c |g6..A.+\| 000006c8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[22].owner = {microsoft} 000006d0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000006d8 6b 1d 13 80 78 e4 41 8a |k...x.A.| esl[1].signature[22].data (end:0x000006f8) 000006e0 a6 8d eb 7b b3 5e 06 60 92 cf 47 9e eb 8c e4 cd |...{.^.`..G.....| 000006f0 12 e7 d0 72 cc b4 2f 66 |...r../f| 000006f8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[23].owner = {microsoft} 00000700 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000708 6c 88 54 47 8d d5 59 e2 |l.TG..Y.| esl[1].signature[23].data (end:0x00000728) 00000710 93 51 b8 26 c0 6c b8 bf ef 2b 94 ad 35 38 35 87 |.Q.&.l...+..585.| 00000720 72 d1 93 f8 2e d1 ca 11 |r.......| 00000728 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[24].owner = {microsoft} 00000730 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000738 6f 14 28 ff 71 c9 db 0e |o.(.q...| esl[1].signature[24].data (end:0x00000758) 00000740 d5 af 1f 2e 7b bf cb ab 64 7c c2 65 dd f5 b2 93 |....{...d|.e....| 00000750 cd b6 26 f5 0a 3a 78 5e |..&..:x^| 00000758 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[25].owner = {microsoft} 00000760 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000768 71 f2 90 6f d2 22 49 7e |q..o."I~| esl[1].signature[25].data (end:0x00000788) 00000770 54 a3 46 62 ab 24 97 fc c8 10 20 77 0f f5 13 68 |T.Fb.$.... w...h| 00000780 e9 e3 d9 bf cb fd 63 75 |......cu| 00000788 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[26].owner = {microsoft} 00000790 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000798 72 6b 3e b6 54 04 6a 30 |rk>.T.j0| esl[1].signature[26].data (end:0x000007b8) 000007a0 f3 f8 3d 9b 96 ce 03 f6 70 e9 a8 06 d1 70 8a 03 |..=.....p....p..| 000007b0 71 e6 2d c4 9d 2c 23 c1 |q.-..,#.| 000007b8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[27].owner = {microsoft} 000007c0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000007c8 72 e0 bd 18 67 cf 5d 9d |r...g.].| esl[1].signature[27].data (end:0x000007e8) 000007d0 56 ab 15 8a df 3b dd bc 82 bf 32 a8 d8 aa 1d 8c |V....;....2.....| 000007e0 5e 2f 6d f2 94 28 d6 d8 |^/m..(..| 000007e8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[28].owner = {microsoft} 000007f0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000007f8 78 27 af 99 36 2c fa f0 |x'..6,..| esl[1].signature[28].data (end:0x00000818) 00000800 71 7d ad e4 b1 bf e0 43 8a d1 71 c1 5a dd c2 48 |q}.....C..q.Z..H| 00000810 b7 5b f8 ca a4 4b b2 c5 |.[...K..| 00000818 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[29].owner = {microsoft} 00000820 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000828 81 a8 b9 65 bb 84 d3 87 |...e....| esl[1].signature[29].data (end:0x00000848) 00000830 6b 94 29 a9 54 81 cc 95 53 18 cf aa 14 12 d8 08 |k.).T...S.......| 00000840 c8 a3 3b fd 33 ff f0 e4 |..;.3...| 00000848 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[30].owner = {microsoft} 00000850 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000858 82 db 3b ce b4 f6 08 43 |..;....C| esl[1].signature[30].data (end:0x00000878) 00000860 ce 9d 97 c3 d1 87 cd 9b 59 41 cd 3d e8 10 0e 58 |........YA.=...X| 00000870 6f 2b da 56 37 57 5f 67 |o+.V7W_g| 00000878 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[31].owner = {microsoft} 00000880 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000888 89 5a 97 85 f6 17 ca 1d |.Z......| esl[1].signature[31].data (end:0x000008a8) 00000890 7e d4 4f c1 a1 47 0b 71 f3 f1 22 38 62 d9 ff 9d |~.O..G.q.."8b...| 000008a0 cc 3a e2 df 92 16 3d af |.:....=.| 000008a8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[32].owner = {microsoft} 000008b0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000008b8 8a d6 48 59 f1 95 b5 f5 |..HY....| esl[1].signature[32].data (end:0x000008d8) 000008c0 8d af aa 94 0b 6a 61 67 ac d6 7a 88 6e 8f 46 93 |.....jag..z.n.F.| 000008d0 64 17 72 21 c5 59 45 b9 |d.r!.YE.| 000008d8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[33].owner = {microsoft} 000008e0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000008e8 8b f4 34 b4 9e 00 cc f7 |..4.....| esl[1].signature[33].data (end:0x00000908) 000008f0 15 02 a2 cd 90 08 65 cb 01 ec 3b 3d a0 3c 35 be |......e...;=.<5.| 00000900 50 5f df 7b d5 63 f5 21 |P_.{.c.!| 00000908 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[34].owner = {microsoft} 00000910 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000918 8d 8e a2 89 cf e7 0a 1c |........| esl[1].signature[34].data (end:0x00000938) 00000920 07 ab 73 65 cb 28 ee 51 ed d3 3c f2 50 6d e8 88 |..se.(.Q..<.Pm..| 00000930 fb ad d6 0e bf 80 48 1c |......H.| 00000938 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[35].owner = {microsoft} 00000940 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000948 99 98 d3 63 c4 91 be 16 |...c....| esl[1].signature[35].data (end:0x00000968) 00000950 bd 74 ba 10 b9 4d 92 91 00 16 11 73 6f dc a6 43 |.t...M.....so..C| 00000960 a3 66 64 bc 0f 31 5a 42 |.fd..1ZB| 00000968 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[36].owner = {microsoft} 00000970 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000978 9e 4a 69 17 31 61 68 2e |.Ji.1ah.| esl[1].signature[36].data (end:0x00000998) 00000980 55 fd e8 fe f5 60 eb 88 ec 1f fe dc af 04 00 1f |U....`..........| 00000990 66 c0 ca f7 07 b2 b7 34 |f......4| 00000998 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[37].owner = {microsoft} 000009a0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000009a8 a6 b5 15 1f 36 55 d3 a2 |....6U..| esl[1].signature[37].data (end:0x000009c8) 000009b0 af 0d 47 27 59 79 6b e4 a4 20 0e 54 95 a7 d8 69 |..G'Yyk.. .T...i| 000009c0 75 4c 48 48 85 74 08 a7 |uLHH.t..| 000009c8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[38].owner = {microsoft} 000009d0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 000009d8 a7 f3 2f 50 8d 4e b0 fe |../P.N..| esl[1].signature[38].data (end:0x000009f8) 000009e0 ad 9a 08 7e f9 4e d1 ba 0a ec 5d e6 f7 ef 6f f0 |...~.N....]...o.| 000009f0 a6 2b 93 be df 5d 45 8d |.+...]E.| 000009f8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[39].owner = {microsoft} 00000a00 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000a08 ad 68 26 e1 94 6d 26 d3 |.h&..m&.| esl[1].signature[39].data (end:0x00000a28) 00000a10 ea f3 68 5c 88 d9 7d 85 de 3b 4d cb 3d 0e e2 ae |..h\..}..;M.=...| 00000a20 81 c7 05 60 d1 3c 57 20 |...`...$Q?.eY| 00000c30 57 d7 35 fa 29 f5 40 ce |W.5.).@.| 00000c38 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[51].owner = {microsoft} 00000c40 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000c48 d8 cb eb 97 35 f5 67 2b |....5.g+| esl[1].signature[51].data (end:0x00000c68) 00000c50 36 7e 4f 96 cd c7 49 69 61 5d 17 07 4a e9 6c 72 |6~O...Iia]..J.lr| 00000c60 4d 42 ce 02 16 f8 f3 fa |MB......| 00000c68 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[52].owner = {microsoft} 00000c70 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000c78 e9 2c 22 eb 3b 56 42 d6 |.,".;VB.| esl[1].signature[52].data (end:0x00000c98) 00000c80 5c 1e c2 ca f2 47 d2 59 47 38 ee bb 7f b3 84 1a |\....G.YG8......| 00000c90 44 95 6f 59 e2 b0 d1 fa |D.oY....| 00000c98 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[53].owner = {microsoft} 00000ca0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000ca8 fd dd 6e 3d 29 ea 84 c7 |..n=)...| esl[1].signature[53].data (end:0x00000cc8) 00000cb0 74 3d ad 4a 1b db c7 00 b5 fe c1 b3 91 f9 32 40 |t=.J..........2@| 00000cc0 90 86 ac c7 1d d6 db d8 |........| 00000cc8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[54].owner = {microsoft} 00000cd0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000cd8 fe 63 a8 4f 78 2c c9 d3 |.c.Ox,..| esl[1].signature[54].data (end:0x00000cf8) 00000ce0 fc f2 cc f9 fc 11 fb d0 37 60 87 87 58 d2 62 85 |........7`..X.b.| 00000cf0 ed 12 66 9b dc 6e 6d 01 |..f..nm.| 00000cf8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[55].owner = {microsoft} 00000d00 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000d08 fe cf b2 32 d1 2e 99 4b |...2...K| esl[1].signature[55].data (end:0x00000d28) 00000d10 6d 48 5d 2c 71 67 72 8a a5 52 59 84 ad 5c a6 1e |mH],qgr..RY..\..| 00000d20 75 16 22 1f 07 9a 14 36 |u."....6| 00000d28 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[56].owner = {microsoft} 00000d30 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000d38 ca 17 1d 61 4a 8d 7e 12 |...aJ.~.| esl[1].signature[56].data (end:0x00000d58) 00000d40 1c 93 94 8c d0 fe 55 d3 99 81 f9 d1 1a a9 6e 03 |......U.......n.| 00000d50 45 0a 41 52 27 c2 c6 5b |E.AR'..[| 00000d58 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[57].owner = {microsoft} 00000d60 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000d68 55 b9 9b 0d e5 3d bc fe |U....=..| esl[1].signature[57].data (end:0x00000d88) 00000d70 48 5a a9 c7 37 cf 3f b6 16 ef 3d 91 fa b5 99 aa |HZ..7.?...=.....| 00000d80 7c ab 19 ed a7 63 b5 ba ||....c..| 00000d88 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[58].owner = {microsoft} 00000d90 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000d98 77 dd 19 0f a3 0d 88 ff |w.......| esl[1].signature[58].data (end:0x00000db8) 00000da0 5e 3b 01 1a 0a e6 1e 62 09 78 0c 13 0b 53 5e cb |^;.....b.x...S^.| 00000db0 87 e6 f0 88 8a 0b 6b 2f |......k/| 00000db8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[59].owner = {microsoft} 00000dc0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000dc8 c8 3c b1 39 22 ad 99 f5 |.<.9"...| esl[1].signature[59].data (end:0x00000de8) 00000dd0 60 74 46 75 dd 37 cc 94 dc ad 5a 1f cb a6 47 2f |`tFu.7....Z...G/| 00000de0 ee 34 11 71 d9 39 e8 84 |.4.q.9..| 00000de8 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[60].owner = {microsoft} 00000df0 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000df8 3b 02 87 53 3e 0c c3 d0 |;..S>...| esl[1].signature[60].data (end:0x00000e18) 00000e00 ec 1a a8 23 cb f0 a9 41 aa d8 72 15 79 d1 c4 99 |...#...A..r.y...| 00000e10 80 2d d1 c3 a6 36 b8 a9 |.-...6..| 00000e18 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[61].owner = {microsoft} 00000e20 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000e28 93 9a ee f4 f5 fa 51 e2 |......Q.| esl[1].signature[61].data (end:0x00000e48) 00000e30 33 40 c3 f2 e4 90 48 ce 88 72 52 6a fd f7 52 c3 |3@....H..rRj..R.| 00000e40 a7 f3 a3 f2 bc 9f 60 49 |......`I| 00000e48 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[62].owner = {microsoft} 00000e50 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000e58 64 57 5b d9 12 78 9a 2e |dW[..x..| esl[1].signature[62].data (end:0x00000e78) 00000e60 14 ad 56 f6 34 1f 52 af 6b f8 0c f9 44 00 78 59 |..V.4.R.k...D.xY| 00000e70 75 e9 f0 4e 2d 64 d7 45 |u..N-d.E| 00000e78 bd 9a fa 77 59 03 32 4d |...wY.2M| esl[1].signature[63].owner = {microsoft} 00000e80 bd 60 28 f4 e7 8f 78 4b |.`(...xK| 00000e88 45 c7 c8 ae 75 0a cf bb |E...u...| esl[1].signature[63].data (end:0x00000ea8) 00000e90 48 fc 37 52 7d 64 12 dd 64 4d ae d8 91 3c cd 8a |H.7R}d..dM...<..| 00000ea0 24 c9 4d 85 69 67 df 8e |$.M.ig..| 00000ea8 efivar-39/tests/machine0/annotations/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000152411455652431600275020ustar00rootroot0000000000000000000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 8c 02 00 00 |....| esl[0].signature_list_size = 652 (0x28c) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 80 b4 d9 69 |...i| esl[0].signature[0].data (end:0x0000004c) 00000030 31 bf 0d 02 fd 91 a6 1e 19 d1 4f 1d a4 52 e6 6d |1.........O..R.m| 00000040 b2 40 8c a8 60 4d 41 1f 92 65 9f 0a |.@..`MA..e..| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c f5 2f 83 a3 |./..| esl[0].signature[1].data (end:0x0000007c) 00000060 fa 9c fb d6 92 0f 72 28 24 db e4 03 45 34 d2 5b |......r($...E4.[| 00000070 85 07 24 6b 3b 95 7d ac 6e 1b ce 7a |..$k;.}.n..z| 0000007c bd 9a fa 77 |...w| esl[0].signature[2].owner = {microsoft} 00000080 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000008c c5 d9 d8 a1 |....| esl[0].signature[2].data (end:0x000000ac) 00000090 86 e2 c8 2d 09 af aa 2a 6f 7f 2e 73 87 0d 3e 64 |...-...*o..s..>d| 000000a0 f7 2c 4e 08 ef 67 79 6a 84 0f 0f bd |.,N..gyj....| 000000ac bd 9a fa 77 |...w| esl[0].signature[3].owner = {microsoft} 000000b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000bc 36 33 84 d1 |63..| esl[0].signature[3].data (end:0x000000dc) 000000c0 4d 1f 2e 0b 78 15 62 64 84 c4 59 ad 57 a3 18 ef |M...x.bd..Y.W...| 000000d0 43 96 26 60 48 d0 58 c5 a1 9b bf 76 |C.&`H.X....v| 000000dc bd 9a fa 77 |...w| esl[0].signature[4].owner = {microsoft} 000000e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000ec 1a ec 84 b8 |....| esl[0].signature[4].data (end:0x0000010c) 000000f0 4b 6c 65 a5 12 20 a9 be 71 81 96 52 30 21 0d 62 |Kle.. ..q..R0!.b| 00000100 d6 d3 3c 48 99 9c 6b 29 5a 2b 0a 06 |....h2.....'| 00000280 25 27 df b6 3d 49 d2 95 72 a6 f4 4c |%'..=I..r..L| 0000028c efivar-39/tests/machine0/data/000077500000000000000000000000001455652431600163355ustar00rootroot00000000000000efivar-39/tests/machine0/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e000066400000000000000000000000341455652431600250120ustar00rootroot00000000000000efivar-39/tests/machine0/data/AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34000066400000000000000000000001251455652431600252150ustar00rootroot00000000000000efivar-39/tests/machine0/data/AmdAcpiVar-79941ecd-ed36-49d0-8124-e4c31ac75cd4000066400000000000000000000000161455652431600250740ustar00rootroot00000000000000׉efivar-39/tests/machine0/data/AmiEntryS3Addr-074e1e48-8132-47a1-8c2c-3f14ad9a66dc000066400000000000000000000000141455652431600255620ustar00rootroot00000000000000֎efivar-39/tests/machine0/data/AuditMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600250210ustar00rootroot00000000000000efivar-39/tests/machine0/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000001701455652431600243550ustar00rootroot00000000000000\Fedora*AXTOқYĊ.\EFI\FEDORA\SHIM.EFIBOefivar-39/tests/machine0/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600254150ustar00rootroot00000000000000efivar-39/tests/machine0/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000101455652431600266330ustar00rootroot00000000000000efivar-39/tests/machine0/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600250460ustar00rootroot00000000000000efivar-39/tests/machine0/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002401455652431600241550ustar00rootroot00000000000000 A  A  A efivar-39/tests/machine0/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002401455652431600246140ustar00rootroot00000000000000 A  A  A efivar-39/tests/machine0/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600243550ustar00rootroot00000000000000 A efivar-39/tests/machine0/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600250140ustar00rootroot00000000000000 A efivar-39/tests/machine0/data/CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32000066400000000000000000000000161455652431600272760ustar00rootroot00000000000000efivar-39/tests/machine0/data/CpuSmm-90d93e09-4e91-4b3d-8c77-c82ff10e3c81000066400000000000000000000000121455652431600242540ustar00rootroot00000000000000efivar-39/tests/machine0/data/DeployedMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600255200ustar00rootroot00000000000000efivar-39/tests/machine0/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6000066400000000000000000000000051455652431600264670ustar00rootroot00000000000000efivar-39/tests/machine0/data/EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15000066400000000000000000000000071455652431600242700ustar00rootroot00000000000000efivar-39/tests/machine0/data/Ep-73dad563-8f27-42af-918f-8651eb0a93ef000066400000000000000000000000441455652431600235030ustar00rootroot00000000000000TN^vӴefivar-39/tests/machine0/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600243660ustar00rootroot00000000000000 A efivar-39/tests/machine0/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600250250ustar00rootroot00000000000000 A efivar-39/tests/machine0/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000101455652431600255610ustar00rootroot00000000000000Xefivar-39/tests/machine0/data/FixedBoot-de8ab926-efda-4c23-bbc4-98fd29aa0069000066400000000000000000000012141455652431600253050ustar00rootroot00000000000000efivar-39/tests/machine0/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0000066400000000000000000000000141455652431600241730ustar00rootroot00000000000000 efivar-39/tests/machine0/data/IntUcode-eda41d22-7729-5b91-b3ee-ba619921cefa000066400000000000000000000000241455652431600247650ustar00rootroot00000000000000`ُefivar-39/tests/machine0/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000030341455652431600235650ustar00rootroot00000000000000'Y䔧J\+rwY2M`(xK00Р a ш0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110624204129Z 260624205129Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1*0(U!Microsoft Corporation KEK CA 20110"0  *H 0 赊W&&WzD] Jt*mZc2|O 8, 0HPdQȅO /Sjb: C%#pM/$JC ~Gl3*q<% /hvFOܭq*Xy=e;)*rY뮒5_̝vcy@yR{iO0K0 +70UbC͠>g[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62efivar-39/tests/machine0/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000030341455652431600250720ustar00rootroot00000000000000Y䔧J\+rwY2M`(xK00Р a ш0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110624204129Z 260624205129Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1*0(U!Microsoft Corporation KEK CA 20110"0  *H 0 赊W&&WzD] Jt*mZc2|O 8, 0HPdQȅO /Sjb: C%#pM/$JC ~Gl3*q<% /hvFOܭq*Xy=e;)*rY뮒5_̝vcy@yR{iO0K0 +70UbC͠>g[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62efivar-39/tests/machine0/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000061455652431600261220ustar00rootroot00000000000000Pefivar-39/tests/machine0/data/MeSetupStorage-5432122d-d034-49d2-a6de-65a829eb4c74000066400000000000000000000000171455652431600256630ustar00rootroot00000000000000efivar-39/tests/machine0/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829000066400000000000000000000000051455652431600310070ustar00rootroot00000000000000efivar-39/tests/machine0/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292000066400000000000000000000000051455652431600320010ustar00rootroot00000000000000efivar-39/tests/machine0/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000101455652431600264720ustar00rootroot00000000000000sefivar-39/tests/machine0/data/NBGopPlatformData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000061455652431600265720ustar00rootroot00000000000000efivar-39/tests/machine0/data/NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2000066400000000000000000000000121455652431600257600ustar00rootroot00000000000000efivar-39/tests/machine0/data/NewOptionPolicy-69ecc1be-a981-446d-8eb6-af0e53d06ce8000066400000000000000000000000051455652431600264500ustar00rootroot00000000000000efivar-39/tests/machine0/data/OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000341455652431600257440ustar00rootroot00000000000000/َ$efivar-39/tests/machine0/data/OcTurboRatio-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000051455652431600257010ustar00rootroot00000000000000(efivar-39/tests/machine0/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600257140ustar00rootroot00000000000000efivar-39/tests/machine0/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600276220ustar00rootroot00000000000000efivar-39/tests/machine0/data/PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5000066400000000000000000000000121455652431600244010ustar00rootroot00000000000000efivar-39/tests/machine0/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000027021455652431600234660ustar00rootroot00000000000000'Y䔧J\+rQH&_J^-----BEGIN NEW CERTIFICATE REQUEST----- MIIDzTCCArWgAwIBAgIQMxAB9hEqh49MMPNnx3cDAjANBgkqhkiG9w0BAQsFADCB iDEMMAoGA1UEBhMDVVNBMQswCQYDVQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2Ux IDAeBgNVBAoMF1N1cGVyIE1pY3JvIENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBl ciBNaWNybyBDb3Jwb3JhdGlvbiBLYWJ5bGFrZSBQbGF0Zm9ybSBLZXkwHhcNMTYw NjIyMjEyNDM1WhcNMjIwNjIyMjEzNDI5WjCBiDEMMAoGA1UEBhMDVVNBMQswCQYD VQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2UxIDAeBgNVBAoMF1N1cGVyIE1pY3Jv IENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBlciBNaWNybyBDb3Jwb3JhdGlvbiBL YWJ5bGFrZSBQbGF0Zm9ybSBLZXkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQC9mz+oCgW2B0nO62RjLkrqvARTDHAHvdor7gk51761jLyLhWjkXf0AyG7z I2mD7FSGpymRE3QAxmBHozM09GxJlfzhoug0P5E5tQHyRXd8T+7gWpMCFx4yDPi9 HImwW6v6FKs9bnG/KOz+LvMuhOzUSTR/VnBqk2KEgXX/wgRnjvsYhpOIgDaukuqt xOGm1eguwqHtXjxG3hAiurVL4LZlB3rWgr1d8y/+f4r4hatfDNpRQSXlcs9O4THx jF+WPRWfR9ONAm9GLNd/hyUaejWxh8pXDDUFqu3s3yO0OleMuimX0CZvuLm5bscw pd//7j+MjKDnLdA0SthKOfnzyvkhAgMBAAGjMTAvMA4GA1UdDwEB/wQEAwIE8DAd BgNVHQ4EFgQUZWxfV2LFiaeDUWXXopTac8yLX4kwDQYJKoZIhvcNAQELBQADggEB AJBXUDujm6YjvFl0ffY78kJdyK/84XF/d36fQsfQqgPCzmnZ8lMA+GDZnrku5e4b sInc99wZcLGBESxM3AN2ygwe7zSuNHOSWUk8cLRDgthwHsCbqrg5LiANq4D2zWYs +SKBv8lCGdL9KUecpzkDP0tyQCm4GbrpkgVEIy2s+GqH68bYHt8uZ3dBQPsqhScs FekaHcm8jIn/b7Pje7MwKnlouNzcO/Z9uFWnMaIk8a94D8pIRwwI2xLvQ41dOUAA 6Ssc4ksZ9vqh8hUDfk2U2Bb++5YCChq/ElBMi6L2MKRvbzLHJ/i2SUeqfCXQOiiX +W5p/TFu+p5WhKRbQwwzPB0= -----END NEW CERTIFICATE REQUEST----- efivar-39/tests/machine0/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000027021455652431600247730ustar00rootroot00000000000000Y䔧J\+rQH&_J^-----BEGIN NEW CERTIFICATE REQUEST----- MIIDzTCCArWgAwIBAgIQMxAB9hEqh49MMPNnx3cDAjANBgkqhkiG9w0BAQsFADCB iDEMMAoGA1UEBhMDVVNBMQswCQYDVQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2Ux IDAeBgNVBAoMF1N1cGVyIE1pY3JvIENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBl ciBNaWNybyBDb3Jwb3JhdGlvbiBLYWJ5bGFrZSBQbGF0Zm9ybSBLZXkwHhcNMTYw NjIyMjEyNDM1WhcNMjIwNjIyMjEzNDI5WjCBiDEMMAoGA1UEBhMDVVNBMQswCQYD VQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2UxIDAeBgNVBAoMF1N1cGVyIE1pY3Jv IENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBlciBNaWNybyBDb3Jwb3JhdGlvbiBL YWJ5bGFrZSBQbGF0Zm9ybSBLZXkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQC9mz+oCgW2B0nO62RjLkrqvARTDHAHvdor7gk51761jLyLhWjkXf0AyG7z I2mD7FSGpymRE3QAxmBHozM09GxJlfzhoug0P5E5tQHyRXd8T+7gWpMCFx4yDPi9 HImwW6v6FKs9bnG/KOz+LvMuhOzUSTR/VnBqk2KEgXX/wgRnjvsYhpOIgDaukuqt xOGm1eguwqHtXjxG3hAiurVL4LZlB3rWgr1d8y/+f4r4hatfDNpRQSXlcs9O4THx jF+WPRWfR9ONAm9GLNd/hyUaejWxh8pXDDUFqu3s3yO0OleMuimX0CZvuLm5bscw pd//7j+MjKDnLdA0SthKOfnzyvkhAgMBAAGjMTAvMA4GA1UdDwEB/wQEAwIE8DAd BgNVHQ4EFgQUZWxfV2LFiaeDUWXXopTac8yLX4kwDQYJKoZIhvcNAQELBQADggEB AJBXUDujm6YjvFl0ffY78kJdyK/84XF/d36fQsfQqgPCzmnZ8lMA+GDZnrku5e4b sInc99wZcLGBESxM3AN2ygwe7zSuNHOSWUk8cLRDgthwHsCbqrg5LiANq4D2zWYs +SKBv8lCGdL9KUecpzkDP0tyQCm4GbrpkgVEIy2s+GqH68bYHt8uZ3dBQPsqhScs FekaHcm8jIn/b7Pje7MwKnlouNzcO/Z9uFWnMaIk8a94D8pIRwwI2xLvQ41dOUAA 6Ssc4ksZ9vqh8hUDfk2U2Bb++5YCChq/ElBMi6L2MKRvbzLHJ/i2SUeqfCXQOiiX +W5p/TFu+p5WhKRbQwwzPB0= -----END NEW CERTIFICATE REQUEST----- efivar-39/tests/machine0/data/PNP0501_0_NV-560bf58a-1e0d-4d7e-953f-2980a261e031000066400000000000000000000000071455652431600245370ustar00rootroot00000000000000efivar-39/tests/machine0/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000121455652431600255320ustar00rootroot00000000000000en-USefivar-39/tests/machine0/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000121455652431600265100ustar00rootroot00000000000000en-USefivar-39/tests/machine0/data/RstOptaneConfig-4da4f952-2516-4d06-8975-65036403a8c7000066400000000000000000000000051455652431600255330ustar00rootroot00000000000000efivar-39/tests/machine0/data/SMCOCXMP-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000001511455652431600245600ustar00rootroot00000000000000h $0CMK16GX4M2B3200C16 efivar-39/tests/machine0/data/SMCOcBiosSetting-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000071455652431600264060ustar00rootroot00000000000000efivar-39/tests/machine0/data/SOFTWAREGUARDSTATUS-9cb2e73f-7325-40f4-a484-659bb344c3cd000066400000000000000000000000051455652431600260220ustar00rootroot00000000000000efivar-39/tests/machine0/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252200ustar00rootroot00000000000000efivar-39/tests/machine0/data/SecureBootSetup-7b59104a-c00d-4158-87ff-f04d6396a915000066400000000000000000000000131455652431600257750ustar00rootroot00000000000000efivar-39/tests/machine0/data/SetUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65000066400000000000000000000000101455652431600261310ustar00rootroot00000000000000)efivar-39/tests/machine0/data/Setup-80e1202e-2697-4264-9cc9-80762c3e5863000066400000000000000000000000121455652431600235710ustar00rootroot00000000000000efivar-39/tests/machine0/data/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000103741455652431600244370ustar00rootroot00000000000000 0M!  0I) 0I) 0I) iPQRSTUVWXY 06na PQRSTUVWXY 0$iPQRSTUVWXY06ni PQRSTUVWXY 06n0@7GKd_w HAVYb_a2}}}P?Ggd_?Ggd_?Ggad?Ggad?Ggd_P7d_aP7d_a?Ggdd?Ggdd?Ggdd?Ggd_ns|y?Ggd_ ?Ggd_ ?Ggd_ ?Ggd_ +* d DDD 0u0u 0u0u@0u@0u0u2222PAPA3((NvL)(*(((*((('_=UKggPPPP?$|  $|  ' 'KKK  ,d0    0@ qqqqqqqq <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<     Z "  "efivar-39/tests/machine0/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600250530ustar00rootroot00000000000000efivar-39/tests/machine0/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002041455652431600265050ustar00rootroot00000000000000;y@ nvp€N(I[cmD%L$eҰ&LP@A6C(Y䔧J\+rfW<&4Nwna⛇=J绣'ODgCH(s`efivar-39/tests/machine0/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600271410ustar00rootroot00000000000000efivar-39/tests/machine0/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600265770ustar00rootroot00000000000000efivar-39/tests/machine0/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600273520ustar00rootroot00000000000000efivar-39/tests/machine0/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824000066400000000000000000000132621455652431600251630ustar00rootroot00000000000000NVAR Setup 0M!  0I) 0I) 0I) iPQRSTUVWXY 06na PQRSTUVWXY 0$iPQRSTUVWXY06ni PQRSTUVWXY 06n0@7GKd_w HAVYb_a2}}}P?Ggd_?Ggd_?Ggad?Ggad?Ggd_P7d_aP7d_a?Ggdd?Ggdd?Ggdd?Ggd_ns|y?Ggd_ ?Ggd_ ?Ggd_ ?Ggd_ +* d DDD 0u0u 0u0u@0u@0u0u2222PAPA3NvL)'_=UKggPPPP?' 'KKK  ,d0    0@ qqqqqqqq <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<    Z "  "NVARPlatformLangen-USNVARTimeoutNVARhAMITSESetupNVARPNP0501_0_NVNVARCpuSmmNVAR%MeSetupStorageNVAR4IccAdvancedSetupDataVarNVARNewOptionPolicyNVAR!NetworkStackVarNVAR" SecureBootSetupNVAR7UsbSupportNVAR8FixedBootGroupNVAR PCI_COMMONNVAR SetupNVAR FixedBoot&#LĘ)i. ဗ&dBɀv,>Xc!RHugJY{ XAMc]@zFAE6imDSl-d4Ie)Lt-2T4Ie)Lt >ِN=Kw/< V ~M?)a18ByE`N4aʓ +CևK?>6 efivar-39/tests/machine0/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000121455652431600261070ustar00rootroot00000000000000efivar-39/tests/machine0/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600245750ustar00rootroot00000000000000efivar-39/tests/machine0/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000141455652431600262250ustar00rootroot00000000000000-َefivar-39/tests/machine0/data/UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000451455652431600254570ustar00rootroot00000000000000efivar-39/tests/machine0/data/UserDefaults-c4cc0de8-0687-4422-99c1-65351a5d5f95000066400000000000000000000413571455652431600253350ustar00rootroot00000000000000aCևK?>6 Setup 0M!  0I) 0I) 0I) iPQRSTUVWXY 06na PQRSTUVWXY 0$iPQRSTUVWXY06ni PQRSTUVWXY 06n0@7GKd_w HAVYb_a2}}}P?Ggd_?Ggd_?Ggad?Ggad?Ggd_P7d_aP7d_a?Ggdd?Ggdd?Ggdd?Ggd_ns|y?Ggd_ ?Ggd_ ?Ggd_ ?Ggd_ +* d DDD 0u0u 0u0u@0u@0u0u2222PAPA3((NvL)(*(((*((('_=UKggPPPP?$|  $|  ' 'KKK  ,d0    0@ qqqqqqqq <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<     Z "  "aʓ +PlatformLangen-USaʓ +TimeoutQ8ByE`N4AMITSESetupg=)AJ7|K IDESecDev 7LG/'˼ODelBootOption ?mjjG{$2;AddBootOption t`eE!-+ݎRLegacyDev}|IֲAMICallbackt`eE!-+ݎRLegacyGroupn.@B EEEƴSetupSaveStateLμOemTSEVar;gUOFDynamicPageCountAKaDriverHlthEnableԧYt3eDyZDCDriverHealthCount-'XnF.Cp%DrvHealthCtrlCntEӜwDriverManageraʓ +DriverOrderl} HGZl xjAddDriverOptionţ|C+o&%DelDriverOptionzE*OemPortVar1S)@LLLLȉOemPortVar2>o@KyaW3OemPortVar3g~GLJ n˒OemPortVar4S'4Cf OemPortVar5?zQF$FLOemPortVar6 εtNÒJL)OemPortVar7!7x'@N8OemPortVar8"Q?2N*ei2OemPortVar9#x3ۦK' /OemPortVar10$rbL +~OemPortVar11%g{LO*X jchOemPortVar12&G= CDxBOemPortVar13'î*K NAe~/OemPortVar14({g=ENFOemPortVar15)rjFP@K}T(OemPortVar16*9Ft5F&HְOemPortVar17+RHj<OemPortVar18,^LKFt~OemPortVar19-3ƒE@ ơOemPortVar20.iaYO<6E OemPortVar21/)B@u|I OemPortVar2200gpE0>=OemPortVar2318?{rK^},OemPortVar242D]١MjPU2OemPortVar275 ZJC~AOemPortVar2863Í?XN{1OemPortVar297So@9 SDynamicPageGroupCount8\la|A$:]DynamicPageDeviceCount9AUMb˫DynamicPageGroupClass:JY{ XAMcSetup;aʓ +PlatformLangCodesen<ip紼M#VSystemAccess=z@!URN7Shell> CևK?>6 SetupPlatformData1? V ~M?)a1PNP0501_0_VV@ V ~M?)a1PNP0501_0_NVA V ~M?)a1SerialPortsEnabledVarB[ʗ`MKѐ,DebuggerSerialPortsEnabledVarCCևK?>6 NBPlatformDataDuCևK?>6 SetupVolatileDataBcccE'CևK?>6 SetupCpuFeaturesF A^ 2CpuSetupVolatileDataG >ِN=Kw/6 SetupAmtFeaturesJ-d4Ie)LtIccAdvancedSetupDataVarKC];B-ҶAmiGopPolicySetupDataLCևK?>6 NBGopPlatformDataMimDSlNewOptionPolicyN]@zFAE6NetworkStackVarOJY{ XAMcSecureBootSetupPJY{ XAMcSecureVarPresentQaʓ +VendorKeysRaʓ +SetupModeSaʓ +SecureBootTaʓ +AuditModeUaʓ +DeployedModeVCևK?>6 UsbMassDevNumWCևK?>6 UsbMassDevValidXCևK?>6 UsbControllerNumY!CևK?>6 UsbSupportZCևK?>6 FixedBootGroup[CևK?>6 SMCOcBiosSetting\pA݉Setup]YlcK IZAcousticVarName^!RHugSetup_!RHugPCI_COMMON`7-J  fSetupa. ဗ&dBɀv,>XcSetupb&#LĘ)iSetupc&#LĘ)iFixedBootd:Fs~D}zNSetupe/wCiEX:͍Setupf'[G~wg@UndiNVDataefivar-39/tests/machine0/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252370ustar00rootroot00000000000000efivar-39/tests/machine0/data/WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000001041455652431600260040ustar00rootroot00000000000000efivar-39/tests/machine0/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000113011455652431600236360ustar00rootroot00000000000000'Y䔧J\+rvZQH&_J^0F0.3,'0  *H 0y1 0 UUS1 0 UCA10U Santa Clara10U Intel Corporation1+0)U"Intel External Basic Issuing CA 3B0 140929171939Z 150929171939Z0}1 0 UUS1 0 UCA10U Santa Clara10U Intel Corporation1/0-U&Intel(R) DCG SPS Server PTU Option ROM0"0  *H 0 UPψnlQ= t[#Rr C6ԋK JъktKJ. , VTx% hy0i3]?"8"3'DY/KpXZGKn- _A^I˶pޝ& ăºi$Bz2% ~r\asIGcr["ty!/o! !q 500 U0U% 0 +0U@IkewK̐`_0U#0CZJw-"0U00Whttp://www.intel.com/repository/CRL/Intel%20External%20Basic%20Issuing%20CA%203B(2).crl`http://certificates.intel.com/repository/CRL/Intel%20External%20Basic%20Issuing%20CA%203B(2).crl0+ 0 0l+0`http://www.intel.com/repository/certificates/Intel%20External%20Basic%20Issuing%20CA%203B(2).crt0u+0ihttp://certificates.intel.com/repository/certificates/Intel%20External%20Basic%20Issuing%20CA%203B(2).crt0"+0http://ocsp.intel.com/0 U00= +700.&+7ÌuQ(S gT d 0 +7 0 0 +0  *H | *7LknԄ9Z) WuI ) T<["i÷'X!ڢSMv>'O8u&N4YڲxS#2iеw2+DycBEG*<<0QlY䔧J\+r@$wY2M`(xK00 a0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110627212245Z 260627213245Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1+0)U"Microsoft Corporation UEFI CA 20110"0  *H 0 lLE jK u CTd} s JEa-+MIA#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~efivar-39/tests/machine0/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000113011455652431600250410ustar00rootroot00000000000000Y䔧J\+rvZQH&_J^0F0.3,'0  *H 0y1 0 UUS1 0 UCA10U Santa Clara10U Intel Corporation1+0)U"Intel External Basic Issuing CA 3B0 140929171939Z 150929171939Z0}1 0 UUS1 0 UCA10U Santa Clara10U Intel Corporation1/0-U&Intel(R) DCG SPS Server PTU Option ROM0"0  *H 0 UPψnlQ= t[#Rr C6ԋK JъktKJ. , VTx% hy0i3]?"8"3'DY/KpXZGKn- _A^I˶pޝ& ăºi$Bz2% ~r\asIGcr["ty!/o! !q 500 U0U% 0 +0U@IkewK̐`_0U#0CZJw-"0U00Whttp://www.intel.com/repository/CRL/Intel%20External%20Basic%20Issuing%20CA%203B(2).crl`http://certificates.intel.com/repository/CRL/Intel%20External%20Basic%20Issuing%20CA%203B(2).crl0+ 0 0l+0`http://www.intel.com/repository/certificates/Intel%20External%20Basic%20Issuing%20CA%203B(2).crt0u+0ihttp://certificates.intel.com/repository/certificates/Intel%20External%20Basic%20Issuing%20CA%203B(2).crt0"+0http://ocsp.intel.com/0 U00= +700.&+7ÌuQ(S gT d 0 +7 0 0 +0  *H | *7LknԄ9Z) WuI ) T<["i÷'X!ڢSMv>'O8u&N4YڲxS#2iеw2+DycBEG*<<0QlY䔧J\+r@$wY2M`(xK00 a0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110627212245Z 260627213245Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1+0)U"Microsoft Corporation UEFI CA 20110"0  *H 0 lLE jK u CTd} s JEa-+MIA#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~efivar-39/tests/machine0/data/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000027021455652431600240250ustar00rootroot00000000000000'Y䔧J\+rQH&_J^-----BEGIN NEW CERTIFICATE REQUEST----- MIIDzTCCArWgAwIBAgIQMxAB9hEqh49MMPNnx3cDAjANBgkqhkiG9w0BAQsFADCB iDEMMAoGA1UEBhMDVVNBMQswCQYDVQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2Ux IDAeBgNVBAoMF1N1cGVyIE1pY3JvIENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBl ciBNaWNybyBDb3Jwb3JhdGlvbiBLYWJ5bGFrZSBQbGF0Zm9ybSBLZXkwHhcNMTYw NjIyMjEyNDM1WhcNMjIwNjIyMjEzNDI5WjCBiDEMMAoGA1UEBhMDVVNBMQswCQYD VQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2UxIDAeBgNVBAoMF1N1cGVyIE1pY3Jv IENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBlciBNaWNybyBDb3Jwb3JhdGlvbiBL YWJ5bGFrZSBQbGF0Zm9ybSBLZXkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQC9mz+oCgW2B0nO62RjLkrqvARTDHAHvdor7gk51761jLyLhWjkXf0AyG7z I2mD7FSGpymRE3QAxmBHozM09GxJlfzhoug0P5E5tQHyRXd8T+7gWpMCFx4yDPi9 HImwW6v6FKs9bnG/KOz+LvMuhOzUSTR/VnBqk2KEgXX/wgRnjvsYhpOIgDaukuqt xOGm1eguwqHtXjxG3hAiurVL4LZlB3rWgr1d8y/+f4r4hatfDNpRQSXlcs9O4THx jF+WPRWfR9ONAm9GLNd/hyUaejWxh8pXDDUFqu3s3yO0OleMuimX0CZvuLm5bscw pd//7j+MjKDnLdA0SthKOfnzyvkhAgMBAAGjMTAvMA4GA1UdDwEB/wQEAwIE8DAd BgNVHQ4EFgQUZWxfV2LFiaeDUWXXopTac8yLX4kwDQYJKoZIhvcNAQELBQADggEB AJBXUDujm6YjvFl0ffY78kJdyK/84XF/d36fQsfQqgPCzmnZ8lMA+GDZnrku5e4b sInc99wZcLGBESxM3AN2ygwe7zSuNHOSWUk8cLRDgthwHsCbqrg5LiANq4D2zWYs +SKBv8lCGdL9KUecpzkDP0tyQCm4GbrpkgVEIy2s+GqH68bYHt8uZ3dBQPsqhScs FekaHcm8jIn/b7Pje7MwKnlouNzcO/Z9uFWnMaIk8a94D8pIRwwI2xLvQ41dOUAA 6Ssc4ksZ9vqh8hUDfk2U2Bb++5YCChq/ElBMi6L2MKRvbzLHJ/i2SUeqfCXQOiiX +W5p/TFu+p5WhKRbQwwzPB0= -----END NEW CERTIFICATE REQUEST----- efivar-39/tests/machine0/data/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000027021455652431600252300ustar00rootroot00000000000000Y䔧J\+rQH&_J^-----BEGIN NEW CERTIFICATE REQUEST----- MIIDzTCCArWgAwIBAgIQMxAB9hEqh49MMPNnx3cDAjANBgkqhkiG9w0BAQsFADCB iDEMMAoGA1UEBhMDVVNBMQswCQYDVQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2Ux IDAeBgNVBAoMF1N1cGVyIE1pY3JvIENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBl ciBNaWNybyBDb3Jwb3JhdGlvbiBLYWJ5bGFrZSBQbGF0Zm9ybSBLZXkwHhcNMTYw NjIyMjEyNDM1WhcNMjIwNjIyMjEzNDI5WjCBiDEMMAoGA1UEBhMDVVNBMQswCQYD VQQIDAJDQTERMA8GA1UEBwwIU2FuIEpvc2UxIDAeBgNVBAoMF1N1cGVyIE1pY3Jv IENvcnBvcmF0aW9uMTYwNAYDVQQDDC1TdXBlciBNaWNybyBDb3Jwb3JhdGlvbiBL YWJ5bGFrZSBQbGF0Zm9ybSBLZXkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK AoIBAQC9mz+oCgW2B0nO62RjLkrqvARTDHAHvdor7gk51761jLyLhWjkXf0AyG7z I2mD7FSGpymRE3QAxmBHozM09GxJlfzhoug0P5E5tQHyRXd8T+7gWpMCFx4yDPi9 HImwW6v6FKs9bnG/KOz+LvMuhOzUSTR/VnBqk2KEgXX/wgRnjvsYhpOIgDaukuqt xOGm1eguwqHtXjxG3hAiurVL4LZlB3rWgr1d8y/+f4r4hatfDNpRQSXlcs9O4THx jF+WPRWfR9ONAm9GLNd/hyUaejWxh8pXDDUFqu3s3yO0OleMuimX0CZvuLm5bscw pd//7j+MjKDnLdA0SthKOfnzyvkhAgMBAAGjMTAvMA4GA1UdDwEB/wQEAwIE8DAd BgNVHQ4EFgQUZWxfV2LFiaeDUWXXopTac8yLX4kwDQYJKoZIhvcNAQELBQADggEB AJBXUDujm6YjvFl0ffY78kJdyK/84XF/d36fQsfQqgPCzmnZ8lMA+GDZnrku5e4b sInc99wZcLGBESxM3AN2ygwe7zSuNHOSWUk8cLRDgthwHsCbqrg5LiANq4D2zWYs +SKBv8lCGdL9KUecpzkDP0tyQCm4GbrpkgVEIy2s+GqH68bYHt8uZ3dBQPsqhScs FekaHcm8jIn/b7Pje7MwKnlouNzcO/Z9uFWnMaIk8a94D8pIRwwI2xLvQ41dOUAA 6Ssc4ksZ9vqh8hUDfk2U2Bb++5YCChq/ElBMi6L2MKRvbzLHJ/i2SUeqfCXQOiiX +W5p/TFu+p5WhKRbQwwzPB0= -----END NEW CERTIFICATE REQUEST----- efivar-39/tests/machine0/data/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000030411455652431600240240ustar00rootroot00000000000000'Y䔧J\+rwY2M`(xK00ՠ(:%DDXkC90  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 100623215724Z 350623220401Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100"0  *H 0 (NPhA{뮶"De4iLp@{y 9=vZٵ.<m$TVPtY ńvho(x\PDc_,!B1(6Pb֫q[ $շ˷!bܡ]7Fc*~j"W@oE1E!@&rO<~X^cbx $j'_?J03"R\%FYCb-DFxa~0 A*"f9ENj /R c3#g֧Ppc,ZCn)n!!A&…2lKL?]嵝wÜUt8PB$0ZR4s3zA`# HE\Q.w6p㍀hv]pR"f>/wHL7Q#'׸NpDvxϚfQ0O0 U0U00UVˏ\bh=[Κ0 +70  *H  qC1V2q[57&>O m[;depfZQgmyV{䄹+@&4Gi׶ѿagĵ`C6I ʭ'e [*Є3 X7urlu*f"0V@0@w׋Ӳw SMyq0g,"AzBYyUoڃf@ h#[.&WŸib2|{+3*chbGzE:iBGV{p6sM3#& *?D܃'aY+Oŋ 12BavZ=fEq$ԺA4]-%HmK} atW&iLj$R$\ ڞ_[Ԃ P%@:3nÄ U%95]e1 )dz62.ܕZϋ!1L` #"6doPa@Yq3i|s8d iefivar-39/tests/machine0/data/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000030411455652431600252270ustar00rootroot00000000000000Y䔧J\+rwY2M`(xK00ՠ(:%DDXkC90  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 100623215724Z 350623220401Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100"0  *H 0 (NPhA{뮶"De4iLp@{y 9=vZٵ.<m$TVPtY ńvho(x\PDc_,!B1(6Pb֫q[ $շ˷!bܡ]7Fc*~j"W@oE1E!@&rO<~X^cbx $j'_?J03"R\%FYCb-DFxa~0 A*"f9ENj /R c3#g֧Ppc,ZCn)n!!A&…2lKL?]嵝wÜUt8PB$0ZR4s3zA`# HE\Q.w6p㍀hv]pR"f>/wHL7Q#'׸NpDvxϚfQ0O0 U0U00UVˏ\bh=[Κ0 +70  *H  qC1V2q[57&>O m[;depfZQgmyV{䄹+@&4Gi׶ѿagĵ`C6I ʭ'e [*Є3 X7urlu*f"0V@0@w׋Ӳw SMyq0g,"AzBYyUoڃf@ h#[.&WŸib2|{+3*chbGzE:iBGV{p6sM3#& *?D܃'aY+Oŋ 12BavZ=fEq$ԺA4]-%HmK} atW&iLj$R$\ ڞ_[Ԃ P%@:3nÄ U%95]e1 )dz62.ܕZϋ!1L` #"6doPa@Yq3i|s8d iefivar-39/tests/machine0/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000072541455652431600240420ustar00rootroot00000000000000'&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrL&LP@A6C( 0wY2M`(xK^T`< k覃R8wY2M`(xKƨXdoy(#g+69ОwY2M`(xK _NQxmЁ%orxRYe&wY2M`(xK Cڬz0eu1{ 될ctwY2M`(xK 9v-6=cqZ9ϰF\`lk׽wY2M`(xK o)o3}rK H:*?OwY2M`(xK !Hʃ62u> [1R*[wY2M`(xKoN0;t􀠀Ѐ+ot!hwY2M`(xKN: [CƦ@O4=9bgΔ.#ڒ wY2M`(xK34)bퟗ>H-.ImTdwY2M`(xK+&B.6_K 'lKzoD/ki9wY2M`(xK+,'R*]IZ+R]fbUwY2M`(xK,s3%mԤ<[UYPPR}wY2M`(xK.pgsQpW2.#ӹ+Q}wY2M`(xK0f(Tw0W(JF}8zTiv^uҍwY2M`(xK6Awz/^g4g^Ù^i5 ҽwY2M`(xK8A!6\ !`9MlN g`b[wY2M`(xK?Λ>TR^·mt:syqUpj>swY2M`(xKCʃc| C-/&zKuwY2M`(xKGa':k,Zmk6!h,*Z߽wY2M`(xKQ1s>!"Ty 0a5wY2M`(xKZIU9[.B,/gg6A+\wY2M`(xKkxA{^`Gr̴/fwY2M`(xKlTGYQ&l+585rѓ.wY2M`(xKo(qկ.{˫d|eͶ& :x^wY2M`(xKqo"I~TFb$ whٿcuwY2M`(xKrk>Tj0=ppq-ĝ,#wY2M`(xKrg]V;ݼ2ت^/m(ؽwY2M`(xKx'6,q}䱿CqZH[ʤKŽwY2M`(xKeӇk)T̕SϪȣ;3佚wY2M`(xK;δCΝч͛YA=Xo+V7W_gwY2M`(xKZ~OG q"8b:ߒ=wY2M`(xKHY jagznFdr!YEwY2M`(xK4͐e;=<5P_{c!wY2M`(xK se(Q$Q?eYW5)@νwY2M`(xK5g+6~OIia]JlrMBwY2M`(xK,";VB\GYG8DoYwY2M`(xKn=)t=J2@ؽwY2M`(xKcOx,7`XbfnmwY2M`(xKϲ2.KmH],qgrRY\u"6wY2M`(xKaJ~UәnE AR'[wY2M`(xKU =HZ7?=|cwY2M`(xKw ^; b x  S^ˇ k/wY2M`(xK<9"`tFu7̔ܭZ˦G/4q9脽wY2M`(xK;S> #Aryę-æ6wY2M`(xKQ3@HΈrRjRç`IwY2M`(xKdW[x.V4Rk DxYuN-dEwY2M`(xKEȮu ϻH7R}ddMؑ<͊$Migߎefivar-39/tests/machine0/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000012201455652431600252300ustar00rootroot00000000000000&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrLefivar-39/tests/machine1/000077500000000000000000000000001455652431600154255ustar00rootroot00000000000000efivar-39/tests/machine1/annotations/000077500000000000000000000000001455652431600177625ustar00rootroot00000000000000efivar-39/tests/machine1/annotations/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000336021455652431600260340ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 f2 03 00 00 |....| esl[0].signature_list_size = 1010 (0x3f2) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 d6 03 00 00 |....| esl[0].signature_size = 982 0000001c esl[0].signature_header (end:0x0000001c) 0000001c ce 4d 56 70 |.MVp| esl[0].signature[0].owner = {dell} 00000020 fc 9a e3 4e 85 fc 94 96 49 d7 e4 5c |...N....I..\| 0000002c 30 82 03 c2 |0...| esl[0].signature[0].data (end:0x000003f2) 00000030 30 82 02 aa a0 03 02 01 02 02 10 27 9b ad 52 bf |0..........'..R.| 00000040 5d ab b2 4c 36 77 42 f4 eb ac cd 30 0d 06 09 2a |]..L6wB....0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 67 31 0b 30 09 |.H........0g1.0.| 00000060 06 03 55 04 06 13 02 55 53 31 0e 30 0c 06 03 55 |..U....US1.0...U| 00000070 04 08 0c 05 54 65 78 61 73 31 13 30 11 06 03 55 |....Texas1.0...U| 00000080 04 07 0c 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 |....Round Rock1.| 00000090 30 10 06 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e |0...U....Dell In| 000000a0 63 2e 31 1f 30 1d 06 03 55 04 03 0c 16 44 65 6c |c.1.0...U....Del| 000000b0 6c 20 49 6e 63 2e 20 50 6c 61 74 66 6f 72 6d 20 |l Inc. Platform | 000000c0 4b 65 79 30 1e 17 0d 31 36 30 36 30 31 32 30 32 |Key0...160601202| 000000d0 32 34 38 5a 17 0d 32 33 30 36 30 31 32 30 33 32 |248Z..2306012032| 000000e0 34 37 5a 30 6b 31 0b 30 09 06 03 55 04 06 13 02 |47Z0k1.0...U....| 000000f0 55 53 31 0e 30 0c 06 03 55 04 08 0c 05 54 65 78 |US1.0...U....Tex| 00000100 61 73 31 13 30 11 06 03 55 04 07 0c 0a 52 6f 75 |as1.0...U....Rou| 00000110 6e 64 20 52 6f 63 6b 31 12 30 10 06 03 55 04 0a |nd Rock1.0...U..| 00000120 0c 09 44 65 6c 6c 20 49 6e 63 2e 31 23 30 21 06 |..Dell Inc.1#0!.| 00000130 03 55 04 03 0c 1a 44 65 6c 6c 20 49 6e 63 2e 20 |.U....Dell Inc. | 00000140 4b 65 79 20 45 78 63 68 61 6e 67 65 20 4b 65 79 |Key Exchange Key| 00000150 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 00000160 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 |........0.......| 00000170 00 d0 8d 9d 3b a5 41 29 4c 42 8b ac ef 9a 66 2d |....;.A)LB....f-| 00000180 9c 33 8a e0 ce f2 11 49 f5 7d 63 e2 90 b0 e6 ec |.3.....I.}c.....| 00000190 ff dd dc 66 30 5b 0b 8d 8f 82 df 55 c6 e0 fa ad |...f0[.....U....| 000001a0 9e 3c ff 80 fe d5 69 95 e8 ef f7 ce 40 5f 28 b5 |.<....i.....@_(.| 000001b0 e4 6f 9c 4a f2 8d 41 40 b7 99 c0 9e 33 53 f0 a4 |.o.J..A@....3S..| 000001c0 48 70 92 04 a8 36 74 4a 59 62 0e f4 b2 a5 8e 31 |Hp...6tJYb.....1| 000001d0 f3 f6 64 8e 81 1b 06 a1 78 bc a2 78 20 83 93 4e |..d.....x..x ..N| 000001e0 f4 08 a3 30 06 0f f5 9a d9 c1 33 85 aa 41 0e 96 |...0......3..A..| 000001f0 fb 73 8f be ac 75 da fb 5c 48 68 49 1b f4 b6 fe |.s...u..\HhI....| 00000200 9e b0 dc d4 ea 89 8d 4e f6 46 59 83 14 8a a2 c8 |.......N.FY.....| 00000210 6a 79 91 5f fa 07 f2 e6 56 70 a7 2e e8 31 ff f5 |jy._....Vp...1..| 00000220 72 93 1a d9 c3 1e 6b c4 a0 f1 5d 5e 94 2e c6 5c |r.....k...]^...\| 00000230 1b 1a f2 a9 ae fe 8b 5a b4 c2 0f dd bc f1 bd f4 |.......Z........| 00000240 1c 01 7a be a9 a4 f3 99 35 33 a9 65 3c 77 28 0c |..z.....53.e..| 000006d0 67 12 d2 5b d9 55 ac 7b cc b6 8a 5f 30 19 06 09 |g..[.U.{..._0...| 000006e0 2b 06 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 |+.....7.......S.| 000006f0 75 00 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 |u.b.C.A0...U....| 00000700 03 02 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 |....0...U.......| 00000710 30 03 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 |0....0...U.#..0.| 00000720 80 14 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 |..EfRC.~X...N.#U| 00000730 08 3b 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 30 |.;:"j.0\..U...U0| 00000740 53 30 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f |S0Q.O.M.Khttp://| 00000750 63 72 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f |crl.microsoft.co| 00000760 6d 2f 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 |m/pki/crl/produc| 00000770 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d |ts/MicCorThiParM| 00000780 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 |arRoo_2010-10-05| 00000790 2e 63 72 6c 30 60 06 08 2b 06 01 05 05 07 01 01 |.crl0`..+.......| 000007a0 04 54 30 52 30 50 06 08 2b 06 01 05 05 07 30 02 |.T0R0P..+.....0.| 000007b0 86 44 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 |.Dhttp://www.mic| 000007c0 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 |rosoft.com/pki/c| 000007d0 65 72 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 |erts/MicCorThiPa| 000007e0 72 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d |rMarRoo_2010-10-| 000007f0 30 35 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d |05.crt0...*.H...| 00000800 01 01 0b 05 00 03 82 02 01 00 d4 84 88 f5 14 94 |................| 00000810 18 02 ca 2a 3c fb 2a 92 1c 0c d7 a0 d1 f1 e8 52 |...*<.*........R| 00000820 66 a8 ee a2 b5 75 7a 90 00 aa 2d a4 76 5a ea 79 |f....uz...-.vZ.y| 00000830 b7 b9 37 6a 51 7b 10 64 f6 e1 64 f2 02 67 be f7 |..7jQ{.d..d..g..| 00000840 a8 1b 78 bd ba ce 88 58 64 0c d6 57 c8 19 a3 5f |..x....Xd..W..._| 00000850 05 d6 db c6 d0 69 ce 48 4b 32 b7 eb 5d d2 30 f5 |.....i.HK2..].0.| 00000860 c0 f5 b8 ba 78 07 a3 2b fe 9b db 34 56 84 ec 82 |....x..+...4V...| 00000870 ca ae 41 25 70 9c 6b e9 fe 90 0f d7 96 1f e5 e7 |..A%p.k.........| 00000880 94 1f b2 2a 0c 8d 4b ff 28 29 10 7b f7 d7 7c a5 |...*..K.().{..|.| 00000890 d1 76 b9 05 c8 79 ed 0f 90 92 9c c2 fe df 6f 7e |.v...y........o~| 000008a0 6c 0f 7b d4 c1 45 dd 34 51 96 39 0f e5 5e 56 d8 |l.{..E.4Q.9..^V.| 000008b0 18 05 96 f4 07 a6 42 b3 a0 77 fd 08 19 f2 71 56 |......B..w....qV| 000008c0 cc 9f 86 23 a4 87 cb a6 fd 58 7e d4 69 67 15 91 |...#.....X~.ig..| 000008d0 7e 81 f2 7f 13 e5 0d 8b 8a 3c 87 84 eb e3 ce bd |~........<......| 000008e0 43 e5 ad 2d 84 93 8e 6a 2b 5a 7c 44 fa 52 aa 81 |C..-...j+Z|D.R..| 000008f0 c8 2d 1c bb e0 52 df 00 11 f8 9a 3d c1 60 b0 e1 |.-...R.....=.`..| 00000900 33 b5 a3 88 d1 65 19 0a 1a e7 ac 7c a4 c1 82 87 |3....e.....|....| 00000910 4e 38 b1 2f 0d c5 14 87 6f fd 8d 2e bc 39 b6 e7 |N8./....o....9..| 00000920 e6 c3 e0 e4 cd 27 84 ef 94 42 ef 29 8b 90 46 41 |.....'...B.)..FA| 00000930 3b 81 1b 67 d8 f9 43 59 65 cb 0d bc fd 00 92 4f |;..g..CYe......O| 00000940 f4 75 3b a7 a9 24 fc 50 41 40 79 e0 2d 4f 0a 6a |.u;..$.PA@y.-O.j| 00000950 27 76 6e 52 ed 96 69 7b af 0f f7 87 05 d0 45 c2 |'vnR..i{......E.| 00000960 ad 53 14 81 1f fb 30 04 aa 37 36 61 da 4a 69 1b |.S....0..76a.Ji.| 00000970 34 d8 68 ed d6 02 cf 6c 94 0c d3 cf 6c 22 79 ad |4.h....l....l"y.| 00000980 b1 f0 bc 03 a2 46 60 a9 c4 07 c2 21 82 f1 fd f2 |.....F`....!....| 00000990 e8 79 32 60 bf d8 ac a5 22 14 4b ca c1 d8 4b eb |.y2`....".K...K.| 000009a0 7d 3f 57 35 b2 e6 4f 75 b4 b0 60 03 22 53 ae 91 |}?W5..Ou..`."S..| 000009b0 79 1d d6 9b 41 1f 15 86 54 70 b2 de 0d 35 0f 7c |y...A...Tp...5.|| 000009c0 b0 34 72 ba 97 60 3b f0 79 eb a2 b2 1c 5d a2 16 |.4r..`;.y....]..| 000009d0 b8 87 c5 e9 1b f6 b5 97 25 6f 38 9f e3 91 fa 8a |........%o8.....| 000009e0 79 98 c3 69 0e b7 a3 1c 20 05 97 f8 ca 14 ae 00 |y..i.... .......| 000009f0 d7 c4 f3 c0 14 10 75 6b 34 a0 1b b5 99 60 f3 5c |......uk4....`.\| 00000a00 b0 c5 57 4e 36 d2 32 84 bf 9e |..WN6.2...| 00000a0a efivar-39/tests/machine1/annotations/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000336021455652431600273410ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 f2 03 00 00 |....| esl[0].signature_list_size = 1010 (0x3f2) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 d6 03 00 00 |....| esl[0].signature_size = 982 0000001c esl[0].signature_header (end:0x0000001c) 0000001c ce 4d 56 70 |.MVp| esl[0].signature[0].owner = {dell} 00000020 fc 9a e3 4e 85 fc 94 96 49 d7 e4 5c |...N....I..\| 0000002c 30 82 03 c2 |0...| esl[0].signature[0].data (end:0x000003f2) 00000030 30 82 02 aa a0 03 02 01 02 02 10 27 9b ad 52 bf |0..........'..R.| 00000040 5d ab b2 4c 36 77 42 f4 eb ac cd 30 0d 06 09 2a |]..L6wB....0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 67 31 0b 30 09 |.H........0g1.0.| 00000060 06 03 55 04 06 13 02 55 53 31 0e 30 0c 06 03 55 |..U....US1.0...U| 00000070 04 08 0c 05 54 65 78 61 73 31 13 30 11 06 03 55 |....Texas1.0...U| 00000080 04 07 0c 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 |....Round Rock1.| 00000090 30 10 06 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e |0...U....Dell In| 000000a0 63 2e 31 1f 30 1d 06 03 55 04 03 0c 16 44 65 6c |c.1.0...U....Del| 000000b0 6c 20 49 6e 63 2e 20 50 6c 61 74 66 6f 72 6d 20 |l Inc. Platform | 000000c0 4b 65 79 30 1e 17 0d 31 36 30 36 30 31 32 30 32 |Key0...160601202| 000000d0 32 34 38 5a 17 0d 32 33 30 36 30 31 32 30 33 32 |248Z..2306012032| 000000e0 34 37 5a 30 6b 31 0b 30 09 06 03 55 04 06 13 02 |47Z0k1.0...U....| 000000f0 55 53 31 0e 30 0c 06 03 55 04 08 0c 05 54 65 78 |US1.0...U....Tex| 00000100 61 73 31 13 30 11 06 03 55 04 07 0c 0a 52 6f 75 |as1.0...U....Rou| 00000110 6e 64 20 52 6f 63 6b 31 12 30 10 06 03 55 04 0a |nd Rock1.0...U..| 00000120 0c 09 44 65 6c 6c 20 49 6e 63 2e 31 23 30 21 06 |..Dell Inc.1#0!.| 00000130 03 55 04 03 0c 1a 44 65 6c 6c 20 49 6e 63 2e 20 |.U....Dell Inc. | 00000140 4b 65 79 20 45 78 63 68 61 6e 67 65 20 4b 65 79 |Key Exchange Key| 00000150 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 00000160 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 |........0.......| 00000170 00 d0 8d 9d 3b a5 41 29 4c 42 8b ac ef 9a 66 2d |....;.A)LB....f-| 00000180 9c 33 8a e0 ce f2 11 49 f5 7d 63 e2 90 b0 e6 ec |.3.....I.}c.....| 00000190 ff dd dc 66 30 5b 0b 8d 8f 82 df 55 c6 e0 fa ad |...f0[.....U....| 000001a0 9e 3c ff 80 fe d5 69 95 e8 ef f7 ce 40 5f 28 b5 |.<....i.....@_(.| 000001b0 e4 6f 9c 4a f2 8d 41 40 b7 99 c0 9e 33 53 f0 a4 |.o.J..A@....3S..| 000001c0 48 70 92 04 a8 36 74 4a 59 62 0e f4 b2 a5 8e 31 |Hp...6tJYb.....1| 000001d0 f3 f6 64 8e 81 1b 06 a1 78 bc a2 78 20 83 93 4e |..d.....x..x ..N| 000001e0 f4 08 a3 30 06 0f f5 9a d9 c1 33 85 aa 41 0e 96 |...0......3..A..| 000001f0 fb 73 8f be ac 75 da fb 5c 48 68 49 1b f4 b6 fe |.s...u..\HhI....| 00000200 9e b0 dc d4 ea 89 8d 4e f6 46 59 83 14 8a a2 c8 |.......N.FY.....| 00000210 6a 79 91 5f fa 07 f2 e6 56 70 a7 2e e8 31 ff f5 |jy._....Vp...1..| 00000220 72 93 1a d9 c3 1e 6b c4 a0 f1 5d 5e 94 2e c6 5c |r.....k...]^...\| 00000230 1b 1a f2 a9 ae fe 8b 5a b4 c2 0f dd bc f1 bd f4 |.......Z........| 00000240 1c 01 7a be a9 a4 f3 99 35 33 a9 65 3c 77 28 0c |..z.....53.e..| 000006d0 67 12 d2 5b d9 55 ac 7b cc b6 8a 5f 30 19 06 09 |g..[.U.{..._0...| 000006e0 2b 06 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 |+.....7.......S.| 000006f0 75 00 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 |u.b.C.A0...U....| 00000700 03 02 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 |....0...U.......| 00000710 30 03 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 |0....0...U.#..0.| 00000720 80 14 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 |..EfRC.~X...N.#U| 00000730 08 3b 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 30 |.;:"j.0\..U...U0| 00000740 53 30 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f |S0Q.O.M.Khttp://| 00000750 63 72 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f |crl.microsoft.co| 00000760 6d 2f 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 |m/pki/crl/produc| 00000770 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d |ts/MicCorThiParM| 00000780 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 |arRoo_2010-10-05| 00000790 2e 63 72 6c 30 60 06 08 2b 06 01 05 05 07 01 01 |.crl0`..+.......| 000007a0 04 54 30 52 30 50 06 08 2b 06 01 05 05 07 30 02 |.T0R0P..+.....0.| 000007b0 86 44 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 |.Dhttp://www.mic| 000007c0 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 |rosoft.com/pki/c| 000007d0 65 72 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 |erts/MicCorThiPa| 000007e0 72 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d |rMarRoo_2010-10-| 000007f0 30 35 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d |05.crt0...*.H...| 00000800 01 01 0b 05 00 03 82 02 01 00 d4 84 88 f5 14 94 |................| 00000810 18 02 ca 2a 3c fb 2a 92 1c 0c d7 a0 d1 f1 e8 52 |...*<.*........R| 00000820 66 a8 ee a2 b5 75 7a 90 00 aa 2d a4 76 5a ea 79 |f....uz...-.vZ.y| 00000830 b7 b9 37 6a 51 7b 10 64 f6 e1 64 f2 02 67 be f7 |..7jQ{.d..d..g..| 00000840 a8 1b 78 bd ba ce 88 58 64 0c d6 57 c8 19 a3 5f |..x....Xd..W..._| 00000850 05 d6 db c6 d0 69 ce 48 4b 32 b7 eb 5d d2 30 f5 |.....i.HK2..].0.| 00000860 c0 f5 b8 ba 78 07 a3 2b fe 9b db 34 56 84 ec 82 |....x..+...4V...| 00000870 ca ae 41 25 70 9c 6b e9 fe 90 0f d7 96 1f e5 e7 |..A%p.k.........| 00000880 94 1f b2 2a 0c 8d 4b ff 28 29 10 7b f7 d7 7c a5 |...*..K.().{..|.| 00000890 d1 76 b9 05 c8 79 ed 0f 90 92 9c c2 fe df 6f 7e |.v...y........o~| 000008a0 6c 0f 7b d4 c1 45 dd 34 51 96 39 0f e5 5e 56 d8 |l.{..E.4Q.9..^V.| 000008b0 18 05 96 f4 07 a6 42 b3 a0 77 fd 08 19 f2 71 56 |......B..w....qV| 000008c0 cc 9f 86 23 a4 87 cb a6 fd 58 7e d4 69 67 15 91 |...#.....X~.ig..| 000008d0 7e 81 f2 7f 13 e5 0d 8b 8a 3c 87 84 eb e3 ce bd |~........<......| 000008e0 43 e5 ad 2d 84 93 8e 6a 2b 5a 7c 44 fa 52 aa 81 |C..-...j+Z|D.R..| 000008f0 c8 2d 1c bb e0 52 df 00 11 f8 9a 3d c1 60 b0 e1 |.-...R.....=.`..| 00000900 33 b5 a3 88 d1 65 19 0a 1a e7 ac 7c a4 c1 82 87 |3....e.....|....| 00000910 4e 38 b1 2f 0d c5 14 87 6f fd 8d 2e bc 39 b6 e7 |N8./....o....9..| 00000920 e6 c3 e0 e4 cd 27 84 ef 94 42 ef 29 8b 90 46 41 |.....'...B.)..FA| 00000930 3b 81 1b 67 d8 f9 43 59 65 cb 0d bc fd 00 92 4f |;..g..CYe......O| 00000940 f4 75 3b a7 a9 24 fc 50 41 40 79 e0 2d 4f 0a 6a |.u;..$.PA@y.-O.j| 00000950 27 76 6e 52 ed 96 69 7b af 0f f7 87 05 d0 45 c2 |'vnR..i{......E.| 00000960 ad 53 14 81 1f fb 30 04 aa 37 36 61 da 4a 69 1b |.S....0..76a.Ji.| 00000970 34 d8 68 ed d6 02 cf 6c 94 0c d3 cf 6c 22 79 ad |4.h....l....l"y.| 00000980 b1 f0 bc 03 a2 46 60 a9 c4 07 c2 21 82 f1 fd f2 |.....F`....!....| 00000990 e8 79 32 60 bf d8 ac a5 22 14 4b ca c1 d8 4b eb |.y2`....".K...K.| 000009a0 7d 3f 57 35 b2 e6 4f 75 b4 b0 60 03 22 53 ae 91 |}?W5..Ou..`."S..| 000009b0 79 1d d6 9b 41 1f 15 86 54 70 b2 de 0d 35 0f 7c |y...A...Tp...5.|| 000009c0 b0 34 72 ba 97 60 3b f0 79 eb a2 b2 1c 5d a2 16 |.4r..`;.y....]..| 000009d0 b8 87 c5 e9 1b f6 b5 97 25 6f 38 9f e3 91 fa 8a |........%o8.....| 000009e0 79 98 c3 69 0e b7 a3 1c 20 05 97 f8 ca 14 ae 00 |y..i.... .......| 000009f0 d7 c4 f3 c0 14 10 75 6b 34 a0 1b b5 99 60 f3 5c |......uk4....`.\| 00000a00 b0 c5 57 4e 36 d2 32 84 bf 9e |..WN6.2...| 00000a0a efivar-39/tests/machine1/annotations/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000125561455652431600257410ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 cd 03 00 00 |....| esl[0].signature_list_size = 973 (0x3cd) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 b1 03 00 00 |....| esl[0].signature_size = 945 0000001c esl[0].signature_header (end:0x0000001c) 0000001c ce 4d 56 70 |.MVp| esl[0].signature[0].owner = {dell} 00000020 fc 9a e3 4e 85 fc 94 96 49 d7 e4 5c |...N....I..\| 0000002c 30 82 03 9d |0...| esl[0].signature[0].data (end:0x000003cd) 00000030 30 82 02 85 a0 03 02 01 02 02 10 50 a1 bd 85 8a |0..........P....| 00000040 e7 b6 bc 40 2d ca 78 cd d2 68 a1 30 0d 06 09 2a |...@-.x..h.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 67 31 0b 30 09 |.H........0g1.0.| 00000060 06 03 55 04 06 13 02 55 53 31 0e 30 0c 06 03 55 |..U....US1.0...U| 00000070 04 08 0c 05 54 65 78 61 73 31 13 30 11 06 03 55 |....Texas1.0...U| 00000080 04 07 0c 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 |....Round Rock1.| 00000090 30 10 06 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e |0...U....Dell In| 000000a0 63 2e 31 1f 30 1d 06 03 55 04 03 0c 16 44 65 6c |c.1.0...U....Del| 000000b0 6c 20 49 6e 63 2e 20 50 6c 61 74 66 6f 72 6d 20 |l Inc. Platform | 000000c0 4b 65 79 30 1e 17 0d 31 36 30 36 30 31 32 30 32 |Key0...160601202| 000000d0 30 30 37 5a 17 0d 33 31 30 36 30 31 32 30 33 30 |007Z..3106012030| 000000e0 30 36 5a 30 67 31 0b 30 09 06 03 55 04 06 13 02 |06Z0g1.0...U....| 000000f0 55 53 31 0e 30 0c 06 03 55 04 08 0c 05 54 65 78 |US1.0...U....Tex| 00000100 61 73 31 13 30 11 06 03 55 04 07 0c 0a 52 6f 75 |as1.0...U....Rou| 00000110 6e 64 20 52 6f 63 6b 31 12 30 10 06 03 55 04 0a |nd Rock1.0...U..| 00000120 0c 09 44 65 6c 6c 20 49 6e 63 2e 31 1f 30 1d 06 |..Dell Inc.1.0..| 00000130 03 55 04 03 0c 16 44 65 6c 6c 20 49 6e 63 2e 20 |.U....Dell Inc. | 00000140 50 6c 61 74 66 6f 72 6d 20 4b 65 79 30 82 01 22 |Platform Key0.."| 00000150 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 00000160 82 01 0f 00 30 82 01 0a 02 82 01 01 00 b1 20 3a |....0......... :| 00000170 40 88 eb 67 58 23 12 44 0c 20 ed b6 aa 44 19 da |@..gX#.D. ...D..| 00000180 d3 36 dc c0 6d 4b 58 81 4e 2c a9 22 5b ff c1 18 |.6..mKX.N,."[...| 00000190 b0 2e c5 9c 28 7d d9 fc 8c 70 e2 27 a7 38 ce ba |....(}...p.'.8..| 000001a0 aa a7 24 02 7f c2 ae 0a 84 ae 37 b4 00 dd f4 f1 |..$.......7.....| 000001b0 d3 53 36 40 76 19 76 64 27 dd 26 3f 0a 45 88 a1 |.S6@v.vd'.&?.E..| 000001c0 00 ef 94 e7 89 1d f4 29 d4 78 37 b2 5e da 39 ef |.......).x7.^.9.| 000001d0 b3 00 8d 56 8e bf 81 31 33 98 f5 36 15 d3 98 bb |...V...13..6....| 000001e0 39 ca 27 f3 67 8b 63 da 07 82 98 14 d0 db cd 58 |9.'.g.c........X| 000001f0 ea 44 cf c4 f7 bd 9a 48 b9 69 f1 5f 8f 54 4f 44 |.D.....H.i._.TOD| 00000200 34 99 7a 13 57 00 2c b8 33 4a cf c7 4e 0f 5d 3d |4.z.W.,.3J..N.]=| 00000210 94 e9 a2 ca a4 9f 64 04 15 f2 e2 99 ed 4a fd 3c |......d......J.<| 00000220 02 ee a3 26 7b c8 69 5f 43 c2 5f 39 0a de 24 9d |...&{.i_C._9..$.| 00000230 bf 71 9e 94 a1 de bd da f7 ce 13 42 73 a5 07 3c |.q.........Bs..<| 00000240 3e 54 75 16 53 49 88 93 17 b8 54 e4 0a ae 64 71 |>Tu.SI....T...dq| 00000250 47 8a 6f 2e ec a2 cb 70 97 96 43 37 ab ff 6f 82 |G.o....p..C7..o.| 00000260 a1 bb 64 f2 b0 5e b7 a9 63 a4 71 94 43 02 03 01 |..d..^..c.q.C...| 00000270 00 01 a3 45 30 43 30 0e 06 03 55 1d 0f 01 01 ff |...E0C0...U.....| 00000280 04 04 03 02 02 f4 30 12 06 03 55 1d 13 01 01 ff |......0...U.....| 00000290 04 08 30 06 01 01 ff 02 01 01 30 1d 06 03 55 1d |..0.......0...U.| 000002a0 0e 04 16 04 14 46 6f 90 1c 10 20 52 99 56 15 ef |.....Fo... R.V..| 000002b0 39 fd 48 18 48 cf 75 e6 a4 30 0d 06 09 2a 86 48 |9.H.H.u..0...*.H| 000002c0 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 52 f6 b6 |.............R..| 000002d0 79 e4 c9 72 b0 a1 49 69 25 ce 17 5c 6a c6 32 cf |y..r..Ii%..\j.2.| 000002e0 01 74 8a d8 29 69 c1 00 fc 12 e7 46 60 91 52 7a |.t..)i.....F`.Rz| 000002f0 33 0d c3 1f 68 7f 73 19 38 b2 ae c3 a4 ee 67 f2 |3...h.s.8.....g.| 00000300 f1 0e 87 67 ef 71 1a d9 68 71 af bf 40 b6 6e 98 |...g.q..hq..@.n.| 00000310 59 1e 52 0b 9c 96 c7 52 27 1c 6c 1e d2 89 34 83 |Y.R....R'.l...4.| 00000320 96 59 2a e2 35 7f fa d0 26 dc b9 d9 15 37 89 87 |.Y*.5...&....7..| 00000330 dc f9 30 28 77 53 f2 fe db 2e 5f 40 36 63 f5 54 |..0(wS...._@6c.T| 00000340 63 f2 0f d2 32 a3 e7 a2 79 d8 a8 d4 ff ba 26 8a |c...2...y.....&.| 00000350 df 2a 6b e1 ac d6 28 a6 26 f6 5a ca bf 60 39 12 |.*k...(.&.Z..`9.| 00000360 bb d6 ff d6 c2 ce 1f 00 e9 6b a8 7c 07 94 d3 ae |.........k.|....| 00000370 a3 b9 c0 37 aa f9 e0 f1 83 e9 52 28 92 3b b8 37 |...7......R(.;.7| 00000380 0a 0f a2 ef 7e 0b 00 31 d7 b1 40 f6 ea f5 87 1a |....~..1..@.....| 00000390 88 04 83 d9 33 f2 99 79 24 c0 2c 43 5b 42 2c 6c |....3..y$.,C[B,l| 000003a0 db 05 6c 48 23 bf 16 94 38 3e 55 1b 49 91 39 cc |..lH#...8>U.I.9.| 000003b0 b2 65 3e e8 af 15 24 45 c8 5b ad 28 3a a7 a4 88 |.e>...$E.[.(:...| 000003c0 94 8d 0a d8 4b 8d c3 6c 17 97 82 21 fc |....K..l...!.| 000003cd efivar-39/tests/machine1/annotations/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000125561455652431600272460ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 cd 03 00 00 |....| esl[0].signature_list_size = 973 (0x3cd) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 b1 03 00 00 |....| esl[0].signature_size = 945 0000001c esl[0].signature_header (end:0x0000001c) 0000001c ce 4d 56 70 |.MVp| esl[0].signature[0].owner = {dell} 00000020 fc 9a e3 4e 85 fc 94 96 49 d7 e4 5c |...N....I..\| 0000002c 30 82 03 9d |0...| esl[0].signature[0].data (end:0x000003cd) 00000030 30 82 02 85 a0 03 02 01 02 02 10 50 a1 bd 85 8a |0..........P....| 00000040 e7 b6 bc 40 2d ca 78 cd d2 68 a1 30 0d 06 09 2a |...@-.x..h.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 67 31 0b 30 09 |.H........0g1.0.| 00000060 06 03 55 04 06 13 02 55 53 31 0e 30 0c 06 03 55 |..U....US1.0...U| 00000070 04 08 0c 05 54 65 78 61 73 31 13 30 11 06 03 55 |....Texas1.0...U| 00000080 04 07 0c 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 |....Round Rock1.| 00000090 30 10 06 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e |0...U....Dell In| 000000a0 63 2e 31 1f 30 1d 06 03 55 04 03 0c 16 44 65 6c |c.1.0...U....Del| 000000b0 6c 20 49 6e 63 2e 20 50 6c 61 74 66 6f 72 6d 20 |l Inc. Platform | 000000c0 4b 65 79 30 1e 17 0d 31 36 30 36 30 31 32 30 32 |Key0...160601202| 000000d0 30 30 37 5a 17 0d 33 31 30 36 30 31 32 30 33 30 |007Z..3106012030| 000000e0 30 36 5a 30 67 31 0b 30 09 06 03 55 04 06 13 02 |06Z0g1.0...U....| 000000f0 55 53 31 0e 30 0c 06 03 55 04 08 0c 05 54 65 78 |US1.0...U....Tex| 00000100 61 73 31 13 30 11 06 03 55 04 07 0c 0a 52 6f 75 |as1.0...U....Rou| 00000110 6e 64 20 52 6f 63 6b 31 12 30 10 06 03 55 04 0a |nd Rock1.0...U..| 00000120 0c 09 44 65 6c 6c 20 49 6e 63 2e 31 1f 30 1d 06 |..Dell Inc.1.0..| 00000130 03 55 04 03 0c 16 44 65 6c 6c 20 49 6e 63 2e 20 |.U....Dell Inc. | 00000140 50 6c 61 74 66 6f 72 6d 20 4b 65 79 30 82 01 22 |Platform Key0.."| 00000150 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 00000160 82 01 0f 00 30 82 01 0a 02 82 01 01 00 b1 20 3a |....0......... :| 00000170 40 88 eb 67 58 23 12 44 0c 20 ed b6 aa 44 19 da |@..gX#.D. ...D..| 00000180 d3 36 dc c0 6d 4b 58 81 4e 2c a9 22 5b ff c1 18 |.6..mKX.N,."[...| 00000190 b0 2e c5 9c 28 7d d9 fc 8c 70 e2 27 a7 38 ce ba |....(}...p.'.8..| 000001a0 aa a7 24 02 7f c2 ae 0a 84 ae 37 b4 00 dd f4 f1 |..$.......7.....| 000001b0 d3 53 36 40 76 19 76 64 27 dd 26 3f 0a 45 88 a1 |.S6@v.vd'.&?.E..| 000001c0 00 ef 94 e7 89 1d f4 29 d4 78 37 b2 5e da 39 ef |.......).x7.^.9.| 000001d0 b3 00 8d 56 8e bf 81 31 33 98 f5 36 15 d3 98 bb |...V...13..6....| 000001e0 39 ca 27 f3 67 8b 63 da 07 82 98 14 d0 db cd 58 |9.'.g.c........X| 000001f0 ea 44 cf c4 f7 bd 9a 48 b9 69 f1 5f 8f 54 4f 44 |.D.....H.i._.TOD| 00000200 34 99 7a 13 57 00 2c b8 33 4a cf c7 4e 0f 5d 3d |4.z.W.,.3J..N.]=| 00000210 94 e9 a2 ca a4 9f 64 04 15 f2 e2 99 ed 4a fd 3c |......d......J.<| 00000220 02 ee a3 26 7b c8 69 5f 43 c2 5f 39 0a de 24 9d |...&{.i_C._9..$.| 00000230 bf 71 9e 94 a1 de bd da f7 ce 13 42 73 a5 07 3c |.q.........Bs..<| 00000240 3e 54 75 16 53 49 88 93 17 b8 54 e4 0a ae 64 71 |>Tu.SI....T...dq| 00000250 47 8a 6f 2e ec a2 cb 70 97 96 43 37 ab ff 6f 82 |G.o....p..C7..o.| 00000260 a1 bb 64 f2 b0 5e b7 a9 63 a4 71 94 43 02 03 01 |..d..^..c.q.C...| 00000270 00 01 a3 45 30 43 30 0e 06 03 55 1d 0f 01 01 ff |...E0C0...U.....| 00000280 04 04 03 02 02 f4 30 12 06 03 55 1d 13 01 01 ff |......0...U.....| 00000290 04 08 30 06 01 01 ff 02 01 01 30 1d 06 03 55 1d |..0.......0...U.| 000002a0 0e 04 16 04 14 46 6f 90 1c 10 20 52 99 56 15 ef |.....Fo... R.V..| 000002b0 39 fd 48 18 48 cf 75 e6 a4 30 0d 06 09 2a 86 48 |9.H.H.u..0...*.H| 000002c0 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 52 f6 b6 |.............R..| 000002d0 79 e4 c9 72 b0 a1 49 69 25 ce 17 5c 6a c6 32 cf |y..r..Ii%..\j.2.| 000002e0 01 74 8a d8 29 69 c1 00 fc 12 e7 46 60 91 52 7a |.t..)i.....F`.Rz| 000002f0 33 0d c3 1f 68 7f 73 19 38 b2 ae c3 a4 ee 67 f2 |3...h.s.8.....g.| 00000300 f1 0e 87 67 ef 71 1a d9 68 71 af bf 40 b6 6e 98 |...g.q..hq..@.n.| 00000310 59 1e 52 0b 9c 96 c7 52 27 1c 6c 1e d2 89 34 83 |Y.R....R'.l...4.| 00000320 96 59 2a e2 35 7f fa d0 26 dc b9 d9 15 37 89 87 |.Y*.5...&....7..| 00000330 dc f9 30 28 77 53 f2 fe db 2e 5f 40 36 63 f5 54 |..0(wS...._@6c.T| 00000340 63 f2 0f d2 32 a3 e7 a2 79 d8 a8 d4 ff ba 26 8a |c...2...y.....&.| 00000350 df 2a 6b e1 ac d6 28 a6 26 f6 5a ca bf 60 39 12 |.*k...(.&.Z..`9.| 00000360 bb d6 ff d6 c2 ce 1f 00 e9 6b a8 7c 07 94 d3 ae |.........k.|....| 00000370 a3 b9 c0 37 aa f9 e0 f1 83 e9 52 28 92 3b b8 37 |...7......R(.;.7| 00000380 0a 0f a2 ef 7e 0b 00 31 d7 b1 40 f6 ea f5 87 1a |....~..1..@.....| 00000390 88 04 83 d9 33 f2 99 79 24 c0 2c 43 5b 42 2c 6c |....3..y$.,C[B,l| 000003a0 db 05 6c 48 23 bf 16 94 38 3e 55 1b 49 91 39 cc |..lH#...8>U.I.9.| 000003b0 b2 65 3e e8 af 15 24 45 c8 5b ad 28 3a a7 a4 88 |.e>...$E.[.(:...| 000003c0 94 8d 0a d8 4b 8d c3 6c 17 97 82 21 fc |....K..l...!.| 000003cd efivar-39/tests/machine1/annotations/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000000545061455652431600261170ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 ee 03 00 00 |....| esl[0].signature_list_size = 1006 (0x3ee) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 d2 03 00 00 |....| esl[0].signature_size = 978 0000001c esl[0].signature_header (end:0x0000001c) 0000001c ce 4d 56 70 |.MVp| esl[0].signature[0].owner = {dell} 00000020 fc 9a e3 4e 85 fc 94 96 49 d7 e4 5c |...N....I..\| 0000002c 30 82 03 be |0...| esl[0].signature[0].data (end:0x000003ee) 00000030 30 82 02 a6 a0 03 02 01 02 02 10 34 e4 c5 11 d0 |0..........4....| 00000040 dc 09 ae 4d 9c ec 51 5b 17 b1 f7 30 0d 06 09 2a |...M..Q[...0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 6b 31 0b 30 09 |.H........0k1.0.| 00000060 06 03 55 04 06 13 02 55 53 31 0e 30 0c 06 03 55 |..U....US1.0...U| 00000070 04 08 0c 05 54 65 78 61 73 31 13 30 11 06 03 55 |....Texas1.0...U| 00000080 04 07 0c 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 |....Round Rock1.| 00000090 30 10 06 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e |0...U....Dell In| 000000a0 63 2e 31 23 30 21 06 03 55 04 03 0c 1a 44 65 6c |c.1#0!..U....Del| 000000b0 6c 20 49 6e 63 2e 20 4b 65 79 20 45 78 63 68 61 |l Inc. Key Excha| 000000c0 6e 67 65 20 4b 65 79 30 1e 17 0d 31 36 30 36 30 |nge Key0...16060| 000000d0 33 31 34 32 36 30 36 5a 17 0d 31 38 30 36 30 33 |3142606Z..180603| 000000e0 31 34 33 36 30 35 5a 30 62 31 0b 30 09 06 03 55 |143605Z0b1.0...U| 000000f0 04 06 13 02 55 53 31 0e 30 0c 06 03 55 04 08 0c |....US1.0...U...| 00000100 05 54 65 78 61 73 31 13 30 11 06 03 55 04 07 0c |.Texas1.0...U...| 00000110 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 30 10 06 |.Round Rock1.0..| 00000120 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e 63 2e 31 |.U....Dell Inc.1| 00000130 1a 30 18 06 03 55 04 03 0c 11 44 65 6c 6c 20 49 |.0...U....Dell I| 00000140 6e 63 2e 20 55 45 46 49 20 44 42 30 82 01 22 30 |nc. UEFI DB0.."0| 00000150 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 |...*.H..........| 00000160 01 0f 00 30 82 01 0a 02 82 01 01 00 96 9a d2 75 |...0...........u| 00000170 f6 bc 02 cf f9 76 6a 73 61 ab 45 31 84 85 9f 99 |.....vjsa.E1....| 00000180 53 2b f8 cd 16 8b f6 5a 45 80 8f a4 2a 7e 43 e9 |S+.....ZE...*~C.| 00000190 c4 f5 8c da 91 f8 1d 66 91 d7 98 b2 40 5b 48 65 |.......f....@[He| 000001a0 86 aa e0 3f 02 bb cb b3 41 df 8f c9 41 0c e0 ed |...?....A...A...| 000001b0 b2 1a 38 cb 8d 35 0c 80 12 7d ac b2 fe 4d 31 7f |..8..5...}...M1.| 000001c0 2d 7f e4 f9 06 ef ce 9b ca f5 1c 06 af 58 6b ed |-............Xk.| 000001d0 c2 ae 52 65 ff 99 05 5d 26 2f bc ca 9b e3 19 7f |..Re...]&/......| 000001e0 d0 66 87 31 57 a1 fd 4f 16 05 e4 94 02 ed 96 45 |.f.1W..O.......E| 000001f0 e9 9f 71 cb 9a da 22 aa 9c 21 6b 4a 29 7b 2d 4a |..q..."..!kJ){-J| 00000200 31 3a 47 1f 93 8c 78 38 aa 41 fd e3 90 dc ee 2c |1:G...x8.A.....,| 00000210 21 67 d0 55 0d 4f 5c fc 0d b2 ae 83 db fb 34 5d |!g.U.O\.......4]| 00000220 09 f7 4b 80 91 08 ef 31 ac 9e e0 05 f8 55 31 b2 |..K....1.....U1.| 00000230 3d 64 50 0a f3 25 0d 67 69 73 4a 95 bf 3d 4b b2 |=dP..%.gisJ..=K.| 00000240 29 18 d1 4a 90 ca 70 da 32 3b 63 20 8d 65 fc 94 |)..J..p.2;c .e..| 00000250 8f 94 82 0b 2c d2 91 a5 1b 74 cf 4e e1 19 ad 94 |....,....t.N....| 00000260 a4 48 d0 07 23 f2 9a 47 51 bf 19 09 02 03 01 00 |.H..#..GQ.......| 00000270 01 a3 67 30 65 30 0e 06 03 55 1d 0f 01 01 ff 04 |..g0e0...U......| 00000280 04 03 02 07 80 30 13 06 03 55 1d 25 04 0c 30 0a |.....0...U.%..0.| 00000290 06 08 2b 06 01 05 05 07 03 03 30 1f 06 03 55 1d |..+.......0...U.| 000002a0 23 04 18 30 16 80 14 07 07 f4 95 10 d4 d7 7b cf |#..0..........{.| 000002b0 dd 98 63 b5 fe 3c 60 72 a0 ea 72 30 1d 06 03 55 |..c..<`r..r0...U| 000002c0 1d 0e 04 16 04 14 5d db 77 2d c8 80 66 00 55 ba |......].w-..f.U.| 000002d0 0b c1 31 88 6b b6 30 a6 39 e7 30 0d 06 09 2a 86 |..1.k.0.9.0...*.| 000002e0 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 10 aa |H...............| 000002f0 3d d6 02 26 c6 29 e6 39 f3 6d 88 d8 74 79 a4 3e |=..&.).9.m..ty.>| 00000300 0a d9 b0 b7 8b fc a0 fc 5e 55 38 65 8b 6f 31 9f |........^U8e.o1.| 00000310 51 52 da 96 ad 9a ce 00 fb 02 fe 37 11 fa 35 ed |QR.........7..5.| 00000320 43 67 e8 6e 01 17 d7 b4 f1 a3 0b af a1 96 b5 f9 |Cg.n............| 00000330 32 e5 60 80 e3 62 c4 d8 dc 49 90 fa 5c 03 c7 7c |2.`..b...I..\..|| 00000340 8c a0 c2 64 c8 a9 38 fe 5d 43 bb dc 8e 14 89 8f |...d..8.]C......| 00000350 81 d9 3b 8b 9d c5 f9 d6 09 87 bc 37 5e f0 df 72 |..;........7^..r| 00000360 a4 65 8f 75 b3 3a 1f a6 85 02 43 44 f8 0f 45 2b |.e.u.:....CD..E+| 00000370 d7 94 90 3d 1c 3c 85 72 1e b6 6e c8 6f 33 94 73 |...=.<.r..n.o3.s| 00000380 c8 ad 0a 82 db 51 b2 58 91 b7 f2 bd 13 c3 28 6a |.....Q.X......(j| 00000390 9d 8c 16 8d 90 44 b2 de 22 3f e8 13 ed 67 66 6f |.....D.."?...gfo| 000003a0 be 40 a8 b2 b5 50 05 d7 b4 2c 73 3d ec 8c eb 14 |.@...P...,s=....| 000003b0 07 1c 6e b9 72 4e cc 67 8a a8 40 89 51 f6 86 27 |..n.rN.g..@.Q..'| 000003c0 d8 9c 9a ad 81 8f c0 59 58 3c 0a 41 2f 48 22 34 |.......YX<.A/H"4| 000003d0 16 e3 26 e7 7b ae 23 22 b1 08 0f b9 10 76 e5 c5 |..&.{.#".....v..| 000003e0 b0 e0 8a 76 80 aa 1b 16 30 b8 ee c1 86 d0 |...v....0.....| 000003ee a1 59 |.Y| esl[1].signature_type = {x509_cert} 000003f0 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.....J....\+.r| 000003fe 40 06 |@.| esl[1].signature_list_size = 1600 (0x640) 00000400 00 00 |..| 00000402 00 00 00 00 |....| esl[1].signature_header_size = 0 00000406 24 06 00 00 |$...| esl[1].signature_size = 1572 0000040a esl[1].signature_header (end:0x0000040a) 0000040a bd 9a fa 77 59 03 |...wY.| esl[1].signature[0].owner = {microsoft} 00000410 32 4d bd 60 28 f4 e7 8f 78 4b |2M.`(...xK| 0000041a 30 82 06 10 30 82 |0...0.| esl[1].signature[0].data (end:0x00000a2e) 00000420 03 f8 a0 03 02 01 02 02 0a 61 08 d3 c4 00 00 00 |.........a......| 00000430 00 00 04 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |...0...*.H......| 00000440 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 13 02 |..0..1.0...U....| 00000450 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 61 73 |US1.0...U....Was| 00000460 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 |hington1.0...U..| 00000470 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 |..Redmond1.0...U| 00000480 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f |....Microsoft Co| 00000490 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 03 55 |rporation1;09..U| 000004a0 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 43 6f |...2Microsoft Co| 000004b0 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 64 20 |rporation Third | 000004c0 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c 61 63 |Party Marketplac| 000004d0 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 32 37 |e Root0...110627| 000004e0 32 31 32 32 34 35 5a 17 0d 32 36 30 36 32 37 32 |212245Z..2606272| 000004f0 31 33 32 34 35 5a 30 81 81 31 0b 30 09 06 03 55 |13245Z0..1.0...U| 00000500 04 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 |....US1.0...U...| 00000510 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 |.Washington1.0..| 00000520 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 |.U....Redmond1.0| 00000530 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 |...U....Microsof| 00000540 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 2b 30 |t Corporation1+0| 00000550 29 06 03 55 04 03 13 22 4d 69 63 72 6f 73 6f 66 |)..U..."Microsof| 00000560 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 55 45 |t Corporation UE| 00000570 46 49 20 43 41 20 32 30 31 31 30 82 01 22 30 0d |FI CA 20110.."0.| 00000580 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00000590 0f 00 30 82 01 0a 02 82 01 01 00 a5 08 6c 4c c7 |..0..........lL.| 000005a0 45 09 6a 4b 0c a4 c0 87 7f 06 75 0c 43 01 54 64 |E.jK......u.C.Td| 000005b0 e0 16 7f 07 ed 92 7d 0b b2 73 bf 0c 0a c6 4a 45 |......}..s....JE| 000005c0 61 a0 c5 16 2d 96 d3 f5 2b a0 fb 4d 49 9b 41 80 |a...-...+..MI.A.| 000005d0 90 3c b9 54 fd e6 bc d1 9d c4 a4 18 8a 7f 41 8a |.<.T..........A.| 000005e0 5c 59 83 68 32 bb 8c 47 c9 ee 71 bc 21 4f 9a 8a |\Y.h2..G..q.!O..| 000005f0 7c ff 44 3f 8d 8f 32 b2 26 48 ae 75 b5 ee c9 4c ||.D?..2.&H.u...L| 00000600 1e 4a 19 7e e4 82 9a 1d 78 77 4d 0c b0 bd f6 0f |.J.~....xwM.....| 00000610 d3 16 d3 bc fa 2b a5 51 38 5d f5 fb ba db 78 02 |.....+.Q8]....x.| 00000620 db ff ec 0a 1b 96 d5 83 b8 19 13 e9 b6 c0 7b 40 |..............{@| 00000630 7b e1 1f 28 27 c9 fa ef 56 5e 1c e6 7e 94 7e c0 |{..('...V^..~.~.| 00000640 f0 44 b2 79 39 e5 da b2 62 8b 4d bf 38 70 e2 68 |.D.y9...b.M.8p.h| 00000650 24 14 c9 33 a4 08 37 d5 58 69 5e d3 7c ed c1 04 |$..3..7.Xi^.|...| 00000660 53 08 e7 4e b0 2a 87 63 08 61 6f 63 15 59 ea b2 |S..N.*.c.aoc.Y..| 00000670 2b 79 d7 0c 61 67 8a 5b fd 5e ad 87 7f ba 86 67 |+y..ag.[.^.....g| 00000680 4f 71 58 12 22 04 22 22 ce 8b ef 54 71 00 ce 50 |OqX.".""...Tq..P| 00000690 35 58 76 95 08 ee 6a b1 a2 01 d5 02 03 01 00 01 |5Xv...j.........| 000006a0 a3 82 01 76 30 82 01 72 30 12 06 09 2b 06 01 04 |...v0..r0...+...| 000006b0 01 82 37 15 01 04 05 02 03 01 00 01 30 23 06 09 |..7.........0#..| 000006c0 2b 06 01 04 01 82 37 15 02 04 16 04 14 f8 c1 6b |+.....7........k| 000006d0 b7 7f 77 53 4a f3 25 37 1d 4e a1 26 7b 0f 20 70 |..wSJ.%7.N.&{. p| 000006e0 80 30 1d 06 03 55 1d 0e 04 16 04 14 13 ad bf 43 |.0...U.........C| 000006f0 09 bd 82 70 9c 8c d5 4f 31 6e d5 22 98 8a 1b d4 |...p...O1n."....| 00000700 30 19 06 09 2b 06 01 04 01 82 37 14 02 04 0c 1e |0...+.....7.....| 00000710 0a 00 53 00 75 00 62 00 43 00 41 30 0b 06 03 55 |..S.u.b.C.A0...U| 00000720 1d 0f 04 04 03 02 01 86 30 0f 06 03 55 1d 13 01 |........0...U...| 00000730 01 ff 04 05 30 03 01 01 ff 30 1f 06 03 55 1d 23 |....0....0...U.#| 00000740 04 18 30 16 80 14 45 66 52 43 e1 7e 58 11 bf d6 |..0...EfRC.~X...| 00000750 4e 9e 23 55 08 3b 3a 22 6a a8 30 5c 06 03 55 1d |N.#U.;:"j.0\..U.| 00000760 1f 04 55 30 53 30 51 a0 4f a0 4d 86 4b 68 74 74 |..U0S0Q.O.M.Khtt| 00000770 70 3a 2f 2f 63 72 6c 2e 6d 69 63 72 6f 73 6f 66 |p://crl.microsof| 00000780 74 2e 63 6f 6d 2f 70 6b 69 2f 63 72 6c 2f 70 72 |t.com/pki/crl/pr| 00000790 6f 64 75 63 74 73 2f 4d 69 63 43 6f 72 54 68 69 |oducts/MicCorThi| 000007a0 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 |ParMarRoo_2010-1| 000007b0 30 2d 30 35 2e 63 72 6c 30 60 06 08 2b 06 01 05 |0-05.crl0`..+...| 000007c0 05 07 01 01 04 54 30 52 30 50 06 08 2b 06 01 05 |.....T0R0P..+...| 000007d0 05 07 30 02 86 44 68 74 74 70 3a 2f 2f 77 77 77 |..0..Dhttp://www| 000007e0 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 |.microsoft.com/p| 000007f0 6b 69 2f 63 65 72 74 73 2f 4d 69 63 43 6f 72 54 |ki/certs/MicCorT| 00000800 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 |hiParMarRoo_2010| 00000810 2d 31 30 2d 30 35 2e 63 72 74 30 0d 06 09 2a 86 |-10-05.crt0...*.| 00000820 48 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 35 08 |H.............5.| 00000830 42 ff 30 cc ce f7 76 0c ad 10 68 58 35 29 46 32 |B.0...v...hX5)F2| 00000840 76 27 7c ef 12 41 27 42 1b 4a aa 6d 81 38 48 59 |v'|..A'B.J.m.8HY| 00000850 13 55 f3 e9 58 34 a6 16 0b 82 aa 5d ad 82 da 80 |.U..X4.....]....| 00000860 83 41 06 8f b4 1d f2 03 b9 f3 1a 5d 1b f1 50 90 |.A.........]..P.| 00000870 f9 b3 55 84 42 28 1c 20 bd b2 ae 51 14 c5 c0 ac |..U.B(. ...Q....| 00000880 97 95 21 1c 90 db 0f fc 77 9e 95 73 91 88 ca bd |..!.....w..s....| 00000890 bd 52 b9 05 50 0d df 57 9e a0 61 ed 0d e5 6d 25 |.R..P..W..a...m%| 000008a0 d9 40 0f 17 40 c8 ce a3 4a c2 4d af 9a 12 1d 08 |.@..@...J.M.....| 000008b0 54 8f bd c7 bc b9 2b 3d 49 2b 1f 32 fc 6a 21 69 |T.....+=I+.2.j!i| 000008c0 4f 9b c8 7e 42 34 fc 36 06 17 8b 8f 20 40 c0 b3 |O..~B4.6.... @..| 000008d0 9a 25 75 27 cd c9 03 a3 f6 5d d1 e7 36 54 7a b9 |.%u'.....]..6Tz.| 000008e0 50 b5 d3 12 d1 07 bf bb 74 df dc 1e 8f 80 d5 ed |P.......t.......| 000008f0 18 f4 2f 14 16 6b 2f de 66 8c b0 23 e5 c7 84 d8 |../..k/.f..#....| 00000900 ed ea c1 33 82 ad 56 4b 18 2d f1 68 95 07 cd cf |...3..VK.-.h....| 00000910 f0 72 f0 ae bb dd 86 85 98 2c 21 4c 33 2b f0 0f |.r.......,!L3+..| 00000920 4a f0 68 87 b5 92 55 32 75 a1 6a 82 6a 3c a3 25 |J.h...U2u.j.j<.%| 00000930 11 a4 ed ad d7 04 ae cb d8 40 59 a0 84 d1 95 4c |.........@Y....L| 00000940 62 91 22 1a 74 1d 8c 3d 47 0e 44 a6 e4 b0 9b 34 |b.".t..=G.D....4| 00000950 35 b1 fa b6 53 a8 2c 81 ec a4 05 71 c8 9d b8 ba |5...S.,....q....| 00000960 e8 1b 44 66 e4 47 54 0e 8e 56 7f b3 9f 16 98 b2 |..Df.GT..V......| 00000970 86 d0 68 3e 90 23 b5 2f 5e 8f 50 85 8d c6 8d 82 |..h>.#./^.P.....| 00000980 5f 41 a1 f4 2e 0d e0 99 d2 6c 75 e4 b6 69 b5 21 |_A.......lu..i.!| 00000990 86 fa 07 d1 f6 e2 4d d1 da ad 2c 77 53 1e 25 32 |......M...,wS.%2| 000009a0 37 c7 6c 52 72 95 86 b0 f1 35 61 6a 19 f5 b2 3b |7.lRr....5aj...;| 000009b0 81 50 56 a6 32 2d fe a2 89 f9 42 86 27 18 55 a1 |.PV.2-....B.'.U.| 000009c0 82 ca 5a 9b f8 30 98 54 14 a6 47 96 25 2f c8 26 |..Z..0.T..G.%/.&| 000009d0 e4 41 94 1a 5c 02 3f e5 96 e3 85 5b 3c 3e 3f bb |.A..\.?....[<>?.| 000009e0 47 16 72 55 e2 25 22 b1 d9 7b e7 03 06 2a a3 f7 |G.rU.%"..{...*..| 000009f0 1e 90 46 c3 00 0d d6 19 89 e3 0e 35 27 62 03 71 |..F........5'b.q| 00000a00 15 a6 ef d0 27 a0 a0 59 37 60 f8 38 94 b8 e0 78 |....'..Y7`.8...x| 00000a10 70 f8 ba 4c 86 87 94 f6 e0 ae 02 45 ee 65 c2 b6 |p..L.......E.e..| 00000a20 a3 7e 69 16 75 07 92 9b f5 a6 bc 59 83 58 |.~i.u......Y.X| 00000a2e a1 59 |.Y| esl[2].signature_type = {x509_cert} 00000a30 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.....J....\+.r| 00000a3e 07 06 |..| esl[2].signature_list_size = 1543 (0x607) 00000a40 00 00 |..| 00000a42 00 00 00 00 |....| esl[2].signature_header_size = 0 00000a46 eb 05 00 00 |....| esl[2].signature_size = 1515 00000a4a esl[2].signature_header (end:0x00000a4a) 00000a4a bd 9a fa 77 59 03 |...wY.| esl[2].signature[0].owner = {microsoft} 00000a50 32 4d bd 60 28 f4 e7 8f 78 4b |2M.`(...xK| 00000a5a 30 82 05 d7 30 82 |0...0.| esl[2].signature[0].data (end:0x00001035) 00000a60 03 bf a0 03 02 01 02 02 0a 61 07 76 56 00 00 00 |.........a.vV...| 00000a70 00 00 08 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |...0...*.H......| 00000a80 05 00 30 81 88 31 0b 30 09 06 03 55 04 06 13 02 |..0..1.0...U....| 00000a90 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 61 73 |US1.0...U....Was| 00000aa0 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 |hington1.0...U..| 00000ab0 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 |..Redmond1.0...U| 00000ac0 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f |....Microsoft Co| 00000ad0 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 06 03 55 |rporation1200..U| 00000ae0 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 20 52 6f |...)Microsoft Ro| 00000af0 6f 74 20 43 65 72 74 69 66 69 63 61 74 65 20 41 |ot Certificate A| 00000b00 75 74 68 6f 72 69 74 79 20 32 30 31 30 30 1e 17 |uthority 20100..| 00000b10 0d 31 31 31 30 31 39 31 38 34 31 34 32 5a 17 0d |.111019184142Z..| 00000b20 32 36 31 30 31 39 31 38 35 31 34 32 5a 30 81 84 |261019185142Z0..| 00000b30 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13 30 |1.0...U....US1.0| 00000b40 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e 67 74 |...U....Washingt| 00000b50 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 65 64 |on1.0...U....Red| 00000b60 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d |mond1.0...U....M| 00000b70 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 |icrosoft Corpora| 00000b80 74 69 6f 6e 31 2e 30 2c 06 03 55 04 03 13 25 4d |tion1.0,..U...%M| 00000b90 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f 77 73 |icrosoft Windows| 00000ba0 20 50 72 6f 64 75 63 74 69 6f 6e 20 50 43 41 20 | Production PCA | 00000bb0 32 30 31 31 30 82 01 22 30 0d 06 09 2a 86 48 86 |20110.."0...*.H.| 00000bc0 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a |............0...| 00000bd0 02 82 01 01 00 dd 0c bb a2 e4 2e 09 e3 e7 c5 f7 |................| 00000be0 96 69 bc 00 21 bd 69 33 33 ef ad 04 cb 54 80 ee |.i..!.i33....T..| 00000bf0 06 83 bb c5 20 84 d9 f7 d2 8b f3 38 b0 ab a4 ad |.... ......8....| 00000c00 2d 7c 62 79 05 ff e3 4a 3f 04 35 20 70 e3 c4 e7 |-|by...J?.5 p...| 00000c10 6b e0 9c c0 36 75 e9 8a 31 dd 8d 70 e5 dc 37 b5 |k...6u..1..p..7.| 00000c20 74 46 96 28 5b 87 60 23 2c bf dc 47 a5 67 f7 51 |tF.([.`#,..G.g.Q| 00000c30 27 9e 72 eb 07 a6 c9 b9 1e 3b 53 35 7c e5 d3 ec |'.r......;S5|...| 00000c40 27 b9 87 1c fe b9 c9 23 09 6f a8 46 91 c1 6e 96 |'......#.o.F..n.| 00000c50 3c 41 d3 cb a3 3f 5d 02 6a 4d ec 69 1f 25 28 5c |http://www.mi| 00000df0 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f |crosoft.com/pki/| 00000e00 63 65 72 74 73 2f 4d 69 63 52 6f 6f 43 65 72 41 |certs/MicRooCerA| 00000e10 75 74 5f 32 30 31 30 2d 30 36 2d 32 33 2e 63 72 |ut_2010-06-23.cr| 00000e20 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 |t0...*.H........| 00000e30 03 82 02 01 00 14 fc 7c 71 51 a5 79 c2 6e b2 ef |.......|qQ.y.n..| 00000e40 39 3e bc 3c 52 0f 6e 2b 3f 10 13 73 fe a8 68 d0 |9>.| 00000f10 ab 5c 60 ec df 03 10 a8 d3 09 e9 f4 f6 96 85 b6 |.\`.............| 00000f20 7f 51 88 66 47 19 8d a2 b0 12 3d 81 2a 68 05 77 |.Q.fG.....=.*h.w| 00000f30 bb 91 4c 62 7b b6 c1 07 c7 ba 7a 87 34 03 0e 4b |..Lb{.....z.4..K| 00000f40 62 7a 99 e9 ca fc ce 4a 37 c9 2d a4 57 7c 1c fe |bz.....J7.-.W|..| 00000f50 3d dc b8 0f 5a fa d6 c4 b3 02 85 02 3a ea b3 d9 |=...Z.......:...| 00000f60 6e e4 69 21 37 de 81 d1 f6 75 19 05 67 d3 93 57 |n.i!7....u..g..W| 00000f70 5e 29 1b 39 c8 ee 2d e1 cd e4 45 73 5b d0 d2 ce |^).9..-...Es[...| 00000f80 7a ab 16 19 82 46 58 d0 5e 9d 81 b3 67 af 6c 35 |z....FX.^...g.l5| 00000f90 f2 bc e5 3f 24 e2 35 a2 0a 75 06 f6 18 56 99 d4 |...?$.5..u...V..| 00000fa0 78 2c d1 05 1b eb d0 88 01 9d aa 10 f1 05 df ba |x,..............| 00000fb0 7e 2c 63 b7 06 9b 23 21 c4 f9 78 6c e2 58 17 06 |~,c...#!..xl.X..| 00000fc0 36 2b 91 12 03 cc a4 d9 f2 2d ba f9 94 9d 40 ed |6+.......-....@.| 00000fd0 18 45 f1 ce 8a 5c 6b 3e ab 03 d3 70 18 2a 0a 6a |.E...\k>...p.*.j| 00000fe0 e0 5f 47 d1 d5 63 0a 32 f2 af d7 36 1f 2a 70 5a |._G..c.2...6.*pZ| 00000ff0 e5 42 59 08 71 4b 57 ba 7e 83 81 f0 21 3c f4 1c |.BY.qKW.~...!<..| 00001000 c1 c5 b9 90 93 0e 88 45 93 86 e9 b1 20 99 be 98 |.......E.... ...| 00001010 cb c5 95 a4 5d 62 d6 a0 63 08 20 bd 75 10 77 7d |....]b..c. .u.w}| 00001020 3d f3 45 b9 9f 97 9f cb 57 80 6f 33 a9 04 cf 77 |=.E.....W.o3...w| 00001030 a4 62 1c 59 7e |.b.Y~| 00001035 efivar-39/tests/machine1/annotations/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000545061455652431600273220ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 ee 03 00 00 |....| esl[0].signature_list_size = 1006 (0x3ee) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 d2 03 00 00 |....| esl[0].signature_size = 978 0000001c esl[0].signature_header (end:0x0000001c) 0000001c ce 4d 56 70 |.MVp| esl[0].signature[0].owner = {dell} 00000020 fc 9a e3 4e 85 fc 94 96 49 d7 e4 5c |...N....I..\| 0000002c 30 82 03 be |0...| esl[0].signature[0].data (end:0x000003ee) 00000030 30 82 02 a6 a0 03 02 01 02 02 10 34 e4 c5 11 d0 |0..........4....| 00000040 dc 09 ae 4d 9c ec 51 5b 17 b1 f7 30 0d 06 09 2a |...M..Q[...0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 6b 31 0b 30 09 |.H........0k1.0.| 00000060 06 03 55 04 06 13 02 55 53 31 0e 30 0c 06 03 55 |..U....US1.0...U| 00000070 04 08 0c 05 54 65 78 61 73 31 13 30 11 06 03 55 |....Texas1.0...U| 00000080 04 07 0c 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 |....Round Rock1.| 00000090 30 10 06 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e |0...U....Dell In| 000000a0 63 2e 31 23 30 21 06 03 55 04 03 0c 1a 44 65 6c |c.1#0!..U....Del| 000000b0 6c 20 49 6e 63 2e 20 4b 65 79 20 45 78 63 68 61 |l Inc. Key Excha| 000000c0 6e 67 65 20 4b 65 79 30 1e 17 0d 31 36 30 36 30 |nge Key0...16060| 000000d0 33 31 34 32 36 30 36 5a 17 0d 31 38 30 36 30 33 |3142606Z..180603| 000000e0 31 34 33 36 30 35 5a 30 62 31 0b 30 09 06 03 55 |143605Z0b1.0...U| 000000f0 04 06 13 02 55 53 31 0e 30 0c 06 03 55 04 08 0c |....US1.0...U...| 00000100 05 54 65 78 61 73 31 13 30 11 06 03 55 04 07 0c |.Texas1.0...U...| 00000110 0a 52 6f 75 6e 64 20 52 6f 63 6b 31 12 30 10 06 |.Round Rock1.0..| 00000120 03 55 04 0a 0c 09 44 65 6c 6c 20 49 6e 63 2e 31 |.U....Dell Inc.1| 00000130 1a 30 18 06 03 55 04 03 0c 11 44 65 6c 6c 20 49 |.0...U....Dell I| 00000140 6e 63 2e 20 55 45 46 49 20 44 42 30 82 01 22 30 |nc. UEFI DB0.."0| 00000150 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 |...*.H..........| 00000160 01 0f 00 30 82 01 0a 02 82 01 01 00 96 9a d2 75 |...0...........u| 00000170 f6 bc 02 cf f9 76 6a 73 61 ab 45 31 84 85 9f 99 |.....vjsa.E1....| 00000180 53 2b f8 cd 16 8b f6 5a 45 80 8f a4 2a 7e 43 e9 |S+.....ZE...*~C.| 00000190 c4 f5 8c da 91 f8 1d 66 91 d7 98 b2 40 5b 48 65 |.......f....@[He| 000001a0 86 aa e0 3f 02 bb cb b3 41 df 8f c9 41 0c e0 ed |...?....A...A...| 000001b0 b2 1a 38 cb 8d 35 0c 80 12 7d ac b2 fe 4d 31 7f |..8..5...}...M1.| 000001c0 2d 7f e4 f9 06 ef ce 9b ca f5 1c 06 af 58 6b ed |-............Xk.| 000001d0 c2 ae 52 65 ff 99 05 5d 26 2f bc ca 9b e3 19 7f |..Re...]&/......| 000001e0 d0 66 87 31 57 a1 fd 4f 16 05 e4 94 02 ed 96 45 |.f.1W..O.......E| 000001f0 e9 9f 71 cb 9a da 22 aa 9c 21 6b 4a 29 7b 2d 4a |..q..."..!kJ){-J| 00000200 31 3a 47 1f 93 8c 78 38 aa 41 fd e3 90 dc ee 2c |1:G...x8.A.....,| 00000210 21 67 d0 55 0d 4f 5c fc 0d b2 ae 83 db fb 34 5d |!g.U.O\.......4]| 00000220 09 f7 4b 80 91 08 ef 31 ac 9e e0 05 f8 55 31 b2 |..K....1.....U1.| 00000230 3d 64 50 0a f3 25 0d 67 69 73 4a 95 bf 3d 4b b2 |=dP..%.gisJ..=K.| 00000240 29 18 d1 4a 90 ca 70 da 32 3b 63 20 8d 65 fc 94 |)..J..p.2;c .e..| 00000250 8f 94 82 0b 2c d2 91 a5 1b 74 cf 4e e1 19 ad 94 |....,....t.N....| 00000260 a4 48 d0 07 23 f2 9a 47 51 bf 19 09 02 03 01 00 |.H..#..GQ.......| 00000270 01 a3 67 30 65 30 0e 06 03 55 1d 0f 01 01 ff 04 |..g0e0...U......| 00000280 04 03 02 07 80 30 13 06 03 55 1d 25 04 0c 30 0a |.....0...U.%..0.| 00000290 06 08 2b 06 01 05 05 07 03 03 30 1f 06 03 55 1d |..+.......0...U.| 000002a0 23 04 18 30 16 80 14 07 07 f4 95 10 d4 d7 7b cf |#..0..........{.| 000002b0 dd 98 63 b5 fe 3c 60 72 a0 ea 72 30 1d 06 03 55 |..c..<`r..r0...U| 000002c0 1d 0e 04 16 04 14 5d db 77 2d c8 80 66 00 55 ba |......].w-..f.U.| 000002d0 0b c1 31 88 6b b6 30 a6 39 e7 30 0d 06 09 2a 86 |..1.k.0.9.0...*.| 000002e0 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 10 aa |H...............| 000002f0 3d d6 02 26 c6 29 e6 39 f3 6d 88 d8 74 79 a4 3e |=..&.).9.m..ty.>| 00000300 0a d9 b0 b7 8b fc a0 fc 5e 55 38 65 8b 6f 31 9f |........^U8e.o1.| 00000310 51 52 da 96 ad 9a ce 00 fb 02 fe 37 11 fa 35 ed |QR.........7..5.| 00000320 43 67 e8 6e 01 17 d7 b4 f1 a3 0b af a1 96 b5 f9 |Cg.n............| 00000330 32 e5 60 80 e3 62 c4 d8 dc 49 90 fa 5c 03 c7 7c |2.`..b...I..\..|| 00000340 8c a0 c2 64 c8 a9 38 fe 5d 43 bb dc 8e 14 89 8f |...d..8.]C......| 00000350 81 d9 3b 8b 9d c5 f9 d6 09 87 bc 37 5e f0 df 72 |..;........7^..r| 00000360 a4 65 8f 75 b3 3a 1f a6 85 02 43 44 f8 0f 45 2b |.e.u.:....CD..E+| 00000370 d7 94 90 3d 1c 3c 85 72 1e b6 6e c8 6f 33 94 73 |...=.<.r..n.o3.s| 00000380 c8 ad 0a 82 db 51 b2 58 91 b7 f2 bd 13 c3 28 6a |.....Q.X......(j| 00000390 9d 8c 16 8d 90 44 b2 de 22 3f e8 13 ed 67 66 6f |.....D.."?...gfo| 000003a0 be 40 a8 b2 b5 50 05 d7 b4 2c 73 3d ec 8c eb 14 |.@...P...,s=....| 000003b0 07 1c 6e b9 72 4e cc 67 8a a8 40 89 51 f6 86 27 |..n.rN.g..@.Q..'| 000003c0 d8 9c 9a ad 81 8f c0 59 58 3c 0a 41 2f 48 22 34 |.......YX<.A/H"4| 000003d0 16 e3 26 e7 7b ae 23 22 b1 08 0f b9 10 76 e5 c5 |..&.{.#".....v..| 000003e0 b0 e0 8a 76 80 aa 1b 16 30 b8 ee c1 86 d0 |...v....0.....| 000003ee a1 59 |.Y| esl[1].signature_type = {x509_cert} 000003f0 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.....J....\+.r| 000003fe 40 06 |@.| esl[1].signature_list_size = 1600 (0x640) 00000400 00 00 |..| 00000402 00 00 00 00 |....| esl[1].signature_header_size = 0 00000406 24 06 00 00 |$...| esl[1].signature_size = 1572 0000040a esl[1].signature_header (end:0x0000040a) 0000040a bd 9a fa 77 59 03 |...wY.| esl[1].signature[0].owner = {microsoft} 00000410 32 4d bd 60 28 f4 e7 8f 78 4b |2M.`(...xK| 0000041a 30 82 06 10 30 82 |0...0.| esl[1].signature[0].data (end:0x00000a2e) 00000420 03 f8 a0 03 02 01 02 02 0a 61 08 d3 c4 00 00 00 |.........a......| 00000430 00 00 04 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |...0...*.H......| 00000440 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 13 02 |..0..1.0...U....| 00000450 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 61 73 |US1.0...U....Was| 00000460 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 |hington1.0...U..| 00000470 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 |..Redmond1.0...U| 00000480 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f |....Microsoft Co| 00000490 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 03 55 |rporation1;09..U| 000004a0 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 43 6f |...2Microsoft Co| 000004b0 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 64 20 |rporation Third | 000004c0 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c 61 63 |Party Marketplac| 000004d0 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 32 37 |e Root0...110627| 000004e0 32 31 32 32 34 35 5a 17 0d 32 36 30 36 32 37 32 |212245Z..2606272| 000004f0 31 33 32 34 35 5a 30 81 81 31 0b 30 09 06 03 55 |13245Z0..1.0...U| 00000500 04 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 |....US1.0...U...| 00000510 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 |.Washington1.0..| 00000520 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 |.U....Redmond1.0| 00000530 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 |...U....Microsof| 00000540 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 2b 30 |t Corporation1+0| 00000550 29 06 03 55 04 03 13 22 4d 69 63 72 6f 73 6f 66 |)..U..."Microsof| 00000560 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 55 45 |t Corporation UE| 00000570 46 49 20 43 41 20 32 30 31 31 30 82 01 22 30 0d |FI CA 20110.."0.| 00000580 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00000590 0f 00 30 82 01 0a 02 82 01 01 00 a5 08 6c 4c c7 |..0..........lL.| 000005a0 45 09 6a 4b 0c a4 c0 87 7f 06 75 0c 43 01 54 64 |E.jK......u.C.Td| 000005b0 e0 16 7f 07 ed 92 7d 0b b2 73 bf 0c 0a c6 4a 45 |......}..s....JE| 000005c0 61 a0 c5 16 2d 96 d3 f5 2b a0 fb 4d 49 9b 41 80 |a...-...+..MI.A.| 000005d0 90 3c b9 54 fd e6 bc d1 9d c4 a4 18 8a 7f 41 8a |.<.T..........A.| 000005e0 5c 59 83 68 32 bb 8c 47 c9 ee 71 bc 21 4f 9a 8a |\Y.h2..G..q.!O..| 000005f0 7c ff 44 3f 8d 8f 32 b2 26 48 ae 75 b5 ee c9 4c ||.D?..2.&H.u...L| 00000600 1e 4a 19 7e e4 82 9a 1d 78 77 4d 0c b0 bd f6 0f |.J.~....xwM.....| 00000610 d3 16 d3 bc fa 2b a5 51 38 5d f5 fb ba db 78 02 |.....+.Q8]....x.| 00000620 db ff ec 0a 1b 96 d5 83 b8 19 13 e9 b6 c0 7b 40 |..............{@| 00000630 7b e1 1f 28 27 c9 fa ef 56 5e 1c e6 7e 94 7e c0 |{..('...V^..~.~.| 00000640 f0 44 b2 79 39 e5 da b2 62 8b 4d bf 38 70 e2 68 |.D.y9...b.M.8p.h| 00000650 24 14 c9 33 a4 08 37 d5 58 69 5e d3 7c ed c1 04 |$..3..7.Xi^.|...| 00000660 53 08 e7 4e b0 2a 87 63 08 61 6f 63 15 59 ea b2 |S..N.*.c.aoc.Y..| 00000670 2b 79 d7 0c 61 67 8a 5b fd 5e ad 87 7f ba 86 67 |+y..ag.[.^.....g| 00000680 4f 71 58 12 22 04 22 22 ce 8b ef 54 71 00 ce 50 |OqX.".""...Tq..P| 00000690 35 58 76 95 08 ee 6a b1 a2 01 d5 02 03 01 00 01 |5Xv...j.........| 000006a0 a3 82 01 76 30 82 01 72 30 12 06 09 2b 06 01 04 |...v0..r0...+...| 000006b0 01 82 37 15 01 04 05 02 03 01 00 01 30 23 06 09 |..7.........0#..| 000006c0 2b 06 01 04 01 82 37 15 02 04 16 04 14 f8 c1 6b |+.....7........k| 000006d0 b7 7f 77 53 4a f3 25 37 1d 4e a1 26 7b 0f 20 70 |..wSJ.%7.N.&{. p| 000006e0 80 30 1d 06 03 55 1d 0e 04 16 04 14 13 ad bf 43 |.0...U.........C| 000006f0 09 bd 82 70 9c 8c d5 4f 31 6e d5 22 98 8a 1b d4 |...p...O1n."....| 00000700 30 19 06 09 2b 06 01 04 01 82 37 14 02 04 0c 1e |0...+.....7.....| 00000710 0a 00 53 00 75 00 62 00 43 00 41 30 0b 06 03 55 |..S.u.b.C.A0...U| 00000720 1d 0f 04 04 03 02 01 86 30 0f 06 03 55 1d 13 01 |........0...U...| 00000730 01 ff 04 05 30 03 01 01 ff 30 1f 06 03 55 1d 23 |....0....0...U.#| 00000740 04 18 30 16 80 14 45 66 52 43 e1 7e 58 11 bf d6 |..0...EfRC.~X...| 00000750 4e 9e 23 55 08 3b 3a 22 6a a8 30 5c 06 03 55 1d |N.#U.;:"j.0\..U.| 00000760 1f 04 55 30 53 30 51 a0 4f a0 4d 86 4b 68 74 74 |..U0S0Q.O.M.Khtt| 00000770 70 3a 2f 2f 63 72 6c 2e 6d 69 63 72 6f 73 6f 66 |p://crl.microsof| 00000780 74 2e 63 6f 6d 2f 70 6b 69 2f 63 72 6c 2f 70 72 |t.com/pki/crl/pr| 00000790 6f 64 75 63 74 73 2f 4d 69 63 43 6f 72 54 68 69 |oducts/MicCorThi| 000007a0 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 |ParMarRoo_2010-1| 000007b0 30 2d 30 35 2e 63 72 6c 30 60 06 08 2b 06 01 05 |0-05.crl0`..+...| 000007c0 05 07 01 01 04 54 30 52 30 50 06 08 2b 06 01 05 |.....T0R0P..+...| 000007d0 05 07 30 02 86 44 68 74 74 70 3a 2f 2f 77 77 77 |..0..Dhttp://www| 000007e0 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 |.microsoft.com/p| 000007f0 6b 69 2f 63 65 72 74 73 2f 4d 69 63 43 6f 72 54 |ki/certs/MicCorT| 00000800 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 |hiParMarRoo_2010| 00000810 2d 31 30 2d 30 35 2e 63 72 74 30 0d 06 09 2a 86 |-10-05.crt0...*.| 00000820 48 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 35 08 |H.............5.| 00000830 42 ff 30 cc ce f7 76 0c ad 10 68 58 35 29 46 32 |B.0...v...hX5)F2| 00000840 76 27 7c ef 12 41 27 42 1b 4a aa 6d 81 38 48 59 |v'|..A'B.J.m.8HY| 00000850 13 55 f3 e9 58 34 a6 16 0b 82 aa 5d ad 82 da 80 |.U..X4.....]....| 00000860 83 41 06 8f b4 1d f2 03 b9 f3 1a 5d 1b f1 50 90 |.A.........]..P.| 00000870 f9 b3 55 84 42 28 1c 20 bd b2 ae 51 14 c5 c0 ac |..U.B(. ...Q....| 00000880 97 95 21 1c 90 db 0f fc 77 9e 95 73 91 88 ca bd |..!.....w..s....| 00000890 bd 52 b9 05 50 0d df 57 9e a0 61 ed 0d e5 6d 25 |.R..P..W..a...m%| 000008a0 d9 40 0f 17 40 c8 ce a3 4a c2 4d af 9a 12 1d 08 |.@..@...J.M.....| 000008b0 54 8f bd c7 bc b9 2b 3d 49 2b 1f 32 fc 6a 21 69 |T.....+=I+.2.j!i| 000008c0 4f 9b c8 7e 42 34 fc 36 06 17 8b 8f 20 40 c0 b3 |O..~B4.6.... @..| 000008d0 9a 25 75 27 cd c9 03 a3 f6 5d d1 e7 36 54 7a b9 |.%u'.....]..6Tz.| 000008e0 50 b5 d3 12 d1 07 bf bb 74 df dc 1e 8f 80 d5 ed |P.......t.......| 000008f0 18 f4 2f 14 16 6b 2f de 66 8c b0 23 e5 c7 84 d8 |../..k/.f..#....| 00000900 ed ea c1 33 82 ad 56 4b 18 2d f1 68 95 07 cd cf |...3..VK.-.h....| 00000910 f0 72 f0 ae bb dd 86 85 98 2c 21 4c 33 2b f0 0f |.r.......,!L3+..| 00000920 4a f0 68 87 b5 92 55 32 75 a1 6a 82 6a 3c a3 25 |J.h...U2u.j.j<.%| 00000930 11 a4 ed ad d7 04 ae cb d8 40 59 a0 84 d1 95 4c |.........@Y....L| 00000940 62 91 22 1a 74 1d 8c 3d 47 0e 44 a6 e4 b0 9b 34 |b.".t..=G.D....4| 00000950 35 b1 fa b6 53 a8 2c 81 ec a4 05 71 c8 9d b8 ba |5...S.,....q....| 00000960 e8 1b 44 66 e4 47 54 0e 8e 56 7f b3 9f 16 98 b2 |..Df.GT..V......| 00000970 86 d0 68 3e 90 23 b5 2f 5e 8f 50 85 8d c6 8d 82 |..h>.#./^.P.....| 00000980 5f 41 a1 f4 2e 0d e0 99 d2 6c 75 e4 b6 69 b5 21 |_A.......lu..i.!| 00000990 86 fa 07 d1 f6 e2 4d d1 da ad 2c 77 53 1e 25 32 |......M...,wS.%2| 000009a0 37 c7 6c 52 72 95 86 b0 f1 35 61 6a 19 f5 b2 3b |7.lRr....5aj...;| 000009b0 81 50 56 a6 32 2d fe a2 89 f9 42 86 27 18 55 a1 |.PV.2-....B.'.U.| 000009c0 82 ca 5a 9b f8 30 98 54 14 a6 47 96 25 2f c8 26 |..Z..0.T..G.%/.&| 000009d0 e4 41 94 1a 5c 02 3f e5 96 e3 85 5b 3c 3e 3f bb |.A..\.?....[<>?.| 000009e0 47 16 72 55 e2 25 22 b1 d9 7b e7 03 06 2a a3 f7 |G.rU.%"..{...*..| 000009f0 1e 90 46 c3 00 0d d6 19 89 e3 0e 35 27 62 03 71 |..F........5'b.q| 00000a00 15 a6 ef d0 27 a0 a0 59 37 60 f8 38 94 b8 e0 78 |....'..Y7`.8...x| 00000a10 70 f8 ba 4c 86 87 94 f6 e0 ae 02 45 ee 65 c2 b6 |p..L.......E.e..| 00000a20 a3 7e 69 16 75 07 92 9b f5 a6 bc 59 83 58 |.~i.u......Y.X| 00000a2e a1 59 |.Y| esl[2].signature_type = {x509_cert} 00000a30 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.....J....\+.r| 00000a3e 07 06 |..| esl[2].signature_list_size = 1543 (0x607) 00000a40 00 00 |..| 00000a42 00 00 00 00 |....| esl[2].signature_header_size = 0 00000a46 eb 05 00 00 |....| esl[2].signature_size = 1515 00000a4a esl[2].signature_header (end:0x00000a4a) 00000a4a bd 9a fa 77 59 03 |...wY.| esl[2].signature[0].owner = {microsoft} 00000a50 32 4d bd 60 28 f4 e7 8f 78 4b |2M.`(...xK| 00000a5a 30 82 05 d7 30 82 |0...0.| esl[2].signature[0].data (end:0x00001035) 00000a60 03 bf a0 03 02 01 02 02 0a 61 07 76 56 00 00 00 |.........a.vV...| 00000a70 00 00 08 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |...0...*.H......| 00000a80 05 00 30 81 88 31 0b 30 09 06 03 55 04 06 13 02 |..0..1.0...U....| 00000a90 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 61 73 |US1.0...U....Was| 00000aa0 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 |hington1.0...U..| 00000ab0 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 |..Redmond1.0...U| 00000ac0 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f |....Microsoft Co| 00000ad0 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 06 03 55 |rporation1200..U| 00000ae0 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 20 52 6f |...)Microsoft Ro| 00000af0 6f 74 20 43 65 72 74 69 66 69 63 61 74 65 20 41 |ot Certificate A| 00000b00 75 74 68 6f 72 69 74 79 20 32 30 31 30 30 1e 17 |uthority 20100..| 00000b10 0d 31 31 31 30 31 39 31 38 34 31 34 32 5a 17 0d |.111019184142Z..| 00000b20 32 36 31 30 31 39 31 38 35 31 34 32 5a 30 81 84 |261019185142Z0..| 00000b30 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13 30 |1.0...U....US1.0| 00000b40 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e 67 74 |...U....Washingt| 00000b50 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 65 64 |on1.0...U....Red| 00000b60 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d |mond1.0...U....M| 00000b70 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 |icrosoft Corpora| 00000b80 74 69 6f 6e 31 2e 30 2c 06 03 55 04 03 13 25 4d |tion1.0,..U...%M| 00000b90 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f 77 73 |icrosoft Windows| 00000ba0 20 50 72 6f 64 75 63 74 69 6f 6e 20 50 43 41 20 | Production PCA | 00000bb0 32 30 31 31 30 82 01 22 30 0d 06 09 2a 86 48 86 |20110.."0...*.H.| 00000bc0 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a |............0...| 00000bd0 02 82 01 01 00 dd 0c bb a2 e4 2e 09 e3 e7 c5 f7 |................| 00000be0 96 69 bc 00 21 bd 69 33 33 ef ad 04 cb 54 80 ee |.i..!.i33....T..| 00000bf0 06 83 bb c5 20 84 d9 f7 d2 8b f3 38 b0 ab a4 ad |.... ......8....| 00000c00 2d 7c 62 79 05 ff e3 4a 3f 04 35 20 70 e3 c4 e7 |-|by...J?.5 p...| 00000c10 6b e0 9c c0 36 75 e9 8a 31 dd 8d 70 e5 dc 37 b5 |k...6u..1..p..7.| 00000c20 74 46 96 28 5b 87 60 23 2c bf dc 47 a5 67 f7 51 |tF.([.`#,..G.g.Q| 00000c30 27 9e 72 eb 07 a6 c9 b9 1e 3b 53 35 7c e5 d3 ec |'.r......;S5|...| 00000c40 27 b9 87 1c fe b9 c9 23 09 6f a8 46 91 c1 6e 96 |'......#.o.F..n.| 00000c50 3c 41 d3 cb a3 3f 5d 02 6a 4d ec 69 1f 25 28 5c |http://www.mi| 00000df0 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f |crosoft.com/pki/| 00000e00 63 65 72 74 73 2f 4d 69 63 52 6f 6f 43 65 72 41 |certs/MicRooCerA| 00000e10 75 74 5f 32 30 31 30 2d 30 36 2d 32 33 2e 63 72 |ut_2010-06-23.cr| 00000e20 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 |t0...*.H........| 00000e30 03 82 02 01 00 14 fc 7c 71 51 a5 79 c2 6e b2 ef |.......|qQ.y.n..| 00000e40 39 3e bc 3c 52 0f 6e 2b 3f 10 13 73 fe a8 68 d0 |9>.| 00000f10 ab 5c 60 ec df 03 10 a8 d3 09 e9 f4 f6 96 85 b6 |.\`.............| 00000f20 7f 51 88 66 47 19 8d a2 b0 12 3d 81 2a 68 05 77 |.Q.fG.....=.*h.w| 00000f30 bb 91 4c 62 7b b6 c1 07 c7 ba 7a 87 34 03 0e 4b |..Lb{.....z.4..K| 00000f40 62 7a 99 e9 ca fc ce 4a 37 c9 2d a4 57 7c 1c fe |bz.....J7.-.W|..| 00000f50 3d dc b8 0f 5a fa d6 c4 b3 02 85 02 3a ea b3 d9 |=...Z.......:...| 00000f60 6e e4 69 21 37 de 81 d1 f6 75 19 05 67 d3 93 57 |n.i!7....u..g..W| 00000f70 5e 29 1b 39 c8 ee 2d e1 cd e4 45 73 5b d0 d2 ce |^).9..-...Es[...| 00000f80 7a ab 16 19 82 46 58 d0 5e 9d 81 b3 67 af 6c 35 |z....FX.^...g.l5| 00000f90 f2 bc e5 3f 24 e2 35 a2 0a 75 06 f6 18 56 99 d4 |...?$.5..u...V..| 00000fa0 78 2c d1 05 1b eb d0 88 01 9d aa 10 f1 05 df ba |x,..............| 00000fb0 7e 2c 63 b7 06 9b 23 21 c4 f9 78 6c e2 58 17 06 |~,c...#!..xl.X..| 00000fc0 36 2b 91 12 03 cc a4 d9 f2 2d ba f9 94 9d 40 ed |6+.......-....@.| 00000fd0 18 45 f1 ce 8a 5c 6b 3e ab 03 d3 70 18 2a 0a 6a |.E...\k>...p.*.j| 00000fe0 e0 5f 47 d1 d5 63 0a 32 f2 af d7 36 1f 2a 70 5a |._G..c.2...6.*pZ| 00000ff0 e5 42 59 08 71 4b 57 ba 7e 83 81 f0 21 3c f4 1c |.BY.qKW.~...!<..| 00001000 c1 c5 b9 90 93 0e 88 45 93 86 e9 b1 20 99 be 98 |.......E.... ...| 00001010 cb c5 95 a4 5d 62 d6 a0 63 08 20 bd 75 10 77 7d |....]b..c. .u.w}| 00001020 3d f3 45 b9 9f 97 9f cb 57 80 6f 33 a9 04 cf 77 |=.E.....W.o3...w| 00001030 a4 62 1c 59 7e |.b.Y~| 00001035 efivar-39/tests/machine1/annotations/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000001333121455652431600263000ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 9b 06 00 00 |....| esl[0].signature_list_size = 1691 (0x69b) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 7f 06 00 00 |....| esl[0].signature_size = 1663 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 00 00 00 00 |....| esl[0].signature[0].owner = {zero} 00000020 00 00 00 00 00 00 00 00 00 00 00 00 |............| 0000002c 30 82 06 6b |0..k| esl[0].signature[0].data (end:0x0000069b) 00000030 30 82 04 53 a0 03 02 01 02 02 0a 61 0c 6a 19 00 |0..S.......a.j..| 00000040 00 00 00 00 04 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 88 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 06 |Corporation1200.| 000000b0 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 20 |.U...)Microsoft | 000000c0 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 65 |Root Certificate| 000000d0 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 30 | Authority 20100| 000000e0 1e 17 0d 31 30 30 37 30 36 32 30 34 30 32 33 5a |...100706204023Z| 000000f0 17 0d 32 35 30 37 30 36 32 30 35 30 32 33 5a 30 |..250706205023Z0| 00000100 79 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13 |y1.0...U....US1.| 00000110 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e 67 |0...U....Washing| 00000120 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 65 |ton1.0...U....Re| 00000130 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 15 |dmond1.0...U....| 00000140 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 |Microsoft Corpor| 00000150 61 74 69 6f 6e 31 23 30 21 06 03 55 04 03 13 1a |ation1#0!..U....| 00000160 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f 77 |Microsoft Window| 00000170 73 20 50 43 41 20 32 30 31 30 30 82 01 22 30 0d |s PCA 20100.."0.| 00000180 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00000190 0f 00 30 82 01 0a 02 82 01 01 00 c0 79 bb 3a b1 |..0.........y.:.| 000001a0 f0 0f 84 b8 ad 64 2a 75 16 73 d0 bb 07 f6 3e 0d |.....d*u.s....>.| 000001b0 9d 14 e4 b1 9f c1 c8 94 b0 38 7c 1f d0 33 55 f5 |.........8|..3U.| 000001c0 ba 23 66 f5 2e 28 48 53 c7 16 83 ba f5 51 ac 7e |.#f..(HS.....Q.~| 000001d0 ac e0 26 7f 0f 74 fc 59 95 dc c9 c6 a2 f7 52 70 |..&..t.Y......Rp| 000001e0 5a 2c 1d 94 ab 19 bf af 95 7d af 66 a1 6f 9b 62 |Z,.......}.f.o.b| 000001f0 6e 6d 4b bc 2f 35 6c de a4 6a 63 5a 5f fb f3 0d |nmK./5l..jcZ_...| 00000200 4d 61 cc 0a 7e 31 eb 6c 0a d0 4d 97 0f fd 7f 38 |Ma..~1.l..M....8| 00000210 46 e6 8a c7 73 69 76 55 69 96 4c e4 d8 f0 34 eb |F...sivUi.L...4.| 00000220 ba b1 1f ce 29 7e c4 4f 9d 13 15 ab 13 1b 72 58 |....)~.O......rX| 00000230 62 56 6c 8a 81 a3 64 77 98 46 65 29 9d 83 14 a5 |bVl...dw.Fe)....| 00000240 4c 08 a0 83 d7 23 1f f3 5f df 6f 2c cf da 16 d8 |L....#.._.o,....| 00000250 0e 72 04 28 d8 6b 3e f8 13 b1 7c a2 17 79 4f 7e |.r.(.k>...|..yO~| 00000260 dc 3a e4 9d 70 27 6b bf db fc 1e c7 07 d8 c0 be |.:..p'k.........| 00000270 0b 93 1e 28 e0 73 6d d2 54 e9 28 4c bf 6b 5d 9f |...(.sm.T.(L.k].| 00000280 ff 5d 33 12 37 95 25 61 34 6a 42 cb 7c 9d 3a bb |.]3.7.%a4jB.|.:.| 00000290 88 59 e1 a3 42 6d 3a 50 5b 48 d1 02 03 01 00 01 |.Y..Bm:P[H......| 000002a0 a3 82 01 e3 30 82 01 df 30 10 06 09 2b 06 01 04 |....0...0...+...| 000002b0 01 82 37 15 01 04 03 02 01 00 30 1d 06 03 55 1d |..7.......0...U.| 000002c0 0e 04 16 04 14 d1 4f a9 8a 07 08 ce f4 24 18 98 |......O......$..| 000002d0 e5 00 ff f3 d6 79 1d 37 bc 30 19 06 09 2b 06 01 |.....y.7.0...+..| 000002e0 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 62 |...7.......S.u.b| 000002f0 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 01 |.C.A0...U.......| 00000300 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 01 |.0...U.......0..| 00000310 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 d5 |..0...U.#..0....| 00000320 f6 56 cb 8f e8 a2 5c 62 68 d1 3d 94 90 5b d7 ce |.V....\bh.=..[..| 00000330 9a 18 c4 30 56 06 03 55 1d 1f 04 4f 30 4d 30 4b |...0V..U...O0M0K| 00000340 a0 49 a0 47 86 45 68 74 74 70 3a 2f 2f 63 72 6c |.I.G.Ehttp://crl| 00000350 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 |.microsoft.com/p| 00000360 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 2f |ki/crl/products/| 00000370 4d 69 63 52 6f 6f 43 65 72 41 75 74 5f 32 30 31 |MicRooCerAut_201| 00000380 30 2d 30 36 2d 32 33 2e 63 72 6c 30 5a 06 08 2b |0-06-23.crl0Z..+| 00000390 06 01 05 05 07 01 01 04 4e 30 4c 30 4a 06 08 2b |........N0L0J..+| 000003a0 06 01 05 05 07 30 02 86 3e 68 74 74 70 3a 2f 2f |.....0..>http://| 000003b0 77 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f |www.microsoft.co| 000003c0 6d 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 63 52 |m/pki/certs/MicR| 000003d0 6f 6f 43 65 72 41 75 74 5f 32 30 31 30 2d 30 36 |ooCerAut_2010-06| 000003e0 2d 32 33 2e 63 72 74 30 81 9d 06 03 55 1d 20 04 |-23.crt0....U. .| 000003f0 81 95 30 81 92 30 81 8f 06 09 2b 06 01 04 01 82 |..0..0....+.....| 00000400 37 2e 03 30 81 81 30 3d 06 08 2b 06 01 05 05 07 |7..0..0=..+.....| 00000410 02 01 16 31 68 74 74 70 3a 2f 2f 77 77 77 2e 6d |...1http://www.m| 00000420 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 50 4b 49 |icrosoft.com/PKI| 00000430 2f 64 6f 63 73 2f 43 50 53 2f 64 65 66 61 75 6c |/docs/CPS/defaul| 00000440 74 2e 68 74 6d 30 40 06 08 2b 06 01 05 05 07 02 |t.htm0@..+......| 00000450 02 30 34 1e 32 20 1d 00 4c 00 65 00 67 00 61 00 |.04.2 ..L.e.g.a.| 00000460 6c 00 5f 00 50 00 6f 00 6c 00 69 00 63 00 79 00 |l._.P.o.l.i.c.y.| 00000470 5f 00 53 00 74 00 61 00 74 00 65 00 6d 00 65 00 |_.S.t.a.t.e.m.e.| 00000480 6e 00 74 00 2e 20 1d 30 0d 06 09 2a 86 48 86 f7 |n.t.. .0...*.H..| 00000490 0d 01 01 0b 05 00 03 82 02 01 00 2e 41 a6 86 b5 |............A...| 000004a0 06 6f f0 80 85 fa 3b ca 17 e9 c9 fa e4 39 c2 94 |.o....;......9..| 000004b0 70 c3 64 94 c3 d8 56 a6 90 8e fe e4 9a f4 6d f5 |p.d...V.......m.| 000004c0 6f 8e 53 8d 5a a8 f3 ae db 46 6c be 7f 1d 54 56 |o.S.Z....Fl...TV| 000004d0 1b 3c 1d 71 c4 51 15 54 7e bf ee a5 95 42 33 fd |.<.q.Q.T~....B3.| 000004e0 0d 90 24 24 e3 f9 dc 96 ca fc b8 ac bf f4 c2 39 |..$$...........9| 000004f0 56 b8 bb ed 73 b3 17 dd 7e 86 50 23 8b 56 24 ca |V...s...~.P#.V$.| 00000500 bb a6 1d 9a 87 2f 27 85 e7 a1 b6 0a 9c 0d 1b 8c |...../'.........| 00000510 f3 00 62 41 ba 48 74 87 82 fd 50 c9 f4 87 29 c3 |..bA.Ht...P...).| 00000520 03 aa 2b df 1a 29 79 e8 12 24 9a 86 ed d0 2e d3 |..+..)y..$......| 00000530 40 81 f5 07 5f 33 06 54 5d 40 b5 f7 b1 62 fd 4d |@..._3.T]@...b.M| 00000540 48 f7 6e 41 47 52 1c bb 1b c2 57 3a a8 99 56 93 |H.nAGR....W:..V.| 00000550 d4 c6 de 26 a8 60 75 86 bb ec 62 a6 f0 1d 04 45 |...&.`u...b....E| 00000560 df 3e a7 84 d1 5b 44 23 63 25 36 77 6f ae 5b dc |.>...[D#c%6wo.[.| 00000570 22 d5 14 23 6a 41 7f d0 42 a6 db ef 25 7b 04 e3 |"..#jA..B...%{..| 00000580 d2 96 37 62 06 af f8 1b 0f 8e b3 39 9a bb 89 f5 |..7b.......9....| 00000590 35 06 e5 a4 5b c3 8c 9e 37 5f 53 d1 a3 37 fd a4 |5...[...7_S..7..| 000005a0 4f e8 1b 0e 6b 76 e4 b8 8f b0 c2 ea fd 75 f7 2c |O...kv.......u.,| 000005b0 41 b7 9c a3 e1 1e 05 fe 97 92 cb 7f 59 03 6d a8 |A...........Y.m.| 000005c0 4e 8d 4e 80 17 d4 d5 72 f6 56 e4 48 9f a3 23 ba |N.N....r.V.H..#.| 000005d0 06 a0 c0 8e d1 88 4f 93 20 f2 70 5f d8 6b 72 a3 |......O. .p_.kr.| 000005e0 20 49 fc 77 0c 5d c5 c7 e1 02 0f 38 42 10 0e db | I.w.].....8B...| 000005f0 02 ae 9a 37 1d 50 80 29 1e a4 a7 d9 c6 9a 25 55 |...7.P.)......%U| 00000600 fd 40 ca ad 64 10 e8 31 f9 12 54 79 1a f2 0e d8 |.@..d..1..Ty....| 00000610 d6 ab 1e 33 fe 02 e7 26 6d 61 49 8f f1 25 c2 8b |...3...&maI..%..| 00000620 74 99 df f9 93 1a 90 1c ee dd 94 33 0e 42 50 db |t..........3.BP.| 00000630 7f 50 f8 9f 62 82 ec a6 82 16 7c 66 bc ec 99 b0 |.P..b.....|f....| 00000640 c1 58 5d a8 b0 9a 61 14 91 d1 99 2f 49 e4 3e 81 |.X]...a..../I.>.| 00000650 99 d6 e6 ef ca e3 fd 3e ee ec 09 86 03 07 0d 1b |.......>........| 00000660 0d 7c eb f4 5a c9 95 cf 87 12 0a 5d ec c5 02 92 |.|..Z......]....| 00000670 cd 05 99 72 ca 7d f1 2a 10 18 38 e4 31 a3 28 b4 |...r.}.*..8.1.(.| 00000680 e6 4c c5 52 a3 9c 6a c7 7d c0 71 09 04 0d 70 de |.L.R..j.}.q...p.| 00000690 02 3f 87 ee 56 a1 ec eb b5 4c 85 |.?..V....L.| 0000069b 26 16 c4 c1 4c |&...L| esl[1].signature_type = {sha256} 000006a0 50 92 40 ac a9 41 f9 36 93 43 28 |P.@..A.6.C(| 000006ab 8c 0e 00 00 |....| esl[1].signature_list_size = 3724 (0xe8c) 000006af 00 |.| esl[1].signature_header_size = 0 000006b0 00 00 00 |...| 000006b3 30 00 00 00 |0...| esl[1].signature_size = 48 000006b7 esl[1].signature_header (end:0x000006b7) 000006b7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[0].owner = {microsoft} 000006c0 60 28 f4 e7 8f 78 4b |`(...xK| 000006c7 80 b4 d9 69 31 bf 0d 02 fd |...i1....| esl[1].signature[0].data (end:0x000006e7) 000006d0 91 a6 1e 19 d1 4f 1d a4 52 e6 6d b2 40 8c a8 60 |.....O..R.m.@..`| 000006e0 4d 41 1f 92 65 9f 0a |MA..e..| 000006e7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[1].owner = {microsoft} 000006f0 60 28 f4 e7 8f 78 4b |`(...xK| 000006f7 f5 2f 83 a3 fa 9c fb d6 92 |./.......| esl[1].signature[1].data (end:0x00000717) 00000700 0f 72 28 24 db e4 03 45 34 d2 5b 85 07 24 6b 3b |.r($...E4.[..$k;| 00000710 95 7d ac 6e 1b ce 7a |.}.n..z| 00000717 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[2].owner = {microsoft} 00000720 60 28 f4 e7 8f 78 4b |`(...xK| 00000727 c5 d9 d8 a1 86 e2 c8 2d 09 |.......-.| esl[1].signature[2].data (end:0x00000747) 00000730 af aa 2a 6f 7f 2e 73 87 0d 3e 64 f7 2c 4e 08 ef |..*o..s..>d.,N..| 00000740 67 79 6a 84 0f 0f bd |gyj....| 00000747 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[3].owner = {microsoft} 00000750 60 28 f4 e7 8f 78 4b |`(...xK| 00000757 36 33 84 d1 4d 1f 2e 0b 78 |63..M...x| esl[1].signature[3].data (end:0x00000777) 00000760 15 62 64 84 c4 59 ad 57 a3 18 ef 43 96 26 60 48 |.bd..Y.W...C.&`H| 00000770 d0 58 c5 a1 9b bf 76 |.X....v| 00000777 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[4].owner = {microsoft} 00000780 60 28 f4 e7 8f 78 4b |`(...xK| 00000787 1a ec 84 b8 4b 6c 65 a5 12 |....Kle..| esl[1].signature[4].data (end:0x000007a7) 00000790 20 a9 be 71 81 96 52 30 21 0d 62 d6 d3 3c 48 99 | ..q..R0!.b....h2.....'%'..=| 00000920 49 d2 95 72 a6 f4 4c |I..r..L| 00000927 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[13].owner = {microsoft} 00000930 60 28 f4 e7 8f 78 4b |`(...xK| 00000937 07 5e ea 06 05 89 54 8b a0 |.^....T..| esl[1].signature[13].data (end:0x00000957) 00000940 60 b2 fe ed 10 da 3c 20 c7 fe 9b 17 cd 02 6b 94 |`.....< ......k.| 00000950 e8 a6 83 b8 11 52 38 |.....R8| 00000957 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[14].owner = {microsoft} 00000960 60 28 f4 e7 8f 78 4b |`(...xK| 00000967 07 e6 c6 a8 58 64 6f b1 ef |....Xdo..| esl[1].signature[14].data (end:0x00000987) 00000970 c6 79 03 fe 28 b1 16 01 1f 23 67 fe 92 e6 be 2b |.y..(....#g....+| 00000980 36 99 9e ff 39 d0 9e |6...9..| 00000987 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[15].owner = {microsoft} 00000990 60 28 f4 e7 8f 78 4b |`(...xK| 00000997 09 df 5f 4e 51 12 08 ec 78 |.._NQ...x| esl[1].signature[15].data (end:0x000009b7) 000009a0 b9 6d 12 d0 81 25 fd b6 03 86 8d e3 9f 6f 72 92 |.m...%.......or.| 000009b0 78 52 59 9b 65 9c 26 |xRY.e.&| 000009b7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[16].owner = {microsoft} 000009c0 60 28 f4 e7 8f 78 4b |`(...xK| 000009c7 0b bb 43 92 da ac 7a b8 9b |..C...z..| esl[1].signature[16].data (end:0x000009e7) 000009d0 30 a4 ac 65 75 31 b9 7b fa ab 04 f9 0b 0d af e5 |0..eu1.{........| 000009e0 f9 b6 eb 90 a0 63 74 |.....ct| 000009e7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[17].owner = {microsoft} 000009f0 60 28 f4 e7 8f 78 4b |`(...xK| 000009f7 0c 18 93 39 76 2d f3 36 ab |...9v-.6.| esl[1].signature[17].data (end:0x00000a17) 00000a00 3d d0 06 a4 63 df 71 5a 39 cf b0 f4 92 46 5c 60 |=...c.qZ9....F\`| 00000a10 0e 6c 6b d7 bd 89 8c |.lk....| 00000a17 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[18].owner = {microsoft} 00000a20 60 28 f4 e7 8f 78 4b |`(...xK| 00000a27 0d 0d be ca 6f 29 ec a0 6f |....o)..o| esl[1].signature[18].data (end:0x00000a47) 00000a30 33 1a 7d 72 e4 88 4b 12 09 7f b3 48 98 3a 2a 14 |3.}r..K....H.:*.| 00000a40 a0 d7 3f 4f 10 14 0f |..?O...| 00000a47 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[19].owner = {microsoft} 00000a50 60 28 f4 e7 8f 78 4b |`(...xK| 00000a57 0d c9 f3 fb 99 96 21 48 c3 |......!H.| esl[1].signature[19].data (end:0x00000a77) 00000a60 ca 83 36 32 75 8d 3e d4 fc 8d 0b 00 07 b9 5b 31 |..62u.>.......[1| 00000a70 e6 52 8f 2a cd 5b fc |.R.*.[.| 00000a77 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[20].owner = {microsoft} 00000a80 60 28 f4 e7 8f 78 4b |`(...xK| 00000a87 10 6f ac ea cf ec fd 4e 30 |.o.....N0| esl[1].signature[20].data (end:0x00000aa7) 00000a90 3b 74 f4 80 a0 80 98 e2 d0 80 2b 93 6f 8e c7 74 |;t........+.o..t| 00000aa0 ce 21 f3 16 86 68 9c |.!...h.| 00000aa7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[21].owner = {microsoft} 00000ab0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ab7 17 4e 3a 0b 5b 43 c6 a6 07 |.N:.[C...| esl[1].signature[21].data (end:0x00000ad7) 00000ac0 bb d3 40 4f 05 34 1e 3d cf 39 62 67 ce 94 f8 b5 |..@O.4.=.9bg....| 00000ad0 0e 2e 23 a9 da 92 0c |..#....| 00000ad7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[22].owner = {microsoft} 00000ae0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ae7 18 33 34 29 ff 05 62 ed 9f |.34)..b..| esl[1].signature[22].data (end:0x00000b07) 00000af0 97 03 3e 11 48 dc ee e5 2d be 2e 49 6d 54 10 b5 |..>.H...-..ImT..| 00000b00 cf d6 c8 64 d2 d1 0f |...d...| 00000b07 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[23].owner = {microsoft} 00000b10 60 28 f4 e7 8f 78 4b |`(...xK| 00000b17 2b 99 cf 26 42 2e 92 fe 36 |+..&B...6| esl[1].signature[23].data (end:0x00000b37) 00000b20 5f bf 4b c3 0d 27 08 6c 9e e1 4b 7a 6f ff 44 fb |_.K..'.l..Kzo.D.| 00000b30 2f 6b 90 01 69 99 39 |/k..i.9| 00000b37 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[24].owner = {microsoft} 00000b40 60 28 f4 e7 8f 78 4b |`(...xK| 00000b47 2b bf 2c a7 b8 f1 d9 1f 27 |+.,.....'| esl[1].signature[24].data (end:0x00000b67) 00000b50 ee 52 b6 fb 2a 5d d0 49 b8 5a 2b 9b 52 9c 5d 66 |.R..*].I.Z+.R.]f| 00000b60 62 06 81 04 b0 55 f8 |b....U.| 00000b67 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[25].owner = {microsoft} 00000b70 60 28 f4 e7 8f 78 4b |`(...xK| 00000b77 2c 73 d9 33 25 ba 6d cb e5 |,s.3%.m..| esl[1].signature[25].data (end:0x00000b97) 00000b80 89 d4 a4 c6 3c 5b 93 55 59 ef 92 fb f0 50 ed 50 |....<[.UY....P.P| 00000b90 c4 e2 08 52 06 f1 7d |...R..}| 00000b97 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[26].owner = {microsoft} 00000ba0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ba7 2e 70 91 67 86 a6 f7 73 51 |.p.g...sQ| esl[1].signature[26].data (end:0x00000bc7) 00000bb0 1f a7 18 1f ab 0f 1d 70 b5 57 c6 32 2e a9 23 b2 |.......p.W.2..#.| 00000bc0 a8 d3 b9 2b 51 af 7d |...+Q.}| 00000bc7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[27].owner = {microsoft} 00000bd0 60 28 f4 e7 8f 78 4b |`(...xK| 00000bd7 30 66 28 fa 54 77 30 57 28 |0f(.Tw0W(| esl[1].signature[27].data (end:0x00000bf7) 00000be0 ba 4a 46 7d e7 d0 38 7a 54 f5 69 d3 76 9f ce 5e |.JF}..8zT.i.v..^| 00000bf0 75 ec 89 d2 8d 15 93 |u......| 00000bf7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[28].owner = {microsoft} 00000c00 60 28 f4 e7 8f 78 4b |`(...xK| 00000c07 36 08 ed ba f5 ad 0f 41 a4 |6......A.| esl[1].signature[28].data (end:0x00000c27) 00000c10 14 a1 77 7a bf 2f af 5e 67 03 34 67 5e c3 99 5e |..wz./.^g.4g^..^| 00000c20 69 35 82 9e 0c aa d2 |i5.....| 00000c27 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[29].owner = {microsoft} 00000c30 60 28 f4 e7 8f 78 4b |`(...xK| 00000c37 38 41 d2 21 36 8d 15 83 d7 |8A.!6....| esl[1].signature[29].data (end:0x00000c57) 00000c40 5c 0a 02 e6 21 60 39 4d 6c 4e 0a 67 60 b6 f6 07 |\...!`9MlN.g`...| 00000c50 b9 03 62 bc 85 5b 02 |..b..[.| 00000c57 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[30].owner = {microsoft} 00000c60 60 28 f4 e7 8f 78 4b |`(...xK| 00000c67 3f ce 9b 9f df 3e f0 9d 54 |?....>..T| esl[1].signature[30].data (end:0x00000c87) 00000c70 52 b0 f9 5e e4 81 c2 b7 f0 6d 74 3a 73 79 71 55 |R..^.....mt:syqU| 00000c80 8e 70 13 6a ce 3e 73 |.p.j.>s| 00000c87 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[31].owner = {microsoft} 00000c90 60 28 f4 e7 8f 78 4b |`(...xK| 00000c97 43 97 da ca 83 9e 7f 63 07 |C......c.| esl[1].signature[31].data (end:0x00000cb7) 00000ca0 7c b5 0c 92 df 43 bc 2d 2f b2 a8 f5 9f 26 fc 7a ||....C.-/....&.z| 00000cb0 0e 4b d4 d9 75 16 92 |.K..u..| 00000cb7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[32].owner = {microsoft} 00000cc0 60 28 f4 e7 8f 78 4b |`(...xK| 00000cc7 47 cc 08 61 27 e2 06 9a 86 |G..a'....| esl[1].signature[32].data (end:0x00000ce7) 00000cd0 e0 3a 6b ef 2c d4 10 f8 c5 5a 6d 6b db 36 21 68 |.:k.,....Zmk.6!h| 00000ce0 c3 1b 2c e3 2a 5a df |..,.*Z.| 00000ce7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[33].owner = {microsoft} 00000cf0 60 28 f4 e7 8f 78 4b |`(...xK| 00000cf7 51 88 31 fe 73 82 b5 14 d0 |Q.1.s....| esl[1].signature[33].data (end:0x00000d17) 00000d00 3e 15 c6 21 22 8b 8a b6 54 79 bd 0c bf a3 c5 c1 |>..!"...Ty......| 00000d10 d0 f4 8d 9c 30 61 35 |....0a5| 00000d17 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[34].owner = {microsoft} 00000d20 60 28 f4 e7 8f 78 4b |`(...xK| 00000d27 5a e9 49 ea 88 55 eb 93 e4 |Z.I..U...| esl[1].signature[34].data (end:0x00000d47) 00000d30 39 db c6 5b da 2e 42 85 2c 2f df 67 89 fa 14 67 |9..[..B.,/.g...g| 00000d40 36 e3 c3 41 0f 2b 5c |6..A.+\| 00000d47 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[35].owner = {microsoft} 00000d50 60 28 f4 e7 8f 78 4b |`(...xK| 00000d57 6b 1d 13 80 78 e4 41 8a a6 |k...x.A..| esl[1].signature[35].data (end:0x00000d77) 00000d60 8d eb 7b b3 5e 06 60 92 cf 47 9e eb 8c e4 cd 12 |..{.^.`..G......| 00000d70 e7 d0 72 cc b4 2f 66 |..r../f| 00000d77 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[36].owner = {microsoft} 00000d80 60 28 f4 e7 8f 78 4b |`(...xK| 00000d87 6c 88 54 47 8d d5 59 e2 93 |l.TG..Y..| esl[1].signature[36].data (end:0x00000da7) 00000d90 51 b8 26 c0 6c b8 bf ef 2b 94 ad 35 38 35 87 72 |Q.&.l...+..585.r| 00000da0 d1 93 f8 2e d1 ca 11 |.......| 00000da7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[37].owner = {microsoft} 00000db0 60 28 f4 e7 8f 78 4b |`(...xK| 00000db7 6f 14 28 ff 71 c9 db 0e d5 |o.(.q....| esl[1].signature[37].data (end:0x00000dd7) 00000dc0 af 1f 2e 7b bf cb ab 64 7c c2 65 dd f5 b2 93 cd |...{...d|.e.....| 00000dd0 b6 26 f5 0a 3a 78 5e |.&..:x^| 00000dd7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[38].owner = {microsoft} 00000de0 60 28 f4 e7 8f 78 4b |`(...xK| 00000de7 71 f2 90 6f d2 22 49 7e 54 |q..o."I~T| esl[1].signature[38].data (end:0x00000e07) 00000df0 a3 46 62 ab 24 97 fc c8 10 20 77 0f f5 13 68 e9 |.Fb.$.... w...h.| 00000e00 e3 d9 bf cb fd 63 75 |.....cu| 00000e07 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[39].owner = {microsoft} 00000e10 60 28 f4 e7 8f 78 4b |`(...xK| 00000e17 72 6b 3e b6 54 04 6a 30 f3 |rk>.T.j0.| esl[1].signature[39].data (end:0x00000e37) 00000e20 f8 3d 9b 96 ce 03 f6 70 e9 a8 06 d1 70 8a 03 71 |.=.....p....p..q| 00000e30 e6 2d c4 9d 2c 23 c1 |.-..,#.| 00000e37 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[40].owner = {microsoft} 00000e40 60 28 f4 e7 8f 78 4b |`(...xK| 00000e47 72 e0 bd 18 67 cf 5d 9d 56 |r...g.].V| esl[1].signature[40].data (end:0x00000e67) 00000e50 ab 15 8a df 3b dd bc 82 bf 32 a8 d8 aa 1d 8c 5e |....;....2.....^| 00000e60 2f 6d f2 94 28 d6 d8 |/m..(..| 00000e67 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[41].owner = {microsoft} 00000e70 60 28 f4 e7 8f 78 4b |`(...xK| 00000e77 78 27 af 99 36 2c fa f0 71 |x'..6,..q| esl[1].signature[41].data (end:0x00000e97) 00000e80 7d ad e4 b1 bf e0 43 8a d1 71 c1 5a dd c2 48 b7 |}.....C..q.Z..H.| 00000e90 5b f8 ca a4 4b b2 c5 |[...K..| 00000e97 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[42].owner = {microsoft} 00000ea0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ea7 81 a8 b9 65 bb 84 d3 87 6b |...e....k| esl[1].signature[42].data (end:0x00000ec7) 00000eb0 94 29 a9 54 81 cc 95 53 18 cf aa 14 12 d8 08 c8 |.).T...S........| 00000ec0 a3 3b fd 33 ff f0 e4 |.;.3...| 00000ec7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[43].owner = {microsoft} 00000ed0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ed7 82 db 3b ce b4 f6 08 43 ce |..;....C.| esl[1].signature[43].data (end:0x00000ef7) 00000ee0 9d 97 c3 d1 87 cd 9b 59 41 cd 3d e8 10 0e 58 6f |.......YA.=...Xo| 00000ef0 2b da 56 37 57 5f 67 |+.V7W_g| 00000ef7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[44].owner = {microsoft} 00000f00 60 28 f4 e7 8f 78 4b |`(...xK| 00000f07 89 5a 97 85 f6 17 ca 1d 7e |.Z......~| esl[1].signature[44].data (end:0x00000f27) 00000f10 d4 4f c1 a1 47 0b 71 f3 f1 22 38 62 d9 ff 9d cc |.O..G.q.."8b....| 00000f20 3a e2 df 92 16 3d af |:....=.| 00000f27 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[45].owner = {microsoft} 00000f30 60 28 f4 e7 8f 78 4b |`(...xK| 00000f37 8a d6 48 59 f1 95 b5 f5 8d |..HY.....| esl[1].signature[45].data (end:0x00000f57) 00000f40 af aa 94 0b 6a 61 67 ac d6 7a 88 6e 8f 46 93 64 |....jag..z.n.F.d| 00000f50 17 72 21 c5 59 45 b9 |.r!.YE.| 00000f57 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[46].owner = {microsoft} 00000f60 60 28 f4 e7 8f 78 4b |`(...xK| 00000f67 8b f4 34 b4 9e 00 cc f7 15 |..4......| esl[1].signature[46].data (end:0x00000f87) 00000f70 02 a2 cd 90 08 65 cb 01 ec 3b 3d a0 3c 35 be 50 |.....e...;=.<5.P| 00000f80 5f df 7b d5 63 f5 21 |_.{.c.!| 00000f87 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[47].owner = {microsoft} 00000f90 60 28 f4 e7 8f 78 4b |`(...xK| 00000f97 8d 8e a2 89 cf e7 0a 1c 07 |.........| esl[1].signature[47].data (end:0x00000fb7) 00000fa0 ab 73 65 cb 28 ee 51 ed d3 3c f2 50 6d e8 88 fb |.se.(.Q..<.Pm...| 00000fb0 ad d6 0e bf 80 48 1c |.....H.| 00000fb7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[48].owner = {microsoft} 00000fc0 60 28 f4 e7 8f 78 4b |`(...xK| 00000fc7 99 98 d3 63 c4 91 be 16 bd |...c.....| esl[1].signature[48].data (end:0x00000fe7) 00000fd0 74 ba 10 b9 4d 92 91 00 16 11 73 6f dc a6 43 a3 |t...M.....so..C.| 00000fe0 66 64 bc 0f 31 5a 42 |fd..1ZB| 00000fe7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[49].owner = {microsoft} 00000ff0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ff7 9e 4a 69 17 31 61 68 2e 55 |.Ji.1ah.U| esl[1].signature[49].data (end:0x00001017) 00001000 fd e8 fe f5 60 eb 88 ec 1f fe dc af 04 00 1f 66 |....`..........f| 00001010 c0 ca f7 07 b2 b7 34 |......4| 00001017 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[50].owner = {microsoft} 00001020 60 28 f4 e7 8f 78 4b |`(...xK| 00001027 a6 b5 15 1f 36 55 d3 a2 af |....6U...| esl[1].signature[50].data (end:0x00001047) 00001030 0d 47 27 59 79 6b e4 a4 20 0e 54 95 a7 d8 69 75 |.G'Yyk.. .T...iu| 00001040 4c 48 48 85 74 08 a7 |LHH.t..| 00001047 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[51].owner = {microsoft} 00001050 60 28 f4 e7 8f 78 4b |`(...xK| 00001057 a7 f3 2f 50 8d 4e b0 fe ad |../P.N...| esl[1].signature[51].data (end:0x00001077) 00001060 9a 08 7e f9 4e d1 ba 0a ec 5d e6 f7 ef 6f f0 a6 |..~.N....]...o..| 00001070 2b 93 be df 5d 45 8d |+...]E.| 00001077 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[52].owner = {microsoft} 00001080 60 28 f4 e7 8f 78 4b |`(...xK| 00001087 ad 68 26 e1 94 6d 26 d3 ea |.h&..m&..| esl[1].signature[52].data (end:0x000010a7) 00001090 f3 68 5c 88 d9 7d 85 de 3b 4d cb 3d 0e e2 ae 81 |.h\..}..;M.=....| 000010a0 c7 05 60 d1 3c 57 20 |..`...$Q?.eYW| 000012b0 d7 35 fa 29 f5 40 ce |.5.).@.| 000012b7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[64].owner = {microsoft} 000012c0 60 28 f4 e7 8f 78 4b |`(...xK| 000012c7 d8 cb eb 97 35 f5 67 2b 36 |....5.g+6| esl[1].signature[64].data (end:0x000012e7) 000012d0 7e 4f 96 cd c7 49 69 61 5d 17 07 4a e9 6c 72 4d |~O...Iia]..J.lrM| 000012e0 42 ce 02 16 f8 f3 fa |B......| 000012e7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[65].owner = {microsoft} 000012f0 60 28 f4 e7 8f 78 4b |`(...xK| 000012f7 e9 2c 22 eb 3b 56 42 d6 5c |.,".;VB.\| esl[1].signature[65].data (end:0x00001317) 00001300 1e c2 ca f2 47 d2 59 47 38 ee bb 7f b3 84 1a 44 |....G.YG8......D| 00001310 95 6f 59 e2 b0 d1 fa |.oY....| 00001317 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[66].owner = {microsoft} 00001320 60 28 f4 e7 8f 78 4b |`(...xK| 00001327 fd dd 6e 3d 29 ea 84 c7 74 |..n=)...t| esl[1].signature[66].data (end:0x00001347) 00001330 3d ad 4a 1b db c7 00 b5 fe c1 b3 91 f9 32 40 90 |=.J..........2@.| 00001340 86 ac c7 1d d6 db d8 |.......| 00001347 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[67].owner = {microsoft} 00001350 60 28 f4 e7 8f 78 4b |`(...xK| 00001357 fe 63 a8 4f 78 2c c9 d3 fc |.c.Ox,...| esl[1].signature[67].data (end:0x00001377) 00001360 f2 cc f9 fc 11 fb d0 37 60 87 87 58 d2 62 85 ed |.......7`..X.b..| 00001370 12 66 9b dc 6e 6d 01 |.f..nm.| 00001377 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[68].owner = {microsoft} 00001380 60 28 f4 e7 8f 78 4b |`(...xK| 00001387 fe cf b2 32 d1 2e 99 4b 6d |...2...Km| esl[1].signature[68].data (end:0x000013a7) 00001390 48 5d 2c 71 67 72 8a a5 52 59 84 ad 5c a6 1e 75 |H],qgr..RY..\..u| 000013a0 16 22 1f 07 9a 14 36 |."....6| 000013a7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[69].owner = {microsoft} 000013b0 60 28 f4 e7 8f 78 4b |`(...xK| 000013b7 ca 17 1d 61 4a 8d 7e 12 1c |...aJ.~..| esl[1].signature[69].data (end:0x000013d7) 000013c0 93 94 8c d0 fe 55 d3 99 81 f9 d1 1a a9 6e 03 45 |.....U.......n.E| 000013d0 0a 41 52 27 c2 c6 5b |.AR'..[| 000013d7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[70].owner = {microsoft} 000013e0 60 28 f4 e7 8f 78 4b |`(...xK| 000013e7 55 b9 9b 0d e5 3d bc fe 48 |U....=..H| esl[1].signature[70].data (end:0x00001407) 000013f0 5a a9 c7 37 cf 3f b6 16 ef 3d 91 fa b5 99 aa 7c |Z..7.?...=.....|| 00001400 ab 19 ed a7 63 b5 ba |....c..| 00001407 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[71].owner = {microsoft} 00001410 60 28 f4 e7 8f 78 4b |`(...xK| 00001417 77 dd 19 0f a3 0d 88 ff 5e |w.......^| esl[1].signature[71].data (end:0x00001437) 00001420 3b 01 1a 0a e6 1e 62 09 78 0c 13 0b 53 5e cb 87 |;.....b.x...S^..| 00001430 e6 f0 88 8a 0b 6b 2f |.....k/| 00001437 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[72].owner = {microsoft} 00001440 60 28 f4 e7 8f 78 4b |`(...xK| 00001447 c8 3c b1 39 22 ad 99 f5 60 |.<.9"...`| esl[1].signature[72].data (end:0x00001467) 00001450 74 46 75 dd 37 cc 94 dc ad 5a 1f cb a6 47 2f ee |tFu.7....Z...G/.| 00001460 34 11 71 d9 39 e8 84 |4.q.9..| 00001467 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[73].owner = {microsoft} 00001470 60 28 f4 e7 8f 78 4b |`(...xK| 00001477 3b 02 87 53 3e 0c c3 d0 ec |;..S>....| esl[1].signature[73].data (end:0x00001497) 00001480 1a a8 23 cb f0 a9 41 aa d8 72 15 79 d1 c4 99 80 |..#...A..r.y....| 00001490 2d d1 c3 a6 36 b8 a9 |-...6..| 00001497 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[74].owner = {microsoft} 000014a0 60 28 f4 e7 8f 78 4b |`(...xK| 000014a7 93 9a ee f4 f5 fa 51 e2 33 |......Q.3| esl[1].signature[74].data (end:0x000014c7) 000014b0 40 c3 f2 e4 90 48 ce 88 72 52 6a fd f7 52 c3 a7 |@....H..rRj..R..| 000014c0 f3 a3 f2 bc 9f 60 49 |.....`I| 000014c7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[75].owner = {microsoft} 000014d0 60 28 f4 e7 8f 78 4b |`(...xK| 000014d7 64 57 5b d9 12 78 9a 2e 14 |dW[..x...| esl[1].signature[75].data (end:0x000014f7) 000014e0 ad 56 f6 34 1f 52 af 6b f8 0c f9 44 00 78 59 75 |.V.4.R.k...D.xYu| 000014f0 e9 f0 4e 2d 64 d7 45 |..N-d.E| 000014f7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[76].owner = {microsoft} 00001500 60 28 f4 e7 8f 78 4b |`(...xK| 00001507 45 c7 c8 ae 75 0a cf bb 48 |E...u...H| esl[1].signature[76].data (end:0x00001527) 00001510 fc 37 52 7d 64 12 dd 64 4d ae d8 91 3c cd 8a 24 |.7R}d..dM...<..$| 00001520 c9 4d 85 69 67 df 8e |.M.ig..| 00001527 efivar-39/tests/machine1/annotations/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000001333121455652431600275030ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 9b 06 00 00 |....| esl[0].signature_list_size = 1691 (0x69b) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 7f 06 00 00 |....| esl[0].signature_size = 1663 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 00 00 00 00 |....| esl[0].signature[0].owner = {zero} 00000020 00 00 00 00 00 00 00 00 00 00 00 00 |............| 0000002c 30 82 06 6b |0..k| esl[0].signature[0].data (end:0x0000069b) 00000030 30 82 04 53 a0 03 02 01 02 02 0a 61 0c 6a 19 00 |0..S.......a.j..| 00000040 00 00 00 00 04 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 88 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 06 |Corporation1200.| 000000b0 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 20 |.U...)Microsoft | 000000c0 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 65 |Root Certificate| 000000d0 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 30 | Authority 20100| 000000e0 1e 17 0d 31 30 30 37 30 36 32 30 34 30 32 33 5a |...100706204023Z| 000000f0 17 0d 32 35 30 37 30 36 32 30 35 30 32 33 5a 30 |..250706205023Z0| 00000100 79 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 13 |y1.0...U....US1.| 00000110 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e 67 |0...U....Washing| 00000120 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 65 |ton1.0...U....Re| 00000130 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 15 |dmond1.0...U....| 00000140 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f 72 |Microsoft Corpor| 00000150 61 74 69 6f 6e 31 23 30 21 06 03 55 04 03 13 1a |ation1#0!..U....| 00000160 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f 77 |Microsoft Window| 00000170 73 20 50 43 41 20 32 30 31 30 30 82 01 22 30 0d |s PCA 20100.."0.| 00000180 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00000190 0f 00 30 82 01 0a 02 82 01 01 00 c0 79 bb 3a b1 |..0.........y.:.| 000001a0 f0 0f 84 b8 ad 64 2a 75 16 73 d0 bb 07 f6 3e 0d |.....d*u.s....>.| 000001b0 9d 14 e4 b1 9f c1 c8 94 b0 38 7c 1f d0 33 55 f5 |.........8|..3U.| 000001c0 ba 23 66 f5 2e 28 48 53 c7 16 83 ba f5 51 ac 7e |.#f..(HS.....Q.~| 000001d0 ac e0 26 7f 0f 74 fc 59 95 dc c9 c6 a2 f7 52 70 |..&..t.Y......Rp| 000001e0 5a 2c 1d 94 ab 19 bf af 95 7d af 66 a1 6f 9b 62 |Z,.......}.f.o.b| 000001f0 6e 6d 4b bc 2f 35 6c de a4 6a 63 5a 5f fb f3 0d |nmK./5l..jcZ_...| 00000200 4d 61 cc 0a 7e 31 eb 6c 0a d0 4d 97 0f fd 7f 38 |Ma..~1.l..M....8| 00000210 46 e6 8a c7 73 69 76 55 69 96 4c e4 d8 f0 34 eb |F...sivUi.L...4.| 00000220 ba b1 1f ce 29 7e c4 4f 9d 13 15 ab 13 1b 72 58 |....)~.O......rX| 00000230 62 56 6c 8a 81 a3 64 77 98 46 65 29 9d 83 14 a5 |bVl...dw.Fe)....| 00000240 4c 08 a0 83 d7 23 1f f3 5f df 6f 2c cf da 16 d8 |L....#.._.o,....| 00000250 0e 72 04 28 d8 6b 3e f8 13 b1 7c a2 17 79 4f 7e |.r.(.k>...|..yO~| 00000260 dc 3a e4 9d 70 27 6b bf db fc 1e c7 07 d8 c0 be |.:..p'k.........| 00000270 0b 93 1e 28 e0 73 6d d2 54 e9 28 4c bf 6b 5d 9f |...(.sm.T.(L.k].| 00000280 ff 5d 33 12 37 95 25 61 34 6a 42 cb 7c 9d 3a bb |.]3.7.%a4jB.|.:.| 00000290 88 59 e1 a3 42 6d 3a 50 5b 48 d1 02 03 01 00 01 |.Y..Bm:P[H......| 000002a0 a3 82 01 e3 30 82 01 df 30 10 06 09 2b 06 01 04 |....0...0...+...| 000002b0 01 82 37 15 01 04 03 02 01 00 30 1d 06 03 55 1d |..7.......0...U.| 000002c0 0e 04 16 04 14 d1 4f a9 8a 07 08 ce f4 24 18 98 |......O......$..| 000002d0 e5 00 ff f3 d6 79 1d 37 bc 30 19 06 09 2b 06 01 |.....y.7.0...+..| 000002e0 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 62 |...7.......S.u.b| 000002f0 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 01 |.C.A0...U.......| 00000300 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 01 |.0...U.......0..| 00000310 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 d5 |..0...U.#..0....| 00000320 f6 56 cb 8f e8 a2 5c 62 68 d1 3d 94 90 5b d7 ce |.V....\bh.=..[..| 00000330 9a 18 c4 30 56 06 03 55 1d 1f 04 4f 30 4d 30 4b |...0V..U...O0M0K| 00000340 a0 49 a0 47 86 45 68 74 74 70 3a 2f 2f 63 72 6c |.I.G.Ehttp://crl| 00000350 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 |.microsoft.com/p| 00000360 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 2f |ki/crl/products/| 00000370 4d 69 63 52 6f 6f 43 65 72 41 75 74 5f 32 30 31 |MicRooCerAut_201| 00000380 30 2d 30 36 2d 32 33 2e 63 72 6c 30 5a 06 08 2b |0-06-23.crl0Z..+| 00000390 06 01 05 05 07 01 01 04 4e 30 4c 30 4a 06 08 2b |........N0L0J..+| 000003a0 06 01 05 05 07 30 02 86 3e 68 74 74 70 3a 2f 2f |.....0..>http://| 000003b0 77 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f |www.microsoft.co| 000003c0 6d 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 63 52 |m/pki/certs/MicR| 000003d0 6f 6f 43 65 72 41 75 74 5f 32 30 31 30 2d 30 36 |ooCerAut_2010-06| 000003e0 2d 32 33 2e 63 72 74 30 81 9d 06 03 55 1d 20 04 |-23.crt0....U. .| 000003f0 81 95 30 81 92 30 81 8f 06 09 2b 06 01 04 01 82 |..0..0....+.....| 00000400 37 2e 03 30 81 81 30 3d 06 08 2b 06 01 05 05 07 |7..0..0=..+.....| 00000410 02 01 16 31 68 74 74 70 3a 2f 2f 77 77 77 2e 6d |...1http://www.m| 00000420 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 50 4b 49 |icrosoft.com/PKI| 00000430 2f 64 6f 63 73 2f 43 50 53 2f 64 65 66 61 75 6c |/docs/CPS/defaul| 00000440 74 2e 68 74 6d 30 40 06 08 2b 06 01 05 05 07 02 |t.htm0@..+......| 00000450 02 30 34 1e 32 20 1d 00 4c 00 65 00 67 00 61 00 |.04.2 ..L.e.g.a.| 00000460 6c 00 5f 00 50 00 6f 00 6c 00 69 00 63 00 79 00 |l._.P.o.l.i.c.y.| 00000470 5f 00 53 00 74 00 61 00 74 00 65 00 6d 00 65 00 |_.S.t.a.t.e.m.e.| 00000480 6e 00 74 00 2e 20 1d 30 0d 06 09 2a 86 48 86 f7 |n.t.. .0...*.H..| 00000490 0d 01 01 0b 05 00 03 82 02 01 00 2e 41 a6 86 b5 |............A...| 000004a0 06 6f f0 80 85 fa 3b ca 17 e9 c9 fa e4 39 c2 94 |.o....;......9..| 000004b0 70 c3 64 94 c3 d8 56 a6 90 8e fe e4 9a f4 6d f5 |p.d...V.......m.| 000004c0 6f 8e 53 8d 5a a8 f3 ae db 46 6c be 7f 1d 54 56 |o.S.Z....Fl...TV| 000004d0 1b 3c 1d 71 c4 51 15 54 7e bf ee a5 95 42 33 fd |.<.q.Q.T~....B3.| 000004e0 0d 90 24 24 e3 f9 dc 96 ca fc b8 ac bf f4 c2 39 |..$$...........9| 000004f0 56 b8 bb ed 73 b3 17 dd 7e 86 50 23 8b 56 24 ca |V...s...~.P#.V$.| 00000500 bb a6 1d 9a 87 2f 27 85 e7 a1 b6 0a 9c 0d 1b 8c |...../'.........| 00000510 f3 00 62 41 ba 48 74 87 82 fd 50 c9 f4 87 29 c3 |..bA.Ht...P...).| 00000520 03 aa 2b df 1a 29 79 e8 12 24 9a 86 ed d0 2e d3 |..+..)y..$......| 00000530 40 81 f5 07 5f 33 06 54 5d 40 b5 f7 b1 62 fd 4d |@..._3.T]@...b.M| 00000540 48 f7 6e 41 47 52 1c bb 1b c2 57 3a a8 99 56 93 |H.nAGR....W:..V.| 00000550 d4 c6 de 26 a8 60 75 86 bb ec 62 a6 f0 1d 04 45 |...&.`u...b....E| 00000560 df 3e a7 84 d1 5b 44 23 63 25 36 77 6f ae 5b dc |.>...[D#c%6wo.[.| 00000570 22 d5 14 23 6a 41 7f d0 42 a6 db ef 25 7b 04 e3 |"..#jA..B...%{..| 00000580 d2 96 37 62 06 af f8 1b 0f 8e b3 39 9a bb 89 f5 |..7b.......9....| 00000590 35 06 e5 a4 5b c3 8c 9e 37 5f 53 d1 a3 37 fd a4 |5...[...7_S..7..| 000005a0 4f e8 1b 0e 6b 76 e4 b8 8f b0 c2 ea fd 75 f7 2c |O...kv.......u.,| 000005b0 41 b7 9c a3 e1 1e 05 fe 97 92 cb 7f 59 03 6d a8 |A...........Y.m.| 000005c0 4e 8d 4e 80 17 d4 d5 72 f6 56 e4 48 9f a3 23 ba |N.N....r.V.H..#.| 000005d0 06 a0 c0 8e d1 88 4f 93 20 f2 70 5f d8 6b 72 a3 |......O. .p_.kr.| 000005e0 20 49 fc 77 0c 5d c5 c7 e1 02 0f 38 42 10 0e db | I.w.].....8B...| 000005f0 02 ae 9a 37 1d 50 80 29 1e a4 a7 d9 c6 9a 25 55 |...7.P.)......%U| 00000600 fd 40 ca ad 64 10 e8 31 f9 12 54 79 1a f2 0e d8 |.@..d..1..Ty....| 00000610 d6 ab 1e 33 fe 02 e7 26 6d 61 49 8f f1 25 c2 8b |...3...&maI..%..| 00000620 74 99 df f9 93 1a 90 1c ee dd 94 33 0e 42 50 db |t..........3.BP.| 00000630 7f 50 f8 9f 62 82 ec a6 82 16 7c 66 bc ec 99 b0 |.P..b.....|f....| 00000640 c1 58 5d a8 b0 9a 61 14 91 d1 99 2f 49 e4 3e 81 |.X]...a..../I.>.| 00000650 99 d6 e6 ef ca e3 fd 3e ee ec 09 86 03 07 0d 1b |.......>........| 00000660 0d 7c eb f4 5a c9 95 cf 87 12 0a 5d ec c5 02 92 |.|..Z......]....| 00000670 cd 05 99 72 ca 7d f1 2a 10 18 38 e4 31 a3 28 b4 |...r.}.*..8.1.(.| 00000680 e6 4c c5 52 a3 9c 6a c7 7d c0 71 09 04 0d 70 de |.L.R..j.}.q...p.| 00000690 02 3f 87 ee 56 a1 ec eb b5 4c 85 |.?..V....L.| 0000069b 26 16 c4 c1 4c |&...L| esl[1].signature_type = {sha256} 000006a0 50 92 40 ac a9 41 f9 36 93 43 28 |P.@..A.6.C(| 000006ab 8c 0e 00 00 |....| esl[1].signature_list_size = 3724 (0xe8c) 000006af 00 |.| esl[1].signature_header_size = 0 000006b0 00 00 00 |...| 000006b3 30 00 00 00 |0...| esl[1].signature_size = 48 000006b7 esl[1].signature_header (end:0x000006b7) 000006b7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[0].owner = {microsoft} 000006c0 60 28 f4 e7 8f 78 4b |`(...xK| 000006c7 80 b4 d9 69 31 bf 0d 02 fd |...i1....| esl[1].signature[0].data (end:0x000006e7) 000006d0 91 a6 1e 19 d1 4f 1d a4 52 e6 6d b2 40 8c a8 60 |.....O..R.m.@..`| 000006e0 4d 41 1f 92 65 9f 0a |MA..e..| 000006e7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[1].owner = {microsoft} 000006f0 60 28 f4 e7 8f 78 4b |`(...xK| 000006f7 f5 2f 83 a3 fa 9c fb d6 92 |./.......| esl[1].signature[1].data (end:0x00000717) 00000700 0f 72 28 24 db e4 03 45 34 d2 5b 85 07 24 6b 3b |.r($...E4.[..$k;| 00000710 95 7d ac 6e 1b ce 7a |.}.n..z| 00000717 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[2].owner = {microsoft} 00000720 60 28 f4 e7 8f 78 4b |`(...xK| 00000727 c5 d9 d8 a1 86 e2 c8 2d 09 |.......-.| esl[1].signature[2].data (end:0x00000747) 00000730 af aa 2a 6f 7f 2e 73 87 0d 3e 64 f7 2c 4e 08 ef |..*o..s..>d.,N..| 00000740 67 79 6a 84 0f 0f bd |gyj....| 00000747 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[3].owner = {microsoft} 00000750 60 28 f4 e7 8f 78 4b |`(...xK| 00000757 36 33 84 d1 4d 1f 2e 0b 78 |63..M...x| esl[1].signature[3].data (end:0x00000777) 00000760 15 62 64 84 c4 59 ad 57 a3 18 ef 43 96 26 60 48 |.bd..Y.W...C.&`H| 00000770 d0 58 c5 a1 9b bf 76 |.X....v| 00000777 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[4].owner = {microsoft} 00000780 60 28 f4 e7 8f 78 4b |`(...xK| 00000787 1a ec 84 b8 4b 6c 65 a5 12 |....Kle..| esl[1].signature[4].data (end:0x000007a7) 00000790 20 a9 be 71 81 96 52 30 21 0d 62 d6 d3 3c 48 99 | ..q..R0!.b....h2.....'%'..=| 00000920 49 d2 95 72 a6 f4 4c |I..r..L| 00000927 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[13].owner = {microsoft} 00000930 60 28 f4 e7 8f 78 4b |`(...xK| 00000937 07 5e ea 06 05 89 54 8b a0 |.^....T..| esl[1].signature[13].data (end:0x00000957) 00000940 60 b2 fe ed 10 da 3c 20 c7 fe 9b 17 cd 02 6b 94 |`.....< ......k.| 00000950 e8 a6 83 b8 11 52 38 |.....R8| 00000957 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[14].owner = {microsoft} 00000960 60 28 f4 e7 8f 78 4b |`(...xK| 00000967 07 e6 c6 a8 58 64 6f b1 ef |....Xdo..| esl[1].signature[14].data (end:0x00000987) 00000970 c6 79 03 fe 28 b1 16 01 1f 23 67 fe 92 e6 be 2b |.y..(....#g....+| 00000980 36 99 9e ff 39 d0 9e |6...9..| 00000987 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[15].owner = {microsoft} 00000990 60 28 f4 e7 8f 78 4b |`(...xK| 00000997 09 df 5f 4e 51 12 08 ec 78 |.._NQ...x| esl[1].signature[15].data (end:0x000009b7) 000009a0 b9 6d 12 d0 81 25 fd b6 03 86 8d e3 9f 6f 72 92 |.m...%.......or.| 000009b0 78 52 59 9b 65 9c 26 |xRY.e.&| 000009b7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[16].owner = {microsoft} 000009c0 60 28 f4 e7 8f 78 4b |`(...xK| 000009c7 0b bb 43 92 da ac 7a b8 9b |..C...z..| esl[1].signature[16].data (end:0x000009e7) 000009d0 30 a4 ac 65 75 31 b9 7b fa ab 04 f9 0b 0d af e5 |0..eu1.{........| 000009e0 f9 b6 eb 90 a0 63 74 |.....ct| 000009e7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[17].owner = {microsoft} 000009f0 60 28 f4 e7 8f 78 4b |`(...xK| 000009f7 0c 18 93 39 76 2d f3 36 ab |...9v-.6.| esl[1].signature[17].data (end:0x00000a17) 00000a00 3d d0 06 a4 63 df 71 5a 39 cf b0 f4 92 46 5c 60 |=...c.qZ9....F\`| 00000a10 0e 6c 6b d7 bd 89 8c |.lk....| 00000a17 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[18].owner = {microsoft} 00000a20 60 28 f4 e7 8f 78 4b |`(...xK| 00000a27 0d 0d be ca 6f 29 ec a0 6f |....o)..o| esl[1].signature[18].data (end:0x00000a47) 00000a30 33 1a 7d 72 e4 88 4b 12 09 7f b3 48 98 3a 2a 14 |3.}r..K....H.:*.| 00000a40 a0 d7 3f 4f 10 14 0f |..?O...| 00000a47 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[19].owner = {microsoft} 00000a50 60 28 f4 e7 8f 78 4b |`(...xK| 00000a57 0d c9 f3 fb 99 96 21 48 c3 |......!H.| esl[1].signature[19].data (end:0x00000a77) 00000a60 ca 83 36 32 75 8d 3e d4 fc 8d 0b 00 07 b9 5b 31 |..62u.>.......[1| 00000a70 e6 52 8f 2a cd 5b fc |.R.*.[.| 00000a77 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[20].owner = {microsoft} 00000a80 60 28 f4 e7 8f 78 4b |`(...xK| 00000a87 10 6f ac ea cf ec fd 4e 30 |.o.....N0| esl[1].signature[20].data (end:0x00000aa7) 00000a90 3b 74 f4 80 a0 80 98 e2 d0 80 2b 93 6f 8e c7 74 |;t........+.o..t| 00000aa0 ce 21 f3 16 86 68 9c |.!...h.| 00000aa7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[21].owner = {microsoft} 00000ab0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ab7 17 4e 3a 0b 5b 43 c6 a6 07 |.N:.[C...| esl[1].signature[21].data (end:0x00000ad7) 00000ac0 bb d3 40 4f 05 34 1e 3d cf 39 62 67 ce 94 f8 b5 |..@O.4.=.9bg....| 00000ad0 0e 2e 23 a9 da 92 0c |..#....| 00000ad7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[22].owner = {microsoft} 00000ae0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ae7 18 33 34 29 ff 05 62 ed 9f |.34)..b..| esl[1].signature[22].data (end:0x00000b07) 00000af0 97 03 3e 11 48 dc ee e5 2d be 2e 49 6d 54 10 b5 |..>.H...-..ImT..| 00000b00 cf d6 c8 64 d2 d1 0f |...d...| 00000b07 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[23].owner = {microsoft} 00000b10 60 28 f4 e7 8f 78 4b |`(...xK| 00000b17 2b 99 cf 26 42 2e 92 fe 36 |+..&B...6| esl[1].signature[23].data (end:0x00000b37) 00000b20 5f bf 4b c3 0d 27 08 6c 9e e1 4b 7a 6f ff 44 fb |_.K..'.l..Kzo.D.| 00000b30 2f 6b 90 01 69 99 39 |/k..i.9| 00000b37 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[24].owner = {microsoft} 00000b40 60 28 f4 e7 8f 78 4b |`(...xK| 00000b47 2b bf 2c a7 b8 f1 d9 1f 27 |+.,.....'| esl[1].signature[24].data (end:0x00000b67) 00000b50 ee 52 b6 fb 2a 5d d0 49 b8 5a 2b 9b 52 9c 5d 66 |.R..*].I.Z+.R.]f| 00000b60 62 06 81 04 b0 55 f8 |b....U.| 00000b67 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[25].owner = {microsoft} 00000b70 60 28 f4 e7 8f 78 4b |`(...xK| 00000b77 2c 73 d9 33 25 ba 6d cb e5 |,s.3%.m..| esl[1].signature[25].data (end:0x00000b97) 00000b80 89 d4 a4 c6 3c 5b 93 55 59 ef 92 fb f0 50 ed 50 |....<[.UY....P.P| 00000b90 c4 e2 08 52 06 f1 7d |...R..}| 00000b97 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[26].owner = {microsoft} 00000ba0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ba7 2e 70 91 67 86 a6 f7 73 51 |.p.g...sQ| esl[1].signature[26].data (end:0x00000bc7) 00000bb0 1f a7 18 1f ab 0f 1d 70 b5 57 c6 32 2e a9 23 b2 |.......p.W.2..#.| 00000bc0 a8 d3 b9 2b 51 af 7d |...+Q.}| 00000bc7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[27].owner = {microsoft} 00000bd0 60 28 f4 e7 8f 78 4b |`(...xK| 00000bd7 30 66 28 fa 54 77 30 57 28 |0f(.Tw0W(| esl[1].signature[27].data (end:0x00000bf7) 00000be0 ba 4a 46 7d e7 d0 38 7a 54 f5 69 d3 76 9f ce 5e |.JF}..8zT.i.v..^| 00000bf0 75 ec 89 d2 8d 15 93 |u......| 00000bf7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[28].owner = {microsoft} 00000c00 60 28 f4 e7 8f 78 4b |`(...xK| 00000c07 36 08 ed ba f5 ad 0f 41 a4 |6......A.| esl[1].signature[28].data (end:0x00000c27) 00000c10 14 a1 77 7a bf 2f af 5e 67 03 34 67 5e c3 99 5e |..wz./.^g.4g^..^| 00000c20 69 35 82 9e 0c aa d2 |i5.....| 00000c27 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[29].owner = {microsoft} 00000c30 60 28 f4 e7 8f 78 4b |`(...xK| 00000c37 38 41 d2 21 36 8d 15 83 d7 |8A.!6....| esl[1].signature[29].data (end:0x00000c57) 00000c40 5c 0a 02 e6 21 60 39 4d 6c 4e 0a 67 60 b6 f6 07 |\...!`9MlN.g`...| 00000c50 b9 03 62 bc 85 5b 02 |..b..[.| 00000c57 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[30].owner = {microsoft} 00000c60 60 28 f4 e7 8f 78 4b |`(...xK| 00000c67 3f ce 9b 9f df 3e f0 9d 54 |?....>..T| esl[1].signature[30].data (end:0x00000c87) 00000c70 52 b0 f9 5e e4 81 c2 b7 f0 6d 74 3a 73 79 71 55 |R..^.....mt:syqU| 00000c80 8e 70 13 6a ce 3e 73 |.p.j.>s| 00000c87 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[31].owner = {microsoft} 00000c90 60 28 f4 e7 8f 78 4b |`(...xK| 00000c97 43 97 da ca 83 9e 7f 63 07 |C......c.| esl[1].signature[31].data (end:0x00000cb7) 00000ca0 7c b5 0c 92 df 43 bc 2d 2f b2 a8 f5 9f 26 fc 7a ||....C.-/....&.z| 00000cb0 0e 4b d4 d9 75 16 92 |.K..u..| 00000cb7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[32].owner = {microsoft} 00000cc0 60 28 f4 e7 8f 78 4b |`(...xK| 00000cc7 47 cc 08 61 27 e2 06 9a 86 |G..a'....| esl[1].signature[32].data (end:0x00000ce7) 00000cd0 e0 3a 6b ef 2c d4 10 f8 c5 5a 6d 6b db 36 21 68 |.:k.,....Zmk.6!h| 00000ce0 c3 1b 2c e3 2a 5a df |..,.*Z.| 00000ce7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[33].owner = {microsoft} 00000cf0 60 28 f4 e7 8f 78 4b |`(...xK| 00000cf7 51 88 31 fe 73 82 b5 14 d0 |Q.1.s....| esl[1].signature[33].data (end:0x00000d17) 00000d00 3e 15 c6 21 22 8b 8a b6 54 79 bd 0c bf a3 c5 c1 |>..!"...Ty......| 00000d10 d0 f4 8d 9c 30 61 35 |....0a5| 00000d17 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[34].owner = {microsoft} 00000d20 60 28 f4 e7 8f 78 4b |`(...xK| 00000d27 5a e9 49 ea 88 55 eb 93 e4 |Z.I..U...| esl[1].signature[34].data (end:0x00000d47) 00000d30 39 db c6 5b da 2e 42 85 2c 2f df 67 89 fa 14 67 |9..[..B.,/.g...g| 00000d40 36 e3 c3 41 0f 2b 5c |6..A.+\| 00000d47 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[35].owner = {microsoft} 00000d50 60 28 f4 e7 8f 78 4b |`(...xK| 00000d57 6b 1d 13 80 78 e4 41 8a a6 |k...x.A..| esl[1].signature[35].data (end:0x00000d77) 00000d60 8d eb 7b b3 5e 06 60 92 cf 47 9e eb 8c e4 cd 12 |..{.^.`..G......| 00000d70 e7 d0 72 cc b4 2f 66 |..r../f| 00000d77 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[36].owner = {microsoft} 00000d80 60 28 f4 e7 8f 78 4b |`(...xK| 00000d87 6c 88 54 47 8d d5 59 e2 93 |l.TG..Y..| esl[1].signature[36].data (end:0x00000da7) 00000d90 51 b8 26 c0 6c b8 bf ef 2b 94 ad 35 38 35 87 72 |Q.&.l...+..585.r| 00000da0 d1 93 f8 2e d1 ca 11 |.......| 00000da7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[37].owner = {microsoft} 00000db0 60 28 f4 e7 8f 78 4b |`(...xK| 00000db7 6f 14 28 ff 71 c9 db 0e d5 |o.(.q....| esl[1].signature[37].data (end:0x00000dd7) 00000dc0 af 1f 2e 7b bf cb ab 64 7c c2 65 dd f5 b2 93 cd |...{...d|.e.....| 00000dd0 b6 26 f5 0a 3a 78 5e |.&..:x^| 00000dd7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[38].owner = {microsoft} 00000de0 60 28 f4 e7 8f 78 4b |`(...xK| 00000de7 71 f2 90 6f d2 22 49 7e 54 |q..o."I~T| esl[1].signature[38].data (end:0x00000e07) 00000df0 a3 46 62 ab 24 97 fc c8 10 20 77 0f f5 13 68 e9 |.Fb.$.... w...h.| 00000e00 e3 d9 bf cb fd 63 75 |.....cu| 00000e07 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[39].owner = {microsoft} 00000e10 60 28 f4 e7 8f 78 4b |`(...xK| 00000e17 72 6b 3e b6 54 04 6a 30 f3 |rk>.T.j0.| esl[1].signature[39].data (end:0x00000e37) 00000e20 f8 3d 9b 96 ce 03 f6 70 e9 a8 06 d1 70 8a 03 71 |.=.....p....p..q| 00000e30 e6 2d c4 9d 2c 23 c1 |.-..,#.| 00000e37 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[40].owner = {microsoft} 00000e40 60 28 f4 e7 8f 78 4b |`(...xK| 00000e47 72 e0 bd 18 67 cf 5d 9d 56 |r...g.].V| esl[1].signature[40].data (end:0x00000e67) 00000e50 ab 15 8a df 3b dd bc 82 bf 32 a8 d8 aa 1d 8c 5e |....;....2.....^| 00000e60 2f 6d f2 94 28 d6 d8 |/m..(..| 00000e67 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[41].owner = {microsoft} 00000e70 60 28 f4 e7 8f 78 4b |`(...xK| 00000e77 78 27 af 99 36 2c fa f0 71 |x'..6,..q| esl[1].signature[41].data (end:0x00000e97) 00000e80 7d ad e4 b1 bf e0 43 8a d1 71 c1 5a dd c2 48 b7 |}.....C..q.Z..H.| 00000e90 5b f8 ca a4 4b b2 c5 |[...K..| 00000e97 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[42].owner = {microsoft} 00000ea0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ea7 81 a8 b9 65 bb 84 d3 87 6b |...e....k| esl[1].signature[42].data (end:0x00000ec7) 00000eb0 94 29 a9 54 81 cc 95 53 18 cf aa 14 12 d8 08 c8 |.).T...S........| 00000ec0 a3 3b fd 33 ff f0 e4 |.;.3...| 00000ec7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[43].owner = {microsoft} 00000ed0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ed7 82 db 3b ce b4 f6 08 43 ce |..;....C.| esl[1].signature[43].data (end:0x00000ef7) 00000ee0 9d 97 c3 d1 87 cd 9b 59 41 cd 3d e8 10 0e 58 6f |.......YA.=...Xo| 00000ef0 2b da 56 37 57 5f 67 |+.V7W_g| 00000ef7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[44].owner = {microsoft} 00000f00 60 28 f4 e7 8f 78 4b |`(...xK| 00000f07 89 5a 97 85 f6 17 ca 1d 7e |.Z......~| esl[1].signature[44].data (end:0x00000f27) 00000f10 d4 4f c1 a1 47 0b 71 f3 f1 22 38 62 d9 ff 9d cc |.O..G.q.."8b....| 00000f20 3a e2 df 92 16 3d af |:....=.| 00000f27 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[45].owner = {microsoft} 00000f30 60 28 f4 e7 8f 78 4b |`(...xK| 00000f37 8a d6 48 59 f1 95 b5 f5 8d |..HY.....| esl[1].signature[45].data (end:0x00000f57) 00000f40 af aa 94 0b 6a 61 67 ac d6 7a 88 6e 8f 46 93 64 |....jag..z.n.F.d| 00000f50 17 72 21 c5 59 45 b9 |.r!.YE.| 00000f57 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[46].owner = {microsoft} 00000f60 60 28 f4 e7 8f 78 4b |`(...xK| 00000f67 8b f4 34 b4 9e 00 cc f7 15 |..4......| esl[1].signature[46].data (end:0x00000f87) 00000f70 02 a2 cd 90 08 65 cb 01 ec 3b 3d a0 3c 35 be 50 |.....e...;=.<5.P| 00000f80 5f df 7b d5 63 f5 21 |_.{.c.!| 00000f87 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[47].owner = {microsoft} 00000f90 60 28 f4 e7 8f 78 4b |`(...xK| 00000f97 8d 8e a2 89 cf e7 0a 1c 07 |.........| esl[1].signature[47].data (end:0x00000fb7) 00000fa0 ab 73 65 cb 28 ee 51 ed d3 3c f2 50 6d e8 88 fb |.se.(.Q..<.Pm...| 00000fb0 ad d6 0e bf 80 48 1c |.....H.| 00000fb7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[48].owner = {microsoft} 00000fc0 60 28 f4 e7 8f 78 4b |`(...xK| 00000fc7 99 98 d3 63 c4 91 be 16 bd |...c.....| esl[1].signature[48].data (end:0x00000fe7) 00000fd0 74 ba 10 b9 4d 92 91 00 16 11 73 6f dc a6 43 a3 |t...M.....so..C.| 00000fe0 66 64 bc 0f 31 5a 42 |fd..1ZB| 00000fe7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[49].owner = {microsoft} 00000ff0 60 28 f4 e7 8f 78 4b |`(...xK| 00000ff7 9e 4a 69 17 31 61 68 2e 55 |.Ji.1ah.U| esl[1].signature[49].data (end:0x00001017) 00001000 fd e8 fe f5 60 eb 88 ec 1f fe dc af 04 00 1f 66 |....`..........f| 00001010 c0 ca f7 07 b2 b7 34 |......4| 00001017 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[50].owner = {microsoft} 00001020 60 28 f4 e7 8f 78 4b |`(...xK| 00001027 a6 b5 15 1f 36 55 d3 a2 af |....6U...| esl[1].signature[50].data (end:0x00001047) 00001030 0d 47 27 59 79 6b e4 a4 20 0e 54 95 a7 d8 69 75 |.G'Yyk.. .T...iu| 00001040 4c 48 48 85 74 08 a7 |LHH.t..| 00001047 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[51].owner = {microsoft} 00001050 60 28 f4 e7 8f 78 4b |`(...xK| 00001057 a7 f3 2f 50 8d 4e b0 fe ad |../P.N...| esl[1].signature[51].data (end:0x00001077) 00001060 9a 08 7e f9 4e d1 ba 0a ec 5d e6 f7 ef 6f f0 a6 |..~.N....]...o..| 00001070 2b 93 be df 5d 45 8d |+...]E.| 00001077 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[52].owner = {microsoft} 00001080 60 28 f4 e7 8f 78 4b |`(...xK| 00001087 ad 68 26 e1 94 6d 26 d3 ea |.h&..m&..| esl[1].signature[52].data (end:0x000010a7) 00001090 f3 68 5c 88 d9 7d 85 de 3b 4d cb 3d 0e e2 ae 81 |.h\..}..;M.=....| 000010a0 c7 05 60 d1 3c 57 20 |..`...$Q?.eYW| 000012b0 d7 35 fa 29 f5 40 ce |.5.).@.| 000012b7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[64].owner = {microsoft} 000012c0 60 28 f4 e7 8f 78 4b |`(...xK| 000012c7 d8 cb eb 97 35 f5 67 2b 36 |....5.g+6| esl[1].signature[64].data (end:0x000012e7) 000012d0 7e 4f 96 cd c7 49 69 61 5d 17 07 4a e9 6c 72 4d |~O...Iia]..J.lrM| 000012e0 42 ce 02 16 f8 f3 fa |B......| 000012e7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[65].owner = {microsoft} 000012f0 60 28 f4 e7 8f 78 4b |`(...xK| 000012f7 e9 2c 22 eb 3b 56 42 d6 5c |.,".;VB.\| esl[1].signature[65].data (end:0x00001317) 00001300 1e c2 ca f2 47 d2 59 47 38 ee bb 7f b3 84 1a 44 |....G.YG8......D| 00001310 95 6f 59 e2 b0 d1 fa |.oY....| 00001317 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[66].owner = {microsoft} 00001320 60 28 f4 e7 8f 78 4b |`(...xK| 00001327 fd dd 6e 3d 29 ea 84 c7 74 |..n=)...t| esl[1].signature[66].data (end:0x00001347) 00001330 3d ad 4a 1b db c7 00 b5 fe c1 b3 91 f9 32 40 90 |=.J..........2@.| 00001340 86 ac c7 1d d6 db d8 |.......| 00001347 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[67].owner = {microsoft} 00001350 60 28 f4 e7 8f 78 4b |`(...xK| 00001357 fe 63 a8 4f 78 2c c9 d3 fc |.c.Ox,...| esl[1].signature[67].data (end:0x00001377) 00001360 f2 cc f9 fc 11 fb d0 37 60 87 87 58 d2 62 85 ed |.......7`..X.b..| 00001370 12 66 9b dc 6e 6d 01 |.f..nm.| 00001377 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[68].owner = {microsoft} 00001380 60 28 f4 e7 8f 78 4b |`(...xK| 00001387 fe cf b2 32 d1 2e 99 4b 6d |...2...Km| esl[1].signature[68].data (end:0x000013a7) 00001390 48 5d 2c 71 67 72 8a a5 52 59 84 ad 5c a6 1e 75 |H],qgr..RY..\..u| 000013a0 16 22 1f 07 9a 14 36 |."....6| 000013a7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[69].owner = {microsoft} 000013b0 60 28 f4 e7 8f 78 4b |`(...xK| 000013b7 ca 17 1d 61 4a 8d 7e 12 1c |...aJ.~..| esl[1].signature[69].data (end:0x000013d7) 000013c0 93 94 8c d0 fe 55 d3 99 81 f9 d1 1a a9 6e 03 45 |.....U.......n.E| 000013d0 0a 41 52 27 c2 c6 5b |.AR'..[| 000013d7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[70].owner = {microsoft} 000013e0 60 28 f4 e7 8f 78 4b |`(...xK| 000013e7 55 b9 9b 0d e5 3d bc fe 48 |U....=..H| esl[1].signature[70].data (end:0x00001407) 000013f0 5a a9 c7 37 cf 3f b6 16 ef 3d 91 fa b5 99 aa 7c |Z..7.?...=.....|| 00001400 ab 19 ed a7 63 b5 ba |....c..| 00001407 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[71].owner = {microsoft} 00001410 60 28 f4 e7 8f 78 4b |`(...xK| 00001417 77 dd 19 0f a3 0d 88 ff 5e |w.......^| esl[1].signature[71].data (end:0x00001437) 00001420 3b 01 1a 0a e6 1e 62 09 78 0c 13 0b 53 5e cb 87 |;.....b.x...S^..| 00001430 e6 f0 88 8a 0b 6b 2f |.....k/| 00001437 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[72].owner = {microsoft} 00001440 60 28 f4 e7 8f 78 4b |`(...xK| 00001447 c8 3c b1 39 22 ad 99 f5 60 |.<.9"...`| esl[1].signature[72].data (end:0x00001467) 00001450 74 46 75 dd 37 cc 94 dc ad 5a 1f cb a6 47 2f ee |tFu.7....Z...G/.| 00001460 34 11 71 d9 39 e8 84 |4.q.9..| 00001467 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[73].owner = {microsoft} 00001470 60 28 f4 e7 8f 78 4b |`(...xK| 00001477 3b 02 87 53 3e 0c c3 d0 ec |;..S>....| esl[1].signature[73].data (end:0x00001497) 00001480 1a a8 23 cb f0 a9 41 aa d8 72 15 79 d1 c4 99 80 |..#...A..r.y....| 00001490 2d d1 c3 a6 36 b8 a9 |-...6..| 00001497 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[74].owner = {microsoft} 000014a0 60 28 f4 e7 8f 78 4b |`(...xK| 000014a7 93 9a ee f4 f5 fa 51 e2 33 |......Q.3| esl[1].signature[74].data (end:0x000014c7) 000014b0 40 c3 f2 e4 90 48 ce 88 72 52 6a fd f7 52 c3 a7 |@....H..rRj..R..| 000014c0 f3 a3 f2 bc 9f 60 49 |.....`I| 000014c7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[75].owner = {microsoft} 000014d0 60 28 f4 e7 8f 78 4b |`(...xK| 000014d7 64 57 5b d9 12 78 9a 2e 14 |dW[..x...| esl[1].signature[75].data (end:0x000014f7) 000014e0 ad 56 f6 34 1f 52 af 6b f8 0c f9 44 00 78 59 75 |.V.4.R.k...D.xYu| 000014f0 e9 f0 4e 2d 64 d7 45 |..N-d.E| 000014f7 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[1].signature[76].owner = {microsoft} 00001500 60 28 f4 e7 8f 78 4b |`(...xK| 00001507 45 c7 c8 ae 75 0a cf bb 48 |E...u...H| esl[1].signature[76].data (end:0x00001527) 00001510 fc 37 52 7d 64 12 dd 64 4d ae d8 91 3c cd 8a 24 |.7R}d..dM...<..$| 00001520 c9 4d 85 69 67 df 8e |.M.ig..| 00001527 efivar-39/tests/machine1/data/000077500000000000000000000000001455652431600163365ustar00rootroot00000000000000efivar-39/tests/machine1/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e000066400000000000000000000000341455652431600250130ustar00rootroot00000000000000efivar-39/tests/machine1/data/AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34000066400000000000000000000001251455652431600252160ustar00rootroot00000000000000efivar-39/tests/machine1/data/AWVC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13000066400000000000000000000000101455652431600240410ustar00rootroot00000000000000efivar-39/tests/machine1/data/AmiGopOutputDp-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000421455652431600260540ustar00rootroot00000000000000 A efivar-39/tests/machine1/data/AmtResetbyFlag-9482539b-7c17-44ed-b68c-2c8f7f33b7b2000066400000000000000000000000051455652431600257310ustar00rootroot00000000000000efivar-39/tests/machine1/data/AssetTag-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000051455652431600247050ustar00rootroot00000000000000efivar-39/tests/machine1/data/AuditMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600250220ustar00rootroot00000000000000efivar-39/tests/machine1/data/BRDS-42780dd5-9a7d-404c-80e4-7f7094360394000066400000000000000000000000141455652431600233040ustar00rootroot00000000000000efivar-39/tests/machine1/data/BiosGuardCapsuleVariable-368b3153-563d-4610-8d94-47a9fa8c4c16000066400000000000000000000000241455652431600274720ustar00rootroot00000000000000efivar-39/tests/machine1/data/BiosGuardRecoveryAddressVariable-368b3152-563d-4670-8d94-47a9fa8c4c16000066400000000000000000000000101455652431600312020ustar00rootroot00000000000000:efivar-39/tests/machine1/data/Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000001721455652431600243570ustar00rootroot00000000000000bFedora*@?#XwWL=0G4\EFI\fedora\shimx64.efiefivar-39/tests/machine1/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002661455652431600243640ustar00rootroot00000000000000bLinux Firmware Updater*@?#XwWL=0G4\EFI\fedora\shimx64.efi\fwupdx64.efiefivar-39/tests/machine1/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600254160ustar00rootroot00000000000000efivar-39/tests/machine1/data/BootFFF6-5990c250-676b-4ff7-8a0d-529319d0b254000066400000000000000000000001161455652431600241430ustar00rootroot00000000000000,BiosConnectŶk I|5?m˶dx(kuB5J;efivar-39/tests/machine1/data/BootFFF7-5990c250-676b-4ff7-8a0d-529319d0b254000066400000000000000000000001161455652431600241440ustar00rootroot00000000000000,Fix my DellŶk I|5?m˶dx(kuB5J;efivar-39/tests/machine1/data/BootFFF8-5990c250-676b-4ff7-8a0d-529319d0b254000066400000000000000000000001161455652431600241450ustar00rootroot00000000000000,Fix my DellŶk I|5?m˶dx(kuB5J;efivar-39/tests/machine1/data/BootFFFB-5990c250-676b-4ff7-8a0d-529319d0b254000066400000000000000000000001261455652431600241600ustar00rootroot00000000000000,Diagnostic BootŶk I|5?m˶dx(kuB5J;efivar-39/tests/machine1/data/BootFFFC-5990c250-676b-4ff7-8a0d-529319d0b254000066400000000000000000000001361455652431600241620ustar00rootroot00000000000000,Temporary Boot MenuŶk I|5?m˶dx(kuB5J;efivar-39/tests/machine1/data/BootFFFD-5990c250-676b-4ff7-8a0d-529319d0b254000066400000000000000000000001221455652431600241560ustar00rootroot00000000000000,Graphic SetupŶk I|5?m˶dx(kuB5J;efivar-39/tests/machine1/data/BootFFFE-5990c250-676b-4ff7-8a0d-529319d0b254000066400000000000000000000001141455652431600241600ustar00rootroot00000000000000,Text SetupŶk I|5?m˶dx(kuB5J;efivar-39/tests/machine1/data/BootList-65cbd9d9-ab77-4a61-b288-2763405d588a000066400000000000000000000000051455652431600245340ustar00rootroot00000000000000efivar-39/tests/machine1/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000101455652431600266340ustar00rootroot00000000000000efivar-39/tests/machine1/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000101455652431600250420ustar00rootroot00000000000000efivar-39/tests/machine1/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000001601455652431600241570ustar00rootroot00000000000000 A  A  A  Aefivar-39/tests/machine1/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000001601455652431600246160ustar00rootroot00000000000000 A  A  A  Aefivar-39/tests/machine1/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000421455652431600243570ustar00rootroot00000000000000 A efivar-39/tests/machine1/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000421455652431600250160ustar00rootroot00000000000000 A efivar-39/tests/machine1/data/CpuSetupVolatileData-b08f97ff-e6e8-4193-a997-5e9e9b0adb32000066400000000000000000000000201455652431600272720ustar00rootroot000000000000004> efivar-39/tests/machine1/data/CpuSmm-90d93e09-4e91-4b3d-8c77-c82ff10e3c81000066400000000000000000000000121455652431600242550ustar00rootroot00000000000000efivar-39/tests/machine1/data/CurrentPolicy-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000051455652431600257410ustar00rootroot00000000000000'efivar-39/tests/machine1/data/DDIAG_BHISTORY-1358e20b-0e48-4f06-8ddd-8809b8a74d6c000066400000000000000000000001241455652431600252050ustar00rootroot00000000000000PY K#1L#Lefivar-39/tests/machine1/data/DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53000066400000000000000000000000121455652431600261530ustar00rootroot00000000000000efivar-39/tests/machine1/data/DellBrightnessValue-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000061455652431600272350ustar00rootroot00000000000000 efivar-39/tests/machine1/data/DellMonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000201455652431600272750ustar00rootroot00000000000000}efivar-39/tests/machine1/data/DellSecureBootMode-7b59104a-c00d-4158-87ff-f04d6396a915000066400000000000000000000000061455652431600263650ustar00rootroot00000000000000efivar-39/tests/machine1/data/DellVar01-e224eaa0-4358-6ac8-3cce-daa44e54f638000066400000000000000000000000051455652431600247420ustar00rootroot00000000000000efivar-39/tests/machine1/data/DeployedMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600255210ustar00rootroot00000000000000efivar-39/tests/machine1/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6000066400000000000000000000000051455652431600264700ustar00rootroot00000000000000efivar-39/tests/machine1/data/EWRD-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000451455652431600242260ustar00rootroot00000000000000efivar-39/tests/machine1/data/EfiTime-9d0da369-540b-46f8-85a0-2b5f2c301e15000066400000000000000000000000071455652431600242710ustar00rootroot00000000000000efivar-39/tests/machine1/data/Ep-73dad563-8f27-42af-918f-8651eb0a93ef000066400000000000000000000000441455652431600235040ustar00rootroot00000000000000=K+b? ,Befivar-39/tests/machine1/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000421455652431600243700ustar00rootroot00000000000000 A efivar-39/tests/machine1/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000421455652431600250270ustar00rootroot00000000000000 A efivar-39/tests/machine1/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000101455652431600255620ustar00rootroot00000000000000I:efivar-39/tests/machine1/data/FWUPDATE_DEBUG_LOG-0abba7dc-e516-4167-bbf5-4d9d1c739416000066400000000000000000000040021455652431600260210ustar00rootroot00000000000000../plugins/uefi/efi/fwupdate.c:462:find_updates(): Found update fwupd-ce945437-7358-49f1-95d8-6b694a10a755-0 ../plugins/uefi/efi/fwupdate.c:1232:efi_main(): Adding new capsule ../plugins/uefi/efi/fwupdate.c:641:search_file(): File \EFI\fedora\fw\fwupd-ce945437-7358-49f1-95d8-6b694a10a755.cap searched ../plugins/uefi/efi/fwupdate.c:702:open_file(): Found device ../plugins/uefi/efi/fwupdate.c:709:open_file(): Found volume ../plugins/uefi/efi/fwupdate.c:717:open_file(): Found file ../plugins/uefi/efi/fwupdate.c:1043:add_capsule(): Read file; 13804911 bytes ../plugins/uefi/efi/fwupdate.c:1044:add_capsule(): updates guid: CE945437-7358-49F1-95D8-6B694A10A755 ../plugins/uefi/efi/fwupdate.c:1045:add_capsule(): File guid: CE945437-7358-49F1-95D8-6B694A10A755 ../plugins/uefi/efi/fwupdate.c:1246:efi_main(): n_updates: 1 ../plugins/uefi/efi/fwupdate.c:1096:apply_capsules(): QueryCapsuleCapabilities: Success max: 104857600 reset:1 ../plugins/uefi/efi/fwupdate.c:1097:apply_capsules(): Capsules: 1 efivar-39/tests/machine1/data/FastBootOption-b540a530-6978-4da7-91cb-7207d764d262000066400000000000000000000004401455652431600255360ustar00rootroot00000000000000 A  *@?#XwWL=0GF\EFI\Microsoft\Boot\bootmgfw.efiWINDOWSxBCDOBJECT={9dea862c-5cdd-4e70-acc1-f32b344d4795}efivar-39/tests/machine1/data/GNVS_PTR-0a602c5b-05a0-40c4-9181-edcd891d0003000066400000000000000000000000141455652431600242170ustar00rootroot00000000000000:efivar-39/tests/machine1/data/GPC-42780dd5-9a7d-404c-80e4-7f7094360394000066400000000000000000000000211455652431600231610ustar00rootroot00000000000000efivar-39/tests/machine1/data/GPC-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000211455652431600240700ustar00rootroot00000000000000efivar-39/tests/machine1/data/GPC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13000066400000000000000000000000211455652431600237140ustar00rootroot00000000000000efivar-39/tests/machine1/data/GsetLegacyIplDefaultValue-3a21751e-bd32-4825-8754-82a47f01b09b000066400000000000000000000000571455652431600276130ustar00rootroot00000000000000efivar-39/tests/machine1/data/GsetUefiIplDefaultValue-7f3301c7-2405-4765-aa2e-d9ed28aea950000066400000000000000000000000571455652431600275230ustar00rootroot00000000000000efivar-39/tests/machine1/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0000066400000000000000000000000141455652431600241740ustar00rootroot00000000000000P -:efivar-39/tests/machine1/data/InternalHddFlag-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000061455652431600261610ustar00rootroot00000000000000efivar-39/tests/machine1/data/IsRTCBad-65cbd9d9-ab77-4a61-b288-2763405d588a000066400000000000000000000000051455652431600243300ustar00rootroot00000000000000efivar-39/tests/machine1/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000050161455652431600235700ustar00rootroot00000000000000'Y䔧J\+rMVpNI\00'R]L6wB0  *H  0g1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. Platform Key0 160601202248Z 230601203247Z0k1 0 UUS10 U Texas10U Round Rock10U Dell Inc.1#0!U Dell Inc. Key Exchange Key0"0  *H 0 Ѝ;A)LBf-3I}c␰f0[ Ug[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62efivar-39/tests/machine1/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000050161455652431600250750ustar00rootroot00000000000000Y䔧J\+rMVpNI\00'R]L6wB0  *H  0g1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. Platform Key0 160601202248Z 230601203247Z0k1 0 UUS10 U Texas10U Round Rock10U Dell Inc.1#0!U Dell Inc. Key Exchange Key0"0  *H 0 Ѝ;A)LBf-3I}c␰f0[ Ug[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62efivar-39/tests/machine1/data/Kernel_ATPSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600265570ustar00rootroot00000000000000efivar-39/tests/machine1/data/Kernel_DriverSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600273660ustar00rootroot00000000000000efivar-39/tests/machine1/data/Kernel_EntRevokeSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600300350ustar00rootroot00000000000000efivar-39/tests/machine1/data/Kernel_RvkSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600266750ustar00rootroot00000000000000efivar-39/tests/machine1/data/Kernel_SiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600262120ustar00rootroot00000000000000efivar-39/tests/machine1/data/Kernel_SkuSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600266750ustar00rootroot00000000000000efivar-39/tests/machine1/data/Kernel_WinSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600266700ustar00rootroot00000000000000efivar-39/tests/machine1/data/KvmActive-f7f70708-b3c0-4be0-b00c-ae91da4adc03000066400000000000000000000000051455652431600251730ustar00rootroot00000000000000efivar-39/tests/machine1/data/LastKnownGoodConfig-c54906f9-eb09-4457-a007-4154652fcfa5000066400000000000000000000145021455652431600265710ustar00rootroot00000000000000>)AMITSESetup8ByE`N4Q SetupCևK?>6 PM)   I)  PM) PM) irQQRSTUVWXY P $ a6 PQRSTUVWXY P$ aPQRSTUVWXY $ a6 PQRSTUVWXY P$=9= =9= =9= =9= =9= =9= 7GKd_w HAZnnnn2}}}d?GdZ_?GdZ_?GdZ_?GdZ_22F 6->  'KKKK  ,d   0@ qqqqqqqq <<<<<<<< <<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<j    35PDLQ22Z   Timeoutaʓ +UsbSupportCևK?>6 ! yzAoJ'H yzAoJ'HzAoJ'HzAoJ'HzAoJ'HzAoJ'HzAoJ'HzAoJ'H]zAoJ'Hefivar-39/tests/machine1/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000061455652431600261230ustar00rootroot00000000000000aefivar-39/tests/machine1/data/MeSetupStorage-5432122d-d034-49d2-a6de-65a829eb4c74000066400000000000000000000000211455652431600256570ustar00rootroot00000000000000efivar-39/tests/machine1/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829000066400000000000000000000000051455652431600310100ustar00rootroot00000000000000efivar-39/tests/machine1/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292000066400000000000000000000000051455652431600320020ustar00rootroot00000000000000efivar-39/tests/machine1/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000101455652431600264730ustar00rootroot00000000000000efivar-39/tests/machine1/data/NBGopPlatformData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000061455652431600265730ustar00rootroot00000000000000efivar-39/tests/machine1/data/NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2000066400000000000000000000000141455652431600257630ustar00rootroot00000000000000efivar-39/tests/machine1/data/OfflineUniqueIDEKPub-eaec226f-c9a3-477a-a826-ddc716cdc0e3000066400000000000000000000004041455652431600272720ustar00rootroot00000000000000 5#i:C> SC@R45lߏ؍ rjh4l[vk"Q>[mB2ʴ0"gkvI!ف7LW{d1Dd<?v@Y5f,L:[ĐzAjG*+a|t%;>4c$'W^z\76㾕Ϥn ̄grwjJ-㫍q\y`Š "}N{jd=n efivar-39/tests/machine1/data/OfflineUniqueIDEKPubCRC-eaec226f-c9a3-477a-a826-ddc716cdc0e3000066400000000000000000000000101455652431600276130ustar00rootroot00000000000000jJWefivar-39/tests/machine1/data/OsExtenedType-dd7f0389-ab93-4dbe-998b-c9c5ca8f97d8000066400000000000000000000000051455652431600261420ustar00rootroot00000000000000efivar-39/tests/machine1/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600257150ustar00rootroot00000000000000efivar-39/tests/machine1/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600276230ustar00rootroot00000000000000efivar-39/tests/machine1/data/OsType-a66919d2-6c45-403e-b00a-9bce58e97315000066400000000000000000000000051455652431600242050ustar00rootroot00000000000000efivar-39/tests/machine1/data/PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5000066400000000000000000000000131455652431600244030ustar00rootroot00000000000000efivar-39/tests/machine1/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000017211455652431600234670ustar00rootroot00000000000000'Y䔧J\+rMVpNI\00P綼@-xh0  *H  0g1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. Platform Key0 160601202007Z 310601203006Z0g1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. Platform Key0"0  *H 0  :@gX#D D6mKXN,"[.Ŝ(}p'8κ$® 7S6@vvd'&? E)x7^9V136Ә9'gcXDHi_TOD4zW,3JN]=ʤdJ<&{i_C_9 $q޽Bs<>TuSIT dqGo.pC7od^cqCE0C0U0U00UFo RV9HHu0  *H  RyrIi%\j2t)iF`Rz3 hs8äggqhq@nYR R'l҉4Y*5&ܹ70(wS._@6cTc2yب&*k(&Zʿ`9k|Ӯ7R(;7 ~ 1ױ@3y$,C[B,llH#8>UI9̲e>$E[(: Kl!efivar-39/tests/machine1/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000017211455652431600247740ustar00rootroot00000000000000Y䔧J\+rMVpNI\00P綼@-xh0  *H  0g1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. Platform Key0 160601202007Z 310601203006Z0g1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. Platform Key0"0  *H 0  :@gX#D D6mKXN,"[.Ŝ(}p'8κ$® 7S6@vvd'&? E)x7^9V136Ә9'gcXDHi_TOD4zW,3JN]=ʤdJ<&{i_C_9 $q޽Bs<>TuSIT dqGo.pC7od^cqCE0C0U0U00UFo RV9HHu0  *H  RyrIi%\j2t)iF`Rz3 hs8äggqhq@nYR R'l҉4Y*5&ܹ70(wS._@6cTc2yب&*k(&Zʿ`9k|Ӯ7R(;7 ~ 1ױ@3y$,C[B,llH#8>UI9̲e>$E[(: Kl!efivar-39/tests/machine1/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000121455652431600255330ustar00rootroot00000000000000en-USefivar-39/tests/machine1/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000211455652431600265110ustar00rootroot00000000000000en-US;x-UEFIefivar-39/tests/machine1/data/PreMonotoicCount-65cbd9d9-ab77-4a61-b288-2763405d588a000066400000000000000000000000101455652431600262400ustar00rootroot00000000000000efivar-39/tests/machine1/data/RstOptaneConfig-4da4f952-2516-4d06-8975-65036403a8c7000066400000000000000000000000051455652431600255340ustar00rootroot00000000000000efivar-39/tests/machine1/data/SADS-42780dd5-9a7d-404c-80e4-7f7094360394000066400000000000000000000000061455652431600233050ustar00rootroot00000000000000efivar-39/tests/machine1/data/SADS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000061455652431600242140ustar00rootroot00000000000000efivar-39/tests/machine1/data/SADS-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13000066400000000000000000000000061455652431600240400ustar00rootroot00000000000000efivar-39/tests/machine1/data/SIDSUPPORT-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000051455652431600253650ustar00rootroot00000000000000efivar-39/tests/machine1/data/SMBIOS_ENTRY_ADDR-0a602c5b-05a0-40c4-9181-edcd891d0036000066400000000000000000000000141455652431600254720ustar00rootroot00000000000000efivar-39/tests/machine1/data/SOFTWAREGUARDSTATUS-9cb2e73f-7325-40f4-a484-659bb344c3cd000066400000000000000000000000051455652431600260230ustar00rootroot00000000000000efivar-39/tests/machine1/data/SPLC-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000151455652431600242230ustar00rootroot000000000000000uefivar-39/tests/machine1/data/SPLC-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13000066400000000000000000000000151455652431600240470ustar00rootroot00000000000000@0uefivar-39/tests/machine1/data/SataPortNumber-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000071455652431600261020ustar00rootroot00000000000000efivar-39/tests/machine1/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252210ustar00rootroot00000000000000efivar-39/tests/machine1/data/ServiceTag-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000051455652431600252260ustar00rootroot00000000000000efivar-39/tests/machine1/data/SetUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65000066400000000000000000000000101455652431600261320ustar00rootroot00000000000000 efivar-39/tests/machine1/data/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000133061455652431600244360ustar00rootroot00000000000000PM)   I)  PM) PM) irQQRSTUVWXY P $ a6 PQRSTUVWXY P$ aPQRSTUVWXY $ a6 PQRSTUVWXY P$=9= =9= =9= =9= =9= =9= 7GKd_w HAZnnnn2}}}d?GdZ_?GdZ_?GdZ_?GdZ_22F 6->  'KKKK  ,d   0@ qqqqqqqq <<<<<<<< <<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<j    35PDLQ22Z   efivar-39/tests/machine1/data/SetupCpuFeatures-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000641455652431600266020ustar00rootroot00000000000000 efivar-39/tests/machine1/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600250540ustar00rootroot00000000000000efivar-39/tests/machine1/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002241455652431600265100ustar00rootroot00000000000000;y@ nvp€N(I[cmD%L$eҰ&LP@A6C(Y䔧J\+rfW<&4Nwna⛇=J绣'ODgCH(s`.EߌKQ.h,efivar-39/tests/machine1/data/SimpleBootFlag-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000051455652431600260410ustar00rootroot00000000000000efivar-39/tests/machine1/data/SimpleBootFlagBackUp-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000051455652431600271270ustar00rootroot00000000000000efivar-39/tests/machine1/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600271420ustar00rootroot00000000000000efivar-39/tests/machine1/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600266000ustar00rootroot00000000000000<:efivar-39/tests/machine1/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600273530ustar00rootroot00000000000000 efivar-39/tests/machine1/data/SolActive-f7f70708-b3c0-4be0-b00c-ae91da4adc03000066400000000000000000000000051455652431600251730ustar00rootroot00000000000000efivar-39/tests/machine1/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824000066400000000000000000000145741455652431600251730ustar00rootroot00000000000000NVARSetupPM)   I)  PM) PM) irQQRSTUVWXY P $ a6 PQRSTUVWXY P$ aPQRSTUVWXY $ a6 PQRSTUVWXY P$=9= =9= =9= =9= =9= =9= 7GKd_w HAZnnnn2}}}d?GdZ_?GdZ_?GdZ_?GdZ_22FِN=Kw/<8ByE`N4aʓ +CևK?>6 efivar-39/tests/machine1/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000121455652431600261100ustar00rootroot00000000000000pefivar-39/tests/machine1/data/TPM_NVSelection-8e1a7a52-df0d-460d-a825-d08acf2bb44d000066400000000000000000000000051455652431600262300ustar00rootroot00000000000000efivar-39/tests/machine1/data/TbtPresentStatusOnPost-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000051455652431600277670ustar00rootroot00000000000000efivar-39/tests/machine1/data/TbtSetupVolatileData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000061455652431600273730ustar00rootroot00000000000000efivar-39/tests/machine1/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600245760ustar00rootroot00000000000000efivar-39/tests/machine1/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000141455652431600262260ustar00rootroot00000000000000:efivar-39/tests/machine1/data/UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3000066400000000000000000000000441455652431600257200ustar00rootroot00000000000000+.lGiY3їPA$r%efivar-39/tests/machine1/data/UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000451455652431600254600ustar00rootroot00000000000000efivar-39/tests/machine1/data/UserBootOrder-65cbd9d9-ab77-4a61-b288-2763405d588a000066400000000000000000000000401455652431600255320ustar00rootroot00000000000000efivar-39/tests/machine1/data/UserBootOrderCount-65cbd9d9-ab77-4a61-b288-2763405d588a000066400000000000000000000000141455652431600265440ustar00rootroot00000000000000efivar-39/tests/machine1/data/UserDefaults-c54906f9-eb09-4457-a007-4154652fcfa5000066400000000000000000000145371455652431600253300ustar00rootroot00000000000000[)AMITSESetup8ByE`N4Q ^SetupCևK?>6 PM)   I)  PM) PM) irQQRSTUVWXY P $ a6 PQRSTUVWXY P$ aPQRSTUVWXY $ a6 PQRSTUVWXY P$=9= =9= =9= =9= =9= =9= 7GKd_w HAZnnnn2}}}d?GdZ_?GdZ_?GdZ_?GdZ_22F 6->  'KKKK  ,d   0@ qqqqqqqq <<<<<<<< <<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<j    2Z   Timeoutaʓ +UsbSupportCևK?>6 !*yzAoJ'H yzAoJ'HzAoJ'HzAoJ'HzAoJ'HzAoJ'HzAoJ'HzAoJ'HzAoJ'H]zAoJ'Hefivar-39/tests/machine1/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252400ustar00rootroot00000000000000efivar-39/tests/machine1/data/WAND-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000131455652431600242110ustar00rootroot000000000000002222efivar-39/tests/machine1/data/WGDS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000271455652431600242310ustar00rootroot00000000000000efivar-39/tests/machine1/data/WRDD-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000071455652431600242230ustar00rootroot00000000000000PAefivar-39/tests/machine1/data/WRDD-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13000066400000000000000000000000071455652431600240470ustar00rootroot00000000000000PAefivar-39/tests/machine1/data/WRDS-92daaf2f-c02b-455b-b2ec-f5a3594f4aea000066400000000000000000000000201455652431600242350ustar00rootroot00000000000000efivar-39/tests/machine1/data/WRDS-c07a1f7c-fa13-4fcb-92ca-3b32bc092e13000066400000000000000000000000121455652431600240620ustar00rootroot00000000000000efivar-39/tests/machine1/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000100711455652431600236420ustar00rootroot00000000000000'Y䔧J\+rMVpNI\004 MQ[0  *H  0k1 0 UUS10 U Texas10U Round Rock10U Dell Inc.1#0!U Dell Inc. Key Exchange Key0 160603142606Z 180603143605Z0b1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. UEFI DB0"0  *H 0 uvjsaE1S+ZE*~Cڑfט@[He?˳AߏA 8ˍ5 }M1-ΛXk®Re]&/ʛf1WOEq˚"!kJ){-J1:Gx8A,!gU O\ 4] K1U1=dP % gisJ=K)Jp2;c e ,ґtNH#GQ g0e0U0U% 0 +0U#0{ݘc<`rr0U]w-ȀfU 1k090  *H  =&)9mty> ٰ^U8eo1QRږ75Cgn״ 2`bI\|dȩ8]C܎; 7^reu:CDE+ה=#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~efivar-39/tests/machine1/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000100711455652431600250450ustar00rootroot00000000000000Y䔧J\+rMVpNI\004 MQ[0  *H  0k1 0 UUS10 U Texas10U Round Rock10U Dell Inc.1#0!U Dell Inc. Key Exchange Key0 160603142606Z 180603143605Z0b1 0 UUS10 U Texas10U Round Rock10U Dell Inc.10U Dell Inc. UEFI DB0"0  *H 0 uvjsaE1S+ZE*~Cڑfט@[He?˳AߏA 8ˍ5 }M1-ΛXk®Re]&/ʛf1WOEq˚"!kJ){-J1:Gx8A,!gU O\ 4] K1U1=dP % gisJ=K)Jp2;c e ,ґtNH#GQ g0e0U0U% 0 +0U#0{ݘc<`rr0U]w-ȀfU 1k090  *H  =&)9mty> ٰ^U8eo1QRږ75Cgn״ 2`bI\|dȩ8]C܎; 7^reu:CDE+ה=#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~efivar-39/tests/machine1/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000124531455652431600240400ustar00rootroot00000000000000'Y䔧J\+r0k0S a j0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 100706204023Z 250706205023Z0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Windows PCA 20100"0  *H 0 y:d*usл> 䱟Ȕ8|3U#f.(HSQ~&tYƢRpZ,}fobnmK/5lޤjcZ_ Ma ~1l M8FsivUiL4뺱)~OrXbVldwFe)L#_o,r(k>|yO~:p'k (smT(Lk]]37%a4jB|:YBm:P[H00 +70UO$y70 +7  SubCA0 U0U00U#0Vˏ\bh=[Κ0VUO0M0KIGEhttp://crl.microsoft.com/pki/crl/products/MicRooCerAut_2010-06-23.crl0Z+N0L0J+0>http://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0U 00 +7.00=+1http://www.microsoft.com/PKI/docs/CPS/default.htm0@+042 Legal_Policy_Statement. 0  *H  .Ao;9”pdVmoSZFlTV<qQT~B3 $$ܖ9Vs~P#V$ʻ/'硶 bAHtP)+)y$.@_3T]@bMHnAGRW:V&`ubE>[D#c%6wo["#jAB%{Җ7b95[Ì7_Sѣ7Okv丏u,AYmNNrVH#шO p_kr Iw ]8B7P)ƚ%U@ʭd1Ty֫3&maI%‹tݔ3BPPb즂|f왰X]aљ/I>>   |Zɕχ ]r}*81(LRj}q  p?VL&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrLwY2M`(xK^T`< k覃R8wY2M`(xKƨXdoy(#g+69ОwY2M`(xK _NQxmЁ%orxRYe&wY2M`(xK Cڬz0eu1{ 될ctwY2M`(xK 9v-6=cqZ9ϰF\`lk׽wY2M`(xK o)o3}rK H:*?OwY2M`(xK !Hʃ62u> [1R*[wY2M`(xKoN0;t􀠀Ѐ+ot!hwY2M`(xKN: [CƦ@O4=9bgΔ.#ڒ wY2M`(xK34)bퟗ>H-.ImTdwY2M`(xK+&B.6_K 'lKzoD/ki9wY2M`(xK+,'R*]IZ+R]fbUwY2M`(xK,s3%mԤ<[UYPPR}wY2M`(xK.pgsQpW2.#ӹ+Q}wY2M`(xK0f(Tw0W(JF}8zTiv^uҍwY2M`(xK6Awz/^g4g^Ù^i5 ҽwY2M`(xK8A!6\ !`9MlN g`b[wY2M`(xK?Λ>TR^·mt:syqUpj>swY2M`(xKCʃc| C-/&zKuwY2M`(xKGa':k,Zmk6!h,*Z߽wY2M`(xKQ1s>!"Ty 0a5wY2M`(xKZIU9[.B,/gg6A+\wY2M`(xKkxA{^`Gr̴/fwY2M`(xKlTGYQ&l+585rѓ.wY2M`(xKo(qկ.{˫d|eͶ& :x^wY2M`(xKqo"I~TFb$ whٿcuwY2M`(xKrk>Tj0=ppq-ĝ,#wY2M`(xKrg]V;ݼ2ت^/m(ؽwY2M`(xKx'6,q}䱿CqZH[ʤKŽwY2M`(xKeӇk)T̕SϪȣ;3佚wY2M`(xK;δCΝч͛YA=Xo+V7W_gwY2M`(xKZ~OG q"8b:ߒ=wY2M`(xKHY jagznFdr!YEwY2M`(xK4͐e;=<5P_{c!wY2M`(xK se(Q$Q?eYW5)@νwY2M`(xK5g+6~OIia]JlrMBwY2M`(xK,";VB\GYG8DoYwY2M`(xKn=)t=J2@ؽwY2M`(xKcOx,7`XbfnmwY2M`(xKϲ2.KmH],qgrRY\u"6wY2M`(xKaJ~UәnE AR'[wY2M`(xKU =HZ7?=|cwY2M`(xKw ^; b x  S^ˇ k/wY2M`(xK<9"`tFu7̔ܭZ˦G/4q9脽wY2M`(xK;S> #Aryę-æ6wY2M`(xKQ3@HΈrRjRç`IwY2M`(xKdW[x.V4Rk DxYuN-dEwY2M`(xKEȮu ϻH7R}ddMؑ<͊$Migߎefivar-39/tests/machine1/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000124531455652431600252430ustar00rootroot00000000000000Y䔧J\+r0k0S a j0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 100706204023Z 250706205023Z0y1 0 UUS10U Washington10URedmond10U Microsoft Corporation1#0!UMicrosoft Windows PCA 20100"0  *H 0 y:d*usл> 䱟Ȕ8|3U#f.(HSQ~&tYƢRpZ,}fobnmK/5lޤjcZ_ Ma ~1l M8FsivUiL4뺱)~OrXbVldwFe)L#_o,r(k>|yO~:p'k (smT(Lk]]37%a4jB|:YBm:P[H00 +70UO$y70 +7  SubCA0 U0U00U#0Vˏ\bh=[Κ0VUO0M0KIGEhttp://crl.microsoft.com/pki/crl/products/MicRooCerAut_2010-06-23.crl0Z+N0L0J+0>http://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0U 00 +7.00=+1http://www.microsoft.com/PKI/docs/CPS/default.htm0@+042 Legal_Policy_Statement. 0  *H  .Ao;9”pdVmoSZFlTV<qQT~B3 $$ܖ9Vs~P#V$ʻ/'硶 bAHtP)+)y$.@_3T]@bMHnAGRW:V&`ubE>[D#c%6wo["#jAB%{Җ7b95[Ì7_Sѣ7Okv丏u,AYmNNrVH#шO p_kr Iw ]8B7P)ƚ%U@ʭd1Ty֫3&maI%‹tݔ3BPPb즂|f왰X]aљ/I>>   |Zɕχ ]r}*81(LRj}q  p?VL&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrLwY2M`(xK^T`< k覃R8wY2M`(xKƨXdoy(#g+69ОwY2M`(xK _NQxmЁ%orxRYe&wY2M`(xK Cڬz0eu1{ 될ctwY2M`(xK 9v-6=cqZ9ϰF\`lk׽wY2M`(xK o)o3}rK H:*?OwY2M`(xK !Hʃ62u> [1R*[wY2M`(xKoN0;t􀠀Ѐ+ot!hwY2M`(xKN: [CƦ@O4=9bgΔ.#ڒ wY2M`(xK34)bퟗ>H-.ImTdwY2M`(xK+&B.6_K 'lKzoD/ki9wY2M`(xK+,'R*]IZ+R]fbUwY2M`(xK,s3%mԤ<[UYPPR}wY2M`(xK.pgsQpW2.#ӹ+Q}wY2M`(xK0f(Tw0W(JF}8zTiv^uҍwY2M`(xK6Awz/^g4g^Ù^i5 ҽwY2M`(xK8A!6\ !`9MlN g`b[wY2M`(xK?Λ>TR^·mt:syqUpj>swY2M`(xKCʃc| C-/&zKuwY2M`(xKGa':k,Zmk6!h,*Z߽wY2M`(xKQ1s>!"Ty 0a5wY2M`(xKZIU9[.B,/gg6A+\wY2M`(xKkxA{^`Gr̴/fwY2M`(xKlTGYQ&l+585rѓ.wY2M`(xKo(qկ.{˫d|eͶ& :x^wY2M`(xKqo"I~TFb$ whٿcuwY2M`(xKrk>Tj0=ppq-ĝ,#wY2M`(xKrg]V;ݼ2ت^/m(ؽwY2M`(xKx'6,q}䱿CqZH[ʤKŽwY2M`(xKeӇk)T̕SϪȣ;3佚wY2M`(xK;δCΝч͛YA=Xo+V7W_gwY2M`(xKZ~OG q"8b:ߒ=wY2M`(xKHY jagznFdr!YEwY2M`(xK4͐e;=<5P_{c!wY2M`(xK se(Q$Q?eYW5)@νwY2M`(xK5g+6~OIia]JlrMBwY2M`(xK,";VB\GYG8DoYwY2M`(xKn=)t=J2@ؽwY2M`(xKcOx,7`XbfnmwY2M`(xKϲ2.KmH],qgrRY\u"6wY2M`(xKaJ~UәnE AR'[wY2M`(xKU =HZ7?=|cwY2M`(xKw ^; b x  S^ˇ k/wY2M`(xK<9"`tFu7̔ܭZ˦G/4q9脽wY2M`(xK;S> #Aryę-æ6wY2M`(xKQ3@HΈrRjRç`IwY2M`(xKdW[x.V4Rk DxYuN-dEwY2M`(xKEȮu ϻH7R}ddMؑ<͊$Migߎefivar-39/tests/machine1/data/ePSAVersion-66b36b33-8094-424d-ba45-e876d62c45c1000066400000000000000000000000141455652431600250370ustar00rootroot000000000000004400.06fwupd-ce945437-7358-49f1-95d8-6b694a10a755-0-0abba7dc-e516-4167-bbf5-4d9d1c739416000066400000000000000000000003461455652431600307220ustar00rootroot00000000000000efivar-39/tests/machine1/data7TXsIkiJU *@?#XwWL=0G\EFI\fedora\fw\fwupd-ce945437-7358-49f1-95d8-6b694a10a755.capefivar-39/tests/machine1/data/fwupd-ux-capsule-0abba7dc-e516-4167-bbf5-4d9d1c739416000066400000000000000000000003461455652431600264130ustar00rootroot00000000000000b;FɾCV *@?#XwWL=0G\EFI\fedora\fw\fwupd-3b8c8162-188c-46a4-aec9-be43f1d65697.capefivar-39/tests/machine2/000077500000000000000000000000001455652431600154265ustar00rootroot00000000000000efivar-39/tests/machine2/annotations/000077500000000000000000000000001455652431600177635ustar00rootroot00000000000000efivar-39/tests/machine2/annotations/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000203401455652431600260300ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 18 06 00 00 |....| esl[0].signature_list_size = 1560 (0x618) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 fc 05 00 00 |....| esl[0].signature_size = 1532 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 e8 |0...| esl[0].signature[0].data (end:0x00000618) 00000030 30 82 03 d0 a0 03 02 01 02 02 0a 61 0a d1 88 00 |0..........a....| 00000040 00 00 00 00 03 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 |Corporation1;09.| 000000b0 03 55 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 |.U...2Microsoft | 000000c0 43 6f 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 |Corporation Thir| 000000d0 64 20 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c |d Party Marketpl| 000000e0 61 63 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 |ace Root0...1106| 000000f0 32 34 32 30 34 31 32 39 5a 17 0d 32 36 30 36 32 |24204129Z..26062| 00000100 34 32 30 35 31 32 39 5a 30 81 80 31 0b 30 09 06 |4205129Z0..1.0..| 00000110 03 55 04 06 13 02 55 53 31 13 30 11 06 03 55 04 |.U....US1.0...U.| 00000120 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 |...Washington1.0| 00000130 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 |...U....Redmond1| 00000140 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 |.0...U....Micros| 00000150 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 |oft Corporation1| 00000160 2a 30 28 06 03 55 04 03 13 21 4d 69 63 72 6f 73 |*0(..U...!Micros| 00000170 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 |oft Corporation | 00000180 4b 45 4b 20 43 41 20 32 30 31 31 30 82 01 22 30 |KEK CA 20110.."0| 00000190 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 |...*.H..........| 000001a0 01 0f 00 30 82 01 0a 02 82 01 01 00 c4 e8 b5 8a |...0............| 000001b0 bf ad 57 26 b0 26 c3 ea e7 fb 57 7a 44 02 5d 07 |..W&.&....WzD.].| 000001c0 0d da 4a e5 74 2a e6 b0 0f ec 6d eb ec 7f b9 e3 |..J.t*....m.....| 000001d0 5a 63 32 7c 11 17 4f 0e e3 0b a7 38 15 93 8e c6 |Zc2|..O....8....| 000001e0 f5 e0 84 b1 9a 9b 2c e7 f5 b7 91 d6 09 e1 e2 c0 |......,.........| 000001f0 04 a8 ac 30 1c df 48 f3 06 50 9a 64 a7 51 7f c8 |...0..H..P.d.Q..| 00000200 85 4f 8f 20 86 ce fe 2f e1 9f ff 82 c0 ed e9 cd |.O. .../........| 00000210 ce f4 53 6a 62 3a 0b 43 b9 e2 25 fd fe 05 f9 d4 |..Sjb:.C..%.....| 00000220 c4 14 ab 11 e2 23 89 8d 70 b7 a4 1d 4d ec ae e5 |.....#..p...M...| 00000230 9c fa 16 c2 d7 c1 cb d4 e8 c4 2f e5 99 ee 24 8b |........../...$.| 00000240 03 ec 8d f2 8b ea c3 4a fb 43 11 12 0b 7e b5 47 |.......J.C...~.G| 00000250 92 6c dc e6 04 89 eb f5 33 04 eb 10 01 2a 71 e5 |.l......3....*q.| 00000260 f9 83 13 3c ff 25 09 2f 68 76 46 ff ba 4f be dc |...<.%./hvF..O..| 00000270 ad 71 2a 58 aa fb 0e d2 79 3d e4 9b 65 3b cc 29 |.q*X....y=..e;.)| 00000280 2a 9f fc 72 59 a2 eb ae 92 ef f6 35 13 80 c6 02 |*..rY......5....| 00000290 ec e4 5f cc 9d 76 cd ef 63 92 c1 af 79 40 84 79 |.._..v..c...y@.y| 000002a0 87 7f e3 52 a8 e8 9d 7b 07 69 8f 15 02 03 01 00 |...R...{.i......| 000002b0 01 a3 82 01 4f 30 82 01 4b 30 10 06 09 2b 06 01 |....O0..K0...+..| 000002c0 04 01 82 37 15 01 04 03 02 01 00 30 1d 06 03 55 |...7.......0...U| 000002d0 1d 0e 04 16 04 14 62 fc 43 cd a0 3e a4 cb 67 12 |......b.C..>..g.| 000002e0 d2 5b d9 55 ac 7b cc b6 8a 5f 30 19 06 09 2b 06 |.[.U.{..._0...+.| 000002f0 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 |....7.......S.u.| 00000300 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 |b.C.A0...U......| 00000310 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 |..0...U.......0.| 00000320 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 |...0...U.#..0...| 00000330 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 08 3b |EfRC.~X...N.#U.;| 00000340 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 30 53 30 |:"j.0\..U...U0S0| 00000350 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f 63 72 |Q.O.M.Khttp://cr| 00000360 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f |l.microsoft.com/| 00000370 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 |pki/crl/products| 00000380 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 |/MicCorThiParMar| 00000390 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 |Roo_2010-10-05.c| 000003a0 72 6c 30 60 06 08 2b 06 01 05 05 07 01 01 04 54 |rl0`..+........T| 000003b0 30 52 30 50 06 08 2b 06 01 05 05 07 30 02 86 44 |0R0P..+.....0..D| 000003c0 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f |http://www.micro| 000003d0 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 |soft.com/pki/cer| 000003e0 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d |ts/MicCorThiParM| 000003f0 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 |arRoo_2010-10-05| 00000400 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |.crt0...*.H.....| 00000410 0b 05 00 03 82 02 01 00 d4 84 88 f5 14 94 18 02 |................| 00000420 ca 2a 3c fb 2a 92 1c 0c d7 a0 d1 f1 e8 52 66 a8 |.*<.*........Rf.| 00000430 ee a2 b5 75 7a 90 00 aa 2d a4 76 5a ea 79 b7 b9 |...uz...-.vZ.y..| 00000440 37 6a 51 7b 10 64 f6 e1 64 f2 02 67 be f7 a8 1b |7jQ{.d..d..g....| 00000450 78 bd ba ce 88 58 64 0c d6 57 c8 19 a3 5f 05 d6 |x....Xd..W..._..| 00000460 db c6 d0 69 ce 48 4b 32 b7 eb 5d d2 30 f5 c0 f5 |...i.HK2..].0...| 00000470 b8 ba 78 07 a3 2b fe 9b db 34 56 84 ec 82 ca ae |..x..+...4V.....| 00000480 41 25 70 9c 6b e9 fe 90 0f d7 96 1f e5 e7 94 1f |A%p.k...........| 00000490 b2 2a 0c 8d 4b ff 28 29 10 7b f7 d7 7c a5 d1 76 |.*..K.().{..|..v| 000004a0 b9 05 c8 79 ed 0f 90 92 9c c2 fe df 6f 7e 6c 0f |...y........o~l.| 000004b0 7b d4 c1 45 dd 34 51 96 39 0f e5 5e 56 d8 18 05 |{..E.4Q.9..^V...| 000004c0 96 f4 07 a6 42 b3 a0 77 fd 08 19 f2 71 56 cc 9f |....B..w....qV..| 000004d0 86 23 a4 87 cb a6 fd 58 7e d4 69 67 15 91 7e 81 |.#.....X~.ig..~.| 000004e0 f2 7f 13 e5 0d 8b 8a 3c 87 84 eb e3 ce bd 43 e5 |.......<......C.| 000004f0 ad 2d 84 93 8e 6a 2b 5a 7c 44 fa 52 aa 81 c8 2d |.-...j+Z|D.R...-| 00000500 1c bb e0 52 df 00 11 f8 9a 3d c1 60 b0 e1 33 b5 |...R.....=.`..3.| 00000510 a3 88 d1 65 19 0a 1a e7 ac 7c a4 c1 82 87 4e 38 |...e.....|....N8| 00000520 b1 2f 0d c5 14 87 6f fd 8d 2e bc 39 b6 e7 e6 c3 |./....o....9....| 00000530 e0 e4 cd 27 84 ef 94 42 ef 29 8b 90 46 41 3b 81 |...'...B.)..FA;.| 00000540 1b 67 d8 f9 43 59 65 cb 0d bc fd 00 92 4f f4 75 |.g..CYe......O.u| 00000550 3b a7 a9 24 fc 50 41 40 79 e0 2d 4f 0a 6a 27 76 |;..$.PA@y.-O.j'v| 00000560 6e 52 ed 96 69 7b af 0f f7 87 05 d0 45 c2 ad 53 |nR..i{......E..S| 00000570 14 81 1f fb 30 04 aa 37 36 61 da 4a 69 1b 34 d8 |....0..76a.Ji.4.| 00000580 68 ed d6 02 cf 6c 94 0c d3 cf 6c 22 79 ad b1 f0 |h....l....l"y...| 00000590 bc 03 a2 46 60 a9 c4 07 c2 21 82 f1 fd f2 e8 79 |...F`....!.....y| 000005a0 32 60 bf d8 ac a5 22 14 4b ca c1 d8 4b eb 7d 3f |2`....".K...K.}?| 000005b0 57 35 b2 e6 4f 75 b4 b0 60 03 22 53 ae 91 79 1d |W5..Ou..`."S..y.| 000005c0 d6 9b 41 1f 15 86 54 70 b2 de 0d 35 0f 7c b0 34 |..A...Tp...5.|.4| 000005d0 72 ba 97 60 3b f0 79 eb a2 b2 1c 5d a2 16 b8 87 |r..`;.y....]....| 000005e0 c5 e9 1b f6 b5 97 25 6f 38 9f e3 91 fa 8a 79 98 |......%o8.....y.| 000005f0 c3 69 0e b7 a3 1c 20 05 97 f8 ca 14 ae 00 d7 c4 |.i.... .........| 00000600 f3 c0 14 10 75 6b 34 a0 1b b5 99 60 f3 5c b0 c5 |....uk4....`.\..| 00000610 57 4e 36 d2 32 84 bf 9e |WN6.2...| 00000618 efivar-39/tests/machine2/annotations/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000203401455652431600273350ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 18 06 00 00 |....| esl[0].signature_list_size = 1560 (0x618) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 fc 05 00 00 |....| esl[0].signature_size = 1532 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 e8 |0...| esl[0].signature[0].data (end:0x00000618) 00000030 30 82 03 d0 a0 03 02 01 02 02 0a 61 0a d1 88 00 |0..........a....| 00000040 00 00 00 00 03 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 |Corporation1;09.| 000000b0 03 55 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 |.U...2Microsoft | 000000c0 43 6f 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 |Corporation Thir| 000000d0 64 20 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c |d Party Marketpl| 000000e0 61 63 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 |ace Root0...1106| 000000f0 32 34 32 30 34 31 32 39 5a 17 0d 32 36 30 36 32 |24204129Z..26062| 00000100 34 32 30 35 31 32 39 5a 30 81 80 31 0b 30 09 06 |4205129Z0..1.0..| 00000110 03 55 04 06 13 02 55 53 31 13 30 11 06 03 55 04 |.U....US1.0...U.| 00000120 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 |...Washington1.0| 00000130 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 |...U....Redmond1| 00000140 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 |.0...U....Micros| 00000150 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 |oft Corporation1| 00000160 2a 30 28 06 03 55 04 03 13 21 4d 69 63 72 6f 73 |*0(..U...!Micros| 00000170 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 |oft Corporation | 00000180 4b 45 4b 20 43 41 20 32 30 31 31 30 82 01 22 30 |KEK CA 20110.."0| 00000190 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 |...*.H..........| 000001a0 01 0f 00 30 82 01 0a 02 82 01 01 00 c4 e8 b5 8a |...0............| 000001b0 bf ad 57 26 b0 26 c3 ea e7 fb 57 7a 44 02 5d 07 |..W&.&....WzD.].| 000001c0 0d da 4a e5 74 2a e6 b0 0f ec 6d eb ec 7f b9 e3 |..J.t*....m.....| 000001d0 5a 63 32 7c 11 17 4f 0e e3 0b a7 38 15 93 8e c6 |Zc2|..O....8....| 000001e0 f5 e0 84 b1 9a 9b 2c e7 f5 b7 91 d6 09 e1 e2 c0 |......,.........| 000001f0 04 a8 ac 30 1c df 48 f3 06 50 9a 64 a7 51 7f c8 |...0..H..P.d.Q..| 00000200 85 4f 8f 20 86 ce fe 2f e1 9f ff 82 c0 ed e9 cd |.O. .../........| 00000210 ce f4 53 6a 62 3a 0b 43 b9 e2 25 fd fe 05 f9 d4 |..Sjb:.C..%.....| 00000220 c4 14 ab 11 e2 23 89 8d 70 b7 a4 1d 4d ec ae e5 |.....#..p...M...| 00000230 9c fa 16 c2 d7 c1 cb d4 e8 c4 2f e5 99 ee 24 8b |........../...$.| 00000240 03 ec 8d f2 8b ea c3 4a fb 43 11 12 0b 7e b5 47 |.......J.C...~.G| 00000250 92 6c dc e6 04 89 eb f5 33 04 eb 10 01 2a 71 e5 |.l......3....*q.| 00000260 f9 83 13 3c ff 25 09 2f 68 76 46 ff ba 4f be dc |...<.%./hvF..O..| 00000270 ad 71 2a 58 aa fb 0e d2 79 3d e4 9b 65 3b cc 29 |.q*X....y=..e;.)| 00000280 2a 9f fc 72 59 a2 eb ae 92 ef f6 35 13 80 c6 02 |*..rY......5....| 00000290 ec e4 5f cc 9d 76 cd ef 63 92 c1 af 79 40 84 79 |.._..v..c...y@.y| 000002a0 87 7f e3 52 a8 e8 9d 7b 07 69 8f 15 02 03 01 00 |...R...{.i......| 000002b0 01 a3 82 01 4f 30 82 01 4b 30 10 06 09 2b 06 01 |....O0..K0...+..| 000002c0 04 01 82 37 15 01 04 03 02 01 00 30 1d 06 03 55 |...7.......0...U| 000002d0 1d 0e 04 16 04 14 62 fc 43 cd a0 3e a4 cb 67 12 |......b.C..>..g.| 000002e0 d2 5b d9 55 ac 7b cc b6 8a 5f 30 19 06 09 2b 06 |.[.U.{..._0...+.| 000002f0 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 00 75 00 |....7.......S.u.| 00000300 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 04 03 02 |b.C.A0...U......| 00000310 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 |..0...U.......0.| 00000320 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 16 80 14 |...0...U.#..0...| 00000330 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 55 08 3b |EfRC.~X...N.#U.;| 00000340 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 30 53 30 |:"j.0\..U...U0S0| 00000350 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f 2f 63 72 |Q.O.M.Khttp://cr| 00000360 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f |l.microsoft.com/| 00000370 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 63 74 73 |pki/crl/products| 00000380 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d 61 72 |/MicCorThiParMar| 00000390 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 2e 63 |Roo_2010-10-05.c| 000003a0 72 6c 30 60 06 08 2b 06 01 05 05 07 01 01 04 54 |rl0`..+........T| 000003b0 30 52 30 50 06 08 2b 06 01 05 05 07 30 02 86 44 |0R0P..+.....0..D| 000003c0 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f |http://www.micro| 000003d0 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 |soft.com/pki/cer| 000003e0 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 4d |ts/MicCorThiParM| 000003f0 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 35 |arRoo_2010-10-05| 00000400 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |.crt0...*.H.....| 00000410 0b 05 00 03 82 02 01 00 d4 84 88 f5 14 94 18 02 |................| 00000420 ca 2a 3c fb 2a 92 1c 0c d7 a0 d1 f1 e8 52 66 a8 |.*<.*........Rf.| 00000430 ee a2 b5 75 7a 90 00 aa 2d a4 76 5a ea 79 b7 b9 |...uz...-.vZ.y..| 00000440 37 6a 51 7b 10 64 f6 e1 64 f2 02 67 be f7 a8 1b |7jQ{.d..d..g....| 00000450 78 bd ba ce 88 58 64 0c d6 57 c8 19 a3 5f 05 d6 |x....Xd..W..._..| 00000460 db c6 d0 69 ce 48 4b 32 b7 eb 5d d2 30 f5 c0 f5 |...i.HK2..].0...| 00000470 b8 ba 78 07 a3 2b fe 9b db 34 56 84 ec 82 ca ae |..x..+...4V.....| 00000480 41 25 70 9c 6b e9 fe 90 0f d7 96 1f e5 e7 94 1f |A%p.k...........| 00000490 b2 2a 0c 8d 4b ff 28 29 10 7b f7 d7 7c a5 d1 76 |.*..K.().{..|..v| 000004a0 b9 05 c8 79 ed 0f 90 92 9c c2 fe df 6f 7e 6c 0f |...y........o~l.| 000004b0 7b d4 c1 45 dd 34 51 96 39 0f e5 5e 56 d8 18 05 |{..E.4Q.9..^V...| 000004c0 96 f4 07 a6 42 b3 a0 77 fd 08 19 f2 71 56 cc 9f |....B..w....qV..| 000004d0 86 23 a4 87 cb a6 fd 58 7e d4 69 67 15 91 7e 81 |.#.....X~.ig..~.| 000004e0 f2 7f 13 e5 0d 8b 8a 3c 87 84 eb e3 ce bd 43 e5 |.......<......C.| 000004f0 ad 2d 84 93 8e 6a 2b 5a 7c 44 fa 52 aa 81 c8 2d |.-...j+Z|D.R...-| 00000500 1c bb e0 52 df 00 11 f8 9a 3d c1 60 b0 e1 33 b5 |...R.....=.`..3.| 00000510 a3 88 d1 65 19 0a 1a e7 ac 7c a4 c1 82 87 4e 38 |...e.....|....N8| 00000520 b1 2f 0d c5 14 87 6f fd 8d 2e bc 39 b6 e7 e6 c3 |./....o....9....| 00000530 e0 e4 cd 27 84 ef 94 42 ef 29 8b 90 46 41 3b 81 |...'...B.)..FA;.| 00000540 1b 67 d8 f9 43 59 65 cb 0d bc fd 00 92 4f f4 75 |.g..CYe......O.u| 00000550 3b a7 a9 24 fc 50 41 40 79 e0 2d 4f 0a 6a 27 76 |;..$.PA@y.-O.j'v| 00000560 6e 52 ed 96 69 7b af 0f f7 87 05 d0 45 c2 ad 53 |nR..i{......E..S| 00000570 14 81 1f fb 30 04 aa 37 36 61 da 4a 69 1b 34 d8 |....0..76a.Ji.4.| 00000580 68 ed d6 02 cf 6c 94 0c d3 cf 6c 22 79 ad b1 f0 |h....l....l"y...| 00000590 bc 03 a2 46 60 a9 c4 07 c2 21 82 f1 fd f2 e8 79 |...F`....!.....y| 000005a0 32 60 bf d8 ac a5 22 14 4b ca c1 d8 4b eb 7d 3f |2`....".K...K.}?| 000005b0 57 35 b2 e6 4f 75 b4 b0 60 03 22 53 ae 91 79 1d |W5..Ou..`."S..y.| 000005c0 d6 9b 41 1f 15 86 54 70 b2 de 0d 35 0f 7c b0 34 |..A...Tp...5.|.4| 000005d0 72 ba 97 60 3b f0 79 eb a2 b2 1c 5d a2 16 b8 87 |r..`;.y....]....| 000005e0 c5 e9 1b f6 b5 97 25 6f 38 9f e3 91 fa 8a 79 98 |......%o8.....y.| 000005f0 c3 69 0e b7 a3 1c 20 05 97 f8 ca 14 ae 00 d7 c4 |.i.... .........| 00000600 f3 c0 14 10 75 6b 34 a0 1b b5 99 60 f3 5c b0 c5 |....uk4....`.\..| 00000610 57 4e 36 d2 32 84 bf 9e |WN6.2...| 00000618 efivar-39/tests/machine2/annotations/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000125641455652431600257410ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 cf 03 00 00 |....| esl[0].signature_list_size = 975 (0x3cf) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 b3 03 00 00 |....| esl[0].signature_size = 947 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 30 82 03 9f |0...| esl[0].signature[0].data (end:0x000003cf) 00000030 30 82 02 87 a0 03 02 01 02 02 10 3b 98 c7 4f 90 |0..........;..O.| 00000040 10 d1 a9 4c 43 83 36 3d ce d4 85 30 0d 06 09 2a |...LC.6=...0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 72 31 0c 30 0a |.H........0r1.0.| 00000060 06 03 55 04 06 13 03 55 53 41 31 0b 30 09 06 03 |..U....USA1.0...| 00000070 55 04 08 0c 02 43 41 31 11 30 0f 06 03 55 04 07 |U....CA1.0...U..| 00000080 0c 08 53 61 6e 20 4a 6f 73 65 31 22 30 20 06 03 |..San Jose1"0 ..| 00000090 55 04 0a 0c 19 53 75 70 65 72 20 4d 69 63 72 6f |U....Super Micro| 000000a0 20 43 6f 6d 70 75 74 65 72 20 49 6e 63 2e 31 1e | Computer Inc.1.| 000000b0 30 1c 06 03 55 04 03 0c 15 53 55 50 45 52 4d 49 |0...U....SUPERMI| 000000c0 43 52 4f 20 50 4b 20 43 41 20 32 30 31 38 30 1e |CRO PK CA 20180.| 000000d0 17 0d 31 38 31 32 32 30 30 31 34 36 30 34 5a 17 |..181220014604Z.| 000000e0 0d 33 33 31 32 32 30 30 31 35 36 30 33 5a 30 72 |.331220015603Z0r| 000000f0 31 0c 30 0a 06 03 55 04 06 13 03 55 53 41 31 0b |1.0...U....USA1.| 00000100 30 09 06 03 55 04 08 0c 02 43 41 31 11 30 0f 06 |0...U....CA1.0..| 00000110 03 55 04 07 0c 08 53 61 6e 20 4a 6f 73 65 31 22 |.U....San Jose1"| 00000120 30 20 06 03 55 04 0a 0c 19 53 75 70 65 72 20 4d |0 ..U....Super M| 00000130 69 63 72 6f 20 43 6f 6d 70 75 74 65 72 20 49 6e |icro Computer In| 00000140 63 2e 31 1e 30 1c 06 03 55 04 03 0c 15 53 55 50 |c.1.0...U....SUP| 00000150 45 52 4d 49 43 52 4f 20 50 4b 20 43 41 20 32 30 |ERMICRO PK CA 20| 00000160 31 38 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |180.."0...*.H...| 00000170 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000180 01 01 00 b3 98 bf ed 1f c0 69 51 8e 4d aa 91 29 |.........iQ.M..)| 00000190 ce 31 9e 1b 62 8e 02 2a 15 e4 27 1b da ce 95 ea |.1..b..*..'.....| 000001a0 e2 34 b9 f3 5d 5f 41 ae f6 2b 1d 04 65 52 06 37 |.4..]_A..+..eR.7| 000001b0 1b 2b 10 ad 6a 75 0e fa ee 87 d6 78 57 55 c5 79 |.+..ju.....xWU.y| 000001c0 98 6e 39 36 a4 eb 17 69 ee e7 33 5b c2 f0 f9 e5 |.n96...i..3[....| 000001d0 96 fb c7 ee 21 db 41 f5 a4 8a 62 19 83 a3 cb 16 |....!.A...b.....| 000001e0 ab 74 14 2c 0b 58 62 72 d0 f9 e2 c9 5b 31 76 ea |.t.,.Xbr....[1v.| 000001f0 06 59 ba 37 e4 3b ca 8f 58 b1 15 f9 a6 cb 71 8c |.Y.7.;..X.....q.| 00000200 b9 22 69 48 3f 73 57 63 d5 ca 54 e9 ae 89 4b 3c |."iH?sWc..T...K<| 00000210 4b b7 b8 1a d6 66 d8 8e ee 17 7c d9 68 26 d2 b4 |K....f....|.h&..| 00000220 72 1c cd cb 3a bd 2e 14 a1 94 1a 0b e7 54 3b 17 |r...:........T;.| 00000230 eb 94 4b e4 a2 34 90 93 9e 50 aa 5e 4d fb 1f 34 |..K..4...P.^M..4| 00000240 91 d4 50 6f 13 a0 a5 10 49 80 cd 9b 8e 45 2b 7e |..Po....I....E+~| 00000250 c1 b4 92 85 c7 68 b2 65 2f 58 28 7c cb 95 09 08 |.....h.e/X(|....| 00000260 10 37 0a 8c b5 b5 c4 18 40 a7 ad 87 b2 ef a5 c2 |.7......@.......| 00000270 94 04 85 88 02 e7 fa 2b e4 17 07 b5 55 7e 31 2a |.......+....U~1*| 00000280 65 fb ad 02 03 01 00 01 a3 31 30 2f 30 0e 06 03 |e........10/0...| 00000290 55 1d 0f 01 01 ff 04 04 03 02 01 86 30 1d 06 03 |U...........0...| 000002a0 55 1d 0e 04 16 04 14 2f 7f 6b 38 d8 3a b4 63 44 |U....../.k8.:.cD| 000002b0 2a e8 ed d4 f1 ce ba 35 68 83 88 30 0d 06 09 2a |*......5h..0...*| 000002c0 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 2a |.H.............*| 000002d0 e1 0c 93 6d c7 13 72 42 fa 48 2f fa ef 28 32 0b |...m..rB.H/..(2.| 000002e0 39 dd 00 e4 3e 96 2a 31 fa 33 56 1b 61 5b f8 0c |9...>.*1.3V.a[..| 000002f0 7d f8 4d 18 db fa cc a8 72 65 95 a2 14 cb 90 60 |}.M.....re.....`| 00000300 28 dc 0a 5b 72 3a 9d 0e 9c 65 83 48 22 24 49 89 |(..[r:...e.H"$I.| 00000310 30 b4 0b f3 9e af bd 5b 93 8d b7 4d ec 4a b4 6f |0......[...M.J.o| 00000320 e5 a4 35 e1 f5 78 41 18 1d 60 0b 7d fc 79 de 43 |..5..xA..`.}.y.C| 00000330 1b f9 e9 16 de 1e 22 cd 62 77 81 75 9b c0 7d e6 |......".bw.u..}.| 00000340 7c 1f ab 87 8c f7 b9 78 67 86 97 c4 7e 2c 32 f2 ||......xg...~,2.| 00000350 a2 73 d6 50 cb c4 46 a9 3a 18 aa 3a 1e 61 08 60 |.s.P..F.:..:.a.`| 00000360 34 c5 8c eb b6 1c cf 20 81 ab 7b fc b0 d8 a5 82 |4...... ..{.....| 00000370 dd a9 13 97 65 e0 8e 62 00 4c aa 25 2a fd 66 5d |....e..b.L.%*.f]| 00000380 ed da 4e 47 c2 9d d5 fc 69 f1 aa a6 b3 2d 66 e0 |..NG....i....-f.| 00000390 e7 0b 98 62 1e 3f 0c 8f 2c 66 53 55 a9 87 fb bf |...b.?..,fSU....| 000003a0 5f 1c 0e 47 4c 8a f8 d1 3d 1e 87 c0 ff c6 4e f3 |_..GL...=.....N.| 000003b0 9a 03 99 5e 51 9f bd 84 f0 76 0e 1a e0 97 3b 8c |...^Q....v....;.| 000003c0 f0 10 38 6b 4b ca 17 fc 11 05 b3 b8 b2 c3 05 |..8kK..........| 000003cf efivar-39/tests/machine2/annotations/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000125641455652431600272460ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 cf 03 00 00 |....| esl[0].signature_list_size = 975 (0x3cf) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 b3 03 00 00 |....| esl[0].signature_size = 947 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 30 82 03 9f |0...| esl[0].signature[0].data (end:0x000003cf) 00000030 30 82 02 87 a0 03 02 01 02 02 10 3b 98 c7 4f 90 |0..........;..O.| 00000040 10 d1 a9 4c 43 83 36 3d ce d4 85 30 0d 06 09 2a |...LC.6=...0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 72 31 0c 30 0a |.H........0r1.0.| 00000060 06 03 55 04 06 13 03 55 53 41 31 0b 30 09 06 03 |..U....USA1.0...| 00000070 55 04 08 0c 02 43 41 31 11 30 0f 06 03 55 04 07 |U....CA1.0...U..| 00000080 0c 08 53 61 6e 20 4a 6f 73 65 31 22 30 20 06 03 |..San Jose1"0 ..| 00000090 55 04 0a 0c 19 53 75 70 65 72 20 4d 69 63 72 6f |U....Super Micro| 000000a0 20 43 6f 6d 70 75 74 65 72 20 49 6e 63 2e 31 1e | Computer Inc.1.| 000000b0 30 1c 06 03 55 04 03 0c 15 53 55 50 45 52 4d 49 |0...U....SUPERMI| 000000c0 43 52 4f 20 50 4b 20 43 41 20 32 30 31 38 30 1e |CRO PK CA 20180.| 000000d0 17 0d 31 38 31 32 32 30 30 31 34 36 30 34 5a 17 |..181220014604Z.| 000000e0 0d 33 33 31 32 32 30 30 31 35 36 30 33 5a 30 72 |.331220015603Z0r| 000000f0 31 0c 30 0a 06 03 55 04 06 13 03 55 53 41 31 0b |1.0...U....USA1.| 00000100 30 09 06 03 55 04 08 0c 02 43 41 31 11 30 0f 06 |0...U....CA1.0..| 00000110 03 55 04 07 0c 08 53 61 6e 20 4a 6f 73 65 31 22 |.U....San Jose1"| 00000120 30 20 06 03 55 04 0a 0c 19 53 75 70 65 72 20 4d |0 ..U....Super M| 00000130 69 63 72 6f 20 43 6f 6d 70 75 74 65 72 20 49 6e |icro Computer In| 00000140 63 2e 31 1e 30 1c 06 03 55 04 03 0c 15 53 55 50 |c.1.0...U....SUP| 00000150 45 52 4d 49 43 52 4f 20 50 4b 20 43 41 20 32 30 |ERMICRO PK CA 20| 00000160 31 38 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |180.."0...*.H...| 00000170 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000180 01 01 00 b3 98 bf ed 1f c0 69 51 8e 4d aa 91 29 |.........iQ.M..)| 00000190 ce 31 9e 1b 62 8e 02 2a 15 e4 27 1b da ce 95 ea |.1..b..*..'.....| 000001a0 e2 34 b9 f3 5d 5f 41 ae f6 2b 1d 04 65 52 06 37 |.4..]_A..+..eR.7| 000001b0 1b 2b 10 ad 6a 75 0e fa ee 87 d6 78 57 55 c5 79 |.+..ju.....xWU.y| 000001c0 98 6e 39 36 a4 eb 17 69 ee e7 33 5b c2 f0 f9 e5 |.n96...i..3[....| 000001d0 96 fb c7 ee 21 db 41 f5 a4 8a 62 19 83 a3 cb 16 |....!.A...b.....| 000001e0 ab 74 14 2c 0b 58 62 72 d0 f9 e2 c9 5b 31 76 ea |.t.,.Xbr....[1v.| 000001f0 06 59 ba 37 e4 3b ca 8f 58 b1 15 f9 a6 cb 71 8c |.Y.7.;..X.....q.| 00000200 b9 22 69 48 3f 73 57 63 d5 ca 54 e9 ae 89 4b 3c |."iH?sWc..T...K<| 00000210 4b b7 b8 1a d6 66 d8 8e ee 17 7c d9 68 26 d2 b4 |K....f....|.h&..| 00000220 72 1c cd cb 3a bd 2e 14 a1 94 1a 0b e7 54 3b 17 |r...:........T;.| 00000230 eb 94 4b e4 a2 34 90 93 9e 50 aa 5e 4d fb 1f 34 |..K..4...P.^M..4| 00000240 91 d4 50 6f 13 a0 a5 10 49 80 cd 9b 8e 45 2b 7e |..Po....I....E+~| 00000250 c1 b4 92 85 c7 68 b2 65 2f 58 28 7c cb 95 09 08 |.....h.e/X(|....| 00000260 10 37 0a 8c b5 b5 c4 18 40 a7 ad 87 b2 ef a5 c2 |.7......@.......| 00000270 94 04 85 88 02 e7 fa 2b e4 17 07 b5 55 7e 31 2a |.......+....U~1*| 00000280 65 fb ad 02 03 01 00 01 a3 31 30 2f 30 0e 06 03 |e........10/0...| 00000290 55 1d 0f 01 01 ff 04 04 03 02 01 86 30 1d 06 03 |U...........0...| 000002a0 55 1d 0e 04 16 04 14 2f 7f 6b 38 d8 3a b4 63 44 |U....../.k8.:.cD| 000002b0 2a e8 ed d4 f1 ce ba 35 68 83 88 30 0d 06 09 2a |*......5h..0...*| 000002c0 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 2a |.H.............*| 000002d0 e1 0c 93 6d c7 13 72 42 fa 48 2f fa ef 28 32 0b |...m..rB.H/..(2.| 000002e0 39 dd 00 e4 3e 96 2a 31 fa 33 56 1b 61 5b f8 0c |9...>.*1.3V.a[..| 000002f0 7d f8 4d 18 db fa cc a8 72 65 95 a2 14 cb 90 60 |}.M.....re.....`| 00000300 28 dc 0a 5b 72 3a 9d 0e 9c 65 83 48 22 24 49 89 |(..[r:...e.H"$I.| 00000310 30 b4 0b f3 9e af bd 5b 93 8d b7 4d ec 4a b4 6f |0......[...M.J.o| 00000320 e5 a4 35 e1 f5 78 41 18 1d 60 0b 7d fc 79 de 43 |..5..xA..`.}.y.C| 00000330 1b f9 e9 16 de 1e 22 cd 62 77 81 75 9b c0 7d e6 |......".bw.u..}.| 00000340 7c 1f ab 87 8c f7 b9 78 67 86 97 c4 7e 2c 32 f2 ||......xg...~,2.| 00000350 a2 73 d6 50 cb c4 46 a9 3a 18 aa 3a 1e 61 08 60 |.s.P..F.:..:.a.`| 00000360 34 c5 8c eb b6 1c cf 20 81 ab 7b fc b0 d8 a5 82 |4...... ..{.....| 00000370 dd a9 13 97 65 e0 8e 62 00 4c aa 25 2a fd 66 5d |....e..b.L.%*.f]| 00000380 ed da 4e 47 c2 9d d5 fc 69 f1 aa a6 b3 2d 66 e0 |..NG....i....-f.| 00000390 e7 0b 98 62 1e 3f 0c 8f 2c 66 53 55 a9 87 fb bf |...b.?..,fSU....| 000003a0 5f 1c 0e 47 4c 8a f8 d1 3d 1e 87 c0 ff c6 4e f3 |_..GL...=.....N.| 000003b0 9a 03 99 5e 51 9f bd 84 f0 76 0e 1a e0 97 3b 8c |...^Q....v....;.| 000003c0 f0 10 38 6b 4b ca 17 fc 11 05 b3 b8 b2 c3 05 |..8kK..........| 000003cf efivar-39/tests/machine2/annotations/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000000677641455652431600261320ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 40 06 00 00 |@...| esl[0].signature_list_size = 1600 (0x640) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 24 06 00 00 |$...| esl[0].signature_size = 1572 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 06 10 |0...| esl[0].signature[0].data (end:0x00000640) 00000030 30 82 03 f8 a0 03 02 01 02 02 0a 61 08 d3 c4 00 |0..........a....| 00000040 00 00 00 00 04 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 |Corporation1;09.| 000000b0 03 55 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 |.U...2Microsoft | 000000c0 43 6f 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 |Corporation Thir| 000000d0 64 20 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c |d Party Marketpl| 000000e0 61 63 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 |ace Root0...1106| 000000f0 32 37 32 31 32 32 34 35 5a 17 0d 32 36 30 36 32 |27212245Z..26062| 00000100 37 32 31 33 32 34 35 5a 30 81 81 31 0b 30 09 06 |7213245Z0..1.0..| 00000110 03 55 04 06 13 02 55 53 31 13 30 11 06 03 55 04 |.U....US1.0...U.| 00000120 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 |...Washington1.0| 00000130 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 |...U....Redmond1| 00000140 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 |.0...U....Micros| 00000150 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 |oft Corporation1| 00000160 2b 30 29 06 03 55 04 03 13 22 4d 69 63 72 6f 73 |+0)..U..."Micros| 00000170 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 |oft Corporation | 00000180 55 45 46 49 20 43 41 20 32 30 31 31 30 82 01 22 |UEFI CA 20110.."| 00000190 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 000001a0 82 01 0f 00 30 82 01 0a 02 82 01 01 00 a5 08 6c |....0..........l| 000001b0 4c c7 45 09 6a 4b 0c a4 c0 87 7f 06 75 0c 43 01 |L.E.jK......u.C.| 000001c0 54 64 e0 16 7f 07 ed 92 7d 0b b2 73 bf 0c 0a c6 |Td......}..s....| 000001d0 4a 45 61 a0 c5 16 2d 96 d3 f5 2b a0 fb 4d 49 9b |JEa...-...+..MI.| 000001e0 41 80 90 3c b9 54 fd e6 bc d1 9d c4 a4 18 8a 7f |A..<.T..........| 000001f0 41 8a 5c 59 83 68 32 bb 8c 47 c9 ee 71 bc 21 4f |A.\Y.h2..G..q.!O| 00000200 9a 8a 7c ff 44 3f 8d 8f 32 b2 26 48 ae 75 b5 ee |..|.D?..2.&H.u..| 00000210 c9 4c 1e 4a 19 7e e4 82 9a 1d 78 77 4d 0c b0 bd |.L.J.~....xwM...| 00000220 f6 0f d3 16 d3 bc fa 2b a5 51 38 5d f5 fb ba db |.......+.Q8]....| 00000230 78 02 db ff ec 0a 1b 96 d5 83 b8 19 13 e9 b6 c0 |x...............| 00000240 7b 40 7b e1 1f 28 27 c9 fa ef 56 5e 1c e6 7e 94 |{@{..('...V^..~.| 00000250 7e c0 f0 44 b2 79 39 e5 da b2 62 8b 4d bf 38 70 |~..D.y9...b.M.8p| 00000260 e2 68 24 14 c9 33 a4 08 37 d5 58 69 5e d3 7c ed |.h$..3..7.Xi^.|.| 00000270 c1 04 53 08 e7 4e b0 2a 87 63 08 61 6f 63 15 59 |..S..N.*.c.aoc.Y| 00000280 ea b2 2b 79 d7 0c 61 67 8a 5b fd 5e ad 87 7f ba |..+y..ag.[.^....| 00000290 86 67 4f 71 58 12 22 04 22 22 ce 8b ef 54 71 00 |.gOqX.".""...Tq.| 000002a0 ce 50 35 58 76 95 08 ee 6a b1 a2 01 d5 02 03 01 |.P5Xv...j.......| 000002b0 00 01 a3 82 01 76 30 82 01 72 30 12 06 09 2b 06 |.....v0..r0...+.| 000002c0 01 04 01 82 37 15 01 04 05 02 03 01 00 01 30 23 |....7.........0#| 000002d0 06 09 2b 06 01 04 01 82 37 15 02 04 16 04 14 f8 |..+.....7.......| 000002e0 c1 6b b7 7f 77 53 4a f3 25 37 1d 4e a1 26 7b 0f |.k..wSJ.%7.N.&{.| 000002f0 20 70 80 30 1d 06 03 55 1d 0e 04 16 04 14 13 ad | p.0...U........| 00000300 bf 43 09 bd 82 70 9c 8c d5 4f 31 6e d5 22 98 8a |.C...p...O1n."..| 00000310 1b d4 30 19 06 09 2b 06 01 04 01 82 37 14 02 04 |..0...+.....7...| 00000320 0c 1e 0a 00 53 00 75 00 62 00 43 00 41 30 0b 06 |....S.u.b.C.A0..| 00000330 03 55 1d 0f 04 04 03 02 01 86 30 0f 06 03 55 1d |.U........0...U.| 00000340 13 01 01 ff 04 05 30 03 01 01 ff 30 1f 06 03 55 |......0....0...U| 00000350 1d 23 04 18 30 16 80 14 45 66 52 43 e1 7e 58 11 |.#..0...EfRC.~X.| 00000360 bf d6 4e 9e 23 55 08 3b 3a 22 6a a8 30 5c 06 03 |..N.#U.;:"j.0\..| 00000370 55 1d 1f 04 55 30 53 30 51 a0 4f a0 4d 86 4b 68 |U...U0S0Q.O.M.Kh| 00000380 74 74 70 3a 2f 2f 63 72 6c 2e 6d 69 63 72 6f 73 |ttp://crl.micros| 00000390 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 72 6c 2f |oft.com/pki/crl/| 000003a0 70 72 6f 64 75 63 74 73 2f 4d 69 63 43 6f 72 54 |products/MicCorT| 000003b0 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 |hiParMarRoo_2010| 000003c0 2d 31 30 2d 30 35 2e 63 72 6c 30 60 06 08 2b 06 |-10-05.crl0`..+.| 000003d0 01 05 05 07 01 01 04 54 30 52 30 50 06 08 2b 06 |.......T0R0P..+.| 000003e0 01 05 05 07 30 02 86 44 68 74 74 70 3a 2f 2f 77 |....0..Dhttp://w| 000003f0 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d |ww.microsoft.com| 00000400 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 63 43 6f |/pki/certs/MicCo| 00000410 72 54 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 |rThiParMarRoo_20| 00000420 31 30 2d 31 30 2d 30 35 2e 63 72 74 30 0d 06 09 |10-10-05.crt0...| 00000430 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 |*.H.............| 00000440 35 08 42 ff 30 cc ce f7 76 0c ad 10 68 58 35 29 |5.B.0...v...hX5)| 00000450 46 32 76 27 7c ef 12 41 27 42 1b 4a aa 6d 81 38 |F2v'|..A'B.J.m.8| 00000460 48 59 13 55 f3 e9 58 34 a6 16 0b 82 aa 5d ad 82 |HY.U..X4.....]..| 00000470 da 80 83 41 06 8f b4 1d f2 03 b9 f3 1a 5d 1b f1 |...A.........]..| 00000480 50 90 f9 b3 55 84 42 28 1c 20 bd b2 ae 51 14 c5 |P...U.B(. ...Q..| 00000490 c0 ac 97 95 21 1c 90 db 0f fc 77 9e 95 73 91 88 |....!.....w..s..| 000004a0 ca bd bd 52 b9 05 50 0d df 57 9e a0 61 ed 0d e5 |...R..P..W..a...| 000004b0 6d 25 d9 40 0f 17 40 c8 ce a3 4a c2 4d af 9a 12 |m%.@..@...J.M...| 000004c0 1d 08 54 8f bd c7 bc b9 2b 3d 49 2b 1f 32 fc 6a |..T.....+=I+.2.j| 000004d0 21 69 4f 9b c8 7e 42 34 fc 36 06 17 8b 8f 20 40 |!iO..~B4.6.... @| 000004e0 c0 b3 9a 25 75 27 cd c9 03 a3 f6 5d d1 e7 36 54 |...%u'.....]..6T| 000004f0 7a b9 50 b5 d3 12 d1 07 bf bb 74 df dc 1e 8f 80 |z.P.......t.....| 00000500 d5 ed 18 f4 2f 14 16 6b 2f de 66 8c b0 23 e5 c7 |..../..k/.f..#..| 00000510 84 d8 ed ea c1 33 82 ad 56 4b 18 2d f1 68 95 07 |.....3..VK.-.h..| 00000520 cd cf f0 72 f0 ae bb dd 86 85 98 2c 21 4c 33 2b |...r.......,!L3+| 00000530 f0 0f 4a f0 68 87 b5 92 55 32 75 a1 6a 82 6a 3c |..J.h...U2u.j.j<| 00000540 a3 25 11 a4 ed ad d7 04 ae cb d8 40 59 a0 84 d1 |.%.........@Y...| 00000550 95 4c 62 91 22 1a 74 1d 8c 3d 47 0e 44 a6 e4 b0 |.Lb.".t..=G.D...| 00000560 9b 34 35 b1 fa b6 53 a8 2c 81 ec a4 05 71 c8 9d |.45...S.,....q..| 00000570 b8 ba e8 1b 44 66 e4 47 54 0e 8e 56 7f b3 9f 16 |....Df.GT..V....| 00000580 98 b2 86 d0 68 3e 90 23 b5 2f 5e 8f 50 85 8d c6 |....h>.#./^.P...| 00000590 8d 82 5f 41 a1 f4 2e 0d e0 99 d2 6c 75 e4 b6 69 |.._A.......lu..i| 000005a0 b5 21 86 fa 07 d1 f6 e2 4d d1 da ad 2c 77 53 1e |.!......M...,wS.| 000005b0 25 32 37 c7 6c 52 72 95 86 b0 f1 35 61 6a 19 f5 |%27.lRr....5aj..| 000005c0 b2 3b 81 50 56 a6 32 2d fe a2 89 f9 42 86 27 18 |.;.PV.2-....B.'.| 000005d0 55 a1 82 ca 5a 9b f8 30 98 54 14 a6 47 96 25 2f |U...Z..0.T..G.%/| 000005e0 c8 26 e4 41 94 1a 5c 02 3f e5 96 e3 85 5b 3c 3e |.&.A..\.?....[<>| 000005f0 3f bb 47 16 72 55 e2 25 22 b1 d9 7b e7 03 06 2a |?.G.rU.%"..{...*| 00000600 a3 f7 1e 90 46 c3 00 0d d6 19 89 e3 0e 35 27 62 |....F........5'b| 00000610 03 71 15 a6 ef d0 27 a0 a0 59 37 60 f8 38 94 b8 |.q....'..Y7`.8..| 00000620 e0 78 70 f8 ba 4c 86 87 94 f6 e0 ae 02 45 ee 65 |.xp..L.......E.e| 00000630 c2 b6 a3 7e 69 16 75 07 92 9b f5 a6 bc 59 83 58 |...~i.u......Y.X| 00000640 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[1].signature_type = {x509_cert} 00000650 07 06 00 00 |....| esl[1].signature_list_size = 1543 (0x607) 00000654 00 00 00 00 |....| esl[1].signature_header_size = 0 00000658 eb 05 00 00 |....| esl[1].signature_size = 1515 0000065c esl[1].signature_header (end:0x0000065c) 0000065c bd 9a fa 77 |...w| esl[1].signature[0].owner = {microsoft} 00000660 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000066c 30 82 05 d7 |0...| esl[1].signature[0].data (end:0x00000c47) 00000670 30 82 03 bf a0 03 02 01 02 02 0a 61 07 76 56 00 |0..........a.vV.| 00000680 00 00 00 00 08 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000690 01 0b 05 00 30 81 88 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 000006a0 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 000006b0 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 000006c0 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 000006d0 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000006e0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 06 |Corporation1200.| 000006f0 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 20 |.U...)Microsoft | 00000700 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 65 |Root Certificate| 00000710 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 30 | Authority 20100| 00000720 1e 17 0d 31 31 31 30 31 39 31 38 34 31 34 32 5a |...111019184142Z| 00000730 17 0d 32 36 31 30 31 39 31 38 35 31 34 32 5a 30 |..261019185142Z0| 00000740 81 84 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 |..1.0...U....US1| 00000750 13 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e |.0...U....Washin| 00000760 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 |gton1.0...U....R| 00000770 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 |edmond1.0...U...| 00000780 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |.Microsoft Corpo| 00000790 72 61 74 69 6f 6e 31 2e 30 2c 06 03 55 04 03 13 |ration1.0,..U...| 000007a0 25 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f |%Microsoft Windo| 000007b0 77 73 20 50 72 6f 64 75 63 74 69 6f 6e 20 50 43 |ws Production PC| 000007c0 41 20 32 30 31 31 30 82 01 22 30 0d 06 09 2a 86 |A 20110.."0...*.| 000007d0 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 |H.............0.| 000007e0 01 0a 02 82 01 01 00 dd 0c bb a2 e4 2e 09 e3 e7 |................| 000007f0 c5 f7 96 69 bc 00 21 bd 69 33 33 ef ad 04 cb 54 |...i..!.i33....T| 00000800 80 ee 06 83 bb c5 20 84 d9 f7 d2 8b f3 38 b0 ab |...... ......8..| 00000810 a4 ad 2d 7c 62 79 05 ff e3 4a 3f 04 35 20 70 e3 |..-|by...J?.5 p.| 00000820 c4 e7 6b e0 9c c0 36 75 e9 8a 31 dd 8d 70 e5 dc |..k...6u..1..p..| 00000830 37 b5 74 46 96 28 5b 87 60 23 2c bf dc 47 a5 67 |7.tF.([.`#,..G.g| 00000840 f7 51 27 9e 72 eb 07 a6 c9 b9 1e 3b 53 35 7c e5 |.Q'.r......;S5|.| 00000850 d3 ec 27 b9 87 1c fe b9 c9 23 09 6f a8 46 91 c1 |..'......#.o.F..| 00000860 6e 96 3c 41 d3 cb a3 3f 5d 02 6a 4d ec 69 1f 25 |n.http://www.| 00000a00 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b |microsoft.com/pk| 00000a10 69 2f 63 65 72 74 73 2f 4d 69 63 52 6f 6f 43 65 |i/certs/MicRooCe| 00000a20 72 41 75 74 5f 32 30 31 30 2d 30 36 2d 32 33 2e |rAut_2010-06-23.| 00000a30 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |crt0...*.H......| 00000a40 05 00 03 82 02 01 00 14 fc 7c 71 51 a5 79 c2 6e |.........|qQ.y.n| 00000a50 b2 ef 39 3e bc 3c 52 0f 6e 2b 3f 10 13 73 fe a8 |..9>..\`...........| 00000b30 85 b6 7f 51 88 66 47 19 8d a2 b0 12 3d 81 2a 68 |...Q.fG.....=.*h| 00000b40 05 77 bb 91 4c 62 7b b6 c1 07 c7 ba 7a 87 34 03 |.w..Lb{.....z.4.| 00000b50 0e 4b 62 7a 99 e9 ca fc ce 4a 37 c9 2d a4 57 7c |.Kbz.....J7.-.W|| 00000b60 1c fe 3d dc b8 0f 5a fa d6 c4 b3 02 85 02 3a ea |..=...Z.......:.| 00000b70 b3 d9 6e e4 69 21 37 de 81 d1 f6 75 19 05 67 d3 |..n.i!7....u..g.| 00000b80 93 57 5e 29 1b 39 c8 ee 2d e1 cd e4 45 73 5b d0 |.W^).9..-...Es[.| 00000b90 d2 ce 7a ab 16 19 82 46 58 d0 5e 9d 81 b3 67 af |..z....FX.^...g.| 00000ba0 6c 35 f2 bc e5 3f 24 e2 35 a2 0a 75 06 f6 18 56 |l5...?$.5..u...V| 00000bb0 99 d4 78 2c d1 05 1b eb d0 88 01 9d aa 10 f1 05 |..x,............| 00000bc0 df ba 7e 2c 63 b7 06 9b 23 21 c4 f9 78 6c e2 58 |..~,c...#!..xl.X| 00000bd0 17 06 36 2b 91 12 03 cc a4 d9 f2 2d ba f9 94 9d |..6+.......-....| 00000be0 40 ed 18 45 f1 ce 8a 5c 6b 3e ab 03 d3 70 18 2a |@..E...\k>...p.*| 00000bf0 0a 6a e0 5f 47 d1 d5 63 0a 32 f2 af d7 36 1f 2a |.j._G..c.2...6.*| 00000c00 70 5a e5 42 59 08 71 4b 57 ba 7e 83 81 f0 21 3c |pZ.BY.qKW.~...!<| 00000c10 f4 1c c1 c5 b9 90 93 0e 88 45 93 86 e9 b1 20 99 |.........E.... .| 00000c20 be 98 cb c5 95 a4 5d 62 d6 a0 63 08 20 bd 75 10 |......]b..c. .u.| 00000c30 77 7d 3d f3 45 b9 9f 97 9f cb 57 80 6f 33 a9 04 |w}=.E.....W.o3..| 00000c40 cf 77 a4 62 1c 59 7e |.w.b.Y~| 00000c47 a1 59 c0 a5 e4 94 a7 4a 87 |.Y.....J.| esl[2].signature_type = {x509_cert} 00000c50 b5 ab 15 5c 2b f0 72 |...\+.r| 00000c57 96 03 00 00 |....| esl[2].signature_list_size = 918 (0x396) 00000c5b 00 00 00 00 |....| esl[2].signature_header_size = 0 00000c5f 7a |z| esl[2].signature_size = 890 00000c60 03 00 00 |...| 00000c63 esl[2].signature_header (end:0x00000c63) 00000c63 51 48 dc 26 5f 19 e1 4a 9a 19 fb f8 83 |QH.&_..J.....| esl[2].signature[0].owner = {supermicro} 00000c70 bb b3 5e |..^| 00000c73 30 82 03 66 30 82 02 4e a0 03 02 01 02 |0..f0..N.....| esl[2].signature[0].data (end:0x00000fdd) 00000c80 02 01 00 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |...0...*.H......| 00000c90 05 00 30 72 31 0c 30 0a 06 03 55 04 06 13 03 55 |..0r1.0...U....U| 00000ca0 53 41 31 0b 30 09 06 03 55 04 08 0c 02 43 41 31 |SA1.0...U....CA1| 00000cb0 11 30 0f 06 03 55 04 07 0c 08 53 61 6e 20 4a 6f |.0...U....San Jo| 00000cc0 73 65 31 22 30 20 06 03 55 04 0a 0c 19 53 75 70 |se1"0 ..U....Sup| 00000cd0 65 72 20 4d 69 63 72 6f 20 43 6f 6d 70 75 74 65 |er Micro Compute| 00000ce0 72 20 49 6e 63 2e 31 1e 30 1c 06 03 55 04 03 0c |r Inc.1.0...U...| 00000cf0 15 53 55 50 45 52 4d 49 43 52 4f 20 50 4b 20 43 |.SUPERMICRO PK C| 00000d00 41 20 32 30 31 38 30 1e 17 0d 31 38 31 32 31 39 |A 20180...181219| 00000d10 30 30 30 30 30 30 5a 17 0d 33 33 31 32 31 39 30 |000000Z..3312190| 00000d20 30 30 30 30 30 5a 30 77 31 0c 30 0a 06 03 55 04 |00000Z0w1.0...U.| 00000d30 06 13 03 55 53 41 31 0b 30 09 06 03 55 04 08 0c |...USA1.0...U...| 00000d40 02 43 41 31 11 30 0f 06 03 55 04 07 0c 08 53 61 |.CA1.0...U....Sa| 00000d50 6e 20 4a 6f 73 65 31 22 30 20 06 03 55 04 0a 0c |n Jose1"0 ..U...| 00000d60 19 53 75 70 65 72 20 4d 69 63 72 6f 20 43 6f 6d |.Super Micro Com| 00000d70 70 75 74 65 72 20 49 6e 63 2e 31 23 30 21 06 03 |puter Inc.1#0!..| 00000d80 55 04 03 0c 1a 53 55 50 45 52 4d 49 43 52 4f 20 |U....SUPERMICRO | 00000d90 50 72 6f 64 75 63 74 20 43 41 20 32 30 31 38 30 |Product CA 20180| 00000da0 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 |.."0...*.H......| 00000db0 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 00 |.......0........| 00000dc0 f1 ca 4d 34 6a 9b 81 6d 3f 58 52 e7 e7 da e1 14 |..M4j..m?XR.....| 00000dd0 ca 30 9e a8 c4 4f 0d 6a e0 69 08 4d 3d 35 39 e4 |.0...O.j.i.M=59.| 00000de0 59 2d 43 d9 28 9d 0a dc 70 33 a2 87 22 ae e9 18 |Y-C.(...p3.."...| 00000df0 92 d0 db e6 05 a5 9f 16 af 74 a3 9b 33 ee a1 d2 |.........t..3...| 00000e00 83 9a 95 8c 0b 45 f6 b5 1c 4a f9 18 2f c9 50 ec |.....E...J../.P.| 00000e10 9d ec 10 0b e8 e5 6e 6f b8 9d f0 8a b2 ee 12 3b |......no.......;| 00000e20 9c c7 90 46 fb b2 57 f1 47 9e 26 57 ea ed 1e e8 |...F..W.G.&W....| 00000e30 05 39 75 40 09 60 43 dd ec 5b d2 38 96 7d 90 69 |.9u@.`C..[.8.}.i| 00000e40 e7 d3 ad 39 ec eb f4 55 07 97 62 21 a5 29 bf be |...9...U..b!.)..| 00000e50 df 62 ec 1b 1a 00 06 5b 6c 85 41 ab 3f 50 55 02 |.b.....[l.A.?PU.| 00000e60 4a de 1e e1 d0 a7 8b 94 cd b3 35 c6 e7 de 86 0c |J.........5.....| 00000e70 81 3f 73 29 67 30 ce 16 01 7b 2e 95 8f c6 9d e3 |.?s)g0...{......| 00000e80 93 0f 0c 80 18 f7 16 94 aa 60 79 1d f6 09 4b 9e |.........`y...K.| 00000e90 1b f1 d3 3f cc 42 72 56 d2 98 06 29 c1 fe fa 5e |...?.BrV...)...^| 00000ea0 0f 38 a5 57 a6 63 f3 0e 68 14 a5 7f 1c d9 f5 f5 |.8.W.c..h.......| 00000eb0 53 ed fe d1 f6 86 53 20 01 3e 21 a2 7c 6f 80 07 |S.....S .>!.|o..| 00000ec0 02 03 01 00 01 a3 02 30 00 30 0d 06 09 2a 86 48 |.......0.0...*.H| 00000ed0 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 36 5d c9 |.............6].| 00000ee0 c0 f5 7f 68 27 38 cb c0 2e 27 9b 08 51 97 58 49 |...h'8...'..Q.XI| 00000ef0 d8 1c fa 21 1f ac 7b c2 c0 bf fa d5 7b b9 c8 ca |...!..{.....{...| 00000f00 54 65 07 29 21 46 fc 48 7d fa f3 84 5b 64 7d 86 |Te.)!F.H}...[d}.| 00000f10 71 96 4e 16 bb 8e a5 9c cb 65 44 62 ec cc ba 42 |q.N......eDb...B| 00000f20 b6 8b d8 a4 db 98 26 9a e4 08 a7 0c da c9 3b 80 |......&.......;.| 00000f30 d3 63 90 1e 64 a1 04 12 7c c2 1a 8d e9 de f4 f2 |.c..d...|.......| 00000f40 d7 40 67 e5 ba d7 6d 6e 08 c2 35 5f 1f db ab 5d |.@g...mn..5_...]| 00000f50 8e e0 a1 7f d2 25 aa a9 1a 6f 31 c3 a5 c0 e8 f2 |.....%...o1.....| 00000f60 a3 b3 47 5a 69 58 38 3a a7 bb 64 cc 69 27 10 a2 |..GZiX8:..d.i'..| 00000f70 c4 0e 72 95 e1 7e 54 e9 5b e9 0c dd 71 ad ff b4 |..r..~T.[...q...| 00000f80 b0 b4 28 0b 48 5c 02 29 94 2a 58 9a 2f b7 62 3e |..(.H\.).*X./.b>| 00000f90 3e 17 38 36 14 41 48 30 27 64 27 56 a1 21 da 62 |>.86.AH0'd'V.!.b| 00000fa0 b3 ef c0 cb be 8d 02 67 dc c8 66 f2 af 1c 4c 43 |.......g..f...LC| 00000fb0 49 05 23 89 c7 62 8f c6 6a af 15 9a 8c ea d7 46 |I.#..b..j......F| 00000fc0 73 3b 30 b2 a9 fc b0 73 7f d3 3b 7c c7 79 1a 87 |s;0....s..;|.y..| 00000fd0 2b 9d cc 94 98 ac 30 0a 04 25 9f e3 1a |+.....0..%...| 00000fdd a1 59 c0 |.Y.| esl[3].signature_type = {x509_cert} 00000fe0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |....J....\+.r| 00000fed 66 04 00 |f..| esl[3].signature_list_size = 1126 (0x466) 00000ff0 00 |.| 00000ff1 00 00 00 00 |....| esl[3].signature_header_size = 0 00000ff5 4a 04 00 00 |J...| esl[3].signature_size = 1098 00000ff9 esl[3].signature_header (end:0x00000ff9) 00000ff9 51 48 dc 26 5f 19 e1 |QH.&_..| esl[3].signature[0].owner = {supermicro} 00001000 4a 9a 19 fb f8 83 bb b3 5e |J.......^| 00001009 30 82 04 36 30 82 03 |0..60..| esl[3].signature[0].data (end:0x00001443) 00001010 1e a0 03 02 01 02 02 01 01 30 0d 06 09 2a 86 48 |.........0...*.H| 00001020 86 f7 0d 01 01 05 05 00 30 6f 31 0b 30 09 06 03 |........0o1.0...| 00001030 55 04 06 13 02 53 45 31 14 30 12 06 03 55 04 0a |U....SE1.0...U..| 00001040 13 0b 41 64 64 54 72 75 73 74 20 41 42 31 26 30 |..AddTrust AB1&0| 00001050 24 06 03 55 04 0b 13 1d 41 64 64 54 72 75 73 74 |$..U....AddTrust| 00001060 20 45 78 74 65 72 6e 61 6c 20 54 54 50 20 4e 65 | External TTP Ne| 00001070 74 77 6f 72 6b 31 22 30 20 06 03 55 04 03 13 19 |twork1"0 ..U....| 00001080 41 64 64 54 72 75 73 74 20 45 78 74 65 72 6e 61 |AddTrust Externa| 00001090 6c 20 43 41 20 52 6f 6f 74 30 1e 17 0d 30 30 30 |l CA Root0...000| 000010a0 35 33 30 31 30 34 38 33 38 5a 17 0d 32 30 30 35 |530104838Z..2005| 000010b0 33 30 31 30 34 38 33 38 5a 30 6f 31 0b 30 09 06 |30104838Z0o1.0..| 000010c0 03 55 04 06 13 02 53 45 31 14 30 12 06 03 55 04 |.U....SE1.0...U.| 000010d0 0a 13 0b 41 64 64 54 72 75 73 74 20 41 42 31 26 |...AddTrust AB1&| 000010e0 30 24 06 03 55 04 0b 13 1d 41 64 64 54 72 75 73 |0$..U....AddTrus| 000010f0 74 20 45 78 74 65 72 6e 61 6c 20 54 54 50 20 4e |t External TTP N| 00001100 65 74 77 6f 72 6b 31 22 30 20 06 03 55 04 03 13 |etwork1"0 ..U...| 00001110 19 41 64 64 54 72 75 73 74 20 45 78 74 65 72 6e |.AddTrust Extern| 00001120 61 6c 20 43 41 20 52 6f 6f 74 30 82 01 22 30 0d |al CA Root0.."0.| 00001130 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00001140 0f 00 30 82 01 0a 02 82 01 01 00 b7 f7 1a 33 e6 |..0...........3.| 00001150 f2 00 04 2d 39 e0 4e 5b ed 1f bc 6c 0f cd b5 fa |...-9.N[...l....| 00001160 23 b6 ce de 9b 11 33 97 a4 29 4c 7d 93 9f bd 4a |#.....3..)L}...J| 00001170 bc 93 ed 03 1a e3 8f cf e5 6d 50 5a d6 97 29 94 |.........mPZ..).| 00001180 5a 80 b0 49 7a db 2e 95 fd b8 ca bf 37 38 2d 1e |Z..Iz.......78-.| 00001190 3e 91 41 ad 70 56 c7 f0 4f 3f e8 32 9e 74 ca c8 |>.A.pV..O?.2.t..| 000011a0 90 54 e9 c6 5f 0f 78 9d 9a 40 3c 0e ac 61 aa 5e |.T.._.x..@<..a.^| 000011b0 14 8f 9e 87 a1 6a 50 dc d7 9a 4e af 05 b3 a6 71 |.....jP...N....q| 000011c0 94 9c 71 b3 50 60 0a c7 13 9d 38 07 86 02 a8 e9 |..q.P`....8.....| 000011d0 a8 69 26 18 90 ab 4c b0 4f 23 ab 3a 4f 84 d8 df |.i&...L.O#.:O...| 000011e0 ce 9f e1 69 6f bb d7 42 d7 6b 44 e4 c7 ad ee 6d |...io..B.kD....m| 000011f0 41 5f 72 5a 71 08 37 b3 79 65 a4 59 a0 94 37 f7 |A_rZq.7.ye.Y..7.| 00001200 00 2f 0d c2 92 72 da d0 38 72 db 14 a8 45 c4 5d |./...r..8r...E.]| 00001210 2a 7d b7 b4 d6 c4 ee ac cd 13 44 b7 c9 2b dd 43 |*}........D..+.C| 00001220 00 25 fa 61 b9 69 6a 58 23 11 b7 a7 33 8f 56 75 |.%.a.ijX#...3.Vu| 00001230 59 f5 cd 29 d7 46 b7 0a 2b 65 b6 d3 42 6f 15 b2 |Y..).F..+e..Bo..| 00001240 b8 7b fb ef e9 5d 53 d5 34 5a 27 02 03 01 00 01 |.{...]S.4Z'.....| 00001250 a3 81 dc 30 81 d9 30 1d 06 03 55 1d 0e 04 16 04 |...0..0...U.....| 00001260 14 ad bd 98 7a 34 b4 26 f7 fa c4 26 54 ef 03 bd |....z4.&...&T...| 00001270 e0 24 cb 54 1a 30 0b 06 03 55 1d 0f 04 04 03 02 |.$.T.0...U......| 00001280 01 06 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 |..0...U.......0.| 00001290 01 01 ff 30 81 99 06 03 55 1d 23 04 81 91 30 81 |...0....U.#...0.| 000012a0 8e 80 14 ad bd 98 7a 34 b4 26 f7 fa c4 26 54 ef |......z4.&...&T.| 000012b0 03 bd e0 24 cb 54 1a a1 73 a4 71 30 6f 31 0b 30 |...$.T..s.q0o1.0| 000012c0 09 06 03 55 04 06 13 02 53 45 31 14 30 12 06 03 |...U....SE1.0...| 000012d0 55 04 0a 13 0b 41 64 64 54 72 75 73 74 20 41 42 |U....AddTrust AB| 000012e0 31 26 30 24 06 03 55 04 0b 13 1d 41 64 64 54 72 |1&0$..U....AddTr| 000012f0 75 73 74 20 45 78 74 65 72 6e 61 6c 20 54 54 50 |ust External TTP| 00001300 20 4e 65 74 77 6f 72 6b 31 22 30 20 06 03 55 04 | Network1"0 ..U.| 00001310 03 13 19 41 64 64 54 72 75 73 74 20 45 78 74 65 |...AddTrust Exte| 00001320 72 6e 61 6c 20 43 41 20 52 6f 6f 74 82 01 01 30 |rnal CA Root...0| 00001330 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 03 82 |...*.H..........| 00001340 01 01 00 b0 9b e0 85 25 c2 d6 23 e2 0f 96 06 92 |.......%..#.....| 00001350 9d 41 98 9c d9 84 79 81 d9 1e 5b 14 07 23 36 65 |.A....y...[..#6e| 00001360 8f b0 d8 77 bb ac 41 6c 47 60 83 51 b0 f9 32 3d |...w..AlG`.Q..2=| 00001370 e7 fc f6 26 13 c7 80 16 a5 bf 5a fc 87 cf 78 79 |...&......Z...xy| 00001380 89 21 9a e2 4c 07 0a 86 35 bc f2 de 51 c4 d2 96 |.!..L...5...Q...| 00001390 b7 dc 7e 4e ee 70 fd 1c 39 eb 0c 02 51 14 2d 8e |..~N.p..9...Q.-.| 000013a0 bd 16 e0 c1 df 46 75 e7 24 ad ec f4 42 b4 85 93 |.....Fu.$...B...| 000013b0 70 10 67 ba 9d 06 35 4a 18 d3 2b 7a cc 51 42 a1 |p.g...5J..+z.QB.| 000013c0 7a 63 d1 e6 bb a1 c5 2b c2 36 be 13 0d e6 bd 63 |zc.....+.6.....c| 000013d0 7e 79 7b a7 09 0d 40 ab 6a dd 8f 8a c3 f6 f6 8c |~y{...@.j.......| 000013e0 1a 42 05 51 d4 45 f5 9f a7 62 21 68 15 20 43 3c |.B.Q.E...b!h. C<| 000013f0 99 e7 7c bd 24 d8 a9 91 17 73 88 3f 56 1b 31 38 |..|.$....s.?V.18| 00001400 18 b4 71 0f 9a cd c8 0e 9e 8e 2e 1b e1 8c 98 83 |..q.............| 00001410 cb 1f 31 f1 44 4c c6 04 73 49 76 60 0f c7 f8 bd |..1.DL..sIv`....| 00001420 17 80 6b 2e e9 cc 4c 0e 5a 9a 79 0f 20 0a 2e d5 |..k...L.Z.y. ...| 00001430 9e 63 26 1e 55 92 94 d8 82 17 5a 7b d0 bc c7 8f |.c&.U.....Z{....| 00001440 4e 86 04 |N..| 00001443 efivar-39/tests/machine2/annotations/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000677641455652431600273350ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 40 06 00 00 |@...| esl[0].signature_list_size = 1600 (0x640) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 24 06 00 00 |$...| esl[0].signature_size = 1572 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 06 10 |0...| esl[0].signature[0].data (end:0x00000640) 00000030 30 82 03 f8 a0 03 02 01 02 02 0a 61 08 d3 c4 00 |0..........a....| 00000040 00 00 00 00 04 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 |Corporation1;09.| 000000b0 03 55 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 |.U...2Microsoft | 000000c0 43 6f 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 |Corporation Thir| 000000d0 64 20 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c |d Party Marketpl| 000000e0 61 63 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 |ace Root0...1106| 000000f0 32 37 32 31 32 32 34 35 5a 17 0d 32 36 30 36 32 |27212245Z..26062| 00000100 37 32 31 33 32 34 35 5a 30 81 81 31 0b 30 09 06 |7213245Z0..1.0..| 00000110 03 55 04 06 13 02 55 53 31 13 30 11 06 03 55 04 |.U....US1.0...U.| 00000120 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 |...Washington1.0| 00000130 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 |...U....Redmond1| 00000140 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 |.0...U....Micros| 00000150 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 |oft Corporation1| 00000160 2b 30 29 06 03 55 04 03 13 22 4d 69 63 72 6f 73 |+0)..U..."Micros| 00000170 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 |oft Corporation | 00000180 55 45 46 49 20 43 41 20 32 30 31 31 30 82 01 22 |UEFI CA 20110.."| 00000190 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 000001a0 82 01 0f 00 30 82 01 0a 02 82 01 01 00 a5 08 6c |....0..........l| 000001b0 4c c7 45 09 6a 4b 0c a4 c0 87 7f 06 75 0c 43 01 |L.E.jK......u.C.| 000001c0 54 64 e0 16 7f 07 ed 92 7d 0b b2 73 bf 0c 0a c6 |Td......}..s....| 000001d0 4a 45 61 a0 c5 16 2d 96 d3 f5 2b a0 fb 4d 49 9b |JEa...-...+..MI.| 000001e0 41 80 90 3c b9 54 fd e6 bc d1 9d c4 a4 18 8a 7f |A..<.T..........| 000001f0 41 8a 5c 59 83 68 32 bb 8c 47 c9 ee 71 bc 21 4f |A.\Y.h2..G..q.!O| 00000200 9a 8a 7c ff 44 3f 8d 8f 32 b2 26 48 ae 75 b5 ee |..|.D?..2.&H.u..| 00000210 c9 4c 1e 4a 19 7e e4 82 9a 1d 78 77 4d 0c b0 bd |.L.J.~....xwM...| 00000220 f6 0f d3 16 d3 bc fa 2b a5 51 38 5d f5 fb ba db |.......+.Q8]....| 00000230 78 02 db ff ec 0a 1b 96 d5 83 b8 19 13 e9 b6 c0 |x...............| 00000240 7b 40 7b e1 1f 28 27 c9 fa ef 56 5e 1c e6 7e 94 |{@{..('...V^..~.| 00000250 7e c0 f0 44 b2 79 39 e5 da b2 62 8b 4d bf 38 70 |~..D.y9...b.M.8p| 00000260 e2 68 24 14 c9 33 a4 08 37 d5 58 69 5e d3 7c ed |.h$..3..7.Xi^.|.| 00000270 c1 04 53 08 e7 4e b0 2a 87 63 08 61 6f 63 15 59 |..S..N.*.c.aoc.Y| 00000280 ea b2 2b 79 d7 0c 61 67 8a 5b fd 5e ad 87 7f ba |..+y..ag.[.^....| 00000290 86 67 4f 71 58 12 22 04 22 22 ce 8b ef 54 71 00 |.gOqX.".""...Tq.| 000002a0 ce 50 35 58 76 95 08 ee 6a b1 a2 01 d5 02 03 01 |.P5Xv...j.......| 000002b0 00 01 a3 82 01 76 30 82 01 72 30 12 06 09 2b 06 |.....v0..r0...+.| 000002c0 01 04 01 82 37 15 01 04 05 02 03 01 00 01 30 23 |....7.........0#| 000002d0 06 09 2b 06 01 04 01 82 37 15 02 04 16 04 14 f8 |..+.....7.......| 000002e0 c1 6b b7 7f 77 53 4a f3 25 37 1d 4e a1 26 7b 0f |.k..wSJ.%7.N.&{.| 000002f0 20 70 80 30 1d 06 03 55 1d 0e 04 16 04 14 13 ad | p.0...U........| 00000300 bf 43 09 bd 82 70 9c 8c d5 4f 31 6e d5 22 98 8a |.C...p...O1n."..| 00000310 1b d4 30 19 06 09 2b 06 01 04 01 82 37 14 02 04 |..0...+.....7...| 00000320 0c 1e 0a 00 53 00 75 00 62 00 43 00 41 30 0b 06 |....S.u.b.C.A0..| 00000330 03 55 1d 0f 04 04 03 02 01 86 30 0f 06 03 55 1d |.U........0...U.| 00000340 13 01 01 ff 04 05 30 03 01 01 ff 30 1f 06 03 55 |......0....0...U| 00000350 1d 23 04 18 30 16 80 14 45 66 52 43 e1 7e 58 11 |.#..0...EfRC.~X.| 00000360 bf d6 4e 9e 23 55 08 3b 3a 22 6a a8 30 5c 06 03 |..N.#U.;:"j.0\..| 00000370 55 1d 1f 04 55 30 53 30 51 a0 4f a0 4d 86 4b 68 |U...U0S0Q.O.M.Kh| 00000380 74 74 70 3a 2f 2f 63 72 6c 2e 6d 69 63 72 6f 73 |ttp://crl.micros| 00000390 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 72 6c 2f |oft.com/pki/crl/| 000003a0 70 72 6f 64 75 63 74 73 2f 4d 69 63 43 6f 72 54 |products/MicCorT| 000003b0 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 |hiParMarRoo_2010| 000003c0 2d 31 30 2d 30 35 2e 63 72 6c 30 60 06 08 2b 06 |-10-05.crl0`..+.| 000003d0 01 05 05 07 01 01 04 54 30 52 30 50 06 08 2b 06 |.......T0R0P..+.| 000003e0 01 05 05 07 30 02 86 44 68 74 74 70 3a 2f 2f 77 |....0..Dhttp://w| 000003f0 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d |ww.microsoft.com| 00000400 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 63 43 6f |/pki/certs/MicCo| 00000410 72 54 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 |rThiParMarRoo_20| 00000420 31 30 2d 31 30 2d 30 35 2e 63 72 74 30 0d 06 09 |10-10-05.crt0...| 00000430 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 |*.H.............| 00000440 35 08 42 ff 30 cc ce f7 76 0c ad 10 68 58 35 29 |5.B.0...v...hX5)| 00000450 46 32 76 27 7c ef 12 41 27 42 1b 4a aa 6d 81 38 |F2v'|..A'B.J.m.8| 00000460 48 59 13 55 f3 e9 58 34 a6 16 0b 82 aa 5d ad 82 |HY.U..X4.....]..| 00000470 da 80 83 41 06 8f b4 1d f2 03 b9 f3 1a 5d 1b f1 |...A.........]..| 00000480 50 90 f9 b3 55 84 42 28 1c 20 bd b2 ae 51 14 c5 |P...U.B(. ...Q..| 00000490 c0 ac 97 95 21 1c 90 db 0f fc 77 9e 95 73 91 88 |....!.....w..s..| 000004a0 ca bd bd 52 b9 05 50 0d df 57 9e a0 61 ed 0d e5 |...R..P..W..a...| 000004b0 6d 25 d9 40 0f 17 40 c8 ce a3 4a c2 4d af 9a 12 |m%.@..@...J.M...| 000004c0 1d 08 54 8f bd c7 bc b9 2b 3d 49 2b 1f 32 fc 6a |..T.....+=I+.2.j| 000004d0 21 69 4f 9b c8 7e 42 34 fc 36 06 17 8b 8f 20 40 |!iO..~B4.6.... @| 000004e0 c0 b3 9a 25 75 27 cd c9 03 a3 f6 5d d1 e7 36 54 |...%u'.....]..6T| 000004f0 7a b9 50 b5 d3 12 d1 07 bf bb 74 df dc 1e 8f 80 |z.P.......t.....| 00000500 d5 ed 18 f4 2f 14 16 6b 2f de 66 8c b0 23 e5 c7 |..../..k/.f..#..| 00000510 84 d8 ed ea c1 33 82 ad 56 4b 18 2d f1 68 95 07 |.....3..VK.-.h..| 00000520 cd cf f0 72 f0 ae bb dd 86 85 98 2c 21 4c 33 2b |...r.......,!L3+| 00000530 f0 0f 4a f0 68 87 b5 92 55 32 75 a1 6a 82 6a 3c |..J.h...U2u.j.j<| 00000540 a3 25 11 a4 ed ad d7 04 ae cb d8 40 59 a0 84 d1 |.%.........@Y...| 00000550 95 4c 62 91 22 1a 74 1d 8c 3d 47 0e 44 a6 e4 b0 |.Lb.".t..=G.D...| 00000560 9b 34 35 b1 fa b6 53 a8 2c 81 ec a4 05 71 c8 9d |.45...S.,....q..| 00000570 b8 ba e8 1b 44 66 e4 47 54 0e 8e 56 7f b3 9f 16 |....Df.GT..V....| 00000580 98 b2 86 d0 68 3e 90 23 b5 2f 5e 8f 50 85 8d c6 |....h>.#./^.P...| 00000590 8d 82 5f 41 a1 f4 2e 0d e0 99 d2 6c 75 e4 b6 69 |.._A.......lu..i| 000005a0 b5 21 86 fa 07 d1 f6 e2 4d d1 da ad 2c 77 53 1e |.!......M...,wS.| 000005b0 25 32 37 c7 6c 52 72 95 86 b0 f1 35 61 6a 19 f5 |%27.lRr....5aj..| 000005c0 b2 3b 81 50 56 a6 32 2d fe a2 89 f9 42 86 27 18 |.;.PV.2-....B.'.| 000005d0 55 a1 82 ca 5a 9b f8 30 98 54 14 a6 47 96 25 2f |U...Z..0.T..G.%/| 000005e0 c8 26 e4 41 94 1a 5c 02 3f e5 96 e3 85 5b 3c 3e |.&.A..\.?....[<>| 000005f0 3f bb 47 16 72 55 e2 25 22 b1 d9 7b e7 03 06 2a |?.G.rU.%"..{...*| 00000600 a3 f7 1e 90 46 c3 00 0d d6 19 89 e3 0e 35 27 62 |....F........5'b| 00000610 03 71 15 a6 ef d0 27 a0 a0 59 37 60 f8 38 94 b8 |.q....'..Y7`.8..| 00000620 e0 78 70 f8 ba 4c 86 87 94 f6 e0 ae 02 45 ee 65 |.xp..L.......E.e| 00000630 c2 b6 a3 7e 69 16 75 07 92 9b f5 a6 bc 59 83 58 |...~i.u......Y.X| 00000640 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[1].signature_type = {x509_cert} 00000650 07 06 00 00 |....| esl[1].signature_list_size = 1543 (0x607) 00000654 00 00 00 00 |....| esl[1].signature_header_size = 0 00000658 eb 05 00 00 |....| esl[1].signature_size = 1515 0000065c esl[1].signature_header (end:0x0000065c) 0000065c bd 9a fa 77 |...w| esl[1].signature[0].owner = {microsoft} 00000660 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000066c 30 82 05 d7 |0...| esl[1].signature[0].data (end:0x00000c47) 00000670 30 82 03 bf a0 03 02 01 02 02 0a 61 07 76 56 00 |0..........a.vV.| 00000680 00 00 00 00 08 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000690 01 0b 05 00 30 81 88 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 000006a0 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 000006b0 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 000006c0 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 000006d0 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000006e0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 06 |Corporation1200.| 000006f0 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 20 |.U...)Microsoft | 00000700 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 65 |Root Certificate| 00000710 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 30 | Authority 20100| 00000720 1e 17 0d 31 31 31 30 31 39 31 38 34 31 34 32 5a |...111019184142Z| 00000730 17 0d 32 36 31 30 31 39 31 38 35 31 34 32 5a 30 |..261019185142Z0| 00000740 81 84 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 |..1.0...U....US1| 00000750 13 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e |.0...U....Washin| 00000760 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 |gton1.0...U....R| 00000770 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 |edmond1.0...U...| 00000780 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |.Microsoft Corpo| 00000790 72 61 74 69 6f 6e 31 2e 30 2c 06 03 55 04 03 13 |ration1.0,..U...| 000007a0 25 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f |%Microsoft Windo| 000007b0 77 73 20 50 72 6f 64 75 63 74 69 6f 6e 20 50 43 |ws Production PC| 000007c0 41 20 32 30 31 31 30 82 01 22 30 0d 06 09 2a 86 |A 20110.."0...*.| 000007d0 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 |H.............0.| 000007e0 01 0a 02 82 01 01 00 dd 0c bb a2 e4 2e 09 e3 e7 |................| 000007f0 c5 f7 96 69 bc 00 21 bd 69 33 33 ef ad 04 cb 54 |...i..!.i33....T| 00000800 80 ee 06 83 bb c5 20 84 d9 f7 d2 8b f3 38 b0 ab |...... ......8..| 00000810 a4 ad 2d 7c 62 79 05 ff e3 4a 3f 04 35 20 70 e3 |..-|by...J?.5 p.| 00000820 c4 e7 6b e0 9c c0 36 75 e9 8a 31 dd 8d 70 e5 dc |..k...6u..1..p..| 00000830 37 b5 74 46 96 28 5b 87 60 23 2c bf dc 47 a5 67 |7.tF.([.`#,..G.g| 00000840 f7 51 27 9e 72 eb 07 a6 c9 b9 1e 3b 53 35 7c e5 |.Q'.r......;S5|.| 00000850 d3 ec 27 b9 87 1c fe b9 c9 23 09 6f a8 46 91 c1 |..'......#.o.F..| 00000860 6e 96 3c 41 d3 cb a3 3f 5d 02 6a 4d ec 69 1f 25 |n.http://www.| 00000a00 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b |microsoft.com/pk| 00000a10 69 2f 63 65 72 74 73 2f 4d 69 63 52 6f 6f 43 65 |i/certs/MicRooCe| 00000a20 72 41 75 74 5f 32 30 31 30 2d 30 36 2d 32 33 2e |rAut_2010-06-23.| 00000a30 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |crt0...*.H......| 00000a40 05 00 03 82 02 01 00 14 fc 7c 71 51 a5 79 c2 6e |.........|qQ.y.n| 00000a50 b2 ef 39 3e bc 3c 52 0f 6e 2b 3f 10 13 73 fe a8 |..9>..\`...........| 00000b30 85 b6 7f 51 88 66 47 19 8d a2 b0 12 3d 81 2a 68 |...Q.fG.....=.*h| 00000b40 05 77 bb 91 4c 62 7b b6 c1 07 c7 ba 7a 87 34 03 |.w..Lb{.....z.4.| 00000b50 0e 4b 62 7a 99 e9 ca fc ce 4a 37 c9 2d a4 57 7c |.Kbz.....J7.-.W|| 00000b60 1c fe 3d dc b8 0f 5a fa d6 c4 b3 02 85 02 3a ea |..=...Z.......:.| 00000b70 b3 d9 6e e4 69 21 37 de 81 d1 f6 75 19 05 67 d3 |..n.i!7....u..g.| 00000b80 93 57 5e 29 1b 39 c8 ee 2d e1 cd e4 45 73 5b d0 |.W^).9..-...Es[.| 00000b90 d2 ce 7a ab 16 19 82 46 58 d0 5e 9d 81 b3 67 af |..z....FX.^...g.| 00000ba0 6c 35 f2 bc e5 3f 24 e2 35 a2 0a 75 06 f6 18 56 |l5...?$.5..u...V| 00000bb0 99 d4 78 2c d1 05 1b eb d0 88 01 9d aa 10 f1 05 |..x,............| 00000bc0 df ba 7e 2c 63 b7 06 9b 23 21 c4 f9 78 6c e2 58 |..~,c...#!..xl.X| 00000bd0 17 06 36 2b 91 12 03 cc a4 d9 f2 2d ba f9 94 9d |..6+.......-....| 00000be0 40 ed 18 45 f1 ce 8a 5c 6b 3e ab 03 d3 70 18 2a |@..E...\k>...p.*| 00000bf0 0a 6a e0 5f 47 d1 d5 63 0a 32 f2 af d7 36 1f 2a |.j._G..c.2...6.*| 00000c00 70 5a e5 42 59 08 71 4b 57 ba 7e 83 81 f0 21 3c |pZ.BY.qKW.~...!<| 00000c10 f4 1c c1 c5 b9 90 93 0e 88 45 93 86 e9 b1 20 99 |.........E.... .| 00000c20 be 98 cb c5 95 a4 5d 62 d6 a0 63 08 20 bd 75 10 |......]b..c. .u.| 00000c30 77 7d 3d f3 45 b9 9f 97 9f cb 57 80 6f 33 a9 04 |w}=.E.....W.o3..| 00000c40 cf 77 a4 62 1c 59 7e |.w.b.Y~| 00000c47 a1 59 c0 a5 e4 94 a7 4a 87 |.Y.....J.| esl[2].signature_type = {x509_cert} 00000c50 b5 ab 15 5c 2b f0 72 |...\+.r| 00000c57 96 03 00 00 |....| esl[2].signature_list_size = 918 (0x396) 00000c5b 00 00 00 00 |....| esl[2].signature_header_size = 0 00000c5f 7a |z| esl[2].signature_size = 890 00000c60 03 00 00 |...| 00000c63 esl[2].signature_header (end:0x00000c63) 00000c63 51 48 dc 26 5f 19 e1 4a 9a 19 fb f8 83 |QH.&_..J.....| esl[2].signature[0].owner = {supermicro} 00000c70 bb b3 5e |..^| 00000c73 30 82 03 66 30 82 02 4e a0 03 02 01 02 |0..f0..N.....| esl[2].signature[0].data (end:0x00000fdd) 00000c80 02 01 00 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |...0...*.H......| 00000c90 05 00 30 72 31 0c 30 0a 06 03 55 04 06 13 03 55 |..0r1.0...U....U| 00000ca0 53 41 31 0b 30 09 06 03 55 04 08 0c 02 43 41 31 |SA1.0...U....CA1| 00000cb0 11 30 0f 06 03 55 04 07 0c 08 53 61 6e 20 4a 6f |.0...U....San Jo| 00000cc0 73 65 31 22 30 20 06 03 55 04 0a 0c 19 53 75 70 |se1"0 ..U....Sup| 00000cd0 65 72 20 4d 69 63 72 6f 20 43 6f 6d 70 75 74 65 |er Micro Compute| 00000ce0 72 20 49 6e 63 2e 31 1e 30 1c 06 03 55 04 03 0c |r Inc.1.0...U...| 00000cf0 15 53 55 50 45 52 4d 49 43 52 4f 20 50 4b 20 43 |.SUPERMICRO PK C| 00000d00 41 20 32 30 31 38 30 1e 17 0d 31 38 31 32 31 39 |A 20180...181219| 00000d10 30 30 30 30 30 30 5a 17 0d 33 33 31 32 31 39 30 |000000Z..3312190| 00000d20 30 30 30 30 30 5a 30 77 31 0c 30 0a 06 03 55 04 |00000Z0w1.0...U.| 00000d30 06 13 03 55 53 41 31 0b 30 09 06 03 55 04 08 0c |...USA1.0...U...| 00000d40 02 43 41 31 11 30 0f 06 03 55 04 07 0c 08 53 61 |.CA1.0...U....Sa| 00000d50 6e 20 4a 6f 73 65 31 22 30 20 06 03 55 04 0a 0c |n Jose1"0 ..U...| 00000d60 19 53 75 70 65 72 20 4d 69 63 72 6f 20 43 6f 6d |.Super Micro Com| 00000d70 70 75 74 65 72 20 49 6e 63 2e 31 23 30 21 06 03 |puter Inc.1#0!..| 00000d80 55 04 03 0c 1a 53 55 50 45 52 4d 49 43 52 4f 20 |U....SUPERMICRO | 00000d90 50 72 6f 64 75 63 74 20 43 41 20 32 30 31 38 30 |Product CA 20180| 00000da0 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 |.."0...*.H......| 00000db0 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 00 |.......0........| 00000dc0 f1 ca 4d 34 6a 9b 81 6d 3f 58 52 e7 e7 da e1 14 |..M4j..m?XR.....| 00000dd0 ca 30 9e a8 c4 4f 0d 6a e0 69 08 4d 3d 35 39 e4 |.0...O.j.i.M=59.| 00000de0 59 2d 43 d9 28 9d 0a dc 70 33 a2 87 22 ae e9 18 |Y-C.(...p3.."...| 00000df0 92 d0 db e6 05 a5 9f 16 af 74 a3 9b 33 ee a1 d2 |.........t..3...| 00000e00 83 9a 95 8c 0b 45 f6 b5 1c 4a f9 18 2f c9 50 ec |.....E...J../.P.| 00000e10 9d ec 10 0b e8 e5 6e 6f b8 9d f0 8a b2 ee 12 3b |......no.......;| 00000e20 9c c7 90 46 fb b2 57 f1 47 9e 26 57 ea ed 1e e8 |...F..W.G.&W....| 00000e30 05 39 75 40 09 60 43 dd ec 5b d2 38 96 7d 90 69 |.9u@.`C..[.8.}.i| 00000e40 e7 d3 ad 39 ec eb f4 55 07 97 62 21 a5 29 bf be |...9...U..b!.)..| 00000e50 df 62 ec 1b 1a 00 06 5b 6c 85 41 ab 3f 50 55 02 |.b.....[l.A.?PU.| 00000e60 4a de 1e e1 d0 a7 8b 94 cd b3 35 c6 e7 de 86 0c |J.........5.....| 00000e70 81 3f 73 29 67 30 ce 16 01 7b 2e 95 8f c6 9d e3 |.?s)g0...{......| 00000e80 93 0f 0c 80 18 f7 16 94 aa 60 79 1d f6 09 4b 9e |.........`y...K.| 00000e90 1b f1 d3 3f cc 42 72 56 d2 98 06 29 c1 fe fa 5e |...?.BrV...)...^| 00000ea0 0f 38 a5 57 a6 63 f3 0e 68 14 a5 7f 1c d9 f5 f5 |.8.W.c..h.......| 00000eb0 53 ed fe d1 f6 86 53 20 01 3e 21 a2 7c 6f 80 07 |S.....S .>!.|o..| 00000ec0 02 03 01 00 01 a3 02 30 00 30 0d 06 09 2a 86 48 |.......0.0...*.H| 00000ed0 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 36 5d c9 |.............6].| 00000ee0 c0 f5 7f 68 27 38 cb c0 2e 27 9b 08 51 97 58 49 |...h'8...'..Q.XI| 00000ef0 d8 1c fa 21 1f ac 7b c2 c0 bf fa d5 7b b9 c8 ca |...!..{.....{...| 00000f00 54 65 07 29 21 46 fc 48 7d fa f3 84 5b 64 7d 86 |Te.)!F.H}...[d}.| 00000f10 71 96 4e 16 bb 8e a5 9c cb 65 44 62 ec cc ba 42 |q.N......eDb...B| 00000f20 b6 8b d8 a4 db 98 26 9a e4 08 a7 0c da c9 3b 80 |......&.......;.| 00000f30 d3 63 90 1e 64 a1 04 12 7c c2 1a 8d e9 de f4 f2 |.c..d...|.......| 00000f40 d7 40 67 e5 ba d7 6d 6e 08 c2 35 5f 1f db ab 5d |.@g...mn..5_...]| 00000f50 8e e0 a1 7f d2 25 aa a9 1a 6f 31 c3 a5 c0 e8 f2 |.....%...o1.....| 00000f60 a3 b3 47 5a 69 58 38 3a a7 bb 64 cc 69 27 10 a2 |..GZiX8:..d.i'..| 00000f70 c4 0e 72 95 e1 7e 54 e9 5b e9 0c dd 71 ad ff b4 |..r..~T.[...q...| 00000f80 b0 b4 28 0b 48 5c 02 29 94 2a 58 9a 2f b7 62 3e |..(.H\.).*X./.b>| 00000f90 3e 17 38 36 14 41 48 30 27 64 27 56 a1 21 da 62 |>.86.AH0'd'V.!.b| 00000fa0 b3 ef c0 cb be 8d 02 67 dc c8 66 f2 af 1c 4c 43 |.......g..f...LC| 00000fb0 49 05 23 89 c7 62 8f c6 6a af 15 9a 8c ea d7 46 |I.#..b..j......F| 00000fc0 73 3b 30 b2 a9 fc b0 73 7f d3 3b 7c c7 79 1a 87 |s;0....s..;|.y..| 00000fd0 2b 9d cc 94 98 ac 30 0a 04 25 9f e3 1a |+.....0..%...| 00000fdd a1 59 c0 |.Y.| esl[3].signature_type = {x509_cert} 00000fe0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |....J....\+.r| 00000fed 66 04 00 |f..| esl[3].signature_list_size = 1126 (0x466) 00000ff0 00 |.| 00000ff1 00 00 00 00 |....| esl[3].signature_header_size = 0 00000ff5 4a 04 00 00 |J...| esl[3].signature_size = 1098 00000ff9 esl[3].signature_header (end:0x00000ff9) 00000ff9 51 48 dc 26 5f 19 e1 |QH.&_..| esl[3].signature[0].owner = {supermicro} 00001000 4a 9a 19 fb f8 83 bb b3 5e |J.......^| 00001009 30 82 04 36 30 82 03 |0..60..| esl[3].signature[0].data (end:0x00001443) 00001010 1e a0 03 02 01 02 02 01 01 30 0d 06 09 2a 86 48 |.........0...*.H| 00001020 86 f7 0d 01 01 05 05 00 30 6f 31 0b 30 09 06 03 |........0o1.0...| 00001030 55 04 06 13 02 53 45 31 14 30 12 06 03 55 04 0a |U....SE1.0...U..| 00001040 13 0b 41 64 64 54 72 75 73 74 20 41 42 31 26 30 |..AddTrust AB1&0| 00001050 24 06 03 55 04 0b 13 1d 41 64 64 54 72 75 73 74 |$..U....AddTrust| 00001060 20 45 78 74 65 72 6e 61 6c 20 54 54 50 20 4e 65 | External TTP Ne| 00001070 74 77 6f 72 6b 31 22 30 20 06 03 55 04 03 13 19 |twork1"0 ..U....| 00001080 41 64 64 54 72 75 73 74 20 45 78 74 65 72 6e 61 |AddTrust Externa| 00001090 6c 20 43 41 20 52 6f 6f 74 30 1e 17 0d 30 30 30 |l CA Root0...000| 000010a0 35 33 30 31 30 34 38 33 38 5a 17 0d 32 30 30 35 |530104838Z..2005| 000010b0 33 30 31 30 34 38 33 38 5a 30 6f 31 0b 30 09 06 |30104838Z0o1.0..| 000010c0 03 55 04 06 13 02 53 45 31 14 30 12 06 03 55 04 |.U....SE1.0...U.| 000010d0 0a 13 0b 41 64 64 54 72 75 73 74 20 41 42 31 26 |...AddTrust AB1&| 000010e0 30 24 06 03 55 04 0b 13 1d 41 64 64 54 72 75 73 |0$..U....AddTrus| 000010f0 74 20 45 78 74 65 72 6e 61 6c 20 54 54 50 20 4e |t External TTP N| 00001100 65 74 77 6f 72 6b 31 22 30 20 06 03 55 04 03 13 |etwork1"0 ..U...| 00001110 19 41 64 64 54 72 75 73 74 20 45 78 74 65 72 6e |.AddTrust Extern| 00001120 61 6c 20 43 41 20 52 6f 6f 74 30 82 01 22 30 0d |al CA Root0.."0.| 00001130 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00001140 0f 00 30 82 01 0a 02 82 01 01 00 b7 f7 1a 33 e6 |..0...........3.| 00001150 f2 00 04 2d 39 e0 4e 5b ed 1f bc 6c 0f cd b5 fa |...-9.N[...l....| 00001160 23 b6 ce de 9b 11 33 97 a4 29 4c 7d 93 9f bd 4a |#.....3..)L}...J| 00001170 bc 93 ed 03 1a e3 8f cf e5 6d 50 5a d6 97 29 94 |.........mPZ..).| 00001180 5a 80 b0 49 7a db 2e 95 fd b8 ca bf 37 38 2d 1e |Z..Iz.......78-.| 00001190 3e 91 41 ad 70 56 c7 f0 4f 3f e8 32 9e 74 ca c8 |>.A.pV..O?.2.t..| 000011a0 90 54 e9 c6 5f 0f 78 9d 9a 40 3c 0e ac 61 aa 5e |.T.._.x..@<..a.^| 000011b0 14 8f 9e 87 a1 6a 50 dc d7 9a 4e af 05 b3 a6 71 |.....jP...N....q| 000011c0 94 9c 71 b3 50 60 0a c7 13 9d 38 07 86 02 a8 e9 |..q.P`....8.....| 000011d0 a8 69 26 18 90 ab 4c b0 4f 23 ab 3a 4f 84 d8 df |.i&...L.O#.:O...| 000011e0 ce 9f e1 69 6f bb d7 42 d7 6b 44 e4 c7 ad ee 6d |...io..B.kD....m| 000011f0 41 5f 72 5a 71 08 37 b3 79 65 a4 59 a0 94 37 f7 |A_rZq.7.ye.Y..7.| 00001200 00 2f 0d c2 92 72 da d0 38 72 db 14 a8 45 c4 5d |./...r..8r...E.]| 00001210 2a 7d b7 b4 d6 c4 ee ac cd 13 44 b7 c9 2b dd 43 |*}........D..+.C| 00001220 00 25 fa 61 b9 69 6a 58 23 11 b7 a7 33 8f 56 75 |.%.a.ijX#...3.Vu| 00001230 59 f5 cd 29 d7 46 b7 0a 2b 65 b6 d3 42 6f 15 b2 |Y..).F..+e..Bo..| 00001240 b8 7b fb ef e9 5d 53 d5 34 5a 27 02 03 01 00 01 |.{...]S.4Z'.....| 00001250 a3 81 dc 30 81 d9 30 1d 06 03 55 1d 0e 04 16 04 |...0..0...U.....| 00001260 14 ad bd 98 7a 34 b4 26 f7 fa c4 26 54 ef 03 bd |....z4.&...&T...| 00001270 e0 24 cb 54 1a 30 0b 06 03 55 1d 0f 04 04 03 02 |.$.T.0...U......| 00001280 01 06 30 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 |..0...U.......0.| 00001290 01 01 ff 30 81 99 06 03 55 1d 23 04 81 91 30 81 |...0....U.#...0.| 000012a0 8e 80 14 ad bd 98 7a 34 b4 26 f7 fa c4 26 54 ef |......z4.&...&T.| 000012b0 03 bd e0 24 cb 54 1a a1 73 a4 71 30 6f 31 0b 30 |...$.T..s.q0o1.0| 000012c0 09 06 03 55 04 06 13 02 53 45 31 14 30 12 06 03 |...U....SE1.0...| 000012d0 55 04 0a 13 0b 41 64 64 54 72 75 73 74 20 41 42 |U....AddTrust AB| 000012e0 31 26 30 24 06 03 55 04 0b 13 1d 41 64 64 54 72 |1&0$..U....AddTr| 000012f0 75 73 74 20 45 78 74 65 72 6e 61 6c 20 54 54 50 |ust External TTP| 00001300 20 4e 65 74 77 6f 72 6b 31 22 30 20 06 03 55 04 | Network1"0 ..U.| 00001310 03 13 19 41 64 64 54 72 75 73 74 20 45 78 74 65 |...AddTrust Exte| 00001320 72 6e 61 6c 20 43 41 20 52 6f 6f 74 82 01 01 30 |rnal CA Root...0| 00001330 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 03 82 |...*.H..........| 00001340 01 01 00 b0 9b e0 85 25 c2 d6 23 e2 0f 96 06 92 |.......%..#.....| 00001350 9d 41 98 9c d9 84 79 81 d9 1e 5b 14 07 23 36 65 |.A....y...[..#6e| 00001360 8f b0 d8 77 bb ac 41 6c 47 60 83 51 b0 f9 32 3d |...w..AlG`.Q..2=| 00001370 e7 fc f6 26 13 c7 80 16 a5 bf 5a fc 87 cf 78 79 |...&......Z...xy| 00001380 89 21 9a e2 4c 07 0a 86 35 bc f2 de 51 c4 d2 96 |.!..L...5...Q...| 00001390 b7 dc 7e 4e ee 70 fd 1c 39 eb 0c 02 51 14 2d 8e |..~N.p..9...Q.-.| 000013a0 bd 16 e0 c1 df 46 75 e7 24 ad ec f4 42 b4 85 93 |.....Fu.$...B...| 000013b0 70 10 67 ba 9d 06 35 4a 18 d3 2b 7a cc 51 42 a1 |p.g...5J..+z.QB.| 000013c0 7a 63 d1 e6 bb a1 c5 2b c2 36 be 13 0d e6 bd 63 |zc.....+.6.....c| 000013d0 7e 79 7b a7 09 0d 40 ab 6a dd 8f 8a c3 f6 f6 8c |~y{...@.j.......| 000013e0 1a 42 05 51 d4 45 f5 9f a7 62 21 68 15 20 43 3c |.B.Q.E...b!h. C<| 000013f0 99 e7 7c bd 24 d8 a9 91 17 73 88 3f 56 1b 31 38 |..|.$....s.?V.18| 00001400 18 b4 71 0f 9a cd c8 0e 9e 8e 2e 1b e1 8c 98 83 |..q.............| 00001410 cb 1f 31 f1 44 4c c6 04 73 49 76 60 0f c7 f8 bd |..1.DL..sIv`....| 00001420 17 80 6b 2e e9 cc 4c 0e 5a 9a 79 0f 20 0a 2e d5 |..k...L.Z.y. ...| 00001430 9e 63 26 1e 55 92 94 d8 82 17 5a 7b d0 bc c7 8f |.c&.U.....Z{....| 00001440 4e 86 04 |N..| 00001443 efivar-39/tests/machine2/annotations/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000000125641455652431600263000ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 cf 03 00 00 |....| esl[0].signature_list_size = 975 (0x3cf) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 b3 03 00 00 |....| esl[0].signature_size = 947 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 30 82 03 9f |0...| esl[0].signature[0].data (end:0x000003cf) 00000030 30 82 02 87 a0 03 02 01 02 02 10 3b 98 c7 4f 90 |0..........;..O.| 00000040 10 d1 a9 4c 43 83 36 3d ce d4 85 30 0d 06 09 2a |...LC.6=...0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 72 31 0c 30 0a |.H........0r1.0.| 00000060 06 03 55 04 06 13 03 55 53 41 31 0b 30 09 06 03 |..U....USA1.0...| 00000070 55 04 08 0c 02 43 41 31 11 30 0f 06 03 55 04 07 |U....CA1.0...U..| 00000080 0c 08 53 61 6e 20 4a 6f 73 65 31 22 30 20 06 03 |..San Jose1"0 ..| 00000090 55 04 0a 0c 19 53 75 70 65 72 20 4d 69 63 72 6f |U....Super Micro| 000000a0 20 43 6f 6d 70 75 74 65 72 20 49 6e 63 2e 31 1e | Computer Inc.1.| 000000b0 30 1c 06 03 55 04 03 0c 15 53 55 50 45 52 4d 49 |0...U....SUPERMI| 000000c0 43 52 4f 20 50 4b 20 43 41 20 32 30 31 38 30 1e |CRO PK CA 20180.| 000000d0 17 0d 31 38 31 32 32 30 30 31 34 36 30 34 5a 17 |..181220014604Z.| 000000e0 0d 33 33 31 32 32 30 30 31 35 36 30 33 5a 30 72 |.331220015603Z0r| 000000f0 31 0c 30 0a 06 03 55 04 06 13 03 55 53 41 31 0b |1.0...U....USA1.| 00000100 30 09 06 03 55 04 08 0c 02 43 41 31 11 30 0f 06 |0...U....CA1.0..| 00000110 03 55 04 07 0c 08 53 61 6e 20 4a 6f 73 65 31 22 |.U....San Jose1"| 00000120 30 20 06 03 55 04 0a 0c 19 53 75 70 65 72 20 4d |0 ..U....Super M| 00000130 69 63 72 6f 20 43 6f 6d 70 75 74 65 72 20 49 6e |icro Computer In| 00000140 63 2e 31 1e 30 1c 06 03 55 04 03 0c 15 53 55 50 |c.1.0...U....SUP| 00000150 45 52 4d 49 43 52 4f 20 50 4b 20 43 41 20 32 30 |ERMICRO PK CA 20| 00000160 31 38 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |180.."0...*.H...| 00000170 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000180 01 01 00 b3 98 bf ed 1f c0 69 51 8e 4d aa 91 29 |.........iQ.M..)| 00000190 ce 31 9e 1b 62 8e 02 2a 15 e4 27 1b da ce 95 ea |.1..b..*..'.....| 000001a0 e2 34 b9 f3 5d 5f 41 ae f6 2b 1d 04 65 52 06 37 |.4..]_A..+..eR.7| 000001b0 1b 2b 10 ad 6a 75 0e fa ee 87 d6 78 57 55 c5 79 |.+..ju.....xWU.y| 000001c0 98 6e 39 36 a4 eb 17 69 ee e7 33 5b c2 f0 f9 e5 |.n96...i..3[....| 000001d0 96 fb c7 ee 21 db 41 f5 a4 8a 62 19 83 a3 cb 16 |....!.A...b.....| 000001e0 ab 74 14 2c 0b 58 62 72 d0 f9 e2 c9 5b 31 76 ea |.t.,.Xbr....[1v.| 000001f0 06 59 ba 37 e4 3b ca 8f 58 b1 15 f9 a6 cb 71 8c |.Y.7.;..X.....q.| 00000200 b9 22 69 48 3f 73 57 63 d5 ca 54 e9 ae 89 4b 3c |."iH?sWc..T...K<| 00000210 4b b7 b8 1a d6 66 d8 8e ee 17 7c d9 68 26 d2 b4 |K....f....|.h&..| 00000220 72 1c cd cb 3a bd 2e 14 a1 94 1a 0b e7 54 3b 17 |r...:........T;.| 00000230 eb 94 4b e4 a2 34 90 93 9e 50 aa 5e 4d fb 1f 34 |..K..4...P.^M..4| 00000240 91 d4 50 6f 13 a0 a5 10 49 80 cd 9b 8e 45 2b 7e |..Po....I....E+~| 00000250 c1 b4 92 85 c7 68 b2 65 2f 58 28 7c cb 95 09 08 |.....h.e/X(|....| 00000260 10 37 0a 8c b5 b5 c4 18 40 a7 ad 87 b2 ef a5 c2 |.7......@.......| 00000270 94 04 85 88 02 e7 fa 2b e4 17 07 b5 55 7e 31 2a |.......+....U~1*| 00000280 65 fb ad 02 03 01 00 01 a3 31 30 2f 30 0e 06 03 |e........10/0...| 00000290 55 1d 0f 01 01 ff 04 04 03 02 01 86 30 1d 06 03 |U...........0...| 000002a0 55 1d 0e 04 16 04 14 2f 7f 6b 38 d8 3a b4 63 44 |U....../.k8.:.cD| 000002b0 2a e8 ed d4 f1 ce ba 35 68 83 88 30 0d 06 09 2a |*......5h..0...*| 000002c0 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 2a |.H.............*| 000002d0 e1 0c 93 6d c7 13 72 42 fa 48 2f fa ef 28 32 0b |...m..rB.H/..(2.| 000002e0 39 dd 00 e4 3e 96 2a 31 fa 33 56 1b 61 5b f8 0c |9...>.*1.3V.a[..| 000002f0 7d f8 4d 18 db fa cc a8 72 65 95 a2 14 cb 90 60 |}.M.....re.....`| 00000300 28 dc 0a 5b 72 3a 9d 0e 9c 65 83 48 22 24 49 89 |(..[r:...e.H"$I.| 00000310 30 b4 0b f3 9e af bd 5b 93 8d b7 4d ec 4a b4 6f |0......[...M.J.o| 00000320 e5 a4 35 e1 f5 78 41 18 1d 60 0b 7d fc 79 de 43 |..5..xA..`.}.y.C| 00000330 1b f9 e9 16 de 1e 22 cd 62 77 81 75 9b c0 7d e6 |......".bw.u..}.| 00000340 7c 1f ab 87 8c f7 b9 78 67 86 97 c4 7e 2c 32 f2 ||......xg...~,2.| 00000350 a2 73 d6 50 cb c4 46 a9 3a 18 aa 3a 1e 61 08 60 |.s.P..F.:..:.a.`| 00000360 34 c5 8c eb b6 1c cf 20 81 ab 7b fc b0 d8 a5 82 |4...... ..{.....| 00000370 dd a9 13 97 65 e0 8e 62 00 4c aa 25 2a fd 66 5d |....e..b.L.%*.f]| 00000380 ed da 4e 47 c2 9d d5 fc 69 f1 aa a6 b3 2d 66 e0 |..NG....i....-f.| 00000390 e7 0b 98 62 1e 3f 0c 8f 2c 66 53 55 a9 87 fb bf |...b.?..,fSU....| 000003a0 5f 1c 0e 47 4c 8a f8 d1 3d 1e 87 c0 ff c6 4e f3 |_..GL...=.....N.| 000003b0 9a 03 99 5e 51 9f bd 84 f0 76 0e 1a e0 97 3b 8c |...^Q....v....;.| 000003c0 f0 10 38 6b 4b ca 17 fc 11 05 b3 b8 b2 c3 05 |..8kK..........| 000003cf efivar-39/tests/machine2/annotations/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000125641455652431600275030ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 cf 03 00 00 |....| esl[0].signature_list_size = 975 (0x3cf) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 b3 03 00 00 |....| esl[0].signature_size = 947 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 51 48 dc 26 |QH.&| esl[0].signature[0].owner = {supermicro} 00000020 5f 19 e1 4a 9a 19 fb f8 83 bb b3 5e |_..J.......^| 0000002c 30 82 03 9f |0...| esl[0].signature[0].data (end:0x000003cf) 00000030 30 82 02 87 a0 03 02 01 02 02 10 3b 98 c7 4f 90 |0..........;..O.| 00000040 10 d1 a9 4c 43 83 36 3d ce d4 85 30 0d 06 09 2a |...LC.6=...0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 72 31 0c 30 0a |.H........0r1.0.| 00000060 06 03 55 04 06 13 03 55 53 41 31 0b 30 09 06 03 |..U....USA1.0...| 00000070 55 04 08 0c 02 43 41 31 11 30 0f 06 03 55 04 07 |U....CA1.0...U..| 00000080 0c 08 53 61 6e 20 4a 6f 73 65 31 22 30 20 06 03 |..San Jose1"0 ..| 00000090 55 04 0a 0c 19 53 75 70 65 72 20 4d 69 63 72 6f |U....Super Micro| 000000a0 20 43 6f 6d 70 75 74 65 72 20 49 6e 63 2e 31 1e | Computer Inc.1.| 000000b0 30 1c 06 03 55 04 03 0c 15 53 55 50 45 52 4d 49 |0...U....SUPERMI| 000000c0 43 52 4f 20 50 4b 20 43 41 20 32 30 31 38 30 1e |CRO PK CA 20180.| 000000d0 17 0d 31 38 31 32 32 30 30 31 34 36 30 34 5a 17 |..181220014604Z.| 000000e0 0d 33 33 31 32 32 30 30 31 35 36 30 33 5a 30 72 |.331220015603Z0r| 000000f0 31 0c 30 0a 06 03 55 04 06 13 03 55 53 41 31 0b |1.0...U....USA1.| 00000100 30 09 06 03 55 04 08 0c 02 43 41 31 11 30 0f 06 |0...U....CA1.0..| 00000110 03 55 04 07 0c 08 53 61 6e 20 4a 6f 73 65 31 22 |.U....San Jose1"| 00000120 30 20 06 03 55 04 0a 0c 19 53 75 70 65 72 20 4d |0 ..U....Super M| 00000130 69 63 72 6f 20 43 6f 6d 70 75 74 65 72 20 49 6e |icro Computer In| 00000140 63 2e 31 1e 30 1c 06 03 55 04 03 0c 15 53 55 50 |c.1.0...U....SUP| 00000150 45 52 4d 49 43 52 4f 20 50 4b 20 43 41 20 32 30 |ERMICRO PK CA 20| 00000160 31 38 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |180.."0...*.H...| 00000170 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000180 01 01 00 b3 98 bf ed 1f c0 69 51 8e 4d aa 91 29 |.........iQ.M..)| 00000190 ce 31 9e 1b 62 8e 02 2a 15 e4 27 1b da ce 95 ea |.1..b..*..'.....| 000001a0 e2 34 b9 f3 5d 5f 41 ae f6 2b 1d 04 65 52 06 37 |.4..]_A..+..eR.7| 000001b0 1b 2b 10 ad 6a 75 0e fa ee 87 d6 78 57 55 c5 79 |.+..ju.....xWU.y| 000001c0 98 6e 39 36 a4 eb 17 69 ee e7 33 5b c2 f0 f9 e5 |.n96...i..3[....| 000001d0 96 fb c7 ee 21 db 41 f5 a4 8a 62 19 83 a3 cb 16 |....!.A...b.....| 000001e0 ab 74 14 2c 0b 58 62 72 d0 f9 e2 c9 5b 31 76 ea |.t.,.Xbr....[1v.| 000001f0 06 59 ba 37 e4 3b ca 8f 58 b1 15 f9 a6 cb 71 8c |.Y.7.;..X.....q.| 00000200 b9 22 69 48 3f 73 57 63 d5 ca 54 e9 ae 89 4b 3c |."iH?sWc..T...K<| 00000210 4b b7 b8 1a d6 66 d8 8e ee 17 7c d9 68 26 d2 b4 |K....f....|.h&..| 00000220 72 1c cd cb 3a bd 2e 14 a1 94 1a 0b e7 54 3b 17 |r...:........T;.| 00000230 eb 94 4b e4 a2 34 90 93 9e 50 aa 5e 4d fb 1f 34 |..K..4...P.^M..4| 00000240 91 d4 50 6f 13 a0 a5 10 49 80 cd 9b 8e 45 2b 7e |..Po....I....E+~| 00000250 c1 b4 92 85 c7 68 b2 65 2f 58 28 7c cb 95 09 08 |.....h.e/X(|....| 00000260 10 37 0a 8c b5 b5 c4 18 40 a7 ad 87 b2 ef a5 c2 |.7......@.......| 00000270 94 04 85 88 02 e7 fa 2b e4 17 07 b5 55 7e 31 2a |.......+....U~1*| 00000280 65 fb ad 02 03 01 00 01 a3 31 30 2f 30 0e 06 03 |e........10/0...| 00000290 55 1d 0f 01 01 ff 04 04 03 02 01 86 30 1d 06 03 |U...........0...| 000002a0 55 1d 0e 04 16 04 14 2f 7f 6b 38 d8 3a b4 63 44 |U....../.k8.:.cD| 000002b0 2a e8 ed d4 f1 ce ba 35 68 83 88 30 0d 06 09 2a |*......5h..0...*| 000002c0 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 2a |.H.............*| 000002d0 e1 0c 93 6d c7 13 72 42 fa 48 2f fa ef 28 32 0b |...m..rB.H/..(2.| 000002e0 39 dd 00 e4 3e 96 2a 31 fa 33 56 1b 61 5b f8 0c |9...>.*1.3V.a[..| 000002f0 7d f8 4d 18 db fa cc a8 72 65 95 a2 14 cb 90 60 |}.M.....re.....`| 00000300 28 dc 0a 5b 72 3a 9d 0e 9c 65 83 48 22 24 49 89 |(..[r:...e.H"$I.| 00000310 30 b4 0b f3 9e af bd 5b 93 8d b7 4d ec 4a b4 6f |0......[...M.J.o| 00000320 e5 a4 35 e1 f5 78 41 18 1d 60 0b 7d fc 79 de 43 |..5..xA..`.}.y.C| 00000330 1b f9 e9 16 de 1e 22 cd 62 77 81 75 9b c0 7d e6 |......".bw.u..}.| 00000340 7c 1f ab 87 8c f7 b9 78 67 86 97 c4 7e 2c 32 f2 ||......xg...~,2.| 00000350 a2 73 d6 50 cb c4 46 a9 3a 18 aa 3a 1e 61 08 60 |.s.P..F.:..:.a.`| 00000360 34 c5 8c eb b6 1c cf 20 81 ab 7b fc b0 d8 a5 82 |4...... ..{.....| 00000370 dd a9 13 97 65 e0 8e 62 00 4c aa 25 2a fd 66 5d |....e..b.L.%*.f]| 00000380 ed da 4e 47 c2 9d d5 fc 69 f1 aa a6 b3 2d 66 e0 |..NG....i....-f.| 00000390 e7 0b 98 62 1e 3f 0c 8f 2c 66 53 55 a9 87 fb bf |...b.?..,fSU....| 000003a0 5f 1c 0e 47 4c 8a f8 d1 3d 1e 87 c0 ff c6 4e f3 |_..GL...=.....N.| 000003b0 9a 03 99 5e 51 9f bd 84 f0 76 0e 1a e0 97 3b 8c |...^Q....v....;.| 000003c0 f0 10 38 6b 4b ca 17 fc 11 05 b3 b8 b2 c3 05 |..8kK..........| 000003cf efivar-39/tests/machine2/annotations/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000000203401455652431600262710ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 1d 06 00 00 |....| esl[0].signature_list_size = 1565 (0x61d) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 01 06 00 00 |....| esl[0].signature_size = 1537 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 ed |0...| esl[0].signature[0].data (end:0x0000061d) 00000030 30 82 03 d5 a0 03 02 01 02 02 10 28 cc 3a 25 bf |0..........(.:%.| 00000040 ba 44 ac 44 9a 9b 58 6b 43 39 aa 30 0d 06 09 2a |.D.D..XkC9.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 81 88 31 0b 30 |.H........0..1.0| 00000060 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000070 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000080 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000090 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 000000a0 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 000000b0 6e 31 32 30 30 06 03 55 04 03 13 29 4d 69 63 72 |n1200..U...)Micr| 000000c0 6f 73 6f 66 74 20 52 6f 6f 74 20 43 65 72 74 69 |osoft Root Certi| 000000d0 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 |ficate Authority| 000000e0 20 32 30 31 30 30 1e 17 0d 31 30 30 36 32 33 32 | 20100...1006232| 000000f0 31 35 37 32 34 5a 17 0d 33 35 30 36 32 33 32 32 |15724Z..35062322| 00000100 30 34 30 31 5a 30 81 88 31 0b 30 09 06 03 55 04 |0401Z0..1.0...U.| 00000110 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a |...US1.0...U....| 00000120 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 |Washington1.0...| 00000130 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c |U....Redmond1.0.| 00000140 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 |..U....Microsoft| 00000150 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 | Corporation1200| 00000160 06 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 |..U...)Microsoft| 00000170 20 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 | Root Certificat| 00000180 65 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 |e Authority 2010| 00000190 30 82 02 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 000001a0 01 05 00 03 82 02 0f 00 30 82 02 0a 02 82 02 01 |........0.......| 000001b0 00 b9 08 9e 28 e4 e4 ec 06 4e 50 68 b3 41 c5 7b |....(....NPh.A.{| 000001c0 eb ae b6 8e af 81 ba 22 44 1f 65 34 69 4c be 70 |......."D.e4iL.p| 000001d0 40 17 f2 16 7b e2 79 fd 86 ed 0d 39 f4 1b a8 ad |@...{.y....9....| 000001e0 92 90 1e cb 3d 76 8f 5a d9 b5 91 10 2e 3c 05 8d |....=v.Z.....<..| 000001f0 8a 6d 24 54 e7 1f ed 56 ad 83 b4 50 9c 15 a5 17 |.m$T...V...P....| 00000200 74 88 59 20 fc 08 c5 84 76 d3 68 d4 6f 28 78 ce |t.Y ....v.h.o(x.| 00000210 5c b8 f3 50 90 44 ff e3 63 5f be a1 9a 2c 96 15 |\..P.D..c_...,..| 00000220 04 d6 07 fe 1e 84 21 e0 42 31 11 c4 28 36 94 cf |......!.B1..(6..| 00000230 50 a4 62 9e c9 d6 ab 71 00 b2 5b 0c e6 96 d4 0a |P.b....q..[.....| 00000240 24 96 f5 ff c6 d5 b7 1b d7 cb b7 21 62 af 12 dc |$..........!b...| 00000250 a1 5d 37 e3 1a fb 1a 46 98 c0 9b c0 e7 63 1f 2a |.]7....F.....c.*| 00000260 08 93 02 7e 1e 6a 8e f2 9f 18 89 e4 22 85 a2 b1 |...~.j......"...| 00000270 84 57 40 ff f5 0e d8 6f 9c ed e2 45 31 01 cd 17 |.W@....o...E1...| 00000280 e9 7f b0 81 45 e3 aa 21 40 26 a1 72 aa a7 4f 3c |....E..!@&.r..O<| 00000290 01 05 7e ee 83 58 b1 5e 06 63 99 62 91 78 82 b7 |..~..X.^.c.b.x..| 000002a0 0d 93 0c 24 6a b4 1b db 27 ec 5f 95 04 3f 93 4a |...$j...'._..?.J| 000002b0 30 f5 97 18 b3 a7 f9 19 a7 93 33 1d 01 c8 db 22 |0.........3...."| 000002c0 52 5c d7 25 c9 46 f9 a2 fb 87 59 43 be 9b 62 b1 |R\.%.F....YC..b.| 000002d0 8d 2d 86 44 1a 46 ac 78 61 7e 30 09 fa ae 89 c4 |.-.D.F.xa~0.....| 000002e0 41 2a 22 66 03 91 39 45 9c c7 8b 0c a8 ca 0d 2f |A*"f..9E......./| 000002f0 fb 52 ea 0c f7 63 33 23 9d fe b0 1f ad 67 d6 a7 |.R...c3#.....g..| 00000300 50 03 c6 04 70 63 b5 2c b1 86 5a 43 b7 fb ae f9 |P...pc.,..ZC....| 00000310 6e 29 6e 21 21 41 26 06 8c c9 c3 ee b0 c2 85 93 |n)n!!A&.........| 00000320 a1 b9 85 d9 e6 32 6c 4b 4c 3f d6 5d a3 e5 b5 9d |.....2lKL?.]....| 00000330 77 c3 9c c0 55 b7 74 00 e3 b8 38 ab 83 97 50 e1 |w...U.t...8...P.| 00000340 9a 42 24 1d c6 c0 a3 30 d1 1a 5a c8 52 34 f7 73 |.B$....0..Z.R4.s| 00000350 f1 c7 18 1f 33 ad 7a ec cb 41 60 f3 23 94 20 c2 |....3.z..A`.#. .| 00000360 48 45 ac 5c 51 c6 2e 80 c2 e2 77 15 bd 85 87 ed |HE.\Q.....w.....| 00000370 36 9d 96 91 ee 00 b5 a3 70 ec 9f e3 8d 80 68 83 |6.......p.....h.| 00000380 76 ba af 5d 70 52 22 16 e2 66 fb ba b3 c5 c2 f7 |v..]pR"..f......| 00000390 3e 2f 77 a6 ca de c1 a6 c6 48 4c c3 37 51 23 d3 |>/w......HL.7Q#.| 000003a0 27 d7 b8 4e 70 96 f0 a1 44 76 af 78 cf 9a e1 66 |'..Np...Dv.x...f| 000003b0 13 02 03 01 00 01 a3 51 30 4f 30 0b 06 03 55 1d |.......Q0O0...U.| 000003c0 0f 04 04 03 02 01 86 30 0f 06 03 55 1d 13 01 01 |.......0...U....| 000003d0 ff 04 05 30 03 01 01 ff 30 1d 06 03 55 1d 0e 04 |...0....0...U...| 000003e0 16 04 14 d5 f6 56 cb 8f e8 a2 5c 62 68 d1 3d 94 |.....V....\bh.=.| 000003f0 90 5b d7 ce 9a 18 c4 30 10 06 09 2b 06 01 04 01 |.[.....0...+....| 00000400 82 37 15 01 04 03 02 01 00 30 0d 06 09 2a 86 48 |.7.......0...*.H| 00000410 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 ac a5 96 |................| 00000420 8c bf bb ae a6 f6 d7 71 87 43 31 56 88 fd 1c 32 |.......q.C1V...2| 00000430 71 5b 35 b7 d4 f0 91 f2 af 37 e2 14 f1 f3 02 26 |q[5......7.....&| 00000440 05 3e 16 14 7f 14 ba b8 4f fb 89 b2 b2 e7 d4 09 |.>......O.......| 00000450 cc 6d b9 5b 3b 64 65 70 66 b7 f2 b1 5a df 1a 02 |.m.[;depf...Z...| 00000460 f3 f5 51 b8 67 6d 79 f3 bf 56 7b e4 84 b9 2b 1e |..Q.gmy..V{...+.| 00000470 9b 40 9c 26 34 f9 47 18 98 69 d8 1c d7 b6 d1 bf |.@.&4.G..i......| 00000480 8f 61 c2 67 c4 b5 ef 60 43 8e 10 1b 36 49 e4 20 |.a.g...`C...6I. | 00000490 ca ad a7 c1 b1 27 65 09 f8 cd f5 5b 2a d0 84 33 |.....'e....[*..3| 000004a0 f3 ef 1f f2 f5 9c 0b 58 93 37 a0 75 a0 de 72 de |.......X.7.u..r.| 000004b0 6c 75 2a 66 22 f5 8c 06 30 56 9f 40 b9 30 aa 40 |lu*f"...0V.@.0.@| 000004c0 77 15 82 d7 8b ec c0 d3 b2 bd 83 c5 77 0c 1e ae |w...........w...| 000004d0 af 19 53 a0 4d 79 71 9f 0f af 30 ce 67 f9 d6 2c |..S.Myq...0.g..,| 000004e0 cc 22 41 7a 07 f2 97 42 18 ce 59 79 10 55 de 6f |."Az...B..Yy.U.o| 000004f0 10 e4 b8 da 83 66 40 16 09 68 23 5b 97 2e 26 9a |.....f@..h#[..&.| 00000500 02 bb 57 8c c5 b8 ba 69 62 32 80 89 9e a1 fd c0 |..W....ib2......| 00000510 92 7c 7b 2b 33 19 84 2a 63 c5 00 68 62 fa 9f 47 |.|{+3..*c..hb..G| 00000520 8d 99 7a 45 3a a7 e9 ed ee 69 42 b5 f3 81 9b 47 |..zE:....iB....G| 00000530 56 10 7b fc 70 36 84 18 73 ea ef f9 97 4d 9e 33 |V.{.p6..s....M.3| 00000540 23 dd 26 0b ba 2a b7 3f 44 dc 83 27 ff bd 61 59 |#.&..*.?D..'..aY| 00000550 2b 11 b7 ca 4f db c5 8b 0c 1c 31 ae 32 f8 f8 b9 |+...O.....1.2...| 00000560 42 f7 7f dc 61 9a 76 b1 5a 04 e1 11 3d 66 45 b7 |B...a.v.Z...=fE.| 00000570 18 71 be c9 24 85 d6 f3 d4 ba 41 34 5d 12 2d 25 |.q..$.....A4].-%| 00000580 b9 8d a6 13 48 6d 4b b0 07 7d 99 93 09 61 81 74 |....HmK..}...a.t| 00000590 57 26 8a ab 69 e3 e4 d9 c7 88 cc 24 d8 ec 52 24 |W&..i......$..R$| 000005a0 5c 1e bc 91 14 e2 96 de eb 0a da 9e dd 5f b3 5b |\............_.[| 000005b0 db d4 82 ec c6 20 50 87 25 40 3a fb c7 ee cd fe |..... P.%@:.....| 000005c0 33 e5 6e c3 84 09 55 03 25 39 c0 e9 35 5d 65 31 |3.n...U.%9..5]e1| 000005d0 a8 f6 bf a0 09 cd 29 c7 b3 36 32 2e dc 95 f3 83 |......)..62.....| 000005e0 c1 5a cf 8b 8d f6 ea b3 21 f8 a4 ed 1e 31 0e b6 |.Z......!....1..| 000005f0 4c 11 ab 60 0b a4 12 23 22 17 a3 36 64 82 91 04 |L..`...#"..6d...| 00000600 12 e0 ab 6f 1e cb 50 05 61 b4 40 ff 59 86 71 d1 |...o..P.a.@.Y.q.| 00000610 d5 33 69 7c a9 73 8a 38 d7 64 0c f1 69 |.3i|.s.8.d..i| 0000061d efivar-39/tests/machine2/annotations/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000203401455652431600274740ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 1d 06 00 00 |....| esl[0].signature_list_size = 1565 (0x61d) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 01 06 00 00 |....| esl[0].signature_size = 1537 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 05 ed |0...| esl[0].signature[0].data (end:0x0000061d) 00000030 30 82 03 d5 a0 03 02 01 02 02 10 28 cc 3a 25 bf |0..........(.:%.| 00000040 ba 44 ac 44 9a 9b 58 6b 43 39 aa 30 0d 06 09 2a |.D.D..XkC9.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 81 88 31 0b 30 |.H........0..1.0| 00000060 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000070 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000080 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000090 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 000000a0 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 000000b0 6e 31 32 30 30 06 03 55 04 03 13 29 4d 69 63 72 |n1200..U...)Micr| 000000c0 6f 73 6f 66 74 20 52 6f 6f 74 20 43 65 72 74 69 |osoft Root Certi| 000000d0 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 74 79 |ficate Authority| 000000e0 20 32 30 31 30 30 1e 17 0d 31 30 30 36 32 33 32 | 20100...1006232| 000000f0 31 35 37 32 34 5a 17 0d 33 35 30 36 32 33 32 32 |15724Z..35062322| 00000100 30 34 30 31 5a 30 81 88 31 0b 30 09 06 03 55 04 |0401Z0..1.0...U.| 00000110 06 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a |...US1.0...U....| 00000120 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 |Washington1.0...| 00000130 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c |U....Redmond1.0.| 00000140 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 |..U....Microsoft| 00000150 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 | Corporation1200| 00000160 06 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 |..U...)Microsoft| 00000170 20 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 | Root Certificat| 00000180 65 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 |e Authority 2010| 00000190 30 82 02 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 000001a0 01 05 00 03 82 02 0f 00 30 82 02 0a 02 82 02 01 |........0.......| 000001b0 00 b9 08 9e 28 e4 e4 ec 06 4e 50 68 b3 41 c5 7b |....(....NPh.A.{| 000001c0 eb ae b6 8e af 81 ba 22 44 1f 65 34 69 4c be 70 |......."D.e4iL.p| 000001d0 40 17 f2 16 7b e2 79 fd 86 ed 0d 39 f4 1b a8 ad |@...{.y....9....| 000001e0 92 90 1e cb 3d 76 8f 5a d9 b5 91 10 2e 3c 05 8d |....=v.Z.....<..| 000001f0 8a 6d 24 54 e7 1f ed 56 ad 83 b4 50 9c 15 a5 17 |.m$T...V...P....| 00000200 74 88 59 20 fc 08 c5 84 76 d3 68 d4 6f 28 78 ce |t.Y ....v.h.o(x.| 00000210 5c b8 f3 50 90 44 ff e3 63 5f be a1 9a 2c 96 15 |\..P.D..c_...,..| 00000220 04 d6 07 fe 1e 84 21 e0 42 31 11 c4 28 36 94 cf |......!.B1..(6..| 00000230 50 a4 62 9e c9 d6 ab 71 00 b2 5b 0c e6 96 d4 0a |P.b....q..[.....| 00000240 24 96 f5 ff c6 d5 b7 1b d7 cb b7 21 62 af 12 dc |$..........!b...| 00000250 a1 5d 37 e3 1a fb 1a 46 98 c0 9b c0 e7 63 1f 2a |.]7....F.....c.*| 00000260 08 93 02 7e 1e 6a 8e f2 9f 18 89 e4 22 85 a2 b1 |...~.j......"...| 00000270 84 57 40 ff f5 0e d8 6f 9c ed e2 45 31 01 cd 17 |.W@....o...E1...| 00000280 e9 7f b0 81 45 e3 aa 21 40 26 a1 72 aa a7 4f 3c |....E..!@&.r..O<| 00000290 01 05 7e ee 83 58 b1 5e 06 63 99 62 91 78 82 b7 |..~..X.^.c.b.x..| 000002a0 0d 93 0c 24 6a b4 1b db 27 ec 5f 95 04 3f 93 4a |...$j...'._..?.J| 000002b0 30 f5 97 18 b3 a7 f9 19 a7 93 33 1d 01 c8 db 22 |0.........3...."| 000002c0 52 5c d7 25 c9 46 f9 a2 fb 87 59 43 be 9b 62 b1 |R\.%.F....YC..b.| 000002d0 8d 2d 86 44 1a 46 ac 78 61 7e 30 09 fa ae 89 c4 |.-.D.F.xa~0.....| 000002e0 41 2a 22 66 03 91 39 45 9c c7 8b 0c a8 ca 0d 2f |A*"f..9E......./| 000002f0 fb 52 ea 0c f7 63 33 23 9d fe b0 1f ad 67 d6 a7 |.R...c3#.....g..| 00000300 50 03 c6 04 70 63 b5 2c b1 86 5a 43 b7 fb ae f9 |P...pc.,..ZC....| 00000310 6e 29 6e 21 21 41 26 06 8c c9 c3 ee b0 c2 85 93 |n)n!!A&.........| 00000320 a1 b9 85 d9 e6 32 6c 4b 4c 3f d6 5d a3 e5 b5 9d |.....2lKL?.]....| 00000330 77 c3 9c c0 55 b7 74 00 e3 b8 38 ab 83 97 50 e1 |w...U.t...8...P.| 00000340 9a 42 24 1d c6 c0 a3 30 d1 1a 5a c8 52 34 f7 73 |.B$....0..Z.R4.s| 00000350 f1 c7 18 1f 33 ad 7a ec cb 41 60 f3 23 94 20 c2 |....3.z..A`.#. .| 00000360 48 45 ac 5c 51 c6 2e 80 c2 e2 77 15 bd 85 87 ed |HE.\Q.....w.....| 00000370 36 9d 96 91 ee 00 b5 a3 70 ec 9f e3 8d 80 68 83 |6.......p.....h.| 00000380 76 ba af 5d 70 52 22 16 e2 66 fb ba b3 c5 c2 f7 |v..]pR"..f......| 00000390 3e 2f 77 a6 ca de c1 a6 c6 48 4c c3 37 51 23 d3 |>/w......HL.7Q#.| 000003a0 27 d7 b8 4e 70 96 f0 a1 44 76 af 78 cf 9a e1 66 |'..Np...Dv.x...f| 000003b0 13 02 03 01 00 01 a3 51 30 4f 30 0b 06 03 55 1d |.......Q0O0...U.| 000003c0 0f 04 04 03 02 01 86 30 0f 06 03 55 1d 13 01 01 |.......0...U....| 000003d0 ff 04 05 30 03 01 01 ff 30 1d 06 03 55 1d 0e 04 |...0....0...U...| 000003e0 16 04 14 d5 f6 56 cb 8f e8 a2 5c 62 68 d1 3d 94 |.....V....\bh.=.| 000003f0 90 5b d7 ce 9a 18 c4 30 10 06 09 2b 06 01 04 01 |.[.....0...+....| 00000400 82 37 15 01 04 03 02 01 00 30 0d 06 09 2a 86 48 |.7.......0...*.H| 00000410 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 ac a5 96 |................| 00000420 8c bf bb ae a6 f6 d7 71 87 43 31 56 88 fd 1c 32 |.......q.C1V...2| 00000430 71 5b 35 b7 d4 f0 91 f2 af 37 e2 14 f1 f3 02 26 |q[5......7.....&| 00000440 05 3e 16 14 7f 14 ba b8 4f fb 89 b2 b2 e7 d4 09 |.>......O.......| 00000450 cc 6d b9 5b 3b 64 65 70 66 b7 f2 b1 5a df 1a 02 |.m.[;depf...Z...| 00000460 f3 f5 51 b8 67 6d 79 f3 bf 56 7b e4 84 b9 2b 1e |..Q.gmy..V{...+.| 00000470 9b 40 9c 26 34 f9 47 18 98 69 d8 1c d7 b6 d1 bf |.@.&4.G..i......| 00000480 8f 61 c2 67 c4 b5 ef 60 43 8e 10 1b 36 49 e4 20 |.a.g...`C...6I. | 00000490 ca ad a7 c1 b1 27 65 09 f8 cd f5 5b 2a d0 84 33 |.....'e....[*..3| 000004a0 f3 ef 1f f2 f5 9c 0b 58 93 37 a0 75 a0 de 72 de |.......X.7.u..r.| 000004b0 6c 75 2a 66 22 f5 8c 06 30 56 9f 40 b9 30 aa 40 |lu*f"...0V.@.0.@| 000004c0 77 15 82 d7 8b ec c0 d3 b2 bd 83 c5 77 0c 1e ae |w...........w...| 000004d0 af 19 53 a0 4d 79 71 9f 0f af 30 ce 67 f9 d6 2c |..S.Myq...0.g..,| 000004e0 cc 22 41 7a 07 f2 97 42 18 ce 59 79 10 55 de 6f |."Az...B..Yy.U.o| 000004f0 10 e4 b8 da 83 66 40 16 09 68 23 5b 97 2e 26 9a |.....f@..h#[..&.| 00000500 02 bb 57 8c c5 b8 ba 69 62 32 80 89 9e a1 fd c0 |..W....ib2......| 00000510 92 7c 7b 2b 33 19 84 2a 63 c5 00 68 62 fa 9f 47 |.|{+3..*c..hb..G| 00000520 8d 99 7a 45 3a a7 e9 ed ee 69 42 b5 f3 81 9b 47 |..zE:....iB....G| 00000530 56 10 7b fc 70 36 84 18 73 ea ef f9 97 4d 9e 33 |V.{.p6..s....M.3| 00000540 23 dd 26 0b ba 2a b7 3f 44 dc 83 27 ff bd 61 59 |#.&..*.?D..'..aY| 00000550 2b 11 b7 ca 4f db c5 8b 0c 1c 31 ae 32 f8 f8 b9 |+...O.....1.2...| 00000560 42 f7 7f dc 61 9a 76 b1 5a 04 e1 11 3d 66 45 b7 |B...a.v.Z...=fE.| 00000570 18 71 be c9 24 85 d6 f3 d4 ba 41 34 5d 12 2d 25 |.q..$.....A4].-%| 00000580 b9 8d a6 13 48 6d 4b b0 07 7d 99 93 09 61 81 74 |....HmK..}...a.t| 00000590 57 26 8a ab 69 e3 e4 d9 c7 88 cc 24 d8 ec 52 24 |W&..i......$..R$| 000005a0 5c 1e bc 91 14 e2 96 de eb 0a da 9e dd 5f b3 5b |\............_.[| 000005b0 db d4 82 ec c6 20 50 87 25 40 3a fb c7 ee cd fe |..... P.%@:.....| 000005c0 33 e5 6e c3 84 09 55 03 25 39 c0 e9 35 5d 65 31 |3.n...U.%9..5]e1| 000005d0 a8 f6 bf a0 09 cd 29 c7 b3 36 32 2e dc 95 f3 83 |......)..62.....| 000005e0 c1 5a cf 8b 8d f6 ea b3 21 f8 a4 ed 1e 31 0e b6 |.Z......!....1..| 000005f0 4c 11 ab 60 0b a4 12 23 22 17 a3 36 64 82 91 04 |L..`...#"..6d...| 00000600 12 e0 ab 6f 1e cb 50 05 61 b4 40 ff 59 86 71 d1 |...o..P.a.@.Y.q.| 00000610 d5 33 69 7c a9 73 8a 38 d7 64 0c f1 69 |.3i|.s.8.d..i| 0000061d efivar-39/tests/machine2/annotations/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000001113421455652431600263000ustar00rootroot0000000000000000000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 8c 0e 00 00 |....| esl[0].signature_list_size = 3724 (0xe8c) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 80 b4 d9 69 |...i| esl[0].signature[0].data (end:0x0000004c) 00000030 31 bf 0d 02 fd 91 a6 1e 19 d1 4f 1d a4 52 e6 6d |1.........O..R.m| 00000040 b2 40 8c a8 60 4d 41 1f 92 65 9f 0a |.@..`MA..e..| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c f5 2f 83 a3 |./..| esl[0].signature[1].data (end:0x0000007c) 00000060 fa 9c fb d6 92 0f 72 28 24 db e4 03 45 34 d2 5b |......r($...E4.[| 00000070 85 07 24 6b 3b 95 7d ac 6e 1b ce 7a |..$k;.}.n..z| 0000007c bd 9a fa 77 |...w| esl[0].signature[2].owner = {microsoft} 00000080 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000008c c5 d9 d8 a1 |....| esl[0].signature[2].data (end:0x000000ac) 00000090 86 e2 c8 2d 09 af aa 2a 6f 7f 2e 73 87 0d 3e 64 |...-...*o..s..>d| 000000a0 f7 2c 4e 08 ef 67 79 6a 84 0f 0f bd |.,N..gyj....| 000000ac bd 9a fa 77 |...w| esl[0].signature[3].owner = {microsoft} 000000b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000bc 36 33 84 d1 |63..| esl[0].signature[3].data (end:0x000000dc) 000000c0 4d 1f 2e 0b 78 15 62 64 84 c4 59 ad 57 a3 18 ef |M...x.bd..Y.W...| 000000d0 43 96 26 60 48 d0 58 c5 a1 9b bf 76 |C.&`H.X....v| 000000dc bd 9a fa 77 |...w| esl[0].signature[4].owner = {microsoft} 000000e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000ec 1a ec 84 b8 |....| esl[0].signature[4].data (end:0x0000010c) 000000f0 4b 6c 65 a5 12 20 a9 be 71 81 96 52 30 21 0d 62 |Kle.. ..q..R0!.b| 00000100 d6 d3 3c 48 99 9c 6b 29 5a 2b 0a 06 |....h2.....'| 00000280 25 27 df b6 3d 49 d2 95 72 a6 f4 4c |%'..=I..r..L| 0000028c bd 9a fa 77 |...w| esl[0].signature[13].owner = {microsoft} 00000290 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000029c 07 5e ea 06 |.^..| esl[0].signature[13].data (end:0x000002bc) 000002a0 05 89 54 8b a0 60 b2 fe ed 10 da 3c 20 c7 fe 9b |..T..`.....< ...| 000002b0 17 cd 02 6b 94 e8 a6 83 b8 11 52 38 |...k......R8| 000002bc bd 9a fa 77 |...w| esl[0].signature[14].owner = {microsoft} 000002c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002cc 07 e6 c6 a8 |....| esl[0].signature[14].data (end:0x000002ec) 000002d0 58 64 6f b1 ef c6 79 03 fe 28 b1 16 01 1f 23 67 |Xdo...y..(....#g| 000002e0 fe 92 e6 be 2b 36 99 9e ff 39 d0 9e |....+6...9..| 000002ec bd 9a fa 77 |...w| esl[0].signature[15].owner = {microsoft} 000002f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002fc 09 df 5f 4e |.._N| esl[0].signature[15].data (end:0x0000031c) 00000300 51 12 08 ec 78 b9 6d 12 d0 81 25 fd b6 03 86 8d |Q...x.m...%.....| 00000310 e3 9f 6f 72 92 78 52 59 9b 65 9c 26 |..or.xRY.e.&| 0000031c bd 9a fa 77 |...w| esl[0].signature[16].owner = {microsoft} 00000320 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000032c 0b bb 43 92 |..C.| esl[0].signature[16].data (end:0x0000034c) 00000330 da ac 7a b8 9b 30 a4 ac 65 75 31 b9 7b fa ab 04 |..z..0..eu1.{...| 00000340 f9 0b 0d af e5 f9 b6 eb 90 a0 63 74 |..........ct| 0000034c bd 9a fa 77 |...w| esl[0].signature[17].owner = {microsoft} 00000350 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000035c 0c 18 93 39 |...9| esl[0].signature[17].data (end:0x0000037c) 00000360 76 2d f3 36 ab 3d d0 06 a4 63 df 71 5a 39 cf b0 |v-.6.=...c.qZ9..| 00000370 f4 92 46 5c 60 0e 6c 6b d7 bd 89 8c |..F\`.lk....| 0000037c bd 9a fa 77 |...w| esl[0].signature[18].owner = {microsoft} 00000380 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000038c 0d 0d be ca |....| esl[0].signature[18].data (end:0x000003ac) 00000390 6f 29 ec a0 6f 33 1a 7d 72 e4 88 4b 12 09 7f b3 |o)..o3.}r..K....| 000003a0 48 98 3a 2a 14 a0 d7 3f 4f 10 14 0f |H.:*...?O...| 000003ac bd 9a fa 77 |...w| esl[0].signature[19].owner = {microsoft} 000003b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003bc 0d c9 f3 fb |....| esl[0].signature[19].data (end:0x000003dc) 000003c0 99 96 21 48 c3 ca 83 36 32 75 8d 3e d4 fc 8d 0b |..!H...62u.>....| 000003d0 00 07 b9 5b 31 e6 52 8f 2a cd 5b fc |...[1.R.*.[.| 000003dc bd 9a fa 77 |...w| esl[0].signature[20].owner = {microsoft} 000003e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003ec 10 6f ac ea |.o..| esl[0].signature[20].data (end:0x0000040c) 000003f0 cf ec fd 4e 30 3b 74 f4 80 a0 80 98 e2 d0 80 2b |...N0;t........+| 00000400 93 6f 8e c7 74 ce 21 f3 16 86 68 9c |.o..t.!...h.| 0000040c bd 9a fa 77 |...w| esl[0].signature[21].owner = {microsoft} 00000410 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000041c 17 4e 3a 0b |.N:.| esl[0].signature[21].data (end:0x0000043c) 00000420 5b 43 c6 a6 07 bb d3 40 4f 05 34 1e 3d cf 39 62 |[C.....@O.4.=.9b| 00000430 67 ce 94 f8 b5 0e 2e 23 a9 da 92 0c |g......#....| 0000043c bd 9a fa 77 |...w| esl[0].signature[22].owner = {microsoft} 00000440 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000044c 18 33 34 29 |.34)| esl[0].signature[22].data (end:0x0000046c) 00000450 ff 05 62 ed 9f 97 03 3e 11 48 dc ee e5 2d be 2e |..b....>.H...-..| 00000460 49 6d 54 10 b5 cf d6 c8 64 d2 d1 0f |ImT.....d...| 0000046c bd 9a fa 77 |...w| esl[0].signature[23].owner = {microsoft} 00000470 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000047c 2b 99 cf 26 |+..&| esl[0].signature[23].data (end:0x0000049c) 00000480 42 2e 92 fe 36 5f bf 4b c3 0d 27 08 6c 9e e1 4b |B...6_.K..'.l..K| 00000490 7a 6f ff 44 fb 2f 6b 90 01 69 99 39 |zo.D./k..i.9| 0000049c bd 9a fa 77 |...w| esl[0].signature[24].owner = {microsoft} 000004a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004ac 2b bf 2c a7 |+.,.| esl[0].signature[24].data (end:0x000004cc) 000004b0 b8 f1 d9 1f 27 ee 52 b6 fb 2a 5d d0 49 b8 5a 2b |....'.R..*].I.Z+| 000004c0 9b 52 9c 5d 66 62 06 81 04 b0 55 f8 |.R.]fb....U.| 000004cc bd 9a fa 77 |...w| esl[0].signature[25].owner = {microsoft} 000004d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004dc 2c 73 d9 33 |,s.3| esl[0].signature[25].data (end:0x000004fc) 000004e0 25 ba 6d cb e5 89 d4 a4 c6 3c 5b 93 55 59 ef 92 |%.m......<[.UY..| 000004f0 fb f0 50 ed 50 c4 e2 08 52 06 f1 7d |..P.P...R..}| 000004fc bd 9a fa 77 |...w| esl[0].signature[26].owner = {microsoft} 00000500 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000050c 2e 70 91 67 |.p.g| esl[0].signature[26].data (end:0x0000052c) 00000510 86 a6 f7 73 51 1f a7 18 1f ab 0f 1d 70 b5 57 c6 |...sQ.......p.W.| 00000520 32 2e a9 23 b2 a8 d3 b9 2b 51 af 7d |2..#....+Q.}| 0000052c bd 9a fa 77 |...w| esl[0].signature[27].owner = {microsoft} 00000530 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000053c 30 66 28 fa |0f(.| esl[0].signature[27].data (end:0x0000055c) 00000540 54 77 30 57 28 ba 4a 46 7d e7 d0 38 7a 54 f5 69 |Tw0W(.JF}..8zT.i| 00000550 d3 76 9f ce 5e 75 ec 89 d2 8d 15 93 |.v..^u......| 0000055c bd 9a fa 77 |...w| esl[0].signature[28].owner = {microsoft} 00000560 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000056c 36 08 ed ba |6...| esl[0].signature[28].data (end:0x0000058c) 00000570 f5 ad 0f 41 a4 14 a1 77 7a bf 2f af 5e 67 03 34 |...A...wz./.^g.4| 00000580 67 5e c3 99 5e 69 35 82 9e 0c aa d2 |g^..^i5.....| 0000058c bd 9a fa 77 |...w| esl[0].signature[29].owner = {microsoft} 00000590 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000059c 38 41 d2 21 |8A.!| esl[0].signature[29].data (end:0x000005bc) 000005a0 36 8d 15 83 d7 5c 0a 02 e6 21 60 39 4d 6c 4e 0a |6....\...!`9MlN.| 000005b0 67 60 b6 f6 07 b9 03 62 bc 85 5b 02 |g`.....b..[.| 000005bc bd 9a fa 77 |...w| esl[0].signature[30].owner = {microsoft} 000005c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005cc 3f ce 9b 9f |?...| esl[0].signature[30].data (end:0x000005ec) 000005d0 df 3e f0 9d 54 52 b0 f9 5e e4 81 c2 b7 f0 6d 74 |.>..TR..^.....mt| 000005e0 3a 73 79 71 55 8e 70 13 6a ce 3e 73 |:syqU.p.j.>s| 000005ec bd 9a fa 77 |...w| esl[0].signature[31].owner = {microsoft} 000005f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005fc 43 97 da ca |C...| esl[0].signature[31].data (end:0x0000061c) 00000600 83 9e 7f 63 07 7c b5 0c 92 df 43 bc 2d 2f b2 a8 |...c.|....C.-/..| 00000610 f5 9f 26 fc 7a 0e 4b d4 d9 75 16 92 |..&.z.K..u..| 0000061c bd 9a fa 77 |...w| esl[0].signature[32].owner = {microsoft} 00000620 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000062c 47 cc 08 61 |G..a| esl[0].signature[32].data (end:0x0000064c) 00000630 27 e2 06 9a 86 e0 3a 6b ef 2c d4 10 f8 c5 5a 6d |'.....:k.,....Zm| 00000640 6b db 36 21 68 c3 1b 2c e3 2a 5a df |k.6!h..,.*Z.| 0000064c bd 9a fa 77 |...w| esl[0].signature[33].owner = {microsoft} 00000650 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000065c 51 88 31 fe |Q.1.| esl[0].signature[33].data (end:0x0000067c) 00000660 73 82 b5 14 d0 3e 15 c6 21 22 8b 8a b6 54 79 bd |s....>..!"...Ty.| 00000670 0c bf a3 c5 c1 d0 f4 8d 9c 30 61 35 |.........0a5| 0000067c bd 9a fa 77 |...w| esl[0].signature[34].owner = {microsoft} 00000680 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000068c 5a e9 49 ea |Z.I.| esl[0].signature[34].data (end:0x000006ac) 00000690 88 55 eb 93 e4 39 db c6 5b da 2e 42 85 2c 2f df |.U...9..[..B.,/.| 000006a0 67 89 fa 14 67 36 e3 c3 41 0f 2b 5c |g...g6..A.+\| 000006ac bd 9a fa 77 |...w| esl[0].signature[35].owner = {microsoft} 000006b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006bc 6b 1d 13 80 |k...| esl[0].signature[35].data (end:0x000006dc) 000006c0 78 e4 41 8a a6 8d eb 7b b3 5e 06 60 92 cf 47 9e |x.A....{.^.`..G.| 000006d0 eb 8c e4 cd 12 e7 d0 72 cc b4 2f 66 |.......r../f| 000006dc bd 9a fa 77 |...w| esl[0].signature[36].owner = {microsoft} 000006e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006ec 6c 88 54 47 |l.TG| esl[0].signature[36].data (end:0x0000070c) 000006f0 8d d5 59 e2 93 51 b8 26 c0 6c b8 bf ef 2b 94 ad |..Y..Q.&.l...+..| 00000700 35 38 35 87 72 d1 93 f8 2e d1 ca 11 |585.r.......| 0000070c bd 9a fa 77 |...w| esl[0].signature[37].owner = {microsoft} 00000710 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000071c 6f 14 28 ff |o.(.| esl[0].signature[37].data (end:0x0000073c) 00000720 71 c9 db 0e d5 af 1f 2e 7b bf cb ab 64 7c c2 65 |q.......{...d|.e| 00000730 dd f5 b2 93 cd b6 26 f5 0a 3a 78 5e |......&..:x^| 0000073c bd 9a fa 77 |...w| esl[0].signature[38].owner = {microsoft} 00000740 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000074c 71 f2 90 6f |q..o| esl[0].signature[38].data (end:0x0000076c) 00000750 d2 22 49 7e 54 a3 46 62 ab 24 97 fc c8 10 20 77 |."I~T.Fb.$.... w| 00000760 0f f5 13 68 e9 e3 d9 bf cb fd 63 75 |...h......cu| 0000076c bd 9a fa 77 |...w| esl[0].signature[39].owner = {microsoft} 00000770 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000077c 72 6b 3e b6 |rk>.| esl[0].signature[39].data (end:0x0000079c) 00000780 54 04 6a 30 f3 f8 3d 9b 96 ce 03 f6 70 e9 a8 06 |T.j0..=.....p...| 00000790 d1 70 8a 03 71 e6 2d c4 9d 2c 23 c1 |.p..q.-..,#.| 0000079c bd 9a fa 77 |...w| esl[0].signature[40].owner = {microsoft} 000007a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007ac 72 e0 bd 18 |r...| esl[0].signature[40].data (end:0x000007cc) 000007b0 67 cf 5d 9d 56 ab 15 8a df 3b dd bc 82 bf 32 a8 |g.].V....;....2.| 000007c0 d8 aa 1d 8c 5e 2f 6d f2 94 28 d6 d8 |....^/m..(..| 000007cc bd 9a fa 77 |...w| esl[0].signature[41].owner = {microsoft} 000007d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007dc 78 27 af 99 |x'..| esl[0].signature[41].data (end:0x000007fc) 000007e0 36 2c fa f0 71 7d ad e4 b1 bf e0 43 8a d1 71 c1 |6,..q}.....C..q.| 000007f0 5a dd c2 48 b7 5b f8 ca a4 4b b2 c5 |Z..H.[...K..| 000007fc bd 9a fa 77 |...w| esl[0].signature[42].owner = {microsoft} 00000800 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000080c 81 a8 b9 65 |...e| esl[0].signature[42].data (end:0x0000082c) 00000810 bb 84 d3 87 6b 94 29 a9 54 81 cc 95 53 18 cf aa |....k.).T...S...| 00000820 14 12 d8 08 c8 a3 3b fd 33 ff f0 e4 |......;.3...| 0000082c bd 9a fa 77 |...w| esl[0].signature[43].owner = {microsoft} 00000830 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000083c 82 db 3b ce |..;.| esl[0].signature[43].data (end:0x0000085c) 00000840 b4 f6 08 43 ce 9d 97 c3 d1 87 cd 9b 59 41 cd 3d |...C........YA.=| 00000850 e8 10 0e 58 6f 2b da 56 37 57 5f 67 |...Xo+.V7W_g| 0000085c bd 9a fa 77 |...w| esl[0].signature[44].owner = {microsoft} 00000860 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000086c 89 5a 97 85 |.Z..| esl[0].signature[44].data (end:0x0000088c) 00000870 f6 17 ca 1d 7e d4 4f c1 a1 47 0b 71 f3 f1 22 38 |....~.O..G.q.."8| 00000880 62 d9 ff 9d cc 3a e2 df 92 16 3d af |b....:....=.| 0000088c bd 9a fa 77 |...w| esl[0].signature[45].owner = {microsoft} 00000890 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000089c 8a d6 48 59 |..HY| esl[0].signature[45].data (end:0x000008bc) 000008a0 f1 95 b5 f5 8d af aa 94 0b 6a 61 67 ac d6 7a 88 |.........jag..z.| 000008b0 6e 8f 46 93 64 17 72 21 c5 59 45 b9 |n.F.d.r!.YE.| 000008bc bd 9a fa 77 |...w| esl[0].signature[46].owner = {microsoft} 000008c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008cc 8b f4 34 b4 |..4.| esl[0].signature[46].data (end:0x000008ec) 000008d0 9e 00 cc f7 15 02 a2 cd 90 08 65 cb 01 ec 3b 3d |..........e...;=| 000008e0 a0 3c 35 be 50 5f df 7b d5 63 f5 21 |.<5.P_.{.c.!| 000008ec bd 9a fa 77 |...w| esl[0].signature[47].owner = {microsoft} 000008f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008fc 8d 8e a2 89 |....| esl[0].signature[47].data (end:0x0000091c) 00000900 cf e7 0a 1c 07 ab 73 65 cb 28 ee 51 ed d3 3c f2 |......se.(.Q..<.| 00000910 50 6d e8 88 fb ad d6 0e bf 80 48 1c |Pm........H.| 0000091c bd 9a fa 77 |...w| esl[0].signature[48].owner = {microsoft} 00000920 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000092c 99 98 d3 63 |...c| esl[0].signature[48].data (end:0x0000094c) 00000930 c4 91 be 16 bd 74 ba 10 b9 4d 92 91 00 16 11 73 |.....t...M.....s| 00000940 6f dc a6 43 a3 66 64 bc 0f 31 5a 42 |o..C.fd..1ZB| 0000094c bd 9a fa 77 |...w| esl[0].signature[49].owner = {microsoft} 00000950 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000095c 9e 4a 69 17 |.Ji.| esl[0].signature[49].data (end:0x0000097c) 00000960 31 61 68 2e 55 fd e8 fe f5 60 eb 88 ec 1f fe dc |1ah.U....`......| 00000970 af 04 00 1f 66 c0 ca f7 07 b2 b7 34 |....f......4| 0000097c bd 9a fa 77 |...w| esl[0].signature[50].owner = {microsoft} 00000980 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000098c a6 b5 15 1f |....| esl[0].signature[50].data (end:0x000009ac) 00000990 36 55 d3 a2 af 0d 47 27 59 79 6b e4 a4 20 0e 54 |6U....G'Yyk.. .T| 000009a0 95 a7 d8 69 75 4c 48 48 85 74 08 a7 |...iuLHH.t..| 000009ac bd 9a fa 77 |...w| esl[0].signature[51].owner = {microsoft} 000009b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009bc a7 f3 2f 50 |../P| esl[0].signature[51].data (end:0x000009dc) 000009c0 8d 4e b0 fe ad 9a 08 7e f9 4e d1 ba 0a ec 5d e6 |.N.....~.N....].| 000009d0 f7 ef 6f f0 a6 2b 93 be df 5d 45 8d |..o..+...]E.| 000009dc bd 9a fa 77 |...w| esl[0].signature[52].owner = {microsoft} 000009e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009ec ad 68 26 e1 |.h&.| esl[0].signature[52].data (end:0x00000a0c) 000009f0 94 6d 26 d3 ea f3 68 5c 88 d9 7d 85 de 3b 4d cb |.m&...h\..}..;M.| 00000a00 3d 0e e2 ae 81 c7 05 60 d1 3c 57 20 |=......`...$Q| 00000c10 3f bc 65 59 57 d7 35 fa 29 f5 40 ce |?.eYW.5.).@.| 00000c1c bd 9a fa 77 |...w| esl[0].signature[64].owner = {microsoft} 00000c20 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c2c d8 cb eb 97 |....| esl[0].signature[64].data (end:0x00000c4c) 00000c30 35 f5 67 2b 36 7e 4f 96 cd c7 49 69 61 5d 17 07 |5.g+6~O...Iia]..| 00000c40 4a e9 6c 72 4d 42 ce 02 16 f8 f3 fa |J.lrMB......| 00000c4c bd 9a fa 77 |...w| esl[0].signature[65].owner = {microsoft} 00000c50 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c5c e9 2c 22 eb |.,".| esl[0].signature[65].data (end:0x00000c7c) 00000c60 3b 56 42 d6 5c 1e c2 ca f2 47 d2 59 47 38 ee bb |;VB.\....G.YG8..| 00000c70 7f b3 84 1a 44 95 6f 59 e2 b0 d1 fa |....D.oY....| 00000c7c bd 9a fa 77 |...w| esl[0].signature[66].owner = {microsoft} 00000c80 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c8c fd dd 6e 3d |..n=| esl[0].signature[66].data (end:0x00000cac) 00000c90 29 ea 84 c7 74 3d ad 4a 1b db c7 00 b5 fe c1 b3 |)...t=.J........| 00000ca0 91 f9 32 40 90 86 ac c7 1d d6 db d8 |..2@........| 00000cac bd 9a fa 77 |...w| esl[0].signature[67].owner = {microsoft} 00000cb0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cbc fe 63 a8 4f |.c.O| esl[0].signature[67].data (end:0x00000cdc) 00000cc0 78 2c c9 d3 fc f2 cc f9 fc 11 fb d0 37 60 87 87 |x,..........7`..| 00000cd0 58 d2 62 85 ed 12 66 9b dc 6e 6d 01 |X.b...f..nm.| 00000cdc bd 9a fa 77 |...w| esl[0].signature[68].owner = {microsoft} 00000ce0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cec fe cf b2 32 |...2| esl[0].signature[68].data (end:0x00000d0c) 00000cf0 d1 2e 99 4b 6d 48 5d 2c 71 67 72 8a a5 52 59 84 |...KmH],qgr..RY.| 00000d00 ad 5c a6 1e 75 16 22 1f 07 9a 14 36 |.\..u."....6| 00000d0c bd 9a fa 77 |...w| esl[0].signature[69].owner = {microsoft} 00000d10 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d1c ca 17 1d 61 |...a| esl[0].signature[69].data (end:0x00000d3c) 00000d20 4a 8d 7e 12 1c 93 94 8c d0 fe 55 d3 99 81 f9 d1 |J.~.......U.....| 00000d30 1a a9 6e 03 45 0a 41 52 27 c2 c6 5b |..n.E.AR'..[| 00000d3c bd 9a fa 77 |...w| esl[0].signature[70].owner = {microsoft} 00000d40 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d4c 55 b9 9b 0d |U...| esl[0].signature[70].data (end:0x00000d6c) 00000d50 e5 3d bc fe 48 5a a9 c7 37 cf 3f b6 16 ef 3d 91 |.=..HZ..7.?...=.| 00000d60 fa b5 99 aa 7c ab 19 ed a7 63 b5 ba |....|....c..| 00000d6c bd 9a fa 77 |...w| esl[0].signature[71].owner = {microsoft} 00000d70 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d7c 77 dd 19 0f |w...| esl[0].signature[71].data (end:0x00000d9c) 00000d80 a3 0d 88 ff 5e 3b 01 1a 0a e6 1e 62 09 78 0c 13 |....^;.....b.x..| 00000d90 0b 53 5e cb 87 e6 f0 88 8a 0b 6b 2f |.S^.......k/| 00000d9c bd 9a fa 77 |...w| esl[0].signature[72].owner = {microsoft} 00000da0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000dac c8 3c b1 39 |.<.9| esl[0].signature[72].data (end:0x00000dcc) 00000db0 22 ad 99 f5 60 74 46 75 dd 37 cc 94 dc ad 5a 1f |"...`tFu.7....Z.| 00000dc0 cb a6 47 2f ee 34 11 71 d9 39 e8 84 |..G/.4.q.9..| 00000dcc bd 9a fa 77 |...w| esl[0].signature[73].owner = {microsoft} 00000dd0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000ddc 3b 02 87 53 |;..S| esl[0].signature[73].data (end:0x00000dfc) 00000de0 3e 0c c3 d0 ec 1a a8 23 cb f0 a9 41 aa d8 72 15 |>......#...A..r.| 00000df0 79 d1 c4 99 80 2d d1 c3 a6 36 b8 a9 |y....-...6..| 00000dfc bd 9a fa 77 |...w| esl[0].signature[74].owner = {microsoft} 00000e00 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e0c 93 9a ee f4 |....| esl[0].signature[74].data (end:0x00000e2c) 00000e10 f5 fa 51 e2 33 40 c3 f2 e4 90 48 ce 88 72 52 6a |..Q.3@....H..rRj| 00000e20 fd f7 52 c3 a7 f3 a3 f2 bc 9f 60 49 |..R.......`I| 00000e2c bd 9a fa 77 |...w| esl[0].signature[75].owner = {microsoft} 00000e30 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e3c 64 57 5b d9 |dW[.| esl[0].signature[75].data (end:0x00000e5c) 00000e40 12 78 9a 2e 14 ad 56 f6 34 1f 52 af 6b f8 0c f9 |.x....V.4.R.k...| 00000e50 44 00 78 59 75 e9 f0 4e 2d 64 d7 45 |D.xYu..N-d.E| 00000e5c bd 9a fa 77 |...w| esl[0].signature[76].owner = {microsoft} 00000e60 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e6c 45 c7 c8 ae |E...| esl[0].signature[76].data (end:0x00000e8c) 00000e70 75 0a cf bb 48 fc 37 52 7d 64 12 dd 64 4d ae d8 |u...H.7R}d..dM..| 00000e80 91 3c cd 8a 24 c9 4d 85 69 67 df 8e |.<..$.M.ig..| 00000e8c efivar-39/tests/machine2/annotations/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000001113421455652431600275030ustar00rootroot0000000000000000000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 8c 0e 00 00 |....| esl[0].signature_list_size = 3724 (0xe8c) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 80 b4 d9 69 |...i| esl[0].signature[0].data (end:0x0000004c) 00000030 31 bf 0d 02 fd 91 a6 1e 19 d1 4f 1d a4 52 e6 6d |1.........O..R.m| 00000040 b2 40 8c a8 60 4d 41 1f 92 65 9f 0a |.@..`MA..e..| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c f5 2f 83 a3 |./..| esl[0].signature[1].data (end:0x0000007c) 00000060 fa 9c fb d6 92 0f 72 28 24 db e4 03 45 34 d2 5b |......r($...E4.[| 00000070 85 07 24 6b 3b 95 7d ac 6e 1b ce 7a |..$k;.}.n..z| 0000007c bd 9a fa 77 |...w| esl[0].signature[2].owner = {microsoft} 00000080 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000008c c5 d9 d8 a1 |....| esl[0].signature[2].data (end:0x000000ac) 00000090 86 e2 c8 2d 09 af aa 2a 6f 7f 2e 73 87 0d 3e 64 |...-...*o..s..>d| 000000a0 f7 2c 4e 08 ef 67 79 6a 84 0f 0f bd |.,N..gyj....| 000000ac bd 9a fa 77 |...w| esl[0].signature[3].owner = {microsoft} 000000b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000bc 36 33 84 d1 |63..| esl[0].signature[3].data (end:0x000000dc) 000000c0 4d 1f 2e 0b 78 15 62 64 84 c4 59 ad 57 a3 18 ef |M...x.bd..Y.W...| 000000d0 43 96 26 60 48 d0 58 c5 a1 9b bf 76 |C.&`H.X....v| 000000dc bd 9a fa 77 |...w| esl[0].signature[4].owner = {microsoft} 000000e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000ec 1a ec 84 b8 |....| esl[0].signature[4].data (end:0x0000010c) 000000f0 4b 6c 65 a5 12 20 a9 be 71 81 96 52 30 21 0d 62 |Kle.. ..q..R0!.b| 00000100 d6 d3 3c 48 99 9c 6b 29 5a 2b 0a 06 |....h2.....'| 00000280 25 27 df b6 3d 49 d2 95 72 a6 f4 4c |%'..=I..r..L| 0000028c bd 9a fa 77 |...w| esl[0].signature[13].owner = {microsoft} 00000290 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000029c 07 5e ea 06 |.^..| esl[0].signature[13].data (end:0x000002bc) 000002a0 05 89 54 8b a0 60 b2 fe ed 10 da 3c 20 c7 fe 9b |..T..`.....< ...| 000002b0 17 cd 02 6b 94 e8 a6 83 b8 11 52 38 |...k......R8| 000002bc bd 9a fa 77 |...w| esl[0].signature[14].owner = {microsoft} 000002c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002cc 07 e6 c6 a8 |....| esl[0].signature[14].data (end:0x000002ec) 000002d0 58 64 6f b1 ef c6 79 03 fe 28 b1 16 01 1f 23 67 |Xdo...y..(....#g| 000002e0 fe 92 e6 be 2b 36 99 9e ff 39 d0 9e |....+6...9..| 000002ec bd 9a fa 77 |...w| esl[0].signature[15].owner = {microsoft} 000002f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002fc 09 df 5f 4e |.._N| esl[0].signature[15].data (end:0x0000031c) 00000300 51 12 08 ec 78 b9 6d 12 d0 81 25 fd b6 03 86 8d |Q...x.m...%.....| 00000310 e3 9f 6f 72 92 78 52 59 9b 65 9c 26 |..or.xRY.e.&| 0000031c bd 9a fa 77 |...w| esl[0].signature[16].owner = {microsoft} 00000320 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000032c 0b bb 43 92 |..C.| esl[0].signature[16].data (end:0x0000034c) 00000330 da ac 7a b8 9b 30 a4 ac 65 75 31 b9 7b fa ab 04 |..z..0..eu1.{...| 00000340 f9 0b 0d af e5 f9 b6 eb 90 a0 63 74 |..........ct| 0000034c bd 9a fa 77 |...w| esl[0].signature[17].owner = {microsoft} 00000350 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000035c 0c 18 93 39 |...9| esl[0].signature[17].data (end:0x0000037c) 00000360 76 2d f3 36 ab 3d d0 06 a4 63 df 71 5a 39 cf b0 |v-.6.=...c.qZ9..| 00000370 f4 92 46 5c 60 0e 6c 6b d7 bd 89 8c |..F\`.lk....| 0000037c bd 9a fa 77 |...w| esl[0].signature[18].owner = {microsoft} 00000380 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000038c 0d 0d be ca |....| esl[0].signature[18].data (end:0x000003ac) 00000390 6f 29 ec a0 6f 33 1a 7d 72 e4 88 4b 12 09 7f b3 |o)..o3.}r..K....| 000003a0 48 98 3a 2a 14 a0 d7 3f 4f 10 14 0f |H.:*...?O...| 000003ac bd 9a fa 77 |...w| esl[0].signature[19].owner = {microsoft} 000003b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003bc 0d c9 f3 fb |....| esl[0].signature[19].data (end:0x000003dc) 000003c0 99 96 21 48 c3 ca 83 36 32 75 8d 3e d4 fc 8d 0b |..!H...62u.>....| 000003d0 00 07 b9 5b 31 e6 52 8f 2a cd 5b fc |...[1.R.*.[.| 000003dc bd 9a fa 77 |...w| esl[0].signature[20].owner = {microsoft} 000003e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003ec 10 6f ac ea |.o..| esl[0].signature[20].data (end:0x0000040c) 000003f0 cf ec fd 4e 30 3b 74 f4 80 a0 80 98 e2 d0 80 2b |...N0;t........+| 00000400 93 6f 8e c7 74 ce 21 f3 16 86 68 9c |.o..t.!...h.| 0000040c bd 9a fa 77 |...w| esl[0].signature[21].owner = {microsoft} 00000410 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000041c 17 4e 3a 0b |.N:.| esl[0].signature[21].data (end:0x0000043c) 00000420 5b 43 c6 a6 07 bb d3 40 4f 05 34 1e 3d cf 39 62 |[C.....@O.4.=.9b| 00000430 67 ce 94 f8 b5 0e 2e 23 a9 da 92 0c |g......#....| 0000043c bd 9a fa 77 |...w| esl[0].signature[22].owner = {microsoft} 00000440 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000044c 18 33 34 29 |.34)| esl[0].signature[22].data (end:0x0000046c) 00000450 ff 05 62 ed 9f 97 03 3e 11 48 dc ee e5 2d be 2e |..b....>.H...-..| 00000460 49 6d 54 10 b5 cf d6 c8 64 d2 d1 0f |ImT.....d...| 0000046c bd 9a fa 77 |...w| esl[0].signature[23].owner = {microsoft} 00000470 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000047c 2b 99 cf 26 |+..&| esl[0].signature[23].data (end:0x0000049c) 00000480 42 2e 92 fe 36 5f bf 4b c3 0d 27 08 6c 9e e1 4b |B...6_.K..'.l..K| 00000490 7a 6f ff 44 fb 2f 6b 90 01 69 99 39 |zo.D./k..i.9| 0000049c bd 9a fa 77 |...w| esl[0].signature[24].owner = {microsoft} 000004a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004ac 2b bf 2c a7 |+.,.| esl[0].signature[24].data (end:0x000004cc) 000004b0 b8 f1 d9 1f 27 ee 52 b6 fb 2a 5d d0 49 b8 5a 2b |....'.R..*].I.Z+| 000004c0 9b 52 9c 5d 66 62 06 81 04 b0 55 f8 |.R.]fb....U.| 000004cc bd 9a fa 77 |...w| esl[0].signature[25].owner = {microsoft} 000004d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004dc 2c 73 d9 33 |,s.3| esl[0].signature[25].data (end:0x000004fc) 000004e0 25 ba 6d cb e5 89 d4 a4 c6 3c 5b 93 55 59 ef 92 |%.m......<[.UY..| 000004f0 fb f0 50 ed 50 c4 e2 08 52 06 f1 7d |..P.P...R..}| 000004fc bd 9a fa 77 |...w| esl[0].signature[26].owner = {microsoft} 00000500 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000050c 2e 70 91 67 |.p.g| esl[0].signature[26].data (end:0x0000052c) 00000510 86 a6 f7 73 51 1f a7 18 1f ab 0f 1d 70 b5 57 c6 |...sQ.......p.W.| 00000520 32 2e a9 23 b2 a8 d3 b9 2b 51 af 7d |2..#....+Q.}| 0000052c bd 9a fa 77 |...w| esl[0].signature[27].owner = {microsoft} 00000530 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000053c 30 66 28 fa |0f(.| esl[0].signature[27].data (end:0x0000055c) 00000540 54 77 30 57 28 ba 4a 46 7d e7 d0 38 7a 54 f5 69 |Tw0W(.JF}..8zT.i| 00000550 d3 76 9f ce 5e 75 ec 89 d2 8d 15 93 |.v..^u......| 0000055c bd 9a fa 77 |...w| esl[0].signature[28].owner = {microsoft} 00000560 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000056c 36 08 ed ba |6...| esl[0].signature[28].data (end:0x0000058c) 00000570 f5 ad 0f 41 a4 14 a1 77 7a bf 2f af 5e 67 03 34 |...A...wz./.^g.4| 00000580 67 5e c3 99 5e 69 35 82 9e 0c aa d2 |g^..^i5.....| 0000058c bd 9a fa 77 |...w| esl[0].signature[29].owner = {microsoft} 00000590 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000059c 38 41 d2 21 |8A.!| esl[0].signature[29].data (end:0x000005bc) 000005a0 36 8d 15 83 d7 5c 0a 02 e6 21 60 39 4d 6c 4e 0a |6....\...!`9MlN.| 000005b0 67 60 b6 f6 07 b9 03 62 bc 85 5b 02 |g`.....b..[.| 000005bc bd 9a fa 77 |...w| esl[0].signature[30].owner = {microsoft} 000005c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005cc 3f ce 9b 9f |?...| esl[0].signature[30].data (end:0x000005ec) 000005d0 df 3e f0 9d 54 52 b0 f9 5e e4 81 c2 b7 f0 6d 74 |.>..TR..^.....mt| 000005e0 3a 73 79 71 55 8e 70 13 6a ce 3e 73 |:syqU.p.j.>s| 000005ec bd 9a fa 77 |...w| esl[0].signature[31].owner = {microsoft} 000005f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005fc 43 97 da ca |C...| esl[0].signature[31].data (end:0x0000061c) 00000600 83 9e 7f 63 07 7c b5 0c 92 df 43 bc 2d 2f b2 a8 |...c.|....C.-/..| 00000610 f5 9f 26 fc 7a 0e 4b d4 d9 75 16 92 |..&.z.K..u..| 0000061c bd 9a fa 77 |...w| esl[0].signature[32].owner = {microsoft} 00000620 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000062c 47 cc 08 61 |G..a| esl[0].signature[32].data (end:0x0000064c) 00000630 27 e2 06 9a 86 e0 3a 6b ef 2c d4 10 f8 c5 5a 6d |'.....:k.,....Zm| 00000640 6b db 36 21 68 c3 1b 2c e3 2a 5a df |k.6!h..,.*Z.| 0000064c bd 9a fa 77 |...w| esl[0].signature[33].owner = {microsoft} 00000650 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000065c 51 88 31 fe |Q.1.| esl[0].signature[33].data (end:0x0000067c) 00000660 73 82 b5 14 d0 3e 15 c6 21 22 8b 8a b6 54 79 bd |s....>..!"...Ty.| 00000670 0c bf a3 c5 c1 d0 f4 8d 9c 30 61 35 |.........0a5| 0000067c bd 9a fa 77 |...w| esl[0].signature[34].owner = {microsoft} 00000680 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000068c 5a e9 49 ea |Z.I.| esl[0].signature[34].data (end:0x000006ac) 00000690 88 55 eb 93 e4 39 db c6 5b da 2e 42 85 2c 2f df |.U...9..[..B.,/.| 000006a0 67 89 fa 14 67 36 e3 c3 41 0f 2b 5c |g...g6..A.+\| 000006ac bd 9a fa 77 |...w| esl[0].signature[35].owner = {microsoft} 000006b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006bc 6b 1d 13 80 |k...| esl[0].signature[35].data (end:0x000006dc) 000006c0 78 e4 41 8a a6 8d eb 7b b3 5e 06 60 92 cf 47 9e |x.A....{.^.`..G.| 000006d0 eb 8c e4 cd 12 e7 d0 72 cc b4 2f 66 |.......r../f| 000006dc bd 9a fa 77 |...w| esl[0].signature[36].owner = {microsoft} 000006e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006ec 6c 88 54 47 |l.TG| esl[0].signature[36].data (end:0x0000070c) 000006f0 8d d5 59 e2 93 51 b8 26 c0 6c b8 bf ef 2b 94 ad |..Y..Q.&.l...+..| 00000700 35 38 35 87 72 d1 93 f8 2e d1 ca 11 |585.r.......| 0000070c bd 9a fa 77 |...w| esl[0].signature[37].owner = {microsoft} 00000710 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000071c 6f 14 28 ff |o.(.| esl[0].signature[37].data (end:0x0000073c) 00000720 71 c9 db 0e d5 af 1f 2e 7b bf cb ab 64 7c c2 65 |q.......{...d|.e| 00000730 dd f5 b2 93 cd b6 26 f5 0a 3a 78 5e |......&..:x^| 0000073c bd 9a fa 77 |...w| esl[0].signature[38].owner = {microsoft} 00000740 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000074c 71 f2 90 6f |q..o| esl[0].signature[38].data (end:0x0000076c) 00000750 d2 22 49 7e 54 a3 46 62 ab 24 97 fc c8 10 20 77 |."I~T.Fb.$.... w| 00000760 0f f5 13 68 e9 e3 d9 bf cb fd 63 75 |...h......cu| 0000076c bd 9a fa 77 |...w| esl[0].signature[39].owner = {microsoft} 00000770 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000077c 72 6b 3e b6 |rk>.| esl[0].signature[39].data (end:0x0000079c) 00000780 54 04 6a 30 f3 f8 3d 9b 96 ce 03 f6 70 e9 a8 06 |T.j0..=.....p...| 00000790 d1 70 8a 03 71 e6 2d c4 9d 2c 23 c1 |.p..q.-..,#.| 0000079c bd 9a fa 77 |...w| esl[0].signature[40].owner = {microsoft} 000007a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007ac 72 e0 bd 18 |r...| esl[0].signature[40].data (end:0x000007cc) 000007b0 67 cf 5d 9d 56 ab 15 8a df 3b dd bc 82 bf 32 a8 |g.].V....;....2.| 000007c0 d8 aa 1d 8c 5e 2f 6d f2 94 28 d6 d8 |....^/m..(..| 000007cc bd 9a fa 77 |...w| esl[0].signature[41].owner = {microsoft} 000007d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007dc 78 27 af 99 |x'..| esl[0].signature[41].data (end:0x000007fc) 000007e0 36 2c fa f0 71 7d ad e4 b1 bf e0 43 8a d1 71 c1 |6,..q}.....C..q.| 000007f0 5a dd c2 48 b7 5b f8 ca a4 4b b2 c5 |Z..H.[...K..| 000007fc bd 9a fa 77 |...w| esl[0].signature[42].owner = {microsoft} 00000800 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000080c 81 a8 b9 65 |...e| esl[0].signature[42].data (end:0x0000082c) 00000810 bb 84 d3 87 6b 94 29 a9 54 81 cc 95 53 18 cf aa |....k.).T...S...| 00000820 14 12 d8 08 c8 a3 3b fd 33 ff f0 e4 |......;.3...| 0000082c bd 9a fa 77 |...w| esl[0].signature[43].owner = {microsoft} 00000830 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000083c 82 db 3b ce |..;.| esl[0].signature[43].data (end:0x0000085c) 00000840 b4 f6 08 43 ce 9d 97 c3 d1 87 cd 9b 59 41 cd 3d |...C........YA.=| 00000850 e8 10 0e 58 6f 2b da 56 37 57 5f 67 |...Xo+.V7W_g| 0000085c bd 9a fa 77 |...w| esl[0].signature[44].owner = {microsoft} 00000860 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000086c 89 5a 97 85 |.Z..| esl[0].signature[44].data (end:0x0000088c) 00000870 f6 17 ca 1d 7e d4 4f c1 a1 47 0b 71 f3 f1 22 38 |....~.O..G.q.."8| 00000880 62 d9 ff 9d cc 3a e2 df 92 16 3d af |b....:....=.| 0000088c bd 9a fa 77 |...w| esl[0].signature[45].owner = {microsoft} 00000890 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000089c 8a d6 48 59 |..HY| esl[0].signature[45].data (end:0x000008bc) 000008a0 f1 95 b5 f5 8d af aa 94 0b 6a 61 67 ac d6 7a 88 |.........jag..z.| 000008b0 6e 8f 46 93 64 17 72 21 c5 59 45 b9 |n.F.d.r!.YE.| 000008bc bd 9a fa 77 |...w| esl[0].signature[46].owner = {microsoft} 000008c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008cc 8b f4 34 b4 |..4.| esl[0].signature[46].data (end:0x000008ec) 000008d0 9e 00 cc f7 15 02 a2 cd 90 08 65 cb 01 ec 3b 3d |..........e...;=| 000008e0 a0 3c 35 be 50 5f df 7b d5 63 f5 21 |.<5.P_.{.c.!| 000008ec bd 9a fa 77 |...w| esl[0].signature[47].owner = {microsoft} 000008f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008fc 8d 8e a2 89 |....| esl[0].signature[47].data (end:0x0000091c) 00000900 cf e7 0a 1c 07 ab 73 65 cb 28 ee 51 ed d3 3c f2 |......se.(.Q..<.| 00000910 50 6d e8 88 fb ad d6 0e bf 80 48 1c |Pm........H.| 0000091c bd 9a fa 77 |...w| esl[0].signature[48].owner = {microsoft} 00000920 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000092c 99 98 d3 63 |...c| esl[0].signature[48].data (end:0x0000094c) 00000930 c4 91 be 16 bd 74 ba 10 b9 4d 92 91 00 16 11 73 |.....t...M.....s| 00000940 6f dc a6 43 a3 66 64 bc 0f 31 5a 42 |o..C.fd..1ZB| 0000094c bd 9a fa 77 |...w| esl[0].signature[49].owner = {microsoft} 00000950 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000095c 9e 4a 69 17 |.Ji.| esl[0].signature[49].data (end:0x0000097c) 00000960 31 61 68 2e 55 fd e8 fe f5 60 eb 88 ec 1f fe dc |1ah.U....`......| 00000970 af 04 00 1f 66 c0 ca f7 07 b2 b7 34 |....f......4| 0000097c bd 9a fa 77 |...w| esl[0].signature[50].owner = {microsoft} 00000980 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000098c a6 b5 15 1f |....| esl[0].signature[50].data (end:0x000009ac) 00000990 36 55 d3 a2 af 0d 47 27 59 79 6b e4 a4 20 0e 54 |6U....G'Yyk.. .T| 000009a0 95 a7 d8 69 75 4c 48 48 85 74 08 a7 |...iuLHH.t..| 000009ac bd 9a fa 77 |...w| esl[0].signature[51].owner = {microsoft} 000009b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009bc a7 f3 2f 50 |../P| esl[0].signature[51].data (end:0x000009dc) 000009c0 8d 4e b0 fe ad 9a 08 7e f9 4e d1 ba 0a ec 5d e6 |.N.....~.N....].| 000009d0 f7 ef 6f f0 a6 2b 93 be df 5d 45 8d |..o..+...]E.| 000009dc bd 9a fa 77 |...w| esl[0].signature[52].owner = {microsoft} 000009e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009ec ad 68 26 e1 |.h&.| esl[0].signature[52].data (end:0x00000a0c) 000009f0 94 6d 26 d3 ea f3 68 5c 88 d9 7d 85 de 3b 4d cb |.m&...h\..}..;M.| 00000a00 3d 0e e2 ae 81 c7 05 60 d1 3c 57 20 |=......`...$Q| 00000c10 3f bc 65 59 57 d7 35 fa 29 f5 40 ce |?.eYW.5.).@.| 00000c1c bd 9a fa 77 |...w| esl[0].signature[64].owner = {microsoft} 00000c20 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c2c d8 cb eb 97 |....| esl[0].signature[64].data (end:0x00000c4c) 00000c30 35 f5 67 2b 36 7e 4f 96 cd c7 49 69 61 5d 17 07 |5.g+6~O...Iia]..| 00000c40 4a e9 6c 72 4d 42 ce 02 16 f8 f3 fa |J.lrMB......| 00000c4c bd 9a fa 77 |...w| esl[0].signature[65].owner = {microsoft} 00000c50 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c5c e9 2c 22 eb |.,".| esl[0].signature[65].data (end:0x00000c7c) 00000c60 3b 56 42 d6 5c 1e c2 ca f2 47 d2 59 47 38 ee bb |;VB.\....G.YG8..| 00000c70 7f b3 84 1a 44 95 6f 59 e2 b0 d1 fa |....D.oY....| 00000c7c bd 9a fa 77 |...w| esl[0].signature[66].owner = {microsoft} 00000c80 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c8c fd dd 6e 3d |..n=| esl[0].signature[66].data (end:0x00000cac) 00000c90 29 ea 84 c7 74 3d ad 4a 1b db c7 00 b5 fe c1 b3 |)...t=.J........| 00000ca0 91 f9 32 40 90 86 ac c7 1d d6 db d8 |..2@........| 00000cac bd 9a fa 77 |...w| esl[0].signature[67].owner = {microsoft} 00000cb0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cbc fe 63 a8 4f |.c.O| esl[0].signature[67].data (end:0x00000cdc) 00000cc0 78 2c c9 d3 fc f2 cc f9 fc 11 fb d0 37 60 87 87 |x,..........7`..| 00000cd0 58 d2 62 85 ed 12 66 9b dc 6e 6d 01 |X.b...f..nm.| 00000cdc bd 9a fa 77 |...w| esl[0].signature[68].owner = {microsoft} 00000ce0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cec fe cf b2 32 |...2| esl[0].signature[68].data (end:0x00000d0c) 00000cf0 d1 2e 99 4b 6d 48 5d 2c 71 67 72 8a a5 52 59 84 |...KmH],qgr..RY.| 00000d00 ad 5c a6 1e 75 16 22 1f 07 9a 14 36 |.\..u."....6| 00000d0c bd 9a fa 77 |...w| esl[0].signature[69].owner = {microsoft} 00000d10 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d1c ca 17 1d 61 |...a| esl[0].signature[69].data (end:0x00000d3c) 00000d20 4a 8d 7e 12 1c 93 94 8c d0 fe 55 d3 99 81 f9 d1 |J.~.......U.....| 00000d30 1a a9 6e 03 45 0a 41 52 27 c2 c6 5b |..n.E.AR'..[| 00000d3c bd 9a fa 77 |...w| esl[0].signature[70].owner = {microsoft} 00000d40 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d4c 55 b9 9b 0d |U...| esl[0].signature[70].data (end:0x00000d6c) 00000d50 e5 3d bc fe 48 5a a9 c7 37 cf 3f b6 16 ef 3d 91 |.=..HZ..7.?...=.| 00000d60 fa b5 99 aa 7c ab 19 ed a7 63 b5 ba |....|....c..| 00000d6c bd 9a fa 77 |...w| esl[0].signature[71].owner = {microsoft} 00000d70 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d7c 77 dd 19 0f |w...| esl[0].signature[71].data (end:0x00000d9c) 00000d80 a3 0d 88 ff 5e 3b 01 1a 0a e6 1e 62 09 78 0c 13 |....^;.....b.x..| 00000d90 0b 53 5e cb 87 e6 f0 88 8a 0b 6b 2f |.S^.......k/| 00000d9c bd 9a fa 77 |...w| esl[0].signature[72].owner = {microsoft} 00000da0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000dac c8 3c b1 39 |.<.9| esl[0].signature[72].data (end:0x00000dcc) 00000db0 22 ad 99 f5 60 74 46 75 dd 37 cc 94 dc ad 5a 1f |"...`tFu.7....Z.| 00000dc0 cb a6 47 2f ee 34 11 71 d9 39 e8 84 |..G/.4.q.9..| 00000dcc bd 9a fa 77 |...w| esl[0].signature[73].owner = {microsoft} 00000dd0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000ddc 3b 02 87 53 |;..S| esl[0].signature[73].data (end:0x00000dfc) 00000de0 3e 0c c3 d0 ec 1a a8 23 cb f0 a9 41 aa d8 72 15 |>......#...A..r.| 00000df0 79 d1 c4 99 80 2d d1 c3 a6 36 b8 a9 |y....-...6..| 00000dfc bd 9a fa 77 |...w| esl[0].signature[74].owner = {microsoft} 00000e00 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e0c 93 9a ee f4 |....| esl[0].signature[74].data (end:0x00000e2c) 00000e10 f5 fa 51 e2 33 40 c3 f2 e4 90 48 ce 88 72 52 6a |..Q.3@....H..rRj| 00000e20 fd f7 52 c3 a7 f3 a3 f2 bc 9f 60 49 |..R.......`I| 00000e2c bd 9a fa 77 |...w| esl[0].signature[75].owner = {microsoft} 00000e30 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e3c 64 57 5b d9 |dW[.| esl[0].signature[75].data (end:0x00000e5c) 00000e40 12 78 9a 2e 14 ad 56 f6 34 1f 52 af 6b f8 0c f9 |.x....V.4.R.k...| 00000e50 44 00 78 59 75 e9 f0 4e 2d 64 d7 45 |D.xYu..N-d.E| 00000e5c bd 9a fa 77 |...w| esl[0].signature[76].owner = {microsoft} 00000e60 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e6c 45 c7 c8 ae |E...| esl[0].signature[76].data (end:0x00000e8c) 00000e70 75 0a cf bb 48 fc 37 52 7d 64 12 dd 64 4d ae d8 |u...H.7R}d..dM..| 00000e80 91 3c cd 8a 24 c9 4d 85 69 67 df 8e |.<..$.M.ig..| 00000e8c efivar-39/tests/machine2/data/000077500000000000000000000000001455652431600163375ustar00rootroot00000000000000efivar-39/tests/machine2/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e000066400000000000000000000000341455652431600250140ustar00rootroot00000000000000efivar-39/tests/machine2/data/AmdSetupSSP-3a997502-647a-4c82-998e-52ef9486a247000066400000000000000000000030271455652431600247160ustar00rootroot00000000000000e 2<d98( efivar-39/tests/machine2/data/AmiEmaIndications-eb41d646-f49f-4655-9165-21d1224e3932000066400000000000000000000000101455652431600260600ustar00rootroot00000000000000AmiHardwareSignatureSetupUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65000066400000000000000000000000101455652431600324100ustar00rootroot00000000000000efivar-39/tests/machine2/dataefivar-39/tests/machine2/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000001701455652431600243570ustar00rootroot00000000000000\Fedora*" ɰ/XN/kq.\EFI\FEDORA\SHIM.EFIBOefivar-39/tests/machine2/data/Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000001301455652431600243540ustar00rootroot00000000000000UEFI: Built-in EFI Shell\#P&ۛBHGfLBOefivar-39/tests/machine2/data/Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000026361455652431600243720ustar00rootroot00000000000000#Hard Drive \,@rd=XGONOST4000DM000-1F2168 \,@rd=X A  >Gd-;AMQL 3Z40KRX8BONOST4000DM000-1F2168 \,@rd=X A  >Gd-;AMQL 3Z30WT6EBONOST4000DM000-1F2168 \,@rd=X A  >Gd-;AMQL 3Z50X1PTBONOST4000DM005-2DP166 \,@rd=X A  >Gd-;AMQL DZ1HVZ1MBONOST4000DM000-1F2168 \,@rd=X A  >Gd-;AMQL 3Z50F2GBBONOINTEL SSDSC2BW240A4 \,@rd=X A  >Gd-;AMQLTBAD335310JW4230NG BONOST4000DM000-1F2168 \,@rd=X A  >Gd-;AMQL 3S10BND9BOefivar-39/tests/machine2/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600254170ustar00rootroot00000000000000efivar-39/tests/machine2/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000101455652431600266350ustar00rootroot00000000000000efivar-39/tests/machine2/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000121455652431600250450ustar00rootroot00000000000000efivar-39/tests/machine2/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002571455652431600241670ustar00rootroot00000000000000 A  A I7/TL&5  ֠Js~- A  A efivar-39/tests/machine2/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002571455652431600246260ustar00rootroot00000000000000 A  A I7/TL&5  ֠Js~- A  A efivar-39/tests/machine2/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002171455652431600243640ustar00rootroot00000000000000 A  A  A I7/TL&5  ֠Js~-efivar-39/tests/machine2/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002171455652431600250230ustar00rootroot00000000000000 A  A  A I7/TL&5  ֠Js~-efivar-39/tests/machine2/data/DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53000066400000000000000000000000121455652431600261540ustar00rootroot00000000000000efivar-39/tests/machine2/data/DefaultLegacyDevOrder-3c4ead08-45ae-4315-8d15-a60eaa8caf69000066400000000000000000000000301455652431600274110ustar00rootroot00000000000000efivar-39/tests/machine2/data/DefaultUefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000301455652431600272020ustar00rootroot00000000000000 efivar-39/tests/machine2/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6000066400000000000000000000000051455652431600264710ustar00rootroot00000000000000efivar-39/tests/machine2/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002171455652431600243750ustar00rootroot00000000000000 A  A  A I7/TL&5  ֠Js~-efivar-39/tests/machine2/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002171455652431600250340ustar00rootroot00000000000000 A  A  A I7/TL&5  ֠Js~-efivar-39/tests/machine2/data/FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000101455652431600255630ustar00rootroot00000000000000efivar-39/tests/machine2/data/FboLegacyDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000301455652431600266400ustar00rootroot00000000000000efivar-39/tests/machine2/data/FboLegacySceOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000301455652431600266340ustar00rootroot00000000000000efivar-39/tests/machine2/data/FboUefiSceOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000241455652431600263230ustar00rootroot00000000000000 efivar-39/tests/machine2/data/FixedBoot-de8ab926-efda-4c23-bbc4-98fd29aa0069000066400000000000000000000012141455652431600253070ustar00rootroot00000000000000efivar-39/tests/machine2/data/FixedBootGroup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000461455652431600262340ustar00rootroot00000000000000efivar-39/tests/machine2/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0000066400000000000000000000000141455652431600241750ustar00rootroot00000000000000 +efivar-39/tests/machine2/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000030341455652431600235670ustar00rootroot00000000000000'Y䔧J\+rwY2M`(xK00Р a ш0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110624204129Z 260624205129Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1*0(U!Microsoft Corporation KEK CA 20110"0  *H 0 赊W&&WzD] Jt*mZc2|O 8, 0HPdQȅO /Sjb: C%#pM/$JC ~Gl3*q<% /hvFOܭq*Xy=e;)*rY뮒5_̝vcy@yR{iO0K0 +70UbC͠>g[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62efivar-39/tests/machine2/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000030341455652431600250740ustar00rootroot00000000000000Y䔧J\+rwY2M`(xK00Р a ш0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110624204129Z 260624205129Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1*0(U!Microsoft Corporation KEK CA 20110"0  *H 0 赊W&&WzD] Jt*mZc2|O 8, 0HPdQȅO /Sjb: C%#pM/$JC ~Gl3*q<% /hvFOܭq*Xy=e;)*rY뮒5_̝vcy@yR{iO0K0 +70UbC͠>g[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62efivar-39/tests/machine2/data/LegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652000066400000000000000000000000301455652431600260420ustar00rootroot00000000000000efivar-39/tests/machine2/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000061455652431600261240ustar00rootroot00000000000000o%efivar-39/tests/machine2/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829000066400000000000000000000000051455652431600310110ustar00rootroot00000000000000efivar-39/tests/machine2/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292000066400000000000000000000000051455652431600320030ustar00rootroot00000000000000efivar-39/tests/machine2/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000101455652431600264740ustar00rootroot00000000000000efivar-39/tests/machine2/data/OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000341455652431600257460ustar00rootroot00000000000000(WPefivar-39/tests/machine2/data/OldBootOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000121455652431600257100ustar00rootroot00000000000000efivar-39/tests/machine2/data/OldLegacyDevOrder-a56074db-65fe-45f7-bd21-2d2bdd8e9652000066400000000000000000000000301455652431600265010ustar00rootroot00000000000000efivar-39/tests/machine2/data/OriFboLegacyDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000301455652431600273120ustar00rootroot00000000000000efivar-39/tests/machine2/data/OriUefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000301455652431600263470ustar00rootroot00000000000000 efivar-39/tests/machine2/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600257160ustar00rootroot00000000000000efivar-39/tests/machine2/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600276240ustar00rootroot00000000000000efivar-39/tests/machine2/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000017231455652431600234720ustar00rootroot00000000000000'Y䔧J\+rQH&_J^00;OѩLC6=ԅ0  *H  0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180 181220014604Z 331220015603Z0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180"0  *H 0 iQM)1b*'Ε4]_A+eR7+juxWUyn96i3[!Abt, Xbr[1vY7;ʏXq"iH?sWcT鮉K*13Va[ }M̨reː`( [r:eH"$I0 󞯽[MJo5xA` }yC"bwu}|xg~,2sPF::a`4Ō {إݩebL%*f]NGi񪦳-f b? ,fSU_GL=N^Qv;8kKefivar-39/tests/machine2/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000017231455652431600247770ustar00rootroot00000000000000Y䔧J\+rQH&_J^00;OѩLC6=ԅ0  *H  0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180 181220014604Z 331220015603Z0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180"0  *H 0 iQM)1b*'Ε4]_A+eR7+juxWUyn96i3[!Abt, Xbr[1vY7;ʏXq"iH?sWcT鮉K*13Va[ }M̨reː`( [r:eH"$I0 󞯽[MJo5xA` }yC"bwu}|xg~,2sPF::a`4Ō {إݩebL%*f]NGi񪦳-f b? ,fSU_GL=N^Qv;8kKefivar-39/tests/machine2/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000121455652431600255340ustar00rootroot00000000000000en-USefivar-39/tests/machine2/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000121455652431600265120ustar00rootroot00000000000000en-USefivar-39/tests/machine2/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252220ustar00rootroot00000000000000efivar-39/tests/machine2/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600250550ustar00rootroot00000000000000efivar-39/tests/machine2/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002241455652431600265110ustar00rootroot00000000000000;y@ nvp€N(I[cmD%L$eҰ&LP@A6C(Y䔧J\+rfW<&4Nwna⛇=J绣'ODgCH(s`.EߌKQ.h,efivar-39/tests/machine2/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600271430ustar00rootroot00000000000000efivar-39/tests/machine2/data/SmbiosEntryPointTableF000-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600274710ustar00rootroot00000000000000efivar-39/tests/machine2/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600266010ustar00rootroot000000000000007efivar-39/tests/machine2/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600273540ustar00rootroot00000000000000efivar-39/tests/machine2/data/SmcBootOrder-1105d69f-5ec8-47e9-bb46-153e794e356c000066400000000000000000000000121455652431600253420ustar00rootroot00000000000000efivar-39/tests/machine2/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000121455652431600261110ustar00rootroot00000000000000xefivar-39/tests/machine2/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600245770ustar00rootroot00000000000000efivar-39/tests/machine2/data/TotalNumberOfRootBridges-fb5703f5-f8a7-f401-18b4-3f108deb2612000066400000000000000000000000051455652431600277150ustar00rootroot00000000000000efivar-39/tests/machine2/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000141455652431600262270ustar00rootroot00000000000000efivar-39/tests/machine2/data/UefiDevOrder-0c923ca9-df73-4ac8-b6d2-98ddc30d99fc000066400000000000000000000000301455652431600256750ustar00rootroot00000000000000 efivar-39/tests/machine2/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252410ustar00rootroot00000000000000efivar-39/tests/machine2/data/WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000001041455652431600260060ustar00rootroot00000000000000efivar-39/tests/machine2/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000121071455652431600236450ustar00rootroot00000000000000'Y䔧J\+r@$wY2M`(xK00 a0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110627212245Z 260627213245Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1+0)U"Microsoft Corporation UEFI CA 20110"0  *H 0 lLE jK u CTd} s JEa-+MIA#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~Y䔧J\+rzQH&_J^0f0N0  *H  0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180 181219000000Z 331219000000Z0w1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.1#0!U SUPERMICRO Product CA 20180"0  *H 0 M4jm?XR0O jiM=59Y-C( p3"t3҃ EJ/P no;ǐFWG&W9u@ `C[8}iӭ9Ub!)b[lA?PUJЧͳ5ކ ?s)g0{.Ɲ `y K?BrVҘ)^8WchSS >!|o00  *H  6]h'8.'QXI!{{Te)!FH}[d}qNeDb̺Bؤۘ& ;cd|@gmn5_۫]%o1åGZiX8:di'r~T[ q( H\)*X/b>>86AH0'd'V!b˾gfLCI#bjFs;0s;|y+̔0 %Y䔧J\+rfJQH&_J^0600  *H 0o1 0 USE10U  AddTrust AB1&0$U AddTrust External TTP Network1"0 UAddTrust External CA Root0 000530104838Z 200530104838Z0o1 0 USE10U  AddTrust AB1&0$U AddTrust External TTP Network1"0 UAddTrust External CA Root0"0  *H 0 3-9N[l͵#ޛ3)L}JmPZ֗)ZIz.ʿ78->ApVO?2tȐT_x@<a^jPךNqqP` 8i&LO#:OΟioBkDǭmA_rZq7yeY7/ ’r8rE]*}D+C%aijX#3VuY)F +eBo{]S4Z'00Uz4&&T$T0 U0U00U#0z4&&T$Tsq0o1 0 USE10U  AddTrust AB1&0$U AddTrust External TTP Network1"0 UAddTrust External CA Root0  *H %#Aلy[#6ewAlG`Q2=&ǀZxy!L 5QҖ~Np9 Q-Fu$Bpg5J+zQBzc满+6 c~y{ @jݏBQEb!h C<|$ةs?V18q.ጘ1DLsIv`k.LZy .՞c&U؂Z{мǏNefivar-39/tests/machine2/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000121071455652431600250500ustar00rootroot00000000000000Y䔧J\+r@$wY2M`(xK00 a0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110627212245Z 260627213245Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1+0)U"Microsoft Corporation UEFI CA 20110"0  *H 0 lLE jK u CTd} s JEa-+MIA#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~Y䔧J\+rzQH&_J^0f0N0  *H  0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180 181219000000Z 331219000000Z0w1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.1#0!U SUPERMICRO Product CA 20180"0  *H 0 M4jm?XR0O jiM=59Y-C( p3"t3҃ EJ/P no;ǐFWG&W9u@ `C[8}iӭ9Ub!)b[lA?PUJЧͳ5ކ ?s)g0{.Ɲ `y K?BrVҘ)^8WchSS >!|o00  *H  6]h'8.'QXI!{{Te)!FH}[d}qNeDb̺Bؤۘ& ;cd|@gmn5_۫]%o1åGZiX8:di'r~T[ q( H\)*X/b>>86AH0'd'V!b˾gfLCI#bjFs;0s;|y+̔0 %Y䔧J\+rfJQH&_J^0600  *H 0o1 0 USE10U  AddTrust AB1&0$U AddTrust External TTP Network1"0 UAddTrust External CA Root0 000530104838Z 200530104838Z0o1 0 USE10U  AddTrust AB1&0$U AddTrust External TTP Network1"0 UAddTrust External CA Root0"0  *H 0 3-9N[l͵#ޛ3)L}JmPZ֗)ZIz.ʿ78->ApVO?2tȐT_x@<a^jPךNqqP` 8i&LO#:OΟioBkDǭmA_rZq7yeY7/ ’r8rE]*}D+C%aijX#3VuY)F +eBo{]S4Z'00Uz4&&T$T0 U0U00U#0z4&&T$Tsq0o1 0 USE10U  AddTrust AB1&0$U AddTrust External TTP Network1"0 UAddTrust External CA Root0  *H %#Aلy[#6ewAlG`Q2=&ǀZxy!L 5QҖ~Np9 Q-Fu$Bpg5J+zQBzc满+6 c~y{ @jݏBQEb!h C<|$ةs?V18q.ጘ1DLsIv`k.LZy .՞c&U؂Z{мǏNefivar-39/tests/machine2/data/dbr-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000017231455652431600240310ustar00rootroot00000000000000'Y䔧J\+rQH&_J^00;OѩLC6=ԅ0  *H  0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180 181220014604Z 331220015603Z0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180"0  *H 0 iQM)1b*'Ε4]_A+eR7+juxWUyn96i3[!Abt, Xbr[1vY7;ʏXq"iH?sWcT鮉K*13Va[ }M̨reː`( [r:eH"$I0 󞯽[MJo5xA` }yC"bwu}|xg~,2sPF::a`4Ō {إݩebL%*f]NGi񪦳-f b? ,fSU_GL=N^Qv;8kKefivar-39/tests/machine2/data/dbrDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000017231455652431600252340ustar00rootroot00000000000000Y䔧J\+rQH&_J^00;OѩLC6=ԅ0  *H  0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180 181220014604Z 331220015603Z0r1 0 UUSA1 0 U CA10U San Jose1"0 U Super Micro Computer Inc.10U SUPERMICRO PK CA 20180"0  *H 0 iQM)1b*'Ε4]_A+eR7+juxWUyn96i3[!Abt, Xbr[1vY7;ʏXq"iH?sWcT鮉K*13Va[ }M̨reː`( [r:eH"$I0 󞯽[MJo5xA` }yC"bwu}|xg~,2sPF::a`4Ō {إݩebL%*f]NGi񪦳-f b? ,fSU_GL=N^Qv;8kKefivar-39/tests/machine2/data/dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000030411455652431600240260ustar00rootroot00000000000000'Y䔧J\+rwY2M`(xK00ՠ(:%DDXkC90  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 100623215724Z 350623220401Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100"0  *H 0 (NPhA{뮶"De4iLp@{y 9=vZٵ.<m$TVPtY ńvho(x\PDc_,!B1(6Pb֫q[ $շ˷!bܡ]7Fc*~j"W@oE1E!@&rO<~X^cbx $j'_?J03"R\%FYCb-DFxa~0 A*"f9ENj /R c3#g֧Ppc,ZCn)n!!A&…2lKL?]嵝wÜUt8PB$0ZR4s3zA`# HE\Q.w6p㍀hv]pR"f>/wHL7Q#'׸NpDvxϚfQ0O0 U0U00UVˏ\bh=[Κ0 +70  *H  qC1V2q[57&>O m[;depfZQgmyV{䄹+@&4Gi׶ѿagĵ`C6I ʭ'e [*Є3 X7urlu*f"0V@0@w׋Ӳw SMyq0g,"AzBYyUoڃf@ h#[.&WŸib2|{+3*chbGzE:iBGV{p6sM3#& *?D܃'aY+Oŋ 12BavZ=fEq$ԺA4]-%HmK} atW&iLj$R$\ ڞ_[Ԃ P%@:3nÄ U%95]e1 )dz62.ܕZϋ!1L` #"6doPa@Yq3i|s8d iefivar-39/tests/machine2/data/dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000030411455652431600252310ustar00rootroot00000000000000Y䔧J\+rwY2M`(xK00ՠ(:%DDXkC90  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 100623215724Z 350623220401Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100"0  *H 0 (NPhA{뮶"De4iLp@{y 9=vZٵ.<m$TVPtY ńvho(x\PDc_,!B1(6Pb֫q[ $շ˷!bܡ]7Fc*~j"W@oE1E!@&rO<~X^cbx $j'_?J03"R\%FYCb-DFxa~0 A*"f9ENj /R c3#g֧Ppc,ZCn)n!!A&…2lKL?]嵝wÜUt8PB$0ZR4s3zA`# HE\Q.w6p㍀hv]pR"f>/wHL7Q#'׸NpDvxϚfQ0O0 U0U00UVˏ\bh=[Κ0 +70  *H  qC1V2q[57&>O m[;depfZQgmyV{䄹+@&4Gi׶ѿagĵ`C6I ʭ'e [*Є3 X7urlu*f"0V@0@w׋Ӳw SMyq0g,"AzBYyUoڃf@ h#[.&WŸib2|{+3*chbGzE:iBGV{p6sM3#& *?D܃'aY+Oŋ 12BavZ=fEq$ԺA4]-%HmK} atW&iLj$R$\ ڞ_[Ԃ P%@:3nÄ U%95]e1 )dz62.ܕZϋ!1L` #"6doPa@Yq3i|s8d iefivar-39/tests/machine2/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000072201455652431600240350ustar00rootroot00000000000000'&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrLwY2M`(xK^T`< k覃R8wY2M`(xKƨXdoy(#g+69ОwY2M`(xK _NQxmЁ%orxRYe&wY2M`(xK Cڬz0eu1{ 될ctwY2M`(xK 9v-6=cqZ9ϰF\`lk׽wY2M`(xK o)o3}rK H:*?OwY2M`(xK !Hʃ62u> [1R*[wY2M`(xKoN0;t􀠀Ѐ+ot!hwY2M`(xKN: [CƦ@O4=9bgΔ.#ڒ wY2M`(xK34)bퟗ>H-.ImTdwY2M`(xK+&B.6_K 'lKzoD/ki9wY2M`(xK+,'R*]IZ+R]fbUwY2M`(xK,s3%mԤ<[UYPPR}wY2M`(xK.pgsQpW2.#ӹ+Q}wY2M`(xK0f(Tw0W(JF}8zTiv^uҍwY2M`(xK6Awz/^g4g^Ù^i5 ҽwY2M`(xK8A!6\ !`9MlN g`b[wY2M`(xK?Λ>TR^·mt:syqUpj>swY2M`(xKCʃc| C-/&zKuwY2M`(xKGa':k,Zmk6!h,*Z߽wY2M`(xKQ1s>!"Ty 0a5wY2M`(xKZIU9[.B,/gg6A+\wY2M`(xKkxA{^`Gr̴/fwY2M`(xKlTGYQ&l+585rѓ.wY2M`(xKo(qկ.{˫d|eͶ& :x^wY2M`(xKqo"I~TFb$ whٿcuwY2M`(xKrk>Tj0=ppq-ĝ,#wY2M`(xKrg]V;ݼ2ت^/m(ؽwY2M`(xKx'6,q}䱿CqZH[ʤKŽwY2M`(xKeӇk)T̕SϪȣ;3佚wY2M`(xK;δCΝч͛YA=Xo+V7W_gwY2M`(xKZ~OG q"8b:ߒ=wY2M`(xKHY jagznFdr!YEwY2M`(xK4͐e;=<5P_{c!wY2M`(xK se(Q$Q?eYW5)@νwY2M`(xK5g+6~OIia]JlrMBwY2M`(xK,";VB\GYG8DoYwY2M`(xKn=)t=J2@ؽwY2M`(xKcOx,7`XbfnmwY2M`(xKϲ2.KmH],qgrRY\u"6wY2M`(xKaJ~UәnE AR'[wY2M`(xKU =HZ7?=|cwY2M`(xKw ^; b x  S^ˇ k/wY2M`(xK<9"`tFu7̔ܭZ˦G/4q9脽wY2M`(xK;S> #Aryę-æ6wY2M`(xKQ3@HΈrRjRç`IwY2M`(xKdW[x.V4Rk DxYuN-dEwY2M`(xKEȮu ϻH7R}ddMؑ<͊$Migߎefivar-39/tests/machine2/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000072201455652431600252400ustar00rootroot00000000000000&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrLwY2M`(xK^T`< k覃R8wY2M`(xKƨXdoy(#g+69ОwY2M`(xK _NQxmЁ%orxRYe&wY2M`(xK Cڬz0eu1{ 될ctwY2M`(xK 9v-6=cqZ9ϰF\`lk׽wY2M`(xK o)o3}rK H:*?OwY2M`(xK !Hʃ62u> [1R*[wY2M`(xKoN0;t􀠀Ѐ+ot!hwY2M`(xKN: [CƦ@O4=9bgΔ.#ڒ wY2M`(xK34)bퟗ>H-.ImTdwY2M`(xK+&B.6_K 'lKzoD/ki9wY2M`(xK+,'R*]IZ+R]fbUwY2M`(xK,s3%mԤ<[UYPPR}wY2M`(xK.pgsQpW2.#ӹ+Q}wY2M`(xK0f(Tw0W(JF}8zTiv^uҍwY2M`(xK6Awz/^g4g^Ù^i5 ҽwY2M`(xK8A!6\ !`9MlN g`b[wY2M`(xK?Λ>TR^·mt:syqUpj>swY2M`(xKCʃc| C-/&zKuwY2M`(xKGa':k,Zmk6!h,*Z߽wY2M`(xKQ1s>!"Ty 0a5wY2M`(xKZIU9[.B,/gg6A+\wY2M`(xKkxA{^`Gr̴/fwY2M`(xKlTGYQ&l+585rѓ.wY2M`(xKo(qկ.{˫d|eͶ& :x^wY2M`(xKqo"I~TFb$ whٿcuwY2M`(xKrk>Tj0=ppq-ĝ,#wY2M`(xKrg]V;ݼ2ت^/m(ؽwY2M`(xKx'6,q}䱿CqZH[ʤKŽwY2M`(xKeӇk)T̕SϪȣ;3佚wY2M`(xK;δCΝч͛YA=Xo+V7W_gwY2M`(xKZ~OG q"8b:ߒ=wY2M`(xKHY jagznFdr!YEwY2M`(xK4͐e;=<5P_{c!wY2M`(xK se(Q$Q?eYW5)@νwY2M`(xK5g+6~OIia]JlrMBwY2M`(xK,";VB\GYG8DoYwY2M`(xKn=)t=J2@ؽwY2M`(xKcOx,7`XbfnmwY2M`(xKϲ2.KmH],qgrRY\u"6wY2M`(xKaJ~UәnE AR'[wY2M`(xKU =HZ7?=|cwY2M`(xKw ^; b x  S^ˇ k/wY2M`(xK<9"`tFu7̔ܭZ˦G/4q9脽wY2M`(xK;S> #Aryę-æ6wY2M`(xKQ3@HΈrRjRç`IwY2M`(xKdW[x.V4Rk DxYuN-dEwY2M`(xKEȮu ϻH7R}ddMؑ<͊$Migߎefivar-39/tests/machine3/000077500000000000000000000000001455652431600154275ustar00rootroot00000000000000efivar-39/tests/machine3/annotations/000077500000000000000000000000001455652431600177645ustar00rootroot00000000000000efivar-39/tests/machine3/annotations/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000470511455652431600260410ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 79 03 00 00 |y...| esl[0].signature_list_size = 889 (0x379) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 5d 03 00 00 |]...| esl[0].signature_size = 861 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 91 30 05 3b |.0.;| esl[0].signature[0].owner = {asus} 00000020 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.l.......;..| 0000002c 30 82 03 49 |0..I| esl[0].signature[0].data (end:0x00000379) 00000030 30 82 02 31 a0 03 02 01 02 02 10 31 1e 46 c5 16 |0..1.......1.F..| 00000040 00 a1 a4 40 f1 c1 50 e2 17 c2 71 30 0d 06 09 2a |...@..P...q0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 2e 31 2c 30 2a |.H........0.1,0*| 00000060 06 03 55 04 03 13 23 41 53 55 53 54 65 4b 20 4d |..U...#ASUSTeK M| 00000070 6f 74 68 65 72 42 6f 61 72 64 20 4b 45 4b 20 43 |otherBoard KEK C| 00000080 65 72 74 69 66 69 63 61 74 65 30 1e 17 0d 31 31 |ertificate0...11| 00000090 31 32 32 36 32 33 33 34 35 39 5a 17 0d 33 31 31 |1226233459Z..311| 000000a0 32 32 36 32 33 33 34 35 38 5a 30 2e 31 2c 30 2a |226233458Z0.1,0*| 000000b0 06 03 55 04 03 13 23 41 53 55 53 54 65 4b 20 4d |..U...#ASUSTeK M| 000000c0 6f 74 68 65 72 42 6f 61 72 64 20 4b 45 4b 20 43 |otherBoard KEK C| 000000d0 65 72 74 69 66 69 63 61 74 65 30 82 01 22 30 0d |ertificate0.."0.| 000000e0 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 000000f0 0f 00 30 82 01 0a 02 82 01 01 00 89 09 84 de a7 |..0.............| 00000100 21 16 1b 45 4d 9c 21 73 80 84 f6 d1 13 e7 92 a4 |!..EM.!s........| 00000110 b5 1d 0a e3 4b c5 a3 00 9f 64 b9 80 0f c2 14 16 |....K....d......| 00000120 d8 d7 9e 1e ac a4 2f d8 e8 e2 37 23 d4 75 80 fa |....../...7#.u..| 00000130 a3 2a de 8c 35 25 75 f8 c6 77 36 f2 10 74 a9 8e |.*..5%u..w6..t..| 00000140 08 49 c7 d5 36 ab 82 fc 26 6b 53 a2 ab 75 a6 3e |.I..6...&kS..u.>| 00000150 c2 23 fb 05 4b 51 d1 73 ce bf de 88 e5 96 0c 4a |.#..KQ.s.......J| 00000160 1f 67 9a 81 e8 46 a8 09 45 12 2f 0f 29 39 e9 b1 |.g...F..E./.)9..| 00000170 29 2b ac 0c 73 aa fb 78 4b d5 29 7e 35 2c aa 84 |)+..s..xK.)~5,..| 00000180 2c e3 62 79 d3 51 29 d6 ec f2 e5 40 45 a0 9f 17 |,.by.Q)....@E...| 00000190 4e b2 f0 dc 38 34 c3 c7 7c f6 05 e8 27 a1 46 9b |N...84..|...'.F.| 000001a0 06 8c 6f 23 0a 6a 97 ea 22 57 99 69 d3 7f eb 2f |..o#.j.."W.i.../| 000001b0 d9 59 21 26 06 5b 36 7d 1f b3 87 05 6a a5 fe e2 |.Y!&.[6}....j...| 000001c0 aa 4d 8e c8 36 57 63 bd b8 ec dc 8b 8b a0 25 2a |.M..6Wc.......%*| 000001d0 4a cc 83 9f 05 55 2b 64 4b df 10 06 e5 6a 0a 7d |J....U+dK....j.}| 000001e0 d6 0c 9e ed a9 a7 ae f1 26 a6 31 4c 4b 77 1d eb |........&.1LKw..| 000001f0 8d 50 cf a8 d5 17 68 05 97 3a db 02 03 01 00 01 |.P....h..:......| 00000200 a3 63 30 61 30 5f 06 03 55 1d 01 04 58 30 56 80 |.c0a0_..U...X0V.| 00000210 10 59 15 d5 b5 69 8a b8 9d 28 c8 72 db 3f 5a 9c |.Y...i...(.r.?Z.| 00000220 f0 a1 30 30 2e 31 2c 30 2a 06 03 55 04 03 13 23 |..00.1,0*..U...#| 00000230 41 53 55 53 54 65 4b 20 4d 6f 74 68 65 72 42 6f |ASUSTeK MotherBo| 00000240 61 72 64 20 4b 45 4b 20 43 65 72 74 69 66 69 63 |ard KEK Certific| 00000250 61 74 65 82 10 31 1e 46 c5 16 00 a1 a4 40 f1 c1 |ate..1.F.....@..| 00000260 50 e2 17 c2 71 30 0d 06 09 2a 86 48 86 f7 0d 01 |P...q0...*.H....| 00000270 01 0b 05 00 03 82 01 01 00 21 58 30 4f 95 f5 9f |.........!X0O...| 00000280 66 e6 02 0c 68 5e fc 28 24 a7 8a 33 b7 31 81 26 |f...h^.($..3.1.&| 00000290 65 3d 5b c0 ba a3 48 e5 a0 e8 1a c9 a9 56 e1 06 |e=[...H......V..| 000002a0 85 87 56 97 f3 26 79 cc b1 98 db 74 1d 95 4c 3e |..V..&y....t..L>| 000002b0 f9 dd 91 97 76 33 db b2 69 95 71 f2 5e 8b 9a ec |....v3..i.q.^...| 000002c0 37 0d 36 7c 30 6c 5c 99 17 10 49 c8 6d b7 ce 17 |7.6|0l\...I.m...| 000002d0 f3 0c 2e 0a 72 8c 32 d0 10 8f 8b 76 da c5 06 b7 |....r.2....v....| 000002e0 5b 11 cd 39 3c 68 71 6f 2a b1 67 b4 6d ae c8 85 |[..9..g..[.U.{.| 00000660 b6 8a 5f 30 19 06 09 2b 06 01 04 01 82 37 14 02 |.._0...+.....7..| 00000670 04 0c 1e 0a 00 53 00 75 00 62 00 43 00 41 30 0b |.....S.u.b.C.A0.| 00000680 06 03 55 1d 0f 04 04 03 02 01 86 30 0f 06 03 55 |..U........0...U| 00000690 1d 13 01 01 ff 04 05 30 03 01 01 ff 30 1f 06 03 |.......0....0...| 000006a0 55 1d 23 04 18 30 16 80 14 45 66 52 43 e1 7e 58 |U.#..0...EfRC.~X| 000006b0 11 bf d6 4e 9e 23 55 08 3b 3a 22 6a a8 30 5c 06 |...N.#U.;:"j.0\.| 000006c0 03 55 1d 1f 04 55 30 53 30 51 a0 4f a0 4d 86 4b |.U...U0S0Q.O.M.K| 000006d0 68 74 74 70 3a 2f 2f 63 72 6c 2e 6d 69 63 72 6f |http://crl.micro| 000006e0 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 72 6c |soft.com/pki/crl| 000006f0 2f 70 72 6f 64 75 63 74 73 2f 4d 69 63 43 6f 72 |/products/MicCor| 00000700 54 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 |ThiParMarRoo_201| 00000710 30 2d 31 30 2d 30 35 2e 63 72 6c 30 60 06 08 2b |0-10-05.crl0`..+| 00000720 06 01 05 05 07 01 01 04 54 30 52 30 50 06 08 2b |........T0R0P..+| 00000730 06 01 05 05 07 30 02 86 44 68 74 74 70 3a 2f 2f |.....0..Dhttp://| 00000740 77 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f |www.microsoft.co| 00000750 6d 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 63 43 |m/pki/certs/MicC| 00000760 6f 72 54 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 |orThiParMarRoo_2| 00000770 30 31 30 2d 31 30 2d 30 35 2e 63 72 74 30 0d 06 |010-10-05.crt0..| 00000780 09 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 02 01 |.*.H............| 00000790 00 d4 84 88 f5 14 94 18 02 ca 2a 3c fb 2a 92 1c |..........*<.*..| 000007a0 0c d7 a0 d1 f1 e8 52 66 a8 ee a2 b5 75 7a 90 00 |......Rf....uz..| 000007b0 aa 2d a4 76 5a ea 79 b7 b9 37 6a 51 7b 10 64 f6 |.-.vZ.y..7jQ{.d.| 000007c0 e1 64 f2 02 67 be f7 a8 1b 78 bd ba ce 88 58 64 |.d..g....x....Xd| 000007d0 0c d6 57 c8 19 a3 5f 05 d6 db c6 d0 69 ce 48 4b |..W..._.....i.HK| 000007e0 32 b7 eb 5d d2 30 f5 c0 f5 b8 ba 78 07 a3 2b fe |2..].0.....x..+.| 000007f0 9b db 34 56 84 ec 82 ca ae 41 25 70 9c 6b e9 fe |..4V.....A%p.k..| 00000800 90 0f d7 96 1f e5 e7 94 1f b2 2a 0c 8d 4b ff 28 |..........*..K.(| 00000810 29 10 7b f7 d7 7c a5 d1 76 b9 05 c8 79 ed 0f 90 |).{..|..v...y...| 00000820 92 9c c2 fe df 6f 7e 6c 0f 7b d4 c1 45 dd 34 51 |.....o~l.{..E.4Q| 00000830 96 39 0f e5 5e 56 d8 18 05 96 f4 07 a6 42 b3 a0 |.9..^V.......B..| 00000840 77 fd 08 19 f2 71 56 cc 9f 86 23 a4 87 cb a6 fd |w....qV...#.....| 00000850 58 7e d4 69 67 15 91 7e 81 f2 7f 13 e5 0d 8b 8a |X~.ig..~........| 00000860 3c 87 84 eb e3 ce bd 43 e5 ad 2d 84 93 8e 6a 2b |<......C..-...j+| 00000870 5a 7c 44 fa 52 aa 81 c8 2d 1c bb e0 52 df 00 11 |Z|D.R...-...R...| 00000880 f8 9a 3d c1 60 b0 e1 33 b5 a3 88 d1 65 19 0a 1a |..=.`..3....e...| 00000890 e7 ac 7c a4 c1 82 87 4e 38 b1 2f 0d c5 14 87 6f |..|....N8./....o| 000008a0 fd 8d 2e bc 39 b6 e7 e6 c3 e0 e4 cd 27 84 ef 94 |....9.......'...| 000008b0 42 ef 29 8b 90 46 41 3b 81 1b 67 d8 f9 43 59 65 |B.)..FA;..g..CYe| 000008c0 cb 0d bc fd 00 92 4f f4 75 3b a7 a9 24 fc 50 41 |......O.u;..$.PA| 000008d0 40 79 e0 2d 4f 0a 6a 27 76 6e 52 ed 96 69 7b af |@y.-O.j'vnR..i{.| 000008e0 0f f7 87 05 d0 45 c2 ad 53 14 81 1f fb 30 04 aa |.....E..S....0..| 000008f0 37 36 61 da 4a 69 1b 34 d8 68 ed d6 02 cf 6c 94 |76a.Ji.4.h....l.| 00000900 0c d3 cf 6c 22 79 ad b1 f0 bc 03 a2 46 60 a9 c4 |...l"y......F`..| 00000910 07 c2 21 82 f1 fd f2 e8 79 32 60 bf d8 ac a5 22 |..!.....y2`...."| 00000920 14 4b ca c1 d8 4b eb 7d 3f 57 35 b2 e6 4f 75 b4 |.K...K.}?W5..Ou.| 00000930 b0 60 03 22 53 ae 91 79 1d d6 9b 41 1f 15 86 54 |.`."S..y...A...T| 00000940 70 b2 de 0d 35 0f 7c b0 34 72 ba 97 60 3b f0 79 |p...5.|.4r..`;.y| 00000950 eb a2 b2 1c 5d a2 16 b8 87 c5 e9 1b f6 b5 97 25 |....]..........%| 00000960 6f 38 9f e3 91 fa 8a 79 98 c3 69 0e b7 a3 1c 20 |o8.....y..i.... | 00000970 05 97 f8 ca 14 ae 00 d7 c4 f3 c0 14 10 75 6b 34 |.............uk4| 00000980 a0 1b b5 99 60 f3 5c b0 c5 57 4e 36 d2 32 84 bf |....`.\..WN6.2..| 00000990 9e |.| 00000991 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 |.Y.....J....\+.| esl[2].signature_type = {x509_cert} 000009a0 72 |r| 000009a1 64 04 00 00 |d...| esl[2].signature_list_size = 1124 (0x464) 000009a5 00 00 00 00 |....| esl[2].signature_header_size = 0 000009a9 48 04 00 00 |H...| esl[2].signature_size = 1096 000009ad esl[2].signature_header (end:0x000009ad) 000009ad e4 0a c4 |...| esl[2].signature[0].owner = {canonical} 000009b0 6d e8 2e 4c 9c a3 14 0f c7 b2 00 87 10 |m..L.........| 000009bd 30 82 04 |0..| esl[2].signature[0].data (end:0x00000df5) 000009c0 34 30 82 03 1c a0 03 02 01 02 02 09 00 b9 41 24 |40............A$| 000009d0 a0 18 2c 92 67 30 0d 06 09 2a 86 48 86 f7 0d 01 |..,.g0...*.H....| 000009e0 01 0b 05 00 30 81 84 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 000009f0 13 02 47 42 31 14 30 12 06 03 55 04 08 0c 0b 49 |..GB1.0...U....I| 00000a00 73 6c 65 20 6f 66 20 4d 61 6e 31 10 30 0e 06 03 |sle of Man1.0...| 00000a10 55 04 07 0c 07 44 6f 75 67 6c 61 73 31 17 30 15 |U....Douglas1.0.| 00000a20 06 03 55 04 0a 0c 0e 43 61 6e 6f 6e 69 63 61 6c |..U....Canonical| 00000a30 20 4c 74 64 2e 31 34 30 32 06 03 55 04 03 0c 2b | Ltd.1402..U...+| 00000a40 43 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 20 4d |Canonical Ltd. M| 00000a50 61 73 74 65 72 20 43 65 72 74 69 66 69 63 61 74 |aster Certificat| 00000a60 65 20 41 75 74 68 6f 72 69 74 79 30 1e 17 0d 31 |e Authority0...1| 00000a70 32 30 34 31 32 31 31 31 32 35 31 5a 17 0d 34 32 |20412111251Z..42| 00000a80 30 34 31 31 31 31 31 32 35 31 5a 30 81 84 31 0b |0411111251Z0..1.| 00000a90 30 09 06 03 55 04 06 13 02 47 42 31 14 30 12 06 |0...U....GB1.0..| 00000aa0 03 55 04 08 0c 0b 49 73 6c 65 20 6f 66 20 4d 61 |.U....Isle of Ma| 00000ab0 6e 31 10 30 0e 06 03 55 04 07 0c 07 44 6f 75 67 |n1.0...U....Doug| 00000ac0 6c 61 73 31 17 30 15 06 03 55 04 0a 0c 0e 43 61 |las1.0...U....Ca| 00000ad0 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 31 34 30 32 |nonical Ltd.1402| 00000ae0 06 03 55 04 03 0c 2b 43 61 6e 6f 6e 69 63 61 6c |..U...+Canonical| 00000af0 20 4c 74 64 2e 20 4d 61 73 74 65 72 20 43 65 72 | Ltd. Master Cer| 00000b00 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 |tificate Authori| 00000b10 74 79 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |ty0.."0...*.H...| 00000b20 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000b30 01 01 00 bf 5b 3a 16 74 ee 21 5d ae 61 ed 9d 56 |....[:.t.!].a..V| 00000b40 ac bd de de 72 f3 dd 7e 2d 4c 62 0f ac c0 6d 48 |....r..~-Lb...mH| 00000b50 08 11 cf 8d 8b fb 61 1f 27 cc 11 6e d9 55 3d 39 |......a.'..n.U=9| 00000b60 54 eb 40 3b b1 bb e2 85 34 79 ca f7 7b bf ba 7a |T.@;....4y..{..z| 00000b70 c8 10 2d 19 7d ad 59 cf a6 d4 e9 4e 0f da ae 52 |..-.}.Y....N...R| 00000b80 ea 4c 9e 90 ce c6 99 0d 4e 67 65 78 5d f9 d1 d5 |.L......Ngex]...| 00000b90 38 4a 4a 7a 8f 93 9c 7f 1a a3 85 db ce fa 8b f7 |8JJz............| 00000ba0 c2 a2 21 2d 9b 54 41 35 10 57 13 8d 6c bc 29 06 |..!-.TA5.W..l.).| 00000bb0 50 4a 7e ea 99 a9 68 a7 3b c7 07 1b 32 9e a0 19 |PJ~...h.;...2...| 00000bc0 87 0e 79 bb 68 99 2d 7e 93 52 e5 f6 eb c9 9b f9 |..y.h.-~.R......| 00000bd0 2b ed b8 68 49 bc d9 95 50 40 5b c5 b2 71 aa eb |+..hI...P@[..q..| 00000be0 5c 57 de 71 f9 40 0a dd 5b ac 1e 84 2d 50 1a 52 |\W.q.@..[...-P.R| 00000bf0 d6 e1 f3 6b 6e 90 64 4f 5b b4 eb 20 e4 61 10 da |...kn.dO[.. .a..| 00000c00 5a f0 ea e4 42 d7 01 c4 fe 21 1f d9 b9 c0 54 95 |Z...B....!....T.| 00000c10 42 81 52 72 1f 49 64 7a c8 6c 24 f1 08 70 0b 4d |B.Rr.Idz.l$..p.M| 00000c20 a5 a0 32 d1 a0 1c 57 a8 4d e3 af a5 8e 05 05 3e |..2...W.M......>| 00000c30 10 43 a1 02 03 01 00 01 a3 81 a6 30 81 a3 30 1d |.C.........0..0.| 00000c40 06 03 55 1d 0e 04 16 04 14 ad 91 99 0b c2 2a b1 |..U...........*.| 00000c50 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 1f 06 |....#.eZ&.4Zc0..| 00000c60 03 55 1d 23 04 18 30 16 80 14 ad 91 99 0b c2 2a |.U.#..0........*| 00000c70 b1 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 0f |.....#.eZ&.4Zc0.| 00000c80 06 03 55 1d 13 01 01 ff 04 05 30 03 01 01 ff 30 |..U.......0....0| 00000c90 0b 06 03 55 1d 0f 04 04 03 02 01 86 30 43 06 03 |...U........0C..| 00000ca0 55 1d 1f 04 3c 30 3a 30 38 a0 36 a0 34 86 32 68 |U...<0:08.6.4.2h| 00000cb0 74 74 70 3a 2f 2f 77 77 77 2e 63 61 6e 6f 6e 69 |ttp://www.canoni| 00000cc0 63 61 6c 2e 63 6f 6d 2f 73 65 63 75 72 65 2d 62 |cal.com/secure-b| 00000cd0 6f 6f 74 2d 6d 61 73 74 65 72 2d 63 61 2e 63 72 |oot-master-ca.cr| 00000ce0 6c 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 |l0...*.H........| 00000cf0 03 82 01 01 00 3f 7d f6 76 a5 b3 83 b4 2b 7a d0 |.....?}.v....+z.| 00000d00 6d 52 1a 03 83 c4 12 a7 50 9c 47 92 cc c0 94 77 |mR......P.G....w| 00000d10 82 d2 ae 57 b3 99 04 f5 32 3a c6 55 1d 07 db 12 |...W....2:.U....| 00000d20 a9 56 fa d8 d4 76 20 eb e4 c3 51 db 9a 5c 9c 92 |.V...v ...Q..\..| 00000d30 3f 18 73 da 94 6a a1 99 38 8c a4 88 6d c1 fc 39 |?.s..j..8...m..9| 00000d40 71 d0 74 76 16 03 3e 56 23 35 d5 55 47 5b 1a 1d |q.tv..>V#5.UG[..| 00000d50 41 c2 d3 12 4c dc ff ae 0a 92 9c 62 0a 17 01 9c |A...L......b....| 00000d60 73 e0 5e b1 fd bc d6 b5 19 11 7a 7e cd 3e 03 7e |s.^.......z~.>.~| 00000d70 66 db 5b a8 c9 39 48 51 ff 53 e1 9c 31 53 91 1b |f.[..9HQ.S..1S..| 00000d80 3b 10 75 03 17 ba e6 81 02 80 94 70 4c 46 b7 94 |;.u........pLF..| 00000d90 b0 3d 15 cd 1f 8e 02 e0 68 02 8f fb f9 47 1d 7d |.=......h....G.}| 00000da0 a2 01 c6 07 51 c4 9a cc ed dd cf a3 5d ed 92 bb |....Q.......]...| 00000db0 be d1 fd e6 ec 1f 33 51 73 04 be 3c 72 b0 7d 08 |......3Qs......| 00000de0 db ce 03 0e 0b 66 c4 1c 6d bd b8 27 77 c1 42 94 |.....f..m..'w.B.| 00000df0 bd fc 6a 0a bc |..j..| 00000df5 efivar-39/tests/machine3/annotations/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000470511455652431600273460ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 79 03 00 00 |y...| esl[0].signature_list_size = 889 (0x379) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 5d 03 00 00 |]...| esl[0].signature_size = 861 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 91 30 05 3b |.0.;| esl[0].signature[0].owner = {asus} 00000020 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.l.......;..| 0000002c 30 82 03 49 |0..I| esl[0].signature[0].data (end:0x00000379) 00000030 30 82 02 31 a0 03 02 01 02 02 10 31 1e 46 c5 16 |0..1.......1.F..| 00000040 00 a1 a4 40 f1 c1 50 e2 17 c2 71 30 0d 06 09 2a |...@..P...q0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 2e 31 2c 30 2a |.H........0.1,0*| 00000060 06 03 55 04 03 13 23 41 53 55 53 54 65 4b 20 4d |..U...#ASUSTeK M| 00000070 6f 74 68 65 72 42 6f 61 72 64 20 4b 45 4b 20 43 |otherBoard KEK C| 00000080 65 72 74 69 66 69 63 61 74 65 30 1e 17 0d 31 31 |ertificate0...11| 00000090 31 32 32 36 32 33 33 34 35 39 5a 17 0d 33 31 31 |1226233459Z..311| 000000a0 32 32 36 32 33 33 34 35 38 5a 30 2e 31 2c 30 2a |226233458Z0.1,0*| 000000b0 06 03 55 04 03 13 23 41 53 55 53 54 65 4b 20 4d |..U...#ASUSTeK M| 000000c0 6f 74 68 65 72 42 6f 61 72 64 20 4b 45 4b 20 43 |otherBoard KEK C| 000000d0 65 72 74 69 66 69 63 61 74 65 30 82 01 22 30 0d |ertificate0.."0.| 000000e0 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 000000f0 0f 00 30 82 01 0a 02 82 01 01 00 89 09 84 de a7 |..0.............| 00000100 21 16 1b 45 4d 9c 21 73 80 84 f6 d1 13 e7 92 a4 |!..EM.!s........| 00000110 b5 1d 0a e3 4b c5 a3 00 9f 64 b9 80 0f c2 14 16 |....K....d......| 00000120 d8 d7 9e 1e ac a4 2f d8 e8 e2 37 23 d4 75 80 fa |....../...7#.u..| 00000130 a3 2a de 8c 35 25 75 f8 c6 77 36 f2 10 74 a9 8e |.*..5%u..w6..t..| 00000140 08 49 c7 d5 36 ab 82 fc 26 6b 53 a2 ab 75 a6 3e |.I..6...&kS..u.>| 00000150 c2 23 fb 05 4b 51 d1 73 ce bf de 88 e5 96 0c 4a |.#..KQ.s.......J| 00000160 1f 67 9a 81 e8 46 a8 09 45 12 2f 0f 29 39 e9 b1 |.g...F..E./.)9..| 00000170 29 2b ac 0c 73 aa fb 78 4b d5 29 7e 35 2c aa 84 |)+..s..xK.)~5,..| 00000180 2c e3 62 79 d3 51 29 d6 ec f2 e5 40 45 a0 9f 17 |,.by.Q)....@E...| 00000190 4e b2 f0 dc 38 34 c3 c7 7c f6 05 e8 27 a1 46 9b |N...84..|...'.F.| 000001a0 06 8c 6f 23 0a 6a 97 ea 22 57 99 69 d3 7f eb 2f |..o#.j.."W.i.../| 000001b0 d9 59 21 26 06 5b 36 7d 1f b3 87 05 6a a5 fe e2 |.Y!&.[6}....j...| 000001c0 aa 4d 8e c8 36 57 63 bd b8 ec dc 8b 8b a0 25 2a |.M..6Wc.......%*| 000001d0 4a cc 83 9f 05 55 2b 64 4b df 10 06 e5 6a 0a 7d |J....U+dK....j.}| 000001e0 d6 0c 9e ed a9 a7 ae f1 26 a6 31 4c 4b 77 1d eb |........&.1LKw..| 000001f0 8d 50 cf a8 d5 17 68 05 97 3a db 02 03 01 00 01 |.P....h..:......| 00000200 a3 63 30 61 30 5f 06 03 55 1d 01 04 58 30 56 80 |.c0a0_..U...X0V.| 00000210 10 59 15 d5 b5 69 8a b8 9d 28 c8 72 db 3f 5a 9c |.Y...i...(.r.?Z.| 00000220 f0 a1 30 30 2e 31 2c 30 2a 06 03 55 04 03 13 23 |..00.1,0*..U...#| 00000230 41 53 55 53 54 65 4b 20 4d 6f 74 68 65 72 42 6f |ASUSTeK MotherBo| 00000240 61 72 64 20 4b 45 4b 20 43 65 72 74 69 66 69 63 |ard KEK Certific| 00000250 61 74 65 82 10 31 1e 46 c5 16 00 a1 a4 40 f1 c1 |ate..1.F.....@..| 00000260 50 e2 17 c2 71 30 0d 06 09 2a 86 48 86 f7 0d 01 |P...q0...*.H....| 00000270 01 0b 05 00 03 82 01 01 00 21 58 30 4f 95 f5 9f |.........!X0O...| 00000280 66 e6 02 0c 68 5e fc 28 24 a7 8a 33 b7 31 81 26 |f...h^.($..3.1.&| 00000290 65 3d 5b c0 ba a3 48 e5 a0 e8 1a c9 a9 56 e1 06 |e=[...H......V..| 000002a0 85 87 56 97 f3 26 79 cc b1 98 db 74 1d 95 4c 3e |..V..&y....t..L>| 000002b0 f9 dd 91 97 76 33 db b2 69 95 71 f2 5e 8b 9a ec |....v3..i.q.^...| 000002c0 37 0d 36 7c 30 6c 5c 99 17 10 49 c8 6d b7 ce 17 |7.6|0l\...I.m...| 000002d0 f3 0c 2e 0a 72 8c 32 d0 10 8f 8b 76 da c5 06 b7 |....r.2....v....| 000002e0 5b 11 cd 39 3c 68 71 6f 2a b1 67 b4 6d ae c8 85 |[..9..g..[.U.{.| 00000660 b6 8a 5f 30 19 06 09 2b 06 01 04 01 82 37 14 02 |.._0...+.....7..| 00000670 04 0c 1e 0a 00 53 00 75 00 62 00 43 00 41 30 0b |.....S.u.b.C.A0.| 00000680 06 03 55 1d 0f 04 04 03 02 01 86 30 0f 06 03 55 |..U........0...U| 00000690 1d 13 01 01 ff 04 05 30 03 01 01 ff 30 1f 06 03 |.......0....0...| 000006a0 55 1d 23 04 18 30 16 80 14 45 66 52 43 e1 7e 58 |U.#..0...EfRC.~X| 000006b0 11 bf d6 4e 9e 23 55 08 3b 3a 22 6a a8 30 5c 06 |...N.#U.;:"j.0\.| 000006c0 03 55 1d 1f 04 55 30 53 30 51 a0 4f a0 4d 86 4b |.U...U0S0Q.O.M.K| 000006d0 68 74 74 70 3a 2f 2f 63 72 6c 2e 6d 69 63 72 6f |http://crl.micro| 000006e0 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 72 6c |soft.com/pki/crl| 000006f0 2f 70 72 6f 64 75 63 74 73 2f 4d 69 63 43 6f 72 |/products/MicCor| 00000700 54 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 |ThiParMarRoo_201| 00000710 30 2d 31 30 2d 30 35 2e 63 72 6c 30 60 06 08 2b |0-10-05.crl0`..+| 00000720 06 01 05 05 07 01 01 04 54 30 52 30 50 06 08 2b |........T0R0P..+| 00000730 06 01 05 05 07 30 02 86 44 68 74 74 70 3a 2f 2f |.....0..Dhttp://| 00000740 77 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f |www.microsoft.co| 00000750 6d 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 63 43 |m/pki/certs/MicC| 00000760 6f 72 54 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 |orThiParMarRoo_2| 00000770 30 31 30 2d 31 30 2d 30 35 2e 63 72 74 30 0d 06 |010-10-05.crt0..| 00000780 09 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 02 01 |.*.H............| 00000790 00 d4 84 88 f5 14 94 18 02 ca 2a 3c fb 2a 92 1c |..........*<.*..| 000007a0 0c d7 a0 d1 f1 e8 52 66 a8 ee a2 b5 75 7a 90 00 |......Rf....uz..| 000007b0 aa 2d a4 76 5a ea 79 b7 b9 37 6a 51 7b 10 64 f6 |.-.vZ.y..7jQ{.d.| 000007c0 e1 64 f2 02 67 be f7 a8 1b 78 bd ba ce 88 58 64 |.d..g....x....Xd| 000007d0 0c d6 57 c8 19 a3 5f 05 d6 db c6 d0 69 ce 48 4b |..W..._.....i.HK| 000007e0 32 b7 eb 5d d2 30 f5 c0 f5 b8 ba 78 07 a3 2b fe |2..].0.....x..+.| 000007f0 9b db 34 56 84 ec 82 ca ae 41 25 70 9c 6b e9 fe |..4V.....A%p.k..| 00000800 90 0f d7 96 1f e5 e7 94 1f b2 2a 0c 8d 4b ff 28 |..........*..K.(| 00000810 29 10 7b f7 d7 7c a5 d1 76 b9 05 c8 79 ed 0f 90 |).{..|..v...y...| 00000820 92 9c c2 fe df 6f 7e 6c 0f 7b d4 c1 45 dd 34 51 |.....o~l.{..E.4Q| 00000830 96 39 0f e5 5e 56 d8 18 05 96 f4 07 a6 42 b3 a0 |.9..^V.......B..| 00000840 77 fd 08 19 f2 71 56 cc 9f 86 23 a4 87 cb a6 fd |w....qV...#.....| 00000850 58 7e d4 69 67 15 91 7e 81 f2 7f 13 e5 0d 8b 8a |X~.ig..~........| 00000860 3c 87 84 eb e3 ce bd 43 e5 ad 2d 84 93 8e 6a 2b |<......C..-...j+| 00000870 5a 7c 44 fa 52 aa 81 c8 2d 1c bb e0 52 df 00 11 |Z|D.R...-...R...| 00000880 f8 9a 3d c1 60 b0 e1 33 b5 a3 88 d1 65 19 0a 1a |..=.`..3....e...| 00000890 e7 ac 7c a4 c1 82 87 4e 38 b1 2f 0d c5 14 87 6f |..|....N8./....o| 000008a0 fd 8d 2e bc 39 b6 e7 e6 c3 e0 e4 cd 27 84 ef 94 |....9.......'...| 000008b0 42 ef 29 8b 90 46 41 3b 81 1b 67 d8 f9 43 59 65 |B.)..FA;..g..CYe| 000008c0 cb 0d bc fd 00 92 4f f4 75 3b a7 a9 24 fc 50 41 |......O.u;..$.PA| 000008d0 40 79 e0 2d 4f 0a 6a 27 76 6e 52 ed 96 69 7b af |@y.-O.j'vnR..i{.| 000008e0 0f f7 87 05 d0 45 c2 ad 53 14 81 1f fb 30 04 aa |.....E..S....0..| 000008f0 37 36 61 da 4a 69 1b 34 d8 68 ed d6 02 cf 6c 94 |76a.Ji.4.h....l.| 00000900 0c d3 cf 6c 22 79 ad b1 f0 bc 03 a2 46 60 a9 c4 |...l"y......F`..| 00000910 07 c2 21 82 f1 fd f2 e8 79 32 60 bf d8 ac a5 22 |..!.....y2`...."| 00000920 14 4b ca c1 d8 4b eb 7d 3f 57 35 b2 e6 4f 75 b4 |.K...K.}?W5..Ou.| 00000930 b0 60 03 22 53 ae 91 79 1d d6 9b 41 1f 15 86 54 |.`."S..y...A...T| 00000940 70 b2 de 0d 35 0f 7c b0 34 72 ba 97 60 3b f0 79 |p...5.|.4r..`;.y| 00000950 eb a2 b2 1c 5d a2 16 b8 87 c5 e9 1b f6 b5 97 25 |....]..........%| 00000960 6f 38 9f e3 91 fa 8a 79 98 c3 69 0e b7 a3 1c 20 |o8.....y..i.... | 00000970 05 97 f8 ca 14 ae 00 d7 c4 f3 c0 14 10 75 6b 34 |.............uk4| 00000980 a0 1b b5 99 60 f3 5c b0 c5 57 4e 36 d2 32 84 bf |....`.\..WN6.2..| 00000990 9e |.| 00000991 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 |.Y.....J....\+.| esl[2].signature_type = {x509_cert} 000009a0 72 |r| 000009a1 64 04 00 00 |d...| esl[2].signature_list_size = 1124 (0x464) 000009a5 00 00 00 00 |....| esl[2].signature_header_size = 0 000009a9 48 04 00 00 |H...| esl[2].signature_size = 1096 000009ad esl[2].signature_header (end:0x000009ad) 000009ad e4 0a c4 |...| esl[2].signature[0].owner = {canonical} 000009b0 6d e8 2e 4c 9c a3 14 0f c7 b2 00 87 10 |m..L.........| 000009bd 30 82 04 |0..| esl[2].signature[0].data (end:0x00000df5) 000009c0 34 30 82 03 1c a0 03 02 01 02 02 09 00 b9 41 24 |40............A$| 000009d0 a0 18 2c 92 67 30 0d 06 09 2a 86 48 86 f7 0d 01 |..,.g0...*.H....| 000009e0 01 0b 05 00 30 81 84 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 000009f0 13 02 47 42 31 14 30 12 06 03 55 04 08 0c 0b 49 |..GB1.0...U....I| 00000a00 73 6c 65 20 6f 66 20 4d 61 6e 31 10 30 0e 06 03 |sle of Man1.0...| 00000a10 55 04 07 0c 07 44 6f 75 67 6c 61 73 31 17 30 15 |U....Douglas1.0.| 00000a20 06 03 55 04 0a 0c 0e 43 61 6e 6f 6e 69 63 61 6c |..U....Canonical| 00000a30 20 4c 74 64 2e 31 34 30 32 06 03 55 04 03 0c 2b | Ltd.1402..U...+| 00000a40 43 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 20 4d |Canonical Ltd. M| 00000a50 61 73 74 65 72 20 43 65 72 74 69 66 69 63 61 74 |aster Certificat| 00000a60 65 20 41 75 74 68 6f 72 69 74 79 30 1e 17 0d 31 |e Authority0...1| 00000a70 32 30 34 31 32 31 31 31 32 35 31 5a 17 0d 34 32 |20412111251Z..42| 00000a80 30 34 31 31 31 31 31 32 35 31 5a 30 81 84 31 0b |0411111251Z0..1.| 00000a90 30 09 06 03 55 04 06 13 02 47 42 31 14 30 12 06 |0...U....GB1.0..| 00000aa0 03 55 04 08 0c 0b 49 73 6c 65 20 6f 66 20 4d 61 |.U....Isle of Ma| 00000ab0 6e 31 10 30 0e 06 03 55 04 07 0c 07 44 6f 75 67 |n1.0...U....Doug| 00000ac0 6c 61 73 31 17 30 15 06 03 55 04 0a 0c 0e 43 61 |las1.0...U....Ca| 00000ad0 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 31 34 30 32 |nonical Ltd.1402| 00000ae0 06 03 55 04 03 0c 2b 43 61 6e 6f 6e 69 63 61 6c |..U...+Canonical| 00000af0 20 4c 74 64 2e 20 4d 61 73 74 65 72 20 43 65 72 | Ltd. Master Cer| 00000b00 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 69 |tificate Authori| 00000b10 74 79 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d |ty0.."0...*.H...| 00000b20 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 |..........0.....| 00000b30 01 01 00 bf 5b 3a 16 74 ee 21 5d ae 61 ed 9d 56 |....[:.t.!].a..V| 00000b40 ac bd de de 72 f3 dd 7e 2d 4c 62 0f ac c0 6d 48 |....r..~-Lb...mH| 00000b50 08 11 cf 8d 8b fb 61 1f 27 cc 11 6e d9 55 3d 39 |......a.'..n.U=9| 00000b60 54 eb 40 3b b1 bb e2 85 34 79 ca f7 7b bf ba 7a |T.@;....4y..{..z| 00000b70 c8 10 2d 19 7d ad 59 cf a6 d4 e9 4e 0f da ae 52 |..-.}.Y....N...R| 00000b80 ea 4c 9e 90 ce c6 99 0d 4e 67 65 78 5d f9 d1 d5 |.L......Ngex]...| 00000b90 38 4a 4a 7a 8f 93 9c 7f 1a a3 85 db ce fa 8b f7 |8JJz............| 00000ba0 c2 a2 21 2d 9b 54 41 35 10 57 13 8d 6c bc 29 06 |..!-.TA5.W..l.).| 00000bb0 50 4a 7e ea 99 a9 68 a7 3b c7 07 1b 32 9e a0 19 |PJ~...h.;...2...| 00000bc0 87 0e 79 bb 68 99 2d 7e 93 52 e5 f6 eb c9 9b f9 |..y.h.-~.R......| 00000bd0 2b ed b8 68 49 bc d9 95 50 40 5b c5 b2 71 aa eb |+..hI...P@[..q..| 00000be0 5c 57 de 71 f9 40 0a dd 5b ac 1e 84 2d 50 1a 52 |\W.q.@..[...-P.R| 00000bf0 d6 e1 f3 6b 6e 90 64 4f 5b b4 eb 20 e4 61 10 da |...kn.dO[.. .a..| 00000c00 5a f0 ea e4 42 d7 01 c4 fe 21 1f d9 b9 c0 54 95 |Z...B....!....T.| 00000c10 42 81 52 72 1f 49 64 7a c8 6c 24 f1 08 70 0b 4d |B.Rr.Idz.l$..p.M| 00000c20 a5 a0 32 d1 a0 1c 57 a8 4d e3 af a5 8e 05 05 3e |..2...W.M......>| 00000c30 10 43 a1 02 03 01 00 01 a3 81 a6 30 81 a3 30 1d |.C.........0..0.| 00000c40 06 03 55 1d 0e 04 16 04 14 ad 91 99 0b c2 2a b1 |..U...........*.| 00000c50 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 1f 06 |....#.eZ&.4Zc0..| 00000c60 03 55 1d 23 04 18 30 16 80 14 ad 91 99 0b c2 2a |.U.#..0........*| 00000c70 b1 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 0f |.....#.eZ&.4Zc0.| 00000c80 06 03 55 1d 13 01 01 ff 04 05 30 03 01 01 ff 30 |..U.......0....0| 00000c90 0b 06 03 55 1d 0f 04 04 03 02 01 86 30 43 06 03 |...U........0C..| 00000ca0 55 1d 1f 04 3c 30 3a 30 38 a0 36 a0 34 86 32 68 |U...<0:08.6.4.2h| 00000cb0 74 74 70 3a 2f 2f 77 77 77 2e 63 61 6e 6f 6e 69 |ttp://www.canoni| 00000cc0 63 61 6c 2e 63 6f 6d 2f 73 65 63 75 72 65 2d 62 |cal.com/secure-b| 00000cd0 6f 6f 74 2d 6d 61 73 74 65 72 2d 63 61 2e 63 72 |oot-master-ca.cr| 00000ce0 6c 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 |l0...*.H........| 00000cf0 03 82 01 01 00 3f 7d f6 76 a5 b3 83 b4 2b 7a d0 |.....?}.v....+z.| 00000d00 6d 52 1a 03 83 c4 12 a7 50 9c 47 92 cc c0 94 77 |mR......P.G....w| 00000d10 82 d2 ae 57 b3 99 04 f5 32 3a c6 55 1d 07 db 12 |...W....2:.U....| 00000d20 a9 56 fa d8 d4 76 20 eb e4 c3 51 db 9a 5c 9c 92 |.V...v ...Q..\..| 00000d30 3f 18 73 da 94 6a a1 99 38 8c a4 88 6d c1 fc 39 |?.s..j..8...m..9| 00000d40 71 d0 74 76 16 03 3e 56 23 35 d5 55 47 5b 1a 1d |q.tv..>V#5.UG[..| 00000d50 41 c2 d3 12 4c dc ff ae 0a 92 9c 62 0a 17 01 9c |A...L......b....| 00000d60 73 e0 5e b1 fd bc d6 b5 19 11 7a 7e cd 3e 03 7e |s.^.......z~.>.~| 00000d70 66 db 5b a8 c9 39 48 51 ff 53 e1 9c 31 53 91 1b |f.[..9HQ.S..1S..| 00000d80 3b 10 75 03 17 ba e6 81 02 80 94 70 4c 46 b7 94 |;.u........pLF..| 00000d90 b0 3d 15 cd 1f 8e 02 e0 68 02 8f fb f9 47 1d 7d |.=......h....G.}| 00000da0 a2 01 c6 07 51 c4 9a cc ed dd cf a3 5d ed 92 bb |....Q.......]...| 00000db0 be d1 fd e6 ec 1f 33 51 73 04 be 3c 72 b0 7d 08 |......3Qs......| 00000de0 db ce 03 0e 0b 66 c4 1c 6d bd b8 27 77 c1 42 94 |.....f..m..'w.B.| 00000df0 bd fc 6a 0a bc |..j..| 00000df5 efivar-39/tests/machine3/annotations/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000117431455652431600257400ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 76 03 00 00 |v...| esl[0].signature_list_size = 886 (0x376) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 5a 03 00 00 |Z...| esl[0].signature_size = 858 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 91 30 05 3b |.0.;| esl[0].signature[0].owner = {asus} 00000020 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.l.......;..| 0000002c 30 82 03 46 |0..F| esl[0].signature[0].data (end:0x00000376) 00000030 30 82 02 2e a0 03 02 01 02 02 10 53 41 e0 15 c4 |0..........SA...| 00000040 3a f8 a8 48 36 b9 a5 ff 69 14 88 30 0d 06 09 2a |:..H6...i..0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 2d 31 2b 30 29 |.H........0-1+0)| 00000060 06 03 55 04 03 13 22 41 53 55 53 54 65 4b 20 4d |..U..."ASUSTeK M| 00000070 6f 74 68 65 72 42 6f 61 72 64 20 50 4b 20 43 65 |otherBoard PK Ce| 00000080 72 74 69 66 69 63 61 74 65 30 1e 17 0d 31 31 31 |rtificate0...111| 00000090 32 32 36 32 33 33 34 35 30 5a 17 0d 33 31 31 32 |226233450Z..3112| 000000a0 32 36 32 33 33 34 34 39 5a 30 2d 31 2b 30 29 06 |26233449Z0-1+0).| 000000b0 03 55 04 03 13 22 41 53 55 53 54 65 4b 20 4d 6f |.U..."ASUSTeK Mo| 000000c0 74 68 65 72 42 6f 61 72 64 20 50 4b 20 43 65 72 |therBoard PK Cer| 000000d0 74 69 66 69 63 61 74 65 30 82 01 22 30 0d 06 09 |tificate0.."0...| 000000e0 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 |*.H.............| 000000f0 30 82 01 0a 02 82 01 01 00 d9 84 15 36 c5 d4 ce |0...........6...| 00000100 8a a1 56 16 a0 e8 74 cd 58 1e 2a 02 96 1b c4 37 |..V...t.X.*....7| 00000110 64 da 8c 6a 24 84 cd dc c4 68 04 15 c7 e9 cf 20 |d..j$....h..... | 00000120 a4 45 1a 42 f0 a3 9b 62 22 6e 2a 43 67 17 8d 4d |.E.B...b"n*Cg..M| 00000130 10 aa f8 dd f2 2a 9e 86 ba 91 d0 32 7e 95 be 01 |.....*.....2~...| 00000140 78 73 3a d3 98 7e 19 f8 16 0e 27 cc ea c5 be b5 |xs:..~....'.....| 00000150 80 7e e8 bc a8 17 41 b3 ea 55 34 19 53 d7 7e 7d |.~....A..U4.S.~}| 00000160 50 c7 5a b8 ef 54 f9 13 6e ab d6 45 cd 1d 02 94 |P.Z..T..n..E....| 00000170 e2 78 d7 88 a8 10 52 8d 7e ba f1 49 36 c0 68 70 |.x....R.~..I6.hp| 00000180 f9 d5 0c 5a fd 6b 1a 6f 88 c2 37 69 22 42 92 f3 |...Z.k.o..7i"B..| 00000190 9d ae ef 73 ec f4 0f 32 42 64 c3 e9 b9 89 dd 06 |...s...2Bd......| 000001a0 e5 cc 2f 6b f8 00 4e 91 64 f7 03 45 f0 4f a4 11 |../k..N.d..E.O..| 000001b0 83 e9 83 97 e9 a0 dc 2d c8 03 56 b4 df 61 a6 32 |.......-..V..a.2| 000001c0 a5 8b a6 1b 4e d8 1c a7 a3 f3 72 4e 72 f8 fe 69 |....N.....rNr..i| 000001d0 49 cf 61 f2 e6 59 96 58 b8 14 7c ca f5 e5 6b f0 |I.a..Y.X..|...k.| 000001e0 6d da f7 bc 08 5b 7f 57 e9 96 37 59 5a 70 79 57 |m....[.W..7YZpyW| 000001f0 0e c8 82 c8 91 7b 67 f9 2d 02 03 01 00 01 a3 62 |.....{g.-......b| 00000200 30 60 30 5e 06 03 55 1d 01 04 57 30 55 80 10 a2 |0`0^..U...W0U...| 00000210 8f 65 a6 6a 29 64 38 d8 d6 72 0d 3f 3d e3 e9 a1 |.e.j)d8..r.?=...| 00000220 2f 30 2d 31 2b 30 29 06 03 55 04 03 13 22 41 53 |/0-1+0)..U..."AS| 00000230 55 53 54 65 4b 20 4d 6f 74 68 65 72 42 6f 61 72 |USTeK MotherBoar| 00000240 64 20 50 4b 20 43 65 72 74 69 66 69 63 61 74 65 |d PK Certificate| 00000250 82 10 53 41 e0 15 c4 3a f8 a8 48 36 b9 a5 ff 69 |..SA...:..H6...i| 00000260 14 88 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 |..0...*.H.......| 00000270 00 03 82 01 01 00 73 27 1a 32 88 0e db 13 8d f5 |......s'.2......| 00000280 7e fc 94 f2 1a 27 6b c2 ca 79 d0 ba b6 58 bc df |~....'k..y...X..| 00000290 97 13 5a 4c dc a2 e4 90 39 7b 24 84 7d 2e a3 95 |..ZL....9{$.}...| 000002a0 96 39 a6 6b c2 a6 51 38 6f e5 0b af c0 91 0a 90 |.9.k..Q8o.......| 000002b0 3f 3e 5a e4 79 16 98 96 32 94 49 ae 00 28 18 aa |?>Z.y...2.I..(..| 000002c0 ef fb 54 95 93 c7 fc e4 89 ef 96 00 ce d6 c6 8a |..T.............| 000002d0 4d 85 ca 9c 6c fb 8a a7 43 60 36 5e 73 97 17 2f |M...l...C`6^s../| 000002e0 16 46 d0 ce f0 a0 07 77 62 4d 15 0e 22 f6 91 71 |.F.....wbM.."..q| 000002f0 1a 79 e1 85 1c 0b 2c 94 9f 9d 97 cf 49 b5 dd ea |.y....,.....I...| 00000300 6a e5 a7 61 ec 82 0d 95 e8 98 5c e8 72 c6 da 8d |j..a......\.r...| 00000310 df 21 ec 05 30 0f 79 b8 af e9 b0 2b c0 83 73 fe |.!..0.y....+..s.| 00000320 bf 9d 4a 6d da a5 a0 65 37 cf 2c 87 f1 2b c6 a3 |..Jm...e7.,..+..| 00000330 0e 92 64 57 1a 77 ed d9 47 40 47 da ea ff 23 98 |..dW.w..G@G...#.| 00000340 d1 25 b9 72 f5 38 3a b3 33 a5 5d f1 44 dc d8 63 |.%.r.8:.3.].D..c| 00000350 7d f9 2f 7d f1 d1 d0 95 c0 a6 75 a8 70 c9 c4 2b |}./}......u.p..+| 00000360 c0 45 04 d0 40 5b 75 7d e2 b2 0a 3c 1e 64 22 30 |.E..@[u}...<.d"0| 00000370 d2 02 84 c5 b7 bb |......| 00000376 efivar-39/tests/machine3/annotations/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000000117431455652431600272450ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 76 03 00 00 |v...| esl[0].signature_list_size = 886 (0x376) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 5a 03 00 00 |Z...| esl[0].signature_size = 858 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 91 30 05 3b |.0.;| esl[0].signature[0].owner = {asus} 00000020 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.l.......;..| 0000002c 30 82 03 46 |0..F| esl[0].signature[0].data (end:0x00000376) 00000030 30 82 02 2e a0 03 02 01 02 02 10 53 41 e0 15 c4 |0..........SA...| 00000040 3a f8 a8 48 36 b9 a5 ff 69 14 88 30 0d 06 09 2a |:..H6...i..0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 2d 31 2b 30 29 |.H........0-1+0)| 00000060 06 03 55 04 03 13 22 41 53 55 53 54 65 4b 20 4d |..U..."ASUSTeK M| 00000070 6f 74 68 65 72 42 6f 61 72 64 20 50 4b 20 43 65 |otherBoard PK Ce| 00000080 72 74 69 66 69 63 61 74 65 30 1e 17 0d 31 31 31 |rtificate0...111| 00000090 32 32 36 32 33 33 34 35 30 5a 17 0d 33 31 31 32 |226233450Z..3112| 000000a0 32 36 32 33 33 34 34 39 5a 30 2d 31 2b 30 29 06 |26233449Z0-1+0).| 000000b0 03 55 04 03 13 22 41 53 55 53 54 65 4b 20 4d 6f |.U..."ASUSTeK Mo| 000000c0 74 68 65 72 42 6f 61 72 64 20 50 4b 20 43 65 72 |therBoard PK Cer| 000000d0 74 69 66 69 63 61 74 65 30 82 01 22 30 0d 06 09 |tificate0.."0...| 000000e0 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 |*.H.............| 000000f0 30 82 01 0a 02 82 01 01 00 d9 84 15 36 c5 d4 ce |0...........6...| 00000100 8a a1 56 16 a0 e8 74 cd 58 1e 2a 02 96 1b c4 37 |..V...t.X.*....7| 00000110 64 da 8c 6a 24 84 cd dc c4 68 04 15 c7 e9 cf 20 |d..j$....h..... | 00000120 a4 45 1a 42 f0 a3 9b 62 22 6e 2a 43 67 17 8d 4d |.E.B...b"n*Cg..M| 00000130 10 aa f8 dd f2 2a 9e 86 ba 91 d0 32 7e 95 be 01 |.....*.....2~...| 00000140 78 73 3a d3 98 7e 19 f8 16 0e 27 cc ea c5 be b5 |xs:..~....'.....| 00000150 80 7e e8 bc a8 17 41 b3 ea 55 34 19 53 d7 7e 7d |.~....A..U4.S.~}| 00000160 50 c7 5a b8 ef 54 f9 13 6e ab d6 45 cd 1d 02 94 |P.Z..T..n..E....| 00000170 e2 78 d7 88 a8 10 52 8d 7e ba f1 49 36 c0 68 70 |.x....R.~..I6.hp| 00000180 f9 d5 0c 5a fd 6b 1a 6f 88 c2 37 69 22 42 92 f3 |...Z.k.o..7i"B..| 00000190 9d ae ef 73 ec f4 0f 32 42 64 c3 e9 b9 89 dd 06 |...s...2Bd......| 000001a0 e5 cc 2f 6b f8 00 4e 91 64 f7 03 45 f0 4f a4 11 |../k..N.d..E.O..| 000001b0 83 e9 83 97 e9 a0 dc 2d c8 03 56 b4 df 61 a6 32 |.......-..V..a.2| 000001c0 a5 8b a6 1b 4e d8 1c a7 a3 f3 72 4e 72 f8 fe 69 |....N.....rNr..i| 000001d0 49 cf 61 f2 e6 59 96 58 b8 14 7c ca f5 e5 6b f0 |I.a..Y.X..|...k.| 000001e0 6d da f7 bc 08 5b 7f 57 e9 96 37 59 5a 70 79 57 |m....[.W..7YZpyW| 000001f0 0e c8 82 c8 91 7b 67 f9 2d 02 03 01 00 01 a3 62 |.....{g.-......b| 00000200 30 60 30 5e 06 03 55 1d 01 04 57 30 55 80 10 a2 |0`0^..U...W0U...| 00000210 8f 65 a6 6a 29 64 38 d8 d6 72 0d 3f 3d e3 e9 a1 |.e.j)d8..r.?=...| 00000220 2f 30 2d 31 2b 30 29 06 03 55 04 03 13 22 41 53 |/0-1+0)..U..."AS| 00000230 55 53 54 65 4b 20 4d 6f 74 68 65 72 42 6f 61 72 |USTeK MotherBoar| 00000240 64 20 50 4b 20 43 65 72 74 69 66 69 63 61 74 65 |d PK Certificate| 00000250 82 10 53 41 e0 15 c4 3a f8 a8 48 36 b9 a5 ff 69 |..SA...:..H6...i| 00000260 14 88 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 |..0...*.H.......| 00000270 00 03 82 01 01 00 73 27 1a 32 88 0e db 13 8d f5 |......s'.2......| 00000280 7e fc 94 f2 1a 27 6b c2 ca 79 d0 ba b6 58 bc df |~....'k..y...X..| 00000290 97 13 5a 4c dc a2 e4 90 39 7b 24 84 7d 2e a3 95 |..ZL....9{$.}...| 000002a0 96 39 a6 6b c2 a6 51 38 6f e5 0b af c0 91 0a 90 |.9.k..Q8o.......| 000002b0 3f 3e 5a e4 79 16 98 96 32 94 49 ae 00 28 18 aa |?>Z.y...2.I..(..| 000002c0 ef fb 54 95 93 c7 fc e4 89 ef 96 00 ce d6 c6 8a |..T.............| 000002d0 4d 85 ca 9c 6c fb 8a a7 43 60 36 5e 73 97 17 2f |M...l...C`6^s../| 000002e0 16 46 d0 ce f0 a0 07 77 62 4d 15 0e 22 f6 91 71 |.F.....wbM.."..q| 000002f0 1a 79 e1 85 1c 0b 2c 94 9f 9d 97 cf 49 b5 dd ea |.y....,.....I...| 00000300 6a e5 a7 61 ec 82 0d 95 e8 98 5c e8 72 c6 da 8d |j..a......\.r...| 00000310 df 21 ec 05 30 0f 79 b8 af e9 b0 2b c0 83 73 fe |.!..0.y....+..s.| 00000320 bf 9d 4a 6d da a5 a0 65 37 cf 2c 87 f1 2b c6 a3 |..Jm...e7.,..+..| 00000330 0e 92 64 57 1a 77 ed d9 47 40 47 da ea ff 23 98 |..dW.w..G@G...#.| 00000340 d1 25 b9 72 f5 38 3a b3 33 a5 5d f1 44 dc d8 63 |.%.r.8:.3.].D..c| 00000350 7d f9 2f 7d f1 d1 d0 95 c0 a6 75 a8 70 c9 c4 2b |}./}......u.p..+| 00000360 c0 45 04 d0 40 5b 75 7d e2 b2 0a 3c 1e 64 22 30 |.E..@[u}...<.d"0| 00000370 d2 02 84 c5 b7 bb |......| 00000376 efivar-39/tests/machine3/annotations/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000001102041455652431600261050ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 82 03 00 00 |....| esl[0].signature_list_size = 898 (0x382) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 66 03 00 00 |f...| esl[0].signature_size = 870 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 91 30 05 3b |.0.;| esl[0].signature[0].owner = {asus} 00000020 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.l.......;..| 0000002c 30 82 03 52 |0..R| esl[0].signature[0].data (end:0x00000382) 00000030 30 82 02 3a a0 03 02 01 02 02 10 da 83 b9 90 42 |0..:...........B| 00000040 2e bc 8c 44 1f 8d 8b 03 9a 65 a2 30 0d 06 09 2a |...D.....e.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 31 31 2f 30 2d |.H........011/0-| 00000060 06 03 55 04 03 13 26 41 53 55 53 54 65 4b 20 4d |..U...&ASUSTeK M| 00000070 6f 74 68 65 72 42 6f 61 72 64 20 53 57 20 4b 65 |otherBoard SW Ke| 00000080 79 20 43 65 72 74 69 66 69 63 61 74 65 30 1e 17 |y Certificate0..| 00000090 0d 31 31 31 32 32 36 32 33 33 35 30 35 5a 17 0d |.111226233505Z..| 000000a0 33 31 31 32 32 36 32 33 33 35 30 34 5a 30 31 31 |311226233504Z011| 000000b0 2f 30 2d 06 03 55 04 03 13 26 41 53 55 53 54 65 |/0-..U...&ASUSTe| 000000c0 4b 20 4d 6f 74 68 65 72 42 6f 61 72 64 20 53 57 |K MotherBoard SW| 000000d0 20 4b 65 79 20 43 65 72 74 69 66 69 63 61 74 65 | Key Certificate| 000000e0 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 000000f0 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 |........0.......| 00000100 00 8c f6 a6 eb 77 fc 83 8a a4 9f d5 f8 cf 3f 37 |.....w........?7| 00000110 f2 6e 2d 0a 62 c5 d8 9b 1d 16 0b 22 7f 29 5f 3a |.n-.b......".)_:| 00000120 26 df 53 97 8c 78 94 19 90 42 73 0f 85 c2 ff a4 |&.S..x...Bs.....| 00000130 85 7c 81 2e 0b 51 ba 56 23 27 92 3d a3 f2 dc e2 |.|...Q.V#'.=....| 00000140 77 84 9e 50 be 8a eb 51 34 a4 f8 ef 5d d7 51 fe |w..P...Q4...].Q.| 00000150 70 42 4c 42 06 ef 69 2c a2 d3 25 e1 26 57 23 85 |pBLB..i,..%.&W#.| 00000160 6d d0 a7 7b c0 45 28 7e 89 d5 b4 0a eb af 41 79 |m..{.E(~......Ay| 00000170 21 d2 d7 00 ec 48 f9 44 f6 5b be b6 25 24 f0 8e |!....H.D.[..%$..| 00000180 2e b4 52 3e e1 0e c1 a4 67 ea fe e5 93 cc b9 c4 |..R>....g.......| 00000190 36 21 cb 54 fa af 9d 9c 85 78 cc e5 88 f3 84 0c |6!.T.....x......| 000001a0 67 db 26 69 58 ca de 47 34 ec cf 2f b6 49 59 b5 |g.&iX..G4../.IY.| 000001b0 56 db 58 45 7b 21 9d 99 0b 5f de 57 16 a6 ab c8 |V.XE{!..._.W....| 000001c0 79 3f 9d 76 89 e2 09 f9 8d e2 63 37 fc 74 ea 73 |y?.v......c7.t.s| 000001d0 7e 70 ac 15 16 a5 ed 88 60 5f 33 ed 94 9e 0a 05 |~p......`_3.....| 000001e0 de c7 85 c3 c1 7a 54 fb 4e cb cb e8 5e 44 7c 39 |.....zT.N...^D|9| 000001f0 db 2d b2 b7 6c ce ca 2f 63 9d 16 4e a6 e5 ef d6 |.-..l../c..N....| 00000200 cf 02 03 01 00 01 a3 66 30 64 30 62 06 03 55 1d |.......f0d0b..U.| 00000210 01 04 5b 30 59 80 10 56 b0 8b 2a a7 fe cc f1 0c |..[0Y..V..*.....| 00000220 ed 87 62 dc d5 1d c3 a1 33 30 31 31 2f 30 2d 06 |..b.....3011/0-.| 00000230 03 55 04 03 13 26 41 53 55 53 54 65 4b 20 4d 6f |.U...&ASUSTeK Mo| 00000240 74 68 65 72 42 6f 61 72 64 20 53 57 20 4b 65 79 |therBoard SW Key| 00000250 20 43 65 72 74 69 66 69 63 61 74 65 82 10 da 83 | Certificate....| 00000260 b9 90 42 2e bc 8c 44 1f 8d 8b 03 9a 65 a2 30 0d |..B...D.....e.0.| 00000270 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 |..*.H...........| 00000280 01 00 02 cf 52 6f 0b 91 eb e4 3b b2 70 0c 07 2d |....Ro....;.p..-| 00000290 79 80 01 9e 4b 4d 92 bb dc 9e e5 e5 31 85 e3 9a |y...KM......1...| 000002a0 75 ed ca de 8c ee 28 34 01 83 14 47 9e 3a d4 43 |u.....(4...G.:.C| 000002b0 5b 2c c4 41 c8 40 7d b5 08 76 86 80 2b a8 00 9f |[,.A.@}..v..+...| 000002c0 b7 d3 b1 e6 60 5c 32 b0 a0 01 0f ba 36 8b b7 b5 |....`\2.....6...| 000002d0 4e 87 d5 b7 0a 2c bd bc 6a 43 3c ee 76 7c 76 20 |N....,..jC<.v|v | 000002e0 ed 39 91 a8 bf 70 1e d6 a8 1a 3e 81 36 6b 7d 1d |.9...p....>.6k}.| 000002f0 8d f6 f8 af 5b 38 53 6a 04 0d 7e ae 4d ee ab 02 |....[8Sj..~.M...| 00000300 d4 a4 a2 a9 cf b6 e3 66 a3 ca 4d 5d d4 18 61 4d |.......f..M]..aM| 00000310 da 83 28 4e aa 2a af da eb df 2a 20 bd 78 80 ef |..(N.*....* .x..| 00000320 d1 b0 dd 9b 77 db c9 25 39 4b cf a2 86 1a ac cc |....w..%9K......| 00000330 32 e7 87 d4 59 b2 03 c4 69 02 8f 17 c9 de 52 cb |2...Y...i.....R.| 00000340 e7 ab b8 35 c5 f8 33 06 03 93 52 cf b3 68 d2 b3 |...5..3...R..h..| 00000350 5c 1c e8 19 fe 75 26 ed d1 65 72 13 4d 69 34 5a |\....u&..er.Mi4Z| 00000360 9b 0c b4 e3 56 53 3c b4 67 27 f8 fa d3 20 da 37 |....VS<.g'... .7| 00000370 58 f6 ad e2 82 59 a2 b8 22 2f 9e 56 fe bc 17 49 |X....Y.."/.V...I| 00000380 1d af |..| 00000382 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b |.Y.....J....\+| esl[1].signature_type = {x509_cert} 00000390 f0 72 |.r| 00000392 79 03 00 00 |y...| esl[1].signature_list_size = 889 (0x379) 00000396 00 00 00 00 |....| esl[1].signature_header_size = 0 0000039a 5d 03 00 00 |]...| esl[1].signature_size = 861 0000039e esl[1].signature_header (end:0x0000039e) 0000039e 91 30 |.0| esl[1].signature[0].owner = {asus} 000003a0 05 3b 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.;.l.......;..| 000003ae 30 82 |0.| esl[1].signature[0].data (end:0x000006fb) 000003b0 03 49 30 82 02 31 a0 03 02 01 02 02 10 b8 e5 81 |.I0..1..........| 000003c0 e4 df 77 a5 bb 42 82 d5 cc fc 00 c0 71 30 0d 06 |..w..B......q0..| 000003d0 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 2e 31 2c |.*.H........0.1,| 000003e0 30 2a 06 03 55 04 03 13 23 41 53 55 53 54 65 4b |0*..U...#ASUSTeK| 000003f0 20 4e 6f 74 65 62 6f 6f 6b 20 53 57 20 4b 65 79 | Notebook SW Key| 00000400 20 43 65 72 74 69 66 69 63 61 74 65 30 1e 17 0d | Certificate0...| 00000410 31 31 31 32 32 37 30 30 31 38 35 33 5a 17 0d 33 |111227001853Z..3| 00000420 31 31 32 32 37 30 30 31 38 35 32 5a 30 2e 31 2c |11227001852Z0.1,| 00000430 30 2a 06 03 55 04 03 13 23 41 53 55 53 54 65 4b |0*..U...#ASUSTeK| 00000440 20 4e 6f 74 65 62 6f 6f 6b 20 53 57 20 4b 65 79 | Notebook SW Key| 00000450 20 43 65 72 74 69 66 69 63 61 74 65 30 82 01 22 | Certificate0.."| 00000460 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 00000470 82 01 0f 00 30 82 01 0a 02 82 01 01 00 9e 61 fa |....0.........a.| 00000480 74 2c 2a 88 17 c4 bd 77 19 0d b3 33 27 0c 0e 94 |t,*....w...3'...| 00000490 ec b0 8b 71 b3 08 77 b7 d2 08 9d 32 4f 5c f7 0c |...q..w....2O\..| 000004a0 cf e0 29 53 56 ed 24 91 d8 bd 53 2a 89 89 8c 74 |..)SV.$...S*...t| 000004b0 28 ab 16 2d 4f 9b 65 fc 63 7d ed 23 b6 97 5c 6d |(..-O.e.c}.#..\m| 000004c0 04 e4 15 7f dc f8 ba 6b 08 cc c9 21 e9 b5 de 8e |.......k...!....| 000004d0 03 28 12 63 f0 6a b6 e5 df 1d 72 28 cc 64 d6 63 |.(.c.j....r(.d.c| 000004e0 66 2f 04 52 6a 1d 25 7d c7 bd e0 78 fb 0c b7 37 |f/.Rj.%}...x...7| 000004f0 e5 ae f7 0d d6 b5 b4 bf f5 f1 c6 82 56 78 5c a8 |............Vx\.| 00000500 f3 53 2e f5 ec 15 3f 12 62 2f eb b6 79 79 86 ac |.S....?.b/..yy..| 00000510 76 ff b6 66 45 f5 33 da dd 25 d6 a7 bf f8 d9 db |v..fE.3..%......| 00000520 d3 f1 fa ce 0e 22 30 d7 d4 80 02 bd d3 2c 1e ec |....."0......,..| 00000530 46 2e 2f ca 0f 7a fa b9 5c ff 2b 16 c6 6a 6b 8d |F./..z..\.+..jk.| 00000540 94 64 92 7e f9 55 ee 96 00 4d 04 2e 4b 15 ed f1 |.d.~.U...M..K...| 00000550 08 49 6a 07 86 69 c8 c5 64 fa ad 2c 4f 02 50 e4 |.Ij..i..d..,O.P.| 00000560 1f 83 c7 2f 19 9f e8 a5 62 d9 51 32 18 b6 83 ca |.../....b.Q2....| 00000570 08 0a a1 ab a7 65 70 9c 1e 48 c3 0f 49 02 03 01 |.....ep..H..I...| 00000580 00 01 a3 63 30 61 30 5f 06 03 55 1d 01 04 58 30 |...c0a0_..U...X0| 00000590 56 80 10 00 65 11 e3 ca 0f 96 e8 8d 5b 04 a4 e7 |V...e.......[...| 000005a0 fe ce aa a1 30 30 2e 31 2c 30 2a 06 03 55 04 03 |....00.1,0*..U..| 000005b0 13 23 41 53 55 53 54 65 4b 20 4e 6f 74 65 62 6f |.#ASUSTeK Notebo| 000005c0 6f 6b 20 53 57 20 4b 65 79 20 43 65 72 74 69 66 |ok SW Key Certif| 000005d0 69 63 61 74 65 82 10 b8 e5 81 e4 df 77 a5 bb 42 |icate.......w..B| 000005e0 82 d5 cc fc 00 c0 71 30 0d 06 09 2a 86 48 86 f7 |......q0...*.H..| 000005f0 0d 01 01 0b 05 00 03 82 01 01 00 31 18 f4 ee e3 |...........1....| 00000600 72 ba be 33 44 61 74 19 1f 66 ac 5c fd 1d 9a 26 |r..3Dat..f.\...&| 00000610 75 d0 14 cd 68 38 b3 a8 3f 4f b4 4a e9 1e 21 f2 |u...h8..?O.J..!.| 00000620 c9 ee 37 96 26 be 1d 58 9b ad 21 ce 58 79 53 d3 |..7.&..X..!.XyS.| 00000630 ff 38 ef 8f 22 cd 90 0e c6 32 21 75 9b 5a ab af |.8.."....2!u.Z..| 00000640 08 ff 05 cd 2b f8 8c e7 97 47 bb 78 e4 5f 56 47 |....+....G.x._VG| 00000650 d2 bc c8 a5 95 cb 76 89 5c 65 24 02 18 06 9c 12 |......v.\e$.....| 00000660 5f ef e0 5c 19 45 38 96 df 7a 60 5d 61 ba 4d c8 |_..\.E8..z`]a.M.| 00000670 7b 6e 8d 8c 6e 1d a9 e5 92 35 a2 4f 36 d3 40 ad |{n..n....5.O6.@.| 00000680 d7 40 12 ab 6c 48 8d 18 92 e4 00 52 03 df 14 ac |.@..lH.....R....| 00000690 66 3f 6a ae 42 3a 06 50 aa a5 0d 40 a7 7b eb fd |f?j.B:.P...@.{..| 000006a0 41 49 ff eb a3 b4 50 4f f7 54 13 3b 1f 8e b4 45 |AI....PO.T.;...E| 000006b0 04 20 42 74 fe 78 3d be 7c db a7 2a 2a 9d 06 48 |. Bt.x=.|..**..H| 000006c0 c0 9a 02 23 af f2 98 07 95 de 3b 30 73 ec 3e 73 |...#......;0s.>s| 000006d0 58 8f 07 53 40 96 d8 24 d9 66 80 7a 75 8d b7 39 |X..S@..$.f.zu..9| 000006e0 27 10 89 7a b4 53 bf 3b c2 e2 97 93 37 8a 9d 4d |'..z.S.;....7..M| 000006f0 23 6e ac eb 0d 53 21 4d 0b 34 13 |#n...S!M.4.| 000006fb a1 59 c0 a5 e4 |.Y...| esl[2].signature_type = {x509_cert} 00000700 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |..J....\+.r| 0000070b 40 06 00 00 |@...| esl[2].signature_list_size = 1600 (0x640) 0000070f 00 |.| esl[2].signature_header_size = 0 00000710 00 00 00 |...| 00000713 24 06 00 00 |$...| esl[2].signature_size = 1572 00000717 esl[2].signature_header (end:0x00000717) 00000717 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[2].signature[0].owner = {microsoft} 00000720 60 28 f4 e7 8f 78 4b |`(...xK| 00000727 30 82 06 10 30 82 03 f8 a0 |0...0....| esl[2].signature[0].data (end:0x00000d3b) 00000730 03 02 01 02 02 0a 61 08 d3 c4 00 00 00 00 00 04 |......a.........| 00000740 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 |0...*.H........0| 00000750 81 91 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 |..1.0...U....US1| 00000760 13 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e |.0...U....Washin| 00000770 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 |gton1.0...U....R| 00000780 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 |edmond1.0...U...| 00000790 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |.Microsoft Corpo| 000007a0 72 61 74 69 6f 6e 31 3b 30 39 06 03 55 04 03 13 |ration1;09..U...| 000007b0 32 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |2Microsoft Corpo| 000007c0 72 61 74 69 6f 6e 20 54 68 69 72 64 20 50 61 72 |ration Third Par| 000007d0 74 79 20 4d 61 72 6b 65 74 70 6c 61 63 65 20 52 |ty Marketplace R| 000007e0 6f 6f 74 30 1e 17 0d 31 31 30 36 32 37 32 31 32 |oot0...110627212| 000007f0 32 34 35 5a 17 0d 32 36 30 36 32 37 32 31 33 32 |245Z..2606272132| 00000800 34 35 5a 30 81 81 31 0b 30 09 06 03 55 04 06 13 |45Z0..1.0...U...| 00000810 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 61 |.US1.0...U....Wa| 00000820 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 04 |shington1.0...U.| 00000830 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 |...Redmond1.0...| 00000840 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 43 |U....Microsoft C| 00000850 6f 72 70 6f 72 61 74 69 6f 6e 31 2b 30 29 06 03 |orporation1+0)..| 00000860 55 04 03 13 22 4d 69 63 72 6f 73 6f 66 74 20 43 |U..."Microsoft C| 00000870 6f 72 70 6f 72 61 74 69 6f 6e 20 55 45 46 49 20 |orporation UEFI | 00000880 43 41 20 32 30 31 31 30 82 01 22 30 0d 06 09 2a |CA 20110.."0...*| 00000890 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 |.H.............0| 000008a0 82 01 0a 02 82 01 01 00 a5 08 6c 4c c7 45 09 6a |..........lL.E.j| 000008b0 4b 0c a4 c0 87 7f 06 75 0c 43 01 54 64 e0 16 7f |K......u.C.Td...| 000008c0 07 ed 92 7d 0b b2 73 bf 0c 0a c6 4a 45 61 a0 c5 |...}..s....JEa..| 000008d0 16 2d 96 d3 f5 2b a0 fb 4d 49 9b 41 80 90 3c b9 |.-...+..MI.A..<.| 000008e0 54 fd e6 bc d1 9d c4 a4 18 8a 7f 41 8a 5c 59 83 |T..........A.\Y.| 000008f0 68 32 bb 8c 47 c9 ee 71 bc 21 4f 9a 8a 7c ff 44 |h2..G..q.!O..|.D| 00000900 3f 8d 8f 32 b2 26 48 ae 75 b5 ee c9 4c 1e 4a 19 |?..2.&H.u...L.J.| 00000910 7e e4 82 9a 1d 78 77 4d 0c b0 bd f6 0f d3 16 d3 |~....xwM........| 00000920 bc fa 2b a5 51 38 5d f5 fb ba db 78 02 db ff ec |..+.Q8]....x....| 00000930 0a 1b 96 d5 83 b8 19 13 e9 b6 c0 7b 40 7b e1 1f |...........{@{..| 00000940 28 27 c9 fa ef 56 5e 1c e6 7e 94 7e c0 f0 44 b2 |('...V^..~.~..D.| 00000950 79 39 e5 da b2 62 8b 4d bf 38 70 e2 68 24 14 c9 |y9...b.M.8p.h$..| 00000960 33 a4 08 37 d5 58 69 5e d3 7c ed c1 04 53 08 e7 |3..7.Xi^.|...S..| 00000970 4e b0 2a 87 63 08 61 6f 63 15 59 ea b2 2b 79 d7 |N.*.c.aoc.Y..+y.| 00000980 0c 61 67 8a 5b fd 5e ad 87 7f ba 86 67 4f 71 58 |.ag.[.^.....gOqX| 00000990 12 22 04 22 22 ce 8b ef 54 71 00 ce 50 35 58 76 |.".""...Tq..P5Xv| 000009a0 95 08 ee 6a b1 a2 01 d5 02 03 01 00 01 a3 82 01 |...j............| 000009b0 76 30 82 01 72 30 12 06 09 2b 06 01 04 01 82 37 |v0..r0...+.....7| 000009c0 15 01 04 05 02 03 01 00 01 30 23 06 09 2b 06 01 |.........0#..+..| 000009d0 04 01 82 37 15 02 04 16 04 14 f8 c1 6b b7 7f 77 |...7........k..w| 000009e0 53 4a f3 25 37 1d 4e a1 26 7b 0f 20 70 80 30 1d |SJ.%7.N.&{. p.0.| 000009f0 06 03 55 1d 0e 04 16 04 14 13 ad bf 43 09 bd 82 |..U.........C...| 00000a00 70 9c 8c d5 4f 31 6e d5 22 98 8a 1b d4 30 19 06 |p...O1n."....0..| 00000a10 09 2b 06 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 |.+.....7.......S| 00000a20 00 75 00 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 |.u.b.C.A0...U...| 00000a30 04 03 02 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 |.....0...U......| 00000a40 05 30 03 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 |.0....0...U.#..0| 00000a50 16 80 14 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 |...EfRC.~X...N.#| 00000a60 55 08 3b 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 |U.;:"j.0\..U...U| 00000a70 30 53 30 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f |0S0Q.O.M.Khttp:/| 00000a80 2f 63 72 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 |/crl.microsoft.c| 00000a90 6f 6d 2f 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 |om/pki/crl/produ| 00000aa0 63 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 |cts/MicCorThiPar| 00000ab0 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 |MarRoo_2010-10-0| 00000ac0 35 2e 63 72 6c 30 60 06 08 2b 06 01 05 05 07 01 |5.crl0`..+......| 00000ad0 01 04 54 30 52 30 50 06 08 2b 06 01 05 05 07 30 |..T0R0P..+.....0| 00000ae0 02 86 44 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 |..Dhttp://www.mi| 00000af0 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f |crosoft.com/pki/| 00000b00 63 65 72 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 |certs/MicCorThiP| 00000b10 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 |arMarRoo_2010-10| 00000b20 2d 30 35 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 |-05.crt0...*.H..| 00000b30 0d 01 01 0b 05 00 03 82 02 01 00 35 08 42 ff 30 |...........5.B.0| 00000b40 cc ce f7 76 0c ad 10 68 58 35 29 46 32 76 27 7c |...v...hX5)F2v'|| 00000b50 ef 12 41 27 42 1b 4a aa 6d 81 38 48 59 13 55 f3 |..A'B.J.m.8HY.U.| 00000b60 e9 58 34 a6 16 0b 82 aa 5d ad 82 da 80 83 41 06 |.X4.....].....A.| 00000b70 8f b4 1d f2 03 b9 f3 1a 5d 1b f1 50 90 f9 b3 55 |........]..P...U| 00000b80 84 42 28 1c 20 bd b2 ae 51 14 c5 c0 ac 97 95 21 |.B(. ...Q......!| 00000b90 1c 90 db 0f fc 77 9e 95 73 91 88 ca bd bd 52 b9 |.....w..s.....R.| 00000ba0 05 50 0d df 57 9e a0 61 ed 0d e5 6d 25 d9 40 0f |.P..W..a...m%.@.| 00000bb0 17 40 c8 ce a3 4a c2 4d af 9a 12 1d 08 54 8f bd |.@...J.M.....T..| 00000bc0 c7 bc b9 2b 3d 49 2b 1f 32 fc 6a 21 69 4f 9b c8 |...+=I+.2.j!iO..| 00000bd0 7e 42 34 fc 36 06 17 8b 8f 20 40 c0 b3 9a 25 75 |~B4.6.... @...%u| 00000be0 27 cd c9 03 a3 f6 5d d1 e7 36 54 7a b9 50 b5 d3 |'.....]..6Tz.P..| 00000bf0 12 d1 07 bf bb 74 df dc 1e 8f 80 d5 ed 18 f4 2f |.....t........./| 00000c00 14 16 6b 2f de 66 8c b0 23 e5 c7 84 d8 ed ea c1 |..k/.f..#.......| 00000c10 33 82 ad 56 4b 18 2d f1 68 95 07 cd cf f0 72 f0 |3..VK.-.h.....r.| 00000c20 ae bb dd 86 85 98 2c 21 4c 33 2b f0 0f 4a f0 68 |......,!L3+..J.h| 00000c30 87 b5 92 55 32 75 a1 6a 82 6a 3c a3 25 11 a4 ed |...U2u.j.j<.%...| 00000c40 ad d7 04 ae cb d8 40 59 a0 84 d1 95 4c 62 91 22 |......@Y....Lb."| 00000c50 1a 74 1d 8c 3d 47 0e 44 a6 e4 b0 9b 34 35 b1 fa |.t..=G.D....45..| 00000c60 b6 53 a8 2c 81 ec a4 05 71 c8 9d b8 ba e8 1b 44 |.S.,....q......D| 00000c70 66 e4 47 54 0e 8e 56 7f b3 9f 16 98 b2 86 d0 68 |f.GT..V........h| 00000c80 3e 90 23 b5 2f 5e 8f 50 85 8d c6 8d 82 5f 41 a1 |>.#./^.P....._A.| 00000c90 f4 2e 0d e0 99 d2 6c 75 e4 b6 69 b5 21 86 fa 07 |......lu..i.!...| 00000ca0 d1 f6 e2 4d d1 da ad 2c 77 53 1e 25 32 37 c7 6c |...M...,wS.%27.l| 00000cb0 52 72 95 86 b0 f1 35 61 6a 19 f5 b2 3b 81 50 56 |Rr....5aj...;.PV| 00000cc0 a6 32 2d fe a2 89 f9 42 86 27 18 55 a1 82 ca 5a |.2-....B.'.U...Z| 00000cd0 9b f8 30 98 54 14 a6 47 96 25 2f c8 26 e4 41 94 |..0.T..G.%/.&.A.| 00000ce0 1a 5c 02 3f e5 96 e3 85 5b 3c 3e 3f bb 47 16 72 |.\.?....[<>?.G.r| 00000cf0 55 e2 25 22 b1 d9 7b e7 03 06 2a a3 f7 1e 90 46 |U.%"..{...*....F| 00000d00 c3 00 0d d6 19 89 e3 0e 35 27 62 03 71 15 a6 ef |........5'b.q...| 00000d10 d0 27 a0 a0 59 37 60 f8 38 94 b8 e0 78 70 f8 ba |.'..Y7`.8...xp..| 00000d20 4c 86 87 94 f6 e0 ae 02 45 ee 65 c2 b6 a3 7e 69 |L.......E.e...~i| 00000d30 16 75 07 92 9b f5 a6 bc 59 83 58 |.u......Y.X| 00000d3b a1 59 c0 a5 e4 |.Y...| esl[3].signature_type = {x509_cert} 00000d40 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |..J....\+.r| 00000d4b 07 06 00 00 |....| esl[3].signature_list_size = 1543 (0x607) 00000d4f 00 |.| esl[3].signature_header_size = 0 00000d50 00 00 00 |...| 00000d53 eb 05 00 00 |....| esl[3].signature_size = 1515 00000d57 esl[3].signature_header (end:0x00000d57) 00000d57 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[3].signature[0].owner = {microsoft} 00000d60 60 28 f4 e7 8f 78 4b |`(...xK| 00000d67 30 82 05 d7 30 82 03 bf a0 |0...0....| esl[3].signature[0].data (end:0x00001342) 00000d70 03 02 01 02 02 0a 61 07 76 56 00 00 00 00 00 08 |......a.vV......| 00000d80 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 |0...*.H........0| 00000d90 81 88 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 |..1.0...U....US1| 00000da0 13 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e |.0...U....Washin| 00000db0 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 |gton1.0...U....R| 00000dc0 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 |edmond1.0...U...| 00000dd0 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |.Microsoft Corpo| 00000de0 72 61 74 69 6f 6e 31 32 30 30 06 03 55 04 03 13 |ration1200..U...| 00000df0 29 4d 69 63 72 6f 73 6f 66 74 20 52 6f 6f 74 20 |)Microsoft Root | 00000e00 43 65 72 74 69 66 69 63 61 74 65 20 41 75 74 68 |Certificate Auth| 00000e10 6f 72 69 74 79 20 32 30 31 30 30 1e 17 0d 31 31 |ority 20100...11| 00000e20 31 30 31 39 31 38 34 31 34 32 5a 17 0d 32 36 31 |1019184142Z..261| 00000e30 30 31 39 31 38 35 31 34 32 5a 30 81 84 31 0b 30 |019185142Z0..1.0| 00000e40 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000e50 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000e60 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000e70 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 00000e80 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000e90 6e 31 2e 30 2c 06 03 55 04 03 13 25 4d 69 63 72 |n1.0,..U...%Micr| 00000ea0 6f 73 6f 66 74 20 57 69 6e 64 6f 77 73 20 50 72 |osoft Windows Pr| 00000eb0 6f 64 75 63 74 69 6f 6e 20 50 43 41 20 32 30 31 |oduction PCA 201| 00000ec0 31 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 |10.."0...*.H....| 00000ed0 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 |.........0......| 00000ee0 01 00 dd 0c bb a2 e4 2e 09 e3 e7 c5 f7 96 69 bc |..............i.| 00000ef0 00 21 bd 69 33 33 ef ad 04 cb 54 80 ee 06 83 bb |.!.i33....T.....| 00000f00 c5 20 84 d9 f7 d2 8b f3 38 b0 ab a4 ad 2d 7c 62 |. ......8....-|b| 00000f10 79 05 ff e3 4a 3f 04 35 20 70 e3 c4 e7 6b e0 9c |y...J?.5 p...k..| 00000f20 c0 36 75 e9 8a 31 dd 8d 70 e5 dc 37 b5 74 46 96 |.6u..1..p..7.tF.| 00000f30 28 5b 87 60 23 2c bf dc 47 a5 67 f7 51 27 9e 72 |([.`#,..G.g.Q'.r| 00000f40 eb 07 a6 c9 b9 1e 3b 53 35 7c e5 d3 ec 27 b9 87 |......;S5|...'..| 00000f50 1c fe b9 c9 23 09 6f a8 46 91 c1 6e 96 3c 41 d3 |....#.o.F..n.| 000010f0 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f |http://www.micro| 00001100 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 |soft.com/pki/cer| 00001110 74 73 2f 4d 69 63 52 6f 6f 43 65 72 41 75 74 5f |ts/MicRooCerAut_| 00001120 32 30 31 30 2d 30 36 2d 32 33 2e 63 72 74 30 0d |2010-06-23.crt0.| 00001130 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 02 |..*.H...........| 00001140 01 00 14 fc 7c 71 51 a5 79 c2 6e b2 ef 39 3e bc |....|qQ.y.n..9>.| 00001150 3c 52 0f 6e 2b 3f 10 13 73 fe a8 68 d0 48 a6 34 |.\`| 00001220 ec df 03 10 a8 d3 09 e9 f4 f6 96 85 b6 7f 51 88 |..............Q.| 00001230 66 47 19 8d a2 b0 12 3d 81 2a 68 05 77 bb 91 4c |fG.....=.*h.w..L| 00001240 62 7b b6 c1 07 c7 ba 7a 87 34 03 0e 4b 62 7a 99 |b{.....z.4..Kbz.| 00001250 e9 ca fc ce 4a 37 c9 2d a4 57 7c 1c fe 3d dc b8 |....J7.-.W|..=..| 00001260 0f 5a fa d6 c4 b3 02 85 02 3a ea b3 d9 6e e4 69 |.Z.......:...n.i| 00001270 21 37 de 81 d1 f6 75 19 05 67 d3 93 57 5e 29 1b |!7....u..g..W^).| 00001280 39 c8 ee 2d e1 cd e4 45 73 5b d0 d2 ce 7a ab 16 |9..-...Es[...z..| 00001290 19 82 46 58 d0 5e 9d 81 b3 67 af 6c 35 f2 bc e5 |..FX.^...g.l5...| 000012a0 3f 24 e2 35 a2 0a 75 06 f6 18 56 99 d4 78 2c d1 |?$.5..u...V..x,.| 000012b0 05 1b eb d0 88 01 9d aa 10 f1 05 df ba 7e 2c 63 |.............~,c| 000012c0 b7 06 9b 23 21 c4 f9 78 6c e2 58 17 06 36 2b 91 |...#!..xl.X..6+.| 000012d0 12 03 cc a4 d9 f2 2d ba f9 94 9d 40 ed 18 45 f1 |......-....@..E.| 000012e0 ce 8a 5c 6b 3e ab 03 d3 70 18 2a 0a 6a e0 5f 47 |..\k>...p.*.j._G| 000012f0 d1 d5 63 0a 32 f2 af d7 36 1f 2a 70 5a e5 42 59 |..c.2...6.*pZ.BY| 00001300 08 71 4b 57 ba 7e 83 81 f0 21 3c f4 1c c1 c5 b9 |.qKW.~...!<.....| 00001310 90 93 0e 88 45 93 86 e9 b1 20 99 be 98 cb c5 95 |....E.... ......| 00001320 a4 5d 62 d6 a0 63 08 20 bd 75 10 77 7d 3d f3 45 |.]b..c. .u.w}=.E| 00001330 b9 9f 97 9f cb 57 80 6f 33 a9 04 cf 77 a4 62 1c |.....W.o3...w.b.| 00001340 59 7e |Y~| 00001342 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b |.Y.....J....\+| esl[4].signature_type = {x509_cert} 00001350 f0 72 |.r| 00001352 64 04 00 00 |d...| esl[4].signature_list_size = 1124 (0x464) 00001356 00 00 00 00 |....| esl[4].signature_header_size = 0 0000135a 48 04 00 00 |H...| esl[4].signature_size = 1096 0000135e esl[4].signature_header (end:0x0000135e) 0000135e e4 0a |..| esl[4].signature[0].owner = {canonical} 00001360 c4 6d e8 2e 4c 9c a3 14 0f c7 b2 00 87 10 |.m..L.........| 0000136e 30 82 |0.| esl[4].signature[0].data (end:0x000017a6) 00001370 04 34 30 82 03 1c a0 03 02 01 02 02 09 00 b9 41 |.40............A| 00001380 24 a0 18 2c 92 67 30 0d 06 09 2a 86 48 86 f7 0d |$..,.g0...*.H...| 00001390 01 01 0b 05 00 30 81 84 31 0b 30 09 06 03 55 04 |.....0..1.0...U.| 000013a0 06 13 02 47 42 31 14 30 12 06 03 55 04 08 0c 0b |...GB1.0...U....| 000013b0 49 73 6c 65 20 6f 66 20 4d 61 6e 31 10 30 0e 06 |Isle of Man1.0..| 000013c0 03 55 04 07 0c 07 44 6f 75 67 6c 61 73 31 17 30 |.U....Douglas1.0| 000013d0 15 06 03 55 04 0a 0c 0e 43 61 6e 6f 6e 69 63 61 |...U....Canonica| 000013e0 6c 20 4c 74 64 2e 31 34 30 32 06 03 55 04 03 0c |l Ltd.1402..U...| 000013f0 2b 43 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 20 |+Canonical Ltd. | 00001400 4d 61 73 74 65 72 20 43 65 72 74 69 66 69 63 61 |Master Certifica| 00001410 74 65 20 41 75 74 68 6f 72 69 74 79 30 1e 17 0d |te Authority0...| 00001420 31 32 30 34 31 32 31 31 31 32 35 31 5a 17 0d 34 |120412111251Z..4| 00001430 32 30 34 31 31 31 31 31 32 35 31 5a 30 81 84 31 |20411111251Z0..1| 00001440 0b 30 09 06 03 55 04 06 13 02 47 42 31 14 30 12 |.0...U....GB1.0.| 00001450 06 03 55 04 08 0c 0b 49 73 6c 65 20 6f 66 20 4d |..U....Isle of M| 00001460 61 6e 31 10 30 0e 06 03 55 04 07 0c 07 44 6f 75 |an1.0...U....Dou| 00001470 67 6c 61 73 31 17 30 15 06 03 55 04 0a 0c 0e 43 |glas1.0...U....C| 00001480 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 31 34 30 |anonical Ltd.140| 00001490 32 06 03 55 04 03 0c 2b 43 61 6e 6f 6e 69 63 61 |2..U...+Canonica| 000014a0 6c 20 4c 74 64 2e 20 4d 61 73 74 65 72 20 43 65 |l Ltd. Master Ce| 000014b0 72 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 |rtificate Author| 000014c0 69 74 79 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 |ity0.."0...*.H..| 000014d0 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 |...........0....| 000014e0 82 01 01 00 bf 5b 3a 16 74 ee 21 5d ae 61 ed 9d |.....[:.t.!].a..| 000014f0 56 ac bd de de 72 f3 dd 7e 2d 4c 62 0f ac c0 6d |V....r..~-Lb...m| 00001500 48 08 11 cf 8d 8b fb 61 1f 27 cc 11 6e d9 55 3d |H......a.'..n.U=| 00001510 39 54 eb 40 3b b1 bb e2 85 34 79 ca f7 7b bf ba |9T.@;....4y..{..| 00001520 7a c8 10 2d 19 7d ad 59 cf a6 d4 e9 4e 0f da ae |z..-.}.Y....N...| 00001530 52 ea 4c 9e 90 ce c6 99 0d 4e 67 65 78 5d f9 d1 |R.L......Ngex]..| 00001540 d5 38 4a 4a 7a 8f 93 9c 7f 1a a3 85 db ce fa 8b |.8JJz...........| 00001550 f7 c2 a2 21 2d 9b 54 41 35 10 57 13 8d 6c bc 29 |...!-.TA5.W..l.)| 00001560 06 50 4a 7e ea 99 a9 68 a7 3b c7 07 1b 32 9e a0 |.PJ~...h.;...2..| 00001570 19 87 0e 79 bb 68 99 2d 7e 93 52 e5 f6 eb c9 9b |...y.h.-~.R.....| 00001580 f9 2b ed b8 68 49 bc d9 95 50 40 5b c5 b2 71 aa |.+..hI...P@[..q.| 00001590 eb 5c 57 de 71 f9 40 0a dd 5b ac 1e 84 2d 50 1a |.\W.q.@..[...-P.| 000015a0 52 d6 e1 f3 6b 6e 90 64 4f 5b b4 eb 20 e4 61 10 |R...kn.dO[.. .a.| 000015b0 da 5a f0 ea e4 42 d7 01 c4 fe 21 1f d9 b9 c0 54 |.Z...B....!....T| 000015c0 95 42 81 52 72 1f 49 64 7a c8 6c 24 f1 08 70 0b |.B.Rr.Idz.l$..p.| 000015d0 4d a5 a0 32 d1 a0 1c 57 a8 4d e3 af a5 8e 05 05 |M..2...W.M......| 000015e0 3e 10 43 a1 02 03 01 00 01 a3 81 a6 30 81 a3 30 |>.C.........0..0| 000015f0 1d 06 03 55 1d 0e 04 16 04 14 ad 91 99 0b c2 2a |...U...........*| 00001600 b1 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 1f |.....#.eZ&.4Zc0.| 00001610 06 03 55 1d 23 04 18 30 16 80 14 ad 91 99 0b c2 |..U.#..0........| 00001620 2a b1 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 |*.....#.eZ&.4Zc0| 00001630 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 01 01 ff |...U.......0....| 00001640 30 0b 06 03 55 1d 0f 04 04 03 02 01 86 30 43 06 |0...U........0C.| 00001650 03 55 1d 1f 04 3c 30 3a 30 38 a0 36 a0 34 86 32 |.U...<0:08.6.4.2| 00001660 68 74 74 70 3a 2f 2f 77 77 77 2e 63 61 6e 6f 6e |http://www.canon| 00001670 69 63 61 6c 2e 63 6f 6d 2f 73 65 63 75 72 65 2d |ical.com/secure-| 00001680 62 6f 6f 74 2d 6d 61 73 74 65 72 2d 63 61 2e 63 |boot-master-ca.c| 00001690 72 6c 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 |rl0...*.H.......| 000016a0 00 03 82 01 01 00 3f 7d f6 76 a5 b3 83 b4 2b 7a |......?}.v....+z| 000016b0 d0 6d 52 1a 03 83 c4 12 a7 50 9c 47 92 cc c0 94 |.mR......P.G....| 000016c0 77 82 d2 ae 57 b3 99 04 f5 32 3a c6 55 1d 07 db |w...W....2:.U...| 000016d0 12 a9 56 fa d8 d4 76 20 eb e4 c3 51 db 9a 5c 9c |..V...v ...Q..\.| 000016e0 92 3f 18 73 da 94 6a a1 99 38 8c a4 88 6d c1 fc |.?.s..j..8...m..| 000016f0 39 71 d0 74 76 16 03 3e 56 23 35 d5 55 47 5b 1a |9q.tv..>V#5.UG[.| 00001700 1d 41 c2 d3 12 4c dc ff ae 0a 92 9c 62 0a 17 01 |.A...L......b...| 00001710 9c 73 e0 5e b1 fd bc d6 b5 19 11 7a 7e cd 3e 03 |.s.^.......z~.>.| 00001720 7e 66 db 5b a8 c9 39 48 51 ff 53 e1 9c 31 53 91 |~f.[..9HQ.S..1S.| 00001730 1b 3b 10 75 03 17 ba e6 81 02 80 94 70 4c 46 b7 |.;.u........pLF.| 00001740 94 b0 3d 15 cd 1f 8e 02 e0 68 02 8f fb f9 47 1d |..=......h....G.| 00001750 7d a2 01 c6 07 51 c4 9a cc ed dd cf a3 5d ed 92 |}....Q.......]..| 00001760 bb be d1 fd e6 ec 1f 33 51 73 04 be 3c 72 b0 7d |.......3Qs.....| 00001790 14 db ce 03 0e 0b 66 c4 1c 6d bd b8 27 77 c1 42 |......f..m..'w.B| 000017a0 94 bd fc 6a 0a bc |...j..| 000017a6 26 16 c4 c1 4c 50 92 40 ac a9 |&...LP.@..| esl[5].signature_type = {sha256} 000017b0 41 f9 36 93 43 28 |A.6.C(| 000017b6 0c 01 00 00 |....| esl[5].signature_list_size = 268 (0x10c) 000017ba 00 00 00 00 |....| esl[5].signature_header_size = 0 000017be 30 00 |0.| esl[5].signature_size = 48 000017c0 00 00 |..| 000017c2 esl[5].signature_header (end:0x000017c2) 000017c2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[0].owner = {zero} 000017d0 00 00 |..| 000017d2 f5 8f bd f7 1b e8 c3 7c bb d6 94 4e 47 2c |.......|...NG,| esl[5].signature[0].data (end:0x000017f2) 000017e0 45 0b 10 43 81 7b 97 29 14 48 7c 22 10 33 f3 07 |E..C.{.).H|".3..| 000017f0 9e 43 |.C| 000017f2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[1].owner = {zero} 00001800 00 00 |..| 00001802 04 97 01 57 de 52 cd ae 14 cf 17 ee 36 98 |...W.R......6.| esl[5].signature[1].data (end:0x00001822) 00001810 81 d6 24 5b 3a 6a b6 35 2e ab ae e5 88 a0 58 4b |..$[:j.5......XK| 00001820 03 03 |..| 00001822 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[2].owner = {zero} 00001830 00 00 |..| 00001832 f1 6b 5f c3 61 18 3f 58 71 20 e6 02 c0 d6 |.k_.a.?Xq ....| esl[5].signature[2].data (end:0x00001852) 00001840 57 73 af df e7 86 12 41 84 fa 70 80 52 58 d7 6d |Ws.....A..p.RX.m| 00001850 59 4c |YL| 00001852 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[3].owner = {zero} 00001860 00 00 |..| 00001862 7e 02 1f 15 e3 a6 7b 75 ac e8 84 99 9b ed |~.....{u......| esl[5].signature[3].data (end:0x00001882) 00001870 ff e3 42 13 79 2a 61 1e 40 e5 62 e8 7e 6b 9a 0c |..B.y*a.@.b.~k..| 00001880 b2 82 |..| 00001882 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[4].owner = {zero} 00001890 00 00 |..| 00001892 a5 d1 09 b2 af a3 fa 90 87 8f 70 38 2b 23 |..........p8+#| esl[5].signature[4].data (end:0x000018b2) 000018a0 88 fc d2 fe ae ae 8a 51 b8 0a dd 04 8e 9f 87 6b |.......Q.......k| 000018b0 2a 4e |*N| 000018b2 efivar-39/tests/machine3/annotations/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000001102041455652431600273100ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 82 03 00 00 |....| esl[0].signature_list_size = 898 (0x382) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 66 03 00 00 |f...| esl[0].signature_size = 870 0000001c esl[0].signature_header (end:0x0000001c) 0000001c 91 30 05 3b |.0.;| esl[0].signature[0].owner = {asus} 00000020 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.l.......;..| 0000002c 30 82 03 52 |0..R| esl[0].signature[0].data (end:0x00000382) 00000030 30 82 02 3a a0 03 02 01 02 02 10 da 83 b9 90 42 |0..:...........B| 00000040 2e bc 8c 44 1f 8d 8b 03 9a 65 a2 30 0d 06 09 2a |...D.....e.0...*| 00000050 86 48 86 f7 0d 01 01 0b 05 00 30 31 31 2f 30 2d |.H........011/0-| 00000060 06 03 55 04 03 13 26 41 53 55 53 54 65 4b 20 4d |..U...&ASUSTeK M| 00000070 6f 74 68 65 72 42 6f 61 72 64 20 53 57 20 4b 65 |otherBoard SW Ke| 00000080 79 20 43 65 72 74 69 66 69 63 61 74 65 30 1e 17 |y Certificate0..| 00000090 0d 31 31 31 32 32 36 32 33 33 35 30 35 5a 17 0d |.111226233505Z..| 000000a0 33 31 31 32 32 36 32 33 33 35 30 34 5a 30 31 31 |311226233504Z011| 000000b0 2f 30 2d 06 03 55 04 03 13 26 41 53 55 53 54 65 |/0-..U...&ASUSTe| 000000c0 4b 20 4d 6f 74 68 65 72 42 6f 61 72 64 20 53 57 |K MotherBoard SW| 000000d0 20 4b 65 79 20 43 65 72 74 69 66 69 63 61 74 65 | Key Certificate| 000000e0 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 |0.."0...*.H.....| 000000f0 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 |........0.......| 00000100 00 8c f6 a6 eb 77 fc 83 8a a4 9f d5 f8 cf 3f 37 |.....w........?7| 00000110 f2 6e 2d 0a 62 c5 d8 9b 1d 16 0b 22 7f 29 5f 3a |.n-.b......".)_:| 00000120 26 df 53 97 8c 78 94 19 90 42 73 0f 85 c2 ff a4 |&.S..x...Bs.....| 00000130 85 7c 81 2e 0b 51 ba 56 23 27 92 3d a3 f2 dc e2 |.|...Q.V#'.=....| 00000140 77 84 9e 50 be 8a eb 51 34 a4 f8 ef 5d d7 51 fe |w..P...Q4...].Q.| 00000150 70 42 4c 42 06 ef 69 2c a2 d3 25 e1 26 57 23 85 |pBLB..i,..%.&W#.| 00000160 6d d0 a7 7b c0 45 28 7e 89 d5 b4 0a eb af 41 79 |m..{.E(~......Ay| 00000170 21 d2 d7 00 ec 48 f9 44 f6 5b be b6 25 24 f0 8e |!....H.D.[..%$..| 00000180 2e b4 52 3e e1 0e c1 a4 67 ea fe e5 93 cc b9 c4 |..R>....g.......| 00000190 36 21 cb 54 fa af 9d 9c 85 78 cc e5 88 f3 84 0c |6!.T.....x......| 000001a0 67 db 26 69 58 ca de 47 34 ec cf 2f b6 49 59 b5 |g.&iX..G4../.IY.| 000001b0 56 db 58 45 7b 21 9d 99 0b 5f de 57 16 a6 ab c8 |V.XE{!..._.W....| 000001c0 79 3f 9d 76 89 e2 09 f9 8d e2 63 37 fc 74 ea 73 |y?.v......c7.t.s| 000001d0 7e 70 ac 15 16 a5 ed 88 60 5f 33 ed 94 9e 0a 05 |~p......`_3.....| 000001e0 de c7 85 c3 c1 7a 54 fb 4e cb cb e8 5e 44 7c 39 |.....zT.N...^D|9| 000001f0 db 2d b2 b7 6c ce ca 2f 63 9d 16 4e a6 e5 ef d6 |.-..l../c..N....| 00000200 cf 02 03 01 00 01 a3 66 30 64 30 62 06 03 55 1d |.......f0d0b..U.| 00000210 01 04 5b 30 59 80 10 56 b0 8b 2a a7 fe cc f1 0c |..[0Y..V..*.....| 00000220 ed 87 62 dc d5 1d c3 a1 33 30 31 31 2f 30 2d 06 |..b.....3011/0-.| 00000230 03 55 04 03 13 26 41 53 55 53 54 65 4b 20 4d 6f |.U...&ASUSTeK Mo| 00000240 74 68 65 72 42 6f 61 72 64 20 53 57 20 4b 65 79 |therBoard SW Key| 00000250 20 43 65 72 74 69 66 69 63 61 74 65 82 10 da 83 | Certificate....| 00000260 b9 90 42 2e bc 8c 44 1f 8d 8b 03 9a 65 a2 30 0d |..B...D.....e.0.| 00000270 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 |..*.H...........| 00000280 01 00 02 cf 52 6f 0b 91 eb e4 3b b2 70 0c 07 2d |....Ro....;.p..-| 00000290 79 80 01 9e 4b 4d 92 bb dc 9e e5 e5 31 85 e3 9a |y...KM......1...| 000002a0 75 ed ca de 8c ee 28 34 01 83 14 47 9e 3a d4 43 |u.....(4...G.:.C| 000002b0 5b 2c c4 41 c8 40 7d b5 08 76 86 80 2b a8 00 9f |[,.A.@}..v..+...| 000002c0 b7 d3 b1 e6 60 5c 32 b0 a0 01 0f ba 36 8b b7 b5 |....`\2.....6...| 000002d0 4e 87 d5 b7 0a 2c bd bc 6a 43 3c ee 76 7c 76 20 |N....,..jC<.v|v | 000002e0 ed 39 91 a8 bf 70 1e d6 a8 1a 3e 81 36 6b 7d 1d |.9...p....>.6k}.| 000002f0 8d f6 f8 af 5b 38 53 6a 04 0d 7e ae 4d ee ab 02 |....[8Sj..~.M...| 00000300 d4 a4 a2 a9 cf b6 e3 66 a3 ca 4d 5d d4 18 61 4d |.......f..M]..aM| 00000310 da 83 28 4e aa 2a af da eb df 2a 20 bd 78 80 ef |..(N.*....* .x..| 00000320 d1 b0 dd 9b 77 db c9 25 39 4b cf a2 86 1a ac cc |....w..%9K......| 00000330 32 e7 87 d4 59 b2 03 c4 69 02 8f 17 c9 de 52 cb |2...Y...i.....R.| 00000340 e7 ab b8 35 c5 f8 33 06 03 93 52 cf b3 68 d2 b3 |...5..3...R..h..| 00000350 5c 1c e8 19 fe 75 26 ed d1 65 72 13 4d 69 34 5a |\....u&..er.Mi4Z| 00000360 9b 0c b4 e3 56 53 3c b4 67 27 f8 fa d3 20 da 37 |....VS<.g'... .7| 00000370 58 f6 ad e2 82 59 a2 b8 22 2f 9e 56 fe bc 17 49 |X....Y.."/.V...I| 00000380 1d af |..| 00000382 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b |.Y.....J....\+| esl[1].signature_type = {x509_cert} 00000390 f0 72 |.r| 00000392 79 03 00 00 |y...| esl[1].signature_list_size = 889 (0x379) 00000396 00 00 00 00 |....| esl[1].signature_header_size = 0 0000039a 5d 03 00 00 |]...| esl[1].signature_size = 861 0000039e esl[1].signature_header (end:0x0000039e) 0000039e 91 30 |.0| esl[1].signature[0].owner = {asus} 000003a0 05 3b 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.;.l.......;..| 000003ae 30 82 |0.| esl[1].signature[0].data (end:0x000006fb) 000003b0 03 49 30 82 02 31 a0 03 02 01 02 02 10 b8 e5 81 |.I0..1..........| 000003c0 e4 df 77 a5 bb 42 82 d5 cc fc 00 c0 71 30 0d 06 |..w..B......q0..| 000003d0 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 2e 31 2c |.*.H........0.1,| 000003e0 30 2a 06 03 55 04 03 13 23 41 53 55 53 54 65 4b |0*..U...#ASUSTeK| 000003f0 20 4e 6f 74 65 62 6f 6f 6b 20 53 57 20 4b 65 79 | Notebook SW Key| 00000400 20 43 65 72 74 69 66 69 63 61 74 65 30 1e 17 0d | Certificate0...| 00000410 31 31 31 32 32 37 30 30 31 38 35 33 5a 17 0d 33 |111227001853Z..3| 00000420 31 31 32 32 37 30 30 31 38 35 32 5a 30 2e 31 2c |11227001852Z0.1,| 00000430 30 2a 06 03 55 04 03 13 23 41 53 55 53 54 65 4b |0*..U...#ASUSTeK| 00000440 20 4e 6f 74 65 62 6f 6f 6b 20 53 57 20 4b 65 79 | Notebook SW Key| 00000450 20 43 65 72 74 69 66 69 63 61 74 65 30 82 01 22 | Certificate0.."| 00000460 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 00000470 82 01 0f 00 30 82 01 0a 02 82 01 01 00 9e 61 fa |....0.........a.| 00000480 74 2c 2a 88 17 c4 bd 77 19 0d b3 33 27 0c 0e 94 |t,*....w...3'...| 00000490 ec b0 8b 71 b3 08 77 b7 d2 08 9d 32 4f 5c f7 0c |...q..w....2O\..| 000004a0 cf e0 29 53 56 ed 24 91 d8 bd 53 2a 89 89 8c 74 |..)SV.$...S*...t| 000004b0 28 ab 16 2d 4f 9b 65 fc 63 7d ed 23 b6 97 5c 6d |(..-O.e.c}.#..\m| 000004c0 04 e4 15 7f dc f8 ba 6b 08 cc c9 21 e9 b5 de 8e |.......k...!....| 000004d0 03 28 12 63 f0 6a b6 e5 df 1d 72 28 cc 64 d6 63 |.(.c.j....r(.d.c| 000004e0 66 2f 04 52 6a 1d 25 7d c7 bd e0 78 fb 0c b7 37 |f/.Rj.%}...x...7| 000004f0 e5 ae f7 0d d6 b5 b4 bf f5 f1 c6 82 56 78 5c a8 |............Vx\.| 00000500 f3 53 2e f5 ec 15 3f 12 62 2f eb b6 79 79 86 ac |.S....?.b/..yy..| 00000510 76 ff b6 66 45 f5 33 da dd 25 d6 a7 bf f8 d9 db |v..fE.3..%......| 00000520 d3 f1 fa ce 0e 22 30 d7 d4 80 02 bd d3 2c 1e ec |....."0......,..| 00000530 46 2e 2f ca 0f 7a fa b9 5c ff 2b 16 c6 6a 6b 8d |F./..z..\.+..jk.| 00000540 94 64 92 7e f9 55 ee 96 00 4d 04 2e 4b 15 ed f1 |.d.~.U...M..K...| 00000550 08 49 6a 07 86 69 c8 c5 64 fa ad 2c 4f 02 50 e4 |.Ij..i..d..,O.P.| 00000560 1f 83 c7 2f 19 9f e8 a5 62 d9 51 32 18 b6 83 ca |.../....b.Q2....| 00000570 08 0a a1 ab a7 65 70 9c 1e 48 c3 0f 49 02 03 01 |.....ep..H..I...| 00000580 00 01 a3 63 30 61 30 5f 06 03 55 1d 01 04 58 30 |...c0a0_..U...X0| 00000590 56 80 10 00 65 11 e3 ca 0f 96 e8 8d 5b 04 a4 e7 |V...e.......[...| 000005a0 fe ce aa a1 30 30 2e 31 2c 30 2a 06 03 55 04 03 |....00.1,0*..U..| 000005b0 13 23 41 53 55 53 54 65 4b 20 4e 6f 74 65 62 6f |.#ASUSTeK Notebo| 000005c0 6f 6b 20 53 57 20 4b 65 79 20 43 65 72 74 69 66 |ok SW Key Certif| 000005d0 69 63 61 74 65 82 10 b8 e5 81 e4 df 77 a5 bb 42 |icate.......w..B| 000005e0 82 d5 cc fc 00 c0 71 30 0d 06 09 2a 86 48 86 f7 |......q0...*.H..| 000005f0 0d 01 01 0b 05 00 03 82 01 01 00 31 18 f4 ee e3 |...........1....| 00000600 72 ba be 33 44 61 74 19 1f 66 ac 5c fd 1d 9a 26 |r..3Dat..f.\...&| 00000610 75 d0 14 cd 68 38 b3 a8 3f 4f b4 4a e9 1e 21 f2 |u...h8..?O.J..!.| 00000620 c9 ee 37 96 26 be 1d 58 9b ad 21 ce 58 79 53 d3 |..7.&..X..!.XyS.| 00000630 ff 38 ef 8f 22 cd 90 0e c6 32 21 75 9b 5a ab af |.8.."....2!u.Z..| 00000640 08 ff 05 cd 2b f8 8c e7 97 47 bb 78 e4 5f 56 47 |....+....G.x._VG| 00000650 d2 bc c8 a5 95 cb 76 89 5c 65 24 02 18 06 9c 12 |......v.\e$.....| 00000660 5f ef e0 5c 19 45 38 96 df 7a 60 5d 61 ba 4d c8 |_..\.E8..z`]a.M.| 00000670 7b 6e 8d 8c 6e 1d a9 e5 92 35 a2 4f 36 d3 40 ad |{n..n....5.O6.@.| 00000680 d7 40 12 ab 6c 48 8d 18 92 e4 00 52 03 df 14 ac |.@..lH.....R....| 00000690 66 3f 6a ae 42 3a 06 50 aa a5 0d 40 a7 7b eb fd |f?j.B:.P...@.{..| 000006a0 41 49 ff eb a3 b4 50 4f f7 54 13 3b 1f 8e b4 45 |AI....PO.T.;...E| 000006b0 04 20 42 74 fe 78 3d be 7c db a7 2a 2a 9d 06 48 |. Bt.x=.|..**..H| 000006c0 c0 9a 02 23 af f2 98 07 95 de 3b 30 73 ec 3e 73 |...#......;0s.>s| 000006d0 58 8f 07 53 40 96 d8 24 d9 66 80 7a 75 8d b7 39 |X..S@..$.f.zu..9| 000006e0 27 10 89 7a b4 53 bf 3b c2 e2 97 93 37 8a 9d 4d |'..z.S.;....7..M| 000006f0 23 6e ac eb 0d 53 21 4d 0b 34 13 |#n...S!M.4.| 000006fb a1 59 c0 a5 e4 |.Y...| esl[2].signature_type = {x509_cert} 00000700 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |..J....\+.r| 0000070b 40 06 00 00 |@...| esl[2].signature_list_size = 1600 (0x640) 0000070f 00 |.| esl[2].signature_header_size = 0 00000710 00 00 00 |...| 00000713 24 06 00 00 |$...| esl[2].signature_size = 1572 00000717 esl[2].signature_header (end:0x00000717) 00000717 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[2].signature[0].owner = {microsoft} 00000720 60 28 f4 e7 8f 78 4b |`(...xK| 00000727 30 82 06 10 30 82 03 f8 a0 |0...0....| esl[2].signature[0].data (end:0x00000d3b) 00000730 03 02 01 02 02 0a 61 08 d3 c4 00 00 00 00 00 04 |......a.........| 00000740 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 |0...*.H........0| 00000750 81 91 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 |..1.0...U....US1| 00000760 13 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e |.0...U....Washin| 00000770 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 |gton1.0...U....R| 00000780 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 |edmond1.0...U...| 00000790 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |.Microsoft Corpo| 000007a0 72 61 74 69 6f 6e 31 3b 30 39 06 03 55 04 03 13 |ration1;09..U...| 000007b0 32 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |2Microsoft Corpo| 000007c0 72 61 74 69 6f 6e 20 54 68 69 72 64 20 50 61 72 |ration Third Par| 000007d0 74 79 20 4d 61 72 6b 65 74 70 6c 61 63 65 20 52 |ty Marketplace R| 000007e0 6f 6f 74 30 1e 17 0d 31 31 30 36 32 37 32 31 32 |oot0...110627212| 000007f0 32 34 35 5a 17 0d 32 36 30 36 32 37 32 31 33 32 |245Z..2606272132| 00000800 34 35 5a 30 81 81 31 0b 30 09 06 03 55 04 06 13 |45Z0..1.0...U...| 00000810 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 61 |.US1.0...U....Wa| 00000820 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 04 |shington1.0...U.| 00000830 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 |...Redmond1.0...| 00000840 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 43 |U....Microsoft C| 00000850 6f 72 70 6f 72 61 74 69 6f 6e 31 2b 30 29 06 03 |orporation1+0)..| 00000860 55 04 03 13 22 4d 69 63 72 6f 73 6f 66 74 20 43 |U..."Microsoft C| 00000870 6f 72 70 6f 72 61 74 69 6f 6e 20 55 45 46 49 20 |orporation UEFI | 00000880 43 41 20 32 30 31 31 30 82 01 22 30 0d 06 09 2a |CA 20110.."0...*| 00000890 86 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 |.H.............0| 000008a0 82 01 0a 02 82 01 01 00 a5 08 6c 4c c7 45 09 6a |..........lL.E.j| 000008b0 4b 0c a4 c0 87 7f 06 75 0c 43 01 54 64 e0 16 7f |K......u.C.Td...| 000008c0 07 ed 92 7d 0b b2 73 bf 0c 0a c6 4a 45 61 a0 c5 |...}..s....JEa..| 000008d0 16 2d 96 d3 f5 2b a0 fb 4d 49 9b 41 80 90 3c b9 |.-...+..MI.A..<.| 000008e0 54 fd e6 bc d1 9d c4 a4 18 8a 7f 41 8a 5c 59 83 |T..........A.\Y.| 000008f0 68 32 bb 8c 47 c9 ee 71 bc 21 4f 9a 8a 7c ff 44 |h2..G..q.!O..|.D| 00000900 3f 8d 8f 32 b2 26 48 ae 75 b5 ee c9 4c 1e 4a 19 |?..2.&H.u...L.J.| 00000910 7e e4 82 9a 1d 78 77 4d 0c b0 bd f6 0f d3 16 d3 |~....xwM........| 00000920 bc fa 2b a5 51 38 5d f5 fb ba db 78 02 db ff ec |..+.Q8]....x....| 00000930 0a 1b 96 d5 83 b8 19 13 e9 b6 c0 7b 40 7b e1 1f |...........{@{..| 00000940 28 27 c9 fa ef 56 5e 1c e6 7e 94 7e c0 f0 44 b2 |('...V^..~.~..D.| 00000950 79 39 e5 da b2 62 8b 4d bf 38 70 e2 68 24 14 c9 |y9...b.M.8p.h$..| 00000960 33 a4 08 37 d5 58 69 5e d3 7c ed c1 04 53 08 e7 |3..7.Xi^.|...S..| 00000970 4e b0 2a 87 63 08 61 6f 63 15 59 ea b2 2b 79 d7 |N.*.c.aoc.Y..+y.| 00000980 0c 61 67 8a 5b fd 5e ad 87 7f ba 86 67 4f 71 58 |.ag.[.^.....gOqX| 00000990 12 22 04 22 22 ce 8b ef 54 71 00 ce 50 35 58 76 |.".""...Tq..P5Xv| 000009a0 95 08 ee 6a b1 a2 01 d5 02 03 01 00 01 a3 82 01 |...j............| 000009b0 76 30 82 01 72 30 12 06 09 2b 06 01 04 01 82 37 |v0..r0...+.....7| 000009c0 15 01 04 05 02 03 01 00 01 30 23 06 09 2b 06 01 |.........0#..+..| 000009d0 04 01 82 37 15 02 04 16 04 14 f8 c1 6b b7 7f 77 |...7........k..w| 000009e0 53 4a f3 25 37 1d 4e a1 26 7b 0f 20 70 80 30 1d |SJ.%7.N.&{. p.0.| 000009f0 06 03 55 1d 0e 04 16 04 14 13 ad bf 43 09 bd 82 |..U.........C...| 00000a00 70 9c 8c d5 4f 31 6e d5 22 98 8a 1b d4 30 19 06 |p...O1n."....0..| 00000a10 09 2b 06 01 04 01 82 37 14 02 04 0c 1e 0a 00 53 |.+.....7.......S| 00000a20 00 75 00 62 00 43 00 41 30 0b 06 03 55 1d 0f 04 |.u.b.C.A0...U...| 00000a30 04 03 02 01 86 30 0f 06 03 55 1d 13 01 01 ff 04 |.....0...U......| 00000a40 05 30 03 01 01 ff 30 1f 06 03 55 1d 23 04 18 30 |.0....0...U.#..0| 00000a50 16 80 14 45 66 52 43 e1 7e 58 11 bf d6 4e 9e 23 |...EfRC.~X...N.#| 00000a60 55 08 3b 3a 22 6a a8 30 5c 06 03 55 1d 1f 04 55 |U.;:"j.0\..U...U| 00000a70 30 53 30 51 a0 4f a0 4d 86 4b 68 74 74 70 3a 2f |0S0Q.O.M.Khttp:/| 00000a80 2f 63 72 6c 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 |/crl.microsoft.c| 00000a90 6f 6d 2f 70 6b 69 2f 63 72 6c 2f 70 72 6f 64 75 |om/pki/crl/produ| 00000aa0 63 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 61 72 |cts/MicCorThiPar| 00000ab0 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 2d 30 |MarRoo_2010-10-0| 00000ac0 35 2e 63 72 6c 30 60 06 08 2b 06 01 05 05 07 01 |5.crl0`..+......| 00000ad0 01 04 54 30 52 30 50 06 08 2b 06 01 05 05 07 30 |..T0R0P..+.....0| 00000ae0 02 86 44 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 |..Dhttp://www.mi| 00000af0 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f |crosoft.com/pki/| 00000b00 63 65 72 74 73 2f 4d 69 63 43 6f 72 54 68 69 50 |certs/MicCorThiP| 00000b10 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 2d 31 30 |arMarRoo_2010-10| 00000b20 2d 30 35 2e 63 72 74 30 0d 06 09 2a 86 48 86 f7 |-05.crt0...*.H..| 00000b30 0d 01 01 0b 05 00 03 82 02 01 00 35 08 42 ff 30 |...........5.B.0| 00000b40 cc ce f7 76 0c ad 10 68 58 35 29 46 32 76 27 7c |...v...hX5)F2v'|| 00000b50 ef 12 41 27 42 1b 4a aa 6d 81 38 48 59 13 55 f3 |..A'B.J.m.8HY.U.| 00000b60 e9 58 34 a6 16 0b 82 aa 5d ad 82 da 80 83 41 06 |.X4.....].....A.| 00000b70 8f b4 1d f2 03 b9 f3 1a 5d 1b f1 50 90 f9 b3 55 |........]..P...U| 00000b80 84 42 28 1c 20 bd b2 ae 51 14 c5 c0 ac 97 95 21 |.B(. ...Q......!| 00000b90 1c 90 db 0f fc 77 9e 95 73 91 88 ca bd bd 52 b9 |.....w..s.....R.| 00000ba0 05 50 0d df 57 9e a0 61 ed 0d e5 6d 25 d9 40 0f |.P..W..a...m%.@.| 00000bb0 17 40 c8 ce a3 4a c2 4d af 9a 12 1d 08 54 8f bd |.@...J.M.....T..| 00000bc0 c7 bc b9 2b 3d 49 2b 1f 32 fc 6a 21 69 4f 9b c8 |...+=I+.2.j!iO..| 00000bd0 7e 42 34 fc 36 06 17 8b 8f 20 40 c0 b3 9a 25 75 |~B4.6.... @...%u| 00000be0 27 cd c9 03 a3 f6 5d d1 e7 36 54 7a b9 50 b5 d3 |'.....]..6Tz.P..| 00000bf0 12 d1 07 bf bb 74 df dc 1e 8f 80 d5 ed 18 f4 2f |.....t........./| 00000c00 14 16 6b 2f de 66 8c b0 23 e5 c7 84 d8 ed ea c1 |..k/.f..#.......| 00000c10 33 82 ad 56 4b 18 2d f1 68 95 07 cd cf f0 72 f0 |3..VK.-.h.....r.| 00000c20 ae bb dd 86 85 98 2c 21 4c 33 2b f0 0f 4a f0 68 |......,!L3+..J.h| 00000c30 87 b5 92 55 32 75 a1 6a 82 6a 3c a3 25 11 a4 ed |...U2u.j.j<.%...| 00000c40 ad d7 04 ae cb d8 40 59 a0 84 d1 95 4c 62 91 22 |......@Y....Lb."| 00000c50 1a 74 1d 8c 3d 47 0e 44 a6 e4 b0 9b 34 35 b1 fa |.t..=G.D....45..| 00000c60 b6 53 a8 2c 81 ec a4 05 71 c8 9d b8 ba e8 1b 44 |.S.,....q......D| 00000c70 66 e4 47 54 0e 8e 56 7f b3 9f 16 98 b2 86 d0 68 |f.GT..V........h| 00000c80 3e 90 23 b5 2f 5e 8f 50 85 8d c6 8d 82 5f 41 a1 |>.#./^.P....._A.| 00000c90 f4 2e 0d e0 99 d2 6c 75 e4 b6 69 b5 21 86 fa 07 |......lu..i.!...| 00000ca0 d1 f6 e2 4d d1 da ad 2c 77 53 1e 25 32 37 c7 6c |...M...,wS.%27.l| 00000cb0 52 72 95 86 b0 f1 35 61 6a 19 f5 b2 3b 81 50 56 |Rr....5aj...;.PV| 00000cc0 a6 32 2d fe a2 89 f9 42 86 27 18 55 a1 82 ca 5a |.2-....B.'.U...Z| 00000cd0 9b f8 30 98 54 14 a6 47 96 25 2f c8 26 e4 41 94 |..0.T..G.%/.&.A.| 00000ce0 1a 5c 02 3f e5 96 e3 85 5b 3c 3e 3f bb 47 16 72 |.\.?....[<>?.G.r| 00000cf0 55 e2 25 22 b1 d9 7b e7 03 06 2a a3 f7 1e 90 46 |U.%"..{...*....F| 00000d00 c3 00 0d d6 19 89 e3 0e 35 27 62 03 71 15 a6 ef |........5'b.q...| 00000d10 d0 27 a0 a0 59 37 60 f8 38 94 b8 e0 78 70 f8 ba |.'..Y7`.8...xp..| 00000d20 4c 86 87 94 f6 e0 ae 02 45 ee 65 c2 b6 a3 7e 69 |L.......E.e...~i| 00000d30 16 75 07 92 9b f5 a6 bc 59 83 58 |.u......Y.X| 00000d3b a1 59 c0 a5 e4 |.Y...| esl[3].signature_type = {x509_cert} 00000d40 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |..J....\+.r| 00000d4b 07 06 00 00 |....| esl[3].signature_list_size = 1543 (0x607) 00000d4f 00 |.| esl[3].signature_header_size = 0 00000d50 00 00 00 |...| 00000d53 eb 05 00 00 |....| esl[3].signature_size = 1515 00000d57 esl[3].signature_header (end:0x00000d57) 00000d57 bd 9a fa 77 59 03 32 4d bd |...wY.2M.| esl[3].signature[0].owner = {microsoft} 00000d60 60 28 f4 e7 8f 78 4b |`(...xK| 00000d67 30 82 05 d7 30 82 03 bf a0 |0...0....| esl[3].signature[0].data (end:0x00001342) 00000d70 03 02 01 02 02 0a 61 07 76 56 00 00 00 00 00 08 |......a.vV......| 00000d80 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 |0...*.H........0| 00000d90 81 88 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 |..1.0...U....US1| 00000da0 13 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e |.0...U....Washin| 00000db0 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 |gton1.0...U....R| 00000dc0 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 |edmond1.0...U...| 00000dd0 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |.Microsoft Corpo| 00000de0 72 61 74 69 6f 6e 31 32 30 30 06 03 55 04 03 13 |ration1200..U...| 00000df0 29 4d 69 63 72 6f 73 6f 66 74 20 52 6f 6f 74 20 |)Microsoft Root | 00000e00 43 65 72 74 69 66 69 63 61 74 65 20 41 75 74 68 |Certificate Auth| 00000e10 6f 72 69 74 79 20 32 30 31 30 30 1e 17 0d 31 31 |ority 20100...11| 00000e20 31 30 31 39 31 38 34 31 34 32 5a 17 0d 32 36 31 |1019184142Z..261| 00000e30 30 31 39 31 38 35 31 34 32 5a 30 81 84 31 0b 30 |019185142Z0..1.0| 00000e40 09 06 03 55 04 06 13 02 55 53 31 13 30 11 06 03 |...U....US1.0...| 00000e50 55 04 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 |U....Washington1| 00000e60 10 30 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e |.0...U....Redmon| 00000e70 64 31 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 |d1.0...U....Micr| 00000e80 6f 73 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f |osoft Corporatio| 00000e90 6e 31 2e 30 2c 06 03 55 04 03 13 25 4d 69 63 72 |n1.0,..U...%Micr| 00000ea0 6f 73 6f 66 74 20 57 69 6e 64 6f 77 73 20 50 72 |osoft Windows Pr| 00000eb0 6f 64 75 63 74 69 6f 6e 20 50 43 41 20 32 30 31 |oduction PCA 201| 00000ec0 31 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 |10.."0...*.H....| 00000ed0 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 82 01 |.........0......| 00000ee0 01 00 dd 0c bb a2 e4 2e 09 e3 e7 c5 f7 96 69 bc |..............i.| 00000ef0 00 21 bd 69 33 33 ef ad 04 cb 54 80 ee 06 83 bb |.!.i33....T.....| 00000f00 c5 20 84 d9 f7 d2 8b f3 38 b0 ab a4 ad 2d 7c 62 |. ......8....-|b| 00000f10 79 05 ff e3 4a 3f 04 35 20 70 e3 c4 e7 6b e0 9c |y...J?.5 p...k..| 00000f20 c0 36 75 e9 8a 31 dd 8d 70 e5 dc 37 b5 74 46 96 |.6u..1..p..7.tF.| 00000f30 28 5b 87 60 23 2c bf dc 47 a5 67 f7 51 27 9e 72 |([.`#,..G.g.Q'.r| 00000f40 eb 07 a6 c9 b9 1e 3b 53 35 7c e5 d3 ec 27 b9 87 |......;S5|...'..| 00000f50 1c fe b9 c9 23 09 6f a8 46 91 c1 6e 96 3c 41 d3 |....#.o.F..n.| 000010f0 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f |http://www.micro| 00001100 73 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 65 72 |soft.com/pki/cer| 00001110 74 73 2f 4d 69 63 52 6f 6f 43 65 72 41 75 74 5f |ts/MicRooCerAut_| 00001120 32 30 31 30 2d 30 36 2d 32 33 2e 63 72 74 30 0d |2010-06-23.crt0.| 00001130 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 02 |..*.H...........| 00001140 01 00 14 fc 7c 71 51 a5 79 c2 6e b2 ef 39 3e bc |....|qQ.y.n..9>.| 00001150 3c 52 0f 6e 2b 3f 10 13 73 fe a8 68 d0 48 a6 34 |.\`| 00001220 ec df 03 10 a8 d3 09 e9 f4 f6 96 85 b6 7f 51 88 |..............Q.| 00001230 66 47 19 8d a2 b0 12 3d 81 2a 68 05 77 bb 91 4c |fG.....=.*h.w..L| 00001240 62 7b b6 c1 07 c7 ba 7a 87 34 03 0e 4b 62 7a 99 |b{.....z.4..Kbz.| 00001250 e9 ca fc ce 4a 37 c9 2d a4 57 7c 1c fe 3d dc b8 |....J7.-.W|..=..| 00001260 0f 5a fa d6 c4 b3 02 85 02 3a ea b3 d9 6e e4 69 |.Z.......:...n.i| 00001270 21 37 de 81 d1 f6 75 19 05 67 d3 93 57 5e 29 1b |!7....u..g..W^).| 00001280 39 c8 ee 2d e1 cd e4 45 73 5b d0 d2 ce 7a ab 16 |9..-...Es[...z..| 00001290 19 82 46 58 d0 5e 9d 81 b3 67 af 6c 35 f2 bc e5 |..FX.^...g.l5...| 000012a0 3f 24 e2 35 a2 0a 75 06 f6 18 56 99 d4 78 2c d1 |?$.5..u...V..x,.| 000012b0 05 1b eb d0 88 01 9d aa 10 f1 05 df ba 7e 2c 63 |.............~,c| 000012c0 b7 06 9b 23 21 c4 f9 78 6c e2 58 17 06 36 2b 91 |...#!..xl.X..6+.| 000012d0 12 03 cc a4 d9 f2 2d ba f9 94 9d 40 ed 18 45 f1 |......-....@..E.| 000012e0 ce 8a 5c 6b 3e ab 03 d3 70 18 2a 0a 6a e0 5f 47 |..\k>...p.*.j._G| 000012f0 d1 d5 63 0a 32 f2 af d7 36 1f 2a 70 5a e5 42 59 |..c.2...6.*pZ.BY| 00001300 08 71 4b 57 ba 7e 83 81 f0 21 3c f4 1c c1 c5 b9 |.qKW.~...!<.....| 00001310 90 93 0e 88 45 93 86 e9 b1 20 99 be 98 cb c5 95 |....E.... ......| 00001320 a4 5d 62 d6 a0 63 08 20 bd 75 10 77 7d 3d f3 45 |.]b..c. .u.w}=.E| 00001330 b9 9f 97 9f cb 57 80 6f 33 a9 04 cf 77 a4 62 1c |.....W.o3...w.b.| 00001340 59 7e |Y~| 00001342 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b |.Y.....J....\+| esl[4].signature_type = {x509_cert} 00001350 f0 72 |.r| 00001352 64 04 00 00 |d...| esl[4].signature_list_size = 1124 (0x464) 00001356 00 00 00 00 |....| esl[4].signature_header_size = 0 0000135a 48 04 00 00 |H...| esl[4].signature_size = 1096 0000135e esl[4].signature_header (end:0x0000135e) 0000135e e4 0a |..| esl[4].signature[0].owner = {canonical} 00001360 c4 6d e8 2e 4c 9c a3 14 0f c7 b2 00 87 10 |.m..L.........| 0000136e 30 82 |0.| esl[4].signature[0].data (end:0x000017a6) 00001370 04 34 30 82 03 1c a0 03 02 01 02 02 09 00 b9 41 |.40............A| 00001380 24 a0 18 2c 92 67 30 0d 06 09 2a 86 48 86 f7 0d |$..,.g0...*.H...| 00001390 01 01 0b 05 00 30 81 84 31 0b 30 09 06 03 55 04 |.....0..1.0...U.| 000013a0 06 13 02 47 42 31 14 30 12 06 03 55 04 08 0c 0b |...GB1.0...U....| 000013b0 49 73 6c 65 20 6f 66 20 4d 61 6e 31 10 30 0e 06 |Isle of Man1.0..| 000013c0 03 55 04 07 0c 07 44 6f 75 67 6c 61 73 31 17 30 |.U....Douglas1.0| 000013d0 15 06 03 55 04 0a 0c 0e 43 61 6e 6f 6e 69 63 61 |...U....Canonica| 000013e0 6c 20 4c 74 64 2e 31 34 30 32 06 03 55 04 03 0c |l Ltd.1402..U...| 000013f0 2b 43 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 20 |+Canonical Ltd. | 00001400 4d 61 73 74 65 72 20 43 65 72 74 69 66 69 63 61 |Master Certifica| 00001410 74 65 20 41 75 74 68 6f 72 69 74 79 30 1e 17 0d |te Authority0...| 00001420 31 32 30 34 31 32 31 31 31 32 35 31 5a 17 0d 34 |120412111251Z..4| 00001430 32 30 34 31 31 31 31 31 32 35 31 5a 30 81 84 31 |20411111251Z0..1| 00001440 0b 30 09 06 03 55 04 06 13 02 47 42 31 14 30 12 |.0...U....GB1.0.| 00001450 06 03 55 04 08 0c 0b 49 73 6c 65 20 6f 66 20 4d |..U....Isle of M| 00001460 61 6e 31 10 30 0e 06 03 55 04 07 0c 07 44 6f 75 |an1.0...U....Dou| 00001470 67 6c 61 73 31 17 30 15 06 03 55 04 0a 0c 0e 43 |glas1.0...U....C| 00001480 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 31 34 30 |anonical Ltd.140| 00001490 32 06 03 55 04 03 0c 2b 43 61 6e 6f 6e 69 63 61 |2..U...+Canonica| 000014a0 6c 20 4c 74 64 2e 20 4d 61 73 74 65 72 20 43 65 |l Ltd. Master Ce| 000014b0 72 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 |rtificate Author| 000014c0 69 74 79 30 82 01 22 30 0d 06 09 2a 86 48 86 f7 |ity0.."0...*.H..| 000014d0 0d 01 01 01 05 00 03 82 01 0f 00 30 82 01 0a 02 |...........0....| 000014e0 82 01 01 00 bf 5b 3a 16 74 ee 21 5d ae 61 ed 9d |.....[:.t.!].a..| 000014f0 56 ac bd de de 72 f3 dd 7e 2d 4c 62 0f ac c0 6d |V....r..~-Lb...m| 00001500 48 08 11 cf 8d 8b fb 61 1f 27 cc 11 6e d9 55 3d |H......a.'..n.U=| 00001510 39 54 eb 40 3b b1 bb e2 85 34 79 ca f7 7b bf ba |9T.@;....4y..{..| 00001520 7a c8 10 2d 19 7d ad 59 cf a6 d4 e9 4e 0f da ae |z..-.}.Y....N...| 00001530 52 ea 4c 9e 90 ce c6 99 0d 4e 67 65 78 5d f9 d1 |R.L......Ngex]..| 00001540 d5 38 4a 4a 7a 8f 93 9c 7f 1a a3 85 db ce fa 8b |.8JJz...........| 00001550 f7 c2 a2 21 2d 9b 54 41 35 10 57 13 8d 6c bc 29 |...!-.TA5.W..l.)| 00001560 06 50 4a 7e ea 99 a9 68 a7 3b c7 07 1b 32 9e a0 |.PJ~...h.;...2..| 00001570 19 87 0e 79 bb 68 99 2d 7e 93 52 e5 f6 eb c9 9b |...y.h.-~.R.....| 00001580 f9 2b ed b8 68 49 bc d9 95 50 40 5b c5 b2 71 aa |.+..hI...P@[..q.| 00001590 eb 5c 57 de 71 f9 40 0a dd 5b ac 1e 84 2d 50 1a |.\W.q.@..[...-P.| 000015a0 52 d6 e1 f3 6b 6e 90 64 4f 5b b4 eb 20 e4 61 10 |R...kn.dO[.. .a.| 000015b0 da 5a f0 ea e4 42 d7 01 c4 fe 21 1f d9 b9 c0 54 |.Z...B....!....T| 000015c0 95 42 81 52 72 1f 49 64 7a c8 6c 24 f1 08 70 0b |.B.Rr.Idz.l$..p.| 000015d0 4d a5 a0 32 d1 a0 1c 57 a8 4d e3 af a5 8e 05 05 |M..2...W.M......| 000015e0 3e 10 43 a1 02 03 01 00 01 a3 81 a6 30 81 a3 30 |>.C.........0..0| 000015f0 1d 06 03 55 1d 0e 04 16 04 14 ad 91 99 0b c2 2a |...U...........*| 00001600 b1 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 1f |.....#.eZ&.4Zc0.| 00001610 06 03 55 1d 23 04 18 30 16 80 14 ad 91 99 0b c2 |..U.#..0........| 00001620 2a b1 f5 17 04 8c 23 b6 65 5a 26 8e 34 5a 63 30 |*.....#.eZ&.4Zc0| 00001630 0f 06 03 55 1d 13 01 01 ff 04 05 30 03 01 01 ff |...U.......0....| 00001640 30 0b 06 03 55 1d 0f 04 04 03 02 01 86 30 43 06 |0...U........0C.| 00001650 03 55 1d 1f 04 3c 30 3a 30 38 a0 36 a0 34 86 32 |.U...<0:08.6.4.2| 00001660 68 74 74 70 3a 2f 2f 77 77 77 2e 63 61 6e 6f 6e |http://www.canon| 00001670 69 63 61 6c 2e 63 6f 6d 2f 73 65 63 75 72 65 2d |ical.com/secure-| 00001680 62 6f 6f 74 2d 6d 61 73 74 65 72 2d 63 61 2e 63 |boot-master-ca.c| 00001690 72 6c 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 |rl0...*.H.......| 000016a0 00 03 82 01 01 00 3f 7d f6 76 a5 b3 83 b4 2b 7a |......?}.v....+z| 000016b0 d0 6d 52 1a 03 83 c4 12 a7 50 9c 47 92 cc c0 94 |.mR......P.G....| 000016c0 77 82 d2 ae 57 b3 99 04 f5 32 3a c6 55 1d 07 db |w...W....2:.U...| 000016d0 12 a9 56 fa d8 d4 76 20 eb e4 c3 51 db 9a 5c 9c |..V...v ...Q..\.| 000016e0 92 3f 18 73 da 94 6a a1 99 38 8c a4 88 6d c1 fc |.?.s..j..8...m..| 000016f0 39 71 d0 74 76 16 03 3e 56 23 35 d5 55 47 5b 1a |9q.tv..>V#5.UG[.| 00001700 1d 41 c2 d3 12 4c dc ff ae 0a 92 9c 62 0a 17 01 |.A...L......b...| 00001710 9c 73 e0 5e b1 fd bc d6 b5 19 11 7a 7e cd 3e 03 |.s.^.......z~.>.| 00001720 7e 66 db 5b a8 c9 39 48 51 ff 53 e1 9c 31 53 91 |~f.[..9HQ.S..1S.| 00001730 1b 3b 10 75 03 17 ba e6 81 02 80 94 70 4c 46 b7 |.;.u........pLF.| 00001740 94 b0 3d 15 cd 1f 8e 02 e0 68 02 8f fb f9 47 1d |..=......h....G.| 00001750 7d a2 01 c6 07 51 c4 9a cc ed dd cf a3 5d ed 92 |}....Q.......]..| 00001760 bb be d1 fd e6 ec 1f 33 51 73 04 be 3c 72 b0 7d |.......3Qs.....| 00001790 14 db ce 03 0e 0b 66 c4 1c 6d bd b8 27 77 c1 42 |......f..m..'w.B| 000017a0 94 bd fc 6a 0a bc |...j..| 000017a6 26 16 c4 c1 4c 50 92 40 ac a9 |&...LP.@..| esl[5].signature_type = {sha256} 000017b0 41 f9 36 93 43 28 |A.6.C(| 000017b6 0c 01 00 00 |....| esl[5].signature_list_size = 268 (0x10c) 000017ba 00 00 00 00 |....| esl[5].signature_header_size = 0 000017be 30 00 |0.| esl[5].signature_size = 48 000017c0 00 00 |..| 000017c2 esl[5].signature_header (end:0x000017c2) 000017c2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[0].owner = {zero} 000017d0 00 00 |..| 000017d2 f5 8f bd f7 1b e8 c3 7c bb d6 94 4e 47 2c |.......|...NG,| esl[5].signature[0].data (end:0x000017f2) 000017e0 45 0b 10 43 81 7b 97 29 14 48 7c 22 10 33 f3 07 |E..C.{.).H|".3..| 000017f0 9e 43 |.C| 000017f2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[1].owner = {zero} 00001800 00 00 |..| 00001802 04 97 01 57 de 52 cd ae 14 cf 17 ee 36 98 |...W.R......6.| esl[5].signature[1].data (end:0x00001822) 00001810 81 d6 24 5b 3a 6a b6 35 2e ab ae e5 88 a0 58 4b |..$[:j.5......XK| 00001820 03 03 |..| 00001822 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[2].owner = {zero} 00001830 00 00 |..| 00001832 f1 6b 5f c3 61 18 3f 58 71 20 e6 02 c0 d6 |.k_.a.?Xq ....| esl[5].signature[2].data (end:0x00001852) 00001840 57 73 af df e7 86 12 41 84 fa 70 80 52 58 d7 6d |Ws.....A..p.RX.m| 00001850 59 4c |YL| 00001852 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[3].owner = {zero} 00001860 00 00 |..| 00001862 7e 02 1f 15 e3 a6 7b 75 ac e8 84 99 9b ed |~.....{u......| esl[5].signature[3].data (end:0x00001882) 00001870 ff e3 42 13 79 2a 61 1e 40 e5 62 e8 7e 6b 9a 0c |..B.y*a.@.b.~k..| 00001880 b2 82 |..| 00001882 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |..............| esl[5].signature[4].owner = {zero} 00001890 00 00 |..| 00001892 a5 d1 09 b2 af a3 fa 90 87 8f 70 38 2b 23 |..........p8+#| esl[5].signature[4].data (end:0x000018b2) 000018a0 88 fc d2 fe ae ae 8a 51 b8 0a dd 04 8e 9f 87 6b |.......Q.......k| 000018b0 2a 4e |*N| 000018b2 efivar-39/tests/machine3/annotations/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f.txt000066400000000000000000001113421455652431600263010ustar00rootroot0000000000000000000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 8c 0e 00 00 |....| esl[0].signature_list_size = 3724 (0xe8c) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 80 b4 d9 69 |...i| esl[0].signature[0].data (end:0x0000004c) 00000030 31 bf 0d 02 fd 91 a6 1e 19 d1 4f 1d a4 52 e6 6d |1.........O..R.m| 00000040 b2 40 8c a8 60 4d 41 1f 92 65 9f 0a |.@..`MA..e..| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c f5 2f 83 a3 |./..| esl[0].signature[1].data (end:0x0000007c) 00000060 fa 9c fb d6 92 0f 72 28 24 db e4 03 45 34 d2 5b |......r($...E4.[| 00000070 85 07 24 6b 3b 95 7d ac 6e 1b ce 7a |..$k;.}.n..z| 0000007c bd 9a fa 77 |...w| esl[0].signature[2].owner = {microsoft} 00000080 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000008c c5 d9 d8 a1 |....| esl[0].signature[2].data (end:0x000000ac) 00000090 86 e2 c8 2d 09 af aa 2a 6f 7f 2e 73 87 0d 3e 64 |...-...*o..s..>d| 000000a0 f7 2c 4e 08 ef 67 79 6a 84 0f 0f bd |.,N..gyj....| 000000ac bd 9a fa 77 |...w| esl[0].signature[3].owner = {microsoft} 000000b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000bc 36 33 84 d1 |63..| esl[0].signature[3].data (end:0x000000dc) 000000c0 4d 1f 2e 0b 78 15 62 64 84 c4 59 ad 57 a3 18 ef |M...x.bd..Y.W...| 000000d0 43 96 26 60 48 d0 58 c5 a1 9b bf 76 |C.&`H.X....v| 000000dc bd 9a fa 77 |...w| esl[0].signature[4].owner = {microsoft} 000000e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000ec 1a ec 84 b8 |....| esl[0].signature[4].data (end:0x0000010c) 000000f0 4b 6c 65 a5 12 20 a9 be 71 81 96 52 30 21 0d 62 |Kle.. ..q..R0!.b| 00000100 d6 d3 3c 48 99 9c 6b 29 5a 2b 0a 06 |....h2.....'| 00000280 25 27 df b6 3d 49 d2 95 72 a6 f4 4c |%'..=I..r..L| 0000028c bd 9a fa 77 |...w| esl[0].signature[13].owner = {microsoft} 00000290 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000029c 07 5e ea 06 |.^..| esl[0].signature[13].data (end:0x000002bc) 000002a0 05 89 54 8b a0 60 b2 fe ed 10 da 3c 20 c7 fe 9b |..T..`.....< ...| 000002b0 17 cd 02 6b 94 e8 a6 83 b8 11 52 38 |...k......R8| 000002bc bd 9a fa 77 |...w| esl[0].signature[14].owner = {microsoft} 000002c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002cc 07 e6 c6 a8 |....| esl[0].signature[14].data (end:0x000002ec) 000002d0 58 64 6f b1 ef c6 79 03 fe 28 b1 16 01 1f 23 67 |Xdo...y..(....#g| 000002e0 fe 92 e6 be 2b 36 99 9e ff 39 d0 9e |....+6...9..| 000002ec bd 9a fa 77 |...w| esl[0].signature[15].owner = {microsoft} 000002f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002fc 09 df 5f 4e |.._N| esl[0].signature[15].data (end:0x0000031c) 00000300 51 12 08 ec 78 b9 6d 12 d0 81 25 fd b6 03 86 8d |Q...x.m...%.....| 00000310 e3 9f 6f 72 92 78 52 59 9b 65 9c 26 |..or.xRY.e.&| 0000031c bd 9a fa 77 |...w| esl[0].signature[16].owner = {microsoft} 00000320 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000032c 0b bb 43 92 |..C.| esl[0].signature[16].data (end:0x0000034c) 00000330 da ac 7a b8 9b 30 a4 ac 65 75 31 b9 7b fa ab 04 |..z..0..eu1.{...| 00000340 f9 0b 0d af e5 f9 b6 eb 90 a0 63 74 |..........ct| 0000034c bd 9a fa 77 |...w| esl[0].signature[17].owner = {microsoft} 00000350 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000035c 0c 18 93 39 |...9| esl[0].signature[17].data (end:0x0000037c) 00000360 76 2d f3 36 ab 3d d0 06 a4 63 df 71 5a 39 cf b0 |v-.6.=...c.qZ9..| 00000370 f4 92 46 5c 60 0e 6c 6b d7 bd 89 8c |..F\`.lk....| 0000037c bd 9a fa 77 |...w| esl[0].signature[18].owner = {microsoft} 00000380 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000038c 0d 0d be ca |....| esl[0].signature[18].data (end:0x000003ac) 00000390 6f 29 ec a0 6f 33 1a 7d 72 e4 88 4b 12 09 7f b3 |o)..o3.}r..K....| 000003a0 48 98 3a 2a 14 a0 d7 3f 4f 10 14 0f |H.:*...?O...| 000003ac bd 9a fa 77 |...w| esl[0].signature[19].owner = {microsoft} 000003b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003bc 0d c9 f3 fb |....| esl[0].signature[19].data (end:0x000003dc) 000003c0 99 96 21 48 c3 ca 83 36 32 75 8d 3e d4 fc 8d 0b |..!H...62u.>....| 000003d0 00 07 b9 5b 31 e6 52 8f 2a cd 5b fc |...[1.R.*.[.| 000003dc bd 9a fa 77 |...w| esl[0].signature[20].owner = {microsoft} 000003e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003ec 10 6f ac ea |.o..| esl[0].signature[20].data (end:0x0000040c) 000003f0 cf ec fd 4e 30 3b 74 f4 80 a0 80 98 e2 d0 80 2b |...N0;t........+| 00000400 93 6f 8e c7 74 ce 21 f3 16 86 68 9c |.o..t.!...h.| 0000040c bd 9a fa 77 |...w| esl[0].signature[21].owner = {microsoft} 00000410 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000041c 17 4e 3a 0b |.N:.| esl[0].signature[21].data (end:0x0000043c) 00000420 5b 43 c6 a6 07 bb d3 40 4f 05 34 1e 3d cf 39 62 |[C.....@O.4.=.9b| 00000430 67 ce 94 f8 b5 0e 2e 23 a9 da 92 0c |g......#....| 0000043c bd 9a fa 77 |...w| esl[0].signature[22].owner = {microsoft} 00000440 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000044c 18 33 34 29 |.34)| esl[0].signature[22].data (end:0x0000046c) 00000450 ff 05 62 ed 9f 97 03 3e 11 48 dc ee e5 2d be 2e |..b....>.H...-..| 00000460 49 6d 54 10 b5 cf d6 c8 64 d2 d1 0f |ImT.....d...| 0000046c bd 9a fa 77 |...w| esl[0].signature[23].owner = {microsoft} 00000470 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000047c 2b 99 cf 26 |+..&| esl[0].signature[23].data (end:0x0000049c) 00000480 42 2e 92 fe 36 5f bf 4b c3 0d 27 08 6c 9e e1 4b |B...6_.K..'.l..K| 00000490 7a 6f ff 44 fb 2f 6b 90 01 69 99 39 |zo.D./k..i.9| 0000049c bd 9a fa 77 |...w| esl[0].signature[24].owner = {microsoft} 000004a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004ac 2b bf 2c a7 |+.,.| esl[0].signature[24].data (end:0x000004cc) 000004b0 b8 f1 d9 1f 27 ee 52 b6 fb 2a 5d d0 49 b8 5a 2b |....'.R..*].I.Z+| 000004c0 9b 52 9c 5d 66 62 06 81 04 b0 55 f8 |.R.]fb....U.| 000004cc bd 9a fa 77 |...w| esl[0].signature[25].owner = {microsoft} 000004d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004dc 2c 73 d9 33 |,s.3| esl[0].signature[25].data (end:0x000004fc) 000004e0 25 ba 6d cb e5 89 d4 a4 c6 3c 5b 93 55 59 ef 92 |%.m......<[.UY..| 000004f0 fb f0 50 ed 50 c4 e2 08 52 06 f1 7d |..P.P...R..}| 000004fc bd 9a fa 77 |...w| esl[0].signature[26].owner = {microsoft} 00000500 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000050c 2e 70 91 67 |.p.g| esl[0].signature[26].data (end:0x0000052c) 00000510 86 a6 f7 73 51 1f a7 18 1f ab 0f 1d 70 b5 57 c6 |...sQ.......p.W.| 00000520 32 2e a9 23 b2 a8 d3 b9 2b 51 af 7d |2..#....+Q.}| 0000052c bd 9a fa 77 |...w| esl[0].signature[27].owner = {microsoft} 00000530 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000053c 30 66 28 fa |0f(.| esl[0].signature[27].data (end:0x0000055c) 00000540 54 77 30 57 28 ba 4a 46 7d e7 d0 38 7a 54 f5 69 |Tw0W(.JF}..8zT.i| 00000550 d3 76 9f ce 5e 75 ec 89 d2 8d 15 93 |.v..^u......| 0000055c bd 9a fa 77 |...w| esl[0].signature[28].owner = {microsoft} 00000560 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000056c 36 08 ed ba |6...| esl[0].signature[28].data (end:0x0000058c) 00000570 f5 ad 0f 41 a4 14 a1 77 7a bf 2f af 5e 67 03 34 |...A...wz./.^g.4| 00000580 67 5e c3 99 5e 69 35 82 9e 0c aa d2 |g^..^i5.....| 0000058c bd 9a fa 77 |...w| esl[0].signature[29].owner = {microsoft} 00000590 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000059c 38 41 d2 21 |8A.!| esl[0].signature[29].data (end:0x000005bc) 000005a0 36 8d 15 83 d7 5c 0a 02 e6 21 60 39 4d 6c 4e 0a |6....\...!`9MlN.| 000005b0 67 60 b6 f6 07 b9 03 62 bc 85 5b 02 |g`.....b..[.| 000005bc bd 9a fa 77 |...w| esl[0].signature[30].owner = {microsoft} 000005c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005cc 3f ce 9b 9f |?...| esl[0].signature[30].data (end:0x000005ec) 000005d0 df 3e f0 9d 54 52 b0 f9 5e e4 81 c2 b7 f0 6d 74 |.>..TR..^.....mt| 000005e0 3a 73 79 71 55 8e 70 13 6a ce 3e 73 |:syqU.p.j.>s| 000005ec bd 9a fa 77 |...w| esl[0].signature[31].owner = {microsoft} 000005f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005fc 43 97 da ca |C...| esl[0].signature[31].data (end:0x0000061c) 00000600 83 9e 7f 63 07 7c b5 0c 92 df 43 bc 2d 2f b2 a8 |...c.|....C.-/..| 00000610 f5 9f 26 fc 7a 0e 4b d4 d9 75 16 92 |..&.z.K..u..| 0000061c bd 9a fa 77 |...w| esl[0].signature[32].owner = {microsoft} 00000620 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000062c 47 cc 08 61 |G..a| esl[0].signature[32].data (end:0x0000064c) 00000630 27 e2 06 9a 86 e0 3a 6b ef 2c d4 10 f8 c5 5a 6d |'.....:k.,....Zm| 00000640 6b db 36 21 68 c3 1b 2c e3 2a 5a df |k.6!h..,.*Z.| 0000064c bd 9a fa 77 |...w| esl[0].signature[33].owner = {microsoft} 00000650 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000065c 51 88 31 fe |Q.1.| esl[0].signature[33].data (end:0x0000067c) 00000660 73 82 b5 14 d0 3e 15 c6 21 22 8b 8a b6 54 79 bd |s....>..!"...Ty.| 00000670 0c bf a3 c5 c1 d0 f4 8d 9c 30 61 35 |.........0a5| 0000067c bd 9a fa 77 |...w| esl[0].signature[34].owner = {microsoft} 00000680 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000068c 5a e9 49 ea |Z.I.| esl[0].signature[34].data (end:0x000006ac) 00000690 88 55 eb 93 e4 39 db c6 5b da 2e 42 85 2c 2f df |.U...9..[..B.,/.| 000006a0 67 89 fa 14 67 36 e3 c3 41 0f 2b 5c |g...g6..A.+\| 000006ac bd 9a fa 77 |...w| esl[0].signature[35].owner = {microsoft} 000006b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006bc 6b 1d 13 80 |k...| esl[0].signature[35].data (end:0x000006dc) 000006c0 78 e4 41 8a a6 8d eb 7b b3 5e 06 60 92 cf 47 9e |x.A....{.^.`..G.| 000006d0 eb 8c e4 cd 12 e7 d0 72 cc b4 2f 66 |.......r../f| 000006dc bd 9a fa 77 |...w| esl[0].signature[36].owner = {microsoft} 000006e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006ec 6c 88 54 47 |l.TG| esl[0].signature[36].data (end:0x0000070c) 000006f0 8d d5 59 e2 93 51 b8 26 c0 6c b8 bf ef 2b 94 ad |..Y..Q.&.l...+..| 00000700 35 38 35 87 72 d1 93 f8 2e d1 ca 11 |585.r.......| 0000070c bd 9a fa 77 |...w| esl[0].signature[37].owner = {microsoft} 00000710 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000071c 6f 14 28 ff |o.(.| esl[0].signature[37].data (end:0x0000073c) 00000720 71 c9 db 0e d5 af 1f 2e 7b bf cb ab 64 7c c2 65 |q.......{...d|.e| 00000730 dd f5 b2 93 cd b6 26 f5 0a 3a 78 5e |......&..:x^| 0000073c bd 9a fa 77 |...w| esl[0].signature[38].owner = {microsoft} 00000740 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000074c 71 f2 90 6f |q..o| esl[0].signature[38].data (end:0x0000076c) 00000750 d2 22 49 7e 54 a3 46 62 ab 24 97 fc c8 10 20 77 |."I~T.Fb.$.... w| 00000760 0f f5 13 68 e9 e3 d9 bf cb fd 63 75 |...h......cu| 0000076c bd 9a fa 77 |...w| esl[0].signature[39].owner = {microsoft} 00000770 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000077c 72 6b 3e b6 |rk>.| esl[0].signature[39].data (end:0x0000079c) 00000780 54 04 6a 30 f3 f8 3d 9b 96 ce 03 f6 70 e9 a8 06 |T.j0..=.....p...| 00000790 d1 70 8a 03 71 e6 2d c4 9d 2c 23 c1 |.p..q.-..,#.| 0000079c bd 9a fa 77 |...w| esl[0].signature[40].owner = {microsoft} 000007a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007ac 72 e0 bd 18 |r...| esl[0].signature[40].data (end:0x000007cc) 000007b0 67 cf 5d 9d 56 ab 15 8a df 3b dd bc 82 bf 32 a8 |g.].V....;....2.| 000007c0 d8 aa 1d 8c 5e 2f 6d f2 94 28 d6 d8 |....^/m..(..| 000007cc bd 9a fa 77 |...w| esl[0].signature[41].owner = {microsoft} 000007d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007dc 78 27 af 99 |x'..| esl[0].signature[41].data (end:0x000007fc) 000007e0 36 2c fa f0 71 7d ad e4 b1 bf e0 43 8a d1 71 c1 |6,..q}.....C..q.| 000007f0 5a dd c2 48 b7 5b f8 ca a4 4b b2 c5 |Z..H.[...K..| 000007fc bd 9a fa 77 |...w| esl[0].signature[42].owner = {microsoft} 00000800 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000080c 81 a8 b9 65 |...e| esl[0].signature[42].data (end:0x0000082c) 00000810 bb 84 d3 87 6b 94 29 a9 54 81 cc 95 53 18 cf aa |....k.).T...S...| 00000820 14 12 d8 08 c8 a3 3b fd 33 ff f0 e4 |......;.3...| 0000082c bd 9a fa 77 |...w| esl[0].signature[43].owner = {microsoft} 00000830 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000083c 82 db 3b ce |..;.| esl[0].signature[43].data (end:0x0000085c) 00000840 b4 f6 08 43 ce 9d 97 c3 d1 87 cd 9b 59 41 cd 3d |...C........YA.=| 00000850 e8 10 0e 58 6f 2b da 56 37 57 5f 67 |...Xo+.V7W_g| 0000085c bd 9a fa 77 |...w| esl[0].signature[44].owner = {microsoft} 00000860 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000086c 89 5a 97 85 |.Z..| esl[0].signature[44].data (end:0x0000088c) 00000870 f6 17 ca 1d 7e d4 4f c1 a1 47 0b 71 f3 f1 22 38 |....~.O..G.q.."8| 00000880 62 d9 ff 9d cc 3a e2 df 92 16 3d af |b....:....=.| 0000088c bd 9a fa 77 |...w| esl[0].signature[45].owner = {microsoft} 00000890 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000089c 8a d6 48 59 |..HY| esl[0].signature[45].data (end:0x000008bc) 000008a0 f1 95 b5 f5 8d af aa 94 0b 6a 61 67 ac d6 7a 88 |.........jag..z.| 000008b0 6e 8f 46 93 64 17 72 21 c5 59 45 b9 |n.F.d.r!.YE.| 000008bc bd 9a fa 77 |...w| esl[0].signature[46].owner = {microsoft} 000008c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008cc 8b f4 34 b4 |..4.| esl[0].signature[46].data (end:0x000008ec) 000008d0 9e 00 cc f7 15 02 a2 cd 90 08 65 cb 01 ec 3b 3d |..........e...;=| 000008e0 a0 3c 35 be 50 5f df 7b d5 63 f5 21 |.<5.P_.{.c.!| 000008ec bd 9a fa 77 |...w| esl[0].signature[47].owner = {microsoft} 000008f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008fc 8d 8e a2 89 |....| esl[0].signature[47].data (end:0x0000091c) 00000900 cf e7 0a 1c 07 ab 73 65 cb 28 ee 51 ed d3 3c f2 |......se.(.Q..<.| 00000910 50 6d e8 88 fb ad d6 0e bf 80 48 1c |Pm........H.| 0000091c bd 9a fa 77 |...w| esl[0].signature[48].owner = {microsoft} 00000920 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000092c 99 98 d3 63 |...c| esl[0].signature[48].data (end:0x0000094c) 00000930 c4 91 be 16 bd 74 ba 10 b9 4d 92 91 00 16 11 73 |.....t...M.....s| 00000940 6f dc a6 43 a3 66 64 bc 0f 31 5a 42 |o..C.fd..1ZB| 0000094c bd 9a fa 77 |...w| esl[0].signature[49].owner = {microsoft} 00000950 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000095c 9e 4a 69 17 |.Ji.| esl[0].signature[49].data (end:0x0000097c) 00000960 31 61 68 2e 55 fd e8 fe f5 60 eb 88 ec 1f fe dc |1ah.U....`......| 00000970 af 04 00 1f 66 c0 ca f7 07 b2 b7 34 |....f......4| 0000097c bd 9a fa 77 |...w| esl[0].signature[50].owner = {microsoft} 00000980 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000098c a6 b5 15 1f |....| esl[0].signature[50].data (end:0x000009ac) 00000990 36 55 d3 a2 af 0d 47 27 59 79 6b e4 a4 20 0e 54 |6U....G'Yyk.. .T| 000009a0 95 a7 d8 69 75 4c 48 48 85 74 08 a7 |...iuLHH.t..| 000009ac bd 9a fa 77 |...w| esl[0].signature[51].owner = {microsoft} 000009b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009bc a7 f3 2f 50 |../P| esl[0].signature[51].data (end:0x000009dc) 000009c0 8d 4e b0 fe ad 9a 08 7e f9 4e d1 ba 0a ec 5d e6 |.N.....~.N....].| 000009d0 f7 ef 6f f0 a6 2b 93 be df 5d 45 8d |..o..+...]E.| 000009dc bd 9a fa 77 |...w| esl[0].signature[52].owner = {microsoft} 000009e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009ec ad 68 26 e1 |.h&.| esl[0].signature[52].data (end:0x00000a0c) 000009f0 94 6d 26 d3 ea f3 68 5c 88 d9 7d 85 de 3b 4d cb |.m&...h\..}..;M.| 00000a00 3d 0e e2 ae 81 c7 05 60 d1 3c 57 20 |=......`...$Q| 00000c10 3f bc 65 59 57 d7 35 fa 29 f5 40 ce |?.eYW.5.).@.| 00000c1c bd 9a fa 77 |...w| esl[0].signature[64].owner = {microsoft} 00000c20 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c2c d8 cb eb 97 |....| esl[0].signature[64].data (end:0x00000c4c) 00000c30 35 f5 67 2b 36 7e 4f 96 cd c7 49 69 61 5d 17 07 |5.g+6~O...Iia]..| 00000c40 4a e9 6c 72 4d 42 ce 02 16 f8 f3 fa |J.lrMB......| 00000c4c bd 9a fa 77 |...w| esl[0].signature[65].owner = {microsoft} 00000c50 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c5c e9 2c 22 eb |.,".| esl[0].signature[65].data (end:0x00000c7c) 00000c60 3b 56 42 d6 5c 1e c2 ca f2 47 d2 59 47 38 ee bb |;VB.\....G.YG8..| 00000c70 7f b3 84 1a 44 95 6f 59 e2 b0 d1 fa |....D.oY....| 00000c7c bd 9a fa 77 |...w| esl[0].signature[66].owner = {microsoft} 00000c80 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c8c fd dd 6e 3d |..n=| esl[0].signature[66].data (end:0x00000cac) 00000c90 29 ea 84 c7 74 3d ad 4a 1b db c7 00 b5 fe c1 b3 |)...t=.J........| 00000ca0 91 f9 32 40 90 86 ac c7 1d d6 db d8 |..2@........| 00000cac bd 9a fa 77 |...w| esl[0].signature[67].owner = {microsoft} 00000cb0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cbc fe 63 a8 4f |.c.O| esl[0].signature[67].data (end:0x00000cdc) 00000cc0 78 2c c9 d3 fc f2 cc f9 fc 11 fb d0 37 60 87 87 |x,..........7`..| 00000cd0 58 d2 62 85 ed 12 66 9b dc 6e 6d 01 |X.b...f..nm.| 00000cdc bd 9a fa 77 |...w| esl[0].signature[68].owner = {microsoft} 00000ce0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cec fe cf b2 32 |...2| esl[0].signature[68].data (end:0x00000d0c) 00000cf0 d1 2e 99 4b 6d 48 5d 2c 71 67 72 8a a5 52 59 84 |...KmH],qgr..RY.| 00000d00 ad 5c a6 1e 75 16 22 1f 07 9a 14 36 |.\..u."....6| 00000d0c bd 9a fa 77 |...w| esl[0].signature[69].owner = {microsoft} 00000d10 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d1c ca 17 1d 61 |...a| esl[0].signature[69].data (end:0x00000d3c) 00000d20 4a 8d 7e 12 1c 93 94 8c d0 fe 55 d3 99 81 f9 d1 |J.~.......U.....| 00000d30 1a a9 6e 03 45 0a 41 52 27 c2 c6 5b |..n.E.AR'..[| 00000d3c bd 9a fa 77 |...w| esl[0].signature[70].owner = {microsoft} 00000d40 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d4c 55 b9 9b 0d |U...| esl[0].signature[70].data (end:0x00000d6c) 00000d50 e5 3d bc fe 48 5a a9 c7 37 cf 3f b6 16 ef 3d 91 |.=..HZ..7.?...=.| 00000d60 fa b5 99 aa 7c ab 19 ed a7 63 b5 ba |....|....c..| 00000d6c bd 9a fa 77 |...w| esl[0].signature[71].owner = {microsoft} 00000d70 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d7c 77 dd 19 0f |w...| esl[0].signature[71].data (end:0x00000d9c) 00000d80 a3 0d 88 ff 5e 3b 01 1a 0a e6 1e 62 09 78 0c 13 |....^;.....b.x..| 00000d90 0b 53 5e cb 87 e6 f0 88 8a 0b 6b 2f |.S^.......k/| 00000d9c bd 9a fa 77 |...w| esl[0].signature[72].owner = {microsoft} 00000da0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000dac c8 3c b1 39 |.<.9| esl[0].signature[72].data (end:0x00000dcc) 00000db0 22 ad 99 f5 60 74 46 75 dd 37 cc 94 dc ad 5a 1f |"...`tFu.7....Z.| 00000dc0 cb a6 47 2f ee 34 11 71 d9 39 e8 84 |..G/.4.q.9..| 00000dcc bd 9a fa 77 |...w| esl[0].signature[73].owner = {microsoft} 00000dd0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000ddc 3b 02 87 53 |;..S| esl[0].signature[73].data (end:0x00000dfc) 00000de0 3e 0c c3 d0 ec 1a a8 23 cb f0 a9 41 aa d8 72 15 |>......#...A..r.| 00000df0 79 d1 c4 99 80 2d d1 c3 a6 36 b8 a9 |y....-...6..| 00000dfc bd 9a fa 77 |...w| esl[0].signature[74].owner = {microsoft} 00000e00 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e0c 93 9a ee f4 |....| esl[0].signature[74].data (end:0x00000e2c) 00000e10 f5 fa 51 e2 33 40 c3 f2 e4 90 48 ce 88 72 52 6a |..Q.3@....H..rRj| 00000e20 fd f7 52 c3 a7 f3 a3 f2 bc 9f 60 49 |..R.......`I| 00000e2c bd 9a fa 77 |...w| esl[0].signature[75].owner = {microsoft} 00000e30 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e3c 64 57 5b d9 |dW[.| esl[0].signature[75].data (end:0x00000e5c) 00000e40 12 78 9a 2e 14 ad 56 f6 34 1f 52 af 6b f8 0c f9 |.x....V.4.R.k...| 00000e50 44 00 78 59 75 e9 f0 4e 2d 64 d7 45 |D.xYu..N-d.E| 00000e5c bd 9a fa 77 |...w| esl[0].signature[76].owner = {microsoft} 00000e60 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e6c 45 c7 c8 ae |E...| esl[0].signature[76].data (end:0x00000e8c) 00000e70 75 0a cf bb 48 fc 37 52 7d 64 12 dd 64 4d ae d8 |u...H.7R}d..dM..| 00000e80 91 3c cd 8a 24 c9 4d 85 69 67 df 8e |.<..$.M.ig..| 00000e8c efivar-39/tests/machine3/annotations/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c.txt000066400000000000000000001113421455652431600275040ustar00rootroot0000000000000000000000 26 16 c4 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |&...LP.@..A.6.C(| esl[0].signature_type = {sha256} 00000010 8c 0e 00 00 |....| esl[0].signature_list_size = 3724 (0xe8c) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 30 00 00 00 |0...| esl[0].signature_size = 48 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 80 b4 d9 69 |...i| esl[0].signature[0].data (end:0x0000004c) 00000030 31 bf 0d 02 fd 91 a6 1e 19 d1 4f 1d a4 52 e6 6d |1.........O..R.m| 00000040 b2 40 8c a8 60 4d 41 1f 92 65 9f 0a |.@..`MA..e..| 0000004c bd 9a fa 77 |...w| esl[0].signature[1].owner = {microsoft} 00000050 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000005c f5 2f 83 a3 |./..| esl[0].signature[1].data (end:0x0000007c) 00000060 fa 9c fb d6 92 0f 72 28 24 db e4 03 45 34 d2 5b |......r($...E4.[| 00000070 85 07 24 6b 3b 95 7d ac 6e 1b ce 7a |..$k;.}.n..z| 0000007c bd 9a fa 77 |...w| esl[0].signature[2].owner = {microsoft} 00000080 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000008c c5 d9 d8 a1 |....| esl[0].signature[2].data (end:0x000000ac) 00000090 86 e2 c8 2d 09 af aa 2a 6f 7f 2e 73 87 0d 3e 64 |...-...*o..s..>d| 000000a0 f7 2c 4e 08 ef 67 79 6a 84 0f 0f bd |.,N..gyj....| 000000ac bd 9a fa 77 |...w| esl[0].signature[3].owner = {microsoft} 000000b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000bc 36 33 84 d1 |63..| esl[0].signature[3].data (end:0x000000dc) 000000c0 4d 1f 2e 0b 78 15 62 64 84 c4 59 ad 57 a3 18 ef |M...x.bd..Y.W...| 000000d0 43 96 26 60 48 d0 58 c5 a1 9b bf 76 |C.&`H.X....v| 000000dc bd 9a fa 77 |...w| esl[0].signature[4].owner = {microsoft} 000000e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000000ec 1a ec 84 b8 |....| esl[0].signature[4].data (end:0x0000010c) 000000f0 4b 6c 65 a5 12 20 a9 be 71 81 96 52 30 21 0d 62 |Kle.. ..q..R0!.b| 00000100 d6 d3 3c 48 99 9c 6b 29 5a 2b 0a 06 |....h2.....'| 00000280 25 27 df b6 3d 49 d2 95 72 a6 f4 4c |%'..=I..r..L| 0000028c bd 9a fa 77 |...w| esl[0].signature[13].owner = {microsoft} 00000290 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000029c 07 5e ea 06 |.^..| esl[0].signature[13].data (end:0x000002bc) 000002a0 05 89 54 8b a0 60 b2 fe ed 10 da 3c 20 c7 fe 9b |..T..`.....< ...| 000002b0 17 cd 02 6b 94 e8 a6 83 b8 11 52 38 |...k......R8| 000002bc bd 9a fa 77 |...w| esl[0].signature[14].owner = {microsoft} 000002c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002cc 07 e6 c6 a8 |....| esl[0].signature[14].data (end:0x000002ec) 000002d0 58 64 6f b1 ef c6 79 03 fe 28 b1 16 01 1f 23 67 |Xdo...y..(....#g| 000002e0 fe 92 e6 be 2b 36 99 9e ff 39 d0 9e |....+6...9..| 000002ec bd 9a fa 77 |...w| esl[0].signature[15].owner = {microsoft} 000002f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000002fc 09 df 5f 4e |.._N| esl[0].signature[15].data (end:0x0000031c) 00000300 51 12 08 ec 78 b9 6d 12 d0 81 25 fd b6 03 86 8d |Q...x.m...%.....| 00000310 e3 9f 6f 72 92 78 52 59 9b 65 9c 26 |..or.xRY.e.&| 0000031c bd 9a fa 77 |...w| esl[0].signature[16].owner = {microsoft} 00000320 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000032c 0b bb 43 92 |..C.| esl[0].signature[16].data (end:0x0000034c) 00000330 da ac 7a b8 9b 30 a4 ac 65 75 31 b9 7b fa ab 04 |..z..0..eu1.{...| 00000340 f9 0b 0d af e5 f9 b6 eb 90 a0 63 74 |..........ct| 0000034c bd 9a fa 77 |...w| esl[0].signature[17].owner = {microsoft} 00000350 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000035c 0c 18 93 39 |...9| esl[0].signature[17].data (end:0x0000037c) 00000360 76 2d f3 36 ab 3d d0 06 a4 63 df 71 5a 39 cf b0 |v-.6.=...c.qZ9..| 00000370 f4 92 46 5c 60 0e 6c 6b d7 bd 89 8c |..F\`.lk....| 0000037c bd 9a fa 77 |...w| esl[0].signature[18].owner = {microsoft} 00000380 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000038c 0d 0d be ca |....| esl[0].signature[18].data (end:0x000003ac) 00000390 6f 29 ec a0 6f 33 1a 7d 72 e4 88 4b 12 09 7f b3 |o)..o3.}r..K....| 000003a0 48 98 3a 2a 14 a0 d7 3f 4f 10 14 0f |H.:*...?O...| 000003ac bd 9a fa 77 |...w| esl[0].signature[19].owner = {microsoft} 000003b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003bc 0d c9 f3 fb |....| esl[0].signature[19].data (end:0x000003dc) 000003c0 99 96 21 48 c3 ca 83 36 32 75 8d 3e d4 fc 8d 0b |..!H...62u.>....| 000003d0 00 07 b9 5b 31 e6 52 8f 2a cd 5b fc |...[1.R.*.[.| 000003dc bd 9a fa 77 |...w| esl[0].signature[20].owner = {microsoft} 000003e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000003ec 10 6f ac ea |.o..| esl[0].signature[20].data (end:0x0000040c) 000003f0 cf ec fd 4e 30 3b 74 f4 80 a0 80 98 e2 d0 80 2b |...N0;t........+| 00000400 93 6f 8e c7 74 ce 21 f3 16 86 68 9c |.o..t.!...h.| 0000040c bd 9a fa 77 |...w| esl[0].signature[21].owner = {microsoft} 00000410 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000041c 17 4e 3a 0b |.N:.| esl[0].signature[21].data (end:0x0000043c) 00000420 5b 43 c6 a6 07 bb d3 40 4f 05 34 1e 3d cf 39 62 |[C.....@O.4.=.9b| 00000430 67 ce 94 f8 b5 0e 2e 23 a9 da 92 0c |g......#....| 0000043c bd 9a fa 77 |...w| esl[0].signature[22].owner = {microsoft} 00000440 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000044c 18 33 34 29 |.34)| esl[0].signature[22].data (end:0x0000046c) 00000450 ff 05 62 ed 9f 97 03 3e 11 48 dc ee e5 2d be 2e |..b....>.H...-..| 00000460 49 6d 54 10 b5 cf d6 c8 64 d2 d1 0f |ImT.....d...| 0000046c bd 9a fa 77 |...w| esl[0].signature[23].owner = {microsoft} 00000470 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000047c 2b 99 cf 26 |+..&| esl[0].signature[23].data (end:0x0000049c) 00000480 42 2e 92 fe 36 5f bf 4b c3 0d 27 08 6c 9e e1 4b |B...6_.K..'.l..K| 00000490 7a 6f ff 44 fb 2f 6b 90 01 69 99 39 |zo.D./k..i.9| 0000049c bd 9a fa 77 |...w| esl[0].signature[24].owner = {microsoft} 000004a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004ac 2b bf 2c a7 |+.,.| esl[0].signature[24].data (end:0x000004cc) 000004b0 b8 f1 d9 1f 27 ee 52 b6 fb 2a 5d d0 49 b8 5a 2b |....'.R..*].I.Z+| 000004c0 9b 52 9c 5d 66 62 06 81 04 b0 55 f8 |.R.]fb....U.| 000004cc bd 9a fa 77 |...w| esl[0].signature[25].owner = {microsoft} 000004d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000004dc 2c 73 d9 33 |,s.3| esl[0].signature[25].data (end:0x000004fc) 000004e0 25 ba 6d cb e5 89 d4 a4 c6 3c 5b 93 55 59 ef 92 |%.m......<[.UY..| 000004f0 fb f0 50 ed 50 c4 e2 08 52 06 f1 7d |..P.P...R..}| 000004fc bd 9a fa 77 |...w| esl[0].signature[26].owner = {microsoft} 00000500 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000050c 2e 70 91 67 |.p.g| esl[0].signature[26].data (end:0x0000052c) 00000510 86 a6 f7 73 51 1f a7 18 1f ab 0f 1d 70 b5 57 c6 |...sQ.......p.W.| 00000520 32 2e a9 23 b2 a8 d3 b9 2b 51 af 7d |2..#....+Q.}| 0000052c bd 9a fa 77 |...w| esl[0].signature[27].owner = {microsoft} 00000530 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000053c 30 66 28 fa |0f(.| esl[0].signature[27].data (end:0x0000055c) 00000540 54 77 30 57 28 ba 4a 46 7d e7 d0 38 7a 54 f5 69 |Tw0W(.JF}..8zT.i| 00000550 d3 76 9f ce 5e 75 ec 89 d2 8d 15 93 |.v..^u......| 0000055c bd 9a fa 77 |...w| esl[0].signature[28].owner = {microsoft} 00000560 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000056c 36 08 ed ba |6...| esl[0].signature[28].data (end:0x0000058c) 00000570 f5 ad 0f 41 a4 14 a1 77 7a bf 2f af 5e 67 03 34 |...A...wz./.^g.4| 00000580 67 5e c3 99 5e 69 35 82 9e 0c aa d2 |g^..^i5.....| 0000058c bd 9a fa 77 |...w| esl[0].signature[29].owner = {microsoft} 00000590 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000059c 38 41 d2 21 |8A.!| esl[0].signature[29].data (end:0x000005bc) 000005a0 36 8d 15 83 d7 5c 0a 02 e6 21 60 39 4d 6c 4e 0a |6....\...!`9MlN.| 000005b0 67 60 b6 f6 07 b9 03 62 bc 85 5b 02 |g`.....b..[.| 000005bc bd 9a fa 77 |...w| esl[0].signature[30].owner = {microsoft} 000005c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005cc 3f ce 9b 9f |?...| esl[0].signature[30].data (end:0x000005ec) 000005d0 df 3e f0 9d 54 52 b0 f9 5e e4 81 c2 b7 f0 6d 74 |.>..TR..^.....mt| 000005e0 3a 73 79 71 55 8e 70 13 6a ce 3e 73 |:syqU.p.j.>s| 000005ec bd 9a fa 77 |...w| esl[0].signature[31].owner = {microsoft} 000005f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000005fc 43 97 da ca |C...| esl[0].signature[31].data (end:0x0000061c) 00000600 83 9e 7f 63 07 7c b5 0c 92 df 43 bc 2d 2f b2 a8 |...c.|....C.-/..| 00000610 f5 9f 26 fc 7a 0e 4b d4 d9 75 16 92 |..&.z.K..u..| 0000061c bd 9a fa 77 |...w| esl[0].signature[32].owner = {microsoft} 00000620 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000062c 47 cc 08 61 |G..a| esl[0].signature[32].data (end:0x0000064c) 00000630 27 e2 06 9a 86 e0 3a 6b ef 2c d4 10 f8 c5 5a 6d |'.....:k.,....Zm| 00000640 6b db 36 21 68 c3 1b 2c e3 2a 5a df |k.6!h..,.*Z.| 0000064c bd 9a fa 77 |...w| esl[0].signature[33].owner = {microsoft} 00000650 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000065c 51 88 31 fe |Q.1.| esl[0].signature[33].data (end:0x0000067c) 00000660 73 82 b5 14 d0 3e 15 c6 21 22 8b 8a b6 54 79 bd |s....>..!"...Ty.| 00000670 0c bf a3 c5 c1 d0 f4 8d 9c 30 61 35 |.........0a5| 0000067c bd 9a fa 77 |...w| esl[0].signature[34].owner = {microsoft} 00000680 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000068c 5a e9 49 ea |Z.I.| esl[0].signature[34].data (end:0x000006ac) 00000690 88 55 eb 93 e4 39 db c6 5b da 2e 42 85 2c 2f df |.U...9..[..B.,/.| 000006a0 67 89 fa 14 67 36 e3 c3 41 0f 2b 5c |g...g6..A.+\| 000006ac bd 9a fa 77 |...w| esl[0].signature[35].owner = {microsoft} 000006b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006bc 6b 1d 13 80 |k...| esl[0].signature[35].data (end:0x000006dc) 000006c0 78 e4 41 8a a6 8d eb 7b b3 5e 06 60 92 cf 47 9e |x.A....{.^.`..G.| 000006d0 eb 8c e4 cd 12 e7 d0 72 cc b4 2f 66 |.......r../f| 000006dc bd 9a fa 77 |...w| esl[0].signature[36].owner = {microsoft} 000006e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000006ec 6c 88 54 47 |l.TG| esl[0].signature[36].data (end:0x0000070c) 000006f0 8d d5 59 e2 93 51 b8 26 c0 6c b8 bf ef 2b 94 ad |..Y..Q.&.l...+..| 00000700 35 38 35 87 72 d1 93 f8 2e d1 ca 11 |585.r.......| 0000070c bd 9a fa 77 |...w| esl[0].signature[37].owner = {microsoft} 00000710 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000071c 6f 14 28 ff |o.(.| esl[0].signature[37].data (end:0x0000073c) 00000720 71 c9 db 0e d5 af 1f 2e 7b bf cb ab 64 7c c2 65 |q.......{...d|.e| 00000730 dd f5 b2 93 cd b6 26 f5 0a 3a 78 5e |......&..:x^| 0000073c bd 9a fa 77 |...w| esl[0].signature[38].owner = {microsoft} 00000740 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000074c 71 f2 90 6f |q..o| esl[0].signature[38].data (end:0x0000076c) 00000750 d2 22 49 7e 54 a3 46 62 ab 24 97 fc c8 10 20 77 |."I~T.Fb.$.... w| 00000760 0f f5 13 68 e9 e3 d9 bf cb fd 63 75 |...h......cu| 0000076c bd 9a fa 77 |...w| esl[0].signature[39].owner = {microsoft} 00000770 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000077c 72 6b 3e b6 |rk>.| esl[0].signature[39].data (end:0x0000079c) 00000780 54 04 6a 30 f3 f8 3d 9b 96 ce 03 f6 70 e9 a8 06 |T.j0..=.....p...| 00000790 d1 70 8a 03 71 e6 2d c4 9d 2c 23 c1 |.p..q.-..,#.| 0000079c bd 9a fa 77 |...w| esl[0].signature[40].owner = {microsoft} 000007a0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007ac 72 e0 bd 18 |r...| esl[0].signature[40].data (end:0x000007cc) 000007b0 67 cf 5d 9d 56 ab 15 8a df 3b dd bc 82 bf 32 a8 |g.].V....;....2.| 000007c0 d8 aa 1d 8c 5e 2f 6d f2 94 28 d6 d8 |....^/m..(..| 000007cc bd 9a fa 77 |...w| esl[0].signature[41].owner = {microsoft} 000007d0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000007dc 78 27 af 99 |x'..| esl[0].signature[41].data (end:0x000007fc) 000007e0 36 2c fa f0 71 7d ad e4 b1 bf e0 43 8a d1 71 c1 |6,..q}.....C..q.| 000007f0 5a dd c2 48 b7 5b f8 ca a4 4b b2 c5 |Z..H.[...K..| 000007fc bd 9a fa 77 |...w| esl[0].signature[42].owner = {microsoft} 00000800 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000080c 81 a8 b9 65 |...e| esl[0].signature[42].data (end:0x0000082c) 00000810 bb 84 d3 87 6b 94 29 a9 54 81 cc 95 53 18 cf aa |....k.).T...S...| 00000820 14 12 d8 08 c8 a3 3b fd 33 ff f0 e4 |......;.3...| 0000082c bd 9a fa 77 |...w| esl[0].signature[43].owner = {microsoft} 00000830 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000083c 82 db 3b ce |..;.| esl[0].signature[43].data (end:0x0000085c) 00000840 b4 f6 08 43 ce 9d 97 c3 d1 87 cd 9b 59 41 cd 3d |...C........YA.=| 00000850 e8 10 0e 58 6f 2b da 56 37 57 5f 67 |...Xo+.V7W_g| 0000085c bd 9a fa 77 |...w| esl[0].signature[44].owner = {microsoft} 00000860 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000086c 89 5a 97 85 |.Z..| esl[0].signature[44].data (end:0x0000088c) 00000870 f6 17 ca 1d 7e d4 4f c1 a1 47 0b 71 f3 f1 22 38 |....~.O..G.q.."8| 00000880 62 d9 ff 9d cc 3a e2 df 92 16 3d af |b....:....=.| 0000088c bd 9a fa 77 |...w| esl[0].signature[45].owner = {microsoft} 00000890 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000089c 8a d6 48 59 |..HY| esl[0].signature[45].data (end:0x000008bc) 000008a0 f1 95 b5 f5 8d af aa 94 0b 6a 61 67 ac d6 7a 88 |.........jag..z.| 000008b0 6e 8f 46 93 64 17 72 21 c5 59 45 b9 |n.F.d.r!.YE.| 000008bc bd 9a fa 77 |...w| esl[0].signature[46].owner = {microsoft} 000008c0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008cc 8b f4 34 b4 |..4.| esl[0].signature[46].data (end:0x000008ec) 000008d0 9e 00 cc f7 15 02 a2 cd 90 08 65 cb 01 ec 3b 3d |..........e...;=| 000008e0 a0 3c 35 be 50 5f df 7b d5 63 f5 21 |.<5.P_.{.c.!| 000008ec bd 9a fa 77 |...w| esl[0].signature[47].owner = {microsoft} 000008f0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000008fc 8d 8e a2 89 |....| esl[0].signature[47].data (end:0x0000091c) 00000900 cf e7 0a 1c 07 ab 73 65 cb 28 ee 51 ed d3 3c f2 |......se.(.Q..<.| 00000910 50 6d e8 88 fb ad d6 0e bf 80 48 1c |Pm........H.| 0000091c bd 9a fa 77 |...w| esl[0].signature[48].owner = {microsoft} 00000920 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000092c 99 98 d3 63 |...c| esl[0].signature[48].data (end:0x0000094c) 00000930 c4 91 be 16 bd 74 ba 10 b9 4d 92 91 00 16 11 73 |.....t...M.....s| 00000940 6f dc a6 43 a3 66 64 bc 0f 31 5a 42 |o..C.fd..1ZB| 0000094c bd 9a fa 77 |...w| esl[0].signature[49].owner = {microsoft} 00000950 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000095c 9e 4a 69 17 |.Ji.| esl[0].signature[49].data (end:0x0000097c) 00000960 31 61 68 2e 55 fd e8 fe f5 60 eb 88 ec 1f fe dc |1ah.U....`......| 00000970 af 04 00 1f 66 c0 ca f7 07 b2 b7 34 |....f......4| 0000097c bd 9a fa 77 |...w| esl[0].signature[50].owner = {microsoft} 00000980 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000098c a6 b5 15 1f |....| esl[0].signature[50].data (end:0x000009ac) 00000990 36 55 d3 a2 af 0d 47 27 59 79 6b e4 a4 20 0e 54 |6U....G'Yyk.. .T| 000009a0 95 a7 d8 69 75 4c 48 48 85 74 08 a7 |...iuLHH.t..| 000009ac bd 9a fa 77 |...w| esl[0].signature[51].owner = {microsoft} 000009b0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009bc a7 f3 2f 50 |../P| esl[0].signature[51].data (end:0x000009dc) 000009c0 8d 4e b0 fe ad 9a 08 7e f9 4e d1 ba 0a ec 5d e6 |.N.....~.N....].| 000009d0 f7 ef 6f f0 a6 2b 93 be df 5d 45 8d |..o..+...]E.| 000009dc bd 9a fa 77 |...w| esl[0].signature[52].owner = {microsoft} 000009e0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 000009ec ad 68 26 e1 |.h&.| esl[0].signature[52].data (end:0x00000a0c) 000009f0 94 6d 26 d3 ea f3 68 5c 88 d9 7d 85 de 3b 4d cb |.m&...h\..}..;M.| 00000a00 3d 0e e2 ae 81 c7 05 60 d1 3c 57 20 |=......`...$Q| 00000c10 3f bc 65 59 57 d7 35 fa 29 f5 40 ce |?.eYW.5.).@.| 00000c1c bd 9a fa 77 |...w| esl[0].signature[64].owner = {microsoft} 00000c20 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c2c d8 cb eb 97 |....| esl[0].signature[64].data (end:0x00000c4c) 00000c30 35 f5 67 2b 36 7e 4f 96 cd c7 49 69 61 5d 17 07 |5.g+6~O...Iia]..| 00000c40 4a e9 6c 72 4d 42 ce 02 16 f8 f3 fa |J.lrMB......| 00000c4c bd 9a fa 77 |...w| esl[0].signature[65].owner = {microsoft} 00000c50 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c5c e9 2c 22 eb |.,".| esl[0].signature[65].data (end:0x00000c7c) 00000c60 3b 56 42 d6 5c 1e c2 ca f2 47 d2 59 47 38 ee bb |;VB.\....G.YG8..| 00000c70 7f b3 84 1a 44 95 6f 59 e2 b0 d1 fa |....D.oY....| 00000c7c bd 9a fa 77 |...w| esl[0].signature[66].owner = {microsoft} 00000c80 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000c8c fd dd 6e 3d |..n=| esl[0].signature[66].data (end:0x00000cac) 00000c90 29 ea 84 c7 74 3d ad 4a 1b db c7 00 b5 fe c1 b3 |)...t=.J........| 00000ca0 91 f9 32 40 90 86 ac c7 1d d6 db d8 |..2@........| 00000cac bd 9a fa 77 |...w| esl[0].signature[67].owner = {microsoft} 00000cb0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cbc fe 63 a8 4f |.c.O| esl[0].signature[67].data (end:0x00000cdc) 00000cc0 78 2c c9 d3 fc f2 cc f9 fc 11 fb d0 37 60 87 87 |x,..........7`..| 00000cd0 58 d2 62 85 ed 12 66 9b dc 6e 6d 01 |X.b...f..nm.| 00000cdc bd 9a fa 77 |...w| esl[0].signature[68].owner = {microsoft} 00000ce0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000cec fe cf b2 32 |...2| esl[0].signature[68].data (end:0x00000d0c) 00000cf0 d1 2e 99 4b 6d 48 5d 2c 71 67 72 8a a5 52 59 84 |...KmH],qgr..RY.| 00000d00 ad 5c a6 1e 75 16 22 1f 07 9a 14 36 |.\..u."....6| 00000d0c bd 9a fa 77 |...w| esl[0].signature[69].owner = {microsoft} 00000d10 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d1c ca 17 1d 61 |...a| esl[0].signature[69].data (end:0x00000d3c) 00000d20 4a 8d 7e 12 1c 93 94 8c d0 fe 55 d3 99 81 f9 d1 |J.~.......U.....| 00000d30 1a a9 6e 03 45 0a 41 52 27 c2 c6 5b |..n.E.AR'..[| 00000d3c bd 9a fa 77 |...w| esl[0].signature[70].owner = {microsoft} 00000d40 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d4c 55 b9 9b 0d |U...| esl[0].signature[70].data (end:0x00000d6c) 00000d50 e5 3d bc fe 48 5a a9 c7 37 cf 3f b6 16 ef 3d 91 |.=..HZ..7.?...=.| 00000d60 fa b5 99 aa 7c ab 19 ed a7 63 b5 ba |....|....c..| 00000d6c bd 9a fa 77 |...w| esl[0].signature[71].owner = {microsoft} 00000d70 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000d7c 77 dd 19 0f |w...| esl[0].signature[71].data (end:0x00000d9c) 00000d80 a3 0d 88 ff 5e 3b 01 1a 0a e6 1e 62 09 78 0c 13 |....^;.....b.x..| 00000d90 0b 53 5e cb 87 e6 f0 88 8a 0b 6b 2f |.S^.......k/| 00000d9c bd 9a fa 77 |...w| esl[0].signature[72].owner = {microsoft} 00000da0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000dac c8 3c b1 39 |.<.9| esl[0].signature[72].data (end:0x00000dcc) 00000db0 22 ad 99 f5 60 74 46 75 dd 37 cc 94 dc ad 5a 1f |"...`tFu.7....Z.| 00000dc0 cb a6 47 2f ee 34 11 71 d9 39 e8 84 |..G/.4.q.9..| 00000dcc bd 9a fa 77 |...w| esl[0].signature[73].owner = {microsoft} 00000dd0 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000ddc 3b 02 87 53 |;..S| esl[0].signature[73].data (end:0x00000dfc) 00000de0 3e 0c c3 d0 ec 1a a8 23 cb f0 a9 41 aa d8 72 15 |>......#...A..r.| 00000df0 79 d1 c4 99 80 2d d1 c3 a6 36 b8 a9 |y....-...6..| 00000dfc bd 9a fa 77 |...w| esl[0].signature[74].owner = {microsoft} 00000e00 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e0c 93 9a ee f4 |....| esl[0].signature[74].data (end:0x00000e2c) 00000e10 f5 fa 51 e2 33 40 c3 f2 e4 90 48 ce 88 72 52 6a |..Q.3@....H..rRj| 00000e20 fd f7 52 c3 a7 f3 a3 f2 bc 9f 60 49 |..R.......`I| 00000e2c bd 9a fa 77 |...w| esl[0].signature[75].owner = {microsoft} 00000e30 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e3c 64 57 5b d9 |dW[.| esl[0].signature[75].data (end:0x00000e5c) 00000e40 12 78 9a 2e 14 ad 56 f6 34 1f 52 af 6b f8 0c f9 |.x....V.4.R.k...| 00000e50 44 00 78 59 75 e9 f0 4e 2d 64 d7 45 |D.xYu..N-d.E| 00000e5c bd 9a fa 77 |...w| esl[0].signature[76].owner = {microsoft} 00000e60 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 00000e6c 45 c7 c8 ae |E...| esl[0].signature[76].data (end:0x00000e8c) 00000e70 75 0a cf bb 48 fc 37 52 7d 64 12 dd 64 4d ae d8 |u...H.7R}d..dM..| 00000e80 91 3c cd 8a 24 c9 4d 85 69 67 df 8e |.<..$.M.ig..| 00000e8c efivar-39/tests/machine3/data/000077500000000000000000000000001455652431600163405ustar00rootroot00000000000000efivar-39/tests/machine3/data/AMD_PBS_SETUP-a339d746-f678-49b3-9fc7-54ce0f9df226000066400000000000000000000002061455652431600251660ustar00rootroot00000000000000MN'@JODNN@wwN@wefivar-39/tests/machine3/data/AMD_RAID-fe26a894-d199-47d4-8afa-070e3d54ba86000066400000000000000000000000141455652431600243370ustar00rootroot00000000000000efivar-39/tests/machine3/data/AMITCGPPIVAR-a8a2093b-fefa-43c1-8e62-ce526847265e000066400000000000000000000000341455652431600250150ustar00rootroot00000000000000efivar-39/tests/machine3/data/AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34000066400000000000000000000001251455652431600252200ustar00rootroot00000000000000efivar-39/tests/machine3/data/AOD_SETUP-5ed15dc0-edef-4161-9151-6014c4cc630c000066400000000000000000000006651455652431600244750ustar00rootroot00000000000000ٺfߺ98 dOOu:ONNefivar-39/tests/machine3/data/AmdAcpiVar-79941ecd-ed36-49d0-8124-e4c31ac75cd4000066400000000000000000000000161455652431600250770ustar00rootroot00000000000000 efivar-39/tests/machine3/data/AmdSetup-3a997502-647a-4c82-998e-52ef9486a247000066400000000000000000000030251455652431600243270ustar00rootroot00000000000000   2<d98( AmiHardwareSignatureSetupUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65000066400000000000000000000000101455652431600324110ustar00rootroot00000000000000efivar-39/tests/machine3/dataefivar-39/tests/machine3/data/ApSyncFlagNv-ad3f6761-f0a3-46c8-a4cb-19b70ffdb305000066400000000000000000000000101455652431600255360ustar00rootroot00000000000000˩efivar-39/tests/machine3/data/AsbkpInfo-cb825795-feb1-4c0b-894f-cc70f8064395000066400000000000000000000000141455652431600247340ustar00rootroot00000000000000efivar-39/tests/machine3/data/AsusExtFancard-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000051455652431600262030ustar00rootroot00000000000000efivar-39/tests/machine3/data/AsusFanSetupFeatures-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000221455652431600274070ustar00rootroot00000000000000efivar-39/tests/machine3/data/AsusHwmSetupOneof-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000501455652431600267270ustar00rootroot00000000000000efivar-39/tests/machine3/data/AsusNodePsu-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000051455652431600255410ustar00rootroot00000000000000efivar-39/tests/machine3/data/AsusQFanSetupData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000005241455652431600266320ustar00rootroot00000000000000ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdddFd-d(dddFdddFd-d(dddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<dd]d<(7Fdefivar-39/tests/machine3/data/AsusRomLayout-2e0585e9-2b5e-4f1e-bbeb-e632c5ef44b8000066400000000000000000000000241455652431600261340ustar00rootroot00000000000000ժefivar-39/tests/machine3/data/AsusSetupDataBackup-1111b056-c5e9-40ca-aba3-ec172533d814000066400000000000000000000000111455652431600266540ustar00rootroot00000000000000efivar-39/tests/machine3/data/AutoDetectData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000501455652431600261630ustar00rootroot00000000000000 efivar-39/tests/machine3/data/BiosEventLog-4034591c-48ea-4cdc-864f-e7cb61cfd0f2000066400000000000000000000004321455652431600256250ustar00rootroot00000000000000[2020/06/04 11:49:15]EPU Power Saving Mode [Disabled]->[Enabled]AMD CPU fTPM [Disable]->[Enable]OS Type [Other OS]->[Windows UEFI mode]efivar-39/tests/machine3/data/Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000001701455652431600243600ustar00rootroot00000000000000\Fedora*AXTOқYĊ.\EFI\FEDORA\SHIM.EFIBOefivar-39/tests/machine3/data/BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600254200ustar00rootroot00000000000000efivar-39/tests/machine3/data/BootFromUSB-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000051455652431600254310ustar00rootroot00000000000000efivar-39/tests/machine3/data/BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000101455652431600266360ustar00rootroot00000000000000efivar-39/tests/machine3/data/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600250510ustar00rootroot00000000000000efivar-39/tests/machine3/data/CMOSfailflag-c89dc9c7-5105-472c-a743-b1621e142b41000066400000000000000000000000061455652431600251160ustar00rootroot00000000000000efivar-39/tests/machine3/data/ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002741455652431600241670ustar00rootroot00000000000000 A  A  A  A efivar-39/tests/machine3/data/ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002741455652431600246260ustar00rootroot00000000000000 A  A  A  A efivar-39/tests/machine3/data/ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600243600ustar00rootroot00000000000000 A efivar-39/tests/machine3/data/ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600250170ustar00rootroot00000000000000 A efivar-39/tests/machine3/data/CurrentPolicy-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000051455652431600257430ustar00rootroot00000000000000'efivar-39/tests/machine3/data/DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53000066400000000000000000000000061455652431600261600ustar00rootroot00000000000000efivar-39/tests/machine3/data/DeploymentModeNv-97e8965f-c761-4f48-b6e4-9ffa9cb2a2d6000066400000000000000000000000051455652431600264720ustar00rootroot00000000000000efivar-39/tests/machine3/data/DownCoreStatus-29749bad-401b-4f6d-b124-cece8c590c48000066400000000000000000000000051455652431600261250ustar00rootroot00000000000000efivar-39/tests/machine3/data/EnWpData-cbab171f-f356-4009-baaa-6628353a0a29000066400000000000000000000001041455652431600245350ustar00rootroot00000000000000w;k֑ݚI Uxa~i [qgMww-Q vERcvճ`efivar-39/tests/machine3/data/ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600243710ustar00rootroot00000000000000 A efivar-39/tests/machine3/data/ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000501455652431600250300ustar00rootroot00000000000000 A efivar-39/tests/machine3/data/FPLayoutOrder-4db88a62-6721-47a0-9082-280b00323594000066400000000000000000000000161455652431600250700ustar00rootroot00000000000000 efivar-39/tests/machine3/data/FTMActiveFlag-4034591c-48ea-4cdc-864f-e7cb61cfd0f2000066400000000000000000000000051455652431600256350ustar00rootroot00000000000000efivar-39/tests/machine3/data/Fail_FLAG_POST-e9f78597-5151-4a3c-b17a-cad106f334f6000066400000000000000000000000111455652431600253520ustar00rootroot00000000000000efivar-39/tests/machine3/data/FastBootOption-b540a530-6978-4da7-91cb-7207d764d262000066400000000000000000000002201455652431600255340ustar00rootroot00000000000000 A %8UP*AXTOқYĊ.\EFI\FEDORA\SHIM.EFIBOefivar-39/tests/machine3/data/FirstBootFlag-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000051455652431600260350ustar00rootroot00000000000000efivar-39/tests/machine3/data/HddSmartInfo-a6f44860-b2e8-4fda-bd45-78368994b6ae000066400000000000000000000000061455652431600254700ustar00rootroot00000000000000efivar-39/tests/machine3/data/HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0000066400000000000000000000000141455652431600241760ustar00rootroot00000000000000Jefivar-39/tests/machine3/data/KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000067711455652431600236030ustar00rootroot00000000000000'Y䔧J\+ry]0;l;0I011F@Pq0  *H  0.1,0*U#ASUSTeK MotherBoard KEK Certificate0 111226233459Z 311226233458Z0.1,0*U#ASUSTeK MotherBoard KEK Certificate0"0  *H 0  ާ!EM!s璤 Kţdמ/7#u*ތ5%uw6tI6&kSu>#KQsοވ JgF E/)9)+ sxK)~5,,byQ)@EN84|'Fo# j"Wi/Y!&[6}jM6Wc܋%*J̃U+dKj } &1LKwPϨh:c0a0_UX0VYյi(r?Z00.1,0*U#ASUSTeK MotherBoard KEK Certificate1F@Pq0  *H  !X0Of h^($31&e=[HɩVV&y̱tL>ݑv3۲iq^7 6|0l\Im . r2v[9g[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62Y䔧J\+rdH m.LDz040 A$,g0  *H  01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0 120412111251Z 420411111251Z01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0"0  *H 0 [:t!]aVr~-LbmHύa'nU=9T@;4y{z-}YϦNڮRLƙ Ngex]8JJz¢!-TA5Wl)PJ~ꙩh;2yh-~Rɛ+hIٕP@[Ųq\Wq@ [-PRkndO[ aZB!ٹTBRrIdzl$p M2ѠWM㯥>C00U *#eZ&4Zc0U#0 *#eZ&4Zc0U00 U0CU<0:08642http://www.canonical.com/secure-boot-master-ca.crl0  *H  ?}v+zmRPGwҮW2:UVv Qۚ\?sڔj8m9qtv>V#5UG[AL b s^ֵz~>~f[9HQS1S;upLF=hG}QĚϣ]풻3Qs fm'wBj efivar-39/tests/machine3/data/KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000067711455652431600251100ustar00rootroot00000000000000Y䔧J\+ry]0;l;0I011F@Pq0  *H  0.1,0*U#ASUSTeK MotherBoard KEK Certificate0 111226233459Z 311226233458Z0.1,0*U#ASUSTeK MotherBoard KEK Certificate0"0  *H 0  ާ!EM!s璤 Kţdמ/7#u*ތ5%uw6tI6&kSu>#KQsοވ JgF E/)9)+ sxK)~5,,byQ)@EN84|'Fo# j"Wi/Y!&[6}jM6Wc܋%*J̃U+dKj } &1LKwPϨh:c0a0_UX0VYյi(r?Z00.1,0*U#ASUSTeK MotherBoard KEK Certificate1F@Pq0  *H  !X0Of h^($31&e=[HɩVV&y̱tL>ݑv3۲iq^7 6|0l\Im . r2v[9g[U{̶_0 +7  SubCA0 U0U00U#0EfRC~XN#U;:"j0\UU0S0QOMKhttp://crl.microsoft.com/pki/crl/products/MicCorThiParMarRoo_2010-10-05.crl0`+T0R0P+0Dhttp://www.microsoft.com/pki/certs/MicCorThiParMarRoo_2010-10-05.crt0  *H  Ԅ*<* נRfuz-vZy7jQ{ddgxΈXd W_iHK2]0x+4VʮA%pkז* K(){|vyo~l{E4Q9^VBwqV̟#˦X~ig~ <νC-j+Z|DR-R=`3e |N8/ o.9'B)FA;gCYe Ou;$PA@y-O j'vnRi{E­S076aJi4hl l"yF`!y2`ج"KK}?W5Ou`"Sy֛ATp 5|4r`;y뢲]%o8yi uk4`\WN62Y䔧J\+rdH m.LDz040 A$,g0  *H  01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0 120412111251Z 420411111251Z01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0"0  *H 0 [:t!]aVr~-LbmHύa'nU=9T@;4y{z-}YϦNڮRLƙ Ngex]8JJz¢!-TA5Wl)PJ~ꙩh;2yh-~Rɛ+hIٕP@[Ųq\Wq@ [-PRkndO[ aZB!ٹTBRrIdzl$p M2ѠWM㯥>C00U *#eZ&4Zc0U#0 *#eZ&4Zc0U00 U0CU<0:08642http://www.canonical.com/secure-boot-master-ca.crl0  *H  ?}v+zmRPGwҮW2:UVv Qۚ\?sڔj8m9qtv>V#5UG[AL b s^ֵz~>~f[9HQS1S;upLF=hG}QĚϣ]풻3Qs fm'wBj efivar-39/tests/machine3/data/Kernel_ATPSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600265610ustar00rootroot00000000000000efivar-39/tests/machine3/data/Kernel_DriverSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600273700ustar00rootroot00000000000000efivar-39/tests/machine3/data/Kernel_RvkSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600266770ustar00rootroot00000000000000efivar-39/tests/machine3/data/Kernel_SiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600262140ustar00rootroot00000000000000efivar-39/tests/machine3/data/Kernel_SkuSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600266770ustar00rootroot00000000000000efivar-39/tests/machine3/data/Kernel_WinSiStatus-77fa9abd-0359-4d32-bd60-28f4e78f784b000066400000000000000000000000101455652431600266720ustar00rootroot00000000000000efivar-39/tests/machine3/data/LastBoot-b540a530-6978-4da7-91cb-7207d764d262000066400000000000000000000000471455652431600243600ustar00rootroot00000000000000efivar-39/tests/machine3/data/MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000061455652431600261250ustar00rootroot00000000000000iefivar-39/tests/machine3/data/MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829000066400000000000000000000000051455652431600310120ustar00rootroot00000000000000efivar-39/tests/machine3/data/MemoryOverwriteRequestControlLock-bb983ccf-151d-40e1-a07b-4a17be168292000066400000000000000000000000051455652431600320040ustar00rootroot00000000000000efivar-39/tests/machine3/data/MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b000066400000000000000000000000101455652431600264750ustar00rootroot00000000000000efivar-39/tests/machine3/data/MyFav-4034591c-48ea-4cdc-864f-e7cb61cfd0f2000066400000000000000000000001221455652431600243030ustar00rootroot00000000000000A'B'C'Z'f'h''''H'H'H'H'efivar-39/tests/machine3/data/NVRAM_Verify-15a9dd61-e4f8-4a99-80db-353b13d76490000066400000000000000000000000061455652431600252010ustar00rootroot00000000000000efivar-39/tests/machine3/data/OfflineUniqueIDRandomSeed-eaec226f-c9a3-477a-a826-ddc716cdc0e3000066400000000000000000000000441455652431600303470ustar00rootroot00000000000000 5䍁^Kq^(fefivar-39/tests/machine3/data/OfflineUniqueIDRandomSeedCRC-eaec226f-c9a3-477a-a826-ddc716cdc0e3000066400000000000000000000000101455652431600306700ustar00rootroot00000000000000B`> efivar-39/tests/machine3/data/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600257170ustar00rootroot00000000000000efivar-39/tests/machine3/data/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000141455652431600276250ustar00rootroot00000000000000efivar-39/tests/machine3/data/PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5000066400000000000000000000000131455652431600244050ustar00rootroot00000000000000efivar-39/tests/machine3/data/PK-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000015721455652431600234750ustar00rootroot00000000000000'Y䔧J\+rvZ0;l;0F0.SA:H6i0  *H  0-1+0)U"ASUSTeK MotherBoard PK Certificate0 111226233450Z 311226233449Z0-1+0)U"ASUSTeK MotherBoard PK Certificate0"0  *H 0 ل6ΊVtX*7dڌj$h EBb"n*CgM*2~xs:Ә~'ž~輨AU4S~}PZTnEx׈R~I6hp Zko7i"Bs2Bd鹉/kNdEO郗-Va2NrNriIaYX|km[W7YZpyWȂȑ{g-b0`0^UW0Uej)d8r ?=/0-1+0)U"ASUSTeK MotherBoard PK CertificateSA:H6i0  *H  s'2~'kyкXߗZLܢ9{$}.9k¦Q8o ?>Zy2I(TƊMʜlC`6^s/FwbM"qy ,Ija \rڍ!0y+sJmڥe7,+ƣdWwG@G#%r8:3]Dc}/}Еup+E@[u} <d"0ŷefivar-39/tests/machine3/data/PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000015721455652431600250020ustar00rootroot00000000000000Y䔧J\+rvZ0;l;0F0.SA:H6i0  *H  0-1+0)U"ASUSTeK MotherBoard PK Certificate0 111226233450Z 311226233449Z0-1+0)U"ASUSTeK MotherBoard PK Certificate0"0  *H 0 ل6ΊVtX*7dڌj$h EBb"n*CgM*2~xs:Ә~'ž~輨AU4S~}PZTnEx׈R~I6hp Zko7i"Bs2Bd鹉/kNdEO郗-Va2NrNriIaYX|km[W7YZpyWȂȑ{g-b0`0^UW0Uej)d8r ?=/0-1+0)U"ASUSTeK MotherBoard PK CertificateSA:H6i0  *H  s'2~'kyкXߗZLܢ9{$}.9k¦Q8o ?>Zy2I(TƊMʜlC`6^s/FwbM"qy ,Ija \rڍ!0y+sJmڥe7,+ƣdWwG@G#%r8:3]Dc}/}Еup+E@[u} <d"0ŷefivar-39/tests/machine3/data/PcieSataModVar-5e9a565f-cdc0-413b-ad13-1fe8713ffdcd000066400000000000000000000000071455652431600262200ustar00rootroot00000000000000efivar-39/tests/machine3/data/PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000121455652431600255350ustar00rootroot00000000000000en-USefivar-39/tests/machine3/data/PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000741455652431600265230ustar00rootroot00000000000000en-US;fr-FR;zh-cht;zh-chs;ja-JP;de-DE;es-ES;ru-RU;ko-KRefivar-39/tests/machine3/data/PreVgaInfo-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000101455652431600253240ustar00rootroot00000000000000gefivar-39/tests/machine3/data/Record_CMOS_RTC_TIME-b2db8399-b883-46fe-8003-e54a4e60548b000066400000000000000000000000411455652431600263610ustar00rootroot00000000000000'"H'"Hefivar-39/tests/machine3/data/ResourceDistribution-0ce40a5f-153a-4462-a429-4098e0e13cac000066400000000000000000000000141455652431600272020ustar00rootroot00000000000000efivar-39/tests/machine3/data/ResourceSizeForEachRb-542b8f2f-bd52-4233-8c3d-66530de8a369000066400000000000000000000020041455652431600271240ustar00rootroot00000000000000NYpMN  eYeMe)aeЩ˺ ExM|MpUaaM?!M `0_00MXa08yYMa8`Y8yY p efivar-39/tests/machine3/data/RsdpAddr-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000141455652431600250330ustar00rootroot00000000000000efivar-39/tests/machine3/data/SIDSUPPORT-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000051455652431600253670ustar00rootroot00000000000000efivar-39/tests/machine3/data/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252230ustar00rootroot00000000000000efivar-39/tests/machine3/data/SecureBootSetup-7b59104a-c00d-4158-87ff-f04d6396a915000066400000000000000000000000131455652431600260000ustar00rootroot00000000000000efivar-39/tests/machine3/data/Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000007231455652431600244370ustar00rootroot00000000000000efivar-39/tests/machine3/data/SetupLedData-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000061455652431600256500ustar00rootroot00000000000000efivar-39/tests/machine3/data/SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600250560ustar00rootroot00000000000000efivar-39/tests/machine3/data/SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000002241455652431600265120ustar00rootroot00000000000000;y@ nvp€N(I[cmD%L$eҰ&LP@A6C(Y䔧J\+rfW<&4Nwna⛇=J绣'ODgCH(s`.EߌKQ.h,efivar-39/tests/machine3/data/SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600271440ustar00rootroot00000000000000Īefivar-39/tests/machine3/data/SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600266020ustar00rootroot00000000000000efivar-39/tests/machine3/data/SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000000141455652431600273550ustar00rootroot00000000000000Īefivar-39/tests/machine3/data/StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824000066400000000000000000000157261455652431600251750ustar00rootroot00000000000000NVARSetupNVARPlatformLangen-USNVARTimeoutNVARhAMITSESetupNVARPcieSataModVarNVARGUsbSupportNVARHddSmartInfoNVAR"SecureBootSetupNVARSetupLedDataNVARAAsusHwmSetupOneofNVARmAsusQFanSetupDataddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdddFd-d(dddFdddFd-d(dddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<ddFdFd-<(<dd]d<(7FdNVARBVARSTORE_OCMR_SETTINGS_NAME,xx,,NVARPCI_COMMON!RHug}_zI#;ܨJY{ XAMc`HOEx6_V^;Aq?8ByE`N4aʓ +CևK?>6 efivar-39/tests/machine3/data/TPMPERBIOSFLAGS-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000121455652431600261120ustar00rootroot00000000000000xefivar-39/tests/machine3/data/Test_AC_LOSS_FLAG-15965464-28a2-41df-8629-fe26cd257605000066400000000000000000000000051455652431600254720ustar00rootroot00000000000000 efivar-39/tests/machine3/data/Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000061455652431600246000ustar00rootroot00000000000000efivar-39/tests/machine3/data/TotalNumberOfRootBridges-fb5703f5-f8a7-f401-18b4-3f108deb2612000066400000000000000000000000051455652431600277160ustar00rootroot00000000000000efivar-39/tests/machine3/data/TpmServFlags-7d3dceee-cbce-4ea7-8709-6e552f1edbde000066400000000000000000000000141455652431600262300ustar00rootroot00000000000000efivar-39/tests/machine3/data/UIT_DATA-fe47349a-7f0d-4641-822b-34baa28ecdd0000066400000000000000000000000251455652431600244250ustar00rootroot00000000000000 ! I^efivar-39/tests/machine3/data/UIT_HEADER-fe47349a-7f0d-4641-822b-34baa28ecdd0000066400000000000000000000000441455652431600246450ustar00rootroot00000000000000TɂmPOefivar-39/tests/machine3/data/UnlockIDCopy-eaec226f-c9a3-477a-a826-ddc716cdc0e3000066400000000000000000000000441455652431600257220ustar00rootroot00000000000000/" {{Kc[?nd)"efivar-39/tests/machine3/data/UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9000066400000000000000000000000651455652431600254640ustar00rootroot00000000000000efivar-39/tests/machine3/data/VARSTORE_OCMR_SETTINGS_NAME-c05fba7d-7a92-49e0-bcee-233b14dca803000066400000000000000000000130371455652431600275370ustar00rootroot00000000000000,xx,,AutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoAutoefivar-39/tests/machine3/data/VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000000051455652431600252420ustar00rootroot00000000000000efivar-39/tests/machine3/data/WpBufAddr-cba83c4a-a5fc-48a8-b3a6-d33636166544000066400000000000000000000000101455652431600247250ustar00rootroot00000000000000Pefivar-39/tests/machine3/data/WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1000066400000000000000000000001041455652431600260070ustar00rootroot00000000000000efivar-39/tests/machine3/data/db-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000142661455652431600236560ustar00rootroot00000000000000'Y䔧J\+rf0;l;0R0:ڃB.De0  *H  011/0-U&ASUSTeK MotherBoard SW Key Certificate0 111226233505Z 311226233504Z011/0-U&ASUSTeK MotherBoard SW Key Certificate0"0  *H 0 w?7n- b؛ ")_:&SxBs|. QV#'=wPQ4]QpBLBi,%&W#mЧ{E(~մ Ay!HD[%$.R>g̹6!Tx g&iXG4/IYVXE{! _Wy?v c7ts~p`_3픞 DžzTN^D|9-l/cNf0d0bU[0YV* bá3011/0-U&ASUSTeK MotherBoard SW Key CertificateڃB.De0  *H  Ro ;p -yKMܞ1uތ(4G:C[,A@}v+ӱ`\26Nշ ,jC6k}[8Sj ~MԤ϶fM]aMڃ(N** xѰݛw%9KϢ2YiR竸53Rϳhҳ\u&erMi4Z VSsXS@$fzu9'zS;◓7M#n S!M 4Y䔧J\+r@$wY2M`(xK00 a0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110627212245Z 260627213245Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1+0)U"Microsoft Corporation UEFI CA 20110"0  *H 0 lLE jK u CTd} s JEa-+MIA#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~Y䔧J\+rdH m.LDz040 A$,g0  *H  01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0 120412111251Z 420411111251Z01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0"0  *H 0 [:t!]aVr~-LbmHύa'nU=9T@;4y{z-}YϦNڮRLƙ Ngex]8JJz¢!-TA5Wl)PJ~ꙩh;2yh-~Rɛ+hIٕP@[Ųq\Wq@ [-PRkndO[ aZB!ٹTBRrIdzl$p M2ѠWM㯥>C00U *#eZ&4Zc0U#0 *#eZ&4Zc0U00 U0CU<0:08642http://www.canonical.com/secure-boot-master-ca.crl0  *H  ?}v+zmRPGwҮW2:UVv Qۚ\?sڔj8m9qtv>V#5UG[AL b s^ֵz~>~f[9HQS1S;upLF=hG}QĚϣ]풻3Qs fm'wBj &LP@A6C( 0|֔NG,E C{)H|"3CWRͮ6$[:j5.删XKk_a?Xq WsApRXmYL~{u脙By*a@b~k p8+#Q k*Nefivar-39/tests/machine3/data/dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000142661455652431600250610ustar00rootroot00000000000000Y䔧J\+rf0;l;0R0:ڃB.De0  *H  011/0-U&ASUSTeK MotherBoard SW Key Certificate0 111226233505Z 311226233504Z011/0-U&ASUSTeK MotherBoard SW Key Certificate0"0  *H 0 w?7n- b؛ ")_:&SxBs|. QV#'=wPQ4]QpBLBi,%&W#mЧ{E(~մ Ay!HD[%$.R>g̹6!Tx g&iXG4/IYVXE{! _Wy?v c7ts~p`_3픞 DžzTN^D|9-l/cNf0d0bU[0YV* bá3011/0-U&ASUSTeK MotherBoard SW Key CertificateڃB.De0  *H  Ro ;p -yKMܞ1uތ(4G:C[,A@}v+ӱ`\26Nշ ,jC6k}[8Sj ~MԤ϶fM]aMڃ(N** xѰݛw%9KϢ2YiR竸53Rϳhҳ\u&erMi4Z VSsXS@$fzu9'zS;◓7M#n S!M 4Y䔧J\+r@$wY2M`(xK00 a0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1;09U2Microsoft Corporation Third Party Marketplace Root0 110627212245Z 260627213245Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1+0)U"Microsoft Corporation UEFI CA 20110"0  *H 0 lLE jK u CTd} s JEa-+MIA#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~Y䔧J\+rdH m.LDz040 A$,g0  *H  01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0 120412111251Z 420411111251Z01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0"0  *H 0 [:t!]aVr~-LbmHύa'nU=9T@;4y{z-}YϦNڮRLƙ Ngex]8JJz¢!-TA5Wl)PJ~ꙩh;2yh-~Rɛ+hIٕP@[Ųq\Wq@ [-PRkndO[ aZB!ٹTBRrIdzl$p M2ѠWM㯥>C00U *#eZ&4Zc0U#0 *#eZ&4Zc0U00 U0CU<0:08642http://www.canonical.com/secure-boot-master-ca.crl0  *H  ?}v+zmRPGwҮW2:UVv Qۚ\?sڔj8m9qtv>V#5UG[AL b s^ֵz~>~f[9HQS1S;upLF=hG}QĚϣ]풻3Qs fm'wBj &LP@A6C( 0|֔NG,E C{)H|"3CWRͮ6$[:j5.删XKk_a?Xq WsApRXmYL~{u脙By*a@b~k p8+#Q k*Nefivar-39/tests/machine3/data/dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f000066400000000000000000000072201455652431600240360ustar00rootroot00000000000000'&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrLwY2M`(xK^T`< k覃R8wY2M`(xKƨXdoy(#g+69ОwY2M`(xK _NQxmЁ%orxRYe&wY2M`(xK Cڬz0eu1{ 될ctwY2M`(xK 9v-6=cqZ9ϰF\`lk׽wY2M`(xK o)o3}rK H:*?OwY2M`(xK !Hʃ62u> [1R*[wY2M`(xKoN0;t􀠀Ѐ+ot!hwY2M`(xKN: [CƦ@O4=9bgΔ.#ڒ wY2M`(xK34)bퟗ>H-.ImTdwY2M`(xK+&B.6_K 'lKzoD/ki9wY2M`(xK+,'R*]IZ+R]fbUwY2M`(xK,s3%mԤ<[UYPPR}wY2M`(xK.pgsQpW2.#ӹ+Q}wY2M`(xK0f(Tw0W(JF}8zTiv^uҍwY2M`(xK6Awz/^g4g^Ù^i5 ҽwY2M`(xK8A!6\ !`9MlN g`b[wY2M`(xK?Λ>TR^·mt:syqUpj>swY2M`(xKCʃc| C-/&zKuwY2M`(xKGa':k,Zmk6!h,*Z߽wY2M`(xKQ1s>!"Ty 0a5wY2M`(xKZIU9[.B,/gg6A+\wY2M`(xKkxA{^`Gr̴/fwY2M`(xKlTGYQ&l+585rѓ.wY2M`(xKo(qկ.{˫d|eͶ& :x^wY2M`(xKqo"I~TFb$ whٿcuwY2M`(xKrk>Tj0=ppq-ĝ,#wY2M`(xKrg]V;ݼ2ت^/m(ؽwY2M`(xKx'6,q}䱿CqZH[ʤKŽwY2M`(xKeӇk)T̕SϪȣ;3佚wY2M`(xK;δCΝч͛YA=Xo+V7W_gwY2M`(xKZ~OG q"8b:ߒ=wY2M`(xKHY jagznFdr!YEwY2M`(xK4͐e;=<5P_{c!wY2M`(xK se(Q$Q?eYW5)@νwY2M`(xK5g+6~OIia]JlrMBwY2M`(xK,";VB\GYG8DoYwY2M`(xKn=)t=J2@ؽwY2M`(xKcOx,7`XbfnmwY2M`(xKϲ2.KmH],qgrRY\u"6wY2M`(xKaJ~UәnE AR'[wY2M`(xKU =HZ7?=|cwY2M`(xKw ^; b x  S^ˇ k/wY2M`(xK<9"`tFu7̔ܭZ˦G/4q9脽wY2M`(xK;S> #Aryę-æ6wY2M`(xKQ3@HΈrRjRç`IwY2M`(xKdW[x.V4Rk DxYuN-dEwY2M`(xKEȮu ϻH7R}ddMؑ<͊$Migߎefivar-39/tests/machine3/data/dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c000066400000000000000000000072201455652431600252410ustar00rootroot00000000000000&LP@A6C(0wY2M`(xKi1 ORm@`MAe wY2M`(xK/֒r($E4[$k;}nzwY2M`(xKء- *o.s >d,NgyjwY2M`(xK63M. xbdYWC&`HXšvwY2M`(xK세Kle qR0! b h2۲ '%'߶=IҕrLwY2M`(xK^T`< k覃R8wY2M`(xKƨXdoy(#g+69ОwY2M`(xK _NQxmЁ%orxRYe&wY2M`(xK Cڬz0eu1{ 될ctwY2M`(xK 9v-6=cqZ9ϰF\`lk׽wY2M`(xK o)o3}rK H:*?OwY2M`(xK !Hʃ62u> [1R*[wY2M`(xKoN0;t􀠀Ѐ+ot!hwY2M`(xKN: [CƦ@O4=9bgΔ.#ڒ wY2M`(xK34)bퟗ>H-.ImTdwY2M`(xK+&B.6_K 'lKzoD/ki9wY2M`(xK+,'R*]IZ+R]fbUwY2M`(xK,s3%mԤ<[UYPPR}wY2M`(xK.pgsQpW2.#ӹ+Q}wY2M`(xK0f(Tw0W(JF}8zTiv^uҍwY2M`(xK6Awz/^g4g^Ù^i5 ҽwY2M`(xK8A!6\ !`9MlN g`b[wY2M`(xK?Λ>TR^·mt:syqUpj>swY2M`(xKCʃc| C-/&zKuwY2M`(xKGa':k,Zmk6!h,*Z߽wY2M`(xKQ1s>!"Ty 0a5wY2M`(xKZIU9[.B,/gg6A+\wY2M`(xKkxA{^`Gr̴/fwY2M`(xKlTGYQ&l+585rѓ.wY2M`(xKo(qկ.{˫d|eͶ& :x^wY2M`(xKqo"I~TFb$ whٿcuwY2M`(xKrk>Tj0=ppq-ĝ,#wY2M`(xKrg]V;ݼ2ت^/m(ؽwY2M`(xKx'6,q}䱿CqZH[ʤKŽwY2M`(xKeӇk)T̕SϪȣ;3佚wY2M`(xK;δCΝч͛YA=Xo+V7W_gwY2M`(xKZ~OG q"8b:ߒ=wY2M`(xKHY jagznFdr!YEwY2M`(xK4͐e;=<5P_{c!wY2M`(xK se(Q$Q?eYW5)@νwY2M`(xK5g+6~OIia]JlrMBwY2M`(xK,";VB\GYG8DoYwY2M`(xKn=)t=J2@ؽwY2M`(xKcOx,7`XbfnmwY2M`(xKϲ2.KmH],qgrRY\u"6wY2M`(xKaJ~UәnE AR'[wY2M`(xKU =HZ7?=|cwY2M`(xKw ^; b x  S^ˇ k/wY2M`(xK<9"`tFu7̔ܭZ˦G/4q9脽wY2M`(xK;S> #Aryę-æ6wY2M`(xKQ3@HΈrRjRç`IwY2M`(xKdW[x.V4Rk DxYuN-dEwY2M`(xKEȮu ϻH7R}ddMؑ<͊$Migߎefivar-39/tests/test-threading000077500000000000000000000010511455652431600166050ustar00rootroot00000000000000#!/usr/bin/env sh # SPDX-License-Identifier: LGPL-2.1-or-later # test (some) efivar thread safety # # Copyright Jonathan Marler set -e if [ "x$TOPDIR" = "x" ] ; then TOPDIR="$(realpath "$(dirname "$0")/../")" fi rm -rf scratch mkdir scratch EFIVARFS_PATH="" LD_LIBRARY_PATH="" LIBEFIVAR_OPS="" EFIVARFS_PATH=$(realpath scratch)/ LD_LIBRARY_PATH="${TOPDIR}/src/" LIBEFIVAR_OPS=efivarfs export EFIVARFS_PATH LD_LIBRARY_PATH LIBEFIVAR_OPS test() { echo -n "testing $1 thread..." "${TOPDIR}/src/thread-test" -t "$1" } test 1 test 2 test 4 test 64 efivar-39/tests/test.bootorder.var.goal.var000066400000000000000000000001021455652431600211300ustar00rootroot00000000000000BootOrderaʓ +$mefivar-39/tests/test.conin.var.goal.var000066400000000000000000000005551455652431600202530ustar00rootroot00000000000000;ConInDevaʓ +K}_CIgbrA SG '?MK}_CIgbrA e`-'?MK}_CIgbrA  Ǯ{WvL/(CK}_CIgbrA m}[E_QK}_CIgbrA ֠Js~- efivar-39/tests/test.dmpstore.export.new.goal.var000066400000000000000000000010621455652431600223150ustar00rootroot00000000000000GRUB_ENVj7˾B(# GRUB Environment Block # WARNING: Do not edit this file by tools other than grub-editenv!!! debug=all,-scripting,-lexer ######################################################################################################################################################################################################################################################################################################################################################################################################[Gzefivar-39/tests/test.dmpstore.export.old.goal.var000066400000000000000000000010621455652431600223020ustar00rootroot00000000000000GRUB_ENVj7˾B(# GRUB Environment Block debug=all,-scripting,-lexer ###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################E efivar-39/tests/test.efivar.export.new.goal.var000066400000000000000000000010761455652431600217410ustar00rootroot00000000000000j7˾B(GRUB_ENV# GRUB Environment Block # WARNING: Do not edit this file by tools other than grub-editenv!!! debug=all,-scripting,-lexer ######################################################################################################################################################################################################################################################################################################################################################################################################efivar-39/tests/test.efivar.export.old.goal.var000066400000000000000000000010761455652431600217260ustar00rootroot00000000000000j7˾B(GRUB_ENV# GRUB Environment Block debug=all,-scripting,-lexer ###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################efivar-39/tests/test.esl.annotation.esl000066400000000000000000000003341455652431600203570ustar00rootroot00000000000000&LP@A6C(0#yCw-e];B"=1^{'O8u&N4YڲxS#2iеw2+DycBEG*<<0Qlefivar-39/tests/test.esl.cert.addition.cert.esl.goal000066400000000000000000000035221455652431600226130ustar00rootroot00000000000000Y䔧J\+rvZ#yCw-e];0F0.3,'0  *H 0y1 0 UUS1 0 UCA10U Santa Clara10U Intel Corporation1+0)U"Intel External Basic Issuing CA 3B0 140929171939Z 150929171939Z0}1 0 UUS1 0 UCA10U Santa Clara10U Intel Corporation1/0-U&Intel(R) DCG SPS Server PTU Option ROM0"0  *H 0 UPψnlQ= t[#Rr C6ԋK JъktKJ. , VTx% hy0i3]?"8"3'DY/KpXZGKn- _A^I˶pޝ& ăºi$Bz2% ~r\asIGcr["ty!/o! !q 500 U0U% 0 +0U@IkewK̐`_0U#0CZJw-"0U00Whttp://www.intel.com/repository/CRL/Intel%20External%20Basic%20Issuing%20CA%203B(2).crl`http://certificates.intel.com/repository/CRL/Intel%20External%20Basic%20Issuing%20CA%203B(2).crl0+ 0 0l+0`http://www.intel.com/repository/certificates/Intel%20External%20Basic%20Issuing%20CA%203B(2).crt0u+0ihttp://certificates.intel.com/repository/certificates/Intel%20External%20Basic%20Issuing%20CA%203B(2).crt0"+0http://ocsp.intel.com/0 U00= +700.&+7ÌuQ(S gT d 0 +7 0 0 +0  *H | *7LknԄ9Z) WuI ) T<["i÷'X!ڢSMv>'O8u&N4YڲxS#2iеw2+DycBEG*<<0Ql&LP@A6C(0#yCw-e];B"=1^{'O8u&N4YڲxS#2iеw2+DycBEG*<<0Ql&LP@A6C(0#yCw-e];B"=1^{#/^Pƍ_A. lui!Mڭ,wS%27lRr5aj;PV2-B'UZ0TG%/&A\?[<>?GrU%"{*F 5'bq'Y7`8xpLEe¶~iuYXY䔧J\+rwY2M`(xK00 avV0  *H  01 0 UUS10U Washington10URedmond10U Microsoft Corporation1200U)Microsoft Root Certificate Authority 20100 111019184142Z 261019185142Z01 0 UUS10U Washington10URedmond10U Microsoft Corporation1.0,U%Microsoft Windows Production PCA 20110"0  *H 0  . i!i33T ҋ8-|byJ?5 pk6u1ݍp7tF([`#,GgQ'rɹ;S5|'# oFnhttp://www.microsoft.com/pki/certs/MicRooCerAut_2010-06-23.crt0  *H  |qQyn9>\` QfG=*hwLb{Ǻz4KbzJ7-W|=ܸZij:ni!7ށugӓW^)9-Es[zFX^gl5?$5 uVx,Јߺ~,c#!xlX6+̤-@EΊ\k>p* j_Gc 26*pZBYqKW~!<ŹE ŕ]b֠c uw}=EWo3wbY~Y䔧J\+rG+QH&_J^006c!L01/ H6 0  *H  0r1&0$U Uncoöperative Secure Boot CA10U The Uncoöperative CA1(0&U The Uncoöperative Organization0 200622204928Z 370119031407Z0v1*0(U !Uncoöperative Secure Boot Signer10U The Uncoöperative CA1(0&U The Uncoöperative Organization0"0  *H 0 a(2Ctu̽H2)~Xq i&!5Asaj_\'˸r$c.g' j`[%+:ҍ,䩪4B}KC2.YMK F c0kDþSܛŚccXz`;&돝ek:貔vѮ'LK+ya_bs}@4ih5Әvx00;+/0-0++0https://blog.uncooperative.org/0U#0ֆ)#ineg"0U% 0 +0 U00U|m'vt0}0  *H  K3 ȝcF{}_P$=_)I?Z5~Vu16} }\E9;yO&,ׂϑ KуGs 1yAP%{1k#=Zfњ6;|iIg'&\'3!..xڿYpg.G2DK f}RXshl.mOt I,rMm!hkq7a`3BvSCj-`.@$A١Y䔧J\+rf0;l;0R0:ڃB.De0  *H  011/0-U&ASUSTeK MotherBoard SW Key Certificate0 111226233505Z 311226233504Z011/0-U&ASUSTeK MotherBoard SW Key Certificate0"0  *H 0 w?7n- b؛ ")_:&SxBs|. QV#'=wPQ4]QpBLBi,%&W#mЧ{E(~մ Ay!HD[%$.R>g̹6!Tx g&iXG4/IYVXE{! _Wy?v c7ts~p`_3픞 DžzTN^D|9-l/cNf0d0bU[0YV* bá3011/0-U&ASUSTeK MotherBoard SW Key CertificateڃB.De0  *H  Ro ;p -yKMܞ1uތ(4G:C[,A@}v+ӱ`\26Nշ ,jC6k}[8Sj ~MԤ϶fM]aMڃ(N** xѰݛw%9KϢ2YiR竸53Rϳhҳ\u&erMi4Z VSsXS@$fzu9'zS;◓7M#n S!M 4Y䔧J\+rdH m.LDz040 A$,g0  *H  01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0 120412111251Z 420411111251Z01 0 UGB10U Isle of Man10U Douglas10U Canonical Ltd.1402U +Canonical Ltd. Master Certificate Authority0"0  *H 0 [:t!]aVr~-LbmHύa'nU=9T@;4y{z-}YϦNڮRLƙ Ngex]8JJz¢!-TA5Wl)PJ~ꙩh;2yh-~Rɛ+hIٕP@[Ųq\Wq@ [-PRkndO[ aZB!ٹTBRrIdzl$p M2ѠWM㯥>C00U *#eZ&4Zc0U#0 *#eZ&4Zc0U00 U0CU<0:08642http://www.canonical.com/secure-boot-master-ca.crl0  *H  ?}v+zmRPGwҮW2:UVv Qۚ\?sڔj8m9qtv>V#5UG[AL b s^ֵz~>~f[9HQS1S;upLF=hG}QĚϣ]풻3Qs fm'wBj &LP@A6C( 0|֔NG,E C{)H|"3CWRͮ6$[:j5.删XKk_a?Xq WsApRXmYL~{u脙By*a@b~k p8+#Q k*Nefivar-39/tests/test.parse.db.var.goal.txt000066400000000000000000001235741455652431600207010ustar00rootroot0000000000000000000000 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[0].signature_type = {x509_cert} 00000010 40 06 00 00 |@...| esl[0].signature_list_size = 1600 (0x640) 00000014 00 00 00 00 |....| esl[0].signature_header_size = 0 00000018 24 06 00 00 |$...| esl[0].signature_size = 1572 0000001c esl[0].signature_header (end:0x0000001c) 0000001c bd 9a fa 77 |...w| esl[0].signature[0].owner = {microsoft} 00000020 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000002c 30 82 06 10 |0...| esl[0].signature[0].data (end:0x00000640) 00000030 30 82 03 f8 a0 03 02 01 02 02 0a 61 08 d3 c4 00 |0..........a....| 00000040 00 00 00 00 04 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000050 01 0b 05 00 30 81 91 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 00000060 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 00000070 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 00000080 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 00000090 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000000a0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 3b 30 39 06 |Corporation1;09.| 000000b0 03 55 04 03 13 32 4d 69 63 72 6f 73 6f 66 74 20 |.U...2Microsoft | 000000c0 43 6f 72 70 6f 72 61 74 69 6f 6e 20 54 68 69 72 |Corporation Thir| 000000d0 64 20 50 61 72 74 79 20 4d 61 72 6b 65 74 70 6c |d Party Marketpl| 000000e0 61 63 65 20 52 6f 6f 74 30 1e 17 0d 31 31 30 36 |ace Root0...1106| 000000f0 32 37 32 31 32 32 34 35 5a 17 0d 32 36 30 36 32 |27212245Z..26062| 00000100 37 32 31 33 32 34 35 5a 30 81 81 31 0b 30 09 06 |7213245Z0..1.0..| 00000110 03 55 04 06 13 02 55 53 31 13 30 11 06 03 55 04 |.U....US1.0...U.| 00000120 08 13 0a 57 61 73 68 69 6e 67 74 6f 6e 31 10 30 |...Washington1.0| 00000130 0e 06 03 55 04 07 13 07 52 65 64 6d 6f 6e 64 31 |...U....Redmond1| 00000140 1e 30 1c 06 03 55 04 0a 13 15 4d 69 63 72 6f 73 |.0...U....Micros| 00000150 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 31 |oft Corporation1| 00000160 2b 30 29 06 03 55 04 03 13 22 4d 69 63 72 6f 73 |+0)..U..."Micros| 00000170 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 20 |oft Corporation | 00000180 55 45 46 49 20 43 41 20 32 30 31 31 30 82 01 22 |UEFI CA 20110.."| 00000190 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 |0...*.H.........| 000001a0 82 01 0f 00 30 82 01 0a 02 82 01 01 00 a5 08 6c |....0..........l| 000001b0 4c c7 45 09 6a 4b 0c a4 c0 87 7f 06 75 0c 43 01 |L.E.jK......u.C.| 000001c0 54 64 e0 16 7f 07 ed 92 7d 0b b2 73 bf 0c 0a c6 |Td......}..s....| 000001d0 4a 45 61 a0 c5 16 2d 96 d3 f5 2b a0 fb 4d 49 9b |JEa...-...+..MI.| 000001e0 41 80 90 3c b9 54 fd e6 bc d1 9d c4 a4 18 8a 7f |A..<.T..........| 000001f0 41 8a 5c 59 83 68 32 bb 8c 47 c9 ee 71 bc 21 4f |A.\Y.h2..G..q.!O| 00000200 9a 8a 7c ff 44 3f 8d 8f 32 b2 26 48 ae 75 b5 ee |..|.D?..2.&H.u..| 00000210 c9 4c 1e 4a 19 7e e4 82 9a 1d 78 77 4d 0c b0 bd |.L.J.~....xwM...| 00000220 f6 0f d3 16 d3 bc fa 2b a5 51 38 5d f5 fb ba db |.......+.Q8]....| 00000230 78 02 db ff ec 0a 1b 96 d5 83 b8 19 13 e9 b6 c0 |x...............| 00000240 7b 40 7b e1 1f 28 27 c9 fa ef 56 5e 1c e6 7e 94 |{@{..('...V^..~.| 00000250 7e c0 f0 44 b2 79 39 e5 da b2 62 8b 4d bf 38 70 |~..D.y9...b.M.8p| 00000260 e2 68 24 14 c9 33 a4 08 37 d5 58 69 5e d3 7c ed |.h$..3..7.Xi^.|.| 00000270 c1 04 53 08 e7 4e b0 2a 87 63 08 61 6f 63 15 59 |..S..N.*.c.aoc.Y| 00000280 ea b2 2b 79 d7 0c 61 67 8a 5b fd 5e ad 87 7f ba |..+y..ag.[.^....| 00000290 86 67 4f 71 58 12 22 04 22 22 ce 8b ef 54 71 00 |.gOqX.".""...Tq.| 000002a0 ce 50 35 58 76 95 08 ee 6a b1 a2 01 d5 02 03 01 |.P5Xv...j.......| 000002b0 00 01 a3 82 01 76 30 82 01 72 30 12 06 09 2b 06 |.....v0..r0...+.| 000002c0 01 04 01 82 37 15 01 04 05 02 03 01 00 01 30 23 |....7.........0#| 000002d0 06 09 2b 06 01 04 01 82 37 15 02 04 16 04 14 f8 |..+.....7.......| 000002e0 c1 6b b7 7f 77 53 4a f3 25 37 1d 4e a1 26 7b 0f |.k..wSJ.%7.N.&{.| 000002f0 20 70 80 30 1d 06 03 55 1d 0e 04 16 04 14 13 ad | p.0...U........| 00000300 bf 43 09 bd 82 70 9c 8c d5 4f 31 6e d5 22 98 8a |.C...p...O1n."..| 00000310 1b d4 30 19 06 09 2b 06 01 04 01 82 37 14 02 04 |..0...+.....7...| 00000320 0c 1e 0a 00 53 00 75 00 62 00 43 00 41 30 0b 06 |....S.u.b.C.A0..| 00000330 03 55 1d 0f 04 04 03 02 01 86 30 0f 06 03 55 1d |.U........0...U.| 00000340 13 01 01 ff 04 05 30 03 01 01 ff 30 1f 06 03 55 |......0....0...U| 00000350 1d 23 04 18 30 16 80 14 45 66 52 43 e1 7e 58 11 |.#..0...EfRC.~X.| 00000360 bf d6 4e 9e 23 55 08 3b 3a 22 6a a8 30 5c 06 03 |..N.#U.;:"j.0\..| 00000370 55 1d 1f 04 55 30 53 30 51 a0 4f a0 4d 86 4b 68 |U...U0S0Q.O.M.Kh| 00000380 74 74 70 3a 2f 2f 63 72 6c 2e 6d 69 63 72 6f 73 |ttp://crl.micros| 00000390 6f 66 74 2e 63 6f 6d 2f 70 6b 69 2f 63 72 6c 2f |oft.com/pki/crl/| 000003a0 70 72 6f 64 75 63 74 73 2f 4d 69 63 43 6f 72 54 |products/MicCorT| 000003b0 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 31 30 |hiParMarRoo_2010| 000003c0 2d 31 30 2d 30 35 2e 63 72 6c 30 60 06 08 2b 06 |-10-05.crl0`..+.| 000003d0 01 05 05 07 01 01 04 54 30 52 30 50 06 08 2b 06 |.......T0R0P..+.| 000003e0 01 05 05 07 30 02 86 44 68 74 74 70 3a 2f 2f 77 |....0..Dhttp://w| 000003f0 77 77 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d |ww.microsoft.com| 00000400 2f 70 6b 69 2f 63 65 72 74 73 2f 4d 69 63 43 6f |/pki/certs/MicCo| 00000410 72 54 68 69 50 61 72 4d 61 72 52 6f 6f 5f 32 30 |rThiParMarRoo_20| 00000420 31 30 2d 31 30 2d 30 35 2e 63 72 74 30 0d 06 09 |10-10-05.crt0...| 00000430 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 02 01 00 |*.H.............| 00000440 35 08 42 ff 30 cc ce f7 76 0c ad 10 68 58 35 29 |5.B.0...v...hX5)| 00000450 46 32 76 27 7c ef 12 41 27 42 1b 4a aa 6d 81 38 |F2v'|..A'B.J.m.8| 00000460 48 59 13 55 f3 e9 58 34 a6 16 0b 82 aa 5d ad 82 |HY.U..X4.....]..| 00000470 da 80 83 41 06 8f b4 1d f2 03 b9 f3 1a 5d 1b f1 |...A.........]..| 00000480 50 90 f9 b3 55 84 42 28 1c 20 bd b2 ae 51 14 c5 |P...U.B(. ...Q..| 00000490 c0 ac 97 95 21 1c 90 db 0f fc 77 9e 95 73 91 88 |....!.....w..s..| 000004a0 ca bd bd 52 b9 05 50 0d df 57 9e a0 61 ed 0d e5 |...R..P..W..a...| 000004b0 6d 25 d9 40 0f 17 40 c8 ce a3 4a c2 4d af 9a 12 |m%.@..@...J.M...| 000004c0 1d 08 54 8f bd c7 bc b9 2b 3d 49 2b 1f 32 fc 6a |..T.....+=I+.2.j| 000004d0 21 69 4f 9b c8 7e 42 34 fc 36 06 17 8b 8f 20 40 |!iO..~B4.6.... @| 000004e0 c0 b3 9a 25 75 27 cd c9 03 a3 f6 5d d1 e7 36 54 |...%u'.....]..6T| 000004f0 7a b9 50 b5 d3 12 d1 07 bf bb 74 df dc 1e 8f 80 |z.P.......t.....| 00000500 d5 ed 18 f4 2f 14 16 6b 2f de 66 8c b0 23 e5 c7 |..../..k/.f..#..| 00000510 84 d8 ed ea c1 33 82 ad 56 4b 18 2d f1 68 95 07 |.....3..VK.-.h..| 00000520 cd cf f0 72 f0 ae bb dd 86 85 98 2c 21 4c 33 2b |...r.......,!L3+| 00000530 f0 0f 4a f0 68 87 b5 92 55 32 75 a1 6a 82 6a 3c |..J.h...U2u.j.j<| 00000540 a3 25 11 a4 ed ad d7 04 ae cb d8 40 59 a0 84 d1 |.%.........@Y...| 00000550 95 4c 62 91 22 1a 74 1d 8c 3d 47 0e 44 a6 e4 b0 |.Lb.".t..=G.D...| 00000560 9b 34 35 b1 fa b6 53 a8 2c 81 ec a4 05 71 c8 9d |.45...S.,....q..| 00000570 b8 ba e8 1b 44 66 e4 47 54 0e 8e 56 7f b3 9f 16 |....Df.GT..V....| 00000580 98 b2 86 d0 68 3e 90 23 b5 2f 5e 8f 50 85 8d c6 |....h>.#./^.P...| 00000590 8d 82 5f 41 a1 f4 2e 0d e0 99 d2 6c 75 e4 b6 69 |.._A.......lu..i| 000005a0 b5 21 86 fa 07 d1 f6 e2 4d d1 da ad 2c 77 53 1e |.!......M...,wS.| 000005b0 25 32 37 c7 6c 52 72 95 86 b0 f1 35 61 6a 19 f5 |%27.lRr....5aj..| 000005c0 b2 3b 81 50 56 a6 32 2d fe a2 89 f9 42 86 27 18 |.;.PV.2-....B.'.| 000005d0 55 a1 82 ca 5a 9b f8 30 98 54 14 a6 47 96 25 2f |U...Z..0.T..G.%/| 000005e0 c8 26 e4 41 94 1a 5c 02 3f e5 96 e3 85 5b 3c 3e |.&.A..\.?....[<>| 000005f0 3f bb 47 16 72 55 e2 25 22 b1 d9 7b e7 03 06 2a |?.G.rU.%"..{...*| 00000600 a3 f7 1e 90 46 c3 00 0d d6 19 89 e3 0e 35 27 62 |....F........5'b| 00000610 03 71 15 a6 ef d0 27 a0 a0 59 37 60 f8 38 94 b8 |.q....'..Y7`.8..| 00000620 e0 78 70 f8 ba 4c 86 87 94 f6 e0 ae 02 45 ee 65 |.xp..L.......E.e| 00000630 c2 b6 a3 7e 69 16 75 07 92 9b f5 a6 bc 59 83 58 |...~i.u......Y.X| 00000640 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[1].signature_type = {x509_cert} 00000650 07 06 00 00 |....| esl[1].signature_list_size = 1543 (0x607) 00000654 00 00 00 00 |....| esl[1].signature_header_size = 0 00000658 eb 05 00 00 |....| esl[1].signature_size = 1515 0000065c esl[1].signature_header (end:0x0000065c) 0000065c bd 9a fa 77 |...w| esl[1].signature[0].owner = {microsoft} 00000660 59 03 32 4d bd 60 28 f4 e7 8f 78 4b |Y.2M.`(...xK| 0000066c 30 82 05 d7 |0...| esl[1].signature[0].data (end:0x00000c47) 00000670 30 82 03 bf a0 03 02 01 02 02 0a 61 07 76 56 00 |0..........a.vV.| 00000680 00 00 00 00 08 30 0d 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 00000690 01 0b 05 00 30 81 88 31 0b 30 09 06 03 55 04 06 |....0..1.0...U..| 000006a0 13 02 55 53 31 13 30 11 06 03 55 04 08 13 0a 57 |..US1.0...U....W| 000006b0 61 73 68 69 6e 67 74 6f 6e 31 10 30 0e 06 03 55 |ashington1.0...U| 000006c0 04 07 13 07 52 65 64 6d 6f 6e 64 31 1e 30 1c 06 |....Redmond1.0..| 000006d0 03 55 04 0a 13 15 4d 69 63 72 6f 73 6f 66 74 20 |.U....Microsoft | 000006e0 43 6f 72 70 6f 72 61 74 69 6f 6e 31 32 30 30 06 |Corporation1200.| 000006f0 03 55 04 03 13 29 4d 69 63 72 6f 73 6f 66 74 20 |.U...)Microsoft | 00000700 52 6f 6f 74 20 43 65 72 74 69 66 69 63 61 74 65 |Root Certificate| 00000710 20 41 75 74 68 6f 72 69 74 79 20 32 30 31 30 30 | Authority 20100| 00000720 1e 17 0d 31 31 31 30 31 39 31 38 34 31 34 32 5a |...111019184142Z| 00000730 17 0d 32 36 31 30 31 39 31 38 35 31 34 32 5a 30 |..261019185142Z0| 00000740 81 84 31 0b 30 09 06 03 55 04 06 13 02 55 53 31 |..1.0...U....US1| 00000750 13 30 11 06 03 55 04 08 13 0a 57 61 73 68 69 6e |.0...U....Washin| 00000760 67 74 6f 6e 31 10 30 0e 06 03 55 04 07 13 07 52 |gton1.0...U....R| 00000770 65 64 6d 6f 6e 64 31 1e 30 1c 06 03 55 04 0a 13 |edmond1.0...U...| 00000780 15 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f |.Microsoft Corpo| 00000790 72 61 74 69 6f 6e 31 2e 30 2c 06 03 55 04 03 13 |ration1.0,..U...| 000007a0 25 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f |%Microsoft Windo| 000007b0 77 73 20 50 72 6f 64 75 63 74 69 6f 6e 20 50 43 |ws Production PC| 000007c0 41 20 32 30 31 31 30 82 01 22 30 0d 06 09 2a 86 |A 20110.."0...*.| 000007d0 48 86 f7 0d 01 01 01 05 00 03 82 01 0f 00 30 82 |H.............0.| 000007e0 01 0a 02 82 01 01 00 dd 0c bb a2 e4 2e 09 e3 e7 |................| 000007f0 c5 f7 96 69 bc 00 21 bd 69 33 33 ef ad 04 cb 54 |...i..!.i33....T| 00000800 80 ee 06 83 bb c5 20 84 d9 f7 d2 8b f3 38 b0 ab |...... ......8..| 00000810 a4 ad 2d 7c 62 79 05 ff e3 4a 3f 04 35 20 70 e3 |..-|by...J?.5 p.| 00000820 c4 e7 6b e0 9c c0 36 75 e9 8a 31 dd 8d 70 e5 dc |..k...6u..1..p..| 00000830 37 b5 74 46 96 28 5b 87 60 23 2c bf dc 47 a5 67 |7.tF.([.`#,..G.g| 00000840 f7 51 27 9e 72 eb 07 a6 c9 b9 1e 3b 53 35 7c e5 |.Q'.r......;S5|.| 00000850 d3 ec 27 b9 87 1c fe b9 c9 23 09 6f a8 46 91 c1 |..'......#.o.F..| 00000860 6e 96 3c 41 d3 cb a3 3f 5d 02 6a 4d ec 69 1f 25 |n.http://www.| 00000a00 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 70 6b |microsoft.com/pk| 00000a10 69 2f 63 65 72 74 73 2f 4d 69 63 52 6f 6f 43 65 |i/certs/MicRooCe| 00000a20 72 41 75 74 5f 32 30 31 30 2d 30 36 2d 32 33 2e |rAut_2010-06-23.| 00000a30 63 72 74 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |crt0...*.H......| 00000a40 05 00 03 82 02 01 00 14 fc 7c 71 51 a5 79 c2 6e |.........|qQ.y.n| 00000a50 b2 ef 39 3e bc 3c 52 0f 6e 2b 3f 10 13 73 fe a8 |..9>..\`...........| 00000b30 85 b6 7f 51 88 66 47 19 8d a2 b0 12 3d 81 2a 68 |...Q.fG.....=.*h| 00000b40 05 77 bb 91 4c 62 7b b6 c1 07 c7 ba 7a 87 34 03 |.w..Lb{.....z.4.| 00000b50 0e 4b 62 7a 99 e9 ca fc ce 4a 37 c9 2d a4 57 7c |.Kbz.....J7.-.W|| 00000b60 1c fe 3d dc b8 0f 5a fa d6 c4 b3 02 85 02 3a ea |..=...Z.......:.| 00000b70 b3 d9 6e e4 69 21 37 de 81 d1 f6 75 19 05 67 d3 |..n.i!7....u..g.| 00000b80 93 57 5e 29 1b 39 c8 ee 2d e1 cd e4 45 73 5b d0 |.W^).9..-...Es[.| 00000b90 d2 ce 7a ab 16 19 82 46 58 d0 5e 9d 81 b3 67 af |..z....FX.^...g.| 00000ba0 6c 35 f2 bc e5 3f 24 e2 35 a2 0a 75 06 f6 18 56 |l5...?$.5..u...V| 00000bb0 99 d4 78 2c d1 05 1b eb d0 88 01 9d aa 10 f1 05 |..x,............| 00000bc0 df ba 7e 2c 63 b7 06 9b 23 21 c4 f9 78 6c e2 58 |..~,c...#!..xl.X| 00000bd0 17 06 36 2b 91 12 03 cc a4 d9 f2 2d ba f9 94 9d |..6+.......-....| 00000be0 40 ed 18 45 f1 ce 8a 5c 6b 3e ab 03 d3 70 18 2a |@..E...\k>...p.*| 00000bf0 0a 6a e0 5f 47 d1 d5 63 0a 32 f2 af d7 36 1f 2a |.j._G..c.2...6.*| 00000c00 70 5a e5 42 59 08 71 4b 57 ba 7e 83 81 f0 21 3c |pZ.BY.qKW.~...!<| 00000c10 f4 1c c1 c5 b9 90 93 0e 88 45 93 86 e9 b1 20 99 |.........E.... .| 00000c20 be 98 cb c5 95 a4 5d 62 d6 a0 63 08 20 bd 75 10 |......]b..c. .u.| 00000c30 77 7d 3d f3 45 b9 9f 97 9f cb 57 80 6f 33 a9 04 |w}=.E.....W.o3..| 00000c40 cf 77 a4 62 1c 59 7e |.w.b.Y~| 00000c47 a1 59 c0 a5 e4 94 a7 4a 87 |.Y.....J.| esl[2].signature_type = {x509_cert} 00000c50 b5 ab 15 5c 2b f0 72 |...\+.r| 00000c57 47 04 00 00 |G...| esl[2].signature_list_size = 1095 (0x447) 00000c5b 00 00 00 00 |....| esl[2].signature_header_size = 0 00000c5f 2b |+| esl[2].signature_size = 1067 00000c60 04 00 00 |...| 00000c63 esl[2].signature_header (end:0x00000c63) 00000c63 51 48 dc 26 5f 19 e1 4a 9a 19 fb f8 83 |QH.&_..J.....| esl[2].signature[0].owner = {supermicro} 00000c70 bb b3 5e |..^| 00000c73 30 82 04 17 30 82 02 ff a0 03 02 01 02 |0...0........| esl[2].signature[0].data (end:0x0000108e) 00000c80 02 11 00 b9 36 b3 dd 63 21 4c 30 ae 31 b4 2f 0a |....6..c!L0.1./.| 00000c90 48 36 0d 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b |H6.0...*.H......| 00000ca0 05 00 30 72 31 26 30 24 06 03 55 04 03 0c 1d 55 |..0r1&0$..U....U| 00000cb0 6e 63 6f c3 b6 70 65 72 61 74 69 76 65 20 53 65 |nco..perative Se| 00000cc0 63 75 72 65 20 42 6f 6f 74 20 43 41 31 1e 30 1c |cure Boot CA1.0.| 00000cd0 06 03 55 04 0b 0c 15 54 68 65 20 55 6e 63 6f c3 |..U....The Unco.| 00000ce0 b6 70 65 72 61 74 69 76 65 20 43 41 31 28 30 26 |.perative CA1(0&| 00000cf0 06 03 55 04 0a 0c 1f 54 68 65 20 55 6e 63 6f c3 |..U....The Unco.| 00000d00 b6 70 65 72 61 74 69 76 65 20 4f 72 67 61 6e 69 |.perative Organi| 00000d10 7a 61 74 69 6f 6e 30 1e 17 0d 32 30 30 36 32 32 |zation0...200622| 00000d20 32 30 34 39 32 38 5a 17 0d 33 37 30 31 31 39 30 |204928Z..3701190| 00000d30 33 31 34 30 37 5a 30 76 31 2a 30 28 06 03 55 04 |31407Z0v1*0(..U.| 00000d40 03 0c 21 55 6e 63 6f c3 b6 70 65 72 61 74 69 76 |..!Unco..perativ| 00000d50 65 20 53 65 63 75 72 65 20 42 6f 6f 74 20 53 69 |e Secure Boot Si| 00000d60 67 6e 65 72 31 1e 30 1c 06 03 55 04 0b 0c 15 54 |gner1.0...U....T| 00000d70 68 65 20 55 6e 63 6f c3 b6 70 65 72 61 74 69 76 |he Unco..perativ| 00000d80 65 20 43 41 31 28 30 26 06 03 55 04 0a 0c 1f 54 |e CA1(0&..U....T| 00000d90 68 65 20 55 6e 63 6f c3 b6 70 65 72 61 74 69 76 |he Unco..perativ| 00000da0 65 20 4f 72 67 61 6e 69 7a 61 74 69 6f 6e 30 82 |e Organization0.| 00000db0 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 |."0...*.H.......| 00000dc0 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 00 f0 |......0.........| 00000dd0 a8 61 28 1e c0 32 b5 43 9c 18 cf 74 eb 75 cc bd |.a(..2.C...t.u..| 00000de0 ee 3c 78 18 cd 8f 16 f0 58 7e 80 32 ec 03 63 e4 |...| 00000e00 12 98 8c 48 be 32 92 29 7e 02 f7 e3 08 58 71 0d |...H.2.)~....Xq.| 00000e10 1a 8e 69 99 26 c1 a1 f8 ff 21 db 35 41 73 13 e3 |..i.&....!.5As..| 00000e20 61 94 df 6a db fb bb 5f 5c f2 27 97 cb b8 85 72 |a..j..._\.'....r| 00000e30 24 ce 63 2e 67 97 27 20 6a de 02 60 ab c8 5b 25 |$.c.g.' j..`..[%| 00000e40 2b 08 3a 99 d2 8d 2c 81 e4 a9 aa c6 34 42 ae 7d |+.:...,.....4B.}| 00000e50 ef b7 1f 4b 43 bc b2 ff b8 94 32 a7 b3 2e 59 4d |...KC.....2...YM| 00000e60 e7 4b cb 0b 46 aa 0d 63 30 bb 6b 11 05 44 16 ce |.K..F..c0.k..D..| 00000e70 7f c3 be b0 b7 53 dc 9b c5 9a f2 e4 f8 a2 9a 89 |.....S..........| 00000e80 63 63 ff 87 58 7a 1c 60 3b 26 f0 8d eb 8f 9d 65 |cc..Xz.`;&.....e| 00000e90 1c ff 6b 3a e8 b2 94 bd 76 d1 cc d1 ae 27 4c 9c |..k:....v....'L.| 00000ea0 4b 2b 79 61 5f c7 62 73 c8 7d 06 ac 40 c6 fd e1 |K+ya_.bs.}..@...| 00000eb0 94 16 ed fb c0 34 c4 fe 00 f6 87 69 13 05 68 35 |.....4.....i..h5| 00000ec0 d3 98 de ca cf 18 fe 83 76 ca 78 ef 88 a5 d7 02 |........v.x.....| 00000ed0 03 01 00 01 a3 81 a3 30 81 a0 30 3b 06 08 2b 06 |.......0..0;..+.| 00000ee0 01 05 05 07 01 01 04 2f 30 2d 30 2b 06 08 2b 06 |......./0-0+..+.| 00000ef0 01 05 05 07 30 02 86 1f 68 74 74 70 73 3a 2f 2f |....0...https://| 00000f00 62 6c 6f 67 2e 75 6e 63 6f 6f 70 65 72 61 74 69 |blog.uncooperati| 00000f10 76 65 2e 6f 72 67 2f 30 1f 06 03 55 1d 23 04 18 |ve.org/0...U.#..| 00000f20 30 16 80 14 1d 80 d6 86 b9 29 f7 23 69 6e 65 a8 |0........).#ine.| 00000f30 d5 c3 c1 b2 d8 f3 67 22 30 13 06 03 55 1d 25 04 |......g"0...U.%.| 00000f40 0c 30 0a 06 08 2b 06 01 05 05 07 03 03 30 0c 06 |.0...+.......0..| 00000f50 03 55 1d 13 01 01 ff 04 02 30 00 30 1d 06 03 55 |.U.......0.0...U| 00000f60 1d 0e 04 16 04 14 7c 6d 85 8a 27 10 1d de 1a aa |......|m..'.....| 00000f70 9a f3 76 74 fe 0f 30 dd 1f 7d 30 0d 06 09 2a 86 |..vt..0..}0...*.| 00000f80 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 4b 33 |H.............K3| 00000f90 d5 09 bd c8 9d f4 63 46 7b 07 94 85 c4 ec 7d f1 |......cF{.....}.| 00000fa0 5f b8 1d 93 50 15 b6 24 d4 18 e3 3d 5f 29 49 1c |_...P..$...=_)I.| 00000fb0 3f 5a f3 35 7e 56 75 9d 9d 31 10 36 f9 10 cc 7d |?Z.5~Vu..1.6...}| 00000fc0 ac f4 8b ed de 09 7d f2 94 a2 f0 5c f4 9a 45 39 |......}....\..E9| 00000fd0 3b 8d 8f 8c 93 79 c5 e1 4f aa 26 e1 2c a5 d7 82 |;....y..O.&.,...| 00000fe0 97 95 cf 91 0b 4b d1 83 47 04 a9 73 0b 1a 31 79 |.....K..G..s..1y| 00000ff0 1a ad 41 a7 50 9a ca c3 25 7b 8d ba a6 db 31 18 |..A.P...%{....1.| 00001000 b2 af 91 9a 07 d4 f8 fa 6b 23 3d 5a a4 9d 66 02 |........k#=Z..f.| 00001010 d1 9a 1d e9 dc 36 aa 3b 00 97 fd ee b2 8f 7c 69 |.....6.;......|i| 00001020 49 1f f5 67 27 b2 26 5c 27 b2 33 21 b4 2e 8c a8 |I..g'.&\'.3!....| 00001030 2e ba 78 18 da bf 59 eb b7 70 ce 67 2e 47 32 17 |..x...Y..p.g.G2.| 00001040 44 4b b0 19 ff e2 0b 66 ad a7 ea 7d c4 18 98 f8 |DK.....f...}....| 00001050 19 db 52 58 73 68 f0 6c 2e 6d 80 4f 74 83 0a 82 |..RXsh.l.m.Ot...| 00001060 b6 49 d3 2c 1e 86 f0 c2 72 4d 97 c0 8e 85 6d 21 |.I.,....rM....m!| 00001070 68 6b 71 cc 37 61 60 33 42 76 53 43 e3 a0 f6 6a |hkq.7a`3BvSC...j| 00001080 2d e0 b0 60 2e f7 40 24 14 af 41 14 16 d9 |-..`..@$..A...| 0000108e a1 59 |.Y| esl[3].signature_type = {x509_cert} 00001090 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.....J....\+.r| 0000109e 82 03 |..| esl[3].signature_list_size = 898 (0x382) 000010a0 00 00 |..| 000010a2 00 00 00 00 |....| esl[3].signature_header_size = 0 000010a6 66 03 00 00 |f...| esl[3].signature_size = 870 000010aa esl[3].signature_header (end:0x000010aa) 000010aa 91 30 05 3b 9f 6c |.0.;.l| esl[3].signature[0].owner = {asus} 000010b0 cc 04 b1 ac e2 a5 1e 3b e5 f5 |.......;..| 000010ba 30 82 03 52 30 82 |0..R0.| esl[3].signature[0].data (end:0x00001410) 000010c0 02 3a a0 03 02 01 02 02 10 da 83 b9 90 42 2e bc |.:...........B..| 000010d0 8c 44 1f 8d 8b 03 9a 65 a2 30 0d 06 09 2a 86 48 |.D.....e.0...*.H| 000010e0 86 f7 0d 01 01 0b 05 00 30 31 31 2f 30 2d 06 03 |........011/0-..| 000010f0 55 04 03 13 26 41 53 55 53 54 65 4b 20 4d 6f 74 |U...&ASUSTeK Mot| 00001100 68 65 72 42 6f 61 72 64 20 53 57 20 4b 65 79 20 |herBoard SW Key | 00001110 43 65 72 74 69 66 69 63 61 74 65 30 1e 17 0d 31 |Certificate0...1| 00001120 31 31 32 32 36 32 33 33 35 30 35 5a 17 0d 33 31 |11226233505Z..31| 00001130 31 32 32 36 32 33 33 35 30 34 5a 30 31 31 2f 30 |1226233504Z011/0| 00001140 2d 06 03 55 04 03 13 26 41 53 55 53 54 65 4b 20 |-..U...&ASUSTeK | 00001150 4d 6f 74 68 65 72 42 6f 61 72 64 20 53 57 20 4b |MotherBoard SW K| 00001160 65 79 20 43 65 72 74 69 66 69 63 61 74 65 30 82 |ey Certificate0.| 00001170 01 22 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 |."0...*.H.......| 00001180 00 03 82 01 0f 00 30 82 01 0a 02 82 01 01 00 8c |......0.........| 00001190 f6 a6 eb 77 fc 83 8a a4 9f d5 f8 cf 3f 37 f2 6e |...w........?7.n| 000011a0 2d 0a 62 c5 d8 9b 1d 16 0b 22 7f 29 5f 3a 26 df |-.b......".)_:&.| 000011b0 53 97 8c 78 94 19 90 42 73 0f 85 c2 ff a4 85 7c |S..x...Bs......|| 000011c0 81 2e 0b 51 ba 56 23 27 92 3d a3 f2 dc e2 77 84 |...Q.V#'.=....w.| 000011d0 9e 50 be 8a eb 51 34 a4 f8 ef 5d d7 51 fe 70 42 |.P...Q4...].Q.pB| 000011e0 4c 42 06 ef 69 2c a2 d3 25 e1 26 57 23 85 6d d0 |LB..i,..%.&W#.m.| 000011f0 a7 7b c0 45 28 7e 89 d5 b4 0a eb af 41 79 21 d2 |.{.E(~......Ay!.| 00001200 d7 00 ec 48 f9 44 f6 5b be b6 25 24 f0 8e 2e b4 |...H.D.[..%$....| 00001210 52 3e e1 0e c1 a4 67 ea fe e5 93 cc b9 c4 36 21 |R>....g.......6!| 00001220 cb 54 fa af 9d 9c 85 78 cc e5 88 f3 84 0c 67 db |.T.....x......g.| 00001230 26 69 58 ca de 47 34 ec cf 2f b6 49 59 b5 56 db |&iX..G4../.IY.V.| 00001240 58 45 7b 21 9d 99 0b 5f de 57 16 a6 ab c8 79 3f |XE{!..._.W....y?| 00001250 9d 76 89 e2 09 f9 8d e2 63 37 fc 74 ea 73 7e 70 |.v......c7.t.s~p| 00001260 ac 15 16 a5 ed 88 60 5f 33 ed 94 9e 0a 05 de c7 |......`_3.......| 00001270 85 c3 c1 7a 54 fb 4e cb cb e8 5e 44 7c 39 db 2d |...zT.N...^D|9.-| 00001280 b2 b7 6c ce ca 2f 63 9d 16 4e a6 e5 ef d6 cf 02 |..l../c..N......| 00001290 03 01 00 01 a3 66 30 64 30 62 06 03 55 1d 01 04 |.....f0d0b..U...| 000012a0 5b 30 59 80 10 56 b0 8b 2a a7 fe cc f1 0c ed 87 |[0Y..V..*.......| 000012b0 62 dc d5 1d c3 a1 33 30 31 31 2f 30 2d 06 03 55 |b.....3011/0-..U| 000012c0 04 03 13 26 41 53 55 53 54 65 4b 20 4d 6f 74 68 |...&ASUSTeK Moth| 000012d0 65 72 42 6f 61 72 64 20 53 57 20 4b 65 79 20 43 |erBoard SW Key C| 000012e0 65 72 74 69 66 69 63 61 74 65 82 10 da 83 b9 90 |ertificate......| 000012f0 42 2e bc 8c 44 1f 8d 8b 03 9a 65 a2 30 0d 06 09 |B...D.....e.0...| 00001300 2a 86 48 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 |*.H.............| 00001310 02 cf 52 6f 0b 91 eb e4 3b b2 70 0c 07 2d 79 80 |..Ro....;.p..-y.| 00001320 01 9e 4b 4d 92 bb dc 9e e5 e5 31 85 e3 9a 75 ed |..KM......1...u.| 00001330 ca de 8c ee 28 34 01 83 14 47 9e 3a d4 43 5b 2c |....(4...G.:.C[,| 00001340 c4 41 c8 40 7d b5 08 76 86 80 2b a8 00 9f b7 d3 |.A.@}..v..+.....| 00001350 b1 e6 60 5c 32 b0 a0 01 0f ba 36 8b b7 b5 4e 87 |..`\2.....6...N.| 00001360 d5 b7 0a 2c bd bc 6a 43 3c ee 76 7c 76 20 ed 39 |...,..jC<.v|v .9| 00001370 91 a8 bf 70 1e d6 a8 1a 3e 81 36 6b 7d 1d 8d f6 |...p....>.6k}...| 00001380 f8 af 5b 38 53 6a 04 0d 7e ae 4d ee ab 02 d4 a4 |..[8Sj..~.M.....| 00001390 a2 a9 cf b6 e3 66 a3 ca 4d 5d d4 18 61 4d da 83 |.....f..M]..aM..| 000013a0 28 4e aa 2a af da eb df 2a 20 bd 78 80 ef d1 b0 |(N.*....* .x....| 000013b0 dd 9b 77 db c9 25 39 4b cf a2 86 1a ac cc 32 e7 |..w..%9K......2.| 000013c0 87 d4 59 b2 03 c4 69 02 8f 17 c9 de 52 cb e7 ab |..Y...i.....R...| 000013d0 b8 35 c5 f8 33 06 03 93 52 cf b3 68 d2 b3 5c 1c |.5..3...R..h..\.| 000013e0 e8 19 fe 75 26 ed d1 65 72 13 4d 69 34 5a 9b 0c |...u&..er.Mi4Z..| 000013f0 b4 e3 56 53 3c b4 67 27 f8 fa d3 20 da 37 58 f6 |..VS<.g'... .7X.| 00001400 ad e2 82 59 a2 b8 22 2f 9e 56 fe bc 17 49 1d af |...Y.."/.V...I..| 00001410 a1 59 c0 a5 e4 94 a7 4a 87 b5 ab 15 5c 2b f0 72 |.Y.....J....\+.r| esl[4].signature_type = {x509_cert} 00001420 79 03 00 00 |y...| esl[4].signature_list_size = 889 (0x379) 00001424 00 00 00 00 |....| esl[4].signature_header_size = 0 00001428 5d 03 00 00 |]...| esl[4].signature_size = 861 0000142c esl[4].signature_header (end:0x0000142c) 0000142c 91 30 05 3b |.0.;| esl[4].signature[0].owner = {asus} 00001430 9f 6c cc 04 b1 ac e2 a5 1e 3b e5 f5 |.l.......;..| 0000143c 30 82 03 49 |0..I| esl[4].signature[0].data (end:0x00001789) 00001440 30 82 02 31 a0 03 02 01 02 02 10 b8 e5 81 e4 df |0..1............| 00001450 77 a5 bb 42 82 d5 cc fc 00 c0 71 30 0d 06 09 2a |w..B......q0...*| 00001460 86 48 86 f7 0d 01 01 0b 05 00 30 2e 31 2c 30 2a |.H........0.1,0*| 00001470 06 03 55 04 03 13 23 41 53 55 53 54 65 4b 20 4e |..U...#ASUSTeK N| 00001480 6f 74 65 62 6f 6f 6b 20 53 57 20 4b 65 79 20 43 |otebook SW Key C| 00001490 65 72 74 69 66 69 63 61 74 65 30 1e 17 0d 31 31 |ertificate0...11| 000014a0 31 32 32 37 30 30 31 38 35 33 5a 17 0d 33 31 31 |1227001853Z..311| 000014b0 32 32 37 30 30 31 38 35 32 5a 30 2e 31 2c 30 2a |227001852Z0.1,0*| 000014c0 06 03 55 04 03 13 23 41 53 55 53 54 65 4b 20 4e |..U...#ASUSTeK N| 000014d0 6f 74 65 62 6f 6f 6b 20 53 57 20 4b 65 79 20 43 |otebook SW Key C| 000014e0 65 72 74 69 66 69 63 61 74 65 30 82 01 22 30 0d |ertificate0.."0.| 000014f0 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00001500 0f 00 30 82 01 0a 02 82 01 01 00 9e 61 fa 74 2c |..0.........a.t,| 00001510 2a 88 17 c4 bd 77 19 0d b3 33 27 0c 0e 94 ec b0 |*....w...3'.....| 00001520 8b 71 b3 08 77 b7 d2 08 9d 32 4f 5c f7 0c cf e0 |.q..w....2O\....| 00001530 29 53 56 ed 24 91 d8 bd 53 2a 89 89 8c 74 28 ab |)SV.$...S*...t(.| 00001540 16 2d 4f 9b 65 fc 63 7d ed 23 b6 97 5c 6d 04 e4 |.-O.e.c}.#..\m..| 00001550 15 7f dc f8 ba 6b 08 cc c9 21 e9 b5 de 8e 03 28 |.....k...!.....(| 00001560 12 63 f0 6a b6 e5 df 1d 72 28 cc 64 d6 63 66 2f |.c.j....r(.d.cf/| 00001570 04 52 6a 1d 25 7d c7 bd e0 78 fb 0c b7 37 e5 ae |.Rj.%}...x...7..| 00001580 f7 0d d6 b5 b4 bf f5 f1 c6 82 56 78 5c a8 f3 53 |..........Vx\..S| 00001590 2e f5 ec 15 3f 12 62 2f eb b6 79 79 86 ac 76 ff |....?.b/..yy..v.| 000015a0 b6 66 45 f5 33 da dd 25 d6 a7 bf f8 d9 db d3 f1 |.fE.3..%........| 000015b0 fa ce 0e 22 30 d7 d4 80 02 bd d3 2c 1e ec 46 2e |..."0......,..F.| 000015c0 2f ca 0f 7a fa b9 5c ff 2b 16 c6 6a 6b 8d 94 64 |/..z..\.+..jk..d| 000015d0 92 7e f9 55 ee 96 00 4d 04 2e 4b 15 ed f1 08 49 |.~.U...M..K....I| 000015e0 6a 07 86 69 c8 c5 64 fa ad 2c 4f 02 50 e4 1f 83 |j..i..d..,O.P...| 000015f0 c7 2f 19 9f e8 a5 62 d9 51 32 18 b6 83 ca 08 0a |./....b.Q2......| 00001600 a1 ab a7 65 70 9c 1e 48 c3 0f 49 02 03 01 00 01 |...ep..H..I.....| 00001610 a3 63 30 61 30 5f 06 03 55 1d 01 04 58 30 56 80 |.c0a0_..U...X0V.| 00001620 10 00 65 11 e3 ca 0f 96 e8 8d 5b 04 a4 e7 fe ce |..e.......[.....| 00001630 aa a1 30 30 2e 31 2c 30 2a 06 03 55 04 03 13 23 |..00.1,0*..U...#| 00001640 41 53 55 53 54 65 4b 20 4e 6f 74 65 62 6f 6f 6b |ASUSTeK Notebook| 00001650 20 53 57 20 4b 65 79 20 43 65 72 74 69 66 69 63 | SW Key Certific| 00001660 61 74 65 82 10 b8 e5 81 e4 df 77 a5 bb 42 82 d5 |ate.......w..B..| 00001670 cc fc 00 c0 71 30 0d 06 09 2a 86 48 86 f7 0d 01 |....q0...*.H....| 00001680 01 0b 05 00 03 82 01 01 00 31 18 f4 ee e3 72 ba |.........1....r.| 00001690 be 33 44 61 74 19 1f 66 ac 5c fd 1d 9a 26 75 d0 |.3Dat..f.\...&u.| 000016a0 14 cd 68 38 b3 a8 3f 4f b4 4a e9 1e 21 f2 c9 ee |..h8..?O.J..!...| 000016b0 37 96 26 be 1d 58 9b ad 21 ce 58 79 53 d3 ff 38 |7.&..X..!.XyS..8| 000016c0 ef 8f 22 cd 90 0e c6 32 21 75 9b 5a ab af 08 ff |.."....2!u.Z....| 000016d0 05 cd 2b f8 8c e7 97 47 bb 78 e4 5f 56 47 d2 bc |..+....G.x._VG..| 000016e0 c8 a5 95 cb 76 89 5c 65 24 02 18 06 9c 12 5f ef |....v.\e$....._.| 000016f0 e0 5c 19 45 38 96 df 7a 60 5d 61 ba 4d c8 7b 6e |.\.E8..z`]a.M.{n| 00001700 8d 8c 6e 1d a9 e5 92 35 a2 4f 36 d3 40 ad d7 40 |..n....5.O6.@..@| 00001710 12 ab 6c 48 8d 18 92 e4 00 52 03 df 14 ac 66 3f |..lH.....R....f?| 00001720 6a ae 42 3a 06 50 aa a5 0d 40 a7 7b eb fd 41 49 |j.B:.P...@.{..AI| 00001730 ff eb a3 b4 50 4f f7 54 13 3b 1f 8e b4 45 04 20 |....PO.T.;...E. | 00001740 42 74 fe 78 3d be 7c db a7 2a 2a 9d 06 48 c0 9a |Bt.x=.|..**..H..| 00001750 02 23 af f2 98 07 95 de 3b 30 73 ec 3e 73 58 8f |.#......;0s.>sX.| 00001760 07 53 40 96 d8 24 d9 66 80 7a 75 8d b7 39 27 10 |.S@..$.f.zu..9'.| 00001770 89 7a b4 53 bf 3b c2 e2 97 93 37 8a 9d 4d 23 6e |.z.S.;....7..M#n| 00001780 ac eb 0d 53 21 4d 0b 34 13 |...S!M.4.| 00001789 a1 59 c0 a5 e4 94 a7 |.Y.....| esl[5].signature_type = {x509_cert} 00001790 4a 87 b5 ab 15 5c 2b f0 72 |J....\+.r| 00001799 64 04 00 00 |d...| esl[5].signature_list_size = 1124 (0x464) 0000179d 00 00 00 |...| esl[5].signature_header_size = 0 000017a0 00 |.| 000017a1 48 04 00 00 |H...| esl[5].signature_size = 1096 000017a5 esl[5].signature_header (end:0x000017a5) 000017a5 e4 0a c4 6d e8 2e 4c 9c a3 14 0f |...m..L....| esl[5].signature[0].owner = {canonical} 000017b0 c7 b2 00 87 10 |.....| 000017b5 30 82 04 34 30 82 03 1c a0 03 02 |0..40......| esl[5].signature[0].data (end:0x00001bed) 000017c0 01 02 02 09 00 b9 41 24 a0 18 2c 92 67 30 0d 06 |......A$..,.g0..| 000017d0 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 81 84 31 |.*.H........0..1| 000017e0 0b 30 09 06 03 55 04 06 13 02 47 42 31 14 30 12 |.0...U....GB1.0.| 000017f0 06 03 55 04 08 0c 0b 49 73 6c 65 20 6f 66 20 4d |..U....Isle of M| 00001800 61 6e 31 10 30 0e 06 03 55 04 07 0c 07 44 6f 75 |an1.0...U....Dou| 00001810 67 6c 61 73 31 17 30 15 06 03 55 04 0a 0c 0e 43 |glas1.0...U....C| 00001820 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 31 34 30 |anonical Ltd.140| 00001830 32 06 03 55 04 03 0c 2b 43 61 6e 6f 6e 69 63 61 |2..U...+Canonica| 00001840 6c 20 4c 74 64 2e 20 4d 61 73 74 65 72 20 43 65 |l Ltd. Master Ce| 00001850 72 74 69 66 69 63 61 74 65 20 41 75 74 68 6f 72 |rtificate Author| 00001860 69 74 79 30 1e 17 0d 31 32 30 34 31 32 31 31 31 |ity0...120412111| 00001870 32 35 31 5a 17 0d 34 32 30 34 31 31 31 31 31 32 |251Z..4204111112| 00001880 35 31 5a 30 81 84 31 0b 30 09 06 03 55 04 06 13 |51Z0..1.0...U...| 00001890 02 47 42 31 14 30 12 06 03 55 04 08 0c 0b 49 73 |.GB1.0...U....Is| 000018a0 6c 65 20 6f 66 20 4d 61 6e 31 10 30 0e 06 03 55 |le of Man1.0...U| 000018b0 04 07 0c 07 44 6f 75 67 6c 61 73 31 17 30 15 06 |....Douglas1.0..| 000018c0 03 55 04 0a 0c 0e 43 61 6e 6f 6e 69 63 61 6c 20 |.U....Canonical | 000018d0 4c 74 64 2e 31 34 30 32 06 03 55 04 03 0c 2b 43 |Ltd.1402..U...+C| 000018e0 61 6e 6f 6e 69 63 61 6c 20 4c 74 64 2e 20 4d 61 |anonical Ltd. Ma| 000018f0 73 74 65 72 20 43 65 72 74 69 66 69 63 61 74 65 |ster Certificate| 00001900 20 41 75 74 68 6f 72 69 74 79 30 82 01 22 30 0d | Authority0.."0.| 00001910 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 82 01 |..*.H...........| 00001920 0f 00 30 82 01 0a 02 82 01 01 00 bf 5b 3a 16 74 |..0.........[:.t| 00001930 ee 21 5d ae 61 ed 9d 56 ac bd de de 72 f3 dd 7e |.!].a..V....r..~| 00001940 2d 4c 62 0f ac c0 6d 48 08 11 cf 8d 8b fb 61 1f |-Lb...mH......a.| 00001950 27 cc 11 6e d9 55 3d 39 54 eb 40 3b b1 bb e2 85 |'..n.U=9T.@;....| 00001960 34 79 ca f7 7b bf ba 7a c8 10 2d 19 7d ad 59 cf |4y..{..z..-.}.Y.| 00001970 a6 d4 e9 4e 0f da ae 52 ea 4c 9e 90 ce c6 99 0d |...N...R.L......| 00001980 4e 67 65 78 5d f9 d1 d5 38 4a 4a 7a 8f 93 9c 7f |Ngex]...8JJz....| 00001990 1a a3 85 db ce fa 8b f7 c2 a2 21 2d 9b 54 41 35 |..........!-.TA5| 000019a0 10 57 13 8d 6c bc 29 06 50 4a 7e ea 99 a9 68 a7 |.W..l.).PJ~...h.| 000019b0 3b c7 07 1b 32 9e a0 19 87 0e 79 bb 68 99 2d 7e |;...2.....y.h.-~| 000019c0 93 52 e5 f6 eb c9 9b f9 2b ed b8 68 49 bc d9 95 |.R......+..hI...| 000019d0 50 40 5b c5 b2 71 aa eb 5c 57 de 71 f9 40 0a dd |P@[..q..\W.q.@..| 000019e0 5b ac 1e 84 2d 50 1a 52 d6 e1 f3 6b 6e 90 64 4f |[...-P.R...kn.dO| 000019f0 5b b4 eb 20 e4 61 10 da 5a f0 ea e4 42 d7 01 c4 |[.. .a..Z...B...| 00001a00 fe 21 1f d9 b9 c0 54 95 42 81 52 72 1f 49 64 7a |.!....T.B.Rr.Idz| 00001a10 c8 6c 24 f1 08 70 0b 4d a5 a0 32 d1 a0 1c 57 a8 |.l$..p.M..2...W.| 00001a20 4d e3 af a5 8e 05 05 3e 10 43 a1 02 03 01 00 01 |M......>.C......| 00001a30 a3 81 a6 30 81 a3 30 1d 06 03 55 1d 0e 04 16 04 |...0..0...U.....| 00001a40 14 ad 91 99 0b c2 2a b1 f5 17 04 8c 23 b6 65 5a |......*.....#.eZ| 00001a50 26 8e 34 5a 63 30 1f 06 03 55 1d 23 04 18 30 16 |&.4Zc0...U.#..0.| 00001a60 80 14 ad 91 99 0b c2 2a b1 f5 17 04 8c 23 b6 65 |.......*.....#.e| 00001a70 5a 26 8e 34 5a 63 30 0f 06 03 55 1d 13 01 01 ff |Z&.4Zc0...U.....| 00001a80 04 05 30 03 01 01 ff 30 0b 06 03 55 1d 0f 04 04 |..0....0...U....| 00001a90 03 02 01 86 30 43 06 03 55 1d 1f 04 3c 30 3a 30 |....0C..U...<0:0| 00001aa0 38 a0 36 a0 34 86 32 68 74 74 70 3a 2f 2f 77 77 |8.6.4.2http://ww| 00001ab0 77 2e 63 61 6e 6f 6e 69 63 61 6c 2e 63 6f 6d 2f |w.canonical.com/| 00001ac0 73 65 63 75 72 65 2d 62 6f 6f 74 2d 6d 61 73 74 |secure-boot-mast| 00001ad0 65 72 2d 63 61 2e 63 72 6c 30 0d 06 09 2a 86 48 |er-ca.crl0...*.H| 00001ae0 86 f7 0d 01 01 0b 05 00 03 82 01 01 00 3f 7d f6 |.............?}.| 00001af0 76 a5 b3 83 b4 2b 7a d0 6d 52 1a 03 83 c4 12 a7 |v....+z.mR......| 00001b00 50 9c 47 92 cc c0 94 77 82 d2 ae 57 b3 99 04 f5 |P.G....w...W....| 00001b10 32 3a c6 55 1d 07 db 12 a9 56 fa d8 d4 76 20 eb |2:.U.....V...v .| 00001b20 e4 c3 51 db 9a 5c 9c 92 3f 18 73 da 94 6a a1 99 |..Q..\..?.s..j..| 00001b30 38 8c a4 88 6d c1 fc 39 71 d0 74 76 16 03 3e 56 |8...m..9q.tv..>V| 00001b40 23 35 d5 55 47 5b 1a 1d 41 c2 d3 12 4c dc ff ae |#5.UG[..A...L...| 00001b50 0a 92 9c 62 0a 17 01 9c 73 e0 5e b1 fd bc d6 b5 |...b....s.^.....| 00001b60 19 11 7a 7e cd 3e 03 7e 66 db 5b a8 c9 39 48 51 |..z~.>.~f.[..9HQ| 00001b70 ff 53 e1 9c 31 53 91 1b 3b 10 75 03 17 ba e6 81 |.S..1S..;.u.....| 00001b80 02 80 94 70 4c 46 b7 94 b0 3d 15 cd 1f 8e 02 e0 |...pLF...=......| 00001b90 68 02 8f fb f9 47 1d 7d a2 01 c6 07 51 c4 9a cc |h....G.}....Q...| 00001ba0 ed dd cf a3 5d ed 92 bb be d1 fd e6 ec 1f 33 51 |....].........3Q| 00001bb0 73 04 be 3c 72 b0 7d 08 f8 01 ff 98 7d cb 9c e0 |s...........f..| 00001be0 6d bd b8 27 77 c1 42 94 bd fc 6a 0a bc |m..'w.B...j..| 00001bed 26 16 c4 |&..| esl[6].signature_type = {sha256} 00001bf0 c1 4c 50 92 40 ac a9 41 f9 36 93 43 28 |.LP.@..A.6.C(| 00001bfd 0c 01 00 |...| esl[6].signature_list_size = 268 (0x10c) 00001c00 00 |.| 00001c01 00 00 00 00 |....| esl[6].signature_header_size = 0 00001c05 30 00 00 00 |0...| esl[6].signature_size = 48 00001c09 esl[6].signature_header (end:0x00001c09) 00001c09 00 00 00 00 00 00 00 |.......| esl[6].signature[0].owner = {zero} 00001c10 00 00 00 00 00 00 00 00 00 |.........| 00001c19 f5 8f bd f7 1b e8 c3 |.......| esl[6].signature[0].data (end:0x00001c39) 00001c20 7c bb d6 94 4e 47 2c 45 0b 10 43 81 7b 97 29 14 ||...NG,E..C.{.).| 00001c30 48 7c 22 10 33 f3 07 9e 43 |H|".3...C| 00001c39 00 00 00 00 00 00 00 |.......| esl[6].signature[1].owner = {zero} 00001c40 00 00 00 00 00 00 00 00 00 |.........| 00001c49 04 97 01 57 de 52 cd |...W.R.| esl[6].signature[1].data (end:0x00001c69) 00001c50 ae 14 cf 17 ee 36 98 81 d6 24 5b 3a 6a b6 35 2e |.....6...$[:j.5.| 00001c60 ab ae e5 88 a0 58 4b 03 03 |.....XK..| 00001c69 00 00 00 00 00 00 00 |.......| esl[6].signature[2].owner = {zero} 00001c70 00 00 00 00 00 00 00 00 00 |.........| 00001c79 f1 6b 5f c3 61 18 3f |.k_.a.?| esl[6].signature[2].data (end:0x00001c99) 00001c80 58 71 20 e6 02 c0 d6 57 73 af df e7 86 12 41 84 |Xq ....Ws.....A.| 00001c90 fa 70 80 52 58 d7 6d 59 4c |.p.RX.mYL| 00001c99 00 00 00 00 00 00 00 |.......| esl[6].signature[3].owner = {zero} 00001ca0 00 00 00 00 00 00 00 00 00 |.........| 00001ca9 7e 02 1f 15 e3 a6 7b |~.....{| esl[6].signature[3].data (end:0x00001cc9) 00001cb0 75 ac e8 84 99 9b ed ff e3 42 13 79 2a 61 1e 40 |u........B.y*a.@| 00001cc0 e5 62 e8 7e 6b 9a 0c b2 82 |.b.~k....| 00001cc9 00 00 00 00 00 00 00 |.......| esl[6].signature[4].owner = {zero} 00001cd0 00 00 00 00 00 00 00 00 00 |.........| 00001cd9 a5 d1 09 b2 af a3 fa |.......| esl[6].signature[4].data (end:0x00001cf9) 00001ce0 90 87 8f 70 38 2b 23 88 fc d2 fe ae ae 8a 51 b8 |...p8+#.......Q.| 00001cf0 0a dd 04 8e 9f 87 6b 2a 4e |......k*N| 00001cf9