Commit db4fdec98056994a43f42f716ec74b64a4969638

Authored by Imanol-Mikel Barba Sabariego
0 parents

Adding code and license

Showing 530 changed files with 122141 additions and 0 deletions

Too many changes to show.

To preserve performance only 78 of 530 files are displayed.

LICENSE.TXT 0 → 100644
  1 +++ a/LICENSE.TXT
  1 + GNU GENERAL PUBLIC LICENSE
  2 + Version 3, 29 June 2007
  3 +
  4 + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
  5 + Everyone is permitted to copy and distribute verbatim copies
  6 + of this license document, but changing it is not allowed.
  7 +
  8 + Preamble
  9 +
  10 + The GNU General Public License is a free, copyleft license for
  11 +software and other kinds of works.
  12 +
  13 + The licenses for most software and other practical works are designed
  14 +to take away your freedom to share and change the works. By contrast,
  15 +the GNU General Public License is intended to guarantee your freedom to
  16 +share and change all versions of a program--to make sure it remains free
  17 +software for all its users. We, the Free Software Foundation, use the
  18 +GNU General Public License for most of our software; it applies also to
  19 +any other work released this way by its authors. You can apply it to
  20 +your programs, too.
  21 +
  22 + When we speak of free software, we are referring to freedom, not
  23 +price. Our General Public Licenses are designed to make sure that you
  24 +have the freedom to distribute copies of free software (and charge for
  25 +them if you wish), that you receive source code or can get it if you
  26 +want it, that you can change the software or use pieces of it in new
  27 +free programs, and that you know you can do these things.
  28 +
  29 + To protect your rights, we need to prevent others from denying you
  30 +these rights or asking you to surrender the rights. Therefore, you have
  31 +certain responsibilities if you distribute copies of the software, or if
  32 +you modify it: responsibilities to respect the freedom of others.
  33 +
  34 + For example, if you distribute copies of such a program, whether
  35 +gratis or for a fee, you must pass on to the recipients the same
  36 +freedoms that you received. You must make sure that they, too, receive
  37 +or can get the source code. And you must show them these terms so they
  38 +know their rights.
  39 +
  40 + Developers that use the GNU GPL protect your rights with two steps:
  41 +(1) assert copyright on the software, and (2) offer you this License
  42 +giving you legal permission to copy, distribute and/or modify it.
  43 +
  44 + For the developers' and authors' protection, the GPL clearly explains
  45 +that there is no warranty for this free software. For both users' and
  46 +authors' sake, the GPL requires that modified versions be marked as
  47 +changed, so that their problems will not be attributed erroneously to
  48 +authors of previous versions.
  49 +
  50 + Some devices are designed to deny users access to install or run
  51 +modified versions of the software inside them, although the manufacturer
  52 +can do so. This is fundamentally incompatible with the aim of
  53 +protecting users' freedom to change the software. The systematic
  54 +pattern of such abuse occurs in the area of products for individuals to
  55 +use, which is precisely where it is most unacceptable. Therefore, we
  56 +have designed this version of the GPL to prohibit the practice for those
  57 +products. If such problems arise substantially in other domains, we
  58 +stand ready to extend this provision to those domains in future versions
  59 +of the GPL, as needed to protect the freedom of users.
  60 +
  61 + Finally, every program is threatened constantly by software patents.
  62 +States should not allow patents to restrict development and use of
  63 +software on general-purpose computers, but in those that do, we wish to
  64 +avoid the special danger that patents applied to a free program could
  65 +make it effectively proprietary. To prevent this, the GPL assures that
  66 +patents cannot be used to render the program non-free.
  67 +
  68 + The precise terms and conditions for copying, distribution and
  69 +modification follow.
  70 +
  71 + TERMS AND CONDITIONS
  72 +
  73 + 0. Definitions.
  74 +
  75 + "This License" refers to version 3 of the GNU General Public License.
  76 +
  77 + "Copyright" also means copyright-like laws that apply to other kinds of
  78 +works, such as semiconductor masks.
  79 +
  80 + "The Program" refers to any copyrightable work licensed under this
  81 +License. Each licensee is addressed as "you". "Licensees" and
  82 +"recipients" may be individuals or organizations.
  83 +
  84 + To "modify" a work means to copy from or adapt all or part of the work
  85 +in a fashion requiring copyright permission, other than the making of an
  86 +exact copy. The resulting work is called a "modified version" of the
  87 +earlier work or a work "based on" the earlier work.
  88 +
  89 + A "covered work" means either the unmodified Program or a work based
  90 +on the Program.
  91 +
  92 + To "propagate" a work means to do anything with it that, without
  93 +permission, would make you directly or secondarily liable for
  94 +infringement under applicable copyright law, except executing it on a
  95 +computer or modifying a private copy. Propagation includes copying,
  96 +distribution (with or without modification), making available to the
  97 +public, and in some countries other activities as well.
  98 +
  99 + To "convey" a work means any kind of propagation that enables other
  100 +parties to make or receive copies. Mere interaction with a user through
  101 +a computer network, with no transfer of a copy, is not conveying.
  102 +
  103 + An interactive user interface displays "Appropriate Legal Notices"
  104 +to the extent that it includes a convenient and prominently visible
  105 +feature that (1) displays an appropriate copyright notice, and (2)
  106 +tells the user that there is no warranty for the work (except to the
  107 +extent that warranties are provided), that licensees may convey the
  108 +work under this License, and how to view a copy of this License. If
  109 +the interface presents a list of user commands or options, such as a
  110 +menu, a prominent item in the list meets this criterion.
  111 +
  112 + 1. Source Code.
  113 +
  114 + The "source code" for a work means the preferred form of the work
  115 +for making modifications to it. "Object code" means any non-source
  116 +form of a work.
  117 +
  118 + A "Standard Interface" means an interface that either is an official
  119 +standard defined by a recognized standards body, or, in the case of
  120 +interfaces specified for a particular programming language, one that
  121 +is widely used among developers working in that language.
  122 +
  123 + The "System Libraries" of an executable work include anything, other
  124 +than the work as a whole, that (a) is included in the normal form of
  125 +packaging a Major Component, but which is not part of that Major
  126 +Component, and (b) serves only to enable use of the work with that
  127 +Major Component, or to implement a Standard Interface for which an
  128 +implementation is available to the public in source code form. A
  129 +"Major Component", in this context, means a major essential component
  130 +(kernel, window system, and so on) of the specific operating system
  131 +(if any) on which the executable work runs, or a compiler used to
  132 +produce the work, or an object code interpreter used to run it.
  133 +
  134 + The "Corresponding Source" for a work in object code form means all
  135 +the source code needed to generate, install, and (for an executable
  136 +work) run the object code and to modify the work, including scripts to
  137 +control those activities. However, it does not include the work's
  138 +System Libraries, or general-purpose tools or generally available free
  139 +programs which are used unmodified in performing those activities but
  140 +which are not part of the work. For example, Corresponding Source
  141 +includes interface definition files associated with source files for
  142 +the work, and the source code for shared libraries and dynamically
  143 +linked subprograms that the work is specifically designed to require,
  144 +such as by intimate data communication or control flow between those
  145 +subprograms and other parts of the work.
  146 +
  147 + The Corresponding Source need not include anything that users
  148 +can regenerate automatically from other parts of the Corresponding
  149 +Source.
  150 +
  151 + The Corresponding Source for a work in source code form is that
  152 +same work.
  153 +
  154 + 2. Basic Permissions.
  155 +
  156 + All rights granted under this License are granted for the term of
  157 +copyright on the Program, and are irrevocable provided the stated
  158 +conditions are met. This License explicitly affirms your unlimited
  159 +permission to run the unmodified Program. The output from running a
  160 +covered work is covered by this License only if the output, given its
  161 +content, constitutes a covered work. This License acknowledges your
  162 +rights of fair use or other equivalent, as provided by copyright law.
  163 +
  164 + You may make, run and propagate covered works that you do not
  165 +convey, without conditions so long as your license otherwise remains
  166 +in force. You may convey covered works to others for the sole purpose
  167 +of having them make modifications exclusively for you, or provide you
  168 +with facilities for running those works, provided that you comply with
  169 +the terms of this License in conveying all material for which you do
  170 +not control copyright. Those thus making or running the covered works
  171 +for you must do so exclusively on your behalf, under your direction
  172 +and control, on terms that prohibit them from making any copies of
  173 +your copyrighted material outside their relationship with you.
  174 +
  175 + Conveying under any other circumstances is permitted solely under
  176 +the conditions stated below. Sublicensing is not allowed; section 10
  177 +makes it unnecessary.
  178 +
  179 + 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
  180 +
  181 + No covered work shall be deemed part of an effective technological
  182 +measure under any applicable law fulfilling obligations under article
  183 +11 of the WIPO copyright treaty adopted on 20 December 1996, or
  184 +similar laws prohibiting or restricting circumvention of such
  185 +measures.
  186 +
  187 + When you convey a covered work, you waive any legal power to forbid
  188 +circumvention of technological measures to the extent such circumvention
  189 +is effected by exercising rights under this License with respect to
  190 +the covered work, and you disclaim any intention to limit operation or
  191 +modification of the work as a means of enforcing, against the work's
  192 +users, your or third parties' legal rights to forbid circumvention of
  193 +technological measures.
  194 +
  195 + 4. Conveying Verbatim Copies.
  196 +
  197 + You may convey verbatim copies of the Program's source code as you
  198 +receive it, in any medium, provided that you conspicuously and
  199 +appropriately publish on each copy an appropriate copyright notice;
  200 +keep intact all notices stating that this License and any
  201 +non-permissive terms added in accord with section 7 apply to the code;
  202 +keep intact all notices of the absence of any warranty; and give all
  203 +recipients a copy of this License along with the Program.
  204 +
  205 + You may charge any price or no price for each copy that you convey,
  206 +and you may offer support or warranty protection for a fee.
  207 +
  208 + 5. Conveying Modified Source Versions.
  209 +
  210 + You may convey a work based on the Program, or the modifications to
  211 +produce it from the Program, in the form of source code under the
  212 +terms of section 4, provided that you also meet all of these conditions:
  213 +
  214 + a) The work must carry prominent notices stating that you modified
  215 + it, and giving a relevant date.
  216 +
  217 + b) The work must carry prominent notices stating that it is
  218 + released under this License and any conditions added under section
  219 + 7. This requirement modifies the requirement in section 4 to
  220 + "keep intact all notices".
  221 +
  222 + c) You must license the entire work, as a whole, under this
  223 + License to anyone who comes into possession of a copy. This
  224 + License will therefore apply, along with any applicable section 7
  225 + additional terms, to the whole of the work, and all its parts,
  226 + regardless of how they are packaged. This License gives no
  227 + permission to license the work in any other way, but it does not
  228 + invalidate such permission if you have separately received it.
  229 +
  230 + d) If the work has interactive user interfaces, each must display
  231 + Appropriate Legal Notices; however, if the Program has interactive
  232 + interfaces that do not display Appropriate Legal Notices, your
  233 + work need not make them do so.
  234 +
  235 + A compilation of a covered work with other separate and independent
  236 +works, which are not by their nature extensions of the covered work,
  237 +and which are not combined with it such as to form a larger program,
  238 +in or on a volume of a storage or distribution medium, is called an
  239 +"aggregate" if the compilation and its resulting copyright are not
  240 +used to limit the access or legal rights of the compilation's users
  241 +beyond what the individual works permit. Inclusion of a covered work
  242 +in an aggregate does not cause this License to apply to the other
  243 +parts of the aggregate.
  244 +
  245 + 6. Conveying Non-Source Forms.
  246 +
  247 + You may convey a covered work in object code form under the terms
  248 +of sections 4 and 5, provided that you also convey the
  249 +machine-readable Corresponding Source under the terms of this License,
  250 +in one of these ways:
  251 +
  252 + a) Convey the object code in, or embodied in, a physical product
  253 + (including a physical distribution medium), accompanied by the
  254 + Corresponding Source fixed on a durable physical medium
  255 + customarily used for software interchange.
  256 +
  257 + b) Convey the object code in, or embodied in, a physical product
  258 + (including a physical distribution medium), accompanied by a
  259 + written offer, valid for at least three years and valid for as
  260 + long as you offer spare parts or customer support for that product
  261 + model, to give anyone who possesses the object code either (1) a
  262 + copy of the Corresponding Source for all the software in the
  263 + product that is covered by this License, on a durable physical
  264 + medium customarily used for software interchange, for a price no
  265 + more than your reasonable cost of physically performing this
  266 + conveying of source, or (2) access to copy the
  267 + Corresponding Source from a network server at no charge.
  268 +
  269 + c) Convey individual copies of the object code with a copy of the
  270 + written offer to provide the Corresponding Source. This
  271 + alternative is allowed only occasionally and noncommercially, and
  272 + only if you received the object code with such an offer, in accord
  273 + with subsection 6b.
  274 +
  275 + d) Convey the object code by offering access from a designated
  276 + place (gratis or for a charge), and offer equivalent access to the
  277 + Corresponding Source in the same way through the same place at no
  278 + further charge. You need not require recipients to copy the
  279 + Corresponding Source along with the object code. If the place to
  280 + copy the object code is a network server, the Corresponding Source
  281 + may be on a different server (operated by you or a third party)
  282 + that supports equivalent copying facilities, provided you maintain
  283 + clear directions next to the object code saying where to find the
  284 + Corresponding Source. Regardless of what server hosts the
  285 + Corresponding Source, you remain obligated to ensure that it is
  286 + available for as long as needed to satisfy these requirements.
  287 +
  288 + e) Convey the object code using peer-to-peer transmission, provided
  289 + you inform other peers where the object code and Corresponding
  290 + Source of the work are being offered to the general public at no
  291 + charge under subsection 6d.
  292 +
  293 + A separable portion of the object code, whose source code is excluded
  294 +from the Corresponding Source as a System Library, need not be
  295 +included in conveying the object code work.
  296 +
  297 + A "User Product" is either (1) a "consumer product", which means any
  298 +tangible personal property which is normally used for personal, family,
  299 +or household purposes, or (2) anything designed or sold for incorporation
  300 +into a dwelling. In determining whether a product is a consumer product,
  301 +doubtful cases shall be resolved in favor of coverage. For a particular
  302 +product received by a particular user, "normally used" refers to a
  303 +typical or common use of that class of product, regardless of the status
  304 +of the particular user or of the way in which the particular user
  305 +actually uses, or expects or is expected to use, the product. A product
  306 +is a consumer product regardless of whether the product has substantial
  307 +commercial, industrial or non-consumer uses, unless such uses represent
  308 +the only significant mode of use of the product.
  309 +
  310 + "Installation Information" for a User Product means any methods,
  311 +procedures, authorization keys, or other information required to install
  312 +and execute modified versions of a covered work in that User Product from
  313 +a modified version of its Corresponding Source. The information must
  314 +suffice to ensure that the continued functioning of the modified object
  315 +code is in no case prevented or interfered with solely because
  316 +modification has been made.
  317 +
  318 + If you convey an object code work under this section in, or with, or
  319 +specifically for use in, a User Product, and the conveying occurs as
  320 +part of a transaction in which the right of possession and use of the
  321 +User Product is transferred to the recipient in perpetuity or for a
  322 +fixed term (regardless of how the transaction is characterized), the
  323 +Corresponding Source conveyed under this section must be accompanied
  324 +by the Installation Information. But this requirement does not apply
  325 +if neither you nor any third party retains the ability to install
  326 +modified object code on the User Product (for example, the work has
  327 +been installed in ROM).
  328 +
  329 + The requirement to provide Installation Information does not include a
  330 +requirement to continue to provide support service, warranty, or updates
  331 +for a work that has been modified or installed by the recipient, or for
  332 +the User Product in which it has been modified or installed. Access to a
  333 +network may be denied when the modification itself materially and
  334 +adversely affects the operation of the network or violates the rules and
  335 +protocols for communication across the network.
  336 +
  337 + Corresponding Source conveyed, and Installation Information provided,
  338 +in accord with this section must be in a format that is publicly
  339 +documented (and with an implementation available to the public in
  340 +source code form), and must require no special password or key for
  341 +unpacking, reading or copying.
  342 +
  343 + 7. Additional Terms.
  344 +
  345 + "Additional permissions" are terms that supplement the terms of this
  346 +License by making exceptions from one or more of its conditions.
  347 +Additional permissions that are applicable to the entire Program shall
  348 +be treated as though they were included in this License, to the extent
  349 +that they are valid under applicable law. If additional permissions
  350 +apply only to part of the Program, that part may be used separately
  351 +under those permissions, but the entire Program remains governed by
  352 +this License without regard to the additional permissions.
  353 +
  354 + When you convey a copy of a covered work, you may at your option
  355 +remove any additional permissions from that copy, or from any part of
  356 +it. (Additional permissions may be written to require their own
  357 +removal in certain cases when you modify the work.) You may place
  358 +additional permissions on material, added by you to a covered work,
  359 +for which you have or can give appropriate copyright permission.
  360 +
  361 + Notwithstanding any other provision of this License, for material you
  362 +add to a covered work, you may (if authorized by the copyright holders of
  363 +that material) supplement the terms of this License with terms:
  364 +
  365 + a) Disclaiming warranty or limiting liability differently from the
  366 + terms of sections 15 and 16 of this License; or
  367 +
  368 + b) Requiring preservation of specified reasonable legal notices or
  369 + author attributions in that material or in the Appropriate Legal
  370 + Notices displayed by works containing it; or
  371 +
  372 + c) Prohibiting misrepresentation of the origin of that material, or
  373 + requiring that modified versions of such material be marked in
  374 + reasonable ways as different from the original version; or
  375 +
  376 + d) Limiting the use for publicity purposes of names of licensors or
  377 + authors of the material; or
  378 +
  379 + e) Declining to grant rights under trademark law for use of some
  380 + trade names, trademarks, or service marks; or
  381 +
  382 + f) Requiring indemnification of licensors and authors of that
  383 + material by anyone who conveys the material (or modified versions of
  384 + it) with contractual assumptions of liability to the recipient, for
  385 + any liability that these contractual assumptions directly impose on
  386 + those licensors and authors.
  387 +
  388 + All other non-permissive additional terms are considered "further
  389 +restrictions" within the meaning of section 10. If the Program as you
  390 +received it, or any part of it, contains a notice stating that it is
  391 +governed by this License along with a term that is a further
  392 +restriction, you may remove that term. If a license document contains
  393 +a further restriction but permits relicensing or conveying under this
  394 +License, you may add to a covered work material governed by the terms
  395 +of that license document, provided that the further restriction does
  396 +not survive such relicensing or conveying.
  397 +
  398 + If you add terms to a covered work in accord with this section, you
  399 +must place, in the relevant source files, a statement of the
  400 +additional terms that apply to those files, or a notice indicating
  401 +where to find the applicable terms.
  402 +
  403 + Additional terms, permissive or non-permissive, may be stated in the
  404 +form of a separately written license, or stated as exceptions;
  405 +the above requirements apply either way.
  406 +
  407 + 8. Termination.
  408 +
  409 + You may not propagate or modify a covered work except as expressly
  410 +provided under this License. Any attempt otherwise to propagate or
  411 +modify it is void, and will automatically terminate your rights under
  412 +this License (including any patent licenses granted under the third
  413 +paragraph of section 11).
  414 +
  415 + However, if you cease all violation of this License, then your
  416 +license from a particular copyright holder is reinstated (a)
  417 +provisionally, unless and until the copyright holder explicitly and
  418 +finally terminates your license, and (b) permanently, if the copyright
  419 +holder fails to notify you of the violation by some reasonable means
  420 +prior to 60 days after the cessation.
  421 +
  422 + Moreover, your license from a particular copyright holder is
  423 +reinstated permanently if the copyright holder notifies you of the
  424 +violation by some reasonable means, this is the first time you have
  425 +received notice of violation of this License (for any work) from that
  426 +copyright holder, and you cure the violation prior to 30 days after
  427 +your receipt of the notice.
  428 +
  429 + Termination of your rights under this section does not terminate the
  430 +licenses of parties who have received copies or rights from you under
  431 +this License. If your rights have been terminated and not permanently
  432 +reinstated, you do not qualify to receive new licenses for the same
  433 +material under section 10.
  434 +
  435 + 9. Acceptance Not Required for Having Copies.
  436 +
  437 + You are not required to accept this License in order to receive or
  438 +run a copy of the Program. Ancillary propagation of a covered work
  439 +occurring solely as a consequence of using peer-to-peer transmission
  440 +to receive a copy likewise does not require acceptance. However,
  441 +nothing other than this License grants you permission to propagate or
  442 +modify any covered work. These actions infringe copyright if you do
  443 +not accept this License. Therefore, by modifying or propagating a
  444 +covered work, you indicate your acceptance of this License to do so.
  445 +
  446 + 10. Automatic Licensing of Downstream Recipients.
  447 +
  448 + Each time you convey a covered work, the recipient automatically
  449 +receives a license from the original licensors, to run, modify and
  450 +propagate that work, subject to this License. You are not responsible
  451 +for enforcing compliance by third parties with this License.
  452 +
  453 + An "entity transaction" is a transaction transferring control of an
  454 +organization, or substantially all assets of one, or subdividing an
  455 +organization, or merging organizations. If propagation of a covered
  456 +work results from an entity transaction, each party to that
  457 +transaction who receives a copy of the work also receives whatever
  458 +licenses to the work the party's predecessor in interest had or could
  459 +give under the previous paragraph, plus a right to possession of the
  460 +Corresponding Source of the work from the predecessor in interest, if
  461 +the predecessor has it or can get it with reasonable efforts.
  462 +
  463 + You may not impose any further restrictions on the exercise of the
  464 +rights granted or affirmed under this License. For example, you may
  465 +not impose a license fee, royalty, or other charge for exercise of
  466 +rights granted under this License, and you may not initiate litigation
  467 +(including a cross-claim or counterclaim in a lawsuit) alleging that
  468 +any patent claim is infringed by making, using, selling, offering for
  469 +sale, or importing the Program or any portion of it.
  470 +
  471 + 11. Patents.
  472 +
  473 + A "contributor" is a copyright holder who authorizes use under this
  474 +License of the Program or a work on which the Program is based. The
  475 +work thus licensed is called the contributor's "contributor version".
  476 +
  477 + A contributor's "essential patent claims" are all patent claims
  478 +owned or controlled by the contributor, whether already acquired or
  479 +hereafter acquired, that would be infringed by some manner, permitted
  480 +by this License, of making, using, or selling its contributor version,
  481 +but do not include claims that would be infringed only as a
  482 +consequence of further modification of the contributor version. For
  483 +purposes of this definition, "control" includes the right to grant
  484 +patent sublicenses in a manner consistent with the requirements of
  485 +this License.
  486 +
  487 + Each contributor grants you a non-exclusive, worldwide, royalty-free
  488 +patent license under the contributor's essential patent claims, to
  489 +make, use, sell, offer for sale, import and otherwise run, modify and
  490 +propagate the contents of its contributor version.
  491 +
  492 + In the following three paragraphs, a "patent license" is any express
  493 +agreement or commitment, however denominated, not to enforce a patent
  494 +(such as an express permission to practice a patent or covenant not to
  495 +sue for patent infringement). To "grant" such a patent license to a
  496 +party means to make such an agreement or commitment not to enforce a
  497 +patent against the party.
  498 +
  499 + If you convey a covered work, knowingly relying on a patent license,
  500 +and the Corresponding Source of the work is not available for anyone
  501 +to copy, free of charge and under the terms of this License, through a
  502 +publicly available network server or other readily accessible means,
  503 +then you must either (1) cause the Corresponding Source to be so
  504 +available, or (2) arrange to deprive yourself of the benefit of the
  505 +patent license for this particular work, or (3) arrange, in a manner
  506 +consistent with the requirements of this License, to extend the patent
  507 +license to downstream recipients. "Knowingly relying" means you have
  508 +actual knowledge that, but for the patent license, your conveying the
  509 +covered work in a country, or your recipient's use of the covered work
  510 +in a country, would infringe one or more identifiable patents in that
  511 +country that you have reason to believe are valid.
  512 +
  513 + If, pursuant to or in connection with a single transaction or
  514 +arrangement, you convey, or propagate by procuring conveyance of, a
  515 +covered work, and grant a patent license to some of the parties
  516 +receiving the covered work authorizing them to use, propagate, modify
  517 +or convey a specific copy of the covered work, then the patent license
  518 +you grant is automatically extended to all recipients of the covered
  519 +work and works based on it.
  520 +
  521 + A patent license is "discriminatory" if it does not include within
  522 +the scope of its coverage, prohibits the exercise of, or is
  523 +conditioned on the non-exercise of one or more of the rights that are
  524 +specifically granted under this License. You may not convey a covered
  525 +work if you are a party to an arrangement with a third party that is
  526 +in the business of distributing software, under which you make payment
  527 +to the third party based on the extent of your activity of conveying
  528 +the work, and under which the third party grants, to any of the
  529 +parties who would receive the covered work from you, a discriminatory
  530 +patent license (a) in connection with copies of the covered work
  531 +conveyed by you (or copies made from those copies), or (b) primarily
  532 +for and in connection with specific products or compilations that
  533 +contain the covered work, unless you entered into that arrangement,
  534 +or that patent license was granted, prior to 28 March 2007.
  535 +
  536 + Nothing in this License shall be construed as excluding or limiting
  537 +any implied license or other defenses to infringement that may
  538 +otherwise be available to you under applicable patent law.
  539 +
  540 + 12. No Surrender of Others' Freedom.
  541 +
  542 + If conditions are imposed on you (whether by court order, agreement or
  543 +otherwise) that contradict the conditions of this License, they do not
  544 +excuse you from the conditions of this License. If you cannot convey a
  545 +covered work so as to satisfy simultaneously your obligations under this
  546 +License and any other pertinent obligations, then as a consequence you may
  547 +not convey it at all. For example, if you agree to terms that obligate you
  548 +to collect a royalty for further conveying from those to whom you convey
  549 +the Program, the only way you could satisfy both those terms and this
  550 +License would be to refrain entirely from conveying the Program.
  551 +
  552 + 13. Use with the GNU Affero General Public License.
  553 +
  554 + Notwithstanding any other provision of this License, you have
  555 +permission to link or combine any covered work with a work licensed
  556 +under version 3 of the GNU Affero General Public License into a single
  557 +combined work, and to convey the resulting work. The terms of this
  558 +License will continue to apply to the part which is the covered work,
  559 +but the special requirements of the GNU Affero General Public License,
  560 +section 13, concerning interaction through a network will apply to the
  561 +combination as such.
  562 +
  563 + 14. Revised Versions of this License.
  564 +
  565 + The Free Software Foundation may publish revised and/or new versions of
  566 +the GNU General Public License from time to time. Such new versions will
  567 +be similar in spirit to the present version, but may differ in detail to
  568 +address new problems or concerns.
  569 +
  570 + Each version is given a distinguishing version number. If the
  571 +Program specifies that a certain numbered version of the GNU General
  572 +Public License "or any later version" applies to it, you have the
  573 +option of following the terms and conditions either of that numbered
  574 +version or of any later version published by the Free Software
  575 +Foundation. If the Program does not specify a version number of the
  576 +GNU General Public License, you may choose any version ever published
  577 +by the Free Software Foundation.
  578 +
  579 + If the Program specifies that a proxy can decide which future
  580 +versions of the GNU General Public License can be used, that proxy's
  581 +public statement of acceptance of a version permanently authorizes you
  582 +to choose that version for the Program.
  583 +
  584 + Later license versions may give you additional or different
  585 +permissions. However, no additional obligations are imposed on any
  586 +author or copyright holder as a result of your choosing to follow a
  587 +later version.
  588 +
  589 + 15. Disclaimer of Warranty.
  590 +
  591 + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
  592 +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
  593 +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
  594 +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
  595 +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  596 +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
  597 +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
  598 +ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
  599 +
  600 + 16. Limitation of Liability.
  601 +
  602 + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  603 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
  604 +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
  605 +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
  606 +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
  607 +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
  608 +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
  609 +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
  610 +SUCH DAMAGES.
  611 +
  612 + 17. Interpretation of Sections 15 and 16.
  613 +
  614 + If the disclaimer of warranty and limitation of liability provided
  615 +above cannot be given local legal effect according to their terms,
  616 +reviewing courts shall apply local law that most closely approximates
  617 +an absolute waiver of all civil liability in connection with the
  618 +Program, unless a warranty or assumption of liability accompanies a
  619 +copy of the Program in return for a fee.
  620 +
  621 + END OF TERMS AND CONDITIONS
  622 +
  623 + How to Apply These Terms to Your New Programs
  624 +
  625 + If you develop a new program, and you want it to be of the greatest
  626 +possible use to the public, the best way to achieve this is to make it
  627 +free software which everyone can redistribute and change under these terms.
  628 +
  629 + To do so, attach the following notices to the program. It is safest
  630 +to attach them to the start of each source file to most effectively
  631 +state the exclusion of warranty; and each file should have at least
  632 +the "copyright" line and a pointer to where the full notice is found.
  633 +
  634 + <one line to give the program's name and a brief idea of what it does.>
  635 + Copyright (C) <year> <name of author>
  636 +
  637 + This program is free software: you can redistribute it and/or modify
  638 + it under the terms of the GNU General Public License as published by
  639 + the Free Software Foundation, either version 3 of the License, or
  640 + (at your option) any later version.
  641 +
  642 + This program is distributed in the hope that it will be useful,
  643 + but WITHOUT ANY WARRANTY; without even the implied warranty of
  644 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  645 + GNU General Public License for more details.
  646 +
  647 + You should have received a copy of the GNU General Public License
  648 + along with this program. If not, see <http://www.gnu.org/licenses/>.
  649 +
  650 +Also add information on how to contact you by electronic and paper mail.
  651 +
  652 + If the program does terminal interaction, make it output a short
  653 +notice like this when it starts in an interactive mode:
  654 +
  655 + <program> Copyright (C) <year> <name of author>
  656 + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
  657 + This is free software, and you are welcome to redistribute it
  658 + under certain conditions; type `show c' for details.
  659 +
  660 +The hypothetical commands `show w' and `show c' should show the appropriate
  661 +parts of the General Public License. Of course, your program's commands
  662 +might be different; for a GUI interface, you would use an "about box".
  663 +
  664 + You should also get your employer (if you work as a programmer) or school,
  665 +if any, to sign a "copyright disclaimer" for the program, if necessary.
  666 +For more information on this, and how to apply and follow the GNU GPL, see
  667 +<http://www.gnu.org/licenses/>.
  668 +
  669 + The GNU General Public License does not permit incorporating your program
  670 +into proprietary programs. If your program is a subroutine library, you
  671 +may consider it more useful to permit linking proprietary applications with
  672 +the library. If this is what you want to do, use the GNU Lesser General
  673 +Public License instead of this License. But first, please read
  674 +<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Makefile 0 → 100644
  1 +++ a/Makefile
  1 +CXXFLAGS = -Icryptopp -Isrc/include
  2 +LDFLAGS = -Llib
  3 +LIBS = -lcryptopp -lpthread
  4 +TARGETS = bin/client bin/server bin/socket.conf
  5 +
  6 +
  7 +.PHONY: all clean
  8 + ifndef $(CXX)
  9 + CXX = g++
  10 + endif
  11 +
  12 +bin/client: bin/client.o bin/Socket.o lib/libcryptopp.so
  13 + $(CXX) -o bin/client bin/client.o bin/Socket.o $(LDFLAGS) $(LIBS)
  14 + strip bin/client
  15 +
  16 +bin/client.o: src/client.cpp
  17 + $(CXX) -o bin/client.o -c src/client.cpp $(CXXFLAGS)
  18 +
  19 +bin/server.o: src/server.cpp src/include/server.h
  20 + $(CXX) -o bin/server.o -c src/server.cpp $(CXXFLAGS)
  21 +
  22 +bin/main_server.o: src/main_server.cpp
  23 + $(CXX) -o bin/main_server.o -c src/main_server.cpp $(CXXFLAGS)
  24 +
  25 +bin/server: bin/server.o bin/Socket.o bin/main_server.o lib/libcryptopp.so src/include/server.h
  26 + $(CXX) -o bin/server bin/server.o bin/Socket.o bin/main_server.o $(LDFLAGS) $(LIBS)
  27 + strip bin/server
  28 +
  29 +bin/Socket.o: src/Socket.cpp src/include/Socket.h src/include/SocketException.h
  30 + $(CXX) -o bin/Socket.o -c src/Socket.cpp $(CXXFLAGS)
  31 +
  32 +lib/libcryptopp.so:
  33 + cd cryptopp;make clean; make dynamic; mv libcryptopp.so ../lib/libcryptopp.so
  34 +
  35 +bin/socket.conf:
  36 + cp socket.conf bin/socket.conf
  37 +
  38 +clean:
  39 + rm -rf bin/*
  40 +
  41 +docs:
  42 + cd doc/doxygen;doxygen Doxyfile
  43 + cd doc/latex; make
  44 +
  45 +all: $(TARGETS)
  46 +
bin/Socket.o 0 → 100644
No preview for this file type
bin/client 0 → 100755
No preview for this file type
bin/client.o 0 → 100644
No preview for this file type
bin/main_server.o 0 → 100644
No preview for this file type
bin/private.key 0 → 100644
No preview for this file type
bin/private_client.key 0 → 100644
No preview for this file type
bin/public.key 0 → 100644
No preview for this file type
bin/public_client.key 0 → 100644
No preview for this file type
bin/server 0 → 100755
No preview for this file type
bin/server.o 0 → 100644
No preview for this file type
bin/socket.conf 0 → 100644
  1 +++ a/bin/socket.conf
  1 +bind-ip = 192.168.0.10
  2 +port = 3001
cryptopp/3way.cpp 0 → 100644
  1 +++ a/cryptopp/3way.cpp
  1 +// 3way.cpp - modifed by Wei Dai from Joan Daemen's 3way.c
  2 +// The original code and all modifications are in the public domain.
  3 +
  4 +#include "pch.h"
  5 +#include "3way.h"
  6 +#include "misc.h"
  7 +
  8 +NAMESPACE_BEGIN(CryptoPP)
  9 +
  10 +void ThreeWay_TestInstantiations()
  11 +{
  12 + ThreeWay::Encryption x1;
  13 + ThreeWay::Decryption x2;
  14 +}
  15 +
  16 +static const word32 START_E = 0x0b0b; // round constant of first encryption round
  17 +static const word32 START_D = 0xb1b1; // round constant of first decryption round
  18 +static const word32 RC_MODULUS = 0x11011;
  19 +
  20 +static inline word32 reverseBits(word32 a)
  21 +{
  22 + a = ((a & 0xAAAAAAAA) >> 1) | ((a & 0x55555555) << 1);
  23 + a = ((a & 0xCCCCCCCC) >> 2) | ((a & 0x33333333) << 2);
  24 + return ((a & 0xF0F0F0F0) >> 4) | ((a & 0x0F0F0F0F) << 4);
  25 +}
  26 +
  27 +#define mu(a0, a1, a2) \
  28 +{ \
  29 + a1 = reverseBits(a1); \
  30 + word32 t = reverseBits(a0); \
  31 + a0 = reverseBits(a2); \
  32 + a2 = t; \
  33 +}
  34 +
  35 +#define pi_gamma_pi(a0, a1, a2) \
  36 +{ \
  37 + word32 b0, b2; \
  38 + b2 = rotlFixed(a2, 1U); \
  39 + b0 = rotlFixed(a0, 22U); \
  40 + a0 = rotlFixed(b0 ^ (a1|(~b2)), 1U); \
  41 + a2 = rotlFixed(b2 ^ (b0|(~a1)), 22U);\
  42 + a1 ^= (b2|(~b0)); \
  43 +}
  44 +
  45 +// thanks to Paulo Barreto for this optimized theta()
  46 +#define theta(a0, a1, a2) \
  47 +{ \
  48 + word32 b0, b1, c; \
  49 + c = a0 ^ a1 ^ a2; \
  50 + c = rotlFixed(c, 16U) ^ rotlFixed(c, 8U); \
  51 + b0 = (a0 << 24) ^ (a2 >> 8) ^ (a1 << 8) ^ (a0 >> 24); \
  52 + b1 = (a1 << 24) ^ (a0 >> 8) ^ (a2 << 8) ^ (a1 >> 24); \
  53 + a0 ^= c ^ b0; \
  54 + a1 ^= c ^ b1; \
  55 + a2 ^= c ^ (b0 >> 16) ^ (b1 << 16); \
  56 +}
  57 +
  58 +#define rho(a0, a1, a2) \
  59 +{ \
  60 + theta(a0, a1, a2); \
  61 + pi_gamma_pi(a0, a1, a2); \
  62 +}
  63 +
  64 +void ThreeWay::Base::UncheckedSetKey(const byte *uk, unsigned int length, const NameValuePairs &params)
  65 +{
  66 + AssertValidKeyLength(length);
  67 +
  68 + m_rounds = GetRoundsAndThrowIfInvalid(params, this);
  69 +
  70 + for (unsigned int i=0; i<3; i++)
  71 + m_k[i] = (word32)uk[4*i+3] | ((word32)uk[4*i+2]<<8) | ((word32)uk[4*i+1]<<16) | ((word32)uk[4*i]<<24);
  72 +
  73 + if (!IsForwardTransformation())
  74 + {
  75 + theta(m_k[0], m_k[1], m_k[2]);
  76 + mu(m_k[0], m_k[1], m_k[2]);
  77 + m_k[0] = ByteReverse(m_k[0]);
  78 + m_k[1] = ByteReverse(m_k[1]);
  79 + m_k[2] = ByteReverse(m_k[2]);
  80 + }
  81 +}
  82 +
  83 +void ThreeWay::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
  84 +{
  85 + typedef BlockGetAndPut<word32, BigEndian> Block;
  86 +
  87 + word32 a0, a1, a2;
  88 + Block::Get(inBlock)(a0)(a1)(a2);
  89 +
  90 + word32 rc = START_E;
  91 +
  92 + for(unsigned i=0; i<m_rounds; i++)
  93 + {
  94 + a0 ^= m_k[0] ^ (rc<<16);
  95 + a1 ^= m_k[1];
  96 + a2 ^= m_k[2] ^ rc;
  97 + rho(a0, a1, a2);
  98 +
  99 + rc <<= 1;
  100 + if (rc&0x10000) rc ^= 0x11011;
  101 + }
  102 + a0 ^= m_k[0] ^ (rc<<16);
  103 + a1 ^= m_k[1];
  104 + a2 ^= m_k[2] ^ rc;
  105 + theta(a0, a1, a2);
  106 +
  107 + Block::Put(xorBlock, outBlock)(a0)(a1)(a2);
  108 +}
  109 +
  110 +void ThreeWay::Dec::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
  111 +{
  112 + typedef BlockGetAndPut<word32, LittleEndian> Block;
  113 +
  114 + word32 a0, a1, a2;
  115 + Block::Get(inBlock)(a0)(a1)(a2);
  116 +
  117 + word32 rc = START_D;
  118 +
  119 + mu(a0, a1, a2);
  120 + for(unsigned i=0; i<m_rounds; i++)
  121 + {
  122 + a0 ^= m_k[0] ^ (rc<<16);
  123 + a1 ^= m_k[1];
  124 + a2 ^= m_k[2] ^ rc;
  125 + rho(a0, a1, a2);
  126 +
  127 + rc <<= 1;
  128 + if (rc&0x10000) rc ^= 0x11011;
  129 + }
  130 + a0 ^= m_k[0] ^ (rc<<16);
  131 + a1 ^= m_k[1];
  132 + a2 ^= m_k[2] ^ rc;
  133 + theta(a0, a1, a2);
  134 + mu(a0, a1, a2);
  135 +
  136 + Block::Put(xorBlock, outBlock)(a0)(a1)(a2);
  137 +}
  138 +
  139 +NAMESPACE_END
cryptopp/3way.h 0 → 100644
  1 +++ a/cryptopp/3way.h
  1 +#ifndef CRYPTOPP_THREEWAY_H
  2 +#define CRYPTOPP_THREEWAY_H
  3 +
  4 +/** \file
  5 +*/
  6 +
  7 +#include "seckey.h"
  8 +#include "secblock.h"
  9 +
  10 +NAMESPACE_BEGIN(CryptoPP)
  11 +
  12 +//! _
  13 +struct ThreeWay_Info : public FixedBlockSize<12>, public FixedKeyLength<12>, public VariableRounds<11>
  14 +{
  15 + static const char *StaticAlgorithmName() {return "3-Way";}
  16 +};
  17 +
  18 +/// <a href="http://www.weidai.com/scan-mirror/cs.html#3-Way">3-Way</a>
  19 +class ThreeWay : public ThreeWay_Info, public BlockCipherDocumentation
  20 +{
  21 + class CRYPTOPP_NO_VTABLE Base : public BlockCipherImpl<ThreeWay_Info>
  22 + {
  23 + public:
  24 + void UncheckedSetKey(const byte *key, unsigned int length, const NameValuePairs &params);
  25 +
  26 + protected:
  27 + unsigned int m_rounds;
  28 + FixedSizeSecBlock<word32, 3> m_k;
  29 + };
  30 +
  31 + class CRYPTOPP_NO_VTABLE Enc : public Base
  32 + {
  33 + public:
  34 + void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
  35 + };
  36 +
  37 + class CRYPTOPP_NO_VTABLE Dec : public Base
  38 + {
  39 + public:
  40 + void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
  41 + };
  42 +
  43 +public:
  44 + typedef BlockCipherFinal<ENCRYPTION, Enc> Encryption;
  45 + typedef BlockCipherFinal<DECRYPTION, Dec> Decryption;
  46 +};
  47 +
  48 +typedef ThreeWay::Encryption ThreeWayEncryption;
  49 +typedef ThreeWay::Decryption ThreeWayDecryption;
  50 +
  51 +NAMESPACE_END
  52 +
  53 +#endif
