idnits 2.17.1 draft-harkins-pkex-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: If fixed elements other than those in Appendix A.1 and Appendix A.2 are used, their discrete logarithm MUST not be known. Knowledge of of the discrete logarithm of either of the fixed elements voids the security of the exchange. -- The document date (January 2, 2017) is 2669 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- -- Looks like a reference, but probably isn't: '0' on line 321 -- Looks like a reference, but probably isn't: '1' on line 333 -- Looks like a reference, but probably isn't: '32' on line 611 -- Looks like a reference, but probably isn't: '48' on line 644 -- Looks like a reference, but probably isn't: '66' on line 578 -- Looks like a reference, but probably isn't: '64' on line 685 -- Looks like a reference, but probably isn't: '256' on line 734 -- Looks like a reference, but probably isn't: '384' on line 822 -- Looks like a reference, but probably isn't: '512' on line 942 -- Looks like a reference, but probably isn't: '1024' on line 1142 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 11 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Research Task Force D. Harkins 3 Internet-Draft HP Enterprise 4 Intended status: Informational January 2, 2017 5 Expires: July 6, 2017 7 Public Key Exchange 8 draft-harkins-pkex-03 10 Abstract 12 This memo describes a password-authenticated protocol to allow two 13 devices to exchange "raw" (uncertified) public keys and establish 14 trust that the keys belong to their respective identities. 16 Status of This Memo 18 This Internet-Draft is submitted in full conformance with the 19 provisions of BCP 78 and BCP 79. 21 Internet-Drafts are working documents of the Internet Engineering 22 Task Force (IETF). Note that other groups may also distribute 23 working documents as Internet-Drafts. The list of current Internet- 24 Drafts is at http://datatracker.ietf.org/drafts/current/. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference 29 material or to cite them other than as "work in progress." 31 This Internet-Draft will expire on July 6, 2017. 33 Copyright Notice 35 Copyright (c) 2017 IETF Trust and the persons identified as the 36 document authors. All rights reserved. 38 This document is subject to BCP 78 and the IETF Trust's Legal 39 Provisions Relating to IETF Documents 40 (http://trustee.ietf.org/license-info) in effect on the date of 41 publication of this document. Please review these documents 42 carefully, as they describe your rights and restrictions with respect 43 to this document. Code Components extracted from this document must 44 include Simplified BSD License text as described in Section 4.e of 45 the Trust Legal Provisions and are provided without warranty as 46 described in the Simplified BSD License. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 51 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 52 1.2. Notation . . . . . . . . . . . . . . . . . . . . . . . . 3 53 2. Properties . . . . . . . . . . . . . . . . . . . . . . . . . 4 54 3. Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . 5 55 4. Cryptographic Primitives . . . . . . . . . . . . . . . . . . 5 56 5. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 6 57 5.1. Exchange Phase . . . . . . . . . . . . . . . . . . . . . 6 58 5.2. Commit/Reveal Phase . . . . . . . . . . . . . . . . . . . 7 59 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 60 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 61 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 62 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 63 8.2. Informative References . . . . . . . . . . . . . . . . . 10 64 Appendix A. Role-specific Elements . . . . . . . . . . . . . . . 10 65 A.1. ECC Role-specific Elements . . . . . . . . . . . . . . . 11 66 A.1.1. Role-specific Elements for NIST p256 . . . . . . . . 11 67 A.1.2. Role-specific Elements for NIST p384 . . . . . . . . 12 68 A.1.3. Role-specific Elements for NIST p521 . . . . . . . . 13 69 A.1.4. Role-specific Elements for brainpool p256r1 . . . . . 15 70 A.1.5. Role-specific Elements for brainpool p384r1 . . . . . 15 71 A.1.6. Role-specific Elements for brainpool p512r1 . . . . . 16 72 A.2. FFC Role-specific Elements . . . . . . . . . . . . . . . 17 73 A.2.1. Role-specific Elements for 2048-bit FFC group . . . . 18 74 A.2.2. Role-specific Elements for 3072-bit FFC group . . . . 19 75 A.2.3. Role-specific Elements for 4096-bit FFC group . . . . 21 76 A.2.4. Role-specific Elements for 8192-bit FFC group . . . . 24 77 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 30 79 1. Introduction 81 Many authenticated key exchange protocols allow for authentication 82 using uncertified, or "raw", public keys. Usually these 83 specifications-- e.g. [RFC7250] for TLS and [RFC7670] for IKEv2-- 84 assume keys are exchanged in some out-of-band mechanism. 86 [RFC7250] further states that "the main security challenge [to using 87 'raw' public keys] is how to associate the public key with a specific 88 entity. Without a secure binding between identifier and key, the 89 protocol will be vulnerable to man-in-the- middle attacks." 91 The Public Key Exchange (PKEX) is designed to fill that gap: it 92 establishs a secure binding between exchanged public keys and 93 identifiers, it provides proof-of-possession of the exchanged public 94 keys to each peer, and it enables the establishment of trust in 95 public keys that can subsequently be used to faccilitate 96 authentication in other authentication and key exchange protocols. 98 1.1. Requirements Language 100 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 101 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 102 document are to be interpreted as described in RFC 2119 [RFC2119]. 104 1.2. Notation 106 This memo describes a cryptographic exchange using sets of elements 107 called groups. Groups can be either traditional finite field or can 108 be based on elliptic curves. The public keys exchanged by PKEX are 109 elements in a group. Elements in groups are denoted in upper-case 110 and scalar values are denoted with lower-case. The generator of the 111 group is G. 113 When both the initator and responder use a similar, but unique, datum 114 it is denoted by appending an "i" for initiator or "r" for responder, 115 e.g. if each side needs an element C then the initiator's is Ci and 116 the responder's is Cr. 118 During the exchange, one side will generate data and the other side 119 will attempt to reconstruct it. The reconstructed data is "primed". 120 That is, if the initiator generates C then when responder tries to 121 reconstruct it, the responder will refer to it as C'. Data that is 122 directly sent and received is not primed. 124 The following notation is used in this memo: 126 C = A + B 127 The "group operation" on two elements, A and B, that produces a 128 third element, C. For finite field cryptography this is the 129 modular multiplication, for elliptic curve cryptography this is 130 point addition. 132 C = A - B 133 The "group operation" on element A and the inverse of element B 134 to produce a third element, C. Inversion is defined such that 135 the group operation on an element and its inverse results in the 136 identity element, the value one (1) for finite field cryptography 137 and the "point at infinity" for elliptic curve cryptography. 139 C = a * B 140 This denotes repeated application of the group operation to B-- 141 i.e. B + B-- (a - 1) times. 143 a = H(b) 144 A cryptographic hash function that takes data b of indeterminate 145 length and returns a fixed sized digest a. 147 a = F(B) 148 A mapping function that takes an element and returns a scalar. 149 For elliptic curve cryptography, F() returns the x-coordinate of 150 the point B. For finite field cryptography, F() is the identity 151 function. 153 a = KDF-b(c, d) 154 A key derivation function that derives an output key a of length 155 b from an input key c and context d. 157 a = HMAC(b, c) 158 A keyed MAC function that produces a digest a using key b and 159 text c. 161 a | b 162 Concatentation of data a with data b. 164 {a}b[c] 165 Authenticated-encryption of data a with key b and associated data 166 (AD) that is authenticated but not encrypted c. 168 2. Properties 170 Subversion of PKEX involves an adversary being able to insert its own 171 public key into the exchange without the exchange failing, resulting 172 in one of the parties to the exchange believing the adversary's 173 public key actually belongs to the protocol peer. 175 PKEX has the following properties: 177 o An adversary is unable to subvert the exchange without knowing the 178 password. 180 o An adversary is unable to discover the password through passive 181 attack. 183 o The only information exposed by an active attack is whether a 184 single guess of the password is correct or not. 186 o Proof-of-possession of the private key is provided. 188 o At the end of the protocol, either trust is established in the 189 peer's public key and the public key is bound to the peer's 190 identity, or the exchange fails. 192 3. Assumptions 194 Due to the nature of the exchange, only DSA ([DSS]) and ECDSA 195 ([X9.62]) keys can be exchanged with PKEX. 197 PKEX requires fixed elements that are unique to the particular role 198 in the protocol, an initiator-specific element and a responder- 199 specific element. They need not be secret. It is assumed that both 200 parties know the role-specific elements for the particular group in 201 which their key pairs were derived. Techniques to generate role- 202 specific elements, and generated elements for popular groups, are 203 listed in Appendix A.1 and Appendix A.2. 205 The authenticated-encryption algorithm provides deterministic "key 206 wrapping". To achieve this the AE scheme used in PKEX is AES-SIV as 207 defined in [RFC5297]. 209 The KDF provides for the generation of a cryptographically strong 210 secret key from an "imperfect" source of randomness. To achieve this 211 the KDF used in PKEX is the unsalted version of [RFC5869]. 213 The keyed MAC function is HMAC per [RFC2104]. 215 The following assumptions are made on PKEX: 217 o Only the peers involved in the exchange know the password. 219 o The peers' public keys are from the same group. 221 o The discrete logarithms of the public role-specific elements are 222 unknown, and determining them is computationally infeasible. 224 4. Cryptographic Primitives 226 HKDF and HMAC require an underlying hash function and AES-SIV 227 requires a key length. To provide for consistent security the hash 228 algorithm and key length depend on the group chosen to use with PKEX. 230 For ECC, the hash algorithm and key length depends on the size of the 231 prime defining the curve, p: 233 o SHA-256 and 256 bits: when len(p) <= 256 235 o SHA-384 and 384 bits: when 256 < len(p) <= 384 237 o SHA-512 and 512 bits: when 384 < len(p) 238 For FFC, the hash algorithm depends on the prime, p, defining the 239 finite field: 241 o SHA-256 and 256 bits: when len(p) <= 2048 243 o SHA-384 and 384 bits: when 2048 < len(p) <= 3072 245 o SHA-512 and 512 bits: when 3072 < len(p) 247 5. Protocol Definition 249 PKEX is a balanced PAKE. The identical version of the password is 250 used by both parties. 252 PKEX consists of two phases: exchange and commit/reveal. It is 253 described using the popular protocol participants, Alice (an 254 initiator of PKEX), and Bob (a responder of PKEX). 256 We denote Alice's role-specific element a Pi and Bob's as Pr. The 257 password is pw. For simplicity, Alice's identity is "Alice" and 258 Bob's identity is "Bob". Alice's public key she wants to share with 259 Bob is A and her private key is a, while Bob's public key he wants to 260 share with Alice is B and his private key is b. 262 5.1. Exchange Phase 264 The Exchange phase is essentially the SPAKE2 key exchange. The peers 265 derive ephemeral public keys, encrypt, and exchange them. Each party 266 hashes a concatentation of his or her identity and the password and 267 operates on the role-specific element to obtain a secret encrypting 268 element. The group operation is then performed with the ephemeral 269 key and the secret encrypting element to produce an encrypted 270 ephmeral key. 272 Alice: Bob: 273 ------ ---- 274 x, X = x*G y, Y = y*G 275 Qa = H(Alice|pw)*Pi Qr = H(Bob|pw)*Pr 276 M = X + Qa 277 M ------> 278 Qa = H(Alice|pw)*Pi 279 X' = M - Qa 280 N = Y + Qr 281 <------ N 282 Qr = H(Bob|pw)*Pr 283 Y' = N - Qr 285 Both M and N MUST be verified to be valid elements in the selected 286 group. If either one is not valid the protocol fails. 288 At this point the peers have exchanged ephemeral elements that will 289 be unknown except by someone with knowledge of the password. Given 290 our assumptions that means only Alice and Bob can know the elements X 291 and Y. 293 The secret encrypting elements Qa and Qb are irretrievably deleted at 294 this point. 296 5.2. Commit/Reveal Phase 298 In the Commit/Reveal phase the peers commit to the particular public 299 key they wish to exchange and reveal it to the peer. Proof-of- 300 possession of the private key is accomplished by "signing" the public 301 key, the identity to which the public key is bound, the receipient's 302 ephemeral public key, and the sender's ephemeral public key. 304 The messages exchanged in the Commit/Reveal phase are encrypted and 305 authenticated with AES-SIV using a key derived from the SPAKE2 key 306 exchange in Section 5.1. Successful construction and validation of 307 these messages authenticates the SPAKE2 exchange by proving 308 possession of the SPAKE2 shared secret and therefore knowledge of the 309 password. A single octet of the value zero (0) is used as AD when 310 encrypting Alice's message to Bob and a single octet of the value one 311 (1) is used as AD when constructing Bob's response. The AD is not 312 transferred as part of the either message. 314 Alice: Bob: 315 ------ ---- 316 z = KDF-n(F(x*Y'), Alice | Bob | 317 F(M) | F(N) | pw) 318 u = HMAC(F(a*Y'), Alice | F(A) | 319 F(Y') | F(X)) 321 {A, u}z[0] ------> 323 z = KDF-n(F(y*X'), Alice | Bob | 324 F(M) | F(N) | pw) 325 if (SIV-decrypt returns fail) fail 326 if (A not valid element) fail 327 u' = HMAC(F(y*A), Alice | F(A) | 328 F(Y) | F(X')) 329 if (u' != u) fail 330 v = HMAC(F(b*X'), Bob | F(B) | 331 F(X') | F(Y)) 333 <------ {B, v}z[1] 335 if (SIV-decrypt returns fail) fail 336 if (B not valid element) fail 337 v' = HMAC(F(x*B), Bob | F(B) | 338 F(X) | F(Y)) 339 if (v'!= v) fail 341 where 0 and 1 are single octets of the value zero and one, 342 respectively, n is the key length from Section 4, and both the KDF 343 and HMAC use the hash algorithm from Section 4. 345 If the parties didn't fail they have each other's public key, 346 knowledge that the peer possesses the corresponding private key, and 347 trust that the public key belongs to the peer's stated identity. 349 6. IANA Considerations 351 This memo could create a registry of the fixed public elements for a 352 nice cross section of popular groups. Or not. Once published this 353 document will be a stable reference and a registry might not be 354 needed. 356 7. Security Considerations 358 The encrypted shares exchanged in the Exchange phase MUST be 359 ephemeral. Reuse of these keys, even with a different password, 360 voids the security of the exchange. 362 If fixed elements other than those in Appendix A.1 and Appendix A.2 363 are used, their discrete logarithm MUST not be known. Knowledge of 364 of the discrete logarithm of either of the fixed elements voids the 365 security of the exchange. 367 The public keys exchanged in PKEX are never disclosed to an attacker, 368 either passive or active. While they are, as the name implies, 369 public, PKEX provides for secrecy of the exchanged keys for any 370 protocol that might need such a capability. 372 PKEX has forward secrecy in the sense that exposure of the password 373 used in a previous run of the protocol will not affect the security 374 of that run. This also means that once PKEX has finished, the 375 password can be exposed to a third party with out loss of security-- 376 the public keys exchanged are still trusted and still bound to the 377 entities that performed the exchange originally. 379 There is no proof of security of PKEX at this time but the Exchange 380 phase is SPAKE2 and the security proof for that protocol can be used 381 to help prove the security of PKEX. 383 8. References 385 8.1. Normative References 387 [DSS] U.S. Department of Commerce/National Institute of 388 Standards and Technology, "Digital Signature Standard 389 (DSS)", Federal Information Processing Standards FIPS PUB 390 186-4, July 2013. 392 [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- 393 Hashing for Message Authentication", RFC 2104, DOI 394 10.17487/RFC2104, February 1997, 395 . 397 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 398 Requirement Levels", BCP 14, RFC 2119, March 1997. 400 [RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) 401 Diffie-Hellman groups for Internet Key Exchange (IKE)", 402 RFC 3526, DOI 10.17487/RFC3526, May 2003, 403 . 405 [RFC5297] Harkins, D., "Synthetic Initialization Vector (SIV) 406 Authenticated Encryption Using the Advanced Encryption 407 Standard (AES)", RFC 5297, DOI 10.17487/RFC5297, October 408 2008, . 410 [RFC5869] Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand 411 Key Derivation Function (HKDF)", RFC 5869, DOI 10.17487/ 412 RFC5869, May 2010, 413 . 415 [X9.62] American National Standards Institute, "X9.62-2005", 416 Public Key Cryptography for the Financial Services 417 Industry (ECDSA), 2005. 419 8.2. Informative References 421 [RFC7250] Wouters, P., Ed., Tschofenig, H., Ed., Gilmore, J., 422 Weiler, S., and T. Kivinen, "Using Raw Public Keys in 423 Transport Layer Security (TLS) and Datagram Transport 424 Layer Security (DTLS)", RFC 7250, DOI 10.17487/RFC7250, 425 June 2014, . 427 [RFC7670] Kivinen, T., Wouters, P., and H. Tschofenig, "Generic Raw 428 Public-Key Support for IKEv2", RFC 7670, DOI 10.17487/ 429 RFC7670, January 2016, 430 . 432 Appendix A. Role-specific Elements 434 Role-specific elements for six popular elliptic curves and four 435 popular modp groups from [RFC3526] have been generated using the 436 following technique. 438 A loop is performed to generate role-specific elements by generating 439 a candidate, testing the candidate, and exiting the loop once the 440 test succeeds. A single octet counter is incremented each time 441 through the loop (first time through the loop, the counter is one). 443 To find a candidate, a hash of an identifier (the concatenation of 444 the ASN.1 of the OID of the curve or the name of the FFC group), a 445 constant string, and the counter is produced. If the length of the 446 hash's digest is less than the desired bits, the digest is pre-pended 447 to the inputs and the result is fed back into the hash (this time it 448 is a hash of a concatentation of the old digest, asn.1, constant 449 string, counter) to produce the next length-of-digest bits. This is 450 repeated until the number of bits has been produced. Excess octets 451 are stripped off. The resulting string is interpreted as an integer 452 with the first octet of (the first) hash being the high-order octet 453 of the integer. For curves whose prime is not an integral number of 454 octets, the bitstring is right-shifted, pre-pending with zero bits, 455 in order to make a big-endian bitstring of the appropriate length. 456 If that resulting number is larger than the prime defining the group 457 the counter is incremented and the loop continues. Once an candidate 458 has been produced it is checked to see whether it is a valid element 459 in the group (for ECC it is treated as an x-coordinate and checked 460 whether it produces a valid point on the curve, for FFC it is checked 461 by seeing whether the exponentiation of the candidate to the power of 462 the prime minus one divided by the order, modulo the prime, is one). 463 If it is not, the counter is incremented and the whole loop is 464 performed again. This process is repeated until an element is found. 465 The hash algorithm used to generate candidates is determined by 466 Section 4. 468 The loop is performed twice for each elliptic curve and FFC group to 469 produce initiator- and responder-specific elements. The string 470 passed for the initiator-specific element is "PKEX Initiator", the 471 string passed for the responder-specific element is "PKEX Responder". 473 For FFC groups, the identifier is "group X" (including the space 474 character and excluding the quotation marks) where X is the id 475 assigned to the group, e.g. the 2048-bit group is named "group 14". 476 For ECC groups, the identifier is the DER-encoded ASN.1 477 representation of the OID of the curve. 479 A.1. ECC Role-specific Elements 481 A.1.1. Role-specific Elements for NIST p256 482 unsigned char nist_p256_initiator_x_coord[32] = { 483 0x56, 0x26, 0x12, 0xcf, 0x36, 0x48, 0xfe, 0x0b, 484 0x07, 0x04, 0xbb, 0x12, 0x22, 0x50, 0xb2, 0x54, 485 0xb1, 0x94, 0x64, 0x7e, 0x54, 0xce, 0x08, 0x07, 486 0x2e, 0xec, 0xca, 0x74, 0x5b, 0x61, 0x2d, 0x25 487 }; 488 unsigned char nist_p256_initiator_y_coord[32] = { 489 0x3e, 0x44, 0xc7, 0xc9, 0x8c, 0x1c, 0xa1, 0x0b, 490 0x20, 0x09, 0x93, 0xb2, 0xfd, 0xe5, 0x69, 0xdc, 491 0x75, 0xbc, 0xad, 0x33, 0xc1, 0xe7, 0xc6, 0x45, 492 0x4d, 0x10, 0x1e, 0x6a, 0x3d, 0x84, 0x3c, 0xa4 493 }; 495 unsigned char nist_p256_responder_x_coord[32] = { 496 0x1e, 0xa4, 0x8a, 0xb1, 0xa4, 0xe8, 0x42, 0x39, 497 0xad, 0x73, 0x07, 0xf2, 0x34, 0xdf, 0x57, 0x4f, 498 0xc0, 0x9d, 0x54, 0xbe, 0x36, 0x1b, 0x31, 0x0f, 499 0x59, 0x91, 0x52, 0x33, 0xac, 0x19, 0x9d, 0x76 500 }; 501 unsigned char nist_p256_responder_y_coord[32] = { 502 0x26, 0x04, 0x09, 0x45, 0x0a, 0x05, 0x20, 0xe7, 503 0xa7, 0x27, 0xc1, 0x36, 0x76, 0x85, 0xca, 0x3e, 504 0x42, 0x16, 0xf4, 0x89, 0x85, 0x34, 0x6e, 0xd5, 505 0x17, 0xde, 0xc0, 0xb8, 0xad, 0xfd, 0xb2, 0x98 506 }; 508 A.1.2. Role-specific Elements for NIST p384 509 unsigned char nist_p384_initiator_x_coord[48] = { 510 0x95, 0x3f, 0x42, 0x9e, 0x50, 0x7f, 0xf9, 0xaa, 511 0xac, 0x1a, 0xf2, 0x85, 0x2e, 0x64, 0x91, 0x68, 512 0x64, 0xc4, 0x3c, 0xb7, 0x5c, 0xf8, 0xc9, 0x53, 513 0x6e, 0x58, 0x4c, 0x7f, 0xc4, 0x64, 0x61, 0xac, 514 0x51, 0x8a, 0x6f, 0xfe, 0xab, 0x74, 0xe6, 0x12, 515 0x81, 0xac, 0x38, 0x5d, 0x41, 0xe6, 0xb9, 0xa3 516 }; 517 unsigned char nist_p384_initiator_y_coord[48] = { 518 0x89, 0xd0, 0x97, 0x7b, 0x59, 0x4f, 0xa6, 0xd6, 519 0x7c, 0x5d, 0x93, 0x5b, 0x93, 0xc4, 0x07, 0xa9, 520 0x89, 0xee, 0xd5, 0xcd, 0x6f, 0x42, 0xf8, 0x38, 521 0xc8, 0xc6, 0x62, 0x24, 0x69, 0x0c, 0xd4, 0x48, 522 0xd8, 0x44, 0xd6, 0xc2, 0xe8, 0xcc, 0x62, 0x6b, 523 0x3c, 0x25, 0x53, 0xba, 0x4f, 0x71, 0xf8, 0xe7 524 }; 526 unsigned char nist_p384_responder_x_coord[48] = { 527 0xad, 0xbe, 0xd7, 0x1d, 0x3a, 0x71, 0x64, 0x98, 528 0x5f, 0xb4, 0xd6, 0x4b, 0x50, 0xd0, 0x84, 0x97, 529 0x4b, 0x7e, 0x57, 0x70, 0xd2, 0xd9, 0xf4, 0x92, 530 0x2a, 0x3f, 0xce, 0x99, 0xc5, 0x77, 0x33, 0x44, 531 0x14, 0x56, 0x92, 0xcb, 0xae, 0x46, 0x64, 0xdf, 532 0xe0, 0xbb, 0xd7, 0xb1, 0x29, 0x20, 0x72, 0xdf 533 }; 534 unsigned char nist_p384_responder_y_coord[48] = { 535 0x54, 0x58, 0x20, 0xad, 0x55, 0x1d, 0xca, 0xf3, 536 0x1c, 0x8a, 0xcd, 0x19, 0x40, 0xf9, 0x37, 0x83, 537 0xc7, 0xd6, 0xb3, 0x13, 0x7d, 0x53, 0x28, 0x5c, 538 0xf6, 0x2d, 0xf1, 0xdd, 0xa5, 0x8b, 0xad, 0x5d, 539 0x81, 0xab, 0xb1, 0x00, 0x39, 0xd6, 0xcc, 0x9c, 540 0xea, 0x1e, 0x84, 0x1d, 0xbf, 0xe3, 0x35, 0xf9 541 }; 543 A.1.3. Role-specific Elements for NIST p521 544 unsigned char nist_p521_initiator_x_coord[66] = { 545 0x00, 0x16, 0x20, 0x45, 0x19, 0x50, 0x95, 0x23, 546 0x0d, 0x24, 0xbe, 0x00, 0x87, 0xdc, 0xfa, 0xf0, 547 0x58, 0x9a, 0x01, 0x60, 0x07, 0x7a, 0xca, 0x76, 548 0x01, 0xab, 0x2d, 0x5a, 0x46, 0xcd, 0x2c, 0xb5, 549 0x11, 0x9a, 0xff, 0xaa, 0x48, 0x04, 0x91, 0x38, 550 0xcf, 0x86, 0xfc, 0xa4, 0xa5, 0x0f, 0x47, 0x01, 551 0x80, 0x1b, 0x30, 0xa3, 0xae, 0xe8, 0x1c, 0x2e, 552 0xea, 0xcc, 0xf0, 0x03, 0x9f, 0x77, 0x4c, 0x8d, 553 0x97, 0x76 554 }; 555 unsigned char nist_p521_initiator_y_coord[66] = { 556 0x01, 0x4c, 0x71, 0xfd, 0x1b, 0xd5, 0x9c, 0xa6, 557 0xed, 0x39, 0xef, 0x45, 0xc5, 0x06, 0xfd, 0x66, 558 0xc0, 0xeb, 0x0f, 0xbf, 0x21, 0xa3, 0x36, 0x74, 559 0xfd, 0xaa, 0x05, 0x6e, 0x4e, 0x33, 0x95, 0x42, 560 0x1a, 0x9d, 0x3f, 0x3a, 0x1c, 0x5e, 0xa8, 0x60, 561 0xf7, 0xe5, 0x59, 0x1d, 0x07, 0xaa, 0x6f, 0x40, 562 0x0a, 0x59, 0x3c, 0x27, 0xad, 0xe0, 0x48, 0xfd, 563 0xd1, 0x83, 0x37, 0x4c, 0xdf, 0xe1, 0x86, 0x72, 564 0xfc, 0x57 565 }; 567 unsigned char nist_p521_responder_x_coord[66] = { 568 0x00, 0x79, 0xe4, 0x4d, 0x6b, 0x5e, 0x12, 0x0a, 569 0x18, 0x2c, 0xb3, 0x05, 0x77, 0x0f, 0xc3, 0x44, 570 0x1a, 0xcd, 0x78, 0x46, 0x14, 0xee, 0x46, 0x3f, 571 0xab, 0xc9, 0x59, 0x7c, 0x85, 0xa0, 0xc2, 0xfb, 572 0x02, 0x32, 0x99, 0xde, 0x5d, 0xe1, 0x0d, 0x48, 573 0x2d, 0x71, 0x7d, 0x8d, 0x3f, 0x61, 0x67, 0x9e, 574 0x2b, 0x8b, 0x12, 0xde, 0x10, 0x21, 0x55, 0x0a, 575 0x5b, 0x2d, 0xe8, 0x05, 0x09, 0xf6, 0x20, 0x97, 576 0x84, 0xb4 577 }; 578 unsigned char nist_p521_responder_y_coord[66] = { 579 0x01, 0xb9, 0x9c, 0xc6, 0x41, 0x32, 0x5b, 0xd2, 580 0x35, 0xd8, 0x8b, 0x2b, 0xe4, 0x6e, 0xcc, 0xdf, 581 0x7c, 0x38, 0xc4, 0x5b, 0xf6, 0x74, 0x71, 0x5c, 582 0x77, 0x16, 0x8a, 0x80, 0xa9, 0x84, 0xc7, 0x7b, 583 0x9d, 0xfd, 0x83, 0x6f, 0xae, 0xf8, 0x24, 0x16, 584 0x2f, 0x21, 0x25, 0x65, 0xa2, 0x1a, 0x6b, 0x2d, 585 0x30, 0x62, 0xb3, 0xcc, 0x6e, 0x59, 0x3c, 0x7f, 586 0x58, 0x91, 0x81, 0x72, 0x07, 0x8c, 0x91, 0xac, 587 0x31, 0x1e 588 }; 590 A.1.4. Role-specific Elements for brainpool p256r1 592 unsigned char brainpool_p256r1_initiator_x_coord[32] = { 593 0x46, 0x98, 0x18, 0x6c, 0x27, 0xcd, 0x4b, 0x10, 594 0x7d, 0x55, 0xa3, 0xdd, 0x89, 0x1f, 0x9f, 0xca, 595 0xc7, 0x42, 0x5b, 0x8a, 0x23, 0xed, 0xf8, 0x75, 596 0xac, 0xc7, 0xe9, 0x8d, 0xc2, 0x6f, 0xec, 0xd8 597 }; 598 unsigned char brainpool_p256r1_initiator_y_coord[32] = { 599 0x16, 0x30, 0x68, 0x32, 0x3b, 0xb0, 0x21, 0xee, 600 0xeb, 0xf7, 0xb6, 0x7c, 0xae, 0x52, 0x26, 0x42, 601 0x59, 0x28, 0x58, 0xb6, 0x14, 0x90, 0xed, 0x69, 602 0xd0, 0x67, 0xea, 0x25, 0x60, 0x0f, 0xa9, 0x6c 603 }; 605 unsigned char brainpool_p256r1_responder_x_coord[32] = { 606 0x90, 0x18, 0x84, 0xc9, 0xdc, 0xcc, 0xb5, 0x2f, 607 0x4a, 0x3f, 0x4f, 0x18, 0x0a, 0x22, 0x56, 0x6a, 608 0xa9, 0xef, 0xd4, 0xe6, 0xc3, 0x53, 0xc2, 0x1a, 609 0x23, 0x54, 0xdd, 0x08, 0x7e, 0x10, 0xd8, 0xe3 610 }; 611 unsigned char brainpool_p256r1_responder_y_coord[32] = { 612 0x2a, 0xfa, 0x98, 0x9b, 0xe3, 0xda, 0x30, 0xfd, 613 0x32, 0x28, 0xcb, 0x66, 0xfb, 0x40, 0x7f, 0xf2, 614 0xb2, 0x25, 0x80, 0x82, 0x44, 0x85, 0x13, 0x7e, 615 0x4b, 0xb5, 0x06, 0xc0, 0x03, 0x69, 0x23, 0x64 616 }; 618 A.1.5. Role-specific Elements for brainpool p384r1 619 unsigned char brainpool_p384r1_initiator_x_coord[48] = { 620 0x0a, 0x2c, 0xeb, 0x49, 0x5e, 0xb7, 0x23, 0xbd, 621 0x20, 0x5b, 0xe0, 0x49, 0xdf, 0xcf, 0xcf, 0x19, 622 0x37, 0x36, 0xe1, 0x2f, 0x59, 0xdb, 0x07, 0x06, 623 0xb5, 0xeb, 0x2d, 0xae, 0xc2, 0xb2, 0x38, 0x62, 624 0xa6, 0x73, 0x09, 0xa0, 0x6c, 0x0a, 0xa2, 0x30, 625 0x99, 0xeb, 0xf7, 0x1e, 0x47, 0xb9, 0x5e, 0xbe 626 }; 627 unsigned char brainpool_p384r1_initiator_y_coord[48] = { 628 0x54, 0x76, 0x61, 0x65, 0x75, 0x5a, 0x2f, 0x99, 629 0x39, 0x73, 0xca, 0x6c, 0xf9, 0xf7, 0x12, 0x86, 630 0x54, 0xd5, 0xd4, 0xad, 0x45, 0x7b, 0xbf, 0x32, 631 0xee, 0x62, 0x8b, 0x9f, 0x52, 0xe8, 0xa0, 0xc9, 632 0xb7, 0x9d, 0xd1, 0x09, 0xb4, 0x79, 0x1c, 0x3e, 633 0x1a, 0xbf, 0x21, 0x45, 0x66, 0x6b, 0x02, 0x52 634 }; 636 unsigned char brainpool_p384r1_responder_x_coord[48] = { 637 0x03, 0xa2, 0x57, 0xef, 0xe8, 0x51, 0x21, 0xa0, 638 0xc8, 0x9e, 0x21, 0x02, 0xb5, 0x9a, 0x36, 0x25, 639 0x74, 0x22, 0xd1, 0xf2, 0x1b, 0xa8, 0x9a, 0x9b, 640 0x97, 0xbc, 0x5a, 0xeb, 0x26, 0x15, 0x09, 0x71, 641 0x77, 0x59, 0xec, 0x8b, 0xb7, 0xe1, 0xe8, 0xce, 642 0x65, 0xb8, 0xaf, 0xf8, 0x80, 0xae, 0x74, 0x6c 643 }; 644 unsigned char brainpool_p384r1_responder_y_coord[48] = { 645 0x2f, 0xd9, 0x6a, 0xc7, 0x3e, 0xec, 0x76, 0x65, 646 0x2d, 0x38, 0x7f, 0xec, 0x63, 0x26, 0x3f, 0x04, 647 0xd8, 0x4e, 0xff, 0xe1, 0x0a, 0x51, 0x74, 0x70, 648 0xe5, 0x46, 0x63, 0x7f, 0x5c, 0xc0, 0xd1, 0x7c, 649 0xfb, 0x2f, 0xea, 0xe2, 0xd8, 0x0f, 0x84, 0xcb, 650 0xe9, 0x39, 0x5c, 0x64, 0xfe, 0xcb, 0x2f, 0xf1 651 }; 653 A.1.6. Role-specific Elements for brainpool p512r1 654 unsigned char brainpool_p512r1_initiator_x_coord[64] = { 655 0x4c, 0xe9, 0xb6, 0x1c, 0xe2, 0x00, 0x3c, 0x9c, 656 0xa9, 0xc8, 0x56, 0x52, 0xaf, 0x87, 0x3e, 0x51, 657 0x9c, 0xbb, 0x15, 0x31, 0x1e, 0xc1, 0x05, 0xfc, 658 0x7c, 0x77, 0xd7, 0x37, 0x61, 0x27, 0xd0, 0x95, 659 0x98, 0xee, 0x5d, 0xa4, 0x3d, 0x09, 0xdb, 0x3d, 660 0xfa, 0x89, 0x9e, 0x7f, 0xa6, 0xa6, 0x9c, 0xff, 661 0x83, 0x5c, 0x21, 0x6c, 0x3e, 0xf2, 0xfe, 0xdc, 662 0x63, 0xe4, 0xd1, 0x0e, 0x75, 0x45, 0x69, 0x0f 663 }; 664 unsigned char brainpool_p512r1_initiator_y_coord[64] = { 665 0x5a, 0x28, 0x01, 0xbe, 0x96, 0x82, 0x4e, 0xf6, 666 0xfa, 0xed, 0x7d, 0xfd, 0x48, 0x8b, 0x48, 0x4e, 667 0xd1, 0x97, 0x87, 0xc4, 0x05, 0x5d, 0x15, 0x2a, 668 0xf4, 0x91, 0x4b, 0x75, 0x90, 0xd9, 0x34, 0x2c, 669 0x3c, 0x12, 0xf2, 0xf5, 0x25, 0x94, 0x24, 0x34, 670 0xa7, 0x6d, 0x66, 0xbc, 0x27, 0xa4, 0xa0, 0x8d, 671 0xd5, 0xe1, 0x54, 0xa3, 0x55, 0x26, 0xd4, 0x14, 672 0x17, 0x0f, 0xc1, 0xc7, 0x3d, 0x68, 0x7f, 0x5a 673 }; 675 unsigned char brainpool_p512r1_responder_x_coord[64] = { 676 0x2a, 0x60, 0x32, 0x27, 0xa1, 0xe6, 0x94, 0x72, 677 0x1c, 0x48, 0xbe, 0xc5, 0x77, 0x14, 0x30, 0x76, 678 0xe4, 0xbf, 0xf7, 0x7b, 0xc5, 0xfd, 0xdf, 0x19, 679 0x1e, 0x0f, 0xdf, 0x1c, 0x40, 0xfa, 0x34, 0x9e, 680 0x1f, 0x42, 0x24, 0xa3, 0x2c, 0xd5, 0xc7, 0xc9, 681 0x7b, 0x47, 0x78, 0x96, 0xf1, 0x37, 0x0e, 0x88, 682 0xcb, 0xa6, 0x52, 0x29, 0xd7, 0xa8, 0x38, 0x29, 683 0x8e, 0x6e, 0x23, 0x47, 0xd4, 0x4b, 0x70, 0x3e 684 }; 685 unsigned char brainpool_p512r1_responder_y_coord[64] = { 686 0x2a, 0xbe, 0x59, 0xe6, 0xc4, 0xb3, 0xd8, 0x09, 687 0x66, 0x89, 0x0a, 0x2d, 0x19, 0xf0, 0x9c, 0x9f, 688 0xb4, 0xab, 0x8f, 0x50, 0x68, 0x3c, 0x74, 0x64, 689 0x4e, 0x19, 0x55, 0x81, 0x9b, 0x48, 0x5c, 0xf4, 690 0x12, 0x8d, 0xb9, 0xd8, 0x02, 0x5b, 0xe1, 0x26, 691 0x7e, 0x19, 0x5c, 0xfd, 0x70, 0xf7, 0x4b, 0xdc, 692 0xb5, 0x5d, 0xc1, 0x7a, 0xe9, 0xd1, 0x05, 0x2e, 693 0xd1, 0xfd, 0x2f, 0xce, 0x63, 0x77, 0x48, 0x2c 694 }; 696 A.2. FFC Role-specific Elements 697 A.2.1. Role-specific Elements for 2048-bit FFC group 699 unsigned char group14_initiator[256] = { 700 0x97, 0x15, 0x52, 0x05, 0x89, 0xdf, 0xeb, 0x3d, 701 0xd6, 0x50, 0xe1, 0x96, 0xd4, 0x30, 0x81, 0x04, 702 0x3a, 0x4d, 0x6c, 0xae, 0xe5, 0x81, 0xb6, 0x1d, 703 0x53, 0xca, 0x65, 0xfa, 0x19, 0x59, 0xfd, 0xe4, 704 0xa4, 0xf0, 0x7b, 0xc5, 0xc7, 0xc4, 0xa9, 0xd6, 705 0xdf, 0x79, 0x54, 0x04, 0x5d, 0x64, 0xdc, 0x3c, 706 0xec, 0x0a, 0xa0, 0xd3, 0x2f, 0xef, 0xf3, 0xf5, 707 0x2c, 0x51, 0xe6, 0x6d, 0x1c, 0xdc, 0xac, 0x09, 708 0x3c, 0x00, 0x62, 0x41, 0xe7, 0x0b, 0x0d, 0xba, 709 0x1b, 0xf2, 0xb9, 0x22, 0xe9, 0x11, 0xea, 0xc7, 710 0xb1, 0xb2, 0x15, 0xc5, 0x19, 0x46, 0x2e, 0x15, 711 0x88, 0x41, 0xe0, 0x24, 0x16, 0x13, 0xc1, 0x0e, 712 0x27, 0xd3, 0x5f, 0x71, 0x12, 0xc6, 0x6f, 0x75, 713 0x1e, 0xe8, 0xa4, 0xaa, 0x57, 0xa3, 0x22, 0x32, 714 0xdc, 0xd4, 0xe3, 0xb5, 0xa3, 0xd0, 0x87, 0xb1, 715 0x3d, 0x1c, 0x2a, 0xcf, 0xe5, 0x87, 0x1f, 0xea, 716 0x98, 0xdd, 0xd6, 0x8f, 0xce, 0x0b, 0xdd, 0xba, 717 0xae, 0x85, 0x81, 0xd6, 0x89, 0x27, 0x71, 0xc9, 718 0x9f, 0xf9, 0xea, 0x5a, 0x89, 0xa6, 0xaa, 0x0a, 719 0xc2, 0x76, 0xd6, 0x6d, 0x89, 0xd3, 0xd2, 0x4c, 720 0xc0, 0xad, 0xb0, 0xf6, 0x4d, 0x2b, 0x7c, 0xbf, 721 0xd2, 0x4e, 0xe3, 0x2b, 0x4f, 0xd7, 0xc5, 0x3a, 722 0x4b, 0x1c, 0xc0, 0x17, 0xbe, 0x1e, 0x7b, 0x81, 723 0x1c, 0x77, 0xd4, 0xc2, 0xf6, 0xca, 0xb8, 0x51, 724 0xa8, 0x94, 0xe9, 0xe5, 0xe9, 0xa5, 0x46, 0x60, 725 0xb5, 0x36, 0x10, 0xcf, 0xc8, 0x2a, 0xe7, 0x7f, 726 0x94, 0x49, 0x96, 0xeb, 0xff, 0x7b, 0x62, 0xa9, 727 0x95, 0x35, 0x5c, 0xad, 0xcd, 0x52, 0x06, 0xa1, 728 0x9c, 0xa1, 0xb7, 0xe0, 0xcd, 0xd3, 0x13, 0x43, 729 0xee, 0xe7, 0xf1, 0xb1, 0x4d, 0x76, 0x51, 0x53, 730 0x24, 0x4f, 0xb4, 0xbd, 0x8b, 0x0c, 0x73, 0xd1, 731 0x6f, 0xf5, 0x27, 0x3f, 0xb9, 0x60, 0xa6, 0x17 732 } 734 unsigned char group14_responder[256] = { 735 0x3c, 0x86, 0x96, 0x8a, 0xb0, 0x4b, 0x14, 0xdd, 736 0x27, 0xf0, 0x6f, 0x51, 0xa2, 0xb2, 0xbd, 0x7d, 737 0x27, 0x34, 0xf2, 0x21, 0x3c, 0x6a, 0x63, 0xcf, 738 0x15, 0xd8, 0xeb, 0x21, 0xc2, 0x2d, 0xe5, 0x75, 739 0xbb, 0x7e, 0x09, 0x2e, 0xba, 0xa2, 0xd7, 0x04, 740 0x7c, 0x81, 0x82, 0x07, 0x09, 0x15, 0x28, 0x35, 741 0xf7, 0x0a, 0xd6, 0xa9, 0xaf, 0x0d, 0xb1, 0x97, 742 0x71, 0x76, 0x74, 0x66, 0xa3, 0x54, 0x9e, 0xd9, 743 0xa9, 0x13, 0xa8, 0xcf, 0xec, 0xce, 0x60, 0xd8, 744 0xea, 0x18, 0x67, 0xb7, 0x15, 0x17, 0xf7, 0xe6, 745 0x23, 0xc8, 0x30, 0x02, 0xb9, 0x9e, 0x0e, 0xe6, 746 0x64, 0x3e, 0x1a, 0x61, 0xb9, 0xbf, 0xd8, 0x7a, 747 0x0e, 0xbe, 0x1e, 0x58, 0xdc, 0xba, 0x9e, 0x31, 748 0xab, 0xcc, 0x6b, 0x03, 0xcc, 0x08, 0xf8, 0xa2, 749 0xcb, 0x9d, 0xd5, 0x1a, 0xb8, 0x6a, 0x1f, 0x4b, 750 0xab, 0xe8, 0x2a, 0x0c, 0x44, 0xde, 0x2a, 0xfd, 751 0x0f, 0x6d, 0x2f, 0xe4, 0xc4, 0x41, 0x61, 0xed, 752 0x4a, 0x85, 0x2a, 0x06, 0x9d, 0x3a, 0x27, 0xf0, 753 0x30, 0x6e, 0xf8, 0xb1, 0xc8, 0xde, 0x1f, 0xe0, 754 0xfb, 0xb6, 0xd0, 0x51, 0xee, 0x7d, 0x3a, 0x05, 755 0x0c, 0xbb, 0xa0, 0x41, 0xc5, 0x5d, 0x25, 0xb4, 756 0x48, 0xd6, 0x4f, 0x08, 0x85, 0x96, 0xa3, 0xa6, 757 0xf5, 0x1b, 0xa1, 0xb3, 0x13, 0x50, 0x06, 0xb2, 758 0xef, 0xf8, 0x2f, 0xe8, 0x7b, 0xe0, 0x5a, 0xe1, 759 0x42, 0x16, 0xfc, 0xdf, 0xad, 0x53, 0x95, 0x43, 760 0xb0, 0x73, 0x33, 0xa9, 0x08, 0x29, 0xcd, 0x6c, 761 0x14, 0x98, 0x5e, 0x98, 0xe6, 0xca, 0x92, 0x55, 762 0xd9, 0x3e, 0xc3, 0x51, 0x83, 0xda, 0x1e, 0x6d, 763 0x16, 0x88, 0x3f, 0xd1, 0xa5, 0xd1, 0xc5, 0x43, 764 0xcf, 0x8a, 0xd7, 0x29, 0xaa, 0xa6, 0x4f, 0x6b, 765 0x4f, 0xee, 0x36, 0x65, 0xd6, 0x71, 0xef, 0x71, 766 0xc5, 0x5b, 0x7c, 0x6d, 0x90, 0x9d, 0xf5, 0x74 767 } 769 A.2.2. Role-specific Elements for 3072-bit FFC group 771 unsigned char group15_initiator[384] = { 772 0x12, 0xce, 0x47, 0xcf, 0xa9, 0xc4, 0xfc, 0x5e, 773 0x99, 0xf6, 0xd2, 0x43, 0x5c, 0x60, 0x39, 0xb0, 774 0x06, 0xe9, 0x4a, 0xec, 0x21, 0x60, 0x9f, 0x5a, 775 0x25, 0xb1, 0x22, 0xf2, 0x53, 0x2b, 0x44, 0xe3, 776 0x6c, 0xfb, 0x9c, 0x46, 0x3c, 0x8f, 0x88, 0xaa, 777 0x60, 0xfd, 0x3a, 0x51, 0xf1, 0x19, 0x8d, 0x88, 778 0xee, 0xa4, 0xc2, 0x21, 0x3c, 0xbb, 0xc5, 0x53, 779 0x12, 0x16, 0xfb, 0xd3, 0xa9, 0x4d, 0x85, 0x5d, 780 0x17, 0x9d, 0x92, 0x15, 0x30, 0xc7, 0x97, 0x0c, 781 0x68, 0x62, 0x91, 0xff, 0xce, 0x81, 0x97, 0x25, 782 0x54, 0x94, 0x0e, 0x3a, 0x14, 0x36, 0x4e, 0xc2, 783 0xda, 0xc2, 0xaa, 0xa3, 0x58, 0x49, 0xca, 0xa4, 784 0xa4, 0x0b, 0x2a, 0x26, 0x35, 0x0d, 0x72, 0x4f, 785 0x10, 0x3c, 0x5f, 0x4d, 0xbc, 0x7c, 0x09, 0xcb, 786 0xef, 0x99, 0xdd, 0x73, 0x1c, 0x23, 0x69, 0xa7, 787 0xc9, 0xc4, 0x1a, 0x4c, 0x7c, 0xf2, 0xca, 0x48, 788 0x15, 0xf4, 0xd6, 0x30, 0x25, 0x44, 0x9f, 0xcd, 789 0xc0, 0x23, 0x72, 0x4a, 0x4f, 0x83, 0x3c, 0xba, 790 0x88, 0x1c, 0x5a, 0xcc, 0x3f, 0xf6, 0x5e, 0x68, 791 0x5a, 0x38, 0x10, 0xa1, 0xd2, 0x99, 0x5f, 0x4d, 792 0x48, 0xec, 0xb1, 0x2f, 0x9a, 0x08, 0xcf, 0x59, 793 0x0f, 0xeb, 0x35, 0x0b, 0xf5, 0xab, 0x6e, 0xc9, 794 0x69, 0x44, 0xbd, 0x9a, 0x62, 0x3b, 0x53, 0x4e, 795 0x59, 0xc9, 0x38, 0x1d, 0x9e, 0x61, 0x5b, 0xdb, 796 0x72, 0x4e, 0xb9, 0x35, 0xb5, 0xc3, 0x9f, 0x47, 797 0x4f, 0x70, 0xfa, 0xff, 0x95, 0x45, 0xf9, 0x4a, 798 0xf4, 0xc3, 0xcc, 0x8e, 0xf4, 0x89, 0x0b, 0x73, 799 0x08, 0x97, 0x0d, 0x22, 0xe2, 0x97, 0xc8, 0xf8, 800 0x45, 0x83, 0x8f, 0xea, 0x68, 0x4b, 0xe0, 0xed, 801 0x71, 0xdb, 0x73, 0x62, 0x57, 0xab, 0x03, 0x69, 802 0x93, 0x66, 0x0e, 0xc1, 0x29, 0x2d, 0x01, 0x7c, 803 0x7d, 0x50, 0x14, 0x03, 0x9f, 0xdb, 0x5c, 0x4c, 804 0xf4, 0xdf, 0xa4, 0x9c, 0xda, 0x80, 0xd9, 0xbe, 805 0x0d, 0xdc, 0xb8, 0x0b, 0xc2, 0x19, 0x28, 0xaf, 806 0xf0, 0x98, 0x1a, 0xec, 0x26, 0xf0, 0x15, 0x1b, 807 0xa1, 0xa1, 0x11, 0x8f, 0x9f, 0x5a, 0x1e, 0x8a, 808 0x8e, 0x57, 0x84, 0x60, 0xc5, 0xda, 0xa2, 0x74, 809 0x3d, 0xe8, 0xc0, 0x08, 0x0f, 0x7e, 0xdd, 0x11, 810 0xd6, 0xbf, 0x5b, 0x2e, 0xde, 0x81, 0x1a, 0xfd, 811 0x33, 0x9c, 0x07, 0xcc, 0x1d, 0x0f, 0x63, 0xc8, 812 0x3e, 0x1d, 0xbb, 0x16, 0x5e, 0x70, 0x4c, 0x82, 813 0x8e, 0x72, 0xb6, 0x35, 0x69, 0xc6, 0xe4, 0xa7, 814 0xae, 0x6e, 0xa2, 0x23, 0xe8, 0x86, 0x99, 0x3a, 815 0x0b, 0x64, 0xec, 0xe2, 0xdb, 0xb2, 0xaa, 0xc4, 816 0x59, 0xe1, 0x23, 0x3d, 0xa5, 0x46, 0x92, 0x8f, 817 0x04, 0x34, 0x5f, 0x7a, 0x13, 0x55, 0x75, 0xd5, 818 0x6d, 0x0f, 0x5a, 0xc2, 0x0d, 0x16, 0xf9, 0xc0, 819 0xf3, 0xac, 0x0a, 0xa8, 0x62, 0x20, 0x09, 0x4e 820 } 822 unsigned char group15_responder[384] = { 823 0x9f, 0x17, 0xe0, 0xf9, 0x3d, 0x23, 0x36, 0x6e, 824 0x7d, 0xa6, 0x34, 0x75, 0xb7, 0xb4, 0x22, 0xb1, 825 0x87, 0x7a, 0x00, 0x4e, 0x02, 0x14, 0x4e, 0xe6, 826 0x96, 0xd4, 0x2c, 0x61, 0x00, 0x97, 0x7d, 0x99, 827 0xad, 0x18, 0x1c, 0xc4, 0x1b, 0xed, 0x6f, 0xd3, 828 0x9f, 0x85, 0xef, 0xfd, 0x1e, 0xcd, 0x13, 0xa0, 829 0x61, 0x2f, 0xf8, 0xa7, 0x11, 0xab, 0x83, 0xfc, 830 0xae, 0xad, 0xb6, 0xed, 0x6b, 0x7f, 0x34, 0x81, 831 0x30, 0xa2, 0x1c, 0x38, 0xb3, 0x31, 0x7b, 0x74, 832 0xc1, 0x0f, 0xf4, 0x29, 0x4b, 0xdd, 0x2b, 0x09, 833 0x32, 0xb7, 0x8f, 0x84, 0xab, 0x89, 0x9d, 0x64, 834 0xea, 0xec, 0x00, 0xa9, 0x0c, 0x82, 0x1c, 0x35, 835 0x75, 0x3b, 0x7f, 0x35, 0x28, 0xb8, 0xcc, 0xb1, 836 0x62, 0xc2, 0xd0, 0x74, 0x83, 0xb6, 0xf7, 0x76, 837 0x10, 0x2a, 0x7e, 0xce, 0xd0, 0x0a, 0x68, 0x46, 838 0xac, 0x78, 0x26, 0x90, 0xc7, 0x0e, 0xaa, 0x21, 839 0x59, 0xb1, 0x8d, 0x8e, 0xc8, 0xfb, 0x5c, 0x60, 840 0xec, 0x53, 0x9c, 0x40, 0xd9, 0x42, 0xab, 0xa3, 841 0xd8, 0x45, 0x81, 0x04, 0x6c, 0x13, 0x79, 0x66, 842 0x51, 0x1f, 0xa4, 0x81, 0x38, 0x0d, 0x48, 0x06, 843 0xef, 0x25, 0x89, 0x26, 0x5d, 0x09, 0x0e, 0xbe, 844 0xba, 0xe2, 0xca, 0x2c, 0xa6, 0x3e, 0x36, 0xd7, 845 0xef, 0x46, 0xe3, 0x8a, 0x1d, 0x85, 0x59, 0xc4, 846 0x89, 0x5e, 0x36, 0xea, 0xb2, 0x44, 0x79, 0xc8, 847 0x91, 0x80, 0x2c, 0x89, 0xfc, 0x55, 0x81, 0x62, 848 0x40, 0x82, 0x1a, 0x66, 0xf1, 0x1c, 0x10, 0xf0, 849 0x34, 0xdd, 0x52, 0x9f, 0xff, 0x63, 0x62, 0xe2, 850 0xec, 0x68, 0x75, 0xa0, 0x2e, 0x72, 0x44, 0xf3, 851 0x66, 0x33, 0x2a, 0x65, 0x61, 0x79, 0x91, 0x13, 852 0x4f, 0x73, 0x8f, 0x38, 0xef, 0xa6, 0x65, 0x88, 853 0xf9, 0x03, 0x35, 0x57, 0xed, 0xb9, 0x05, 0x7f, 854 0xe8, 0xfb, 0x90, 0xac, 0x19, 0x2e, 0xff, 0x9c, 855 0xaf, 0x76, 0x5f, 0x40, 0x74, 0x49, 0x11, 0xee, 856 0x18, 0xb5, 0x6e, 0xa4, 0x91, 0xbc, 0x42, 0x1c, 857 0x0e, 0x2e, 0x0d, 0x6f, 0xc3, 0x6a, 0x7b, 0x8b, 858 0xf4, 0x1a, 0x30, 0x52, 0x54, 0x99, 0xae, 0x8a, 859 0x8c, 0x33, 0x5e, 0x5c, 0xa8, 0xc2, 0x49, 0xf3, 860 0xbd, 0x0e, 0x85, 0x22, 0x9b, 0x5d, 0x92, 0xbc, 861 0x42, 0x8b, 0x60, 0x38, 0xd7, 0x14, 0x24, 0xaa, 862 0x36, 0xc7, 0x8f, 0xd7, 0xc2, 0x14, 0x20, 0x72, 863 0x0a, 0xba, 0x28, 0x95, 0x65, 0x53, 0x30, 0x0f, 864 0xc8, 0x17, 0xc2, 0x02, 0x58, 0x08, 0x7b, 0x93, 865 0x36, 0xcc, 0x80, 0x19, 0x9c, 0x1f, 0xad, 0x1f, 866 0x8e, 0x8e, 0x2e, 0x3a, 0xbf, 0x0f, 0xab, 0x76, 867 0x7a, 0xac, 0xce, 0x1a, 0x57, 0xe6, 0x7c, 0x64, 868 0x93, 0x5f, 0x92, 0x5d, 0xbe, 0xe2, 0x11, 0xf6, 869 0x58, 0x90, 0xd8, 0x87, 0xe4, 0x17, 0x8b, 0x61, 870 0xf6, 0x11, 0xe2, 0x0a, 0x99, 0xe8, 0x55, 0xcc 871 } 873 A.2.3. Role-specific Elements for 4096-bit FFC group 875 unsigned char group16_initiator[512] = { 876 0x79, 0x8f, 0xfe, 0xed, 0x53, 0x08, 0x41, 0x73, 877 0xba, 0x89, 0x66, 0x8d, 0xf0, 0x18, 0xee, 0xe0, 878 0x76, 0xda, 0x5f, 0xf8, 0x55, 0x36, 0x53, 0x71, 879 0xd3, 0xfd, 0xf5, 0x30, 0xd9, 0xa0, 0xd2, 0x30, 880 0x2c, 0x16, 0x38, 0x0a, 0x2b, 0x91, 0x6e, 0x02, 881 0xc9, 0x27, 0x52, 0xf2, 0x51, 0x0e, 0xe3, 0x1f, 882 0xbb, 0x2b, 0x8b, 0xad, 0xa8, 0xc3, 0xf4, 0xc0, 883 0xba, 0x45, 0xf5, 0xf7, 0x4c, 0x91, 0x6f, 0x86, 884 0x9a, 0xb8, 0xb1, 0xea, 0x7d, 0x89, 0x91, 0x39, 885 0xd0, 0xb0, 0x95, 0x98, 0xf1, 0xa9, 0x03, 0x8d, 886 0xc5, 0x7a, 0x75, 0x36, 0x7a, 0xf8, 0x0b, 0xf6, 887 0xbf, 0x5c, 0x33, 0xde, 0x7f, 0xed, 0xec, 0x1a, 888 0x1e, 0xbc, 0x54, 0xf1, 0x5f, 0x5c, 0xfa, 0x2f, 889 0x98, 0x85, 0xe0, 0x6f, 0xb8, 0x2b, 0x16, 0xe9, 890 0x48, 0x6e, 0xe4, 0xb3, 0x3f, 0x20, 0x66, 0x3b, 891 0x3d, 0xcf, 0x62, 0xc6, 0xed, 0xe5, 0x2e, 0x7a, 892 0xac, 0x0b, 0x15, 0x6d, 0x15, 0x4e, 0xcb, 0x23, 893 0xcd, 0x5a, 0xed, 0x51, 0xf4, 0xbe, 0x52, 0x6b, 894 0x55, 0x30, 0xe3, 0x57, 0x91, 0x1f, 0xf3, 0xbd, 895 0x07, 0xd9, 0x8b, 0x32, 0x9d, 0xfb, 0x99, 0xbb, 896 0x17, 0x81, 0x24, 0xd1, 0x82, 0x10, 0xce, 0x34, 897 0x77, 0x4f, 0xbc, 0x4d, 0xe6, 0x23, 0xdf, 0x2c, 898 0x24, 0x8d, 0xf5, 0xf5, 0xf9, 0x93, 0x3d, 0x08, 899 0x55, 0x31, 0xc8, 0xe5, 0xf3, 0x5b, 0x4c, 0xe2, 900 0x4a, 0xdf, 0x88, 0x83, 0xc7, 0x84, 0x1b, 0xfa, 901 0x99, 0x72, 0x1b, 0x13, 0x9e, 0xf6, 0x76, 0xca, 902 0xa9, 0xa2, 0x7f, 0xd8, 0xc0, 0x9a, 0x46, 0x15, 903 0x0b, 0x20, 0x4e, 0x53, 0x09, 0xe5, 0x16, 0x67, 904 0xaf, 0xe5, 0x07, 0xe9, 0x57, 0x2f, 0xdc, 0x38, 905 0xde, 0x33, 0x19, 0x49, 0x08, 0x05, 0x6f, 0xb9, 906 0xb0, 0xce, 0x97, 0xab, 0xb5, 0xac, 0x88, 0x4e, 907 0x7a, 0xbe, 0xd0, 0xaa, 0x74, 0x67, 0x73, 0xe3, 908 0xd5, 0x04, 0x18, 0x41, 0x51, 0xcd, 0xf5, 0x59, 909 0x85, 0xb6, 0x4b, 0x63, 0x1f, 0x24, 0x27, 0x18, 910 0x02, 0x1d, 0xb7, 0x95, 0x45, 0xae, 0x60, 0x3a, 911 0xcc, 0xcb, 0xca, 0x6f, 0xb8, 0x6f, 0x1b, 0x95, 912 0xba, 0x46, 0x76, 0x8d, 0xc3, 0x61, 0xd0, 0x86, 913 0xc3, 0x6c, 0x9a, 0xd9, 0x33, 0xde, 0xce, 0x97, 914 0x28, 0x69, 0xa3, 0xd4, 0xbc, 0x49, 0x6d, 0x10, 915 0x8d, 0x31, 0x77, 0x53, 0x94, 0xe3, 0xc5, 0xf9, 916 0xea, 0xcd, 0xb3, 0x5b, 0xbf, 0x51, 0x6f, 0x57, 917 0x8b, 0x9f, 0x40, 0x8b, 0x47, 0xa8, 0x77, 0xbe, 918 0x44, 0x3d, 0x8b, 0x54, 0x63, 0xc3, 0xbb, 0xdc, 919 0xeb, 0x9e, 0xec, 0xf5, 0x7c, 0x31, 0x69, 0x45, 920 0xf5, 0x48, 0x2c, 0x84, 0x57, 0x53, 0xe1, 0x20, 921 0x25, 0x2b, 0x70, 0x3a, 0x4e, 0x9f, 0x36, 0xc3, 922 0x16, 0xf8, 0x4f, 0xa3, 0x21, 0x66, 0x51, 0x49, 923 0xc6, 0x6d, 0xac, 0xd0, 0x2a, 0x8e, 0xd4, 0x5d, 924 0x55, 0x11, 0x1a, 0x31, 0x77, 0xdb, 0xa8, 0xf4, 925 0x7a, 0xb9, 0x32, 0xe8, 0x54, 0xaf, 0xed, 0x55, 926 0x6e, 0x87, 0xd0, 0x5c, 0x6d, 0xb9, 0x19, 0x0f, 927 0xbf, 0x16, 0xa6, 0xc7, 0x7c, 0xa2, 0xd3, 0x95, 928 0x34, 0xad, 0xfc, 0xc2, 0x0a, 0xfc, 0x23, 0x2f, 929 0xc7, 0xe9, 0x98, 0x92, 0x90, 0x11, 0x1d, 0xd5, 930 0xf5, 0xbc, 0xd2, 0x8f, 0x09, 0xb0, 0x43, 0x63, 931 0x65, 0x51, 0x17, 0xfd, 0x11, 0xee, 0xd2, 0x23, 932 0xff, 0x9f, 0x4e, 0x39, 0xda, 0xfe, 0x89, 0xc1, 933 0x9d, 0xf3, 0xe0, 0x31, 0xdd, 0x74, 0x36, 0xb2, 934 0x9f, 0xfa, 0xd2, 0xd0, 0xfc, 0xc4, 0x37, 0x83, 935 0xf0, 0x13, 0x1f, 0x8d, 0x80, 0x47, 0x53, 0x93, 936 0x0c, 0x84, 0x1f, 0x69, 0x08, 0x74, 0x33, 0x29, 937 0x59, 0x5f, 0x62, 0x7d, 0xe2, 0x59, 0x1c, 0x56, 938 0x52, 0x75, 0xc2, 0x83, 0xad, 0xc0, 0xd4, 0x66, 939 0x71, 0x6a, 0x1a, 0x61, 0x94, 0xa4, 0xa5, 0x73 940 } 942 unsigned char group16_responder[512] = { 943 0x06, 0x85, 0x8b, 0x2e, 0x0c, 0x05, 0xfd, 0x1b, 944 0x1f, 0x93, 0xd3, 0xc2, 0xe6, 0x70, 0xc8, 0xe1, 945 0x17, 0x39, 0xe6, 0x38, 0x75, 0xfd, 0xdd, 0xe6, 946 0x4a, 0xfe, 0x95, 0x5e, 0xd6, 0x80, 0x17, 0x2c, 947 0x1d, 0xbb, 0x8c, 0xf7, 0x2d, 0x9b, 0x17, 0x93, 948 0x4d, 0x92, 0xd3, 0x57, 0xa0, 0xcd, 0x44, 0x37, 949 0x1d, 0xdf, 0xd3, 0x80, 0x25, 0xa0, 0xa8, 0x51, 950 0x13, 0xb9, 0x63, 0xec, 0xda, 0xa2, 0x8b, 0xdb, 951 0x2e, 0x09, 0x9c, 0x93, 0x09, 0x02, 0x64, 0xb4, 952 0xee, 0xa2, 0x3c, 0x75, 0x0e, 0xbb, 0x31, 0x44, 953 0xff, 0xf0, 0x7e, 0x99, 0x86, 0x17, 0xe5, 0xc4, 954 0xf9, 0x39, 0xe1, 0xec, 0xed, 0xd5, 0x13, 0xe9, 955 0x97, 0xda, 0x2b, 0xb5, 0x1e, 0x23, 0x88, 0x1a, 956 0xb5, 0x10, 0xda, 0x24, 0x05, 0xe7, 0xdf, 0xc3, 957 0xc2, 0x24, 0xd2, 0xf4, 0x14, 0x6c, 0xfd, 0x2e, 958 0x62, 0xa8, 0x00, 0x4e, 0xa9, 0x96, 0x3d, 0x48, 959 0x4f, 0xcf, 0x62, 0xfe, 0x16, 0x06, 0x56, 0x81, 960 0x1b, 0x58, 0xca, 0x84, 0xd2, 0x86, 0xad, 0xc6, 961 0x66, 0xb4, 0x6f, 0x49, 0x91, 0x2a, 0xb5, 0x3b, 962 0x39, 0xec, 0x88, 0xdf, 0x31, 0x24, 0x44, 0x04, 963 0x30, 0x4e, 0x91, 0xdd, 0x1f, 0xf7, 0x62, 0x0c, 964 0x8a, 0xf1, 0xcd, 0xf1, 0xcf, 0x56, 0x42, 0x1d, 965 0x1b, 0xb2, 0x47, 0x7f, 0x4c, 0x82, 0x88, 0xbe, 966 0x99, 0x31, 0x96, 0x6e, 0x5f, 0xa0, 0x6a, 0xa0, 967 0x53, 0x63, 0xdb, 0xb9, 0xe0, 0xe4, 0x8f, 0xa9, 968 0x44, 0x32, 0x2e, 0x05, 0x70, 0x3b, 0x6e, 0xc3, 969 0x82, 0x36, 0x51, 0x4c, 0xbe, 0x38, 0x61, 0x54, 970 0x66, 0x5c, 0x88, 0x42, 0x50, 0x84, 0x1a, 0x69, 971 0xdf, 0xc5, 0x2b, 0x00, 0x3d, 0xdb, 0xe1, 0x92, 972 0x69, 0xb4, 0xda, 0xfa, 0x87, 0x43, 0x9e, 0xdd, 973 0x03, 0x29, 0xd4, 0x06, 0xef, 0x63, 0x60, 0xe3, 974 0x83, 0xe3, 0x28, 0xd7, 0xa3, 0x47, 0xeb, 0xb7, 975 0x0a, 0x20, 0x5a, 0x9e, 0x61, 0x68, 0xcc, 0x0b, 976 0x39, 0xdc, 0x7b, 0x8c, 0x22, 0x0f, 0xc8, 0xd4, 977 0x0c, 0x44, 0x9c, 0xa2, 0xb4, 0xd2, 0xf4, 0x71, 978 0xeb, 0xc6, 0x75, 0xb8, 0x53, 0x8c, 0x93, 0x9a, 979 0xf2, 0xd7, 0xba, 0x45, 0x40, 0xef, 0x56, 0xaf, 980 0xdd, 0x1b, 0xcc, 0x0e, 0xe0, 0x3b, 0x2f, 0xd5, 981 0xc5, 0xc7, 0x36, 0x37, 0xc0, 0x5e, 0xff, 0xb1, 982 0x31, 0xce, 0xce, 0xc3, 0x28, 0xb7, 0x84, 0x88, 983 0xe2, 0x7f, 0x11, 0x62, 0xb1, 0x14, 0x41, 0xe2, 984 0x7e, 0xfb, 0x31, 0x0e, 0x5b, 0xba, 0x27, 0xf7, 985 0xa0, 0xce, 0xa0, 0xb8, 0xdd, 0xbe, 0xc4, 0x74, 986 0xe0, 0xc9, 0x50, 0x71, 0x16, 0x81, 0x42, 0x2a, 987 0xa9, 0xda, 0x2e, 0x3a, 0x85, 0x0b, 0x62, 0x5a, 988 0x55, 0x31, 0x31, 0xc4, 0xda, 0x4b, 0x36, 0x9a, 989 0xa6, 0x0b, 0x78, 0x51, 0x50, 0xea, 0x44, 0x07, 990 0x6d, 0xf7, 0x49, 0xb0, 0xea, 0x7e, 0x12, 0x92, 991 0x88, 0x5e, 0xb8, 0xee, 0x0b, 0xa9, 0xd8, 0x04, 992 0xbe, 0xd8, 0x5d, 0x8e, 0x0a, 0xea, 0x5c, 0xce, 993 0xf5, 0x2d, 0x80, 0xff, 0x57, 0x07, 0x0c, 0x06, 994 0x20, 0xaf, 0xb5, 0x32, 0x16, 0xb5, 0x79, 0x60, 995 0xce, 0x3b, 0xb8, 0x55, 0x4c, 0xf5, 0x58, 0x90, 996 0xeb, 0xae, 0x48, 0x04, 0x8b, 0x76, 0xfc, 0x66, 997 0x18, 0x70, 0x13, 0x5c, 0x85, 0xa4, 0x18, 0xf1, 998 0xbb, 0x06, 0x4e, 0x59, 0x19, 0x75, 0x4d, 0xaf, 999 0x97, 0x6b, 0x1c, 0x82, 0x2f, 0xbf, 0x91, 0xbb, 1000 0xb7, 0x93, 0x21, 0xf2, 0xca, 0xf7, 0xec, 0x31, 1001 0xf2, 0x05, 0x73, 0x1e, 0x69, 0x30, 0xd1, 0xd9, 1002 0xef, 0x4f, 0x57, 0xc5, 0xf2, 0x46, 0xbf, 0xe8, 1003 0x81, 0xb6, 0x24, 0xdb, 0xf3, 0x67, 0x27, 0x97, 1004 0xb8, 0x04, 0x8c, 0xa3, 0xfe, 0xda, 0x6b, 0x9d, 1005 0x51, 0xba, 0xbd, 0xb5, 0xca, 0xfe, 0x73, 0xce, 1006 0x48, 0x9d, 0x28, 0x30, 0x7d, 0x53, 0x63, 0xc7 1007 } 1009 A.2.4. Role-specific Elements for 8192-bit FFC group 1011 unsigned char group18_initiator[1024] = { 1012 0x5b, 0x92, 0xc0, 0x76, 0x71, 0x48, 0x5e, 0x4d, 1013 0x9d, 0xdf, 0xde, 0xc3, 0xcc, 0x32, 0x6e, 0xf1, 1014 0x90, 0xef, 0x71, 0x86, 0xde, 0x55, 0x60, 0x3e, 1015 0x24, 0x3e, 0xc2, 0x38, 0x09, 0x65, 0x56, 0xfb, 1016 0x2b, 0x8b, 0x97, 0x07, 0x19, 0xac, 0xaf, 0x59, 1017 0x32, 0xd7, 0x65, 0x19, 0xa2, 0x02, 0x83, 0xa3, 1018 0x72, 0xc2, 0x2c, 0xe8, 0x15, 0x58, 0x0d, 0xb8, 1019 0x1a, 0xad, 0xe3, 0xbc, 0xc0, 0x82, 0xab, 0x42, 1020 0x9a, 0x7e, 0x0d, 0x39, 0x6a, 0x81, 0x3e, 0x72, 1021 0xee, 0xba, 0x58, 0x01, 0xe6, 0x36, 0x9f, 0x82, 1022 0x49, 0xa3, 0x6a, 0x88, 0x59, 0x0f, 0x77, 0x6b, 1023 0x4d, 0x6a, 0x36, 0x25, 0xf0, 0xbc, 0x75, 0x53, 1024 0x45, 0x1b, 0x02, 0x4c, 0x99, 0x5d, 0x51, 0x87, 1025 0x41, 0x3c, 0xcc, 0x54, 0x6a, 0xdc, 0x6e, 0x22, 1026 0xb5, 0x7d, 0xa9, 0x65, 0x90, 0xd3, 0x38, 0x4c, 1027 0xa8, 0x26, 0x22, 0x57, 0xd8, 0x55, 0xc0, 0xc9, 1028 0x9a, 0x62, 0x08, 0x71, 0x2b, 0x55, 0xde, 0x89, 1029 0xd4, 0xf8, 0xab, 0x5f, 0x55, 0x42, 0xc0, 0x40, 1030 0x60, 0x61, 0x1b, 0x68, 0x01, 0x80, 0x67, 0x27, 1031 0x95, 0x8e, 0x6b, 0xcd, 0xc1, 0x04, 0x35, 0x96, 1032 0x8e, 0x15, 0x1e, 0xd3, 0x01, 0x7d, 0x81, 0x38, 1033 0xe8, 0xbf, 0xd1, 0xa8, 0x31, 0xd5, 0x49, 0x11, 1034 0x0d, 0x78, 0x2f, 0x61, 0x31, 0xfc, 0xcc, 0x11, 1035 0x4f, 0x09, 0xa1, 0x13, 0x2b, 0x0e, 0x73, 0xbc, 1036 0x1f, 0xef, 0x01, 0x7d, 0xd3, 0x26, 0xe3, 0xda, 1037 0xa9, 0xaa, 0x15, 0xaf, 0x47, 0xe5, 0xc0, 0x39, 1038 0x29, 0xa3, 0x68, 0xfc, 0x03, 0xaa, 0x20, 0xc0, 1039 0xf8, 0xc5, 0xe2, 0xe3, 0x03, 0x0d, 0x3c, 0x20, 1040 0x7c, 0xbf, 0xa5, 0x1b, 0xd9, 0x92, 0x2d, 0x79, 1041 0x42, 0x42, 0xe8, 0x92, 0x25, 0x9a, 0x94, 0x54, 1042 0x40, 0xec, 0x8d, 0x55, 0x26, 0x71, 0xb3, 0x58, 1043 0x2c, 0x0b, 0x81, 0x4d, 0x53, 0xb8, 0x52, 0xf9, 1044 0x1b, 0xb1, 0x75, 0x60, 0xd4, 0x4b, 0x45, 0x72, 1045 0xa6, 0x61, 0x20, 0x96, 0xaa, 0x3b, 0xb9, 0x50, 1046 0x81, 0xe3, 0x93, 0xde, 0x4b, 0x80, 0xa2, 0xbd, 1047 0x20, 0x64, 0x63, 0xe2, 0x48, 0xc8, 0xec, 0x82, 1048 0x07, 0xa1, 0x7b, 0x45, 0x2a, 0xfb, 0xe9, 0x2f, 1049 0xa1, 0xf0, 0x69, 0x36, 0x2d, 0x4f, 0x1a, 0x85, 1050 0xf3, 0x58, 0x34, 0xe6, 0x0a, 0x9e, 0xe9, 0x9a, 1051 0x77, 0xe5, 0xf9, 0xa4, 0xc4, 0x14, 0xa2, 0x43, 1052 0xdd, 0xaa, 0x03, 0x17, 0x71, 0x55, 0x62, 0xf4, 1053 0xf5, 0x9c, 0x5f, 0x2f, 0xe7, 0x6f, 0xde, 0xa4, 1054 0x7a, 0xbb, 0x9d, 0xb5, 0x8d, 0xc3, 0x95, 0xf9, 1055 0x54, 0x06, 0xba, 0xd1, 0x31, 0xcf, 0x03, 0x6c, 1056 0x7a, 0x53, 0xd5, 0x76, 0x97, 0x4c, 0xbd, 0x23, 1057 0x59, 0xff, 0xfe, 0xea, 0xd3, 0xd1, 0x86, 0x10, 1058 0x2c, 0xf9, 0x9f, 0xc8, 0xd3, 0x45, 0x44, 0x2f, 1059 0x5a, 0xcf, 0x86, 0x8e, 0x1c, 0xc2, 0xb7, 0x04, 1060 0x75, 0x74, 0x78, 0xdf, 0x7a, 0x6f, 0xaf, 0x56, 1061 0x03, 0x93, 0x19, 0x4f, 0x4d, 0x73, 0x11, 0xc9, 1062 0x34, 0x90, 0x1a, 0x76, 0x18, 0x76, 0xa7, 0x19, 1063 0xe4, 0x5e, 0x66, 0x10, 0x2e, 0x0a, 0xbe, 0x7c, 1064 0x64, 0xd2, 0xd3, 0xbb, 0x18, 0x58, 0x86, 0xd9, 1065 0x54, 0x58, 0xf5, 0xeb, 0x86, 0xac, 0x61, 0x48, 1066 0xbc, 0x95, 0x1e, 0x13, 0xab, 0xef, 0x6e, 0xdf, 1067 0xbc, 0xa5, 0x78, 0x10, 0x87, 0x43, 0x9a, 0xd6, 1068 0xd6, 0x10, 0x30, 0xc0, 0xf5, 0x9b, 0x09, 0xc4, 1069 0x2c, 0xed, 0x8b, 0xeb, 0xc7, 0x3c, 0x12, 0xc5, 1070 0x1c, 0xf1, 0x88, 0xfd, 0x15, 0x45, 0xdb, 0xb3, 1071 0x35, 0x87, 0x40, 0xf8, 0x8a, 0xd1, 0x07, 0x32, 1072 0x2b, 0xf7, 0x4a, 0x77, 0xb5, 0x69, 0x4a, 0x20, 1073 0xdd, 0x69, 0x1e, 0x38, 0xac, 0x0b, 0x31, 0xda, 1074 0x43, 0x5d, 0xf0, 0x94, 0x22, 0x8d, 0x4a, 0x26, 1075 0xda, 0x91, 0xdf, 0xb7, 0xdd, 0xfb, 0x97, 0x88, 1076 0x7a, 0x43, 0x5e, 0xf3, 0x36, 0xbd, 0xef, 0xc0, 1077 0xe6, 0x7f, 0xd1, 0x81, 0x5b, 0xd6, 0x1b, 0x01, 1078 0x89, 0x19, 0x1d, 0x0e, 0xd0, 0x1a, 0x3a, 0x56, 1079 0x82, 0xf6, 0x2c, 0xdf, 0x6a, 0x42, 0xf5, 0x44, 1080 0x57, 0x61, 0x95, 0xdc, 0x9d, 0x4c, 0x15, 0xc0, 1081 0x29, 0x42, 0x55, 0x77, 0x28, 0xc8, 0x7c, 0xe2, 1082 0xc8, 0x44, 0xbd, 0xdd, 0x8e, 0xe1, 0xb8, 0xa3, 1083 0xa6, 0xb1, 0xa5, 0xfc, 0x9f, 0xed, 0x5f, 0xd7, 1084 0x58, 0xee, 0xe9, 0xa8, 0x1e, 0x11, 0x1a, 0x8c, 1085 0xf6, 0xea, 0x45, 0x8f, 0x41, 0x4d, 0xb9, 0x7f, 1086 0xe9, 0xd2, 0x90, 0x8c, 0xed, 0x0a, 0xd1, 0x12, 1087 0x48, 0x9b, 0x5e, 0x8a, 0x98, 0xc8, 0x0e, 0x71, 1088 0xff, 0x35, 0xa3, 0xc0, 0x17, 0x1c, 0x29, 0xe7, 1089 0x30, 0x47, 0x5f, 0x22, 0x62, 0x1b, 0xde, 0xb9, 1090 0xeb, 0x20, 0xcc, 0xeb, 0xfc, 0x7d, 0x38, 0x1e, 1091 0xce, 0x8a, 0x4e, 0xa8, 0xfe, 0xba, 0xa9, 0xfc, 1092 0x44, 0x8a, 0xcf, 0x0a, 0xe3, 0xf1, 0x91, 0x63, 1093 0xaf, 0xf2, 0x7d, 0x52, 0x2a, 0x6d, 0x38, 0xcf, 1094 0x10, 0xd5, 0xa3, 0xa1, 0xb0, 0xcc, 0x74, 0x08, 1095 0xe9, 0x97, 0xe1, 0x7e, 0xd8, 0xd1, 0x3f, 0x4e, 1096 0x8d, 0x6d, 0x4e, 0x3e, 0x33, 0xc7, 0xae, 0x28, 1097 0xb6, 0x6a, 0xd0, 0x15, 0xf3, 0xd6, 0xfd, 0x11, 1098 0x3e, 0xbc, 0x65, 0xe6, 0xf7, 0xb4, 0xfe, 0x55, 1099 0x03, 0x4d, 0x1f, 0x4f, 0x8b, 0xef, 0x8d, 0x11, 1100 0xa2, 0x9b, 0x42, 0x58, 0xf4, 0xdf, 0x0c, 0xf2, 1101 0x80, 0x0e, 0x02, 0xff, 0xe8, 0x46, 0x0d, 0xae, 1102 0x50, 0x41, 0x14, 0x37, 0x5d, 0x82, 0x26, 0x96, 1103 0x9f, 0x1d, 0xff, 0x9e, 0xe0, 0x01, 0x24, 0x19, 1104 0xe8, 0xca, 0xe7, 0x7b, 0xaa, 0xef, 0x05, 0x4a, 1105 0x8a, 0xdd, 0x3b, 0xe8, 0x93, 0xf0, 0x21, 0xab, 1106 0x7f, 0x77, 0xcd, 0xc1, 0x71, 0x9f, 0x6b, 0x2b, 1107 0x64, 0xfb, 0x43, 0x9e, 0x92, 0x33, 0x68, 0xe6, 1108 0x51, 0xc1, 0x16, 0x3d, 0xde, 0xf8, 0x85, 0x8a, 1109 0xb6, 0x6c, 0x96, 0x7a, 0x6b, 0x12, 0xd8, 0x18, 1110 0x30, 0x5e, 0x0c, 0x82, 0xff, 0xff, 0xd0, 0xf7, 1111 0x9c, 0x23, 0x30, 0x61, 0x80, 0x5b, 0xde, 0xd9, 1112 0x35, 0x16, 0xdd, 0x6a, 0x5b, 0xbe, 0x5a, 0x1d, 1113 0x77, 0x37, 0x2b, 0xee, 0x00, 0x61, 0xef, 0xfe, 1114 0xa8, 0x3f, 0x2e, 0xd6, 0x8e, 0x3a, 0x0f, 0x03, 1115 0xae, 0x46, 0x01, 0x0c, 0x75, 0x8c, 0x42, 0x9b, 1116 0x24, 0x02, 0x4b, 0xdb, 0xb8, 0x98, 0x31, 0xc7, 1117 0xd0, 0xd9, 0xb1, 0x89, 0x4a, 0x54, 0x74, 0xc0, 1118 0x68, 0x5d, 0xe7, 0x62, 0xe4, 0x44, 0x44, 0x5e, 1119 0x17, 0x75, 0x34, 0x96, 0xbe, 0xf1, 0x94, 0x49, 1120 0x14, 0xe7, 0x17, 0x79, 0xf6, 0xab, 0xe8, 0xf4, 1121 0x47, 0x77, 0x74, 0x10, 0x51, 0x3b, 0x30, 0x8e, 1122 0x8e, 0x00, 0x4f, 0x0e, 0x75, 0x03, 0xc7, 0x48, 1123 0xfb, 0xf8, 0x50, 0xc7, 0xe5, 0xfc, 0xe2, 0x7d, 1124 0x07, 0x90, 0xd5, 0x91, 0x6a, 0xce, 0x14, 0x12, 1125 0xab, 0xe6, 0x65, 0x64, 0xfb, 0x03, 0xce, 0xdf, 1126 0xf1, 0x0b, 0x11, 0x82, 0x5a, 0x11, 0xf6, 0xf9, 1127 0xd6, 0xf2, 0xfe, 0xd4, 0x72, 0x60, 0x80, 0xd4, 1128 0x53, 0x86, 0xe6, 0xfc, 0xb7, 0xc0, 0x03, 0x4d, 1129 0x3c, 0x32, 0xe9, 0xfd, 0x46, 0x9e, 0x81, 0x6a, 1130 0x72, 0xd6, 0x9c, 0x14, 0x70, 0x47, 0xbe, 0x35, 1131 0xef, 0xb2, 0xbb, 0x0a, 0xca, 0x84, 0xc9, 0x15, 1132 0xac, 0x83, 0x6b, 0x83, 0xe8, 0x36, 0x5d, 0x27, 1133 0xc0, 0x25, 0xc8, 0x92, 0x69, 0x6b, 0x51, 0x6a, 1134 0xc2, 0x8f, 0x9c, 0x8b, 0xf5, 0x35, 0x1e, 0x31, 1135 0x4b, 0xf7, 0xd6, 0x40, 0xa7, 0x1c, 0xe4, 0xa2, 1136 0x00, 0x3c, 0x78, 0x78, 0x8f, 0x27, 0x24, 0x7e, 1137 0x0b, 0x7f, 0xf6, 0xb0, 0x66, 0xf4, 0x79, 0x46, 1138 0x2e, 0x5b, 0x11, 0xca, 0x9b, 0x93, 0x4e, 0x99, 1139 0x2c, 0xd2, 0x2d, 0x88, 0x84, 0xf1, 0x1e, 0x0e 1140 } 1142 unsigned char group18_responder[1024] = { 1143 0xdf, 0x63, 0xdc, 0x3a, 0x74, 0xbd, 0x83, 0x8e, 1144 0x72, 0x90, 0x81, 0xf0, 0x85, 0x65, 0x86, 0x07, 1145 0x06, 0x05, 0xed, 0x93, 0x73, 0xa5, 0xbb, 0x88, 1146 0x42, 0x17, 0x8a, 0x10, 0x33, 0xc3, 0x6e, 0x9b, 1147 0x3b, 0x68, 0x33, 0x30, 0xa2, 0x3f, 0xb2, 0xa3, 1148 0x2d, 0x6b, 0xec, 0x34, 0x5a, 0xe7, 0x6a, 0xc1, 1149 0x11, 0xc8, 0xa5, 0x3d, 0x6c, 0xc5, 0xf7, 0x48, 1150 0xca, 0xac, 0xa6, 0x10, 0x0b, 0x7c, 0x93, 0xe9, 1151 0x45, 0x4d, 0xa7, 0x00, 0x30, 0xd2, 0xf5, 0xaf, 1152 0x93, 0xf1, 0xa5, 0x8a, 0x9f, 0x10, 0x14, 0xe6, 1153 0x6a, 0xe0, 0x5a, 0xe6, 0xea, 0x8b, 0x21, 0xbb, 1154 0x6a, 0x1f, 0x6c, 0x8c, 0x0b, 0x01, 0xda, 0xfd, 1155 0x4f, 0x0b, 0x7f, 0xe9, 0x46, 0x27, 0x8e, 0xaa, 1156 0x64, 0xd1, 0xd5, 0x40, 0xc9, 0xf7, 0x47, 0xef, 1157 0x9f, 0x7c, 0xce, 0x6c, 0x41, 0xd2, 0x9c, 0x47, 1158 0x09, 0x6e, 0xc7, 0xc2, 0xdc, 0x7d, 0x7e, 0xce, 1159 0x04, 0x6f, 0xf9, 0xc1, 0x86, 0x56, 0x1b, 0x88, 1160 0x7f, 0x62, 0x33, 0x3b, 0xca, 0xb9, 0xd4, 0x7d, 1161 0x24, 0xfa, 0x9f, 0xd8, 0xf8, 0x63, 0x91, 0x72, 1162 0x45, 0x82, 0x4d, 0x9f, 0xd7, 0x9d, 0xc8, 0x0b, 1163 0x4c, 0x6a, 0xc5, 0xf4, 0xec, 0x77, 0x3e, 0xfd, 1164 0xb7, 0x6b, 0xe0, 0x86, 0x32, 0x41, 0x25, 0xfe, 1165 0x43, 0x03, 0x0a, 0x07, 0x90, 0x75, 0xd5, 0xca, 1166 0x48, 0x23, 0xfb, 0x80, 0x5f, 0x22, 0xfe, 0x1c, 1167 0xba, 0x48, 0x2c, 0x28, 0x78, 0x5c, 0xc4, 0x98, 1168 0xad, 0xb7, 0xa6, 0x78, 0x5f, 0x84, 0x3a, 0xb6, 1169 0x96, 0xd5, 0xad, 0x88, 0x60, 0xb9, 0x09, 0x00, 1170 0xbb, 0x7d, 0x5c, 0xd6, 0x17, 0xfe, 0x18, 0x8e, 1171 0x07, 0x10, 0xc3, 0xe9, 0xd0, 0xb8, 0xe2, 0xfa, 1172 0x00, 0xae, 0xa1, 0xcd, 0x86, 0x33, 0xda, 0x4b, 1173 0x0c, 0x34, 0xa1, 0x6e, 0x19, 0x0b, 0xdb, 0xef, 1174 0xb0, 0xf6, 0x86, 0xc6, 0xe3, 0x8c, 0x9c, 0x53, 1175 0x15, 0x16, 0x04, 0xd9, 0xa8, 0xa7, 0x38, 0xc1, 1176 0x43, 0x9d, 0x7e, 0x33, 0x16, 0x1a, 0x8d, 0x33, 1177 0xe8, 0x2b, 0x47, 0xaf, 0x4c, 0xd0, 0x96, 0x87, 1178 0x5b, 0x57, 0x27, 0xc3, 0x1a, 0xf7, 0x12, 0xfd, 1179 0x8a, 0x64, 0xa0, 0xc9, 0x51, 0xc9, 0x95, 0xcb, 1180 0x7b, 0x9d, 0x97, 0xda, 0x3c, 0xae, 0x87, 0x1c, 1181 0x08, 0xa8, 0xb2, 0x3b, 0x92, 0xb7, 0x52, 0x97, 1182 0x99, 0x9c, 0x52, 0x92, 0xcc, 0xba, 0xbe, 0x16, 1183 0xf7, 0xac, 0x08, 0xb5, 0x1a, 0x99, 0x99, 0xee, 1184 0x33, 0x3a, 0x2a, 0xea, 0x70, 0xbe, 0xcc, 0xfd, 1185 0xc7, 0x6b, 0xf3, 0xa9, 0x9d, 0x66, 0x87, 0x1b, 1186 0x26, 0x0e, 0xf5, 0x04, 0x33, 0x82, 0x25, 0x75, 1187 0x74, 0x37, 0xbd, 0xfe, 0x78, 0xa2, 0x4a, 0x77, 1188 0xda, 0xef, 0x84, 0xfd, 0x5c, 0x1d, 0x09, 0xc7, 1189 0xd8, 0xc2, 0x97, 0xf8, 0xd0, 0x96, 0x6f, 0xf0, 1190 0x54, 0xea, 0x5e, 0x14, 0xb6, 0x9c, 0x16, 0x96, 1191 0xcd, 0x56, 0x3e, 0x49, 0xef, 0x8f, 0xbf, 0xc1, 1192 0x59, 0xd6, 0x0c, 0xa0, 0xd6, 0x6b, 0xff, 0x34, 1193 0xe5, 0x68, 0x70, 0x6b, 0x00, 0x87, 0xac, 0x4e, 1194 0x7e, 0x44, 0xa2, 0x04, 0xa2, 0x96, 0xfc, 0x73, 1195 0xe7, 0xe2, 0x7f, 0xc6, 0x0b, 0x17, 0xdb, 0xa6, 1196 0x45, 0xa8, 0x72, 0x61, 0x08, 0xc8, 0x4c, 0x19, 1197 0x2d, 0x27, 0x0b, 0x4f, 0xb9, 0xc0, 0x55, 0xd6, 1198 0x6d, 0x11, 0xd7, 0x15, 0x0d, 0xef, 0x97, 0x08, 1199 0xd3, 0x22, 0xd8, 0x03, 0x7f, 0x91, 0xe0, 0x0e, 1200 0xe4, 0x70, 0x75, 0x47, 0x33, 0xd9, 0x80, 0x08, 1201 0x5f, 0xc9, 0xea, 0x91, 0xd4, 0x4e, 0x80, 0x08, 1202 0xb3, 0x83, 0x37, 0xba, 0xd2, 0xe0, 0x6d, 0x44, 1203 0x83, 0x9a, 0xf1, 0xa6, 0x83, 0xc4, 0x5a, 0xd2, 1204 0x3f, 0x50, 0x7a, 0x19, 0xed, 0x82, 0xda, 0x02, 1205 0x6f, 0xbe, 0x27, 0x91, 0xd6, 0x7e, 0x11, 0xc1, 1206 0x95, 0x3a, 0x6a, 0x61, 0x80, 0x6c, 0x23, 0x1f, 1207 0xcd, 0x8d, 0xac, 0x5c, 0x4c, 0x14, 0xee, 0xde, 1208 0x08, 0x15, 0x87, 0xae, 0x2d, 0xf4, 0x77, 0x81, 1209 0xcb, 0x39, 0x9a, 0x51, 0xb1, 0x3e, 0xc6, 0xd5, 1210 0xcd, 0xa2, 0x3a, 0x15, 0x6a, 0x73, 0x2e, 0x78, 1211 0x24, 0x16, 0xb8, 0xd2, 0x3e, 0xb4, 0x0c, 0xc2, 1212 0x0e, 0x67, 0xea, 0xe9, 0x9c, 0xce, 0x5c, 0x6a, 1213 0x29, 0x27, 0xe1, 0x3f, 0xac, 0x9d, 0x31, 0xb8, 1214 0xda, 0x2f, 0x94, 0x6e, 0xfc, 0x33, 0xab, 0x54, 1215 0xf9, 0x8e, 0xe8, 0xbf, 0x8e, 0x33, 0x62, 0xab, 1216 0x1f, 0xca, 0x17, 0x68, 0x89, 0x27, 0x19, 0x52, 1217 0xb1, 0x4c, 0xd1, 0x04, 0xb8, 0x8d, 0xfe, 0xc2, 1218 0xa4, 0xbf, 0xb8, 0x4e, 0x7c, 0x24, 0x2f, 0xaa, 1219 0x8c, 0x57, 0x3c, 0x60, 0xe8, 0xd5, 0x1e, 0x7f, 1220 0x8b, 0x85, 0x0e, 0xfb, 0x0e, 0xbd, 0xed, 0x75, 1221 0x3f, 0x35, 0xeb, 0xb7, 0x35, 0x60, 0x53, 0x8f, 1222 0x7d, 0x86, 0xbc, 0x98, 0x8b, 0x2e, 0x22, 0x33, 1223 0x5e, 0x60, 0x49, 0x6d, 0xc3, 0xe0, 0xaa, 0xec, 1224 0x5e, 0x67, 0x87, 0xd8, 0x20, 0x92, 0x71, 0x34, 1225 0x46, 0xa4, 0xf4, 0x2d, 0x02, 0xaf, 0x64, 0x45, 1226 0xef, 0xea, 0xb3, 0x84, 0x39, 0xd6, 0x6b, 0xaf, 1227 0x7d, 0x63, 0xd3, 0x50, 0xf9, 0x95, 0xaf, 0xf7, 1228 0xf3, 0x8a, 0x6f, 0x59, 0xf1, 0x32, 0x37, 0x3d, 1229 0x6c, 0xd4, 0xaa, 0x17, 0xd7, 0x13, 0x19, 0xa7, 1230 0x51, 0x98, 0x21, 0x89, 0x26, 0x12, 0xe1, 0xed, 1231 0x78, 0x04, 0x33, 0xd7, 0xc6, 0xf4, 0xe2, 0x39, 1232 0x5c, 0x37, 0xdb, 0x16, 0x42, 0xf9, 0x0a, 0x3d, 1233 0xee, 0x4b, 0x96, 0xbd, 0x60, 0x1f, 0x36, 0xbb, 1234 0xe6, 0x15, 0x95, 0x47, 0x7f, 0x8f, 0x2e, 0xff, 1235 0x59, 0x9b, 0xfc, 0x99, 0x13, 0x87, 0xac, 0x85, 1236 0xd9, 0x84, 0x0c, 0x99, 0x95, 0xe8, 0x2b, 0xdf, 1237 0xae, 0x64, 0x7e, 0x24, 0x85, 0x67, 0x9c, 0x86, 1238 0x51, 0x8a, 0x61, 0x6c, 0x17, 0x24, 0x89, 0xba, 1239 0x2f, 0xfa, 0x9d, 0x3d, 0xa6, 0x51, 0xce, 0x85, 1240 0xf8, 0x95, 0x78, 0xeb, 0x00, 0x51, 0x06, 0xb4, 1241 0x8b, 0x02, 0x1b, 0x1c, 0xf7, 0x13, 0xcb, 0xee, 1242 0x83, 0x98, 0xdc, 0xab, 0xed, 0x57, 0x62, 0x78, 1243 0x1c, 0xc5, 0x5c, 0xac, 0xa6, 0x23, 0x68, 0xd0, 1244 0xa5, 0xda, 0x43, 0x2d, 0x61, 0x73, 0x66, 0x03, 1245 0xea, 0xc9, 0xad, 0x7e, 0xe3, 0x54, 0xa9, 0x53, 1246 0x3e, 0x23, 0x4c, 0x6a, 0x15, 0x70, 0xa5, 0x2c, 1247 0xee, 0xcd, 0x4d, 0x7e, 0x41, 0x6f, 0xa6, 0xc5, 1248 0x1c, 0x24, 0x37, 0x58, 0x00, 0x81, 0xd9, 0xb2, 1249 0xf7, 0x9a, 0x9c, 0xa3, 0xf5, 0xc6, 0x31, 0xc1, 1250 0xb2, 0x8b, 0x3d, 0xec, 0xbe, 0x21, 0xe7, 0x53, 1251 0x0f, 0xb8, 0x87, 0x76, 0xb5, 0x76, 0xcc, 0x50, 1252 0x03, 0x51, 0x8a, 0xa5, 0xb9, 0x50, 0xc7, 0x38, 1253 0xaf, 0x98, 0x01, 0xdf, 0x77, 0xb2, 0x9f, 0xe8, 1254 0xa5, 0x5b, 0x9d, 0x48, 0x3a, 0x82, 0xe1, 0x10, 1255 0xc8, 0x34, 0xc1, 0x07, 0x8f, 0x63, 0x60, 0x3e, 1256 0x25, 0xb6, 0x33, 0xbc, 0x15, 0xce, 0x99, 0x39, 1257 0x62, 0x83, 0x5b, 0xbc, 0x22, 0xb9, 0x0b, 0xd3, 1258 0x97, 0x2b, 0x87, 0xee, 0x85, 0xd6, 0x72, 0x01, 1259 0xb8, 0xdb, 0xe1, 0xdd, 0x5f, 0x61, 0x5f, 0x81, 1260 0x44, 0xcc, 0x65, 0x71, 0x44, 0xb7, 0xca, 0x48, 1261 0xd2, 0x33, 0x7b, 0x56, 0xe6, 0x07, 0xb8, 0xc5, 1262 0x6c, 0xb0, 0xf6, 0x72, 0x69, 0x75, 0xf7, 0xfc, 1263 0xd5, 0xab, 0xe0, 0xbb, 0x65, 0xcb, 0xd8, 0x4a, 1264 0xae, 0x99, 0x58, 0x5c, 0xe3, 0x61, 0x38, 0x07, 1265 0x97, 0xee, 0xa7, 0x67, 0x48, 0xb7, 0x9e, 0xc0, 1266 0xe9, 0xf5, 0x3c, 0x18, 0x3d, 0xb2, 0x06, 0x0f, 1267 0x75, 0x8d, 0xb8, 0x82, 0xfa, 0x6d, 0x30, 0x91, 1268 0x8b, 0x3b, 0xee, 0xf8, 0x27, 0x40, 0xec, 0x26, 1269 0x08, 0xd4, 0xca, 0x00, 0x8f, 0x28, 0xa2, 0x38, 1270 0xd9, 0xa0, 0x42, 0xc4, 0x51, 0x8b, 0x6c, 0xce 1271 } 1273 Author's Address 1275 Dan Harkins 1276 HP Enterprise 1277 1322 Crossman avenue 1278 Sunnyvale, California 94089 1279 USA 1281 Phone: +1 415 997 9834 1282 Email: dharkins@lounge.org