cryptopp/3way.o 0 → 100644
No preview for this file type
cryptopp/Doxyfile 0 → 100644
  1 +++ a/cryptopp/Doxyfile
  1 +# Doxyfile 1.7.1
  2 +
  3 +# This file describes the settings to be used by the documentation system
  4 +# doxygen (www.doxygen.org) for a project
  5 +#
  6 +# All text after a hash (#) is considered a comment and will be ignored
  7 +# The format is:
  8 +# TAG = value [value, ...]
  9 +# For lists items can also be appended using:
  10 +# TAG += value [value, ...]
  11 +# Values that contain spaces should be placed between quotes (" ")
  12 +
  13 +#---------------------------------------------------------------------------
  14 +# Project related configuration options
  15 +#---------------------------------------------------------------------------
  16 +
  17 +# This tag specifies the encoding used for all characters in the config file
  18 +# that follow. The default is UTF-8 which is also the encoding used for all
  19 +# text before the first occurrence of this tag. Doxygen uses libiconv (or the
  20 +# iconv built into libc) for the transcoding. See
  21 +# http://www.gnu.org/software/libiconv for the list of possible encodings.
  22 +
  23 +DOXYFILE_ENCODING = UTF-8
  24 +
  25 +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
  26 +# by quotes) that should identify the project.
  27 +
  28 +PROJECT_NAME = Crypto++
  29 +
  30 +# The PROJECT_NUMBER tag can be used to enter a project or revision number.
  31 +# This could be handy for archiving the generated documentation or
  32 +# if some version control system is used.
  33 +
  34 +PROJECT_NUMBER =
  35 +
  36 +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
  37 +# base path where the generated documentation will be put.
  38 +# If a relative path is entered, it will be relative to the location
  39 +# where doxygen was started. If left blank the current directory will be used.
  40 +
  41 +OUTPUT_DIRECTORY = doc
  42 +
  43 +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
  44 +# 4096 sub-directories (in 2 levels) under the output directory of each output
  45 +# format and will distribute the generated files over these directories.
  46 +# Enabling this option can be useful when feeding doxygen a huge amount of
  47 +# source files, where putting all generated files in the same directory would
  48 +# otherwise cause performance problems for the file system.
  49 +
  50 +CREATE_SUBDIRS = NO
  51 +
  52 +# The OUTPUT_LANGUAGE tag is used to specify the language in which all
  53 +# documentation generated by doxygen is written. Doxygen will use this
  54 +# information to generate all constant output in the proper language.
  55 +# The default language is English, other supported languages are:
  56 +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
  57 +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
  58 +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
  59 +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
  60 +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
  61 +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
  62 +
  63 +OUTPUT_LANGUAGE = English
  64 +
  65 +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
  66 +# include brief member descriptions after the members that are listed in
  67 +# the file and class documentation (similar to JavaDoc).
  68 +# Set to NO to disable this.
  69 +
  70 +BRIEF_MEMBER_DESC = YES
  71 +
  72 +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
  73 +# the brief description of a member or function before the detailed description.
  74 +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
  75 +# brief descriptions will be completely suppressed.
  76 +
  77 +REPEAT_BRIEF = YES
  78 +
  79 +# This tag implements a quasi-intelligent brief description abbreviator
  80 +# that is used to form the text in various listings. Each string
  81 +# in this list, if found as the leading text of the brief description, will be
  82 +# stripped from the text and the result after processing the whole list, is
  83 +# used as the annotated text. Otherwise, the brief description is used as-is.
  84 +# If left blank, the following values are used ("$name" is automatically
  85 +# replaced with the name of the entity): "The $name class" "The $name widget"
  86 +# "The $name file" "is" "provides" "specifies" "contains"
  87 +# "represents" "a" "an" "the"
  88 +
  89 +ABBREVIATE_BRIEF =
  90 +
  91 +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
  92 +# Doxygen will generate a detailed section even if there is only a brief
  93 +# description.
  94 +
  95 +ALWAYS_DETAILED_SEC = NO
  96 +
  97 +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
  98 +# inherited members of a class in the documentation of that class as if those
  99 +# members were ordinary class members. Constructors, destructors and assignment
  100 +# operators of the base classes will not be shown.
  101 +
  102 +INLINE_INHERITED_MEMB = YES
  103 +
  104 +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
  105 +# path before files name in the file list and in the header files. If set
  106 +# to NO the shortest path that makes the file name unique will be used.
  107 +
  108 +FULL_PATH_NAMES = NO
  109 +
  110 +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
  111 +# can be used to strip a user-defined part of the path. Stripping is
  112 +# only done if one of the specified strings matches the left-hand part of
  113 +# the path. The tag can be used to show relative paths in the file list.
  114 +# If left blank the directory from which doxygen is run is used as the
  115 +# path to strip.
  116 +
  117 +STRIP_FROM_PATH =
  118 +
  119 +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
  120 +# the path mentioned in the documentation of a class, which tells
  121 +# the reader which header file to include in order to use a class.
  122 +# If left blank only the name of the header file containing the class
  123 +# definition is used. Otherwise one should specify the include paths that
  124 +# are normally passed to the compiler using the -I flag.
  125 +
  126 +STRIP_FROM_INC_PATH =
  127 +
  128 +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
  129 +# (but less readable) file names. This can be useful is your file systems
  130 +# doesn't support long names like on DOS, Mac, or CD-ROM.
  131 +
  132 +SHORT_NAMES = NO
  133 +
  134 +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
  135 +# will interpret the first line (until the first dot) of a JavaDoc-style
  136 +# comment as the brief description. If set to NO, the JavaDoc
  137 +# comments will behave just like regular Qt-style comments
  138 +# (thus requiring an explicit @brief command for a brief description.)
  139 +
  140 +JAVADOC_AUTOBRIEF = YES
  141 +
  142 +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
  143 +# interpret the first line (until the first dot) of a Qt-style
  144 +# comment as the brief description. If set to NO, the comments
  145 +# will behave just like regular Qt-style comments (thus requiring
  146 +# an explicit \brief command for a brief description.)
  147 +
  148 +QT_AUTOBRIEF = NO
  149 +
  150 +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
  151 +# treat a multi-line C++ special comment block (i.e. a block of //! or ///
  152 +# comments) as a brief description. This used to be the default behaviour.
  153 +# The new default is to treat a multi-line C++ comment block as a detailed
  154 +# description. Set this tag to YES if you prefer the old behaviour instead.
  155 +
  156 +MULTILINE_CPP_IS_BRIEF = NO
  157 +
  158 +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
  159 +# member inherits the documentation from any documented member that it
  160 +# re-implements.
  161 +
  162 +INHERIT_DOCS = YES
  163 +
  164 +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
  165 +# a new page for each member. If set to NO, the documentation of a member will
  166 +# be part of the file/class/namespace that contains it.
  167 +
  168 +SEPARATE_MEMBER_PAGES = NO
  169 +
  170 +# The TAB_SIZE tag can be used to set the number of spaces in a tab.
  171 +# Doxygen uses this value to replace tabs by spaces in code fragments.
  172 +
  173 +TAB_SIZE = 8
  174 +
  175 +# This tag can be used to specify a number of aliases that acts
  176 +# as commands in the documentation. An alias has the form "name=value".
  177 +# For example adding "sideeffect=\par Side Effects:\n" will allow you to
  178 +# put the command \sideeffect (or @sideeffect) in the documentation, which
  179 +# will result in a user-defined paragraph with heading "Side Effects:".
  180 +# You can put \n's in the value part of an alias to insert newlines.
  181 +
  182 +ALIASES =
  183 +
  184 +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
  185 +# sources only. Doxygen will then generate output that is more tailored for C.
  186 +# For instance, some of the names that are used will be different. The list
  187 +# of all members will be omitted, etc.
  188 +
  189 +OPTIMIZE_OUTPUT_FOR_C = NO
  190 +
  191 +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
  192 +# sources only. Doxygen will then generate output that is more tailored for
  193 +# Java. For instance, namespaces will be presented as packages, qualified
  194 +# scopes will look different, etc.
  195 +
  196 +OPTIMIZE_OUTPUT_JAVA = NO
  197 +
  198 +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
  199 +# sources only. Doxygen will then generate output that is more tailored for
  200 +# Fortran.
  201 +
  202 +OPTIMIZE_FOR_FORTRAN = NO
  203 +
  204 +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
  205 +# sources. Doxygen will then generate output that is tailored for
  206 +# VHDL.
  207 +
  208 +OPTIMIZE_OUTPUT_VHDL = NO
  209 +
  210 +# Doxygen selects the parser to use depending on the extension of the files it
  211 +# parses. With this tag you can assign which parser to use for a given extension.
  212 +# Doxygen has a built-in mapping, but you can override or extend it using this
  213 +# tag. The format is ext=language, where ext is a file extension, and language
  214 +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
  215 +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
  216 +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
  217 +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
  218 +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
  219 +
  220 +EXTENSION_MAPPING =
  221 +
  222 +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
  223 +# to include (a tag file for) the STL sources as input, then you should
  224 +# set this tag to YES in order to let doxygen match functions declarations and
  225 +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
  226 +# func(std::string) {}). This also make the inheritance and collaboration
  227 +# diagrams that involve STL classes more complete and accurate.
  228 +
  229 +BUILTIN_STL_SUPPORT = NO
  230 +
  231 +# If you use Microsoft's C++/CLI language, you should set this option to YES to
  232 +# enable parsing support.
  233 +
  234 +CPP_CLI_SUPPORT = NO
  235 +
  236 +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
  237 +# Doxygen will parse them like normal C++ but will assume all classes use public
  238 +# instead of private inheritance when no explicit protection keyword is present.
  239 +
  240 +SIP_SUPPORT = NO
  241 +
  242 +# For Microsoft's IDL there are propget and propput attributes to indicate getter
  243 +# and setter methods for a property. Setting this option to YES (the default)
  244 +# will make doxygen to replace the get and set methods by a property in the
  245 +# documentation. This will only work if the methods are indeed getting or
  246 +# setting a simple type. If this is not the case, or you want to show the
  247 +# methods anyway, you should set this option to NO.
  248 +
  249 +IDL_PROPERTY_SUPPORT = YES
  250 +
  251 +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
  252 +# tag is set to YES, then doxygen will reuse the documentation of the first
  253 +# member in the group (if any) for the other members of the group. By default
  254 +# all members of a group must be documented explicitly.
  255 +
  256 +DISTRIBUTE_GROUP_DOC = NO
  257 +
  258 +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
  259 +# the same type (for instance a group of public functions) to be put as a
  260 +# subgroup of that type (e.g. under the Public Functions section). Set it to
  261 +# NO to prevent subgrouping. Alternatively, this can be done per class using
  262 +# the \nosubgrouping command.
  263 +
  264 +SUBGROUPING = YES
  265 +
  266 +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
  267 +# is documented as struct, union, or enum with the name of the typedef. So
  268 +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
  269 +# with name TypeT. When disabled the typedef will appear as a member of a file,
  270 +# namespace, or class. And the struct will be named TypeS. This can typically
  271 +# be useful for C code in case the coding convention dictates that all compound
  272 +# types are typedef'ed and only the typedef is referenced, never the tag name.
  273 +
  274 +TYPEDEF_HIDES_STRUCT = NO
  275 +
  276 +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
  277 +# determine which symbols to keep in memory and which to flush to disk.
  278 +# When the cache is full, less often used symbols will be written to disk.
  279 +# For small to medium size projects (<1000 input files) the default value is
  280 +# probably good enough. For larger projects a too small cache size can cause
  281 +# doxygen to be busy swapping symbols to and from disk most of the time
  282 +# causing a significant performance penality.
  283 +# If the system has enough physical memory increasing the cache will improve the
  284 +# performance by keeping more symbols in memory. Note that the value works on
  285 +# a logarithmic scale so increasing the size by one will rougly double the
  286 +# memory usage. The cache size is given by this formula:
  287 +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
  288 +# corresponding to a cache size of 2^16 = 65536 symbols
  289 +
  290 +SYMBOL_CACHE_SIZE = 0
  291 +
  292 +#---------------------------------------------------------------------------
  293 +# Build related configuration options
  294 +#---------------------------------------------------------------------------
  295 +
  296 +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
  297 +# documentation are documented, even if no documentation was available.
  298 +# Private class members and static file members will be hidden unless
  299 +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
  300 +
  301 +EXTRACT_ALL = NO
  302 +
  303 +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
  304 +# will be included in the documentation.
  305 +
  306 +EXTRACT_PRIVATE = NO
  307 +
  308 +# If the EXTRACT_STATIC tag is set to YES all static members of a file
  309 +# will be included in the documentation.
  310 +
  311 +EXTRACT_STATIC = NO
  312 +
  313 +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
  314 +# defined locally in source files will be included in the documentation.
  315 +# If set to NO only classes defined in header files are included.
  316 +
  317 +EXTRACT_LOCAL_CLASSES = YES
  318 +
  319 +# This flag is only useful for Objective-C code. When set to YES local
  320 +# methods, which are defined in the implementation section but not in
  321 +# the interface are included in the documentation.
  322 +# If set to NO (the default) only methods in the interface are included.
  323 +
  324 +EXTRACT_LOCAL_METHODS = NO
  325 +
  326 +# If this flag is set to YES, the members of anonymous namespaces will be
  327 +# extracted and appear in the documentation as a namespace called
  328 +# 'anonymous_namespace{file}', where file will be replaced with the base
  329 +# name of the file that contains the anonymous namespace. By default
  330 +# anonymous namespace are hidden.
  331 +
  332 +EXTRACT_ANON_NSPACES = NO
  333 +
  334 +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
  335 +# undocumented members of documented classes, files or namespaces.
  336 +# If set to NO (the default) these members will be included in the
  337 +# various overviews, but no documentation section is generated.
  338 +# This option has no effect if EXTRACT_ALL is enabled.
  339 +
  340 +HIDE_UNDOC_MEMBERS = NO
  341 +
  342 +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
  343 +# undocumented classes that are normally visible in the class hierarchy.
  344 +# If set to NO (the default) these classes will be included in the various
  345 +# overviews. This option has no effect if EXTRACT_ALL is enabled.
  346 +
  347 +HIDE_UNDOC_CLASSES = NO
  348 +
  349 +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
  350 +# friend (class|struct|union) declarations.
  351 +# If set to NO (the default) these declarations will be included in the
  352 +# documentation.
  353 +
  354 +HIDE_FRIEND_COMPOUNDS = NO
  355 +
  356 +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
  357 +# documentation blocks found inside the body of a function.
  358 +# If set to NO (the default) these blocks will be appended to the
  359 +# function's detailed documentation block.
  360 +
  361 +HIDE_IN_BODY_DOCS = NO
  362 +
  363 +# The INTERNAL_DOCS tag determines if documentation
  364 +# that is typed after a \internal command is included. If the tag is set
  365 +# to NO (the default) then the documentation will be excluded.
  366 +# Set it to YES to include the internal documentation.
  367 +
  368 +INTERNAL_DOCS = NO
  369 +
  370 +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
  371 +# file names in lower-case letters. If set to YES upper-case letters are also
  372 +# allowed. This is useful if you have classes or files whose names only differ
  373 +# in case and if your file system supports case sensitive file names. Windows
  374 +# and Mac users are advised to set this option to NO.
  375 +
  376 +CASE_SENSE_NAMES = NO
  377 +
  378 +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
  379 +# will show members with their full class and namespace scopes in the
  380 +# documentation. If set to YES the scope will be hidden.
  381 +
  382 +HIDE_SCOPE_NAMES = NO
  383 +
  384 +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
  385 +# will put a list of the files that are included by a file in the documentation
  386 +# of that file.
  387 +
  388 +SHOW_INCLUDE_FILES = YES
  389 +
  390 +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
  391 +# will list include files with double quotes in the documentation
  392 +# rather than with sharp brackets.
  393 +
  394 +FORCE_LOCAL_INCLUDES = NO
  395 +
  396 +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
  397 +# is inserted in the documentation for inline members.
  398 +
  399 +INLINE_INFO = YES
  400 +
  401 +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
  402 +# will sort the (detailed) documentation of file and class members
  403 +# alphabetically by member name. If set to NO the members will appear in
  404 +# declaration order.
  405 +
  406 +SORT_MEMBER_DOCS = NO
  407 +
  408 +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
  409 +# brief documentation of file, namespace and class members alphabetically
  410 +# by member name. If set to NO (the default) the members will appear in
  411 +# declaration order.
  412 +
  413 +SORT_BRIEF_DOCS = NO
  414 +
  415 +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
  416 +# will sort the (brief and detailed) documentation of class members so that
  417 +# constructors and destructors are listed first. If set to NO (the default)
  418 +# the constructors will appear in the respective orders defined by
  419 +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
  420 +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
  421 +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
  422 +
  423 +SORT_MEMBERS_CTORS_1ST = NO
  424 +
  425 +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
  426 +# hierarchy of group names into alphabetical order. If set to NO (the default)
  427 +# the group names will appear in their defined order.
  428 +
  429 +SORT_GROUP_NAMES = NO
  430 +
  431 +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
  432 +# sorted by fully-qualified names, including namespaces. If set to
  433 +# NO (the default), the class list will be sorted only by class name,
  434 +# not including the namespace part.
  435 +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
  436 +# Note: This option applies only to the class list, not to the
  437 +# alphabetical list.
  438 +
  439 +SORT_BY_SCOPE_NAME = NO
  440 +
  441 +# The GENERATE_TODOLIST tag can be used to enable (YES) or
  442 +# disable (NO) the todo list. This list is created by putting \todo
  443 +# commands in the documentation.
  444 +
  445 +GENERATE_TODOLIST = YES
  446 +
  447 +# The GENERATE_TESTLIST tag can be used to enable (YES) or
  448 +# disable (NO) the test list. This list is created by putting \test
  449 +# commands in the documentation.
  450 +
  451 +GENERATE_TESTLIST = YES
  452 +
  453 +# The GENERATE_BUGLIST tag can be used to enable (YES) or
  454 +# disable (NO) the bug list. This list is created by putting \bug
  455 +# commands in the documentation.
  456 +
  457 +GENERATE_BUGLIST = YES
  458 +
  459 +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
  460 +# disable (NO) the deprecated list. This list is created by putting
  461 +# \deprecated commands in the documentation.
  462 +
  463 +GENERATE_DEPRECATEDLIST= YES
  464 +
  465 +# The ENABLED_SECTIONS tag can be used to enable conditional
  466 +# documentation sections, marked by \if sectionname ... \endif.
  467 +
  468 +ENABLED_SECTIONS =
  469 +
  470 +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
  471 +# the initial value of a variable or define consists of for it to appear in
  472 +# the documentation. If the initializer consists of more lines than specified
  473 +# here it will be hidden. Use a value of 0 to hide initializers completely.
  474 +# The appearance of the initializer of individual variables and defines in the
  475 +# documentation can be controlled using \showinitializer or \hideinitializer
  476 +# command in the documentation regardless of this setting.
  477 +
  478 +MAX_INITIALIZER_LINES = 30
  479 +
  480 +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
  481 +# at the bottom of the documentation of classes and structs. If set to YES the
  482 +# list will mention the files that were used to generate the documentation.
  483 +
  484 +SHOW_USED_FILES = YES
  485 +
  486 +# If the sources in your project are distributed over multiple directories
  487 +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
  488 +# in the documentation. The default is NO.
  489 +
  490 +SHOW_DIRECTORIES = NO
  491 +
  492 +# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
  493 +# This will remove the Files entry from the Quick Index and from the
  494 +# Folder Tree View (if specified). The default is YES.
  495 +
  496 +SHOW_FILES = YES
  497 +
  498 +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
  499 +# Namespaces page.
  500 +# This will remove the Namespaces entry from the Quick Index
  501 +# and from the Folder Tree View (if specified). The default is YES.
  502 +
  503 +SHOW_NAMESPACES = YES
  504 +
  505 +# The FILE_VERSION_FILTER tag can be used to specify a program or script that
  506 +# doxygen should invoke to get the current version for each file (typically from
  507 +# the version control system). Doxygen will invoke the program by executing (via
  508 +# popen()) the command <command> <input-file>, where <command> is the value of
  509 +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
  510 +# provided by doxygen. Whatever the program writes to standard output
  511 +# is used as the file version. See the manual for examples.
  512 +
  513 +FILE_VERSION_FILTER =
  514 +
  515 +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
  516 +# by doxygen. The layout file controls the global structure of the generated
  517 +# output files in an output format independent way. The create the layout file
  518 +# that represents doxygen's defaults, run doxygen with the -l option.
  519 +# You can optionally specify a file name after the option, if omitted
  520 +# DoxygenLayout.xml will be used as the name of the layout file.
  521 +
  522 +LAYOUT_FILE =
  523 +
  524 +#---------------------------------------------------------------------------
  525 +# configuration options related to warning and progress messages
  526 +#---------------------------------------------------------------------------
  527 +
  528 +# The QUIET tag can be used to turn on/off the messages that are generated
  529 +# by doxygen. Possible values are YES and NO. If left blank NO is used.
  530 +
  531 +QUIET = NO
  532 +
  533 +# The WARNINGS tag can be used to turn on/off the warning messages that are
  534 +# generated by doxygen. Possible values are YES and NO. If left blank
  535 +# NO is used.
  536 +
  537 +WARNINGS = NO
  538 +
  539 +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
  540 +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
  541 +# automatically be disabled.
  542 +
  543 +WARN_IF_UNDOCUMENTED = NO
  544 +
  545 +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
  546 +# potential errors in the documentation, such as not documenting some
  547 +# parameters in a documented function, or documenting parameters that
  548 +# don't exist or using markup commands wrongly.
  549 +
  550 +WARN_IF_DOC_ERROR = YES
  551 +
  552 +# This WARN_NO_PARAMDOC option can be abled to get warnings for
  553 +# functions that are documented, but have no documentation for their parameters
  554 +# or return value. If set to NO (the default) doxygen will only warn about
  555 +# wrong or incomplete parameter documentation, but not about the absence of
  556 +# documentation.
  557 +
  558 +WARN_NO_PARAMDOC = NO
  559 +
  560 +# The WARN_FORMAT tag determines the format of the warning messages that
  561 +# doxygen can produce. The string should contain the $file, $line, and $text
  562 +# tags, which will be replaced by the file and line number from which the
  563 +# warning originated and the warning text. Optionally the format may contain
  564 +# $version, which will be replaced by the version of the file (if it could
  565 +# be obtained via FILE_VERSION_FILTER)
  566 +
  567 +WARN_FORMAT = "$file:$line: $text"
  568 +
  569 +# The WARN_LOGFILE tag can be used to specify a file to which warning
  570 +# and error messages should be written. If left blank the output is written
  571 +# to stderr.
  572 +
  573 +WARN_LOGFILE =
  574 +
  575 +#---------------------------------------------------------------------------
  576 +# configuration options related to the input files
  577 +#---------------------------------------------------------------------------
  578 +
  579 +# The INPUT tag can be used to specify the files and/or directories that contain
  580 +# documented source files. You may enter file names like "myfile.cpp" or
  581 +# directories like "/usr/src/myproject". Separate the files or directories
  582 +# with spaces.
  583 +
  584 +INPUT = .
  585 +
  586 +# This tag can be used to specify the character encoding of the source files
  587 +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
  588 +# also the default input encoding. Doxygen uses libiconv (or the iconv built
  589 +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
  590 +# the list of possible encodings.
  591 +
  592 +INPUT_ENCODING = UTF-8
  593 +
  594 +# If the value of the INPUT tag contains directories, you can use the
  595 +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
  596 +# and *.h) to filter out the source-files in the directories. If left
  597 +# blank the following patterns are tested:
  598 +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
  599 +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
  600 +
  601 +FILE_PATTERNS = *.h \
  602 + *.cpp
  603 +
  604 +# The RECURSIVE tag can be used to turn specify whether or not subdirectories
  605 +# should be searched for input files as well. Possible values are YES and NO.
  606 +# If left blank NO is used.
  607 +
  608 +RECURSIVE = NO
  609 +
  610 +# The EXCLUDE tag can be used to specify files and/or directories that should
  611 +# excluded from the INPUT source files. This way you can easily exclude a
  612 +# subdirectory from a directory tree whose root is specified with the INPUT tag.
  613 +
  614 +EXCLUDE = adhoc.cpp
  615 +
  616 +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
  617 +# directories that are symbolic links (a Unix filesystem feature) are excluded
  618 +# from the input.
  619 +
  620 +EXCLUDE_SYMLINKS = NO
  621 +
  622 +# If the value of the INPUT tag contains directories, you can use the
  623 +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
  624 +# certain files from those directories. Note that the wildcards are matched
  625 +# against the file with absolute path, so to exclude all test directories
  626 +# for example use the pattern */test/*
  627 +
  628 +EXCLUDE_PATTERNS =
  629 +
  630 +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
  631 +# (namespaces, classes, functions, etc.) that should be excluded from the
  632 +# output. The symbol name can be a fully qualified name, a word, or if the
  633 +# wildcard * is used, a substring. Examples: ANamespace, AClass,
  634 +# AClass::ANamespace, ANamespace::*Test
  635 +
  636 +EXCLUDE_SYMBOLS =
  637 +
  638 +# The EXAMPLE_PATH tag can be used to specify one or more files or
  639 +# directories that contain example code fragments that are included (see
  640 +# the \include command).
  641 +
  642 +EXAMPLE_PATH = .
  643 +
  644 +# If the value of the EXAMPLE_PATH tag contains directories, you can use the
  645 +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
  646 +# and *.h) to filter out the source-files in the directories. If left
  647 +# blank all files are included.
  648 +
  649 +EXAMPLE_PATTERNS =
  650 +
  651 +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
  652 +# searched for input files to be used with the \include or \dontinclude
  653 +# commands irrespective of the value of the RECURSIVE tag.
  654 +# Possible values are YES and NO. If left blank NO is used.
  655 +
  656 +EXAMPLE_RECURSIVE = NO
  657 +
  658 +# The IMAGE_PATH tag can be used to specify one or more files or
  659 +# directories that contain image that are included in the documentation (see
  660 +# the \image command).
  661 +
  662 +IMAGE_PATH =
  663 +
  664 +# The INPUT_FILTER tag can be used to specify a program that doxygen should
  665 +# invoke to filter for each input file. Doxygen will invoke the filter program
  666 +# by executing (via popen()) the command <filter> <input-file>, where <filter>
  667 +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
  668 +# input file. Doxygen will then use the output that the filter program writes
  669 +# to standard output.
  670 +# If FILTER_PATTERNS is specified, this tag will be
  671 +# ignored.
  672 +
  673 +INPUT_FILTER =
  674 +
  675 +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
  676 +# basis.
  677 +# Doxygen will compare the file name with each pattern and apply the
  678 +# filter if there is a match.
  679 +# The filters are a list of the form:
  680 +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
  681 +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
  682 +# is applied to all files.
  683 +
  684 +FILTER_PATTERNS =
  685 +
  686 +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
  687 +# INPUT_FILTER) will be used to filter the input files when producing source
  688 +# files to browse (i.e. when SOURCE_BROWSER is set to YES).
  689 +
  690 +FILTER_SOURCE_FILES = NO
  691 +
  692 +#---------------------------------------------------------------------------
  693 +# configuration options related to source browsing
  694 +#---------------------------------------------------------------------------
  695 +
  696 +# If the SOURCE_BROWSER tag is set to YES then a list of source files will
  697 +# be generated. Documented entities will be cross-referenced with these sources.
  698 +# Note: To get rid of all source code in the generated output, make sure also
  699 +# VERBATIM_HEADERS is set to NO.
  700 +
  701 +SOURCE_BROWSER = YES
  702 +
  703 +# Setting the INLINE_SOURCES tag to YES will include the body
  704 +# of functions and classes directly in the documentation.
  705 +
  706 +INLINE_SOURCES = NO
  707 +
  708 +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
  709 +# doxygen to hide any special comment blocks from generated source code
  710 +# fragments. Normal C and C++ comments will always remain visible.
  711 +
  712 +STRIP_CODE_COMMENTS = NO
  713 +
  714 +# If the REFERENCED_BY_RELATION tag is set to YES
  715 +# then for each documented function all documented
  716 +# functions referencing it will be listed.
  717 +
  718 +REFERENCED_BY_RELATION = YES
  719 +
  720 +# If the REFERENCES_RELATION tag is set to YES
  721 +# then for each documented function all documented entities
  722 +# called/used by that function will be listed.
  723 +
  724 +REFERENCES_RELATION = YES
  725 +
  726 +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
  727 +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
  728 +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
  729 +# link to the source code.
  730 +# Otherwise they will link to the documentation.
  731 +
  732 +REFERENCES_LINK_SOURCE = YES
  733 +
  734 +# If the USE_HTAGS tag is set to YES then the references to source code
  735 +# will point to the HTML generated by the htags(1) tool instead of doxygen
  736 +# built-in source browser. The htags tool is part of GNU's global source
  737 +# tagging system (see http://www.gnu.org/software/global/global.html). You
  738 +# will need version 4.8.6 or higher.
  739 +
  740 +USE_HTAGS = NO
  741 +
  742 +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
  743 +# will generate a verbatim copy of the header file for each class for
  744 +# which an include is specified. Set to NO to disable this.
  745 +
  746 +VERBATIM_HEADERS = YES
  747 +
  748 +#---------------------------------------------------------------------------
  749 +# configuration options related to the alphabetical class index
  750 +#---------------------------------------------------------------------------
  751 +
  752 +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
  753 +# of all compounds will be generated. Enable this if the project
  754 +# contains a lot of classes, structs, unions or interfaces.
  755 +
  756 +ALPHABETICAL_INDEX = YES
  757 +
  758 +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
  759 +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
  760 +# in which this list will be split (can be a number in the range [1..20])
  761 +
  762 +COLS_IN_ALPHA_INDEX = 3
  763 +
  764 +# In case all classes in a project start with a common prefix, all
  765 +# classes will be put under the same header in the alphabetical index.
  766 +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
  767 +# should be ignored while generating the index headers.
  768 +
  769 +IGNORE_PREFIX =
  770 +
  771 +#---------------------------------------------------------------------------
  772 +# configuration options related to the HTML output
  773 +#---------------------------------------------------------------------------
  774 +
  775 +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
  776 +# generate HTML output.
  777 +
  778 +GENERATE_HTML = YES
  779 +
  780 +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
  781 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be
  782 +# put in front of it. If left blank `html' will be used as the default path.
  783 +
  784 +HTML_OUTPUT =
  785 +
  786 +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
  787 +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
  788 +# doxygen will generate files with .html extension.
  789 +
  790 +HTML_FILE_EXTENSION = .html
  791 +
  792 +# The HTML_HEADER tag can be used to specify a personal HTML header for
  793 +# each generated HTML page. If it is left blank doxygen will generate a
  794 +# standard header.
  795 +
  796 +HTML_HEADER =
  797 +
  798 +# The HTML_FOOTER tag can be used to specify a personal HTML footer for
  799 +# each generated HTML page. If it is left blank doxygen will generate a
  800 +# standard footer.
  801 +
  802 +HTML_FOOTER =
  803 +
  804 +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
  805 +# style sheet that is used by each HTML page. It can be used to
  806 +# fine-tune the look of the HTML output. If the tag is left blank doxygen
  807 +# will generate a default style sheet. Note that doxygen will try to copy
  808 +# the style sheet file to the HTML output directory, so don't put your own
  809 +# stylesheet in the HTML output directory as well, or it will be erased!
  810 +
  811 +HTML_STYLESHEET =
  812 +
  813 +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
  814 +# Doxygen will adjust the colors in the stylesheet and background images
  815 +# according to this color. Hue is specified as an angle on a colorwheel,
  816 +# see http://en.wikipedia.org/wiki/Hue for more information.
  817 +# For instance the value 0 represents red, 60 is yellow, 120 is green,
  818 +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
  819 +# The allowed range is 0 to 359.
  820 +
  821 +HTML_COLORSTYLE_HUE = 220
  822 +
  823 +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
  824 +# the colors in the HTML output. For a value of 0 the output will use
  825 +# grayscales only. A value of 255 will produce the most vivid colors.
  826 +
  827 +HTML_COLORSTYLE_SAT = 100
  828 +
  829 +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
  830 +# the luminance component of the colors in the HTML output. Values below
  831 +# 100 gradually make the output lighter, whereas values above 100 make
  832 +# the output darker. The value divided by 100 is the actual gamma applied,
  833 +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
  834 +# and 100 does not change the gamma.
  835 +
  836 +HTML_COLORSTYLE_GAMMA = 80
  837 +
  838 +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
  839 +# page will contain the date and time when the page was generated. Setting
  840 +# this to NO can help when comparing the output of multiple runs.
  841 +
  842 +HTML_TIMESTAMP = YES
  843 +
  844 +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
  845 +# files or namespaces will be aligned in HTML using tables. If set to
  846 +# NO a bullet list will be used.
  847 +
  848 +HTML_ALIGN_MEMBERS = YES
  849 +
  850 +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
  851 +# documentation will contain sections that can be hidden and shown after the
  852 +# page has loaded. For this to work a browser that supports
  853 +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
  854 +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
  855 +
  856 +HTML_DYNAMIC_SECTIONS = NO
  857 +
  858 +# If the GENERATE_DOCSET tag is set to YES, additional index files
  859 +# will be generated that can be used as input for Apple's Xcode 3
  860 +# integrated development environment, introduced with OSX 10.5 (Leopard).
  861 +# To create a documentation set, doxygen will generate a Makefile in the
  862 +# HTML output directory. Running make will produce the docset in that
  863 +# directory and running "make install" will install the docset in
  864 +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
  865 +# it at startup.
  866 +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
  867 +# for more information.
  868 +
  869 +GENERATE_DOCSET = NO
  870 +
  871 +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
  872 +# feed. A documentation feed provides an umbrella under which multiple
  873 +# documentation sets from a single provider (such as a company or product suite)
  874 +# can be grouped.
  875 +
  876 +DOCSET_FEEDNAME = "Doxygen generated docs"
  877 +
  878 +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
  879 +# should uniquely identify the documentation set bundle. This should be a
  880 +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
  881 +# will append .docset to the name.
  882 +
  883 +DOCSET_BUNDLE_ID = org.doxygen.Project
  884 +
  885 +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
  886 +# the documentation publisher. This should be a reverse domain-name style
  887 +# string, e.g. com.mycompany.MyDocSet.documentation.
  888 +
  889 +DOCSET_PUBLISHER_ID = org.doxygen.Publisher
  890 +
  891 +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
  892 +
  893 +DOCSET_PUBLISHER_NAME = Publisher
  894 +
  895 +# If the GENERATE_HTMLHELP tag is set to YES, additional index files
  896 +# will be generated that can be used as input for tools like the
  897 +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
  898 +# of the generated HTML documentation.
  899 +
  900 +GENERATE_HTMLHELP = YES
  901 +
  902 +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
  903 +# be used to specify the file name of the resulting .chm file. You
  904 +# can add a path in front of the file if the result should not be
  905 +# written to the html output directory.
  906 +
  907 +CHM_FILE =
  908 +
  909 +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
  910 +# be used to specify the location (absolute path including file name) of
  911 +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
  912 +# the HTML help compiler on the generated index.hhp.
  913 +
  914 +HHC_LOCATION =
  915 +
  916 +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
  917 +# controls if a separate .chi index file is generated (YES) or that
  918 +# it should be included in the master .chm file (NO).
  919 +
  920 +GENERATE_CHI = NO
  921 +
  922 +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
  923 +# is used to encode HtmlHelp index (hhk), content (hhc) and project file
  924 +# content.
  925 +
  926 +CHM_INDEX_ENCODING =
  927 +
  928 +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
  929 +# controls whether a binary table of contents is generated (YES) or a
  930 +# normal table of contents (NO) in the .chm file.
  931 +
  932 +BINARY_TOC = NO
  933 +
  934 +# The TOC_EXPAND flag can be set to YES to add extra items for group members
  935 +# to the contents of the HTML help documentation and to the tree view.
  936 +
  937 +TOC_EXPAND = NO
  938 +
  939 +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
  940 +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
  941 +# that can be used as input for Qt's qhelpgenerator to generate a
  942 +# Qt Compressed Help (.qch) of the generated HTML documentation.
  943 +
  944 +GENERATE_QHP = NO
  945 +
  946 +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
  947 +# be used to specify the file name of the resulting .qch file.
  948 +# The path specified is relative to the HTML output folder.
  949 +
  950 +QCH_FILE =
  951 +
  952 +# The QHP_NAMESPACE tag specifies the namespace to use when generating
  953 +# Qt Help Project output. For more information please see
  954 +# http://doc.trolltech.com/qthelpproject.html#namespace
  955 +
  956 +QHP_NAMESPACE = org.doxygen.Project
  957 +
  958 +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
  959 +# Qt Help Project output. For more information please see
  960 +# http://doc.trolltech.com/qthelpproject.html#virtual-folders
  961 +
  962 +QHP_VIRTUAL_FOLDER = doc
  963 +
  964 +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
  965 +# add. For more information please see
  966 +# http://doc.trolltech.com/qthelpproject.html#custom-filters
  967 +
  968 +QHP_CUST_FILTER_NAME =
  969 +
  970 +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
  971 +# custom filter to add. For more information please see
  972 +# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
  973 +# Qt Help Project / Custom Filters</a>.
  974 +
  975 +QHP_CUST_FILTER_ATTRS =
  976 +
  977 +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
  978 +# project's
  979 +# filter section matches.
  980 +# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
  981 +# Qt Help Project / Filter Attributes</a>.
  982 +
  983 +QHP_SECT_FILTER_ATTRS =
  984 +
  985 +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
  986 +# be used to specify the location of Qt's qhelpgenerator.
  987 +# If non-empty doxygen will try to run qhelpgenerator on the generated
  988 +# .qhp file.
  989 +
  990 +QHG_LOCATION =
  991 +
  992 +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
  993 +# will be generated, which together with the HTML files, form an Eclipse help
  994 +# plugin. To install this plugin and make it available under the help contents
  995 +# menu in Eclipse, the contents of the directory containing the HTML and XML
  996 +# files needs to be copied into the plugins directory of eclipse. The name of
  997 +# the directory within the plugins directory should be the same as
  998 +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
  999 +# the help appears.
  1000 +
  1001 +GENERATE_ECLIPSEHELP = NO
  1002 +
  1003 +# A unique identifier for the eclipse help plugin. When installing the plugin
  1004 +# the directory name containing the HTML and XML files should also have
  1005 +# this name.
  1006 +
  1007 +ECLIPSE_DOC_ID = org.doxygen.Project
  1008 +
  1009 +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
  1010 +# top of each HTML page. The value NO (the default) enables the index and
  1011 +# the value YES disables it.
  1012 +
  1013 +DISABLE_INDEX = NO
  1014 +
  1015 +# This tag can be used to set the number of enum values (range [1..20])
  1016 +# that doxygen will group on one line in the generated HTML documentation.
  1017 +
  1018 +ENUM_VALUES_PER_LINE = 4
  1019 +
  1020 +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
  1021 +# structure should be generated to display hierarchical information.
  1022 +# If the tag value is set to YES, a side panel will be generated
  1023 +# containing a tree-like index structure (just like the one that
  1024 +# is generated for HTML Help). For this to work a browser that supports
  1025 +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
  1026 +# Windows users are probably better off using the HTML help feature.
  1027 +
  1028 +GENERATE_TREEVIEW = NO
  1029 +
  1030 +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
  1031 +# and Class Hierarchy pages using a tree view instead of an ordered list.
  1032 +
  1033 +USE_INLINE_TREES = NO
  1034 +
  1035 +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
  1036 +# used to set the initial width (in pixels) of the frame in which the tree
  1037 +# is shown.
  1038 +
  1039 +TREEVIEW_WIDTH = 250
  1040 +
  1041 +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
  1042 +# links to external symbols imported via tag files in a separate window.
  1043 +
  1044 +EXT_LINKS_IN_WINDOW = NO
  1045 +
  1046 +# Use this tag to change the font size of Latex formulas included
  1047 +# as images in the HTML documentation. The default is 10. Note that
  1048 +# when you change the font size after a successful doxygen run you need
  1049 +# to manually remove any form_*.png images from the HTML output directory
  1050 +# to force them to be regenerated.
  1051 +
  1052 +FORMULA_FONTSIZE = 10
  1053 +
  1054 +# Use the FORMULA_TRANPARENT tag to determine whether or not the images
  1055 +# generated for formulas are transparent PNGs. Transparent PNGs are
  1056 +# not supported properly for IE 6.0, but are supported on all modern browsers.
  1057 +# Note that when changing this option you need to delete any form_*.png files
  1058 +# in the HTML output before the changes have effect.
  1059 +
  1060 +FORMULA_TRANSPARENT = YES
  1061 +
  1062 +# When the SEARCHENGINE tag is enabled doxygen will generate a search box
  1063 +# for the HTML output. The underlying search engine uses javascript
  1064 +# and DHTML and should work on any modern browser. Note that when using
  1065 +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
  1066 +# (GENERATE_DOCSET) there is already a search function so this one should
  1067 +# typically be disabled. For large projects the javascript based search engine
  1068 +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
  1069 +
  1070 +SEARCHENGINE = NO
  1071 +
  1072 +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
  1073 +# implemented using a PHP enabled web server instead of at the web client
  1074 +# using Javascript. Doxygen will generate the search PHP script and index
  1075 +# file to put on the web server. The advantage of the server
  1076 +# based approach is that it scales better to large projects and allows
  1077 +# full text search. The disadvances is that it is more difficult to setup
  1078 +# and does not have live searching capabilities.
  1079 +
  1080 +SERVER_BASED_SEARCH = NO
  1081 +
  1082 +#---------------------------------------------------------------------------
  1083 +# configuration options related to the LaTeX output
  1084 +#---------------------------------------------------------------------------
  1085 +
  1086 +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
  1087 +# generate Latex output.
  1088 +
  1089 +GENERATE_LATEX = NO
  1090 +
  1091 +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
  1092 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be
  1093 +# put in front of it. If left blank `latex' will be used as the default path.
  1094 +
  1095 +LATEX_OUTPUT =
  1096 +
  1097 +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
  1098 +# invoked. If left blank `latex' will be used as the default command name.
  1099 +# Note that when enabling USE_PDFLATEX this option is only used for
  1100 +# generating bitmaps for formulas in the HTML output, but not in the
  1101 +# Makefile that is written to the output directory.
  1102 +
  1103 +LATEX_CMD_NAME = latex
  1104 +
  1105 +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
  1106 +# generate index for LaTeX. If left blank `makeindex' will be used as the
  1107 +# default command name.
  1108 +
  1109 +MAKEINDEX_CMD_NAME = makeindex
  1110 +
  1111 +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
  1112 +# LaTeX documents. This may be useful for small projects and may help to
  1113 +# save some trees in general.
  1114 +
  1115 +COMPACT_LATEX = NO
  1116 +
  1117 +# The PAPER_TYPE tag can be used to set the paper type that is used
  1118 +# by the printer. Possible values are: a4, a4wide, letter, legal and
  1119 +# executive. If left blank a4wide will be used.
  1120 +
  1121 +PAPER_TYPE = a4
  1122 +
  1123 +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
  1124 +# packages that should be included in the LaTeX output.
  1125 +
  1126 +EXTRA_PACKAGES =
  1127 +
  1128 +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
  1129 +# the generated latex document. The header should contain everything until
  1130 +# the first chapter. If it is left blank doxygen will generate a
  1131 +# standard header. Notice: only use this tag if you know what you are doing!
  1132 +
  1133 +LATEX_HEADER =
  1134 +
  1135 +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
  1136 +# is prepared for conversion to pdf (using ps2pdf). The pdf file will
  1137 +# contain links (just like the HTML output) instead of page references
  1138 +# This makes the output suitable for online browsing using a pdf viewer.
  1139 +
  1140 +PDF_HYPERLINKS = NO
  1141 +
  1142 +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
  1143 +# plain latex in the generated Makefile. Set this option to YES to get a
  1144 +# higher quality PDF documentation.
  1145 +
  1146 +USE_PDFLATEX = NO
  1147 +
  1148 +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
  1149 +# command to the generated LaTeX files. This will instruct LaTeX to keep
  1150 +# running if errors occur, instead of asking the user for help.
  1151 +# This option is also used when generating formulas in HTML.
  1152 +
  1153 +LATEX_BATCHMODE = NO
  1154 +
  1155 +# If LATEX_HIDE_INDICES is set to YES then doxygen will not
  1156 +# include the index chapters (such as File Index, Compound Index, etc.)
  1157 +# in the output.
  1158 +
  1159 +LATEX_HIDE_INDICES = NO
  1160 +
  1161 +# If LATEX_SOURCE_CODE is set to YES then doxygen will include
  1162 +# source code with syntax highlighting in the LaTeX output.
  1163 +# Note that which sources are shown also depends on other settings
  1164 +# such as SOURCE_BROWSER.
  1165 +
  1166 +LATEX_SOURCE_CODE = NO
  1167 +
  1168 +#---------------------------------------------------------------------------
  1169 +# configuration options related to the RTF output
  1170 +#---------------------------------------------------------------------------
  1171 +
  1172 +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
  1173 +# The RTF output is optimized for Word 97 and may not look very pretty with
  1174 +# other RTF readers or editors.
  1175 +
  1176 +GENERATE_RTF = NO
  1177 +
  1178 +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
  1179 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be
  1180 +# put in front of it. If left blank `rtf' will be used as the default path.
  1181 +
  1182 +RTF_OUTPUT = rtf
  1183 +
  1184 +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
  1185 +# RTF documents. This may be useful for small projects and may help to
  1186 +# save some trees in general.
  1187 +
  1188 +COMPACT_RTF = NO
  1189 +
  1190 +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
  1191 +# will contain hyperlink fields. The RTF file will
  1192 +# contain links (just like the HTML output) instead of page references.
  1193 +# This makes the output suitable for online browsing using WORD or other
  1194 +# programs which support those fields.
  1195 +# Note: wordpad (write) and others do not support links.
  1196 +
  1197 +RTF_HYPERLINKS = NO
  1198 +
  1199 +# Load stylesheet definitions from file. Syntax is similar to doxygen's
  1200 +# config file, i.e. a series of assignments. You only have to provide
  1201 +# replacements, missing definitions are set to their default value.
  1202 +
  1203 +RTF_STYLESHEET_FILE =
  1204 +
  1205 +# Set optional variables used in the generation of an rtf document.
  1206 +# Syntax is similar to doxygen's config file.
  1207 +
  1208 +RTF_EXTENSIONS_FILE =
  1209 +
  1210 +#---------------------------------------------------------------------------
  1211 +# configuration options related to the man page output
  1212 +#---------------------------------------------------------------------------
  1213 +
  1214 +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
  1215 +# generate man pages
  1216 +
  1217 +GENERATE_MAN = NO
  1218 +
  1219 +# The MAN_OUTPUT tag is used to specify where the man pages will be put.
  1220 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be
  1221 +# put in front of it. If left blank `man' will be used as the default path.
  1222 +
  1223 +MAN_OUTPUT =
  1224 +
  1225 +# The MAN_EXTENSION tag determines the extension that is added to
  1226 +# the generated man pages (default is the subroutine's section .3)
  1227 +
  1228 +MAN_EXTENSION = .3
  1229 +
  1230 +# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
  1231 +# then it will generate one additional man file for each entity
  1232 +# documented in the real man page(s). These additional files
  1233 +# only source the real man page, but without them the man command
  1234 +# would be unable to find the correct page. The default is NO.
  1235 +
  1236 +MAN_LINKS = NO
  1237 +
  1238 +#---------------------------------------------------------------------------
  1239 +# configuration options related to the XML output
  1240 +#---------------------------------------------------------------------------
  1241 +
  1242 +# If the GENERATE_XML tag is set to YES Doxygen will
  1243 +# generate an XML file that captures the structure of
  1244 +# the code including all documentation.
  1245 +
  1246 +GENERATE_XML = NO
  1247 +
  1248 +# The XML_OUTPUT tag is used to specify where the XML pages will be put.
  1249 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be
  1250 +# put in front of it. If left blank `xml' will be used as the default path.
  1251 +
  1252 +XML_OUTPUT = xml
  1253 +
  1254 +# The XML_SCHEMA tag can be used to specify an XML schema,
  1255 +# which can be used by a validating XML parser to check the
  1256 +# syntax of the XML files.
  1257 +
  1258 +XML_SCHEMA =
  1259 +
  1260 +# The XML_DTD tag can be used to specify an XML DTD,
  1261 +# which can be used by a validating XML parser to check the
  1262 +# syntax of the XML files.
  1263 +
  1264 +XML_DTD =
  1265 +
  1266 +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
  1267 +# dump the program listings (including syntax highlighting
  1268 +# and cross-referencing information) to the XML output. Note that
  1269 +# enabling this will significantly increase the size of the XML output.
  1270 +
  1271 +XML_PROGRAMLISTING = YES
  1272 +
  1273 +#---------------------------------------------------------------------------
  1274 +# configuration options for the AutoGen Definitions output
  1275 +#---------------------------------------------------------------------------
  1276 +
  1277 +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
  1278 +# generate an AutoGen Definitions (see autogen.sf.net) file
  1279 +# that captures the structure of the code including all
  1280 +# documentation. Note that this feature is still experimental
  1281 +# and incomplete at the moment.
  1282 +
  1283 +GENERATE_AUTOGEN_DEF = NO
  1284 +
  1285 +#---------------------------------------------------------------------------
  1286 +# configuration options related to the Perl module output
  1287 +#---------------------------------------------------------------------------
  1288 +
  1289 +# If the GENERATE_PERLMOD tag is set to YES Doxygen will
  1290 +# generate a Perl module file that captures the structure of
  1291 +# the code including all documentation. Note that this
  1292 +# feature is still experimental and incomplete at the
  1293 +# moment.
  1294 +
  1295 +GENERATE_PERLMOD = NO
  1296 +
  1297 +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
  1298 +# the necessary Makefile rules, Perl scripts and LaTeX code to be able
  1299 +# to generate PDF and DVI output from the Perl module output.
  1300 +
  1301 +PERLMOD_LATEX = NO
  1302 +
  1303 +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
  1304 +# nicely formatted so it can be parsed by a human reader.
  1305 +# This is useful
  1306 +# if you want to understand what is going on.
  1307 +# On the other hand, if this
  1308 +# tag is set to NO the size of the Perl module output will be much smaller
  1309 +# and Perl will parse it just the same.
  1310 +
  1311 +PERLMOD_PRETTY = YES
  1312 +
  1313 +# The names of the make variables in the generated doxyrules.make file
  1314 +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
  1315 +# This is useful so different doxyrules.make files included by the same
  1316 +# Makefile don't overwrite each other's variables.
  1317 +
  1318 +PERLMOD_MAKEVAR_PREFIX =
  1319 +
  1320 +#---------------------------------------------------------------------------
  1321 +# Configuration options related to the preprocessor
  1322 +#---------------------------------------------------------------------------
  1323 +
  1324 +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
  1325 +# evaluate all C-preprocessor directives found in the sources and include
  1326 +# files.
  1327 +
  1328 +ENABLE_PREPROCESSING = YES
  1329 +
  1330 +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
  1331 +# names in the source code. If set to NO (the default) only conditional
  1332 +# compilation will be performed. Macro expansion can be done in a controlled
  1333 +# way by setting EXPAND_ONLY_PREDEF to YES.
  1334 +
  1335 +MACRO_EXPANSION = YES
  1336 +
  1337 +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
  1338 +# then the macro expansion is limited to the macros specified with the
  1339 +# PREDEFINED and EXPAND_AS_DEFINED tags.
  1340 +
  1341 +EXPAND_ONLY_PREDEF = NO
  1342 +
  1343 +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
  1344 +# in the INCLUDE_PATH (see below) will be search if a #include is found.
  1345 +
  1346 +SEARCH_INCLUDES = YES
  1347 +
  1348 +# The INCLUDE_PATH tag can be used to specify one or more directories that
  1349 +# contain include files that are not input files but should be processed by
  1350 +# the preprocessor.
  1351 +
  1352 +INCLUDE_PATH = .
  1353 +
  1354 +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
  1355 +# patterns (like *.h and *.hpp) to filter out the header-files in the
  1356 +# directories. If left blank, the patterns specified with FILE_PATTERNS will
  1357 +# be used.
  1358 +
  1359 +INCLUDE_FILE_PATTERNS =
  1360 +
  1361 +# The PREDEFINED tag can be used to specify one or more macro names that
  1362 +# are defined before the preprocessor is started (similar to the -D option of
  1363 +# gcc). The argument of the tag is a list of macros of the form: name
  1364 +# or name=definition (no spaces). If the definition and the = are
  1365 +# omitted =1 is assumed. To prevent a macro definition from being
  1366 +# undefined via #undef or recursively expanded use the := operator
  1367 +# instead of the = operator.
  1368 +
  1369 +PREDEFINED = _WIN32 \
  1370 + _WINDOWS \
  1371 + __FreeBSD__ \
  1372 + CRYPTOPP_DOXYGEN_PROCESSING
  1373 +
  1374 +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
  1375 +# this tag can be used to specify a list of macro names that should be expanded.
  1376 +# The macro definition that is found in the sources will be used.
  1377 +# Use the PREDEFINED tag if you want to use a different macro definition.
  1378 +
  1379 +EXPAND_AS_DEFINED =
  1380 +
  1381 +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
  1382 +# doxygen's preprocessor will remove all function-like macros that are alone
  1383 +# on a line, have an all uppercase name, and do not end with a semicolon. Such
  1384 +# function macros are typically used for boiler-plate code, and will confuse
  1385 +# the parser if not removed.
  1386 +
  1387 +SKIP_FUNCTION_MACROS = YES
  1388 +
  1389 +#---------------------------------------------------------------------------
  1390 +# Configuration::additions related to external references
  1391 +#---------------------------------------------------------------------------
  1392 +
  1393 +# The TAGFILES option can be used to specify one or more tagfiles.
  1394 +# Optionally an initial location of the external documentation
  1395 +# can be added for each tagfile. The format of a tag file without
  1396 +# this location is as follows:
  1397 +#
  1398 +# TAGFILES = file1 file2 ...
  1399 +# Adding location for the tag files is done as follows:
  1400 +#
  1401 +# TAGFILES = file1=loc1 "file2 = loc2" ...
  1402 +# where "loc1" and "loc2" can be relative or absolute paths or
  1403 +# URLs. If a location is present for each tag, the installdox tool
  1404 +# does not have to be run to correct the links.
  1405 +# Note that each tag file must have a unique name
  1406 +# (where the name does NOT include the path)
  1407 +# If a tag file is not located in the directory in which doxygen
  1408 +# is run, you must also specify the path to the tagfile here.
  1409 +
  1410 +TAGFILES =
  1411 +
  1412 +# When a file name is specified after GENERATE_TAGFILE, doxygen will create
  1413 +# a tag file that is based on the input files it reads.
  1414 +
  1415 +GENERATE_TAGFILE =
  1416 +
  1417 +# If the ALLEXTERNALS tag is set to YES all external classes will be listed
  1418 +# in the class index. If set to NO only the inherited external classes
  1419 +# will be listed.
  1420 +
  1421 +ALLEXTERNALS = NO
  1422 +
  1423 +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
  1424 +# in the modules index. If set to NO, only the current project's groups will
  1425 +# be listed.
  1426 +
  1427 +EXTERNAL_GROUPS = YES
  1428 +
  1429 +# The PERL_PATH should be the absolute path and name of the perl script
  1430 +# interpreter (i.e. the result of `which perl').
  1431 +
  1432 +PERL_PATH = /usr/bin/perl
  1433 +
  1434 +#---------------------------------------------------------------------------
  1435 +# Configuration options related to the dot tool
  1436 +#---------------------------------------------------------------------------
  1437 +
  1438 +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
  1439 +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
  1440 +# or super classes. Setting the tag to NO turns the diagrams off. Note that
  1441 +# this option is superseded by the HAVE_DOT option below. This is only a
  1442 +# fallback. It is recommended to install and use dot, since it yields more
  1443 +# powerful graphs.
  1444 +
  1445 +CLASS_DIAGRAMS = YES
  1446 +
  1447 +# You can define message sequence charts within doxygen comments using the \msc
  1448 +# command. Doxygen will then run the mscgen tool (see
  1449 +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
  1450 +# documentation. The MSCGEN_PATH tag allows you to specify the directory where
  1451 +# the mscgen tool resides. If left empty the tool is assumed to be found in the
  1452 +# default search path.
  1453 +
  1454 +MSCGEN_PATH =
  1455 +
  1456 +# If set to YES, the inheritance and collaboration graphs will hide
  1457 +# inheritance and usage relations if the target is undocumented
  1458 +# or is not a class.
  1459 +
  1460 +HIDE_UNDOC_RELATIONS = YES
  1461 +
  1462 +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
  1463 +# available from the path. This tool is part of Graphviz, a graph visualization
  1464 +# toolkit from AT&T and Lucent Bell Labs. The other options in this section
  1465 +# have no effect if this option is set to NO (the default)
  1466 +
  1467 +HAVE_DOT = NO
  1468 +
  1469 +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
  1470 +# allowed to run in parallel. When set to 0 (the default) doxygen will
  1471 +# base this on the number of processors available in the system. You can set it
  1472 +# explicitly to a value larger than 0 to get control over the balance
  1473 +# between CPU load and processing speed.
  1474 +
  1475 +DOT_NUM_THREADS = 0
  1476 +
  1477 +# By default doxygen will write a font called FreeSans.ttf to the output
  1478 +# directory and reference it in all dot files that doxygen generates. This
  1479 +# font does not include all possible unicode characters however, so when you need
  1480 +# these (or just want a differently looking font) you can specify the font name
  1481 +# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
  1482 +# which can be done by putting it in a standard location or by setting the
  1483 +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
  1484 +# containing the font.
  1485 +
  1486 +DOT_FONTNAME = FreeSans.ttf
  1487 +
  1488 +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
  1489 +# The default size is 10pt.
  1490 +
  1491 +DOT_FONTSIZE = 10
  1492 +
  1493 +# By default doxygen will tell dot to use the output directory to look for the
  1494 +# FreeSans.ttf font (which doxygen will put there itself). If you specify a
  1495 +# different font using DOT_FONTNAME you can set the path where dot
  1496 +# can find it using this tag.
  1497 +
  1498 +DOT_FONTPATH =
  1499 +
  1500 +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
  1501 +# will generate a graph for each documented class showing the direct and
  1502 +# indirect inheritance relations. Setting this tag to YES will force the
  1503 +# the CLASS_DIAGRAMS tag to NO.
  1504 +
  1505 +CLASS_GRAPH = YES
  1506 +
  1507 +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
  1508 +# will generate a graph for each documented class showing the direct and
  1509 +# indirect implementation dependencies (inheritance, containment, and
  1510 +# class references variables) of the class with other documented classes.
  1511 +
  1512 +COLLABORATION_GRAPH = YES
  1513 +
  1514 +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
  1515 +# will generate a graph for groups, showing the direct groups dependencies
  1516 +
  1517 +GROUP_GRAPHS = YES
  1518 +
  1519 +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
  1520 +# collaboration diagrams in a style similar to the OMG's Unified Modeling
  1521 +# Language.
  1522 +
  1523 +UML_LOOK = NO
  1524 +
  1525 +# If set to YES, the inheritance and collaboration graphs will show the
  1526 +# relations between templates and their instances.
  1527 +
  1528 +TEMPLATE_RELATIONS = YES
  1529 +
  1530 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
  1531 +# tags are set to YES then doxygen will generate a graph for each documented
  1532 +# file showing the direct and indirect include dependencies of the file with
  1533 +# other documented files.
  1534 +
  1535 +INCLUDE_GRAPH = YES
  1536 +
  1537 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
  1538 +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
  1539 +# documented header file showing the documented files that directly or
  1540 +# indirectly include this file.
  1541 +
  1542 +INCLUDED_BY_GRAPH = YES
  1543 +
  1544 +# If the CALL_GRAPH and HAVE_DOT options are set to YES then
  1545 +# doxygen will generate a call dependency graph for every global function
  1546 +# or class method. Note that enabling this option will significantly increase
  1547 +# the time of a run. So in most cases it will be better to enable call graphs
  1548 +# for selected functions only using the \callgraph command.
  1549 +
  1550 +CALL_GRAPH = NO
  1551 +
  1552 +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
  1553 +# doxygen will generate a caller dependency graph for every global function
  1554 +# or class method. Note that enabling this option will significantly increase
  1555 +# the time of a run. So in most cases it will be better to enable caller
  1556 +# graphs for selected functions only using the \callergraph command.
  1557 +
  1558 +CALLER_GRAPH = NO
  1559 +
  1560 +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
  1561 +# will graphical hierarchy of all classes instead of a textual one.
  1562 +
  1563 +GRAPHICAL_HIERARCHY = YES
  1564 +
  1565 +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
  1566 +# then doxygen will show the dependencies a directory has on other directories
  1567 +# in a graphical way. The dependency relations are determined by the #include
  1568 +# relations between the files in the directories.
  1569 +
  1570 +DIRECTORY_GRAPH = YES
  1571 +
  1572 +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
  1573 +# generated by dot. Possible values are png, jpg, or gif
  1574 +# If left blank png will be used.
  1575 +
  1576 +DOT_IMAGE_FORMAT = png
  1577 +
  1578 +# The tag DOT_PATH can be used to specify the path where the dot tool can be
  1579 +# found. If left blank, it is assumed the dot tool can be found in the path.
  1580 +
  1581 +DOT_PATH =
  1582 +
  1583 +# The DOTFILE_DIRS tag can be used to specify one or more directories that
  1584 +# contain dot files that are included in the documentation (see the
  1585 +# \dotfile command).
  1586 +
  1587 +DOTFILE_DIRS =
  1588 +
  1589 +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
  1590 +# nodes that will be shown in the graph. If the number of nodes in a graph
  1591 +# becomes larger than this value, doxygen will truncate the graph, which is
  1592 +# visualized by representing a node as a red box. Note that doxygen if the
  1593 +# number of direct children of the root node in a graph is already larger than
  1594 +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
  1595 +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
  1596 +
  1597 +DOT_GRAPH_MAX_NODES = 50
  1598 +
  1599 +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
  1600 +# graphs generated by dot. A depth value of 3 means that only nodes reachable
  1601 +# from the root by following a path via at most 3 edges will be shown. Nodes
  1602 +# that lay further from the root node will be omitted. Note that setting this
  1603 +# option to 1 or 2 may greatly reduce the computation time needed for large
  1604 +# code bases. Also note that the size of a graph can be further restricted by
  1605 +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
  1606 +
  1607 +MAX_DOT_GRAPH_DEPTH = 0
  1608 +
  1609 +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
  1610 +# background. This is disabled by default, because dot on Windows does not
  1611 +# seem to support this out of the box. Warning: Depending on the platform used,
  1612 +# enabling this option may lead to badly anti-aliased labels on the edges of
  1613 +# a graph (i.e. they become hard to read).
  1614 +
  1615 +DOT_TRANSPARENT = NO
  1616 +
  1617 +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
  1618 +# files in one run (i.e. multiple -o and -T options on the command line). This
  1619 +# makes dot run faster, but since only newer versions of dot (>1.8.10)
  1620 +# support this, this feature is disabled by default.
  1621 +
  1622 +DOT_MULTI_TARGETS = NO
  1623 +
  1624 +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
  1625 +# generate a legend page explaining the meaning of the various boxes and
  1626 +# arrows in the dot generated graphs.
  1627 +
  1628 +GENERATE_LEGEND = YES
  1629 +
  1630 +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
  1631 +# remove the intermediate dot files that are used to generate
  1632 +# the various graphs.
  1633 +
  1634 +DOT_CLEANUP = YES
cryptopp/GNUmakefile 0 → 100644
  1 +++ a/cryptopp/GNUmakefile
  1 +CXXFLAGS = -DNDEBUG -O2
  2 +# -O3 fails to link on Cygwin GCC version 4.5.3
  3 +# -fPIC is supported. Please report any breakage of -fPIC as a bug.
  4 +CXXFLAGS += -fPIC
  5 +# the following options reduce code size, but breaks link or makes link very slow on some systems
  6 +# CXXFLAGS += -ffunction-sections -fdata-sections
  7 +# LDFLAGS += -Wl,--gc-sections
  8 +ARFLAGS = -cr # ar needs the dash on OpenBSD
  9 +RANLIB = ranlib
  10 +CP = cp
  11 +MKDIR = mkdir
  12 +EGREP = egrep
  13 +UNAME = $(shell uname)
  14 +ISX86 = $(shell uname -m | $(EGREP) -c "i.86|x86|i86|amd64")
  15 +IS_SUN_CC = $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: Sun")
  16 +IS_LINUX = $(shell $(CXX) -dumpmachine 2>&1 | $(EGREP) -c "linux")
  17 +IS_MINGW = $(shell $(CXX) -dumpmachine 2>&1 | $(EGREP) -c "mingw")
  18 +CLANG_COMPILER = $(shell $(CXX) --version 2>&1 | $(EGREP) -i -c "clang version")
  19 +
  20 +# Default prefix for make install
  21 +ifeq ($(PREFIX),)
  22 +PREFIX = /usr
  23 +endif
  24 +
  25 +ifeq ($(CXX),gcc) # for some reason CXX is gcc on cygwin 1.1.4
  26 +CXX = g++
  27 +endif
  28 +
  29 +ifeq ($(ISX86),1)
  30 +
  31 +GCC42_OR_LATER = $(shell $(CXX) -v 2>&1 | $(EGREP) -c "^gcc version (4.[2-9]|[5-9])")
  32 +INTEL_COMPILER = $(shell $(CXX) --version 2>&1 | $(EGREP) -c "\(ICC\)")
  33 +ICC111_OR_LATER = $(shell $(CXX) --version 2>&1 | $(EGREP) -c "\(ICC\) ([2-9][0-9]|1[2-9]|11\.[1-9])")
  34 +GAS210_OR_LATER = $(shell $(CXX) -xc -c /dev/null -Wa,-v -o/dev/null 2>&1 | $(EGREP) -c "GNU assembler version (2\.[1-9][0-9]|[3-9])")
  35 +GAS217_OR_LATER = $(shell $(CXX) -xc -c /dev/null -Wa,-v -o/dev/null 2>&1 | $(EGREP) -c "GNU assembler version (2\.1[7-9]|2\.[2-9]|[3-9])")
  36 +GAS219_OR_LATER = $(shell $(CXX) -xc -c /dev/null -Wa,-v -o/dev/null 2>&1 | $(EGREP) -c "GNU assembler version (2\.19|2\.[2-9]|[3-9])")
  37 +
  38 +ifneq ($(GCC42_OR_LATER),0)
  39 +ifeq ($(UNAME),Darwin)
  40 +CXXFLAGS += -arch x86_64 -arch i386
  41 +else
  42 +CXXFLAGS += -march=native
  43 +endif
  44 +endif
  45 +
  46 +ifneq ($(INTEL_COMPILER),0)
  47 +CXXFLAGS += -wd68 -wd186 -wd279 -wd327
  48 +ifeq ($(ICC111_OR_LATER),0)
  49 +# "internal error: backend signals" occurs on some x86 inline assembly with ICC 9 and some x64 inline assembly with ICC 11.0
  50 +# if you want to use Crypto++'s assembly code with ICC, try enabling it on individual files
  51 +CXXFLAGS += -DCRYPTOPP_DISABLE_ASM
  52 +endif
  53 +endif
  54 +
  55 +ifeq ($(GAS210_OR_LATER),0) # .intel_syntax wasn't supported until GNU assembler 2.10
  56 +CXXFLAGS += -DCRYPTOPP_DISABLE_ASM
  57 +else
  58 +ifeq ($(GAS217_OR_LATER),0)
  59 +CXXFLAGS += -DCRYPTOPP_DISABLE_SSSE3
  60 +else
  61 +ifeq ($(GAS219_OR_LATER),0)
  62 +CXXFLAGS += -DCRYPTOPP_DISABLE_AESNI
  63 +endif
  64 +endif
  65 +ifeq ($(UNAME),SunOS)
  66 +CXXFLAGS += -Wa,--divide # allow use of "/" operator
  67 +endif
  68 +endif
  69 +
  70 +endif # ISX86
  71 +
  72 +ifeq ($(UNAME),) # for DJGPP, where uname doesn't exist
  73 +CXXFLAGS += -mbnu210
  74 +else
  75 +CXXFLAGS += -pipe
  76 +endif
  77 +
  78 +ifeq ($(IS_MINGW),1)
  79 +LDLIBS += -lws2_32
  80 +endif
  81 +
  82 +ifeq ($(IS_LINUX),1)
  83 +LDFLAGS += -pthread
  84 +ifneq ($(shell uname -i | $(EGREP) -c "(_64|d64)"),0)
  85 +M32OR64 = -m64
  86 +endif
  87 +endif
  88 +
  89 +ifeq ($(UNAME),Darwin)
  90 +AR = libtool
  91 +ARFLAGS = -static -o
  92 +CXX = c++
  93 +IS_GCC2 = $(shell $(CXX) -v 2>&1 | $(EGREP) -c gcc-932)
  94 +ifeq ($(IS_GCC2),1)
  95 +CXXFLAGS += -fno-coalesce-templates -fno-coalesce-static-vtables
  96 +LDLIBS += -lstdc++
  97 +LDFLAGS += -flat_namespace -undefined suppress -m
  98 +endif
  99 +endif
  100 +
  101 +ifeq ($(UNAME),SunOS)
  102 +LDLIBS += -lnsl -lsocket
  103 +M32OR64 = -m$(shell isainfo -b)
  104 +endif
  105 +
  106 +ifneq ($(CLANG_COMPILER),0)
  107 +CXXFLAGS += -Wno-tautological-compare
  108 +endif
  109 +
  110 +ifneq ($(IS_SUN_CC),0) # override flags for CC Sun C++ compiler
  111 +CXXFLAGS = -DNDEBUG -O -native -template=no%extdef $(M32OR64)
  112 +LDFLAGS =
  113 +AR = $(CXX)
  114 +ARFLAGS = -xar -o
  115 +RANLIB = true
  116 +SUN_CC10_BUGGY = $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: Sun .* 5\.10 .* (2009|2010/0[1-4])")
  117 +ifneq ($(SUN_CC10_BUGGY),0)
  118 +# -DCRYPTOPP_INCLUDE_VECTOR_CC is needed for Sun Studio 12u1 Sun C++ 5.10 SunOS_i386 128229-02 2009/09/21 and was fixed in May 2010
  119 +# remove it if you get "already had a body defined" errors in vector.cc
  120 +CXXFLAGS += -DCRYPTOPP_INCLUDE_VECTOR_CC
  121 +endif
  122 +endif
  123 +
  124 +SRCS = $(wildcard *.cpp)
  125 +ifeq ($(SRCS),) # workaround wildcard function bug in GNU Make 3.77
  126 +SRCS = $(shell echo *.cpp)
  127 +endif
  128 +
  129 +OBJS = $(SRCS:.cpp=.o)
  130 +# test.o needs to be after bench.o for cygwin 1.1.4 (possible ld bug?)
  131 +TESTOBJS = bench.o bench2.o test.o validat1.o validat2.o validat3.o adhoc.o datatest.o regtest.o fipsalgt.o dlltest.o
  132 +LIBOBJS = $(filter-out $(TESTOBJS),$(OBJS))
  133 +
  134 +DLLSRCS = algebra.cpp algparam.cpp asn.cpp basecode.cpp cbcmac.cpp channels.cpp cryptlib.cpp des.cpp dessp.cpp dh.cpp dll.cpp dsa.cpp ec2n.cpp eccrypto.cpp ecp.cpp eprecomp.cpp files.cpp filters.cpp fips140.cpp fipstest.cpp gf2n.cpp gfpcrypt.cpp hex.cpp hmac.cpp integer.cpp iterhash.cpp misc.cpp modes.cpp modexppc.cpp mqueue.cpp nbtheory.cpp oaep.cpp osrng.cpp pch.cpp pkcspad.cpp pubkey.cpp queue.cpp randpool.cpp rdtables.cpp rijndael.cpp rng.cpp rsa.cpp sha.cpp simple.cpp skipjack.cpp strciphr.cpp trdlocal.cpp
  135 +DLLOBJS = $(DLLSRCS:.cpp=.export.o)
  136 +LIBIMPORTOBJS = $(LIBOBJS:.o=.import.o)
  137 +TESTIMPORTOBJS = $(TESTOBJS:.o=.import.o)
  138 +DLLTESTOBJS = dlltest.dllonly.o
  139 +
  140 +all: cryptest.exe
  141 +static: libcryptopp.a
  142 +dynamic: libcryptopp.so
  143 +
  144 +test: cryptest.exe
  145 + ./cryptest.exe v
  146 +
  147 +clean:
  148 + -$(RM) cryptest.exe libcryptopp.a libcryptopp.so $(LIBOBJS) $(TESTOBJS) cryptopp.dll libcryptopp.dll.a libcryptopp.import.a cryptest.import.exe dlltest.exe $(DLLOBJS) $(LIBIMPORTOBJS) $(TESTI MPORTOBJS) $(DLLTESTOBJS)
  149 +
  150 +install:
  151 + $(MKDIR) -p $(PREFIX)/include/cryptopp $(PREFIX)/lib $(PREFIX)/bin
  152 + -$(CP) *.h $(PREFIX)/include/cryptopp
  153 + -$(CP) *.a $(PREFIX)/lib
  154 + -$(CP) *.so $(PREFIX)/lib
  155 + -$(CP) *.exe $(PREFIX)/bin
  156 +
  157 +remove:
  158 + -$(RM) -rf $(PREFIX)/include/cryptopp
  159 + -$(RM) $(PREFIX)/lib/libcryptopp.a
  160 + -$(RM) $(PREFIX)/lib/libcryptopp.so
  161 + -$(RM) $(PREFIX)/bin/cryptest.exe
  162 +
  163 +libcryptopp.a: $(LIBOBJS)
  164 + $(AR) $(ARFLAGS) $@ $(LIBOBJS)
  165 + $(RANLIB) $@
  166 +
  167 +libcryptopp.so: $(LIBOBJS)
  168 + $(CXX) -shared -o $@ $(LIBOBJS)
  169 +
  170 +cryptest.exe: libcryptopp.a $(TESTOBJS)
  171 + $(CXX) -o $@ $(CXXFLAGS) $(TESTOBJS) ./libcryptopp.a $(LDFLAGS) $(LDLIBS)
  172 +
  173 +nolib: $(OBJS) # makes it faster to test changes
  174 + $(CXX) -o ct $(CXXFLAGS) $(OBJS) $(LDFLAGS) $(LDLIBS)
  175 +
  176 +dll: cryptest.import.exe dlltest.exe
  177 +
  178 +cryptopp.dll: $(DLLOBJS)
  179 + $(CXX) -shared -o $@ $(CXXFLAGS) $(DLLOBJS) $(LDFLAGS) $(LDLIBS) -Wl,--out-implib=libcryptopp.dll.a
  180 +
  181 +libcryptopp.import.a: $(LIBIMPORTOBJS)
  182 + $(AR) $(ARFLAGS) $@ $(LIBIMPORTOBJS)
  183 + $(RANLIB) $@
  184 +
  185 +cryptest.import.exe: cryptopp.dll libcryptopp.import.a $(TESTIMPORTOBJS)
  186 + $(CXX) -o $@ $(CXXFLAGS) $(TESTIMPORTOBJS) -L. -lcryptopp.dll -lcryptopp.import $(LDFLAGS) $(LDLIBS)
  187 +
  188 +dlltest.exe: cryptopp.dll $(DLLTESTOBJS)
  189 + $(CXX) -o $@ $(CXXFLAGS) $(DLLTESTOBJS) -L. -lcryptopp.dll $(LDFLAGS) $(LDLIBS)
  190 +
  191 +adhoc.cpp: adhoc.cpp.proto
  192 +ifeq ($(wildcard adhoc.cpp),)
  193 + cp adhoc.cpp.proto adhoc.cpp
  194 +else
  195 + touch adhoc.cpp
  196 +endif
  197 +
  198 +%.dllonly.o : %.cpp
  199 + $(CXX) $(CXXFLAGS) -DCRYPTOPP_DLL_ONLY -c $< -o $@
  200 +
  201 +%.import.o : %.cpp
  202 + $(CXX) $(CXXFLAGS) -DCRYPTOPP_IMPORTS -c $< -o $@
  203 +
  204 +%.export.o : %.cpp
  205 + $(CXX) $(CXXFLAGS) -DCRYPTOPP_EXPORTS -c $< -o $@
  206 +
  207 +%.o : %.cpp
  208 + $(CXX) $(CXXFLAGS) -c $<
cryptopp/License.txt 0 → 100644
  1 +++ a/cryptopp/License.txt
  1 +Compilation Copyright (c) 1995-2013 by Wei Dai. All rights reserved.
  2 +This copyright applies only to this software distribution package
  3 +as a compilation, and does not imply a copyright on any particular
  4 +file in the package.
  5 +
  6 +All individual files in this compilation are placed in the public domain by
  7 +Wei Dai and other contributors.
  8 +
  9 +I would like to thank the following authors for placing their works into
  10 +the public domain:
  11 +
  12 +Joan Daemen - 3way.cpp
  13 +Leonard Janke - cast.cpp, seal.cpp
  14 +Steve Reid - cast.cpp
  15 +Phil Karn - des.cpp
  16 +Andrew M. Kuchling - md2.cpp, md4.cpp
  17 +Colin Plumb - md5.cpp
  18 +Seal Woods - rc6.cpp
  19 +Chris Morgan - rijndael.cpp
  20 +Paulo Baretto - rijndael.cpp, skipjack.cpp, square.cpp
  21 +Richard De Moliner - safer.cpp
  22 +Matthew Skala - twofish.cpp
  23 +Kevin Springle - camellia.cpp, shacal2.cpp, ttmac.cpp, whrlpool.cpp, ripemd.cpp
  24 +Ronny Van Keer - sha3.cpp
  25 +
  26 +The Crypto++ Library (as a compilation) is currently licensed under the Boost
  27 +Software License 1.0 (http://www.boost.org/users/license.html).
  28 +
  29 +Boost Software License - Version 1.0 - August 17th, 2003
  30 +
  31 +Permission is hereby granted, free of charge, to any person or organization
  32 +obtaining a copy of the software and accompanying documentation covered by
  33 +this license (the "Software") to use, reproduce, display, distribute,
  34 +execute, and transmit the Software, and to prepare derivative works of the
  35 +Software, and to permit third-parties to whom the Software is furnished to
  36 +do so, all subject to the following:
  37 +
  38 +The copyright notices in the Software and this entire statement, including
  39 +the above license grant, this restriction and the following disclaimer,
  40 +must be included in all copies of the Software, in whole or in part, and
  41 +all derivative works of the Software, unless such copies or derivative
  42 +works are solely in the form of machine-executable object code generated by
  43 +a source language processor.
  44 +
  45 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  46 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  47 +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
  48 +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
  49 +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
  50 +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  51 +DEALINGS IN THE SOFTWARE.
0 \ No newline at end of file 52 \ No newline at end of file
cryptopp/Readme.txt 0 → 100644
  1 +++ a/cryptopp/Readme.txt
  1 +Crypto++: a C++ Class Library of Cryptographic Schemes
  2 +Version 5.6.2 - 2/20/2013
  3 +
  4 +Crypto++ Library is a free C++ class library of cryptographic schemes.
  5 +Currently the library contains the following algorithms:
  6 +
  7 + algorithm type name
  8 +
  9 + authenticated encryption schemes GCM, CCM, EAX
  10 +
  11 + high speed stream ciphers Panama, Sosemanuk, Salsa20, XSalsa20
  12 +
  13 + AES and AES candidates AES (Rijndael), RC6, MARS, Twofish, Serpent,
  14 + CAST-256
  15 +
  16 + IDEA, Triple-DES (DES-EDE2 and DES-EDE3),
  17 + other block ciphers Camellia, SEED, RC5, Blowfish, TEA, XTEA,
  18 + Skipjack, SHACAL-2
  19 +
  20 + block cipher modes of operation ECB, CBC, CBC ciphertext stealing (CTS),
  21 + CFB, OFB, counter mode (CTR)
  22 +
  23 + message authentication codes VMAC, HMAC, GMAC, CMAC, CBC-MAC, DMAC,
  24 + Two-Track-MAC
  25 +
  26 + SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and
  27 + hash functions SHA-512), SHA-3, Tiger, WHIRLPOOL, RIPEMD-128,
  28 + RIPEMD-256, RIPEMD-160, RIPEMD-320
  29 +
  30 + RSA, DSA, ElGamal, Nyberg-Rueppel (NR),
  31 + public-key cryptography Rabin-Williams (RW), LUC, LUCELG,
  32 + DLIES (variants of DHAES), ESIGN
  33 +
  34 + padding schemes for public-key PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363
  35 + systems EMSA2 and EMSA5
  36 +
  37 + Diffie-Hellman (DH), Unified Diffie-Hellman
  38 + key agreement schemes (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF,
  39 + XTR-DH
  40 +
  41 + elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV
  42 +
  43 + insecure or obsolescent MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL
  44 +algorithms retained for backwards 3.0, WAKE-OFB, DESX (DES-XEX3), RC2,
  45 + compatibility and historical SAFER, 3-WAY, GOST, SHARK, CAST-128, Square
  46 + value
  47 +
  48 +Other features include:
  49 +
  50 + * pseudo random number generators (PRNG): ANSI X9.17 appendix C, RandomPool
  51 + * password based key derivation functions: PBKDF1 and PBKDF2 from PKCS #5,
  52 + PBKDF from PKCS #12 appendix B
  53 + * Shamir's secret sharing scheme and Rabin's information dispersal algorithm
  54 + (IDA)
  55 + * fast multi-precision integer (bignum) and polynomial operations
  56 + * finite field arithmetics, including GF(p) and GF(2^n)
  57 + * prime number generation and verification
  58 + * useful non-cryptographic algorithms
  59 + + DEFLATE (RFC 1951) compression/decompression with gzip (RFC 1952) and
  60 + zlib (RFC 1950) format support
  61 + + hex, base-32, and base-64 coding/decoding
  62 + + 32-bit CRC and Adler32 checksum
  63 + * class wrappers for these operating system features (optional):
  64 + + high resolution timers on Windows, Unix, and Mac OS
  65 + + Berkeley and Windows style sockets
  66 + + Windows named pipes
  67 + + /dev/random, /dev/urandom, /dev/srandom
  68 + + Microsoft's CryptGenRandom on Windows
  69 + * A high level interface for most of the above, using a filter/pipeline
  70 + metaphor
  71 + * benchmarks and validation testing
  72 + * x86, x86-64 (x64), MMX, and SSE2 assembly code for the most commonly used
  73 + algorithms, with run-time CPU feature detection and code selection
  74 + * some versions are available in FIPS 140-2 validated form
  75 +
  76 +You are welcome to use it for any purpose without paying me, but see
  77 +License.txt for the fine print.
  78 +
  79 +The following compilers are supported for this release. Please visit
  80 +http://www.cryptopp.com the most up to date build instructions and porting notes.
  81 +
  82 + * MSVC 6.0 - 2010
  83 + * GCC 3.3 - 4.5
  84 + * C++Builder 2010
  85 + * Intel C++ Compiler 9 - 11.1
  86 + * Sun Studio 12u1, Express 11/08, Express 06/10
  87 +
  88 +*** Important Usage Notes ***
  89 +
  90 +1. If a constructor for A takes a pointer to an object B (except primitive
  91 +types such as int and char), then A owns B and will delete B at A's
  92 +destruction. If a constructor for A takes a reference to an object B,
  93 +then the caller retains ownership of B and should not destroy it until
  94 +A no longer needs it.
  95 +
  96 +2. Crypto++ is thread safe at the class level. This means you can use
  97 +Crypto++ safely in a multithreaded application, but you must provide
  98 +synchronization when multiple threads access a common Crypto++ object.
  99 +
  100 +*** MSVC-Specific Information ***
  101 +
  102 +On Windows, Crypto++ can be compiled into 3 forms: a static library
  103 +including all algorithms, a DLL with only FIPS Approved algorithms, and
  104 +a static library with only algorithms not in the DLL.
  105 +(FIPS Approved means Approved according to the FIPS 140-2 standard.)
  106 +The DLL may be used by itself, or it may be used together with the second
  107 +form of the static library. MSVC project files are included to build
  108 +all three forms, and sample applications using each of the three forms
  109 +are also included.
  110 +
  111 +To compile Crypto++ with MSVC, open the "cryptest.dsw" (for MSVC 6 and MSVC .NET
  112 +2003) or "cryptest.sln" (for MSVC 2005 - 2010) workspace file and build one or
  113 +more of the following projects:
  114 +
  115 +cryptopp - This builds the DLL. Please note that if you wish to use Crypto++
  116 + as a FIPS validated module, you must use a pre-built DLL that has undergone
  117 + the FIPS validation process instead of building your own.
  118 +dlltest - This builds a sample application that only uses the DLL.
  119 +cryptest Non-DLL-Import Configuration - This builds the full static library
  120 + along with a full test driver.
  121 +cryptest DLL-Import Configuration - This builds a static library containing
  122 + only algorithms not in the DLL, along with a full test driver that uses
  123 + both the DLL and the static library.
  124 +
  125 +To use the Crypto++ DLL in your application, #include "dll.h" before including
  126 +any other Crypto++ header files, and place the DLL in the same directory as
  127 +your .exe file. dll.h includes the line #pragma comment(lib, "cryptopp")
  128 +so you don't have to explicitly list the import library in your project
  129 +settings. To use a static library form of Crypto++, make the "cryptlib"
  130 +project a dependency of your application project, or specify it as
  131 +an additional library to link with in your project settings.
  132 +In either case you should check the compiler options to
  133 +make sure that the library and your application are using the same C++
  134 +run-time libraries and calling conventions.
  135 +
  136 +*** DLL Memory Management ***
  137 +
  138 +Because it's possible for the Crypto++ DLL to delete objects allocated
  139 +by the calling application, they must use the same C++ memory heap. Three
  140 +methods are provided to achieve this.
  141 +1. The calling application can tell Crypto++ what heap to use. This method
  142 + is required when the calling application uses a non-standard heap.
  143 +2. Crypto++ can tell the calling application what heap to use. This method
  144 + is required when the calling application uses a statically linked C++ Run
  145 + Time Library. (Method 1 does not work in this case because the Crypto++ DLL
  146 + is initialized before the calling application's heap is initialized.)
  147 +3. Crypto++ can automatically use the heap provided by the calling application's
  148 + dynamically linked C++ Run Time Library. The calling application must
  149 + make sure that the dynamically linked C++ Run Time Library is initialized
  150 + before Crypto++ is loaded. (At this time it is not clear if it is possible
  151 + to control the order in which DLLs are initialized on Windows 9x machines,
  152 + so it might be best to avoid using this method.)
  153 +
  154 +When Crypto++ attaches to a new process, it searches all modules loaded
  155 +into the process space for exported functions "GetNewAndDeleteForCryptoPP"
  156 +and "SetNewAndDeleteFromCryptoPP". If one of these functions is found,
  157 +Crypto++ uses methods 1 or 2, respectively, by calling the function.
  158 +Otherwise, method 3 is used.
  159 +
  160 +*** GCC-Specific Information ***
  161 +
  162 +A makefile is included for you to compile Crypto++ with GCC. Make sure
  163 +you are using GNU Make and GNU ld. The make process will produce two files,
  164 +libcryptopp.a and cryptest.exe. Run "cryptest.exe v" for the validation
  165 +suite.
  166 +
  167 +*** Documentation and Support ***
  168 +
  169 +Crypto++ is documented through inline comments in header files, which are
  170 +processed through Doxygen to produce an HTML reference manual. You can find
  171 +a link to the manual from http://www.cryptopp.com. Also at that site is
  172 +the Crypto++ FAQ, which you should browse through before attempting to
  173 +use this library, because it will likely answer many of questions that
  174 +may come up.
  175 +
  176 +If you run into any problems, please try the Crypto++ mailing list.
  177 +The subscription information and the list archive are available on
  178 +http://www.cryptopp.com. You can also email me directly by visiting
  179 +http://www.weidai.com, but you will probably get a faster response through
  180 +the mailing list.
  181 +
  182 +*** History ***
  183 +
  184 +1.0 - First public release. Withdrawn at the request of RSA DSI.
  185 + - included Blowfish, BBS, DES, DH, Diamond, DSA, ElGamal, IDEA,
  186 + MD5, RC4, RC5, RSA, SHA, WAKE, secret sharing, DEFLATE compression
  187 + - had a serious bug in the RSA key generation code.
  188 +
  189 +1.1 - Removed RSA, RC4, RC5
  190 + - Disabled calls to RSAREF's non-public functions
  191 + - Minor bugs fixed
  192 +
  193 +2.0 - a completely new, faster multiprecision integer class
  194 + - added MD5-MAC, HAVAL, 3-WAY, TEA, SAFER, LUC, Rabin, BlumGoldwasser,
  195 + elliptic curve algorithms
  196 + - added the Lucas strong probable primality test
  197 + - ElGamal encryption and signature schemes modified to avoid weaknesses
  198 + - Diamond changed to Diamond2 because of key schedule weakness
  199 + - fixed bug in WAKE key setup
  200 + - SHS class renamed to SHA
  201 + - lots of miscellaneous optimizations
  202 +
  203 +2.1 - added Tiger, HMAC, GOST, RIPE-MD160, LUCELG, LUCDIF, XOR-MAC,
  204 + OAEP, PSSR, SHARK
  205 + - added precomputation to DH, ElGamal, DSA, and elliptic curve algorithms
  206 + - added back RC5 and a new RSA
  207 + - optimizations in elliptic curves over GF(p)
  208 + - changed Rabin to use OAEP and PSSR
  209 + - changed many classes to allow copy constructors to work correctly
  210 + - improved exception generation and handling
  211 +
  212 +2.2 - added SEAL, CAST-128, Square
  213 + - fixed bug in HAVAL (padding problem)
  214 + - fixed bug in triple-DES (decryption order was reversed)
  215 + - fixed bug in RC5 (couldn't handle key length not a multiple of 4)
  216 + - changed HMAC to conform to RFC-2104 (which is not compatible
  217 + with the original HMAC)
  218 + - changed secret sharing and information dispersal to use GF(2^32)
  219 + instead of GF(65521)
  220 + - removed zero knowledge prover/verifier for graph isomorphism
  221 + - removed several utility classes in favor of the C++ standard library
  222 +
  223 +2.3 - ported to EGCS
  224 + - fixed incomplete workaround of min/max conflict in MSVC
  225 +
  226 +3.0 - placed all names into the "CryptoPP" namespace
  227 + - added MD2, RC2, RC6, MARS, RW, DH2, MQV, ECDHC, CBC-CTS
  228 + - added abstract base classes PK_SimpleKeyAgreementDomain and
  229 + PK_AuthenticatedKeyAgreementDomain
  230 + - changed DH and LUCDIF to implement the PK_SimpleKeyAgreementDomain
  231 + interface and to perform domain parameter and key validation
  232 + - changed interfaces of PK_Signer and PK_Verifier to sign and verify
  233 + messages instead of message digests
  234 + - changed OAEP to conform to PKCS#1 v2.0
  235 + - changed benchmark code to produce HTML tables as output
  236 + - changed PSSR to track IEEE P1363a
  237 + - renamed ElGamalSignature to NR and changed it to track IEEE P1363
  238 + - renamed ECKEP to ECMQVC and changed it to track IEEE P1363
  239 + - renamed several other classes for clarity
  240 + - removed support for calling RSAREF
  241 + - removed option to compile old SHA (SHA-0)
  242 + - removed option not to throw exceptions
  243 +
  244 +3.1 - added ARC4, Rijndael, Twofish, Serpent, CBC-MAC, DMAC
  245 + - added interface for querying supported key lengths of symmetric ciphers
  246 + and MACs
  247 + - added sample code for RSA signature and verification
  248 + - changed CBC-CTS to be compatible with RFC 2040
  249 + - updated SEAL to version 3.0 of the cipher specification
  250 + - optimized multiprecision squaring and elliptic curves over GF(p)
  251 + - fixed bug in MARS key setup
  252 + - fixed bug with attaching objects to Deflator
  253 +
  254 +3.2 - added DES-XEX3, ECDSA, DefaultEncryptorWithMAC
  255 + - renamed DES-EDE to DES-EDE2 and TripleDES to DES-EDE3
  256 + - optimized ARC4
  257 + - generalized DSA to allow keys longer than 1024 bits
  258 + - fixed bugs in GF2N and ModularArithmetic that can cause calculation errors
  259 + - fixed crashing bug in Inflator when given invalid inputs
  260 + - fixed endian bug in Serpent
  261 + - fixed padding bug in Tiger
  262 +
  263 +4.0 - added Skipjack, CAST-256, Panama, SHA-2 (SHA-256, SHA-384, and SHA-512),
  264 + and XTR-DH
  265 + - added a faster variant of Rabin's Information Dispersal Algorithm (IDA)
  266 + - added class wrappers for these operating system features:
  267 + - high resolution timers on Windows, Unix, and MacOS
  268 + - Berkeley and Windows style sockets
  269 + - Windows named pipes
  270 + - /dev/random and /dev/urandom on Linux and FreeBSD
  271 + - Microsoft's CryptGenRandom on Windows
  272 + - added support for SEC 1 elliptic curve key format and compressed points
  273 + - added support for X.509 public key format (subjectPublicKeyInfo) for
  274 + RSA, DSA, and elliptic curve schemes
  275 + - added support for DER and OpenPGP signature format for DSA
  276 + - added support for ZLIB compressed data format (RFC 1950)
  277 + - changed elliptic curve encryption to use ECIES (as defined in SEC 1)
  278 + - changed MARS key schedule to reflect the latest specification
  279 + - changed BufferedTransformation interface to support multiple channels
  280 + and messages
  281 + - changed CAST and SHA-1 implementations to use public domain source code
  282 + - fixed bug in StringSource
  283 + - optmized multi-precision integer code for better performance
  284 +
  285 +4.1 - added more support for the recommended elliptic curve parameters in SEC 2
  286 + - added Panama MAC, MARC4
  287 + - added IV stealing feature to CTS mode
  288 + - added support for PKCS #8 private key format for RSA, DSA, and elliptic
  289 + curve schemes
  290 + - changed Deflate, MD5, Rijndael, and Twofish to use public domain code
  291 + - fixed a bug with flushing compressed streams
  292 + - fixed a bug with decompressing stored blocks
  293 + - fixed a bug with EC point decompression using non-trinomial basis
  294 + - fixed a bug in NetworkSource::GeneralPump()
  295 + - fixed a performance issue with EC over GF(p) decryption
  296 + - fixed syntax to allow GCC to compile without -fpermissive
  297 + - relaxed some restrictions in the license
  298 +
  299 +4.2 - added support for longer HMAC keys
  300 + - added MD4 (which is not secure so use for compatibility purposes only)
  301 + - added compatibility fixes/workarounds for STLport 4.5, GCC 3.0.2,
  302 + and MSVC 7.0
  303 + - changed MD2 to use public domain code
  304 + - fixed a bug with decompressing multiple messages with the same object
  305 + - fixed a bug in CBC-MAC with MACing multiple messages with the same object
  306 + - fixed a bug in RC5 and RC6 with zero-length keys
  307 + - fixed a bug in Adler32 where incorrect checksum may be generated
  308 +
  309 +5.0 - added ESIGN, DLIES, WAKE-OFB, PBKDF1 and PBKDF2 from PKCS #5
  310 + - added key validation for encryption and signature public/private keys
  311 + - renamed StreamCipher interface to SymmetricCipher, which is now implemented
  312 + by both stream ciphers and block cipher modes including ECB and CBC
  313 + - added keying interfaces to support resetting of keys and IVs without
  314 + having to destroy and recreate objects
  315 + - changed filter interface to support non-blocking input/output
  316 + - changed SocketSource and SocketSink to use overlapped I/O on Microsoft Windows
  317 + - grouped related classes inside structs to help templates, for example
  318 + AESEncryption and AESDecryption are now AES::Encryption and AES::Decryption
  319 + - where possible, typedefs have been added to improve backwards
  320 + compatibility when the CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY macro is defined
  321 + - changed Serpent, HAVAL and IDEA to use public domain code
  322 + - implemented SSE2 optimizations for Integer operations
  323 + - fixed a bug in HMAC::TruncatedFinal()
  324 + - fixed SKIPJACK byte ordering following NIST clarification dated 5/9/02
  325 +
  326 +5.01 - added known answer test for X9.17 RNG in FIPS 140 power-up self test
  327 + - submitted to NIST/CSE, but not publicly released
  328 +
  329 +5.02 - changed EDC test to MAC integrity check using HMAC/SHA1
  330 + - improved performance of integrity check
  331 + - added blinding to defend against RSA timing attack
  332 +
  333 +5.03 - created DLL version of Crypto++ for FIPS 140-2 validation
  334 + - fixed vulnerabilities in GetNextIV for CTR and OFB modes
  335 +
  336 +5.0.4 - Removed DES, SHA-256, SHA-384, SHA-512 from DLL
  337 +
  338 +5.1 - added PSS padding and changed PSSR to track IEEE P1363a draft standard
  339 + - added blinding for RSA and Rabin to defend against timing attacks
  340 + on decryption operations
  341 + - changed signing and decryption APIs to support the above
  342 + - changed WaitObjectContainer to allow waiting for more than 64
  343 + objects at a time on Win32 platforms
  344 + - fixed a bug in CBC and ECB modes with processing non-aligned data
  345 + - fixed standard conformance bugs in DLIES (DHAES mode) and RW/EMSA2
  346 + signature scheme (these fixes are not backwards compatible)
  347 + - fixed a number of compiler warnings, minor bugs, and portability problems
  348 + - removed Sapphire
  349 +
  350 +5.2 - merged in changes for 5.01 - 5.0.4
  351 + - added support for using encoding parameters and key derivation parameters
  352 + with public key encryption (implemented by OAEP and DL/ECIES)
  353 + - added Camellia, SHACAL-2, Two-Track-MAC, Whirlpool, RIPEMD-320,
  354 + RIPEMD-128, RIPEMD-256, Base-32 coding, FIPS variant of CFB mode
  355 + - added ThreadUserTimer for timing thread CPU usage
  356 + - added option for password-based key derivation functions
  357 + to iterate until a mimimum elapsed thread CPU time is reached
  358 + - added option (on by default) for DEFLATE compression to detect
  359 + uncompressible files and process them more quickly
  360 + - improved compatibility and performance on 64-bit platforms,
  361 + including Alpha, IA-64, x86-64, PPC64, Sparc64, and MIPS64
  362 + - fixed ONE_AND_ZEROS_PADDING to use 0x80 instead 0x01 as padding.
  363 + - fixed encoding/decoding of PKCS #8 privateKeyInfo to properly
  364 + handle optional attributes
  365 +
  366 +5.2.1 - fixed bug in the "dlltest" DLL testing program
  367 + - fixed compiling with STLport using VC .NET
  368 + - fixed compiling with -fPIC using GCC
  369 + - fixed compiling with -msse2 on systems without memalign()
  370 + - fixed inability to instantiate PanamaMAC
  371 + - fixed problems with inline documentation
  372 +
  373 +5.2.2 - added SHA-224
  374 + - put SHA-256, SHA-384, SHA-512, RSASSA-PSS into DLL
  375 +
  376 +5.2.3 - fixed issues with FIPS algorithm test vectors
  377 + - put RSASSA-ISO into DLL
  378 +
  379 +5.3 - ported to MSVC 2005 with support for x86-64
  380 + - added defense against AES timing attacks, and more AES test vectors
  381 + - changed StaticAlgorithmName() of Rijndael to "AES", CTR to "CTR"
  382 +
  383 +5.4 - added Salsa20
  384 + - updated Whirlpool to version 3.0
  385 + - ported to GCC 4.1, Sun C++ 5.8, and Borland C++Builder 2006
  386 +
  387 +5.5 - added VMAC and Sosemanuk (with x86-64 and SSE2 assembly)
  388 + - improved speed of integer arithmetic, AES, SHA-512, Tiger, Salsa20,
  389 + Whirlpool, and PANAMA cipher using assembly (x86-64, MMX, SSE2)
  390 + - optimized Camellia and added defense against timing attacks
  391 + - updated benchmarks code to show cycles per byte and to time key/IV setup
  392 + - started using OpenMP for increased multi-core speed
  393 + - enabled GCC optimization flags by default in GNUmakefile
  394 + - added blinding and computational error checking for RW signing
  395 + - changed RandomPool, X917RNG, GetNextIV, DSA/NR/ECDSA/ECNR to reduce
  396 + the risk of reusing random numbers and IVs after virtual machine state
  397 + rollback
  398 + - changed default FIPS mode RNG from AutoSeededX917RNG<DES_EDE3> to
  399 + AutoSeededX917RNG<AES>
  400 + - fixed PANAMA cipher interface to accept 256-bit key and 256-bit IV
  401 + - moved MD2, MD4, MD5, PanamaHash, ARC4, WAKE_CFB into the namespace "Weak"
  402 + - removed HAVAL, MD5-MAC, XMAC
  403 +
  404 +5.5.1 - fixed VMAC validation failure on 32-bit big-endian machines
  405 +
  406 +5.5.2 - ported x64 assembly language code for AES, Salsa20, Sosemanuk, and Panama
  407 + to MSVC 2005 (using MASM since MSVC doesn't support inline assembly on x64)
  408 + - fixed Salsa20 initialization crash on non-SSE2 machines
  409 + - fixed Whirlpool crash on Pentium 2 machines
  410 + - fixed possible branch prediction analysis (BPA) vulnerability in
  411 + MontgomeryReduce(), which may affect security of RSA, RW, LUC
  412 + - fixed link error with MSVC 2003 when using "debug DLL" form of runtime library
  413 + - fixed crash in SSE2_Add on P4 machines when compiled with
  414 + MSVC 6.0 SP5 with Processor Pack
  415 + - ported to MSVC 2008, GCC 4.2, Sun CC 5.9, Intel C++ Compiler 10.0,
  416 + and Borland C++Builder 2007
  417 +
  418 +5.6.0 - added AuthenticatedSymmetricCipher interface class and Filter wrappers
  419 + - added CCM, GCM (with SSE2 assembly), EAX, CMAC, XSalsa20, and SEED
  420 + - added support for variable length IVs
  421 + - added OIDs for Brainpool elliptic curve parameters
  422 + - improved AES and SHA-256 speed on x86 and x64
  423 + - changed BlockTransformation interface to no longer assume data alignment
  424 + - fixed incorrect VMAC computation on message lengths
  425 + that are >64 mod 128 (x86 assembly version is not affected)
  426 + - fixed compiler error in vmac.cpp on x86 with GCC -fPIC
  427 + - fixed run-time validation error on x86-64 with GCC 4.3.2 -O2
  428 + - fixed HashFilter bug when putMessage=true
  429 + - fixed AES-CTR data alignment bug that causes incorrect encryption on ARM
  430 + - removed WORD64_AVAILABLE; compiler support for 64-bit int is now required
  431 + - ported to GCC 4.3, C++Builder 2009, Sun CC 5.10, Intel C++ Compiler 11
  432 +
  433 +5.6.1 - added support for AES-NI and CLMUL instruction sets in AES and GMAC/GCM
  434 + - removed WAKE-CFB
  435 + - fixed several bugs in the SHA-256 x86/x64 assembly code:
  436 + * incorrect hash on non-SSE2 x86 machines on non-aligned input
  437 + * incorrect hash on x86 machines when input crosses 0x80000000
  438 + * incorrect hash on x64 when compiled with GCC with optimizations enabled
  439 + - fixed bugs in AES x86 and x64 assembly causing crashes in some MSVC build configurations
  440 + - switched to a public domain implementation of MARS
  441 + - ported to MSVC 2010, GCC 4.5.1, Sun Studio 12u1, C++Builder 2010, Intel C++ Compiler 11.1
  442 + - renamed the MSVC DLL project to "cryptopp" for compatibility with MSVC 2010
  443 +
  444 +5.6.2 - changed license to Boost Software License 1.0
  445 + - added SHA-3 (Keccak)
  446 + - updated DSA to FIPS 186-3 (see DSA2 class)
  447 + - fixed Blowfish minimum keylength to be 4 bytes (32 bits)
  448 + - fixed Salsa validation failure when compiling with GCC 4.6
  449 + - fixed infinite recursion when on x64, assembly disabled, and no AESNI
  450 + - ported to MSVC 2012, GCC 4.7, Clang 3.2, Solaris Studio 12.3, Intel C++ Compiler 13.0
  451 +
  452 +Written by Wei Dai
cryptopp/TestData/3desval.dat 0 → 100644
  1 +++ a/cryptopp/TestData/3desval.dat
  1 +0123456789abcdeffedcba9876543210 0123456789abcde7 7f1d0a77826b8aff
  2 +0123456789abcdeffedcba987654321089abcdef01234567 0123456789abcde7 de0b7c06ae5e0ed5
  3 +0123456789ABCDEF01010101010101011011121314151617 94DBE082549A14EF 9011121314151617
cryptopp/TestData/3wayval.dat 0 → 100644
  1 +++ a/cryptopp/TestData/3wayval.dat
  1 +000000000000000000000000 000000010000000100000001 4059c76e83ae9dc4ad21ecf7
  2 +000000060000000500000004 000000030000000200000001 d2f05b5ed6144138cab920cd
  3 +def01234456789abbcdef012 234567899abcdef001234567 0aa55dbb9cdddb6d7cdb76b2
  4 +d2f05b5ed6144138cab920cd 4059c76e83ae9dc4ad21ecf7 478ea8716b13f17c15b155ed
  5 +
cryptopp/TestData/camellia.dat 0 → 100644
  1 +++ a/cryptopp/TestData/camellia.dat
  1 +0123456789ABCDEFFEDCBA9876543210 0123456789ABCDEFFEDCBA9876543210 67673138549669730857065648EABE43
  2 +80000000000000000000000000000000 00000000000000000000000000000000 6C227F749319A3AA7DA235A9BBA05A2C
  3 +00000000000000000000000000000001 00000000000000000000000000000000 41E0E6DC2DDEC65D8B8120E60977B82D
  4 +00000000000000000000000000000000 80000000000000000000000000000000 07923A39EB0A817D1C4D87BDB82D1F1C
  5 +00000000000000000000000000000000 00000000000000000000000000000001 F5574ACC3148DFCB9015200631024DF9
  6 +00000000000000000000000000000000 00000000000000000000000000000000 3D028025B156327C17F762C1F2CBCA71
  7 +01010101010101010101010101010101 01010101010101010101010101010101 637084CB1120D6F25DB618893040AA27
  8 +02020202020202020202020202020202 02020202020202020202020202020202 612834AAC9EF906BAEAA076E1C75179D
  9 +04040404040404040404040404040404 04040404040404040404040404040404 B24FAF8A579E4EFE986571FB2F68B5B4
  10 +08080808080808080808080808080808 08080808080808080808080808080808 3E5CAFBB70545AABB1109293A1C44C14
  11 +10101010101010101010101010101010 10101010101010101010101010101010 E1FA5FD3F40B766BBE3DF469AF41B420
  12 +20202020202020202020202020202020 20202020202020202020202020202020 7E724027BB2F591C63254D936FCC4B43
  13 +40404040404040404040404040404040 40404040404040404040404040404040 538ADCBE104A3483B3C2A3D8CE72FBD6
  14 +80808080808080808080808080808080 80808080808080808080808080808080 AA7627F70F6B54C217C3EF232D362459
  15 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 25DD9EB9DD67FBC6E8431F56F4FBE651
  16 +0123456789ABCDEFFEDCBA98765432100011223344556677 0123456789ABCDEFFEDCBA9876543210 B4993401B3E996F84EE5CEE7D79B09B9
  17 +800000000000000000000000000000000000000000000000 00000000000000000000000000000000 1B6220D365C2176C1D41A5826520FCA1
  18 +000000000000000000000000000000000000000000000001 00000000000000000000000000000000 E37577F71E0E643C4D3F55219ABA1394
  19 +000000000000000000000000000000000000000000000000 80000000000000000000000000000000 3EB6CC5618EFC98455B5992050D474E7
  20 +000000000000000000000000000000000000000000000000 00000000000000000000000000000001 BA9AE89FDDCE4B51131E17C4D65CE587
  21 +000000000000000000000000000000000000000000000000 00000000000000000000000000000000 56E1E129CA5C02C7F9AC6AFDEF86ADC3
  22 +010101010101010101010101010101010101010101010101 01010101010101010101010101010101 8F764397C10BE84BA876CEEFA4225BFF
  23 +020202020202020202020202020202020202020202020202 02020202020202020202020202020202 60B00674BFD444D07B5A19851E6151CD
  24 +040404040404040404040404040404040404040404040404 04040404040404040404040404040404 81B26FF4F6B4377CC555873504B3A38B
  25 +080808080808080808080808080808080808080808080808 08080808080808080808080808080808 A2AA1C6693DC2B70D75C9B39B9B214D0
  26 +101010101010101010101010101010101010101010101010 10101010101010101010101010101010 A907BFDAEEF8C81D05855235E8D3BE08
  27 +202020202020202020202020202020202020202020202020 20202020202020202020202020202020 87F8EA30332036F17CEAC0097CE33BC1
  28 +404040404040404040404040404040404040404040404040 40404040404040404040404040404040 A2C32EA499E41A248565253BACC11E3B
  29 +808080808080808080808080808080808080808080808080 80808080808080808080808080808080 F602BA7F515B082983B8F7A27F92408F
  30 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3F8D5676F51CE23DC3BDB627F8B3883E
  31 +0123456789ABCDEFFEDCBA987654321000112233445566778899AABBCCDDEEFF 0123456789ABCDEFFEDCBA9876543210 9ACC237DFF16D76C20EF7C919E3A7509
  32 +8000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000 2136FABDA091DFB5171B94B8EFBB5D08
  33 +0000000000000000000000000000000000000000000000000000000000000001 00000000000000000000000000000000 AFCD38B195E0A736304E89B9AE3019D3
  34 +0000000000000000000000000000000000000000000000000000000000000000 80000000000000000000000000000000 B0C6B88AEA518AB09E847248E91B1B9D
  35 +0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000001 9CDB269B5D293BC5DB9C55B057D9B591
  36 +0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000 396154111ADEFC500CF6E5C99038BC17
  37 +0101010101010101010101010101010101010101010101010101010101010101 01010101010101010101010101010101 438D0C2E7E86869B56EBA23B66086A01
  38 +0202020202020202020202020202020202020202020202020202020202020202 02020202020202020202020202020202 D4F553BFA794F55EF3B7A578629F6DEA
  39 +0404040404040404040404040404040404040404040404040404040404040404 04040404040404040404040404040404 5E858730ABC9823A93CA4CAB67F0B423
  40 +0808080808080808080808080808080808080808080808080808080808080808 08080808080808080808080808080808 F9A9C1540AE1B314DBEDF9A49054DC9D
  41 +1010101010101010101010101010101010101010101010101010101010101010 10101010101010101010101010101010 6693FC130669F194F81E8D175194DDA2
  42 +2020202020202020202020202020202020202020202020202020202020202020 20202020202020202020202020202020 F3E1FDA6B9C8314799F4654C29F1C690
  43 +4040404040404040404040404040404040404040404040404040404040404040 40404040404040404040404040404040 4A30476F1141FBF303ED63FCD3CB0536
  44 +8080808080808080808080808080808080808080808080808080808080808080 80808080808080808080808080808080 0C765AA494E048FC8BB23139F2124CB6
  45 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 4F05F28CA23EEAE205B67B1C95CD5280
cryptopp/TestData/cast128v.dat 0 → 100644
  1 +++ a/cryptopp/TestData/cast128v.dat
  1 +01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A
  2 +01 23 45 67 89 AB CD EF
  3 +23 8B 4F E5 84 7E 44 B2
  4 +
  5 +01 23 45 67 12 34 56 78 23 45
  6 +01 23 45 67 89 AB CD EF
  7 +EB 6A 71 1A 2C 02 27 1B
  8 +
  9 +01 23 45 67 12
  10 +01 23 45 67 89 AB CD EF
  11 +7A C8 16 D1 6E 9B 30 2E
cryptopp/TestData/cast256v.dat 0 → 100644
  1 +++ a/cryptopp/TestData/cast256v.dat
  1 +2342bb9efa38542c0af75647f29f615d
  2 +00000000000000000000000000000000
  3 +c842a08972b43d20836c91d1b7530f6b
  4 +
  5 +2342bb9efa38542cbed0ac83940ac298bac77a7717942863
  6 +00000000000000000000000000000000
  7 +1b386c0210dcadcbdd0e41aa08a7a7e8
  8 +
  9 +2342bb9efa38542cbed0ac83940ac2988d7c47ce264908461cc1b5137ae6b604
  10 +00000000000000000000000000000000
  11 +4f6a2038286897b9c9870136553317fa
cryptopp/TestData/descert.dat 0 → 100644
  1 +++ a/cryptopp/TestData/descert.dat
  1 +0101010101010101 95F8A5E5DD31D900 8000000000000000
  2 +0101010101010101 DD7F121CA5015619 4000000000000000
  3 +0101010101010101 2E8653104F3834EA 2000000000000000
  4 +0101010101010101 4BD388FF6CD81D4F 1000000000000000
  5 +0101010101010101 20B9E767B2FB1456 0800000000000000
  6 +0101010101010101 55579380D77138EF 0400000000000000
  7 +0101010101010101 6CC5DEFAAF04512F 0200000000000000
  8 +0101010101010101 0D9F279BA5D87260 0100000000000000
  9 +0101010101010101 D9031B0271BD5A0A 0080000000000000
  10 +0101010101010101 424250B37C3DD951 0040000000000000
  11 +0101010101010101 B8061B7ECD9A21E5 0020000000000000
  12 +0101010101010101 F15D0F286B65BD28 0010000000000000
  13 +0101010101010101 ADD0CC8D6E5DEBA1 0008000000000000
  14 +0101010101010101 E6D5F82752AD63D1 0004000000000000
  15 +0101010101010101 ECBFE3BD3F591A5E 0002000000000000
  16 +0101010101010101 F356834379D165CD 0001000000000000
  17 +0101010101010101 2B9F982F20037FA9 0000800000000000
  18 +0101010101010101 889DE068A16F0BE6 0000400000000000
  19 +0101010101010101 E19E275D846A1298 0000200000000000
  20 +0101010101010101 329A8ED523D71AEC 0000100000000000
  21 +0101010101010101 E7FCE22557D23C97 0000080000000000
  22 +0101010101010101 12A9F5817FF2D65D 0000040000000000
  23 +0101010101010101 A484C3AD38DC9C19 0000020000000000
  24 +0101010101010101 FBE00A8A1EF8AD72 0000010000000000
  25 +0101010101010101 750D079407521363 0000008000000000
  26 +0101010101010101 64FEED9C724C2FAF 0000004000000000
  27 +0101010101010101 F02B263B328E2B60 0000002000000000
  28 +0101010101010101 9D64555A9A10B852 0000001000000000
  29 +0101010101010101 D106FF0BED5255D7 0000000800000000
  30 +0101010101010101 E1652C6B138C64A5 0000000400000000
  31 +0101010101010101 E428581186EC8F46 0000000200000000
  32 +0101010101010101 AEB5F5EDE22D1A36 0000000100000000
  33 +0101010101010101 E943D7568AEC0C5C 0000000080000000
  34 +0101010101010101 DF98C8276F54B04B 0000000040000000
  35 +0101010101010101 B160E4680F6C696F 0000000020000000
  36 +0101010101010101 FA0752B07D9C4AB8 0000000010000000
  37 +0101010101010101 CA3A2B036DBC8502 0000000008000000
  38 +0101010101010101 5E0905517BB59BCF 0000000004000000
  39 +0101010101010101 814EEB3B91D90726 0000000002000000
  40 +0101010101010101 4D49DB1532919C9F 0000000001000000
  41 +0101010101010101 25EB5FC3F8CF0621 0000000000800000
  42 +0101010101010101 AB6A20C0620D1C6F 0000000000400000
  43 +0101010101010101 79E90DBC98F92CCA 0000000000200000
  44 +0101010101010101 866ECEDD8072BB0E 0000000000100000
  45 +0101010101010101 8B54536F2F3E64A8 0000000000080000
  46 +0101010101010101 EA51D3975595B86B 0000000000040000
  47 +0101010101010101 CAFFC6AC4542DE31 0000000000020000
  48 +0101010101010101 8DD45A2DDF90796C 0000000000010000
  49 +0101010101010101 1029D55E880EC2D0 0000000000008000
  50 +0101010101010101 5D86CB23639DBEA9 0000000000004000
  51 +0101010101010101 1D1CA853AE7C0C5F 0000000000002000
  52 +0101010101010101 CE332329248F3228 0000000000001000
  53 +0101010101010101 8405D1ABE24FB942 0000000000000800
  54 +0101010101010101 E643D78090CA4207 0000000000000400
  55 +0101010101010101 48221B9937748A23 0000000000000200
  56 +0101010101010101 DD7C0BBD61FAFD54 0000000000000100
  57 +0101010101010101 2FBC291A570DB5C4 0000000000000080
  58 +0101010101010101 E07C30D7E4E26E12 0000000000000040
  59 +0101010101010101 0953E2258E8E90A1 0000000000000020
  60 +0101010101010101 5B711BC4CEEBF2EE 0000000000000010
  61 +0101010101010101 CC083F1E6D9E85F6 0000000000000008
  62 +0101010101010101 D2FD8867D50D2DFE 0000000000000004
  63 +0101010101010101 06E7EA22CE92708F 0000000000000002
  64 +0101010101010101 166B40B44ABA4BD6 0000000000000001
  65 +8001010101010101 0000000000000000 95A8D72813DAA94D
  66 +4001010101010101 0000000000000000 0EEC1487DD8C26D5
  67 +2001010101010101 0000000000000000 7AD16FFB79C45926
  68 +1001010101010101 0000000000000000 D3746294CA6A6CF3
  69 +0801010101010101 0000000000000000 809F5F873C1FD761
  70 +0401010101010101 0000000000000000 C02FAFFEC989D1FC
  71 +0201010101010101 0000000000000000 4615AA1D33E72F10
  72 +0180010101010101 0000000000000000 2055123350C00858
  73 +0140010101010101 0000000000000000 DF3B99D6577397C8
  74 +0120010101010101 0000000000000000 31FE17369B5288C9
  75 +0110010101010101 0000000000000000 DFDD3CC64DAE1642
  76 +0108010101010101 0000000000000000 178C83CE2B399D94
  77 +0104010101010101 0000000000000000 50F636324A9B7F80
  78 +0102010101010101 0000000000000000 A8468EE3BC18F06D
  79 +0101800101010101 0000000000000000 A2DC9E92FD3CDE92
  80 +0101400101010101 0000000000000000 CAC09F797D031287
  81 +0101200101010101 0000000000000000 90BA680B22AEB525
  82 +0101100101010101 0000000000000000 CE7A24F350E280B6
  83 +0101080101010101 0000000000000000 882BFF0AA01A0B87
  84 +0101040101010101 0000000000000000 25610288924511C2
  85 +0101020101010101 0000000000000000 C71516C29C75D170
  86 +0101018001010101 0000000000000000 5199C29A52C9F059
  87 +0101014001010101 0000000000000000 C22F0A294A71F29F
  88 +0101012001010101 0000000000000000 EE371483714C02EA
  89 +0101011001010101 0000000000000000 A81FBD448F9E522F
  90 +0101010801010101 0000000000000000 4F644C92E192DFED
  91 +0101010401010101 0000000000000000 1AFA9A66A6DF92AE
  92 +0101010201010101 0000000000000000 B3C1CC715CB879D8
  93 +0101010180010101 0000000000000000 19D032E64AB0BD8B
  94 +0101010140010101 0000000000000000 3CFAA7A7DC8720DC
  95 +0101010120010101 0000000000000000 B7265F7F447AC6F3
  96 +0101010110010101 0000000000000000 9DB73B3C0D163F54
  97 +0101010108010101 0000000000000000 8181B65BABF4A975
  98 +0101010104010101 0000000000000000 93C9B64042EAA240
  99 +0101010102010101 0000000000000000 5570530829705592
  100 +0101010101800101 0000000000000000 8638809E878787A0
  101 +0101010101400101 0000000000000000 41B9A79AF79AC208
  102 +0101010101200101 0000000000000000 7A9BE42F2009A892
  103 +0101010101100101 0000000000000000 29038D56BA6D2745
  104 +0101010101080101 0000000000000000 5495C6ABF1E5DF51
  105 +0101010101040101 0000000000000000 AE13DBD561488933
  106 +0101010101020101 0000000000000000 024D1FFA8904E389
  107 +0101010101018001 0000000000000000 D1399712F99BF02E
  108 +0101010101014001 0000000000000000 14C1D7C1CFFEC79E
  109 +0101010101012001 0000000000000000 1DE5279DAE3BED6F
  110 +0101010101011001 0000000000000000 E941A33F85501303
  111 +0101010101010801 0000000000000000 DA99DBBC9A03F379
  112 +0101010101010401 0000000000000000 B7FC92F91D8E92E9
  113 +0101010101010201 0000000000000000 AE8E5CAA3CA04E85
  114 +0101010101010180 0000000000000000 9CC62DF43B6EED74
  115 +0101010101010140 0000000000000000 D863DBB5C59A91A0
  116 +0101010101010120 0000000000000000 A1AB2190545B91D7
  117 +0101010101010110 0000000000000000 0875041E64C570F7
  118 +0101010101010108 0000000000000000 5A594528BEBEF1CC
  119 +0101010101010104 0000000000000000 FCDB3291DE21F0C0
  120 +0101010101010102 0000000000000000 869EFD7F9F265A09
  121 +1046913489980131 0000000000000000 88D55E54F54C97B4
  122 +1007103489988020 0000000000000000 0C0CC00C83EA48FD
  123 +10071034C8980120 0000000000000000 83BC8EF3A6570183
  124 +1046103489988020 0000000000000000 DF725DCAD94EA2E9
  125 +1086911519190101 0000000000000000 E652B53B550BE8B0
  126 +1086911519580101 0000000000000000 AF527120C485CBB0
  127 +5107B01519580101 0000000000000000 0F04CE393DB926D5
  128 +1007B01519190101 0000000000000000 C9F00FFC74079067
  129 +3107915498080101 0000000000000000 7CFD82A593252B4E
  130 +3107919498080101 0000000000000000 CB49A2F9E91363E3
  131 +10079115B9080140 0000000000000000 00B588BE70D23F56
  132 +3107911598090140 0000000000000000 406A9A6AB43399AE
  133 +1007D01589980101 0000000000000000 6CB773611DCA9ADA
  134 +9107911589980101 0000000000000000 67FD21C17DBB5D70
  135 +9107D01589190101 0000000000000000 9592CB4110430787
  136 +1007D01598980120 0000000000000000 A6B7FF68A318DDD3
  137 +1007940498190101 0000000000000000 4D102196C914CA16
  138 +0107910491190401 0000000000000000 2DFA9F4573594965
  139 +0107910491190101 0000000000000000 B46604816C0E0774
  140 +0107940491190401 0000000000000000 6E7E6221A4F34E87
  141 +19079210981A0101 0000000000000000 AA85E74643233199
  142 +1007911998190801 0000000000000000 2E5A19DB4D1962D6
  143 +10079119981A0801 0000000000000000 23A866A809D30894
  144 +1007921098190101 0000000000000000 D812D961F017D320
  145 +100791159819010B 0000000000000000 055605816E58608F
  146 +1004801598190101 0000000000000000 ABD88E8B1B7716F1
  147 +1004801598190102 0000000000000000 537AC95BE69DA1E1
  148 +1004801598190108 0000000000000000 AED0F6AE3C25CDD8
  149 +1002911598100104 0000000000000000 B3E35A5EE53E7B8D
  150 +1002911598190104 0000000000000000 61C79C71921A2EF8
  151 +1002911598100201 0000000000000000 E2F5728F0995013C
  152 +1002911698100101 0000000000000000 1AEAC39A61F0A464
  153 +7CA110454A1A6E57 01A1D6D039776742 690F5B0D9A26939B
  154 +0131D9619DC1376E 5CD54CA83DEF57DA 7A389D10354BD271
  155 +07A1133E4A0B2686 0248D43806F67172 868EBB51CAB4599A
  156 +3849674C2602319E 51454B582DDF440A 7178876E01F19B2A
  157 +04B915BA43FEB5B6 42FD443059577FA2 AF37FB421F8C4095
  158 +0113B970FD34F2CE 059B5E0851CF143A 86A560F10EC6D85B
  159 +0170F175468FB5E6 0756D8E0774761D2 0CD3DA020021DC09
  160 +43297FAD38E373FE 762514B829BF486A EA676B2CB7DB2B7A
  161 +07A7137045DA2A16 3BDD119049372802 DFD64A815CAF1A0F
  162 +04689104C2FD3B2F 26955F6835AF609A 5C513C9C4886C088
  163 +37D06BB516CB7546 164D5E404F275232 0A2AEEAE3FF4AB77
  164 +1F08260D1AC2465E 6B056E18759F5CCA EF1BF03E5DFA575A
  165 +584023641ABA6176 004BD6EF09176062 88BF0DB6D70DEE56
  166 +025816164629B007 480D39006EE762F2 A1F9915541020B56
  167 +49793EBC79B3258F 437540C8698F3CFA 6FBF1CAFCFFD0556
  168 +4FB05E1515AB73A7 072D43A077075292 2F22E49BAB7CA1AC
  169 +49E95D6D4CA229BF 02FE55778117F12A 5A6B612CC26CCE4A
  170 +018310DC409B26D6 1D9D5C5018F728C2 5F4C038ED12B2E41
  171 +1C587F1C13924FEF 305532286D6F295A 63FAC0D034D9F793
cryptopp/TestData/dh1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/dh1024.dat
  1 +30818702818100DA9A18547FF03B385CC16508C173A7EF4EB61CB40EF8FEF3B31F145051676166BCDC3FE6B799FC394D08C26385F9413F896E09117E46209D6923602683CEA100924A6EE695281775C619DAA94EA8CB3691B4275B0183F1D39639EBC92995FE645D6C1BC28D409E585549BBD2C5DCDD6C208B04EADD8B7A6D997F72CBAD88390F020102
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/dh2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/dh2048.dat
  1 +308201080282010100EB60DBD494AAFBCD2EAC6A36DB8E7DD4A2A64512A5BBB15B9BFB581C7C1CAFB647D4612973C3770C2166D75EEA695F67EA8261557591DB78BCF5A886AA5294F3AEE4D25B57C8EE8C7FE8DBF70C132CD7FFCB6F89426F807F552C5DAE2FB1F329E340094E4B30D8EF6265AB4D350E9837B151C86AC524DE4E1FC04746C668BE318275E420D51AEDDFBDF887D435CDEEF6AC81293DB45287132F8236A43AD8F4D6642D7CA6732DA06A1DE008259008C9D74403B68ADAC788CF8AB5BEFFC310DCCCD32901D1F290E5B7A993D2CF6A652AF81B6DA0FD2E70678D1AE086150E41444522F20621195AD2A1F0975652B4AF7DE5261A9FD46B9EA8B443641F3BBA695B9B020103
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/dlie1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/dlie1024.dat
  1 +308201370201003082011706072A8648CE3804013082010A02818100D4EC6B7A18416519C76766726B3D2D5F054D107B30E97691B15EB0DCDF452B77F10E12C14450AB107BE349C2DF3A2DBD9D844A24ABA21B328D568E8EC6B959E70BADE5C49879AE4447F643360523469B55AFDC459B45634F657AA79918772F2BA9508ACD43C95C16650A1251B8173EBA1B9B59FE8C57F6240EA49A4FE8855CEF0281806A7635BD0C20B28CE3B3B339359E96AF82A6883D9874BB48D8AF586E6FA295BBF8870960A22855883DF1A4E16F9D16DECEC2251255D10D9946AB4747635CACF385D6F2E24C3CD72223FB219B0291A34DAAD7EE22CDA2B1A7B2BD53CC8C3B9795D4A84566A1E4AE0B32850928DC0B9F5D0DCDACFF462BFB1207524D27F442AE77020102041702150C9C14EEFA749DCE9A2A4B7065768767BA48BBB62F
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/dlie2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/dlie2048.dat
  1 +308202410201003082021906072A8648CE3804013082020C0282010100A8E87254E7F56CB5857786364ACC39F2A0F79FFF8ED6C62C64EE45FC1C775CDDBFD9CBCEF8262DBD2CECE4E5AFECA239B9B4B7D3CBA228366500F5B2203CA6C0CB0AB6698F73921B4831BA598DFA8268A07368A64774C77808AB7CB7978F839304B10567F8C9C34F8DBDB66BB928EDE6327773AA6C20A8F4E9C2AE0C66A0516E057BBC87760CF39270726F1863260CD5ADDAF366318E7029851A6F85B2349DF29629319A3662354DBCAD0789D02AC6BD804C06523900166501041963BD7EFFE0069694A54F4542172A29B1F09D26E3F052AE5274A898058BE549650BC2066DDFDB84D582E6503AF42BCB2B674F2A2A77C54678FD622FFCA2D9718BF8B0525AEF028201005474392A73FAB65AC2BBC31B25661CF9507BCFFFC76B6316327722FE0E3BAE6EDFECE5E77C1316DE96767272D7F6511CDCDA5BE9E5D1141B32807AD9101E536065855B34C7B9C90DA418DD2CC6FD41345039B45323BA63BC0455BE5BCBC7C1C9825882B3FC64E1A7C6DEDB35DC9476F3193BB9D53610547A74E15706335028B702BDDE43BB0679C93839378C3193066AD6ED79B318C73814C28D37C2D91A4EF94B1498CD1B311AA6DE5683C4E815635EC02603291C800B3280820CB1DEBF7FF0034B4A52A7A2A10B9514D8F84E9371F82957293A544C02C5F2A4B285E10336EFEDC26AC173281D7A15E595B3A795153BE2A33C7EB117FE516CB8C5FC58292D77020102041F021D031D7EC405D3E11D031B7B66DF9EFFCC5173B9B1639E4EC920731484EE
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/dsa1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/dsa1024.dat
  1 +3082014A0201003082012B06072A8648CE3804013082011E02818100F468699A6F6EBCC0120D3B34C8E007F125EC7D81F763B8D0F33869AE3BD6B9F2ECCC7DF34DF84C0307449E9B85D30D57194BCCEB310F48141914DD13A077AAF9B624A6CBE666BBA1D7EBEA95B5BA6F54417FD5D4E4220C601E071D316A24EA814E8B0122DBF47EE8AEEFD319EBB01DD95683F10DBB4FEB023F8262A07EAEB7FD02150082AD4E034DA6EEACDFDAE68C36F2BAD614F9E53B02818071AAF73361A26081529F7D84078ADAFCA48E031DB54AD57FB1A833ADBD8672328AABAA0C756247998D7A5B10DACA359D231332CE8120B483A784FE07D46EEBFF0D7D374A10691F78653E6DC29E27CCB1B174923960DFE5B959B919B2C3816C19251832AFD8E35D810E598F82877ABF7D40A041565168BD7F0E21E3FE2A8D8C1C0416021426EBA66E846E755169F84A1DA981D86502405DDF
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/dsa1024b.dat 0 → 100644
  1 +++ a/cryptopp/TestData/dsa1024b.dat
  1 +308201B73082012B06072A8648CE3804013082011E02818100F468699A6F6EBCC0120D3B34C8E007F125EC7D81F763B8D0F33869AE3BD6B9F2ECCC7DF34DF84C0307449E9B85D30D57194BCCEB310F48141914DD13A077AAF9B624A6CBE666BBA1D7EBEA95B5BA6F54417FD5D4E4220C601E071D316A24EA814E8B0122DBF47EE8AEEFD319EBB01DD95683F10DBB4FEB023F8262A07EAEB7FD02150082AD4E034DA6EEACDFDAE68C36F2BAD614F9E53B02818071AAF73361A26081529F7D84078ADAFCA48E031DB54AD57FB1A833ADBD8672328AABAA0C756247998D7A5B10DACA359D231332CE8120B483A784FE07D46EEBFF0D7D374A10691F78653E6DC29E27CCB1B174923960DFE5B959B919B2C3816C19251832AFD8E35D810E598F82877ABF7D40A041565168BD7F0E21E3FE2A8D8C1C0381850002818100D30312B7179661DA4691EDE39A71CB961199CD792C50AED6EA7E1A24C53590B6BCD92F26509D3372B2849A17C99C0962FBE4A2606CA37E6DF10244805363450FFAA24A7C274DF0B5D24AE7F31A8319FD2AA6E98AC6E7E3364E7AEDE575A9993609B0DFA387084141EA0B5B2D59B6DE718C0DAB4F86BC59F0DBE8602AED933494
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/dsa512.dat 0 → 100644
  1 +++ a/cryptopp/TestData/dsa512.dat
  1 +3081C60201003081A806072A8648CE38040130819C0241008DF2A494492276AA3D25759BB06869CBEAC0D83AFB8D0CF7CBB8324F0D7882E5D0762FC5B7210EAFC2E9ADAC32AB7AAC49693DFBF83724C2EC0736EE31C80291021500C773218C737EC8EE993B4F2DED30F48EDACE915F0240626D027839EA0A13413163A55B4CB500299D5522956CEFCB3BFF10F399CE2C2E71CB9DE5FA24BABF58E5B79521925C9CC42E9F6F464B088CC572AF53E6D78802041602142070B3223DBA372FDE1C0FFC7B2E3B498B260614
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/elgc1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/elgc1024.dat
  1 +3082018E028181008B333697371663F8869E3EC80A414E46BBAFE41F6D40E754A01ADA60FE7D12ACD16DE311C4115293114F6B92A54195909276380F04BCD4ED5CD993ED7F516DF7A752B928E5035E0D3A1A979A1CDE8387734338793C02001D59B662D4FC8F2BF0EABB1F553F9F46F57E74BCABCBA4E458812DB601FCD04609D435317181236B9702010202818038FBC56751763146BC107ECC59E9BAD3852EBC38799B41B40EF5745810BCF9DCC6D569B7E61063EA358B0DF2A194910029B72A9CFD11AD240681D3F976EDCB18D79C0530AB2944DC1E314C2B520BE23066C802754C19BF2EC15DE0439E2663383CEA5163DC857B6A5F91079F54FB47C9B33F23A9EB6B3FCBA8581524B3EC5C75028181008B333697371663F8869E3EC80A414E46BBAFE41F6D40E754A01ADA60FE7D12ACD16DE311C4115293114F6B92A54195909276380F04BCD4ED5CD993ED7F516DF7A752B928E5035E0D3A1A979A1CDE8387734338793C02001D59B662D4FC8F2BF0EABB1F553F9F46F57E74BC7F3EC6725F2FC0A6155ADCA43CEE7319E623824852
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/esig1023.dat 0 → 100644
  1 +++ a/cryptopp/TestData/esig1023.dat
  1 +3081E00281807040653BA4FCD5C66E3318B31E82654C5A62957F68D2EE6AE10BD6678D7A14EEF8EBF0C85F28FE22056C12B2A2DD4E9C897EB2FF06D57DB03B872C049ED2806DC3E4D86F2947D134065AC642F233F95FBCB55C533274FA91FFDC0CEB9E71B8795B71A977C7956001FC19E28DE18A80B20E4AE8F775B952CEEA0DEFEAE8E93D7F020120022B1EC74E9FC5EEA090E8DDF4BDB64861C7DC3F8EC7E64286EC2FE39DA55B4763C582DB48146521BDEF0146D5022B1E559EB15755298408E4E4C6F4791BF075C7A8C9B3C7F5B7FA3E8C322BA0A160C09A9DB6BBC4974BE0F877
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/esig1536.dat 0 → 100644
  1 +++ a/cryptopp/TestData/esig1536.dat
  1 +3082014D0281C100E2A6788AB3CC986AEC06C51690143D3677141645D0628165EE924B9AFB7E6EDD52D90145B2F6031522C7A6CEC05E358F42B7837DACEA589F868F8DCA1C0F5FD8E5EDB8BBBAFCFF6D64CFCFBE68F46FBA6EFF45BC9D0CBB4F7F6075F5FFC2049C2F304B51C417764E18D182926E02D4116CE5C5C010E3D0AA6872A49B0D1FF4B37D54689C31F5821D04E9D4DB34D7536EE7F88B8C481B0EC1F93193A0B70567E6FD76E9FAC4F67BB47DACD356D0C8015261E068DDF8C34C0CAFCF3FA775577FEB020120024100FAF0F292EE96D4F449024F86C0A104E0633C722586EC00AD33E0234629825D2081BA337597889CAC55DC6BEBDD8F13FE3AA2133D6371601A37D195DA7BC45EF3024100EBE16F88887A425AA08E271467CC2220DC44012AB24ED4FF3512A96E8CB600C8BBCB771459FF0EE63D4B6786952A83A7143A775073F0A1D69B6D0B5817755673
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/esig2046.dat 0 → 100644
  1 +++ a/cryptopp/TestData/esig2046.dat
  1 +308201B70282010028B1F9CDF87EF6D74F3AC2EA83C17CE376215FB2B3B4817145F1A137FB86B0F7BF0F9BA1BDCF7CC15DF1884DD1B150A983279B90F7A1E4392CB3C16390771DA5668E68621C3898DF66BD254F3787ECFB64B3435E707D5C237A6C09F407D8CD618CC3BBFBAB3DEBA38A0D1A88B2A4E09AE32FF2064EF1896348D5B83047EC2E079D85662EED4A66FBB9C159A617EE3C333BAED66989740F54C3CB336C0EF71130786E70648F2698F4F4192DA06C1578FDB065F8E320EFB63049E4BA664F215924B3E89F69131C5987F357C54593BE173A7AED2D37BE69F90CB574EF83AD49145EB15950FADE9E848DA83BC2CACBEDCAFC4A3B31BFFBBFC4DD03B8E47A218A51410201200256033F9C3F8BDDC021503A687BEC90438F38FF9C0E4C050DD95E46BACA370F478B843611A94BC37B5E838AABFD4ECCCE757BAC967DF8A7DD219B3A71A4DA64D54AB367622B7EB9B4282E898755F02036E91D2A12C81F41025603DB3DE2AE2B52889148C98D68F2B7606B0E5112E60E6A6FF5FD98E5D74143C000B43BEC77082F17C1EF4C82127010B12438D498AAFE8521E21EE6391627D464B54D1BE31F57FFF18C27EC38F08093EA65139A61A2C1
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/gostval.dat 0 → 100644
  1 +++ a/cryptopp/TestData/gostval.dat
  1 +BE5EC2006CFF9DCF52354959F1FF0CBFE95061B5A648C10387069C25997C0672
  2 +0DF82802B741A292 07F9027DF7F7DF89
  3 +
  4 +B385272AC8D72A5A8B344BC80363AC4D09BF58F41F540624CBCB8FDCF55307D7
  5 +1354EE9C0A11CD4C 4FB50536F960A7B1
  6 +
  7 +AEE02F609A35660E4097E546FD3026B032CD107C7D459977ADF489BEF2652262
  8 +6693D492C4B0CC39 670034AC0FA811B5
  9 +
  10 +320E9D8422165D58911DFC7D8BBB1F81B0ECD924023BF94D9DF7DCF7801240E0
  11 +99E2D13080928D79 8118FF9D3B3CFE7D
  12 +
  13 +C9F703BBBFC63691BFA3B7B87EA8FD5E8E8EF384EF733F1A61AEF68C8FFA265F
  14 +D1E787749C72814C A083826A790D3E0C
  15 +
  16 +728FEE32F04B4C654AD7F607D71C660C2C2670D7C999713233149A1C0C17A1F0
  17 +D4C05323A4F7A7B5 4D1F2E6B0D9DE2CE
  18 +
  19 +35FC96402209500FCFDEF5352D1ABB038FE33FC0D9D58512E56370B22BAA133B
  20 +8742D9A05F6A3AF6 2F3BB84879D11E52
  21 +
  22 +D416F630BE65B7FE150656183370E07018234EE5DA3D89C4CE9152A03E5BFB77
  23 +F86506DA04E41CB8 96F0A5C77A04F5CE
cryptopp/TestData/ideaval.dat 0 → 100644
  1 +++ a/cryptopp/TestData/ideaval.dat
  1 +00010002000300040005000600070008 0000000100020003 11FBED2B01986DE5
  2 +00010002000300040005000600070008 0102030405060708 540E5FEA18C2F8B1
  3 +00010002000300040005000600070008 0019324B647D96AF 9F0A0AB6E10CED78
  4 +00010002000300040005000600070008 F5202D5B9C671B08 CF18FD7355E2C5C5
  5 +00010002000300040005000600070008 FAE6D2BEAA96826E 85DF52005608193D
  6 +00010002000300040005000600070008 0A141E28323C4650 2F7DE750212FB734
  7 +00010002000300040005000600070008 050A0F14191E2328 7B7314925DE59C09
  8 +0005000A000F00140019001E00230028 0102030405060708 3EC04780BEFF6E20
  9 +3A984E2000195DB32EE501C8C47CEA60 0102030405060708 97BCD8200780DA86
  10 +006400C8012C019001F4025802BC0320 05320A6414C819FA 65BE87E7A2538AED
  11 +9D4075C103BC322AFB03E7BE6AB30006 0808080808080808 F5DB1AC45E5EF9F9
cryptopp/TestData/luc1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/luc1024.dat
  1 +3082015202010002818100B7FE59813AF3A5DA48144EF03E5D229E3CFB55B0E3CEB63F9F973AC8655651409C3B36BBBE83698516F42A2E0FDC87DD83541697249D67FB5A91FA73470089C4997667811283CF22C74856F1E71129DB70FB23620A60E532B7931B7F93C0B9AA6B9D60E87529002BF2204B743773F501F6C370D067C7B22F6AD9DC07E8097347020111024100CFEA6177386C04D1668C984C39A7F889B36BB2B3BED2C7B83241D267F8D2038529AEB56D82CDE43264168873375C8D1F0897666CCC3F617C2F6B52E5143303C7024100E28BAB645993166EE1A984967AE8839EA41685F1E6392DBEB83EE6CA85A54396505DBD4E5C9024BAFCF27AD24D571DC6A3795CE7F0432669BCE742AF8FAF1481024078C6F402C266595B4F85098370528C2C0309BE93F6C45FC049F6AD987471A979FE215CC41455AA85F5A5B664F59E2F8E33C97C211698D14AD05FC65044F99510
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/luc2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/luc2048.dat
  1 +308202960201000282010100EF8E1C8C8FB330A26C2449F1A50F7BD457D131C66D3194ECA20CE06138CC95CBE32E1DF910E13FF2D74823363286E3461E4BA3037EA32D4728F262C2364692E5948B8577F651292D72EF42445C2AAF11A526D2235DCE172A6E762EB86178BB5B4A06B8736567DB1525C8BDEB7242C81CC9090F5EF7CFC193FABEA3E5B5407E7DFDDF2D557487C65302148969F28DEC68AC3166FD52D44F1DE2EA74451A4BA0508F09E2F4AB85D89E7D68EEE4E8F9BD5A4858BAE8BF36E3A31FF06DDECDD40AE70932ECD09B65617B3208FF203EFBB0D822CDC1887EF343EBECBB762FA9C5D9F9339C80C96D6F3D8E4F7298FF6C94581C3CBC21C8CA94015F2E48400C0556B70502011102818100FDAD5D856662FC0284BEEF8470DC328B3B853F5819F037EBC786EB0225FD5C45B5BF99073F6E6CE31E4D1BC31105A4BAABA3BEC3C28F40E5912E7D3D6E6BE6178164E52F615C65FED1AE61D9D8F858282AF3C59C25A650A9CA72DD2105D95219CFEFEDDEB067647FDBABB659FBF2FF82F33C1A3A8BA73FB5F3D0C5509DFD38FF02818100F1BFA4A7A9506E020F9A57019F4326AE3D974DE9CCEF9BCA284B313DE287378411BDF1C9A1859D9165604EFF2EB1C9A685C0B317A08CF50E5F45AF570EE2C79B35BEA60B38109B4A450E87811CB10D6873F50726248055FE645C5C74FD0482F22CB541D77ED93F8B44CA72C9F550331C516BD061816325F9EF543C4995832BFB0281805184D4DC8796329003CF0EDC79048A12C4C78A1F44D8DE37A5939776A4E19CAA1ADBC4B78BE72EF23F1A5EFFF7377439138ED19D166285D1325CE6C2A7CFA182BDD7B82B2AB63A041C80B17A4D78161C240EDB2D6A494BEB27D28168E02DAE83C50C01EE8384E31111B756DA9B5423A6817F9078E8A750D0DE2CE62CF223601D
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/lucc1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/lucc1024.dat
  1 +3082013F0201003082011706072A8648CE3804013082010A02818100E16B572E39DB4D90689753D09CEA97B9CAE9C0AF04203AE5BC7FC985B85D5BB50B1EDEA30CAAD003B455640FEEA79E342F3E8CFF6761051B38D6931A2B0FD0DF8E2210E7DA74CAC5DC1A79D80CD8C0F9FC09D81BAEC94E2F3663F25B0140DF6B3D5AD04CBA27BCF24A92963319FB992E39544370FD28642FE07EB17EDA4D47B902818070B5AB971CEDA6C8344BA9E84E754BDCE574E05782101D72DE3FE4C2DC2EADDA858F6F5186556801DA2AB207F753CF1A179F467FB3B0828D9C6B498D1587E86FC7110873ED3A6562EE0D3CEC066C607CFE04EC0DD764A7179B31F92D80A06FB59EAD68265D13DE7925494B198CFDCC971CAA21B87E943217F03F58BF6D26A3DD020107041F021D03BDAFBB087B5A628730212217B01F15B303A0133D6AF4FC3CAF7286A8
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/lucc512.dat 0 → 100644
  1 +++ a/cryptopp/TestData/lucc512.dat
  1 +3081B302010030819406072A8648CE380401308188024100B89A4AD4826B8FDDBFE3A6C0F5C8F805B7093AFF9BB2BD697C7D113C236BAC99ABF69000E169575CA2A2DDCDD1C7D9D06C63DCCC880121D933DCF598DD85C52102405C4D256A4135C7EEDFF1D3607AE47C02DB849D7FCDD95EB4BE3E889E11B5D64CD5FB480070B4ABAE51516EE6E8E3ECE83631EE66440090EC99EE7ACC6EC2E291020107041702150268EA4C567B18D0E35B1DA9D517CE5D359CD06779
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/lucd1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/lucd1024.dat
  1 +30818702818100EE9C91E2C1D8B0AB999B3F32B3115A36AA95A36B23CC8507D2340FA21EAAF6F6EB
  2 +1B900839CD9F8AFBFC155467F91FD8917DD46EAC55A266B246DFFFEDDDA79D674F77884D34709DB3
  3 +452C2C1E2578CCC0CCA91C504039C52762F23F2A391A58B2CAD2DB05666DDF5B9E3C1AC33DB487B7
  4 +70C82B7E7DCDEE4381562FCEE427FD02010A
cryptopp/TestData/lucd512.dat 0 → 100644
  1 +++ a/cryptopp/TestData/lucd512.dat
  1 +3046024100C339D027E5812ED5D9DE044F3697D0273625E5EA9EC4EF3FB89ADBFA9CD1FBF4D8C0EC
  2 +1118C44609F499EF644EEAECE2F38B3F67FAC81A075F31A60B5757A87D020109
cryptopp/TestData/lucs1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/lucs1024.dat
  1 +3082015B0201003082013306072A8648CE3804013082012602818100D57B7B758DC8041CE6CFC57DFE0AAA33FC8FEC48BEEA37562AD13359236FFFF6EED3CEB3A7BBC4269A384ED9A296160F12BC666066548E28201CE293B1791F951C8D2C5965696D82B336EFADCF1E0D619EDA43DBB86415BF3EE6F721C0AB17E770EA7B2360A054D3E4E878647245FCF87B2335098303004CDDC2B9DCDA57DB51021D034E48F160EC5855CCCD9F995988AD1B554AD1B591E64283E91A07D151028180017324ADC1F93CF002FA2B0619C60F897CDED488E457685625E1565377483C0FA4A7FD1CAE848C727E76654434CE3CCAF81EC6E6AAA156EEBBEA095F642FD0DA2D043996ACC14A1B1A6110B19C094638E29890B89AF5812E97C5F96F33B1FD7415079947994442295CA34447807662FB70621F069A98AE274D01B2777BF4E97E041F021D00F9F02A2BC1930F1AC93198F3D532BC937941D7C9A1E16F0EB932476E
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/lucs512.dat 0 → 100644
  1 +++ a/cryptopp/TestData/lucs512.dat
  1 +3081C70201003081A806072A8648CE38040130819C024100E64283E91A07D10F557B7B758DC8041CE6CFC57DFE0AAA33FC8FEC48BEEA37562AD13359236FFFF6EED3FB921690D2FD1339F8E1DD406EED70D7EE3085E3AADD02150F4E48F160EC5855CCCD9F995988AD1B554AD1B5F3024062503DFB092F0FD0D8BBD90B50A834A6BD5B0995BCFC1CC8C8C83103AA6837F3FBFF3E042E1B25E36963DB2FCFD7AD24A6626E65A1F6EECBB399F5CE73659F29041702150450A037413E9A711E601318AF21D32A498C0C501E
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/marsval.dat 0 → 100644
  1 +++ a/cryptopp/TestData/marsval.dat
  1 +00000000000000000000000000000000 00000000000000000000000000000000 DCC07B8DFB0738D6E30A22DFCF27E886
  2 +00000000000000000000000000000000 DCC07B8DFB0738D6E30A22DFCF27E886 33CAFFBDDC7F1DDA0F9C15FA2F30E2FF
  3 +CB14A1776ABBC1CDAFE7243DEF2CEA02 F94512A9B42D034EC4792204D708A69B 225DA2CB64B73F79069F21A5E3CB8522
  4 +86EDF4DA31824CABEF6A4637C40B0BAB 4DF955AD5B398D66408D620A2B27E1A9 A4B737340AE6D2CAFD930BA97D86129F
  5 +000000000000000000000000000000000000000000000000 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 97778747D60E425C2B4202599DB856FB
  6 +D158860838874D9500000000000000000000000000000000 93A953A82C10411DD158860838874D95 4FA0E5F64893131712F01408D233E9F7
  7 +791739A58B04581A93A953A82C10411DD158860838874D95 6761C42D3E6142D2A84FBFADB383158F F706BC0FD97E28B6F1AF4E17D8755FFF
  8 +0000000000000000000000000000000000000000000000000000000000000000 62E45B4CF3477F1DD65063729D9ABA8F 0F4B897EA014D21FBC20F1054A42F719
  9 +FBA167983E7AEF22317CE28C02AAE1A3E8E5CC3CEDBEA82A99DBC39AD65E7227 1344ABA4D3C44708A8A72116D4F49384 458335D95EA42A9F4DCCD41AECC2390D
cryptopp/TestData/mqv1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/mqv1024.dat
  1 +3082011E028181009A21FC66469293103CEF66960B17880F905C738DB692B7481922FC2D454D14067C6BFC158B93FCC1B8D128D4D86D893082F8A3592238EE8B693B6245F26F55968D7D13752D6BFBA271E8E36E11482815D887BB9F6B600E820E7E2AF2EE6ECDBC1CB35B12A4EF48A8907C090482DE7D49B751BB3A50F78BE29506114BC85D3A6102150C896422EC558A74B883BA85E2F10D4A58F28D2B09028180350C4BB19C0A9B224E5E1BACCC1B1952A97628021B4673831C851C3280F06D3EFA73DAE27E5D4E4A0499E0B2B9A369649E883A1F260EF250B5CCF3E3C922332B210EEA07D3BF92210BA7A7374A30DDDE3D1B3D575B77CD36B001EAE4A2A3BFAFF12FCE74F3330B30ACF6DCFF580ECBFB5B00FD5DD2B8EA9DB09C7E1C7100BD67
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/mqv2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/mqv2048.dat
  1 +308202280282010100A5C07CE5BF0894C0BA8752F4D9A6D0BF6556D325B618A655CCFE3EEC85B56D47DBDF5A9A5C8588AE6F4C44BBCB339E869A21BE057A243DC797B912C547FBA359C4FC9965C72278370AB6C0DD246197A8D83A08C69425786482D1744C41FBB3C36BEA5963C05B0778AAEF9230C3E2E12072268038E5ADB6433542F94D8C25A6A1785E4D2D97AF119F2139E69AECA46F11B344785A0B1B280CF8D678AB9627780271A350A9B15B92E105F14733C5F15C1753F7C48A645FAAAC1BFA266B5AD6F7C46350465DA31150ABB10FF63FD6C01C849DFCD5645C5D1AF8B967372449DF90D02177E12439BD36A1EED1FAEDB8166927F755B71A5368CC27CD00AB5CF04601E7021D03134944D9AA15697107F48AC5621A1531649AD5EE8EEC1D1F282B5481028201003468652FBB1E3C7F2FBB99A89EA14FB9205F534943034CDE9D9CC57A790D9713EC7B21032EAA8ED2B24FFABD612EDADFC9265964C753AE276380294D4D16C63389A4C392A0058EF1549F6C0D13C4A09759C67650A51F7362B38C61AF2942A6004BB8C3CD4C489E66DE1567E2306821788A519727CD27945DBC5778AC6E8B1DFC05573D76DF9E9AA4F1CE657A2A07BEF833091614C0A6065507BD51099C54148327903626DE6D01FEC9A7F5F9A901C90E219D452C2E2A90AA2303A52776EF174CC85C1AA4F28924B1DFF3E3C5538D820A422374DCFB0D14D620AE282A72416C6506F02D3ED1E6208F66B9DB49294D8D605D7D146BB6A970211289B1BE7AB12531
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/nr1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/nr1024.dat
  1 +3082014C0201003082012C06072A8648CE3804013082011F02818100F89F4EBE58E222B517D218D615BDC00611501CD18417886BD3FCBD22578C4611B1E8C06EB0FE9D473A5589BC277AA58C1979DC2869B728D78EC38B4C044A790A60314E7BD3DFDC0BBD8B770A9271D7D048F3E13C73866D096C7304782125847C70EDD721B36F1C379CF7CCEE0A728DD66336ED5F93E8A1BD3EDB22C8761EB987021526A578AB11C3A0812A636D24D120BE544B7973E4D302818100BF927ACE4D175A44622494E37F9552E97B74303321FFEF9B76CDECB14F7D612608DDFEA77C04A8FCACCF7F16CB01AE05AD5EDB65C3B9A380D720F34C7D96C8817E2EFF7D0049EE149DF61C52D7C80271206155CDAEBC8A7F4A8DCE5196E3C18FD5EDF11A394C43A5D59BC65D976817438CA0A7F01713548F61355E976DE75E1E04170215247B2531CFF01D1B1665F0CFD2A836446798353330
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/nr2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/nr2048.dat
  1 +3082025D0201003082023506072A8648CE38040130820228028201010083C69F32A1F3A67B201D7A92BA204281681DAAD29F50BD866D70A2E01438653B18602AFE606AA925389381682EC0E2CE5D5D366793917879860799ECEDDB4831ED4A4E76D9C34FFDD0BC786588F00E8A19705B997C4298F9CAF9AEE46E0A5677AA1240DC141BD78A8720A829F64C912FA3D961ADE698C5344F18FE4CE70CF7B94F45258C6A9553830FFB80B6BB7E1C510D4526C1904C1D6E2F1B8C1CA6499DBD291438717131804FA2F5F42E5C06293D6DA493C88A38EBC6A6DCF40B2BAB0BF7C7FA0F9C070F1C48FD12CA2B7337E9C58EB9AFDAC6FEEAB0BD62415B26D405D6BF47F11D70B1740BC398A76BE70723A829082EB548D35F4D78E4E015DAD12D5B021D083118E4DC11622CB53E7E4D7634BFBDE45A2D8F8B097A251803505315028201005BAC6CBFE089F75274A532564735786477478F19BE099AB38E0F843393D6D81964CBCFF4B68C5DA2614F06BB844672288F0A65216954990051BA691CA6796AFAAE91A79350F53D9DF3CC688387306EFFDCEF70A14A672E2103B8C861523703157D05DF6EB42DCD81506C88300ED8D8ED40D41AB6D669D309C976B84D82C8D18747578358CBA1EF4B00118B0DEEF11409DD8CB0D83399A33E10C18249574FA2242AE4241CD789C891FEC1C63771EE4517274493240EDAAC44AEDC42F318A5122B052244DFA9A282B8D94BC4BAB360D44E4D0204F8D28817B5B6F808047C92032AA94926D697CFA2FC211FAAE26A5F1FC2B1EB03DA68AD5E01EAC489FB64A66EA3041F021D042ADA16929DA18A7A3C8FDCDD8FC46A6D8AAB79FF33D60E2BF09DEF4F
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/rabi1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rabi1024.dat
  1 +3082015202818100D132EDB1360E31D7B8DD84BB03111FDE0243FFE4031ED12B440E7FF36A634E57772EC81FFDC065607494717C6E16A5AB642283553442CC22569535C7A20E3D1C3E2B3747B26E9856D4A13D0325DC116DAAF8554B000321A753E5CFA730CA60F3E3FE2CA9750C6734A2A113AD4A76B6DAC5E199AB55F34CE6984BF56F6DFAC51D020105020102024100F90CBF726FA70ACB5074BD8E79932B74E9949057B627ABB29F41E5057AE699A03BC240EBB9637E956ABC0B6A20F633F78168A908086E2011FC5D030B9B94B51B024100D7097ACACD8BF8ED641A7D8A17A23F8FB385B92B760EEEB9A1233E1D25892F742315DE23DA0751F24EAE4C0C5B696D0AA0D16EAE94194193DC89D479A9626A2702403B5475CD2A7F519EF08433407826D89983C104AF1E74B44B79B31770149D224089300F828E0DF4CBC864BDB394C0F32CCF055F7B2B8872BF0B5F148020637B9C
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/rabi2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rabi2048.dat
  1 +308202970282010100B8F2A74040753A7706CB98B80DD9EE33FB7969FCA65A2025E96853267AEF80ABB184FE463B9475F5166307FAFA988F6CA4BBC7122E9555755191AA408BAF4464221394342104ED2762EEA4FED8B5CDB4234442AB979A487446AB37C4A4FD67C259EB942E28B50DD54F3AA14447931821291D4C21BB8BD58C41302F3E1D2E6FF84F84AACEC02196282C492E0354985A66EBA50B1903EDF70D98BD9837E694876505760C58C186F0B5F6500711500297956C9825EBDCCF90633239484F9A3572271D3CD585BFC195BED0D5FFCABE785B25BFF6ACFF2B7C125D54B26CFEF60B1B077B2F953960DAEB57F102B6A1E30AA88B643090BC4D8971077C1B54EA61E4E45102011302010D02818100D02603BBFDB55F1063DFCEBB4CA32F551330E0F2901D87DF2A395EF6AF340F6352CE3514FCE85705652DC6BD401CD0D5D13855B124DA172D5183A7474B85B683AA03382775F3D8DC600F33E696246F9F2134E2DA061923F47B85A923EBB375B07DE3B43EE4FD71D3E24B4B416DAE6E4C2B6D32A9B45BF04296AECAD60C33DA0702818100E3773B5D8B828BEA922392100C54CDF41D0CD26B4C34A64F483B7975AB35920DA0E3F6AE238E72E26F8A498D9AD0C4A75C52F25421E1E2E3865ADD1A0FCEA4DE932DBE6EBEFA689494855B11714B960F57C5102C0E8876D253ABA8C2D6A511DBC0F30589A0FBE66AD6BCEFDFC4F67F8347726A52736274B7F744ECACFF6198E702818100BF84B25DB607930F80ED57C7AF89E7604B7E8E0D341C9C4A0C94FFE6D4B38810553B1E92F7BF9651D3D0149A9188E1FFD1FB86753A327ABC6169AF92271E7204A2C76488FBC781984BA99C3C48C8A799054DA34A201743C3064B4609831B35FBA2B8B1BC67FFD0C685DBA92FE688AD51D1F161C06EC0B9E0D0E187863BFBBEC0
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/rc2val.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rc2val.dat
  1 +08
  2 +3F
  3 +00000000 00000000
  4 +00000000 00000000
  5 +ebb773f9 93278eff
  6 +
  7 +08
  8 +40
  9 +ffffffff ffffffff
  10 +ffffffff ffffffff
  11 +278b27e4 2e2f0d49
  12 +
  13 +08
  14 +40
  15 +30000000 00000000
  16 +10000000 00000001
  17 +30649edf 9be7d2c2
  18 +
  19 +01
  20 +40
  21 +88
  22 +00000000 00000000
  23 +61a8a244 adacccf0
  24 +
  25 +07
  26 +40
  27 +88bca90e 90875a
  28 +00000000 00000000
  29 +6ccf4308 974c267f
  30 +
  31 +10
  32 +40
  33 +88bca90e 90875a7f 0f79c384 627bafb2
  34 +00000000 00000000
  35 +1a807d27 2bbe5db1
  36 +
  37 +10
  38 +80
  39 +88bca90e 90875a7f 0f79c384 627bafb2
  40 +00000000 00000000
  41 +2269552a b0f85ca6
  42 +
  43 +21
  44 +81
  45 +88bca90e 90875a7f 0f79c384 627bafb2 16f80a6f 85920584
  46 + c42fceb0 be255daf 1e
  47 +00000000 00000000
  48 +5b78d3a4 3dfff1f1
cryptopp/TestData/rc5val.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rc5val.dat
  1 +00000000000000000000000000000000 0000000000000000 21A5DBEE154B8F6D
  2 +915F4619BE41B2516355A50110A9CE91 21A5DBEE154B8F6D F7C013AC5B2B8952
  3 +783348E75AEB0F2FD7B169BB8DC16787 F7C013AC5B2B8952 2F42B3B70369FC92
  4 +DC49DB1375A5584F6485B413B5F12BAF 2F42B3B70369FC92 65C178B284D197CC
  5 +5269F149D41BA0152497574D7F153125 65C178B284D197CC EB44E415DA319824
cryptopp/TestData/rc6val.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rc6val.dat
  1 +00000000000000000000000000000000
  2 + 00000000000000000000000000000000 8FC3A53656B1F778C129DF4E9848A41E
  3 +
  4 +0123456789ABCDEF0112233445566778
  5 + 02132435465768798A9BACBDCEDFE0F1 524E192F4715C6231F51F6367EA43F18
  6 +
  7 +000000000000000000000000000000000000000000000000
  8 + 00000000000000000000000000000000 6cd61bcb190b30384e8a3f168690ae82
  9 +
  10 +0123456789abcdef0112233445566778899aabbccddeeff0
  11 + 02132435465768798a9bacbdcedfe0f1 688329d019e505041e52e92af95291d4
  12 +
  13 +0000000000000000000000000000000000000000000000000000000000000000
  14 + 00000000000000000000000000000000 8f5fbd0510d15fa893fa3fda6e857ec2
  15 +
  16 +0123456789abcdef0112233445566778899aabbccddeeff01032547698badcfe
  17 + 02132435465768798a9bacbdcedfe0f1 c8241816f0d7e48920ad16a1674e5d48
0 \ No newline at end of file 18 \ No newline at end of file
cryptopp/TestData/rijndael.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rijndael.dat
  1 +000102030405060708090A0B0C0D0E0F 000102030405060708090A0B0C0D0E0F 0A940BB5416EF045F1C39458C653EA5A
  2 +00010203050607080A0B0C0D0F101112 506812A45F08C889B97F5980038B8359 D8F532538289EF7D06B506A4FD5BE9C9
  3 +14151617191A1B1C1E1F202123242526 5C6D71CA30DE8B8B00549984D2EC7D4B 59AB30F4D4EE6E4FF9907EF65B1FB68C
  4 +28292A2B2D2E2F30323334353738393A 53F3F4C64F8616E4E7C56199F48F21F6 BF1ED2FCB2AF3FD41443B56D85025CB1
  5 +00010203050607080A0B0C0D0F10111214151617191A1B1C 2D33EEF2C0430A8A9EBF45E809C40BB6 DFF4945E0336DF4C1C56BC700EFF837F
  6 +1E1F20212324252628292A2B2D2E2F30323334353738393A 6AA375D1FA155A61FB72353E0A5A8756 B6FDDEF4752765E347D5D2DC196D1252
  7 +3C3D3E3F41424344464748494B4C4D4E5051525355565758 BC3736518B9490DCB8ED60EB26758ED4 D23684E3D963B3AFCF1A114ACA90CBD6
  8 +00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526 834EADFCCAC7E1B30664B1ABA44815AB 1946DABF6A03A2A2C3D0B05080AED6FC
  9 +28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E D9DC4DBA3021B05D67C0518F72B62BF1 5ED301D747D3CC715445EBDEC62F2FB4
cryptopp/TestData/rsa1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rsa1024.dat
  1 +30820274020100300D06092A864886F70D010101
  2 +05000482025E3082025A02010002818100A39D4F
  3 +72D1BCFF65A47545C2897C0464CE9181E8703421
  4 +2EC04407C4C24D569AA20C58B8138C85E17510BC
  5 +6B861CADA9034C3ECE3B050B546E97D2BDC07A07
  6 +CF8A612F7D3646739633041893EF18C411264E45
  7 +C9E033A1BD5EE5FA02D95E9A9ADA2D0C6DF480E3
  8 +2FA3FCE02889798455CE53F084AAB4C5549266F7
  9 +CE8C77DF1D0201110281800E6FC33ED64561D443
  10 +378627C0D63C9F7BA36D584622B7A23E241ECD98
  11 +AC78952C6A804C7A320BD020EAE372E62FB4F853
  12 +1D50D5F6261796823A929845B06A19B35A5227CB
  13 +C819852A9CBE588CC2D1CEE07F426D13C2BF2FCA
  14 +1C99FDEEFDFE387859E2B3F654E85A71481A71E9
  15 +D5256583B1200F29C1AA0F437CFDC2AEAF218102
  16 +4100D5DDB104AD074F6C1B8192D9AC8AED4DE05C
  17 +F5C6509490DA8CCFC91FDF7B3A1323E03894DCAA
  18 +B2587716D652A56904F86244E10C1B8FA597C389
  19 +2591C55DBD65024100C3D930B583B8AD9A349218
  20 +795C988CF0004F09DA04FFEF6FDF7CB4FA654F74
  21 +B262521FE185693CD6290A337589F62CDEECE24E
  22 +CCB5E79865275540F3B603FB59024064A48F89BA
  23 +D6437E2B0FCCA2AB8CABE86995285D5318BCA315
  24 +167CC3B47639726B3C56DCA41417B128FBB026E4
  25 +6DA7FC6A7AC441EEDA2FCEF29AE480D5594A1102
  26 +40228FBD4D355CD35772B05EAC014818DF0F1D01
  27 +BD0FF0EE04AEF7E3B3B7867E015CA514AF53C746
  28 +F89DD49FAB5494DABDED9159332F28DEA8705A56
  29 +C198974A79024100D1DCA40FBD19036F0E2A9438
  30 +7D03C090DDF0A677CDE0B8634A81F247752A355E
  31 +C1CEA2482A4887767145C2BA703C9C10228FDA1E
  32 +BB2EBEA73D23AA9C34182179
cryptopp/TestData/rsa2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rsa2048.dat
  1 +308204BB020100300D06092A864886F70D010101
  2 +0500048204A5308204A10201000282010100BB25
  3 +80EB6B368287A0A3BDDF6AAA9EDA2EEF15D92C5F
  4 +E0B1C21473175C39B685A6FB0B0DB611092C19B4
  5 +FA3CA5BB20F311E35B2E1097F48B077DF7684BEB
  6 +9A34EB78C7B5F02ADFAEA3F3A66F1EF91B0C47DE
  7 +68F0501F80A7E9603F794E928949F152C049A011
  8 +D7E58C72F9303781E4FE7129DD7B87B5448D440A
  9 +62CE8E9C801F245039E2724A9C37CB17457950B7
  10 +B3C4C9BE4D17A29EFC1EA1EF464FBD21DABE9F10
  11 +ED0EB132405D68E4304008083BB675DA97CB6219
  12 +147A1EB93D38A9C4023540F871272A85B45447B3
  13 +6DE9A708E412CD31B1CB6470E4A37CBEA6000F36
  14 +632DF86FD3C34466C63BD80F1350E4DD5081597F
  15 +F34F94F07AE6430DCC0563B1F7CF020111028201
  16 +00034D763A5DC03580E33616ED5ABABA855B2E62
  17 +4495DD8D002009656B5473772C85F55F10CE81CE
  18 +77BE31E04657410B1F6535B4CF1E6914E152F4AB
  19 +84DA2FD409F81BBB3DF0A96A58EACC9501F60162
  20 +5C1356BF97D139C78A7E18496708EA7DE7B47266
  21 +C81363B3FF888085E7403A028901FF3BA04C2EDE
  22 +930EC0EFAC4DCF8FD054C1119562A1C7CA455D79
  23 +36CB95A16CE611ABC97918961DE6720CE171CC69
  24 +A590E9A041EC1DAC6FDCF2E04946C100E03DEFCA
  25 +29FF480C926CD48589EB832D4476CF38AB320754
  26 +D97BE77FDB9E5F2DCA1A2ABBC33D0790FE8C22CF
  27 +694BB8E0265733A5A17CC5D07DB54515DC80216A
  28 +A23A43EB12783888FF424EDB26FAF7DCB9028181
  29 +00EB4C87F67AEA3F2047BF9DF61947DF2BA7E1C1
  30 +64A03A8E3ED5F3BC6CDEE99FC6251C6A28F9502F
  31 +0A4B5A0CFA8038A12A2270AAE2C9342EDBA207CE
  32 +0F170B6D07550670CFEAE730B9411E66CD2D485F
  33 +3FC3E9C5348D32C768F68A53C756E66BE0FAC7E8
  34 +FDC9FBE22644961782DA5DDC19D75B64D2E8B660
  35 +052DDC95AD186633E902818100CB9C7830223B78
  36 +FC28A6D2B77C50C3D389F32FC4DEF33341741205
  37 +5102F8D852663DB44E1EA5E5E58A71D30D33C168
  38 +E94855D79CC19CC7DFBAFBDFF7710490064A1375
  39 +1CD75466219956B9D4C0AF0CC13E7D075F54E6AF
  40 +8CD67FBE3F4AB90425B039410686A168421E2E24
  41 +FF0319D9D3F1C685BB650BC7B5BD12090CBDC392
  42 +F702818060E3470B238DA185C330C89282E15BE4
  43 +CCA84092D89094ECB2736BB45BC99C2469A249D4
  44 +A2E4C8134C34237634CC06206888BED5DA60C800
  45 +158ABE4272E6964E502FD41960B98C888439B1DC
  46 +039645567DD8BA9D2B14E8B2BFDE9AF7BA5EE120
  47 +674341D1E9C211D385A736DB871796DD76CB47A2
  48 +239663C5E5B52E9291937EC902818053D704500E
  49 +187D1C8935A20F514E6EC08418D76F2EA060663E
  50 +DA3E6CA6DEEFA97564B3A7B2444F9AC08938C933
  51 +6DC1C9782358C8137CCAC5893A8965E33E1D2FC4
  52 +262129FE4FEDD1997E10488B935F9ADD7EC6CCE6
  53 +B957581C167B83791F01B52A71ED99467EB27593
  54 +F4E20EA6EC86DECCF7643E1A8C614AD561C77DB7
  55 +8CC40B02818100AF950A287679E6C55020400E8A
  56 +AD0642DB1C11D9AD5AE85F1B6FD2829D869453C9
  57 +F67C0210D0847A4BD47C57FAECD9BE540BD66989
  58 +E6C43F62D725B3D841B4F1DB7C28A722337358C8
  59 +D1CD55F5CA6E31FAD6F827756BA074944D345C8D
  60 +2FCE759F4244B948D06F5AC863DEAAEF279B2F69
  61 +955ADAD1F39DEA9DA028B94EF22F11
cryptopp/TestData/rsa400pb.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rsa400pb.dat
  1 +30 4c 30 0d 06 09 2a 86
  2 +48 86 f7 0d 01 01 01 05
  3 +00 03 3b 00 30 38 02 33
  4 +00 a3 07 9a 90 df 0d fd
  5 +72 ac 09 0c cc 2a 78 b8
  6 +74 13 13 3e 40 75 9c 98
  7 +fa f8 20 4f 35 8a 0b 26
  8 +3c 67 70 e7 83 a9 3b 69
  9 +71 b7 37 79 d2 71 7b e8
  10 +34 77 cf 02 01 03
cryptopp/TestData/rsa400pv.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rsa400pv.dat
  1 + 30 81 fb
  2 + 02 01 00
  3 + 02
  4 + 33 00 a3 07 9a 90 df 0d
  5 + fd 72 ac 09 0c cc 2a 78
  6 + b8 74 13 13 3e 40 75 9c
  7 + 98 fa f8 20 4f 35 8a 0b
  8 + 26 3c 67 70 e7 83 a9 3b
  9 + 69 71 b7 37 79 d2 71 7b
  10 + e8 34 77 cf
  11 + 02 01 03
  12 + 02
  13 + 32 6c af bc 60 94 b3 fe
  14 + 4c 72 b0 b3 32 c6 fb 25
  15 + a2 b7 62 29 80 4e 68 65
  16 + fc a4 5a 74 df 0f 8f b8
  17 + 41 3b 52 c0 d0 e5 3d 9b
  18 + 59 0f f1 9b e7 9f 49 dd
  19 + 21 e5 eb
  20 + 02 1a 00 cf 20
  21 + 35 02 8b 9d 86 98 40 b4
  22 + 16 66 b4 2e 92 ea 0d a3
  23 + b4 32 04 b5 cf ce 91
  24 + 02
  25 + 1a 00 c9 7f b1 f0 27 f4
  26 + 53 f6 34 12 33 ea aa d1
  27 + d9 35 3f 6c 42 d0 88 66
  28 + b1 d0 5f
  29 + 02 1a 00 8a 15
  30 + 78 ac 5d 13 af 10 2b 22
  31 + b9 99 cd 74 61 f1 5e 6d
  32 + 22 cc 03 23 df df 0b
  33 + 02
  34 + 1a 00 86 55 21 4a c5 4d
  35 + 8d 4e cd 61 77 f1 c7 36
  36 + 90 ce 2a 48 2c 8b 05 99
  37 + cb e0 3f
  38 + 02 1a 00 83 ef
  39 + ef b8 a9 a4 0d 1d b6 ed
  40 + 98 ad 84 ed 13 35 dc c1
  41 + 08 f3 22 d0 57 cf 8d
0 \ No newline at end of file 42 \ No newline at end of file
cryptopp/TestData/rsa512a.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rsa512a.dat
  1 +30 82 01 50
  2 + 02 01 00
  3 + 30 0d
  4 + 06 09
  5 + 2a 86 48 86 f7 0d 01 01 01
  6 + 05 00
  7 + 04 82 01 3a
  8 + 30 82 01 36
  9 + 02 01 00
  10 + 02 40
  11 + 0a 66 79 1d c6 98 81 68 de 7a b7 74 19 bb 7f b0
  12 + c0 01 c6 27 10 27 00 75 14 29 42 e1 9a 8d 8c 51
  13 + d0 53 b3 e3 78 2a 1d e5 dc 5a f4 eb e9 94 68 17
  14 + 01 14 a1 df e6 7c dc 9a 9a f5 5d 65 56 20 bb ab
  15 + 02 03 01 00 01
  16 + 02 40
  17 + 01 23 c5 b6 1b a3 6e db 1d 36 79 90 41 99 a8 9e
  18 + a8 0c 09 b9 12 2e 14 00 c0 9a dc f7 78 46 76 d0
  19 + 1d 23 35 6a 7d 44 d6 bd 8b d5 0e 94 bf c7 23 fa
  20 + 87 d8 86 2b 75 17 76 91 c1 1d 75 76 92 df 88 81
  21 + 02 20
  22 + 33 d4 84 45 c8 59 e5 23 40 de 70 4b cd da 06 5f
  23 + bb 40 58 d7 40 bd 1d 67 d2 9e 9c 14 6c 11 cf 61
  24 + 02 20
  25 + 33 5e 84 08 86 6b 0f d3 8d c7 00 2d 3f 97 2c 67
  26 + 38 9a 65 d5 d8 30 65 66 d5 c4 f2 a5 aa 52 62 8b
  27 + 02 20
  28 + 04 5e c9 00 71 52 53 25 d3 d4 6d b7 96 95 e9 af
  29 + ac c4 52 39 64 36 0e 02 b1 19 ba a3 66 31 62 41
  30 + 02 20
  31 + 15 eb 32 73 60 c7 b6 0d 12 e5 e2 d1 6b dc d9 79
  32 + 81 d1 7f ba 6b 70 db 13 b2 0b 43 6e 24 ea da 59
  33 + 02 20
  34 + 2c a6 36 6d 72 78 1d fa 24 d3 4a 9a 24 cb c2 ae
  35 + 92 7a 99 58 af 42 65 63 ff 63 fb 11 65 8a 46 1d
cryptopp/TestData/rw1024.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rw1024.dat
  1 +3082014D02818100BECF1F40456801F6965E603BEBB61F530F0B17BBCB00E3A8866EB9BC84AE3892A4CB040280F568FC650B1734014CA78A200D5E4AB394CBB75C0034DCC47643E6F576A39F850C5F4528048165B084C82E9BA6BA4CFBCB3980F1EB47EC2C348EF52A6225A85AF743DFCEF5CD4583EB0B9C0DA77ABEBEB5BCC513D81BD768B579AD024100F06CA9C1FBE20EE2440F3AB2F9A9787D820943EAF59B6B8D103CFAB1C2F595DDC99D05DC73F9D1DB780B6F8B26CF87E58EB870DD983A2515600DF80C3EBB7B1B024100CB2B9BDEB0D508E21E646C86D836442FC16910D68C8D1D18BB1327899A506C16C1162E93EA7C2CB576B750AEAB152255D5AB22632025CFFAD927A070CBAEA2D7024100C90A853BEC7C25D773FDDB95C11CEF9BB3F487953773F07E42DB9D011325AE2725663478FB7F0EC1A5608280D9656BF3B9F463FF8B23F1CA1B543508D51826E2
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/rw2048.dat 0 → 100644
  1 +++ a/cryptopp/TestData/rw2048.dat
  1 +3082029002820101008F2975B4DA54179A6C81764DB9E6B50AD925C91568DFE2C245DF9103AF39370BD5F25CD26BF6E41B6FEB0E24473BBFAE89343BC20743057B056BD2189C01258650567A3EC24040EED7EEAF94B77BDD39529807D1FCF5FF4A90E6B42BA58FF1FDCDACF981C641B8F077ABBB41BEFD53CCABF06745CD009A7F9DFAA61ED03F11466E4B5370DFA18C7DFEA1689B60F98012CDE9131FE86F74BFC6B93AC449DA73A2366EA2AE2233AFFBFF0CDE1899B1F852C179639B31CEE11991AA8D46DB5067B0C5FFB3D913612668F0C43CA134B11875F271C0BC8722AF4AD6CC93A43CE165EF31C1EB542ECC7CA1A38BFDF66F3A2175E4EA7159E168FFE3A549535B90C7BBDD02818100C5CEBA84E8B7C20BAA6F450000803F15C1160EB7E0875EBBC15F11DC7E3CAFE55973234FF4C74589406D2950B0C236ABE1B5A5B70D55C035F45D87AF089847C0E2A2DEF23EA4CC19FB5419DF43577523248BEF80B94C59F7342C717F12DE68FEEADAD97BA2DD436834D8559D0A7A31D6F9D9480F852C285EFC75BCA8AF32590302818100B947440D272629155C2B3E0E62B76124281155F7A189650D36C8F7D742F7DBC571ADDCC582ED2ED283C2E8A1CD8C996D3D8A50F33C56581285C5016A16DEDA533715DF519CAB7777F3DCB9F5335552F315B44FF8126DFDDF60B66850AA8FD108ED3A248D18E7473D7967F0F15C740C67476A75273DA254AE5C7B94FB059DD19F0281801EE99173837363981E0988DE22B2E36BFC9713EDC8454BF1CB764D767DFDA985B9DBAA346C0C39B1A9F83D849502AFDD80AE33F588C114BC4DE5FA949125FF56908F8C66CDFF6BF601F1CBF463B0C807DEABB1290C358FC0433ED74EBA074CB211C4D75538ED017F497C9722D8C3D3E082BB4A8A92D5768B5D5963BBDB1DB24D
0 \ No newline at end of file 2 \ No newline at end of file
cryptopp/TestData/saferval.dat 0 → 100644
  1 +++ a/cryptopp/TestData/saferval.dat
  1 +0000000000000000 0000000000000000 032808C90EE7AB7F
  2 +0000000000000000 0102030405060708 7D28038633B92EB4
  3 +0102030405060708 1011121314151617 71E5CF7F083A59C5
  4 +0102030405060708 18191A1B1C1D1E1F 356F702CC7FA8161
  5 +08070605040302010807060504030201 5051525354555657 38E64DBF6E0F896E
  6 +08070605040302010807060504030201 58595A5B5C5D5E5F 7D8F014A902480FE
  7 +01020304050607080807060504030201 6061626364656667 113511C22E7936DF
  8 +01020304050607080807060504030201 68696A6B6C6D6E6F 9EEB2D17C0581437
  9 +0000000000000001 7071727374757677 9ABE2C85BE2D7614
  10 +0000000000000001 78797A7B7C7D7E7F EBC4A9C6C25CF215
  11 +0102030405060708 8081828384858687 54E72BA2D744C566
  12 +0102030405060708 88898A8B8C8D8E8F 57F55D0F7EB6F8FE
  13 +00000000000000010000000000000001 9091929394959697 9EAA4DF1E0EFF445
  14 +00000000000000010000000000000001 98999A9B9C9D9E9F 4CC14838399E532D
  15 +01020304050607080000000000000000 A0A1A2A3A4A5A6A7 41246B65F1DC6AFA
  16 +00000000000000000102030405060708 A0A1A2A3A4A5A6A7 5CBD77B03626FE3B
cryptopp/TestData/serpentv.dat 0 → 100644
  1 +++ a/cryptopp/TestData/serpentv.dat
  1 +00000000000000000000000000000000 d29d576fcea3a3a7ed9099f29273d78e b2288b968ae8b08648d1ce9606fd992d
  2 +00000000000000000000000000000000 d29d576fcea3a3a7ed9099f26d8c2871 563a8403ff5309d62370b1dcf5a11edd
  3 +ffeeddccbbaa99887766554433221100 1032547698badcfeefcdab8967452301 d5baa00a4bb9d8a7c981c8dc90d89d92
  4 +ffeeddccbbaa99887766554433221100 145f0b8b663176b95dcab7e9dcd5cc24 1032547698badcfeefcdab8967452301
  5 +80000000000000000000000000000000 00000000000000000000000000000000 264E5481EFF42A4606ABDA06C0BFDA3D
  6 +000000000000000000000000000000000000000000000000 d29d576fceaba3a7ed9899f2927bd78e 130e353e1037c22405e8faefb2c3c3e9
  7 +8899aabbccddeeffffeeddccbbaa99887766554433221100 1032547698badcfeefcdab8967452301 da860842b720802bf404a4c71034879a
  8 +8899aabbccddeeffffeeddccbbaa99887766554433221100 b2696bd0d98c17953e4239225d27202c 1032547698badcfeefcdab8967452301
  9 +000102030405060708090A0B0C0D0E0F1011121314151617 4528CACCB954D450655E8CFD71CBFAC7 00112233445566778899AABBCCDDEEFF
  10 +0000000000000000000000000000000000000000000000000000000000000000 92074732d84e1841a013a0034c52bf50 81c4eb7b8ad9a8d0f2aa5d7bd626b560
  11 +00112233445566778899aabbccddeeffffeeddccbbaa99887766554433221100 1032547698badcfeefcdab8967452301 93df9a3cafe387bd999eebe393a17fca
  12 +000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F 3DA46FFA6F4D6F30CD258333E5A61369 00112233445566778899AABBCCDDEEFF
0 \ No newline at end of file 13 \ No newline at end of file
cryptopp/TestData/shacal2v.dat 0 → 100644
  1 +++ a/cryptopp/TestData/shacal2v.dat
  1 +80000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 361AB6322FA9E7A7BB23818D839E01BDDAFDF47305426EDD297AEDB9F6202BAE
  2 +00000000000000000000000000000001 0000000000000000000000000000000000000000000000000000000000000000 7308AEC23D25A231B26448AFE78D5047804C5011B9B5F95C16DF2670551F0001
  3 +00000000000000000000000000000000 8000000000000000000000000000000000000000000000000000000000000000 2CAE7C0460EE2FC3200923A1B6C2ABEEA746C8B44F6C3FB941BD3AF02A3E6E3E
  4 +00000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000001 45D43E9288738C5AD1A683D8DE59CEDD22D666A2B7078EB1301B532A272D570B
  5 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 7CA51614425C3BA8CE54DD2FC2020AE7B6E574D198136D0FAE7E26CCBF0BE7A6
  6 +01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101 0101010101010101010101010101010101010101010101010101010101010101 C4B7C6A9738C77EE28F7E685C8358E0AF88FB6D23955EE6DF49FE3F5DA16F826
  7 +02020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202 0202020202020202020202020202020202020202020202020202020202020202 CD108DD9EC1000B79C75AA3DCC88F913E6F52773853035A5C44F3245B134CBFF
  8 +04040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404 0404040404040404040404040404040404040404040404040404040404040404 6AA777340200C1B65AB25193A8BB267C233DAC7E1B3C523D406FC5B567B7B586
  9 +08080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808 0808080808080808080808080808080808080808080808080808080808080808 A23BE32D37FA4054EC45D6A9CC643AF9124EDAA4AD9ABC7FAAB449D39D11B128
  10 +10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 1010101010101010101010101010101010101010101010101010101010101010 F64819DFBEBE0A6DB650E7072CE28EA606586418B317785FF0AD44212A84C82C
  11 +20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020 2020202020202020202020202020202020202020202020202020202020202020 E267D6113C27170A3EE6DF496E801A6131BBD3444365D7C03791E25610F1A0E4
  12 +40404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040404040 4040404040404040404040404040404040404040404040404040404040404040 C97909916EE86FFDCE8A92903046109B53F788A53039434DF1A394DAD6F697A2
  13 +80808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080 8080808080808080808080808080808080808080808080808080808080808080 C3C1CD5F3060B3EC4E6ABC0818B68449E1750FB482368C8F3305270E16F98735
  14 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0598127BAF11706F77402000D730C54A0B84C868A98C6CA4D7F3C0FA06A78B7A
cryptopp/TestData/sharkval.dat 0 → 100644
  1 +++ a/cryptopp/TestData/sharkval.dat
  1 +00000000000000000000000000000000 0000000000000000 214BCF4E7716420A
  2 +000102030405060708090A0B0C0D0E0F 0000000000000000 C76C696289898137
  3 +000102030405060708090A0B0C0D0E0F C76C696289898137 077A4A59FAEEEA4D
  4 +915F4619BE41B2516355A50110A9CE91 21A5DBEE154B8F6D 6FF33B98F448E95A
  5 +783348E75AEB0F2FD7B169BB8DC16787 F7C013AC5B2B8952 E5E554ABE9CED2D2
  6 +DC49DB1375A5584F6485B413B5F12BAF 2F42B3B70369FC92 9AE068313F343A7A
  7 +5269F149D41BA0152497574D7F153125 65C178B284D197CC D3F111A282F17F29
cryptopp/TestData/skipjack.dat 0 → 100644
  1 +++ a/cryptopp/TestData/skipjack.dat
  1 +11223344556677889900 aabbccdd00112233 00d3127ae2ca8725
cryptopp/TestData/squareva.dat 0 → 100644
  1 +++ a/cryptopp/TestData/squareva.dat
  1 +00000000000000000000000000000000 00000000000000000000000000000000 3C00428F8ABBC0B84F057CC19C26F8CF
  2 +000102030405060708090A0B0C0D0E0F 00000000000000000000000000000000 FF596FA668BFC3014200AE01E2BBA0A0
  3 +000102030405060708090A0B0C0D0E0F 000102030405060708090A0B0C0D0E0F 7C3491D94994E70F0EC2E7A5CCB5A14F
  4 +000102030405060708090A0B0C0D0E0F C76C696289898137077A4A59FAEEEA4D 88C6FF4B92604C6E66656B02DDAF9F40
  5 +915F4619BE41B2516355A50110A9CE91 21A5DBEE154B8F6D6FF33B98F448E95A 3388801F66E7FCC0BCE522A23A4F0C7F
  6 +783348E75AEB0F2FD7B169BB8DC16787 F7C013AC5B2B8952E5E554ABE9CED2D2 A1C0E9215141343DEC2B556942C92BDE
  7 +DC49DB1375A5584F6485B413B5F12BAF 2F42B3B70369FC929AE068313F343A7A 3FBE6811B998CDF3E50ABDE2F3C075E3
  8 +5269F149D41BA0152497574D7F153125 65C178B284D197CCD3F111A282F17F29 D7B7209E0879744C782809B6D2E0B1B0
cryptopp/TestData/twofishv.dat 0 → 100644
  1 +++ a/cryptopp/TestData/twofishv.dat
  1 +00000000000000000000000000000000 00000000000000000000000000000000 9F589F5CF6122C32B6BFEC2F2AE8C35A
  2 +00000000000000000000000000000000 9F589F5CF6122C32B6BFEC2F2AE8C35A D491DB16E7B1C39E86CB086B789F5419
  3 +9F589F5CF6122C32B6BFEC2F2AE8C35A D491DB16E7B1C39E86CB086B789F5419 019F9809DE1711858FAAC3A3BA20FBC3
  4 +D491DB16E7B1C39E86CB086B789F5419 019F9809DE1711858FAAC3A3BA20FBC3 6363977DE839486297E661C6C9D668EB
  5 +000000000000000000000000000000000000000000000000 00000000000000000000000000000000 EFA71F788965BD4453F860178FC19101
  6 +EFA71F788965BD4453F860178FC191010000000000000000 88B2B2706B105E36B446BB6D731A1E88 39DA69D6BA4997D585B6DC073CA341B2
  7 +88B2B2706B105E36B446BB6D731A1E88EFA71F788965BD44 39DA69D6BA4997D585B6DC073CA341B2 182B02D81497EA45F9DAACDC29193A65
  8 +0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000 57FF739D4DC92C1BD7FC01700CC8216F
  9 +D43BB7556EA32E46F2A282B7D45B4E0D57FF739D4DC92C1BD7FC01700CC8216F 90AFE91BB288544F2C32DC239B2635E6 6CB4561C40BF0A9705931CB6D408E7FA
cryptopp/TestData/usage.dat 0 → 100644
  1 +++ a/cryptopp/TestData/usage.dat
  1 +Test Driver for Crypto++(R) Library, a C++ Class Library of Cryptographic Schemes
  2 +
  3 +- To generate an RSA key
  4 + cryptest g
  5 +
  6 +- To encrypt and decrypt a string using RSA
  7 + cryptest r
  8 +
  9 +- To sign a file using RSA
  10 + cryptest rs privatekeyfile messagefile signaturefile
  11 +
  12 +- To verify a signature of a file using RSA
  13 + cryptest rv publickeyfile messagefile signaturefile
  14 +
  15 +- To digest a file using several hash functions in parallel
  16 + cryptest m file
  17 +
  18 +- To encrypt and decrypt a string using DES-EDE in CBC mode
  19 + cryptest t
  20 +
  21 +- To encrypt or decrypt a file
  22 + cryptest e|d input output
  23 +
  24 +- To secret share a file (shares will be named file.000, file.001, etc)
  25 + cryptest ss threshold number-of-shares file
  26 +
  27 +- To reconstruct a secret-shared file
  28 + cryptest sr file share1 share2 [....]
  29 + (number of shares given must be equal to threshold)
  30 +
  31 +- To information disperse a file (shares will be named file.000, file.001, etc)
  32 + cryptest id threshold number-of-shares file
  33 +
  34 +- To reconstruct an information-dispersed file
  35 + cryptest ir file share1 share2 [....]
  36 + (number of shares given must be equal to threshold)
  37 +
  38 +- To gzip a file
  39 + cryptest z compression-level input output
  40 +
  41 +- To gunzip a file
  42 + cryptest u input output
  43 +
  44 +- To encrypt a file with AES in CTR mode
  45 + cryptest ae input output
  46 +
  47 +- To base64 encode a file
  48 + cryptest e64 input output
  49 +
  50 +- To base64 decode a file
  51 + cryptest d64 input output
  52 +
  53 +- To hex encode a file
  54 + cryptest e16 input output
  55 +
  56 +- To hex decode a file
  57 + cryptest d16 input output
  58 +
  59 +- To forward a TCP connection
  60 + cryptest ft source-port destination-host destination-port
  61 +
  62 +- To run the FIPS 140-2 sample application
  63 + cryptest fips
  64 +
  65 +- To generate 100000 random files using FIPS Approved X.917 RNG
  66 + cryptest fips-rand
  67 +
  68 +- To run Maurer's randomness test on a file
  69 + cryptest mt input
  70 +
  71 +- To run a test script (available in TestVectors subdirectory)
  72 + cryptest tv filename
  73 +
  74 +- To run validation tests
  75 + cryptest v
  76 +
  77 +- To display version number
  78 + cryptest V
  79 +
  80 +- To run benchmarks
  81 + cryptest b [time allocated for each benchmark in seconds] [frequency of CPU in gigahertz]
cryptopp/TestData/xtrdh171.dat 0 → 100644
  1 +++ a/cryptopp/TestData/xtrdh171.dat
  1 +305F02160559DCD66A95A57249A15BAD6B431BF2CD58615B901D02153365CFA0D3B1B6577B2DB243
  2 +DDE45EDB91C18B0F5F0216032F4EBA0911B3D0B14F6F1292A74DFFD4A8FCF22C1802160211CB3EDA
  3 +809FA0FF8C3A8AE691EC4C95A06A3395CF
cryptopp/TestData/xtrdh342.dat 0 → 100644
  1 +++ a/cryptopp/TestData/xtrdh342.dat
  1 +3081A6022B28E3FED51D3D861D962B0A16A92ACDB380ADAFB478CA555004C3AF387F853F9DE9921C
  2 +7DCB40098D25C757021D03094844F135A3A50049A848C3FC02412FCBED6040FB1BDE99A4D93E3B02
  3 +2B13F411960B85F9B031A247E072046892B1EE6C95A47242A839F8E24B96B88F37B4BDA2C6D253BC
  4 +0AAF29F1022B0D2AFE639D324E558B2B312E435E03957769D745C881D259DDFD2F48F9C08F82ECCF
  5 +F4E7ADD47C705896D0
cryptopp/TestVectors/Readme.txt 0 → 100644
  1 +++ a/cryptopp/TestVectors/Readme.txt
  1 +Test Data Format
  2 +
  3 +A test data file is an ASCII text file composed of sections separated by
  4 +blank lines. Each section is stand-alone and independent of other
  5 +sections that may be in the same file, and contains one or more tests.
  6 +
  7 +A section is composed of a sequence of fields. Each field is one or more
  8 +lines composed of a field name, followed by a colon (":"), followed by a
  9 +field body. All but the last line of a field must end with a backslash
  10 +("\"). If any line contains a hash mark ("#"), the hash mark and
  11 +everything after it on the same line is not considered part of the field
  12 +body.
  13 +
  14 +Each section must contain fields named AlgorithmType, Name, Source, and
  15 +Test. The presence and semantics of other fields depend on the algorithm
  16 +being tested and the tests to be run.
  17 +
  18 +Each section may contain more than one test and therefore more than one
  19 +field named Test. In that case the order of the fields is significant. A
  20 +test should always use the last field with any given name that occurs
  21 +before the Test field.
  22 +
  23 +Data Types
  24 +
  25 +int - small integer (less than 2^32) in decimal representation
  26 +string - human readable string
  27 +encoded string - can be one of the following
  28 + - quoted string: "message" means "message" without the quotes
  29 + or terminating '\0'
  30 + - hex encoded string: 0x74657374 or 74657374 means "test"
  31 + - repeated string: r100 "message" to repeat "message" 100 times, or
  32 + r256 0x0011 to repeat 0x0011 256 times
  33 +
  34 +Field Types
  35 +
  36 +AlgorithmType - string, for example "Signature", "AsymmetricCipher",
  37 +"SymmetricCipher", "MAC", "MessageDigest", or "KeyFactory"
  38 +Name - string, an algorithm name from SCAN
  39 +Test - string, identifies the test to run
  40 +Source - string, text explaining where the test data came from
  41 +Comment - string, other comments about the test data
  42 +KeyFormat - string, specifies the key format. "Component" here means
  43 +each component of the key or key pair is specified separately as a name,
  44 +value pair, with the names depending on the algorithm being tested.
  45 +Otherwise the value names "Key", or "PublicKey" and "PrivateKey" are
  46 +used.
  47 +Key - encoded string
  48 +PublicKey - encoded string
  49 +PrivateKey - encoded string
  50 +Message - encoded string, message to be signed or verified
  51 +Signature - encoded string, signature to be verified or compared
  52 +with
  53 +Plaintext - encoded string
  54 +Ciphertext - encoded string
  55 +Digest - encoded string
  56 +TruncatedSize - int, size of truncated digest in bytes
  57 +Seek - int, seek location for random access ciphers
  58 +(more to come here)
  59 +
  60 +Possible Tests
  61 +
  62 +KeyPairValidAndConsistent - public and private keys are both valid and
  63 +consistent with each other
  64 +PublicKeyInvalid - public key validation should not pass
  65 +PrivateKeyInvalid - private key validation should not pass
  66 +Verify - signature/digest/MAC verification should pass
  67 +VerifyTruncated - truncated digest/MAC verification should pass
  68 +NotVerify - signature/digest/MAC verification should not pass
  69 +DeterministicSign - sign message using given seed, and the resulting
  70 +signature should be equal to the given signature
  71 +DecryptMatch - ciphertext decrypts to plaintext
  72 +(more to come here)
cryptopp/TestVectors/aes.txt 0 → 100755
  1 +++ a/cryptopp/TestVectors/aes.txt
  1 +AlgorithmType: SymmetricCipher
  2 +Name: AES/ECB
  3 +Source: NIST Special Publication 800-38A
  4 +Plaintext: 6bc1bee22e409f96e93d7e117393172a ae2d8a571e03ac9c9eb76fac45af8e51 30c81c46a35ce411e5fbc1191a0a52ef f69f2445df4f9b17ad2b417be66c3710
  5 +Comment: F.1.1 ECB-AES128.Encrypt
  6 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  7 +Ciphertext: 3ad77bb40d7a3660a89ecaf32466ef97 f5d3d58503b9699de785895a96fdbaaf 43b1cd7f598ece23881b00e3ed030688 7b0c785e27e8ad3f8223207104725dd4
  8 +Test: Encrypt
  9 +Comment: F.1.3 ECB-AES192.Encrypt
  10 +Key: 8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
  11 +Ciphertext: bd334f1d6e45f25ff712a214571fa5cc 974104846d0ad3ad7734ecb3ecee4eef ef7afd2270e2e60adce0ba2face6444e 9a4b41ba738d6c72fb16691603c18e0e
  12 +Test: Encrypt
  13 +Comment: F.1.5 ECB-AES256.Encrypt
  14 +Key: 603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
  15 +Ciphertext: f3eed1bdb5d2a03c064b5a7e3db181f8 591ccb10d410ed26dc5ba74a31362870 b6ed21b99ca6f4f9f153e7b1beafed1d 23304b7a39f9f3ff067d8d8f9e24ecc7
  16 +Test: Encrypt
  17 +
  18 +AlgorithmType: SymmetricCipher
  19 +Name: AES/ECB
  20 +Source: Generated by Crypto++ 5.6.1
  21 +Comment: long test vector
  22 +Plaintext: r8 006bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c371000
  23 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  24 +Ciphertext: 84C6CBDC2B5A39985774B23BAB066A6AF8CB66C08E4F058E5D3E7C351EA845CEC7B209210EE7EFD38269628687F21CB9BCEA349DC0418ADBA2BF2364DF4DB1A11AD84CF6A422CE95C37B2CF81196245CD857D0B954B83985C1888230F3C301847AAF714253EF768C17E89E4F5513DBD5BEE1266A2B2D7063CE3D0BA8716252C5BCBB9922CD46F374B52FDFF1FEBF155FF4AFEE18788999BC74234A3FFBA7B2858BB2552F172E56EC47456878440ABB5ADAE49941C1E43616AC5D6E31A011611B829F6A77BE1F50754F81F35D24ED89FDE804B17363F9A81C3F12AE067FDD41A2984912CAE1926C5FB3AC18E541FA4AD1E171888E61428F2A8F2E981AE16D0D4E41D33E5E675F446DAE0F454FC4CA056F41F3CC4744A9E948428B2280F96663B7230C09692503C95B3E34F8DE8DF23157F45BDF689B258D994D9E6CE5D4DD6BDB96763CCC41DBBE57A4778D5A9E90226D614C335E44CA8AB41EFEA898BC170C65412F77194A43A1305EF23AC70B059E6E047796EF518D7696BC3DAD5E2634F92DD1C90D206A2B6D3A7CE88668BEAD64614E9000ACFBA79EB3601606214E21E08F14CE77E36BB66FE4A0FCD2A21BCAA2391A9C2016AC3BC7CDF1438EB6DD26696644583E2B0A0C68629D736F6723DF66859CF80B4E5B5C5BF03F334D65C48DB3B2660E2CE33B510FD60C912B85D16AEE7CDBFDF6285B0A77BAE07D987F9CE172A548E6BF0A30CF099AA82BE0A25E0E8919
  25 +Test: Encrypt
  26 +
  27 +AlgorithmType: SymmetricCipher
  28 +Name: AES/CBC
  29 +Source: NIST Special Publication 800-38A
  30 +IV: 000102030405060708090a0b0c0d0e0f
  31 +Plaintext: 6bc1bee22e409f96e93d7e117393172a ae2d8a571e03ac9c9eb76fac45af8e51 30c81c46a35ce411e5fbc1191a0a52ef f69f2445df4f9b17ad2b417be66c3710
  32 +Comment: F.2.1 CBC-AES128.Encrypt
  33 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  34 +Ciphertext: 7649abac8119b246cee98e9b12e9197d 5086cb9b507219ee95db113a917678b2 73bed6b8e3c1743b7116e69e22229516 3ff1caa1681fac09120eca307586e1a7
  35 +Test: Encrypt
  36 +Comment: F.2.3 CBC-AES192.Encrypt
  37 +Key: 8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
  38 +Ciphertext: 4f021db243bc633d7178183a9fa071e8 b4d9ada9ad7dedf4e5e738763f69145a 571b242012fb7ae07fa9baac3df102e0 08b0e27988598881d920a9e64f5615cd
  39 +Test: Encrypt
  40 +Comment: F.2.5 CBC-AES256.Encrypt
  41 +Key: 603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
  42 +Ciphertext: f58c4c04d6e5f1ba779eabfb5f7bfbd6 9cfc4e967edb808d679f777bc6702c7d 39f23369a9d9bacfa530e26304231461 b2eb05e2c39be9fcda6c19078c6a9d1b
  43 +Test: Encrypt
  44 +
  45 +AlgorithmType: SymmetricCipher
  46 +Name: AES/CBC
  47 +Source: RFC 3602
  48 +Comment: Case 1: Encrypting 16 bytes (1 block) using AES-CBC with 128-bit key
  49 +Key : 0x06a9214036b8a15b512e03d534120006
  50 +IV : 0x3dafba429d9eb430b422da802c9fac41
  51 +Plaintext : "Single block msg"
  52 +Ciphertext: 0xe353779c1079aeb82708942dbe77181a
  53 +Test: Encrypt
  54 +Comment: Case 2: Encrypting 32 bytes (2 blocks) using AES-CBC with 128-bit key
  55 +Key : 0xc286696d887c9aa0611bbb3e2025a45a
  56 +IV : 0x562e17996d093d28ddb3ba695a2e6f58
  57 +Plaintext : 0x000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f
  58 +Ciphertext: 0xd296cd94c2cccf8a3a863028b5e1dc0a 7586602d253cfff91b8266bea6d61ab1
  59 +Test: Encrypt
  60 +Comment: Case 3: Encrypting 48 bytes (3 blocks) using AES-CBC with 128-bit key
  61 +Key : 0x6c3ea0477630ce21a2ce334aa746c2cd
  62 +IV : 0xc782dc4c098c66cbd9cd27d825682c81
  63 +Plaintext : "This is a 48-byte message (exactly 3 AES blocks)"
  64 +Ciphertext: 0xd0a02b3836451753d493665d33f0e886 2dea54cdb293abc7506939276772f8d5 021c19216bad525c8579695d83ba2684
  65 +Test: Encrypt
  66 +Comment: Case 4: Encrypting 64 bytes (4 blocks) using AES-CBC with 128-bit key
  67 +Key : 0x56e47a38c5598974bc46903dba290349
  68 +IV : 0x8ce82eefbea0da3c44699ed7db51b7d9
  69 +Plaintext : 0xa0a1a2a3a4a5a6a7a8a9aaabacadaeaf b0b1b2b3b4b5b6b7b8b9babbbcbdbebf c0c1c2c3c4c5c6c7c8c9cacbcccdcecf d0d1d2d3d4d5d6d7d8d9dadbdcdddedf
  70 +Ciphertext: 0xc30e32ffedc0774e6aff6af0869f71aa 0f3af07a9a31a9c684db207eb0ef8e4e 35907aa632c3ffdf868bb7b29d3d46ad 83ce9f9a102ee99d49a53e87f4c3da55
  71 +Test: Encrypt
  72 +
  73 +
  74 +AlgorithmType: SymmetricCipher
  75 +Name: AES/CBC
  76 +Source: Generated by Crypto++ 5.6.1
  77 +Comment: long test vector
  78 +IV: f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
  79 +Plaintext: r8 006bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c371000
  80 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  81 +Ciphertext: 6544CCA076C4D67C1A69DD7E504C6586FBD22912505E187D8628E19FA067D6C339D078E3032B8596DA74BB0E23434F83E153D5ACD5DEF7D264F58EC685317BF50C93430791718D6E09CCC4804FFE4EEB5C6AD8E9B5DFD456EDE81081627A97FC2FAE9F1955377D7774E68EAB541B20CE3C915185BCA208EE08428C400043F2DC90B0390756762C9271946FCE214B9576F74399E466DAC48C6DD10B420F302941DCC27D55CF1FB59D71954950CAD893FFFA70970D128C77BFA34F3C84B0B64A01194A086ACDD9847D6B91B7F870D0E7591CA07F0B407005F1473C37A648F6E18044336F30418BA43FD7AA5B5BAE01A0E33B1EDA4487730F043E202DE44CB901BD3AED13D790D05F325C414831EB601BD918678C1B8E116877CE1167F87204B49619D323713F95C04CA9621FDCF44BD21C5E36A299C486C8FC0D3043EDFF424B9A7AA5500DC3BD7BF6FAB256E6B45B458058DC933F1FF8C5E841BFC7F405761E14B12B48C1C108F33BF8D65BB8DBB9ED7E92398E779333730F4C68922AA76409E842E76B649B981B8269186220ACFF9DFA198D62CBF4CFA0FE05C1427CE63A345A61FE460D14EF25D7A89E2E228B415757B4E4110B6AFA7D85D48C3BCF184FDD7366F06D9E3D29896B0D3C0D83FCFA881E6EC5F29B0294628EDFF284E58B7BE19D37A6B28D70DC0F165A4B60CE5536D76D1A71849C36B0837E4E5082A05208CEEB320C57F0F5B86DC3CAAC8A32DEA9552D
  82 +Test: Encrypt
  83 +
  84 +AlgorithmType: SymmetricCipher
  85 +Name: AES/CFB
  86 +Source: NIST Special Publication 800-38A
  87 +IV: 000102030405060708090a0b0c0d0e0f
  88 +Plaintext: 6bc1bee22e409f96e93d7e117393172aae2d8
  89 +FeedbackSize: 1
  90 +Comment: F.3.7 CFB8-AES128.Encrypt
  91 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  92 +Ciphertext: 3b79424c9c0dd436bace9e0ed4586a4f32b9
  93 +Test: Encrypt
  94 +Comment: F.3.9 CFB8-AES192.Encrypt
  95 +Key: 8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
  96 +Ciphertext: cda2521ef0a905ca44cd057cbf0d47a0678a
  97 +Test: Encrypt
  98 +Comment: F.3.11 CFB8-AES256.Encrypt
  99 +Key: 603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
  100 +Ciphertext: dc1f1a8520a64db55fcc8ac554844e889700
  101 +Test: Encrypt
  102 +Plaintext: 6bc1bee22e409f96e93d7e117393172a ae2d8a571e03ac9c9eb76fac45af8e51 30c81c46a35ce411e5fbc1191a0a52ef f69f2445df4f9b17ad2b417be66c3710
  103 +FeedbackSize: 16
  104 +Comment: F.3.13 CFB128-AES128.Encrypt
  105 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  106 +Ciphertext: 3b3fd92eb72dad20333449f8e83cfb4a c8a64537a0b3a93fcde3cdad9f1ce58b 26751f67a3cbb140b1808cf187a4f4df c04b05357c5d1c0eeac4c66f9ff7f2e6
  107 +Test: Encrypt
  108 +Comment: F.3.15 CFB128-AES192.Encrypt
  109 +Key: 8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
  110 +Ciphertext: cdc80d6fddf18cab34c25909c99a4174 67ce7f7f81173621961a2b70171d3d7a 2e1e8a1dd59b88b1c8e60fed1efac4c9 c05f9f9ca9834fa042ae8fba584b09ff
  111 +Test: Encrypt
  112 +Comment: F.3.17 CFB128-AES256.Encrypt
  113 +Key: 603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
  114 +Ciphertext: dc7e84bfda79164b7ecd8486985d3860 39ffed143b28b1c832113c6331e5407b df10132415e54b92a13ed0a8267ae2f9 75a385741ab9cef82031623d55b1e471
  115 +Test: Encrypt
  116 +
  117 +
  118 +AlgorithmType: SymmetricCipher
  119 +Name: AES/CFB
  120 +Source: Generated by Crypto++ 5.6.1
  121 +Comment: long test vector with odd length
  122 +IV: f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
  123 +Plaintext: r11 006bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710
  124 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  125 +Ciphertext: ECE71ECD7A4E3C2F643B2B0BFBED32F365C96D626048D13C65962ED08445B5EE74B11203E24C0ACCD3CC13F39963632D8F4B8F8BB16B7901373C32FFD27472957A8448E414A26BB10CAE9BCFBF332BA677D59C0CCD4CCE5B34298E2B1F3250092CF602B5476922D9FA13D4AE9F54841D889FE71D67A79315A621BDAECB2FD3F1ECDAB0DC9FBDFB85AE1633038A44E15DEF1B6DDBC4AB47BB128E1C2DE8A17FD1107D8587CE96088709E17DA23DE6993973A43DFB59801A9691B7EBF5565C4FF842F5132E99288FA4CE3E6CE9333DEE052212E71EF08C5E2E385A787F1567C0CD05A4D11BF40CA19B8D49A231AA55CDE1B8C531C9FCD3B9C70AABD65372E582FCE7528B6BD8F89AA6489B1F085AE024D5A964CAEC4F3F5726CBACDB5D8429F6741FE102BC27E10724C30A64A7D3ED11F6FF41908920A1326793C7C7EDDDD2F79D8A3CE804AE53E59E43B2E0E69AF69A79D7A97A12C0A1AC7331369FCE4072879AA998CD1DC6296CB02D4B97803F1F3713F922796148E2263AFA6A72CF30C3C00297ABF2AD2D559AC4D0011A839FAAA261BB17966E80FF243B65B6209C2732F294F33936A3B8FE7C9BEBE50686BBE7F0FDCF9E24281242B10844037D9AB8A342B954B69E6456243CC13959E1B014A1389BA69B9C4E1C0869C7FE3292ED72FCF183B216F7F5EB5A7CD0A2493BCA160AE6142F4CF03110CA4782CA6C8ED558CA8AF4B14ADC4C368FF0C0CD014F7E117F56D797EF45294C8D3BCED9D5D4E3FA60592031E2925ABA72DFE5AC1D88081DB6CF68DCB256A822CE891AD12F5BB34F39CE974F7D23C0B7AB3BF12D854DA60617EB5E479A9740E00A1DCA267A3D1D212F25A06B83106CBD624CC745ACB31E0EA774F6E0D765D6134F74A3AF5B3846649C14539B7C01B484C54F71B2C5016C2EA57B16472145511130D79E23271151F370DB8A626DB218F73FF0ABFE066E2782696F6984923AA074AEA9E059AEC18F50D4E03F4B17BAD856E6C962604A02
  126 +Test: Encrypt
  127 +
  128 +AlgorithmType: SymmetricCipher
  129 +Name: AES/OFB
  130 +Source: NIST Special Publication 800-38A
  131 +IV: 000102030405060708090a0b0c0d0e0f
  132 +Plaintext: 6bc1bee22e409f96e93d7e117393172a ae2d8a571e03ac9c9eb76fac45af8e51 30c81c46a35ce411e5fbc1191a0a52ef f69f2445df4f9b17ad2b417be66c3710
  133 +Comment: F.4.1 OFB-AES128.Encrypt
  134 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  135 +Ciphertext: 3b3fd92eb72dad20333449f8e83cfb4a 7789508d16918f03f53c52dac54ed825 9740051e9c5fecf64344f7a82260edcc 304c6528f659c77866a510d9c1d6ae5e
  136 +Test: Encrypt
  137 +Comment: F.4.3 OFB-AES192.Encrypt
  138 +Key: 8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
  139 +Ciphertext: cdc80d6fddf18cab34c25909c99a4174 fcc28b8d4c63837c09e81700c1100401 8d9a9aeac0f6596f559c6d4daf59a5f2 6d9f200857ca6c3e9cac524bd9acc92a
  140 +Test: Encrypt
  141 +Comment: F.4.5 OFB-AES256.Encrypt
  142 +Key: 603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
  143 +Ciphertext: dc7e84bfda79164b7ecd8486985d3860 4febdc6740d20b3ac88f6ad82a4fb08d 71ab47a086e86eedf39d1c5bba97c408 0126141d67f37be8538f5a8be740e484
  144 +Test: Encrypt
  145 +
  146 +
  147 +AlgorithmType: SymmetricCipher
  148 +Name: AES/OFB
  149 +Source: Generated by Crypto++ 5.6.1
  150 +Comment: long test vector with odd length
  151 +IV: f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
  152 +Plaintext: r11 006bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710
  153 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  154 +Ciphertext: ECE71ECD7A4E3C2F643B2B0BFBED32F3B3D63D91F8B99D5EA9D0AA2D977A8675EDD972802EB60B3D8FA629EF94358D46861CF60D9F89F481632F937182C78E49D53D132260CFC3A80943E0FD169C6091FF4BBBBDEC35F4A31DDB61AFA087750D6CFCF86DAB13330125D60A2732E43A2AF3E47ABE4824C5B17DD747F267149A321ADA13409D51D4FC685ADA6789D5785FCA5EF199FD96A03879B4147C4936CC32DE864520C98DD55408CA8ED4AF1BE1F133ED53CA9FF58E6862D3E900AE66EEF75272B547BBC8919CE5503981684FEBA088F5E73BF272C820656CC9627FB4E4FC3A92A6B815CAC558B3257614AA9BB2CF2409D3633B6570EEF67A9343502D2B528078E561782917D977E6F76B13CD6526512D3D4C803BBB58E54EED5B4057EAF85DE83A7EC53FACBCA7E03EB7E027910C8DA25B75BE33B41C0C594DF6D781E821193963C9F658D380A460561B2F0C9C3D7639A4E4EE2DA87653DA86FAD6D5280857CEC28CC40D082C81C672D9B36CD169A6803ACA4C8DAAD77953B296FBAF480FA146F8B41DCBD487A368851A207C90228DBF7BAEEB38F23F98520E52145D809DB530D3E690C2A91B8367B815C4FFC0AE7171582169D6A7FD073A1F9DE1182FC98D1D5B3E39B44E054218B80091333D5B751C0530BADF4361C5A95CB26634AE788F7B6D2CCA543FDE48172A24E4D991F9262CFB8ED09FFE4E1506DA6478EF879847F8CE44569A9AC66E124CEE5944D2DC87742CA1B598B3C7D54662F8A5783A0C6689C949C54E148C2C88DFBA4F10F0234BA62E4DDEA30F5AD3D209829CCB73C22141D56050FB75E0E7D1B822F6FFC6AB92E8DB12A5C6B62064B692F8B118CC38F0436433B5370CE5A79D09A7081703EEA59F64B7361AA50476DD2F7074CA37C51935DCBC78A806F92C1186033070D5C3FABACAAE39CB7FBA0654D13413E94F6E9FDDB7D2D4EC1985CCF2E2011C186BD0C16AA95A0C7FDDF1B36490780EB646EEB7B0B377E970FD7D2E9A06
  155 +Test: Encrypt
  156 +
  157 +AlgorithmType: SymmetricCipher
  158 +Name: AES/CTR
  159 +Source: NIST Special Publication 800-38A
  160 +IV: f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
  161 +Plaintext: 6bc1bee22e409f96e93d7e117393172a ae2d8a571e03ac9c9eb76fac45af8e51 30c81c46a35ce411e5fbc1191a0a52ef f69f2445df4f9b17ad2b417be66c3710
  162 +Comment: F.5.1 CTR-AES128.Encrypt
  163 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  164 +Ciphertext: 874d6191b620e3261bef6864990db6ce 9806f66b7970fdff8617187bb9fffdff 5ae4df3edbd5d35e5b4f09020db03eab 1e031dda2fbe03d1792170a0f3009cee
  165 +Test: Encrypt
  166 +Comment: F.5.3 CTR-AES192.Encrypt
  167 +Key: 8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b
  168 +Ciphertext: 1abc932417521ca24f2b0459fe7e6e0b 090339ec0aa6faefd5ccc2c6f4ce8e94 1e36b26bd1ebc670d1bd1d665620abf7 4f78a7f6d29809585a97daec58c6b050
  169 +Test: Encrypt
  170 +Comment: F.5.5 CTR-AES256.Encrypt
  171 +Key: 603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4
  172 +Ciphertext: 601ec313775789a5b7a7f504bbf3d228 f443e3ca4d62b59aca84e990cacaf5c5 2b0930daa23de94ce87017ba2d84988d dfc9c58db67aada613c2dd08457941a6
  173 +Test: Encrypt
  174 +
  175 +AlgorithmType: SymmetricCipher
  176 +Name: AES/CTR
  177 +Source: RFC 3686
  178 +#Test Vector #1: Encrypting 16 octets using AES-CTR with 128-bit key
  179 +Key : AE 68 52 F8 12 10 67 CC 4B F7 A5 76 55 77 F3 9E
  180 +Plaintext : 53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67
  181 +IV: 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 01
  182 +Ciphertext : E4 09 5D 4F B7 A7 B3 79 2D 61 75 A3 26 13 11 B8
  183 +Test: Encrypt
  184 +#Test Vector #2: Encrypting 32 octets using AES-CTR with 128-bit key
  185 +Key : 7E 24 06 78 17 FA E0 D7 43 D6 CE 1F 32 53 91 63
  186 +Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
  187 +IV: 00 6C B6 DB C0 54 3B 59 DA 48 D9 0B 00 00 00 01
  188 +Ciphertext : 51 04 A1 06 16 8A 72 D9 79 0D 41 EE 8E DA D3 88 EB 2E 1E FC 46 DA 57 C8 FC E6 30 DF 91 41 BE 28
  189 +Test: Encrypt
  190 +#Test Vector #3: Encrypting 36 octets using AES-CTR with 128-bit key
  191 +Key : 76 91 BE 03 5E 50 20 A8 AC 6E 61 85 29 F9 A0 DC
  192 +Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23
  193 +IV: 00 E0 01 7B 27 77 7F 3F 4A 17 86 F0 00 00 00 01
  194 +Ciphertext : C1 CF 48 A8 9F 2F FD D9 CF 46 52 E9 EF DB 72 D7 45 40 A4 2B DE 6D 78 36 D5 9A 5C EA AE F3 10 53 25 B2 07 2F
  195 +Test: Encrypt
  196 +#Test Vector #4: Encrypting 16 octets using AES-CTR with 192-bit key
  197 +Key : 16 AF 5B 14 5F C9 F5 79 C1 75 F9 3E 3B FB 0E ED 86 3D 06 CC FD B7 85 15
  198 +Plaintext : 53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67
  199 +IV: 00 00 00 48 36 73 3C 14 7D 6D 93 CB 00 00 00 01
  200 +Ciphertext : 4B 55 38 4F E2 59 C9 C8 4E 79 35 A0 03 CB E9 28
  201 +Test: Encrypt
  202 +#Test Vector #5: Encrypting 32 octets using AES-CTR with 192-bit key
  203 +Key : 7C 5C B2 40 1B 3D C3 3C 19 E7 34 08 19 E0 F6 9C 67 8C 3D B8 E6 F6 A9 1A
  204 +Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
  205 +IV: 00 96 B0 3B 02 0C 6E AD C2 CB 50 0D 00 00 00 01
  206 +Ciphertext : 45 32 43 FC 60 9B 23 32 7E DF AA FA 71 31 CD 9F 84 90 70 1C 5A D4 A7 9C FC 1F E0 FF 42 F4 FB 00
  207 +Test: Encrypt
  208 +#Test Vector #6: Encrypting 36 octets using AES-CTR with 192-bit key
  209 +Key : 02 BF 39 1E E8 EC B1 59 B9 59 61 7B 09 65 27 9B F5 9B 60 A7 86 D3 E0 FE
  210 +Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23
  211 +IV: 00 07 BD FD 5C BD 60 27 8D CC 09 12 00 00 00 01
  212 +Ciphertext : 96 89 3F C5 5E 5C 72 2F 54 0B 7D D1 DD F7 E7 58 D2 88 BC 95 C6 91 65 88 45 36 C8 11 66 2F 21 88 AB EE 09 35
  213 +Test: Encrypt
  214 +#Test Vector #7: Encrypting 16 octets using AES-CTR with 256-bit key
  215 +Key : 77 6B EF F2 85 1D B0 6F 4C 8A 05 42 C8 69 6F 6C 6A 81 AF 1E EC 96 B4 D3 7F C1 D6 89 E6 C1 C1 04
  216 +Plaintext : 53 69 6E 67 6C 65 20 62 6C 6F 63 6B 20 6D 73 67
  217 +IV: 00 00 00 60 DB 56 72 C9 7A A8 F0 B2 00 00 00 01
  218 +Ciphertext : 14 5A D0 1D BF 82 4E C7 56 08 63 DC 71 E3 E0 C0
  219 +Test: Encrypt
  220 +#Test Vector #8: Encrypting 32 octets using AES-CTR with 256-bit key
  221 +Key : F6 D6 6D 6B D5 2D 59 BB 07 96 36 58 79 EF F8 86 C6 6D D5 1A 5B 6A 99 74 4B 50 59 0C 87 A2 38 84
  222 +Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
  223 +IV: 00 FA AC 24 C1 58 5E F1 5A 43 D8 75 00 00 00 01
  224 +Ciphertext : F0 5E 23 1B 38 94 61 2C 49 EE 00 0B 80 4E B2 A9 B8 30 6B 50 8F 83 9D 6A 55 30 83 1D 93 44 AF 1C
  225 +Test: Encrypt
  226 +#Test Vector #9: Encrypting 36 octets using AES-CTR with 256-bit key
  227 +Key : FF 7A 61 7C E6 91 48 E4 F1 72 6E 2F 43 58 1D E2 AA 62 D9 F8 05 53 2E DF F1 EE D6 87 FB 54 15 3D
  228 +Plaintext : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23
  229 +IV: 00 1C C5 B7 51 A5 1D 70 A1 C1 11 48 00 00 00 01
  230 +Ciphertext : EB 6C 52 82 1D 0B BB F7 CE 75 94 46 2A CA 4F AA B4 07 DF 86 65 69 FD 07 F4 8C C0 B5 83 D6 07 1F 1E C0 E6 B8
  231 +Test: Encrypt
  232 +
  233 +AlgorithmType: SymmetricCipher
  234 +Name: AES/CTR
  235 +Source: Generated by Crypto++ 5.6.1
  236 +Comment: long test vector with odd length
  237 +IV: f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
  238 +Plaintext: r11 006bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710
  239 +Key: 2b7e151628aed2a6abf7158809cf4f3c
  240 +Ciphertext: ECE71ECD7A4E3C2F643B2B0BFBED32F31C8551B6306D52CF843EC0B85015DC203B1C0B643E2A6BABAF5133DA0EA06616076AA6BBB52ED75DC3A71A9A6E8AC7C9A00D2C39AA68BF4E6FFED9AAEE5AD6914FB3EA77C7B61FF6BF564F2F1225ACB4B5889CB1559888A5817849C382E168482F75381F63868C468E4D1583B1FE71DD808CB94D8150AAB9D530A0FC17CDE748E95545D8A033B2F61F1954D0C0226168022E1CD7E031C57D048AC560F152960F47705E174D956D4BB53AE80BFFCD1BD569ED8EFFA223C00558B702405F33E6E0EDB2D9B0C148A1441CC80D6ABBCE785AA1B9DAB7CB8832F1B12D2EE60EE2DFCA37942CA1724E5602B7B70525AC9662028A22DB234676615DB474538CBC8D197F38C88BCC4F9E8D207538CA18DE5F095420A2E4D5868CEBB8B34A9377DC52D119790B65210F1B346F5E00D9BD00A8847048913D80726B9B745D565E6284B986DBAEA997FFC5A0DE5051527D44B2C1266DBC9130A6EB15F37A0F00B6286D6678CA651C07743BD37F2E8F6A94F5ED8C63428AE4883A9695183807E104BC335C64FEAAC40A605913DF98FF44E0801B31A968CCE5DCAFADE1E017FA711E05FF5A54BFA1999C2C463F97A3A66B30211BD306C8911C98F8EE5EF47A54746A4D16B7C7424A6954B4FC3BCF1A41BDE8A19CE1027AE86A320D0E5E7D3C7E50CFD0C4665B811D86C313F09ADE5B4DBE017231859881E5873E9EDB2011CF5920D2F7277C4DE1AC430A1849F0B870A69ABE701B6D0B5123E5FF53395409177CF84BF41EC33C5E4BCC2CF29258DC7C260471AABDA49FDE62915758EE4E578D0F7698E6456BC144573739D5D508CC76B389359D2A0ECB5B7EE5FCB4C3151D5AF7C71819EA3DD5F36C7B27E551FD2373D07FFDC76A13FC4B10A6F29A83D6F465ACB6960671EACF21A3E1CB4411C4DAA0C2A87DAED28AEE60B7EC0258A9AF125F2DDC80B9877EFE0F372D9B832C786770A84EA1A07CB6E1A9907D651BBD0EFDEF2AFFC3
  241 +Test: Encrypt
cryptopp/TestVectors/all.txt 0 → 100644
  1 +++ a/cryptopp/TestVectors/all.txt
  1 +AlgorithmType: FileList
  2 +Name: all.txt collection
  3 +Test: TestVectors/tea.txt
  4 +Test: TestVectors/wake.txt
  5 +Test: TestVectors/camellia.txt
  6 +Test: TestVectors/shacal2.txt
  7 +Test: TestVectors/ttmac.txt
  8 +Test: TestVectors/whrlpool.txt
  9 +Test: TestVectors/dlies.txt
  10 +Test: TestVectors/dsa.txt
  11 +Test: TestVectors/dsa_1363.txt
  12 +Test: TestVectors/esign.txt
  13 +Test: TestVectors/hmac.txt
  14 +Test: TestVectors/nr.txt
  15 +Test: TestVectors/rsa_oaep.txt
  16 +Test: TestVectors/rsa_pkcs1_1_5.txt
  17 +Test: TestVectors/rsa_pss.txt
  18 +Test: TestVectors/rw.txt
  19 +Test: TestVectors/seal.txt
  20 +Test: TestVectors/sha.txt
  21 +Test: TestVectors/sha3.txt
  22 +Test: TestVectors/panama.txt
  23 +Test: TestVectors/aes.txt
  24 +Test: TestVectors/salsa.txt
  25 +Test: TestVectors/vmac.txt
  26 +Test: TestVectors/sosemanuk.txt
  27 +Test: TestVectors/ccm.txt
  28 +Test: TestVectors/gcm.txt
  29 +Test: TestVectors/cmac.txt
  30 +Test: TestVectors/eax.txt
  31 +Test: TestVectors/mars.txt