1 # 1 "cmdexec.c" 2 # 1 "<built-in>" 3 # 1 "<command-line>" 4 # 1 "cmdexec.c" 5 /* 6 * CDDL HEADER START 7 * 8 * The contents of this file are subject to the terms of the 9 * Common Development and Distribution License (the "License"). 10 * You may not use this file except in compliance with the License. 11 * 12 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 13 * or http://www.opensolaris.org/os/licensing. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * 17 * When distributing Covered Code, include this CDDL HEADER in each 18 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19 * If applicable, add the following below this CDDL HEADER, with the 20 * fields enclosed by brackets "[]" replaced with your own identifying 21 * information: Portions Copyright [yyyy] [name of copyright owner] 22 * 23 * CDDL HEADER END 24 */ 25 26 /* 27 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28 * Use is subject to license terms. 29 */ 30 31 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 32 /* All Rights Reserved */ 33 34 35 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 36 /* 37 * CDDL HEADER START 38 * 39 * The contents of this file are subject to the terms of the 40 * Common Development and Distribution License (the "License"). 41 * You may not use this file except in compliance with the License. 42 * 43 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 44 * or http://www.opensolaris.org/os/licensing. 45 * See the License for the specific language governing permissions 46 * and limitations under the License. 47 * 48 * When distributing Covered Code, include this CDDL HEADER in each 49 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 50 * If applicable, add the following below this CDDL HEADER, with the 51 * fields enclosed by brackets "[]" replaced with your own identifying 52 * information: Portions Copyright [yyyy] [name of copyright owner] 53 * 54 * CDDL HEADER END 55 */ 56 57 /* 58 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 59 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 60 */ 61 62 /* Copyright (c) 1988 AT&T */ 63 /* All Rights Reserved */ 64 65 /* 66 * User-visible pieces of the ANSI C standard I/O package. 67 */ 68 69 70 71 72 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 73 /* 74 * CDDL HEADER START 75 * 76 * The contents of this file are subject to the terms of the 77 * Common Development and Distribution License (the "License"). 78 * You may not use this file except in compliance with the License. 79 * 80 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 81 * or http://www.opensolaris.org/os/licensing. 82 * See the License for the specific language governing permissions 83 * and limitations under the License. 84 * 85 * When distributing Covered Code, include this CDDL HEADER in each 86 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 87 * If applicable, add the following below this CDDL HEADER, with the 88 * fields enclosed by brackets "[]" replaced with your own identifying 89 * information: Portions Copyright [yyyy] [name of copyright owner] 90 * 91 * CDDL HEADER END 92 */ 93 94 /* 95 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 96 * Copyright 2016 Joyent, Inc. 97 * 98 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 99 * Use is subject to license terms. 100 */ 101 102 103 104 105 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1 106 /* 107 * CDDL HEADER START 108 * 109 * The contents of this file are subject to the terms of the 110 * Common Development and Distribution License, Version 1.0 only 111 * (the "License"). You may not use this file except in compliance 112 * with the License. 113 * 114 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 115 * or http://www.opensolaris.org/os/licensing. 116 * See the License for the specific language governing permissions 117 * and limitations under the License. 118 * 119 * When distributing Covered Code, include this CDDL HEADER in each 120 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 121 * If applicable, add the following below this CDDL HEADER, with the 122 * fields enclosed by brackets "[]" replaced with your own identifying 123 * information: Portions Copyright [yyyy] [name of copyright owner] 124 * 125 * CDDL HEADER END 126 */ 127 /* 128 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 129 * Use is subject to license terms. 130 */ 131 /* 132 * Copyright 2015 EveryCity Ltd. All rights reserved. 133 */ 134 135 136 137 138 /* 139 * This file contains definitions designed to enable different compilers 140 * to be used harmoniously on Solaris systems. 141 */ 142 143 144 145 146 147 /* 148 * Allow for version tests for compiler bugs and features. 149 */ 150 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 151 /* 152 * analogous to lint's PRINTFLIKEn 153 */ 154 155 156 157 158 159 /* 160 * Handle the kernel printf routines that can take '%b' too 161 */ 162 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 163 /* 164 * This one's pretty obvious -- the function never returns 165 */ 166 167 168 /* 169 * The function is 'extern inline' and expects GNU C89 behaviour, not C99 170 * behaviour. 171 * 172 * Should only be used on 'extern inline' definitions for GCC. 173 */ 174 175 176 177 178 179 180 /* 181 * The function has control flow such that it may return multiple times (in 182 * the manner of setjmp or vfork) 183 */ 184 185 186 187 188 189 190 /* 191 * This is an appropriate label for functions that do not 192 * modify their arguments, e.g. strlen() 193 */ 194 195 196 /* 197 * This is a stronger form of __pure__. Can be used for functions 198 * that do not modify their arguments and don't depend on global 199 * memory. 200 */ 201 202 203 204 205 /* 206 * This attribute, attached to a variable, means that the variable is meant to 207 * be possibly unused. GCC will not produce a warning for this variable. 208 */ 209 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 210 /* 211 * Shorthand versions for readability 212 */ 213 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2 214 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 215 /* 216 * CDDL HEADER START 217 * 218 * The contents of this file are subject to the terms of the 219 * Common Development and Distribution License (the "License"). 220 * You may not use this file except in compliance with the License. 221 * 222 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 223 * or http://www.opensolaris.org/os/licensing. 224 * See the License for the specific language governing permissions 225 * and limitations under the License. 226 * 227 * 228 * When distributing Covered Code, include this CDDL HEADER in each 229 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 230 * If applicable, add the following below this CDDL HEADER, with the 231 * fields enclosed by brackets "[]" replaced with your own identifying 232 * information: Portions Copyright [yyyy] [name of copyright owner] 233 * 234 * CDDL HEADER END 235 */ 236 237 /* 238 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 239 * Use is subject to license terms. 240 * Copyright 2016 Joyent, Inc. 241 */ 242 243 244 245 246 /* 247 * This header file serves to group a set of well known defines and to 248 * set these for each instruction set architecture. These defines may 249 * be divided into two groups; characteristics of the processor and 250 * implementation choices for Solaris on a processor. 251 * 252 * Processor Characteristics: 253 * 254 * _LITTLE_ENDIAN / _BIG_ENDIAN: 255 * The natural byte order of the processor. A pointer to an int points 256 * to the least/most significant byte of that int. 257 * 258 * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD: 259 * The processor specific direction of stack growth. A push onto the 260 * stack increases/decreases the stack pointer, so it stores data at 261 * successively higher/lower addresses. (Stackless machines ignored 262 * without regrets). 263 * 264 * _LONG_LONG_HTOL / _LONG_LONG_LTOH: 265 * A pointer to a long long points to the most/least significant long 266 * within that long long. 267 * 268 * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH: 269 * The C compiler assigns bit fields from the high/low to the low/high end 270 * of an int (most to least significant vs. least to most significant). 271 * 272 * _IEEE_754: 273 * The processor (or supported implementations of the processor) 274 * supports the ieee-754 floating point standard. No other floating 275 * point standards are supported (or significant). Any other supported 276 * floating point formats are expected to be cased on the ISA processor 277 * symbol. 278 * 279 * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED: 280 * The C Compiler implements objects of type `char' as `unsigned' or 281 * `signed' respectively. This is really an implementation choice of 282 * the compiler writer, but it is specified in the ABI and tends to 283 * be uniform across compilers for an instruction set architecture. 284 * Hence, it has the properties of a processor characteristic. 285 * 286 * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT / 287 * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT / 288 * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT: 289 * The ABI defines alignment requirements of each of the primitive 290 * object types. Some, if not all, may be hardware requirements as 291 * well. The values are expressed in "byte-alignment" units. 292 * 293 * _MAX_ALIGNMENT: 294 * The most stringent alignment requirement as specified by the ABI. 295 * Equal to the maximum of all the above _XXX_ALIGNMENT values. 296 * 297 * _MAX_ALIGNMENT_TYPE: 298 * The name of the C type that has the value descried in _MAX_ALIGNMENT. 299 * 300 * _ALIGNMENT_REQUIRED: 301 * True or false (1 or 0) whether or not the hardware requires the ABI 302 * alignment. 303 * 304 * _LONG_LONG_ALIGNMENT_32 305 * The 32-bit ABI supported by a 64-bit kernel may have different 306 * alignment requirements for primitive object types. The value of this 307 * identifier is expressed in "byte-alignment" units. 308 * 309 * _HAVE_CPUID_INSN 310 * This indicates that the architecture supports the 'cpuid' 311 * instruction as defined by Intel. (Intel allows other vendors 312 * to extend the instruction for their own purposes.) 313 * 314 * 315 * Implementation Choices: 316 * 317 * _ILP32 / _LP64: 318 * This specifies the compiler data type implementation as specified in 319 * the relevant ABI. The choice between these is strongly influenced 320 * by the underlying hardware, but is not absolutely tied to it. 321 * Currently only two data type models are supported: 322 * 323 * _ILP32: 324 * Int/Long/Pointer are 32 bits. This is the historical UNIX 325 * and Solaris implementation. Due to its historical standing, 326 * this is the default case. 327 * 328 * _LP64: 329 * Long/Pointer are 64 bits, Int is 32 bits. This is the chosen 330 * implementation for 64-bit ABIs such as SPARC V9. 331 * 332 * _I32LPx: 333 * A compilation environment where 'int' is 32-bit, and 334 * longs and pointers are simply the same size. 335 * 336 * In all cases, Char is 8 bits and Short is 16 bits. 337 * 338 * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16: 339 * This specifies the form of the disk VTOC (or label): 340 * 341 * _SUNOS_VTOC_8: 342 * This is a VTOC form which is upwardly compatible with the 343 * SunOS 4.x disk label and allows 8 partitions per disk. 344 * 345 * _SUNOS_VTOC_16: 346 * In this format the incore vtoc image matches the ondisk 347 * version. It allows 16 slices per disk, and is not 348 * compatible with the SunOS 4.x disk label. 349 * 350 * Note that these are not the only two VTOC forms possible and 351 * additional forms may be added. One possible form would be the 352 * SVr4 VTOC form. The symbol for that is reserved now, although 353 * it is not implemented. 354 * 355 * _SVR4_VTOC_16: 356 * This VTOC form is compatible with the System V Release 4 357 * VTOC (as implemented on the SVr4 Intel and 3b ports) with 358 * 16 partitions per disk. 359 * 360 * 361 * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR 362 * This describes the type of addresses used by system DMA: 363 * 364 * _DMA_USES_PHYSADDR: 365 * This type of DMA, used in the x86 implementation, 366 * requires physical addresses for DMA buffers. The 24-bit 367 * addresses used by some legacy boards is the source of the 368 * "low-memory" (<16MB) requirement for some devices using DMA. 369 * 370 * _DMA_USES_VIRTADDR: 371 * This method of DMA allows the use of virtual addresses for 372 * DMA transfers. 373 * 374 * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT 375 * This indicates the presence/absence of an fdisk table. 376 * 377 * _FIRMWARE_NEEDS_FDISK 378 * The fdisk table is required by system firmware. If present, 379 * it allows a disk to be subdivided into multiple fdisk 380 * partitions, each of which is equivalent to a separate, 381 * virtual disk. This enables the co-existence of multiple 382 * operating systems on a shared hard disk. 383 * 384 * _NO_FDISK_PRESENT 385 * If the fdisk table is absent, it is assumed that the entire 386 * media is allocated for a single operating system. 387 * 388 * _HAVE_TEM_FIRMWARE 389 * Defined if this architecture has the (fallback) option of 390 * using prom_* calls for doing I/O if a suitable kernel driver 391 * is not available to do it. 392 * 393 * _DONT_USE_1275_GENERIC_NAMES 394 * Controls whether or not device tree node names should 395 * comply with the IEEE 1275 "Generic Names" Recommended 396 * Practice. With _DONT_USE_GENERIC_NAMES, device-specific 397 * names identifying the particular device will be used. 398 * 399 * __i386_COMPAT 400 * This indicates whether the i386 ABI is supported as a *non-native* 401 * mode for the platform. When this symbol is defined: 402 * - 32-bit xstat-style system calls are enabled 403 * - 32-bit xmknod-style system calls are enabled 404 * - 32-bit system calls use i386 sizes -and- alignments 405 * 406 * Note that this is NOT defined for the i386 native environment! 407 * 408 * __x86 409 * This is ONLY a synonym for defined(__i386) || defined(__amd64) 410 * which is useful only insofar as these two architectures share 411 * common attributes. Analogous to __sparc. 412 * 413 * _PSM_MODULES 414 * This indicates whether or not the implementation uses PSM 415 * modules for processor support, reading /etc/mach from inside 416 * the kernel to extract a list. 417 * 418 * _RTC_CONFIG 419 * This indicates whether or not the implementation uses /etc/rtc_config 420 * to configure the real-time clock in the kernel. 421 * 422 * _UNIX_KRTLD 423 * This indicates that the implementation uses a dynamically 424 * linked unix + krtld to form the core kernel image at boot 425 * time, or (in the absence of this symbol) a prelinked kernel image. 426 * 427 * _OBP 428 * This indicates the firmware interface is OBP. 429 * 430 * _SOFT_HOSTID 431 * This indicates that the implementation obtains the hostid 432 * from the file /etc/hostid, rather than from hardware. 433 */ 434 435 436 437 438 439 /* 440 * The following set of definitions characterize Solaris on AMD's 441 * 64-bit systems. 442 */ 443 # 305 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 444 /* 445 * Define the appropriate "processor characteristics" 446 */ 447 # 333 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 448 /* 449 * Define the appropriate "implementation choices". 450 */ 451 # 351 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 452 /* 453 * The following set of definitions characterize the Solaris on SPARC systems. 454 * 455 * The symbol __sparc indicates any of the SPARC family of processor 456 * architectures. This includes SPARC V7, SPARC V8 and SPARC V9. 457 * 458 * The symbol __sparcv8 indicates the 32-bit SPARC V8 architecture as defined 459 * by Version 8 of the SPARC Architecture Manual. (SPARC V7 is close enough 460 * to SPARC V8 for the former to be subsumed into the latter definition.) 461 * 462 * The symbol __sparcv9 indicates the 64-bit SPARC V9 architecture as defined 463 * by Version 9 of the SPARC Architecture Manual. 464 * 465 * The symbols __sparcv8 and __sparcv9 are mutually exclusive, and are only 466 * relevant when the symbol __sparc is defined. 467 */ 468 /* 469 * XXX Due to the existence of 5110166, "defined(__sparcv9)" needs to be added 470 * to support backwards builds. This workaround should be removed in s10_71. 471 */ 472 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2 473 474 475 476 477 478 /* 479 * Values of _POSIX_C_SOURCE 480 * 481 * undefined not a POSIX compilation 482 * 1 POSIX.1-1990 compilation 483 * 2 POSIX.2-1992 compilation 484 * 199309L POSIX.1b-1993 compilation (Real Time) 485 * 199506L POSIX.1c-1995 compilation (POSIX Threads) 486 * 200112L POSIX.1-2001 compilation (Austin Group Revision) 487 * 200809L POSIX.1-2008 compilation 488 */ 489 490 491 492 493 /* 494 * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS, 495 * and _STDC_C99 are Sun implementation specific macros created in order to 496 * compress common standards specified feature test macros for easier reading. 497 * These macros should not be used by the application developer as 498 * unexpected results may occur. Instead, the user should reference 499 * standards(5) for correct usage of the standards feature test macros. 500 * 501 * __XOPEN_OR_POSIX Used in cases where a symbol is defined by both 502 * X/Open or POSIX or in the negative, when neither 503 * X/Open or POSIX defines a symbol. 504 * 505 * _STRICT_STDC __STDC__ is specified by the C Standards and defined 506 * by the compiler. For Sun compilers the value of 507 * __STDC__ is either 1, 0, or not defined based on the 508 * compilation mode (see cc(1)). When the value of 509 * __STDC__ is 1 and in the absence of any other feature 510 * test macros, the namespace available to the application 511 * is limited to only those symbols defined by the C 512 * Standard. _STRICT_STDC provides a more readable means 513 * of identifying symbols defined by the standard, or in 514 * the negative, symbols that are extensions to the C 515 * Standard. See additional comments for GNU C differences. 516 * 517 * _STDC_C99 __STDC_VERSION__ is specified by the C standards and 518 * defined by the compiler and indicates the version of 519 * the C standard. A value of 199901L indicates a 520 * compiler that complies with ISO/IEC 9899:1999, other- 521 * wise known as the C99 standard. 522 * 523 * _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__ 524 * is 201112L indicating a compiler that compiles with 525 * ISO/IEXC 9899:2011, otherwise known as the C11 standard. 526 * 527 * _STRICT_SYMBOLS Used in cases where symbol visibility is restricted 528 * by the standards, and the user has not explicitly 529 * relaxed the strictness via __EXTENSIONS__. 530 */ 531 532 533 534 535 536 /* 537 * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC 538 * 99899:2011 specify the following predefined macro name: 539 * 540 * __STDC__ The integer constant 1, intended to indicate a conforming 541 * implementation. 542 * 543 * Furthermore, a strictly conforming program shall use only those features 544 * of the language and library specified in these standards. A conforming 545 * implementation shall accept any strictly conforming program. 546 * 547 * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for 548 * strictly conforming environments and __STDC__ to 0 for environments that 549 * use ANSI C semantics but allow extensions to the C standard. For non-ANSI 550 * C semantics, Sun's C compiler does not define __STDC__. 551 * 552 * The GNU C project interpretation is that __STDC__ should always be defined 553 * to 1 for compilation modes that accept ANSI C syntax regardless of whether 554 * or not extensions to the C standard are used. Violations of conforming 555 * behavior are conditionally flagged as warnings via the use of the 556 * -pedantic option. In addition to defining __STDC__ to 1, the GNU C 557 * compiler also defines __STRICT_ANSI__ as a means of specifying strictly 558 * conforming environments using the -ansi or -std=<standard> options. 559 * 560 * In the absence of any other compiler options, Sun and GNU set the value 561 * of __STDC__ as follows when using the following options: 562 * 563 * Value of __STDC__ __STRICT_ANSI__ 564 * 565 * cc -Xa (default) 0 undefined 566 * cc -Xt (transitional) 0 undefined 567 * cc -Xc (strictly conforming) 1 undefined 568 * cc -Xs (K&R C) undefined undefined 569 * 570 * gcc (default) 1 undefined 571 * gcc -ansi, -std={c89, c99,...) 1 defined 572 * gcc -traditional (K&R) undefined undefined 573 * 574 * The default compilation modes for Sun C compilers versus GNU C compilers 575 * results in a differing value for __STDC__ which results in a more 576 * restricted namespace when using Sun compilers. To allow both GNU and Sun 577 * interpretations to peacefully co-exist, we use the following Sun 578 * implementation _STRICT_STDC_ macro: 579 */ 580 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 581 /* 582 * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011 583 */ 584 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 585 /* 586 * Use strict symbol visibility. 587 */ 588 589 590 591 592 593 /* 594 * Large file interfaces: 595 * 596 * _LARGEFILE_SOURCE 597 * 1 large file-related additions to POSIX 598 * interfaces requested (fseeko, etc.) 599 * _LARGEFILE64_SOURCE 600 * 1 transitional large-file-related interfaces 601 * requested (seek64, stat64, etc.) 602 * 603 * The corresponding announcement macros are respectively: 604 * _LFS_LARGEFILE 605 * _LFS64_LARGEFILE 606 * (These are set in <unistd.h>.) 607 * 608 * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as 609 * well. 610 * 611 * The large file interfaces are made visible regardless of the initial values 612 * of the feature test macros under certain circumstances: 613 * - If no explicit standards-conforming environment is requested (neither 614 * of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of 615 * __STDC__ does not imply standards conformance). 616 * - Extended system interfaces are explicitly requested (__EXTENSIONS__ 617 * is defined). 618 * - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is 619 * defined). (Note that this dependency is an artifact of the current 620 * kernel implementation and may change in future releases.) 621 */ 622 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 623 /* 624 * Large file compilation environment control: 625 * 626 * The setting of _FILE_OFFSET_BITS controls the size of various file-related 627 * types and governs the mapping between file-related source function symbol 628 * names and the corresponding binary entry points. 629 * 630 * In the 32-bit environment, the default value is 32; if not set, set it to 631 * the default here, to simplify tests in other headers. 632 * 633 * In the 64-bit compilation environment, the only value allowed is 64. 634 */ 635 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 636 /* 637 * Use of _XOPEN_SOURCE 638 * 639 * The following X/Open specifications are supported: 640 * 641 * X/Open Portability Guide, Issue 3 (XPG3) 642 * X/Open CAE Specification, Issue 4 (XPG4) 643 * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2) 644 * X/Open CAE Specification, Issue 5 (XPG5) 645 * Open Group Technical Standard, Issue 6 (XPG6), also referred to as 646 * IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002. 647 * Open Group Technical Standard, Issue 7 (XPG7), also referred to as 648 * IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009. 649 * 650 * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1). 651 * XPG5 is also referred to as UNIX 98 or the Single Unix Specification, 652 * Version 2 (SUSv2) 653 * XPG6 is the result of a merge of the X/Open and POSIX specifications 654 * and as such is also referred to as IEEE Std. 1003.1-2001 in 655 * addition to UNIX 03 and SUSv3. 656 * XPG7 is also referred to as UNIX 08 and SUSv4. 657 * 658 * When writing a conforming X/Open application, as per the specification 659 * requirements, the appropriate feature test macros must be defined at 660 * compile time. These are as follows. For more info, see standards(5). 661 * 662 * Feature Test Macro Specification 663 * ------------------------------------------------ ------------- 664 * _XOPEN_SOURCE XPG3 665 * _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 666 * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 667 * _XOPEN_SOURCE = 500 XPG5 668 * _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6 669 * _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7 670 * 671 * In order to simplify the guards within the headers, the following 672 * implementation private test macros have been created. Applications 673 * must NOT use these private test macros as unexpected results will 674 * occur. 675 * 676 * Note that in general, the use of these private macros is cumulative. 677 * For example, the use of _XPG3 with no other restrictions on the X/Open 678 * namespace will make the symbols visible for XPG3 through XPG6 679 * compilation environments. The use of _XPG4_2 with no other X/Open 680 * namespace restrictions indicates that the symbols were introduced in 681 * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation 682 * environments, but not for XPG3 or XPG4 compilation environments. 683 * 684 * _XPG3 X/Open Portability Guide, Issue 3 (XPG3) 685 * _XPG4 X/Open CAE Specification, Issue 4 (XPG4) 686 * _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS) 687 * _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2) 688 * _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3) 689 * _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4) 690 */ 691 692 /* X/Open Portability Guide, Issue 3 */ 693 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 694 /* 695 * _XOPEN_VERSION is defined by the X/Open specifications and is not 696 * normally defined by the application, except in the case of an XPG4 697 * application. On the implementation side, _XOPEN_VERSION defined with 698 * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined 699 * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application. 700 * _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98) 701 * application and with a value of 600 indicates an XPG6 (UNIX 03) 702 * application and with a value of 700 indicates an XPG7 (UNIX 08). 703 * The appropriate version is determined by the use of the 704 * feature test macros described earlier. The value of _XOPEN_VERSION 705 * defaults to 3 otherwise indicating support for XPG3 applications. 706 */ 707 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 708 /* 709 * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly 710 * conforming environments. ISO 9899:1999 says it does. 711 * 712 * The presence of _LONGLONG_TYPE says "long long exists" which is therefore 713 * defined in all but strictly conforming environments that disallow it. 714 */ 715 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 716 /* 717 * The following macro defines a value for the ISO C99 restrict 718 * keyword so that _RESTRICT_KYWD resolves to "restrict" if 719 * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string) 720 * if any other compiler is used. This allows for the use of single 721 * prototype declarations regardless of compiler version. 722 */ 723 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 724 /* 725 * The following macro defines a value for the ISO C11 _Noreturn 726 * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if 727 * an ISO C11 compiler is used and "" (null string) if any other 728 * compiler is used. This allows for the use of single prototype 729 * declarations regardless of compiler version. 730 */ 731 732 733 734 735 736 737 738 /* 739 * The following macro indicates header support for the ANSI C++ 740 * standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882. 741 */ 742 743 744 /* 745 * The following macro indicates header support for the C99 standard, 746 * ISO/IEC 9899:1999, Programming Languages - C. 747 */ 748 749 750 /* 751 * The following macro indicates header support for the C99 standard, 752 * ISO/IEC 9899:2011, Programming Languages - C. 753 */ 754 755 756 /* 757 * The following macro indicates header support for DTrace. The value is an 758 * integer that corresponds to the major version number for DTrace. 759 */ 760 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 761 762 763 764 765 766 /* 767 * Do all of our 'redefine_extname' processing before 768 * declarations of the associated functions are seen. 769 * This is necessary to keep gcc happy. 770 */ 771 772 773 /* large file compilation environment setup */ 774 775 776 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 777 #pragma redefine_extname fopen fopen64 778 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 779 780 781 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 782 #pragma redefine_extname freopen freopen64 783 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 784 785 786 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 787 #pragma redefine_extname tmpfile tmpfile64 788 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 789 790 791 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 792 #pragma redefine_extname fgetpos fgetpos64 793 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 794 795 796 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 797 #pragma redefine_extname fsetpos fsetpos64 798 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 799 800 801 802 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 803 #pragma redefine_extname fseeko fseeko64 804 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 805 806 807 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 808 #pragma redefine_extname ftello ftello64 809 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 810 811 812 813 814 /* In the LP64 compilation environment, all APIs are already large file */ 815 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 816 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1 817 /* 818 * CDDL HEADER START 819 * 820 * The contents of this file are subject to the terms of the 821 * Common Development and Distribution License, Version 1.0 only 822 * (the "License"). You may not use this file except in compliance 823 * with the License. 824 * 825 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 826 * or http://www.opensolaris.org/os/licensing. 827 * See the License for the specific language governing permissions 828 * and limitations under the License. 829 * 830 * When distributing Covered Code, include this CDDL HEADER in each 831 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 832 * If applicable, add the following below this CDDL HEADER, with the 833 * fields enclosed by brackets "[]" replaced with your own identifying 834 * information: Portions Copyright [yyyy] [name of copyright owner] 835 * 836 * CDDL HEADER END 837 */ 838 /* 839 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 840 * Copyright 2014 PALO, Richard. 841 * 842 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 843 * Use is subject to license terms. 844 */ 845 846 /* Copyright (c) 1988 AT&T */ 847 /* All Rights Reserved */ 848 849 /* 850 * An application should not include this header directly. Instead it 851 * should be included only through the inclusion of other Sun headers. 852 * 853 * The contents of this header is limited to identifiers specified in the 854 * C Standard. Any new identifiers specified in future amendments to the 855 * C Standard must be placed in this header. If these new identifiers 856 * are required to also be in the C++ Standard "std" namespace, then for 857 * anything other than macro definitions, corresponding "using" directives 858 * must also be added to <stdio.h>. 859 */ 860 861 /* 862 * User-visible pieces of the ANSI C standard I/O package. 863 */ 864 865 866 867 868 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 869 /* 870 * CDDL HEADER START 871 * 872 * The contents of this file are subject to the terms of the 873 * Common Development and Distribution License (the "License"). 874 * You may not use this file except in compliance with the License. 875 * 876 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 877 * or http://www.opensolaris.org/os/licensing. 878 * See the License for the specific language governing permissions 879 * and limitations under the License. 880 * 881 * When distributing Covered Code, include this CDDL HEADER in each 882 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 883 * If applicable, add the following below this CDDL HEADER, with the 884 * fields enclosed by brackets "[]" replaced with your own identifying 885 * information: Portions Copyright [yyyy] [name of copyright owner] 886 * 887 * CDDL HEADER END 888 */ 889 890 /* 891 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 892 * Copyright 2016 Joyent, Inc. 893 * 894 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 895 * Use is subject to license terms. 896 */ 897 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 898 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 899 /* 900 * This file and its contents are supplied under the terms of the 901 * Common Development and Distribution License ("CDDL"), version 1.0. 902 * You may only use this file in accordance with the terms of version 903 * 1.0 of the CDDL. 904 * 905 * A full copy of the text of the CDDL should have accompanied this 906 * source. A copy of the CDDL is also available via the Internet at 907 * http://www.illumos.org/license/CDDL. 908 */ 909 910 /* 911 * Copyright 2014-2016 PALO, Richard. 912 */ 913 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 914 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1 915 /* 916 * CDDL HEADER START 917 * 918 * The contents of this file are subject to the terms of the 919 * Common Development and Distribution License, Version 1.0 only 920 * (the "License"). You may not use this file except in compliance 921 * with the License. 922 * 923 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 924 * or http://www.opensolaris.org/os/licensing. 925 * See the License for the specific language governing permissions 926 * and limitations under the License. 927 * 928 * When distributing Covered Code, include this CDDL HEADER in each 929 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 930 * If applicable, add the following below this CDDL HEADER, with the 931 * fields enclosed by brackets "[]" replaced with your own identifying 932 * information: Portions Copyright [yyyy] [name of copyright owner] 933 * 934 * CDDL HEADER END 935 */ 936 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 937 /* All Rights Reserved */ 938 939 940 /* 941 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 942 * 943 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 944 * Use is subject to license terms. 945 */ 946 947 948 949 950 /* 951 * An application should not include this header directly. Instead it 952 * should be included only through the inclusion of other Sun headers. 953 * 954 * The purpose of this header is to provide the type definitions for 955 * the va_list argument used by a number of printf and printf like 956 * functions. The headers that define these various function prototypes 957 * #include this header directly. These include but are not necessarily 958 * limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and 959 * <syslog.h>. The type definitions included in this header are for 960 * the benefit of consumers of va_list. 961 * 962 * Any application that accepts variable argument lists must as documented, 963 * include either <varargs.h> or the preferred <stdarg.h>. Doing so will 964 * pull in the appropriate compiler protocols defined in <sys/va_impl.h> 965 * which is in turn is included by <varargs.h> and <stdarg.h>. See comments 966 * in <sys/va_impl.h> for more detailed information regarding implementation 967 * and compiler specific protocols. 968 */ 969 970 /* 971 * The common definitions exported by this header or compilers using 972 * this header are: 973 * 974 * the identifier __builtin_va_alist for the variable list pseudo parameter 975 * the type __va_alist_type for the variable list pseudo parameter 976 * the type __va_list defining the type of the variable list iterator 977 * 978 * The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros 979 * (__GNUC__) and processor macros (e.g. __amd64) are intended to be 980 * defined by the compilation system, not the user of the system. 981 */ 982 983 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 984 /* 985 * CDDL HEADER START 986 * 987 * The contents of this file are subject to the terms of the 988 * Common Development and Distribution License (the "License"). 989 * You may not use this file except in compliance with the License. 990 * 991 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 992 * or http://www.opensolaris.org/os/licensing. 993 * See the License for the specific language governing permissions 994 * and limitations under the License. 995 * 996 * 997 * When distributing Covered Code, include this CDDL HEADER in each 998 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 999 * If applicable, add the following below this CDDL HEADER, with the 1000 * fields enclosed by brackets "[]" replaced with your own identifying 1001 * information: Portions Copyright [yyyy] [name of copyright owner] 1002 * 1003 * CDDL HEADER END 1004 */ 1005 1006 /* 1007 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1008 * Use is subject to license terms. 1009 * Copyright 2016 Joyent, Inc. 1010 */ 1011 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 2 1012 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1013 typedef __builtin_va_list __gnuc_va_list; 1014 /* 1015 * XX64 This seems unnecessary .. but is needed because vcmn_err is 1016 * defined with __va_list instead of plain old va_list. 1017 * Perhaps that should be fixed! 1018 */ 1019 typedef __builtin_va_list __va_list; 1020 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1021 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1 1022 /* 1023 * CDDL HEADER START 1024 * 1025 * The contents of this file are subject to the terms of the 1026 * Common Development and Distribution License, Version 1.0 only 1027 * (the "License"). You may not use this file except in compliance 1028 * with the License. 1029 * 1030 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1031 * or http://www.opensolaris.org/os/licensing. 1032 * See the License for the specific language governing permissions 1033 * and limitations under the License. 1034 * 1035 * When distributing Covered Code, include this CDDL HEADER in each 1036 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1037 * If applicable, add the following below this CDDL HEADER, with the 1038 * fields enclosed by brackets "[]" replaced with your own identifying 1039 * information: Portions Copyright [yyyy] [name of copyright owner] 1040 * 1041 * CDDL HEADER END 1042 */ 1043 /* 1044 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1045 * Use is subject to license terms. 1046 */ 1047 1048 1049 1050 1051 #pragma ident "%Z%%M% %I% %E% SMI" 1052 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1053 typedef struct __FILE __FILE; 1054 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1055 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1 1056 /* 1057 * CDDL HEADER START 1058 * 1059 * The contents of this file are subject to the terms of the 1060 * Common Development and Distribution License (the "License"). 1061 * You may not use this file except in compliance with the License. 1062 * 1063 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1064 * or http://www.opensolaris.org/os/licensing. 1065 * See the License for the specific language governing permissions 1066 * and limitations under the License. 1067 * 1068 * When distributing Covered Code, include this CDDL HEADER in each 1069 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1070 * If applicable, add the following below this CDDL HEADER, with the 1071 * fields enclosed by brackets "[]" replaced with your own identifying 1072 * information: Portions Copyright [yyyy] [name of copyright owner] 1073 * 1074 * CDDL HEADER END 1075 */ 1076 1077 /* 1078 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1079 * Use is subject to license terms. 1080 */ 1081 1082 1083 1084 1085 #pragma ident "%Z%%M% %I% %E% SMI" 1086 1087 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 1088 /* 1089 * CDDL HEADER START 1090 * 1091 * The contents of this file are subject to the terms of the 1092 * Common Development and Distribution License (the "License"). 1093 * You may not use this file except in compliance with the License. 1094 * 1095 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1096 * or http://www.opensolaris.org/os/licensing. 1097 * See the License for the specific language governing permissions 1098 * and limitations under the License. 1099 * 1100 * 1101 * When distributing Covered Code, include this CDDL HEADER in each 1102 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1103 * If applicable, add the following below this CDDL HEADER, with the 1104 * fields enclosed by brackets "[]" replaced with your own identifying 1105 * information: Portions Copyright [yyyy] [name of copyright owner] 1106 * 1107 * CDDL HEADER END 1108 */ 1109 1110 /* 1111 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1112 * Use is subject to license terms. 1113 * Copyright 2016 Joyent, Inc. 1114 */ 1115 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 2 1116 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1117 struct __FILE /* needs to be binary-compatible with old versions */ 1118 { 1119 1120 1121 1122 1123 int _cnt; /* number of available characters in buffer */ 1124 unsigned char *_ptr; /* next character from/to here in buffer */ 1125 1126 unsigned char *_base; /* the buffer */ 1127 unsigned char _flag; /* the state of the stream */ 1128 unsigned char _magic; /* Old home of the file descriptor */ 1129 /* Only fileno(3C) can retrieve the value now */ 1130 unsigned __orientation:2; /* the orientation of the stream */ 1131 unsigned __ionolock:1; /* turn off implicit locking */ 1132 unsigned __seekable:1; /* is file seekable? */ 1133 unsigned __extendedfd:1; /* enable extended FILE */ 1134 unsigned __xf_nocheck:1; /* no extended FILE runtime check */ 1135 unsigned __filler:10; 1136 }; 1137 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1138 1139 /* 1140 * If feature test macros are set that enable interfaces that use types 1141 * defined in <sys/types.h>, get those types by doing the include. 1142 * 1143 * Note that in asking for the interfaces associated with this feature test 1144 * macro one also asks for definitions of the POSIX types. 1145 */ 1146 1147 1148 1149 1150 1151 1152 /* 1153 * The following typedefs are adopted from ones in <sys/types.h> (with leading 1154 * underscores added to avoid polluting the ANSI C name space). See the 1155 * commentary there for further explanation. 1156 */ 1157 1158 typedef long long __longlong_t; 1159 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1160 typedef __FILE FILE; 1161 1162 1163 1164 1165 1166 1167 1168 typedef unsigned int size_t; /* (historical version) */ 1169 1170 1171 1172 1173 1174 1175 typedef __longlong_t fpos_t; 1176 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1177 /* 1178 * The value of _NFILE is defined in the Processor Specific ABI. The value 1179 * is chosen for historical reasons rather than for truly processor related 1180 * attribute. Note that the SPARC Processor Specific ABI uses the common 1181 * UNIX historical value of 20 so it is allowed to fall through. 1182 */ 1183 # 156 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1184 extern __FILE __iob[60]; 1185 # 191 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1186 extern int remove(const char *); 1187 extern int rename(const char *, const char *); 1188 extern FILE *tmpfile(void); 1189 extern char *tmpnam(char *); 1190 extern int fclose(FILE *); 1191 extern int fflush(FILE *); 1192 extern FILE *fopen(const char *, const char *); 1193 extern FILE *freopen(const char *, 1194 const char *, FILE *); 1195 extern void setbuf(FILE *, char *); 1196 extern int setvbuf(FILE *, char *, int, 1197 size_t); 1198 /* PRINTFLIKE2 */ 1199 extern int fprintf(FILE *, const char *, ...); 1200 /* SCANFLIKE2 */ 1201 extern int fscanf(FILE *, const char *, ...); 1202 /* PRINTFLIKE1 */ 1203 extern int printf(const char *, ...); 1204 /* SCANFLIKE1 */ 1205 extern int scanf(const char *, ...); 1206 /* PRINTFLIKE2 */ 1207 extern int sprintf(char *, const char *, ...); 1208 /* SCANFLIKE2 */ 1209 extern int sscanf(const char *, 1210 const char *, ...); 1211 extern int vfprintf(FILE *, const char *, 1212 __va_list); 1213 extern int vprintf(const char *, __va_list); 1214 extern int vsprintf(char *, const char *, 1215 __va_list); 1216 extern int fgetc(FILE *); 1217 extern char *fgets(char *, int, FILE *); 1218 extern int fputc(int, FILE *); 1219 extern int fputs(const char *, FILE *); 1220 1221 1222 extern int getc(FILE *); 1223 extern int putc(int, FILE *); 1224 1225 1226 1227 extern int getchar(void); 1228 extern int putchar(int); 1229 1230 1231 /* 1232 * ISO/IEC C11 removed gets from the standard library. Therefore if a strict C11 1233 * environment has been requested, we remove it. 1234 */ 1235 1236 extern char *gets(char *); 1237 1238 extern int puts(const char *); 1239 extern int ungetc(int, FILE *); 1240 extern size_t fread(void *, size_t, size_t, 1241 FILE *); 1242 extern size_t fwrite(const void *, size_t, size_t, 1243 FILE *); 1244 1245 extern int fgetpos(FILE *, fpos_t *); 1246 extern int fsetpos(FILE *, const fpos_t *); 1247 1248 extern int fseek(FILE *, long, int); 1249 extern long ftell(FILE *); 1250 extern void rewind(FILE *); 1251 1252 1253 extern void clearerr(FILE *); 1254 extern int feof(FILE *); 1255 extern int ferror(FILE *); 1256 1257 extern void perror(const char *); 1258 1259 1260 extern int __filbuf(FILE *); 1261 extern int __flsbuf(int, FILE *); 1262 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 1263 1264 /* 1265 * If feature test macros are set that enable interfaces that use types 1266 * defined in <sys/types.h>, get those types by doing the include. 1267 * 1268 * Note that in asking for the interfaces associated with this feature test 1269 * macro one also asks for definitions of the POSIX types. 1270 */ 1271 1272 /* 1273 * Allow global visibility for symbols defined in 1274 * C++ "std" namespace in <iso/stdio_iso.h>. 1275 */ 1276 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1277 /* 1278 * This header needs to be included here because it relies on the global 1279 * visibility of FILE and size_t in the C++ environment. 1280 */ 1281 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1 1282 /* 1283 * CDDL HEADER START 1284 * 1285 * The contents of this file are subject to the terms of the 1286 * Common Development and Distribution License, Version 1.0 only 1287 * (the "License"). You may not use this file except in compliance 1288 * with the License. 1289 * 1290 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1291 * or http://www.opensolaris.org/os/licensing. 1292 * See the License for the specific language governing permissions 1293 * and limitations under the License. 1294 * 1295 * When distributing Covered Code, include this CDDL HEADER in each 1296 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1297 * If applicable, add the following below this CDDL HEADER, with the 1298 * fields enclosed by brackets "[]" replaced with your own identifying 1299 * information: Portions Copyright [yyyy] [name of copyright owner] 1300 * 1301 * CDDL HEADER END 1302 */ 1303 /* 1304 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1305 * 1306 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1307 * Use is subject to license terms. 1308 */ 1309 1310 /* 1311 * An application should not include this header directly. Instead it 1312 * should be included only through the inclusion of other Sun headers. 1313 * 1314 * The contents of this header is limited to identifiers specified in 1315 * the C99 standard and in conflict with the C++ implementation of the 1316 * standard header. The C++ standard may adopt the C99 standard at 1317 * which point it is expected that the symbols included here will 1318 * become part of the C++ std namespace. 1319 */ 1320 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1321 /* 1322 * The following have been added as a result of the ISO/IEC 9899:1999 1323 * standard. For a strictly conforming C application, visibility is 1324 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 1325 * For non-strictly conforming C applications, there are no restrictions 1326 * on the C namespace. 1327 */ 1328 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1329 extern int vfscanf(FILE *, const char *, __va_list); 1330 extern int vscanf(const char *, __va_list); 1331 extern int vsscanf(const char *, const char *, 1332 __va_list); 1333 1334 1335 1336 1337 extern int snprintf(char *, size_t, const char *, 1338 ...); 1339 extern int vsnprintf(char *, size_t, const char *, 1340 __va_list); 1341 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 1342 # 163 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1343 typedef __longlong_t off_t; 1344 1345 1346 1347 1348 1349 typedef __longlong_t off64_t; 1350 # 179 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1351 typedef __longlong_t fpos64_t; 1352 1353 1354 1355 /* 1356 * XPG4 requires that va_list be defined in <stdio.h> "as described in 1357 * <stdarg.h>". ANSI-C and POSIX require that the namespace of <stdio.h> 1358 * not be polluted with this name. 1359 */ 1360 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1361 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 1362 # 213 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1363 extern unsigned char _sibuf[], _sobuf[]; 1364 1365 1366 /* large file compilation environment setup */ 1367 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1368 extern unsigned char *_bufendtab[]; 1369 extern FILE *_lastbuf; 1370 1371 1372 /* In the LP64 compilation environment, all APIs are already large file */ 1373 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1374 typedef int ssize_t; /* (historical version) */ 1375 1376 1377 1378 1379 1380 1381 extern char *tmpnam_r(char *); 1382 1383 1384 1385 1386 extern int fcloseall(void); 1387 extern void setbuffer(FILE *, char *, size_t); 1388 extern int setlinebuf(FILE *); 1389 /* PRINTFLIKE2 */ 1390 extern int asprintf(char **, const char *, ...); 1391 /* PRINTFLIKE2 */ 1392 extern int vasprintf(char **, const char *, __va_list); 1393 1394 1395 1396 1397 /* || defined(_XPG7) */ 1398 extern ssize_t getdelim(char **, size_t *, 1399 int, FILE *); 1400 extern ssize_t getline(char **, size_t *, 1401 FILE *); 1402 1403 1404 /* 1405 * The following are known to POSIX and XOPEN, but not to ANSI-C. 1406 */ 1407 1408 1409 1410 extern FILE *fdopen(int, const char *); 1411 extern char *ctermid(char *); 1412 extern int fileno(FILE *); 1413 1414 1415 1416 /* 1417 * The following are known to POSIX.1c, but not to ANSI-C or XOPEN. 1418 */ 1419 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1420 /* 1421 * The following are known to XOPEN, but not to ANSI-C or POSIX. 1422 */ 1423 1424 1425 extern FILE *popen(const char *, const char *); 1426 extern char *tempnam(const char *, const char *); 1427 extern int pclose(FILE *); 1428 1429 extern int getsubopt(char **, char *const *, char **); 1430 1431 1432 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 1433 1434 extern char *cuserid(char *); 1435 extern int getopt(int, char *const *, const char *); 1436 extern char *optarg; 1437 extern int optind, opterr, optopt; 1438 extern int getw(FILE *); 1439 extern int putw(int, FILE *); 1440 1441 1442 1443 1444 /* 1445 * The following are defined as part of the Large File Summit interfaces. 1446 */ 1447 1448 extern int fseeko(FILE *, off_t, int); 1449 extern off_t ftello(FILE *); 1450 1451 1452 /* 1453 * The following are defined as part of the transitional Large File Summit 1454 * interfaces. 1455 */ 1456 1457 1458 extern FILE *fopen64(const char *, const char *); 1459 extern FILE *freopen64(const char *, const char *, FILE *); 1460 extern FILE *tmpfile64(void); 1461 extern int fgetpos64(FILE *, fpos64_t *); 1462 extern int fsetpos64(FILE *, const fpos64_t *); 1463 extern int fseeko64(FILE *, off64_t, int); 1464 extern off64_t ftello64(FILE *); 1465 1466 1467 /* 1468 * XPG7 symbols 1469 */ 1470 1471 extern FILE *fmemopen(void *, size_t, 1472 const char *); 1473 extern FILE *open_memstream(char **, size_t *); 1474 # 32 "cmdexec.c" 2 1475 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 1 1476 /* 1477 * CDDL HEADER START 1478 * 1479 * The contents of this file are subject to the terms of the 1480 * Common Development and Distribution License, Version 1.0 only 1481 * (the "License"). You may not use this file except in compliance 1482 * with the License. 1483 * 1484 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1485 * or http://www.opensolaris.org/os/licensing. 1486 * See the License for the specific language governing permissions 1487 * and limitations under the License. 1488 * 1489 * When distributing Covered Code, include this CDDL HEADER in each 1490 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1491 * If applicable, add the following below this CDDL HEADER, with the 1492 * fields enclosed by brackets "[]" replaced with your own identifying 1493 * information: Portions Copyright [yyyy] [name of copyright owner] 1494 * 1495 * CDDL HEADER END 1496 */ 1497 /* Copyright (c) 1988 AT&T */ 1498 /* All Rights Reserved */ 1499 1500 1501 /* 1502 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1503 * 1504 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1505 * Use is subject to license terms. 1506 */ 1507 1508 1509 1510 1511 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 1 1512 /* 1513 * CDDL HEADER START 1514 * 1515 * The contents of this file are subject to the terms of the 1516 * Common Development and Distribution License, Version 1.0 only 1517 * (the "License"). You may not use this file except in compliance 1518 * with the License. 1519 * 1520 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1521 * or http://www.opensolaris.org/os/licensing. 1522 * See the License for the specific language governing permissions 1523 * and limitations under the License. 1524 * 1525 * When distributing Covered Code, include this CDDL HEADER in each 1526 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1527 * If applicable, add the following below this CDDL HEADER, with the 1528 * fields enclosed by brackets "[]" replaced with your own identifying 1529 * information: Portions Copyright [yyyy] [name of copyright owner] 1530 * 1531 * CDDL HEADER END 1532 */ 1533 /* Copyright (c) 1988 AT&T */ 1534 /* All Rights Reserved */ 1535 1536 /* 1537 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1538 * 1539 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1540 * Use is subject to license terms. 1541 */ 1542 1543 /* 1544 * An application should not include this header directly. Instead it 1545 * should be included only through the inclusion of other Sun headers. 1546 * 1547 * The contents of this header is limited to identifiers specified in the 1548 * C Standard. Any new identifiers specified in future amendments to the 1549 * C Standard must be placed in this header. If these new identifiers 1550 * are required to also be in the C++ Standard "std" namespace, then for 1551 * anything other than macro definitions, corresponding "using" directives 1552 * must also be added to <ctype.h>. 1553 */ 1554 1555 1556 1557 1558 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1559 /* 1560 * CDDL HEADER START 1561 * 1562 * The contents of this file are subject to the terms of the 1563 * Common Development and Distribution License (the "License"). 1564 * You may not use this file except in compliance with the License. 1565 * 1566 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1567 * or http://www.opensolaris.org/os/licensing. 1568 * See the License for the specific language governing permissions 1569 * and limitations under the License. 1570 * 1571 * When distributing Covered Code, include this CDDL HEADER in each 1572 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1573 * If applicable, add the following below this CDDL HEADER, with the 1574 * fields enclosed by brackets "[]" replaced with your own identifying 1575 * information: Portions Copyright [yyyy] [name of copyright owner] 1576 * 1577 * CDDL HEADER END 1578 */ 1579 1580 /* 1581 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 1582 * Copyright 2016 Joyent, Inc. 1583 * 1584 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1585 * Use is subject to license terms. 1586 */ 1587 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 2 1588 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 1589 extern unsigned char __ctype[]; 1590 extern unsigned int *__ctype_mask; 1591 extern int *__trans_upper; 1592 extern int *__trans_lower; 1593 1594 1595 1596 1597 1598 /* 1599 * These used to be macros, which while more efficient, precludes operation 1600 * with thread specific locales. The old macros will still work, but new 1601 * code compiles to use functions. This is specifically permitted by the 1602 * various standards. Only _tolower and _toupper were required to be 1603 * delivered in macro form. 1604 */ 1605 extern int isalnum(int); 1606 extern int isalpha(int); 1607 extern int iscntrl(int); 1608 extern int isdigit(int); 1609 extern int isgraph(int); 1610 extern int islower(int); 1611 extern int isprint(int); 1612 extern int ispunct(int); 1613 extern int isspace(int); 1614 extern int isupper(int); 1615 extern int isxdigit(int); 1616 1617 extern int isblank(int); 1618 1619 1620 extern int tolower(int); 1621 extern int toupper(int); 1622 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 2 1623 1624 /* 1625 * Allow global visibility for symbols defined in 1626 * C++ "std" namespace in <iso/ctype_iso.h>. 1627 */ 1628 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 1629 extern int isascii(int); 1630 extern int toascii(int); 1631 extern int _tolower(int); 1632 extern int _toupper(int); 1633 # 95 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 1634 typedef struct _locale *locale_t; 1635 1636 1637 extern int isalnum_l(int, locale_t); 1638 extern int isalpha_l(int, locale_t); 1639 extern int isblank_l(int, locale_t); 1640 extern int iscntrl_l(int, locale_t); 1641 extern int isdigit_l(int, locale_t); 1642 extern int isgraph_l(int, locale_t); 1643 extern int islower_l(int, locale_t); 1644 extern int isprint_l(int, locale_t); 1645 extern int ispunct_l(int, locale_t); 1646 extern int isspace_l(int, locale_t); 1647 extern int isupper_l(int, locale_t); 1648 extern int isxdigit_l(int, locale_t); 1649 extern int tolower_l(int, locale_t); 1650 extern int toupper_l(int, locale_t); 1651 # 33 "cmdexec.c" 2 1652 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1 1653 /* 1654 * CDDL HEADER START 1655 * 1656 * The contents of this file are subject to the terms of the 1657 * Common Development and Distribution License (the "License"). 1658 * You may not use this file except in compliance with the License. 1659 * 1660 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1661 * or http://www.opensolaris.org/os/licensing. 1662 * See the License for the specific language governing permissions 1663 * and limitations under the License. 1664 * 1665 * When distributing Covered Code, include this CDDL HEADER in each 1666 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1667 * If applicable, add the following below this CDDL HEADER, with the 1668 * fields enclosed by brackets "[]" replaced with your own identifying 1669 * information: Portions Copyright [yyyy] [name of copyright owner] 1670 * 1671 * CDDL HEADER END 1672 */ 1673 1674 /* 1675 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1676 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 1677 */ 1678 1679 /* Copyright (c) 1988 AT&T */ 1680 /* All Rights Reserved */ 1681 1682 1683 1684 1685 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1 1686 /* 1687 * CDDL HEADER START 1688 * 1689 * The contents of this file are subject to the terms of the 1690 * Common Development and Distribution License, Version 1.0 only 1691 * (the "License"). You may not use this file except in compliance 1692 * with the License. 1693 * 1694 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1695 * or http://www.opensolaris.org/os/licensing. 1696 * See the License for the specific language governing permissions 1697 * and limitations under the License. 1698 * 1699 * When distributing Covered Code, include this CDDL HEADER in each 1700 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1701 * If applicable, add the following below this CDDL HEADER, with the 1702 * fields enclosed by brackets "[]" replaced with your own identifying 1703 * information: Portions Copyright [yyyy] [name of copyright owner] 1704 * 1705 * CDDL HEADER END 1706 */ 1707 /* Copyright (c) 1988 AT&T */ 1708 /* All Rights Reserved */ 1709 1710 1711 /* 1712 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1713 * Copyright 2014 PALO, Richard. 1714 * 1715 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1716 * Use is subject to license terms. 1717 */ 1718 1719 /* 1720 * An application should not include this header directly. Instead it 1721 * should be included only through the inclusion of other Sun headers. 1722 * 1723 * The contents of this header is limited to identifiers specified in the 1724 * C Standard. Any new identifiers specified in future amendments to the 1725 * C Standard must be placed in this header. If these new identifiers 1726 * are required to also be in the C++ Standard "std" namespace, then for 1727 * anything other than macro definitions, corresponding "using" directives 1728 * must also be added to <string.h>. 1729 */ 1730 1731 1732 1733 1734 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1735 /* 1736 * CDDL HEADER START 1737 * 1738 * The contents of this file are subject to the terms of the 1739 * Common Development and Distribution License (the "License"). 1740 * You may not use this file except in compliance with the License. 1741 * 1742 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1743 * or http://www.opensolaris.org/os/licensing. 1744 * See the License for the specific language governing permissions 1745 * and limitations under the License. 1746 * 1747 * When distributing Covered Code, include this CDDL HEADER in each 1748 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1749 * If applicable, add the following below this CDDL HEADER, with the 1750 * fields enclosed by brackets "[]" replaced with your own identifying 1751 * information: Portions Copyright [yyyy] [name of copyright owner] 1752 * 1753 * CDDL HEADER END 1754 */ 1755 1756 /* 1757 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 1758 * Copyright 2016 Joyent, Inc. 1759 * 1760 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1761 * Use is subject to license terms. 1762 */ 1763 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2 1764 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 1765 /* 1766 * This file and its contents are supplied under the terms of the 1767 * Common Development and Distribution License ("CDDL"), version 1.0. 1768 * You may only use this file in accordance with the terms of version 1769 * 1.0 of the CDDL. 1770 * 1771 * A full copy of the text of the CDDL should have accompanied this 1772 * source. A copy of the CDDL is also available via the Internet at 1773 * http://www.illumos.org/license/CDDL. 1774 */ 1775 1776 /* 1777 * Copyright 2014-2016 PALO, Richard. 1778 */ 1779 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2 1780 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1781 extern int memcmp(const void *, const void *, size_t); 1782 extern void *memcpy(void *, const void *, size_t); 1783 extern void *memmove(void *, const void *, size_t); 1784 extern void *memset(void *, int, size_t); 1785 extern char *strcat(char *, const char *); 1786 extern int strcmp(const char *, const char *); 1787 extern char *strcpy(char *, const char *); 1788 extern int strcoll(const char *, const char *); 1789 extern size_t strcspn(const char *, const char *); 1790 extern char *strerror(int); 1791 extern size_t strlen(const char *); 1792 extern char *strncat(char *, const char *, size_t); 1793 extern int strncmp(const char *, const char *, size_t); 1794 extern char *strncpy(char *, const char *, size_t); 1795 extern size_t strspn(const char *, const char *); 1796 extern char *strtok(char *, const char *); 1797 extern size_t strxfrm(char *, const char *, size_t); 1798 1799 /* 1800 * The C++ Standard (ISO/IEC 14882:1998) specifies that each of the 1801 * function signatures for the following functions be replaced by 1802 * two declarations, both of which have the same behavior. 1803 */ 1804 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1805 extern void *memchr(const void *, int, size_t); 1806 extern char *strchr(const char *, int); 1807 extern char *strpbrk(const char *, const char *); 1808 extern char *strrchr(const char *, int); 1809 extern char *strstr(const char *, const char *); 1810 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 2 1811 1812 /* 1813 * Allow global visibility for symbols defined in 1814 * C++ "std" namespace in <iso/string_iso.h>. 1815 */ 1816 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1817 extern int strerror_r(int, char *, size_t); 1818 1819 1820 1821 1822 1823 extern char *strtok_r(char *, const char *, 1824 char **); 1825 1826 1827 1828 1829 extern void *memccpy(void *, const void *, 1830 int, size_t); 1831 1832 1833 1834 1835 extern char *stpcpy(char *, const char *); 1836 extern char *stpncpy(char *, const char *, size_t); 1837 extern char *strndup(const char *, size_t); 1838 extern size_t strnlen(const char *, size_t); 1839 extern char *strsignal(int); 1840 1841 1842 1843 1844 1845 1846 extern int strcoll_l(const char *, const char *, locale_t); 1847 extern size_t strxfrm_l(char *, const char *, 1848 size_t, locale_t); 1849 extern int strcasecmp_l(const char *, const char *, locale_t); 1850 extern int strncasecmp_l(const char *, const char *, size_t, locale_t); 1851 extern char *strerror_l(int, locale_t); 1852 1853 1854 1855 1856 1857 /* Note that some of these are also declared in strings.h for XPG4_2+ */ 1858 extern void explicit_bzero(void *, size_t); 1859 extern int uucopy(const void *, void *, size_t); 1860 extern int uucopystr(const void *, void *, size_t); 1861 extern int ffs(int); 1862 extern int ffsl(long); 1863 extern int ffsll(long long); 1864 extern int fls(int); 1865 extern int flsl(long); 1866 extern int flsll(long long); 1867 extern void *memmem(const void *, size_t, const void *, size_t); 1868 extern char *strcasestr(const char *, const char *); 1869 extern char *strnstr(const char *, const char *, size_t); 1870 extern size_t strlcpy(char *, const char *, size_t); 1871 extern size_t strlcat(char *, const char *, size_t); 1872 extern char *strsep(char **stringp, const char *delim); 1873 extern char *strchrnul(const char *, int); 1874 extern char *strcasestr_l(const char *, const char *, locale_t); 1875 extern int strcasecmp(const char *, const char *); 1876 extern int strncasecmp(const char *, const char *, size_t); 1877 1878 1879 1880 1881 1882 extern char *strdup(const char *); 1883 1884 1885 1886 1887 1888 1889 /* 1890 * gcc provides this inlining facility but Studio C does not. 1891 * We should use it exclusively once Studio C also provides it. 1892 */ 1893 extern void *__builtin_alloca(size_t); 1894 # 34 "cmdexec.c" 2 1895 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 1 1896 /* 1897 * CDDL HEADER START 1898 * 1899 * The contents of this file are subject to the terms of the 1900 * Common Development and Distribution License, Version 1.0 only 1901 * (the "License"). You may not use this file except in compliance 1902 * with the License. 1903 * 1904 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1905 * or http://www.opensolaris.org/os/licensing. 1906 * See the License for the specific language governing permissions 1907 * and limitations under the License. 1908 * 1909 * When distributing Covered Code, include this CDDL HEADER in each 1910 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1911 * If applicable, add the following below this CDDL HEADER, with the 1912 * fields enclosed by brackets "[]" replaced with your own identifying 1913 * information: Portions Copyright [yyyy] [name of copyright owner] 1914 * 1915 * CDDL HEADER END 1916 */ 1917 /* 1918 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 1919 * Use is subject to license terms. 1920 */ 1921 1922 /* 1923 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1924 * 1925 * Portions of this file developed by Garrett D'Amore are licensed 1926 * under the terms of the Common Development and Distribution License (CDDL) 1927 * version 1.0 only. The use of subsequent versions of the License are 1928 * is specifically prohibited unless those terms are not in conflict with 1929 * version 1.0 of the License. You can find this license on-line at 1930 * http://www.illumos.org/license/CDDL 1931 */ 1932 1933 1934 1935 1936 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 1 1937 /* 1938 * CDDL HEADER START 1939 * 1940 * The contents of this file are subject to the terms of the 1941 * Common Development and Distribution License, Version 1.0 only 1942 * (the "License"). You may not use this file except in compliance 1943 * with the License. 1944 * 1945 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1946 * or http://www.opensolaris.org/os/licensing. 1947 * See the License for the specific language governing permissions 1948 * and limitations under the License. 1949 * 1950 * When distributing Covered Code, include this CDDL HEADER in each 1951 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1952 * If applicable, add the following below this CDDL HEADER, with the 1953 * fields enclosed by brackets "[]" replaced with your own identifying 1954 * information: Portions Copyright [yyyy] [name of copyright owner] 1955 * 1956 * CDDL HEADER END 1957 */ 1958 /* 1959 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1960 * Copyright 2014 PALO, Richard. 1961 * 1962 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 1963 * Use is subject to license terms. 1964 */ 1965 1966 /* Copyright (c) 1988 AT&T */ 1967 /* All Rights Reserved */ 1968 1969 1970 /* 1971 * An application should not include this header directly. Instead it 1972 * should be included only through the inclusion of other Sun headers. 1973 * 1974 * The contents of this header is limited to identifiers specified in the 1975 * C Standard. Any new identifiers specified in future amendments to the 1976 * C Standard must be placed in this header. If these new identifiers 1977 * are required to also be in the C++ Standard "std" namespace, then for 1978 * anything other than macro definitions, corresponding "using" directives 1979 * must also be added to <locale.h>. 1980 */ 1981 1982 1983 1984 1985 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1986 /* 1987 * CDDL HEADER START 1988 * 1989 * The contents of this file are subject to the terms of the 1990 * Common Development and Distribution License (the "License"). 1991 * You may not use this file except in compliance with the License. 1992 * 1993 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1994 * or http://www.opensolaris.org/os/licensing. 1995 * See the License for the specific language governing permissions 1996 * and limitations under the License. 1997 * 1998 * When distributing Covered Code, include this CDDL HEADER in each 1999 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2000 * If applicable, add the following below this CDDL HEADER, with the 2001 * fields enclosed by brackets "[]" replaced with your own identifying 2002 * information: Portions Copyright [yyyy] [name of copyright owner] 2003 * 2004 * CDDL HEADER END 2005 */ 2006 2007 /* 2008 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2009 * Copyright 2016 Joyent, Inc. 2010 * 2011 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2012 * Use is subject to license terms. 2013 */ 2014 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2 2015 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 2016 /* 2017 * This file and its contents are supplied under the terms of the 2018 * Common Development and Distribution License ("CDDL"), version 1.0. 2019 * You may only use this file in accordance with the terms of version 2020 * 1.0 of the CDDL. 2021 * 2022 * A full copy of the text of the CDDL should have accompanied this 2023 * source. A copy of the CDDL is also available via the Internet at 2024 * http://www.illumos.org/license/CDDL. 2025 */ 2026 2027 /* 2028 * Copyright 2014-2016 PALO, Richard. 2029 */ 2030 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2 2031 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2032 struct lconv { 2033 char *decimal_point; 2034 char *thousands_sep; 2035 char *grouping; 2036 char *int_curr_symbol; 2037 char *currency_symbol; 2038 char *mon_decimal_point; 2039 char *mon_thousands_sep; 2040 char *mon_grouping; 2041 char *positive_sign; 2042 char *negative_sign; 2043 char int_frac_digits; 2044 char frac_digits; 2045 char p_cs_precedes; 2046 char p_sep_by_space; 2047 char n_cs_precedes; 2048 char n_sep_by_space; 2049 char p_sign_posn; 2050 char n_sign_posn; 2051 2052 /* 2053 * New in IEEE Std 1003.1-2001 for alignment with the ISO/IEC 9899:1999 2054 * standard. Namespace and binary compatibility dictate that visibility 2055 * of these new members be limited. Visibility is limited to a strictly 2056 * conforming ANSI C environment (-Xc) or if _LCONV_C99 is defined. 2057 */ 2058 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2059 }; 2060 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2061 extern char *setlocale(int, const char *); 2062 extern struct lconv *localeconv(void); 2063 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2 2064 2065 2066 2067 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1 2068 /* 2069 * CDDL HEADER START 2070 * 2071 * The contents of this file are subject to the terms of the 2072 * Common Development and Distribution License (the "License"). 2073 * You may not use this file except in compliance with the License. 2074 * 2075 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2076 * or http://www.opensolaris.org/os/licensing. 2077 * See the License for the specific language governing permissions 2078 * and limitations under the License. 2079 * 2080 * When distributing Covered Code, include this CDDL HEADER in each 2081 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2082 * If applicable, add the following below this CDDL HEADER, with the 2083 * fields enclosed by brackets "[]" replaced with your own identifying 2084 * information: Portions Copyright [yyyy] [name of copyright owner] 2085 * 2086 * CDDL HEADER END 2087 */ 2088 /* 2089 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2090 * 2091 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 2092 * Use is subject to license terms. 2093 */ 2094 2095 2096 2097 2098 2099 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 2100 /* 2101 * CDDL HEADER START 2102 * 2103 * The contents of this file are subject to the terms of the 2104 * Common Development and Distribution License (the "License"). 2105 * You may not use this file except in compliance with the License. 2106 * 2107 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2108 * or http://www.opensolaris.org/os/licensing. 2109 * See the License for the specific language governing permissions 2110 * and limitations under the License. 2111 * 2112 * 2113 * When distributing Covered Code, include this CDDL HEADER in each 2114 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2115 * If applicable, add the following below this CDDL HEADER, with the 2116 * fields enclosed by brackets "[]" replaced with your own identifying 2117 * information: Portions Copyright [yyyy] [name of copyright owner] 2118 * 2119 * CDDL HEADER END 2120 */ 2121 2122 /* 2123 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 2124 * Use is subject to license terms. 2125 * Copyright 2016 Joyent, Inc. 2126 */ 2127 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2 2128 2129 2130 2131 2132 2133 /* 2134 * wchar_t is a built-in type in standard C++ and as such is not 2135 * defined here when using standard C++. However, the GNU compiler 2136 * fixincludes utility nonetheless creates its own version of this 2137 * header for use by gcc and g++. In that version it adds a redundant 2138 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 2139 * header we need to include the following magic comment: 2140 * 2141 * we must use the C++ compiler's type 2142 * 2143 * The above comment should not be removed or changed until GNU 2144 * gcc/fixinc/inclhack.def is updated to bypass this header. 2145 */ 2146 2147 2148 2149 2150 2151 2152 typedef long wchar_t; 2153 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2154 extern char *dcgettext(const char *, const char *, const int); 2155 extern char *dgettext(const char *, const char *); 2156 extern char *gettext(const char *); 2157 extern char *textdomain(const char *); 2158 extern char *bindtextdomain(const char *, const char *); 2159 2160 /* 2161 * LI18NUX 2000 Globalization Specification Version 1.0 2162 * with Amendment 2 2163 */ 2164 extern char *dcngettext(const char *, const char *, 2165 const char *, unsigned long int, int); 2166 extern char *dngettext(const char *, const char *, 2167 const char *, unsigned long int); 2168 extern char *ngettext(const char *, const char *, unsigned long int); 2169 extern char *bind_textdomain_codeset(const char *, const char *); 2170 2171 /* Word handling functions --- requires dynamic linking */ 2172 /* Warning: these are experimental and subject to change. */ 2173 extern int wdinit(void); 2174 extern int wdchkind(wchar_t); 2175 extern int wdbindf(wchar_t, wchar_t, int); 2176 extern wchar_t *wddelim(wchar_t, wchar_t, int); 2177 extern wchar_t mcfiller(void); 2178 extern int mcwrap(void); 2179 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2 2180 2181 2182 /* 2183 * Allow global visibility for symbols defined in 2184 * C++ "std" namespace in <iso/locale_iso.h>. 2185 */ 2186 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2187 /* 2188 * These were added in POSIX 2008 as part of the newlocale() specification. 2189 */ 2190 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2191 extern locale_t duplocale(locale_t); 2192 extern void freelocale(locale_t); 2193 extern locale_t newlocale(int, const char *, locale_t); 2194 extern locale_t uselocale(locale_t); 2195 2196 2197 extern locale_t __global_locale(void); 2198 # 35 "cmdexec.c" 2 2199 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1 2200 /* 2201 * CDDL HEADER START 2202 * 2203 * The contents of this file are subject to the terms of the 2204 * Common Development and Distribution License (the "License"). 2205 * You may not use this file except in compliance with the License. 2206 * 2207 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2208 * or http://www.opensolaris.org/os/licensing. 2209 * See the License for the specific language governing permissions 2210 * and limitations under the License. 2211 * 2212 * When distributing Covered Code, include this CDDL HEADER in each 2213 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2214 * If applicable, add the following below this CDDL HEADER, with the 2215 * fields enclosed by brackets "[]" replaced with your own identifying 2216 * information: Portions Copyright [yyyy] [name of copyright owner] 2217 * 2218 * CDDL HEADER END 2219 */ 2220 /* 2221 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2222 * 2223 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 2224 * Use is subject to license terms. 2225 */ 2226 # 36 "cmdexec.c" 2 2227 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1 2228 /* 2229 * CDDL HEADER START 2230 * 2231 * The contents of this file are subject to the terms of the 2232 * Common Development and Distribution License (the "License"). 2233 * You may not use this file except in compliance with the License. 2234 * 2235 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2236 * or http://www.opensolaris.org/os/licensing. 2237 * See the License for the specific language governing permissions 2238 * and limitations under the License. 2239 * 2240 * When distributing Covered Code, include this CDDL HEADER in each 2241 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2242 * If applicable, add the following below this CDDL HEADER, with the 2243 * fields enclosed by brackets "[]" replaced with your own identifying 2244 * information: Portions Copyright [yyyy] [name of copyright owner] 2245 * 2246 * CDDL HEADER END 2247 */ 2248 2249 /* 2250 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2251 * Copyright (c) 2013 Gary Mills 2252 * 2253 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 2254 */ 2255 2256 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 2257 2258 /* Copyright (c) 1988 AT&T */ 2259 /* All Rights Reserved */ 2260 2261 2262 2263 2264 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1 2265 /* 2266 * CDDL HEADER START 2267 * 2268 * The contents of this file are subject to the terms of the 2269 * Common Development and Distribution License, Version 1.0 only 2270 * (the "License"). You may not use this file except in compliance 2271 * with the License. 2272 * 2273 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2274 * or http://www.opensolaris.org/os/licensing. 2275 * See the License for the specific language governing permissions 2276 * and limitations under the License. 2277 * 2278 * When distributing Covered Code, include this CDDL HEADER in each 2279 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2280 * If applicable, add the following below this CDDL HEADER, with the 2281 * fields enclosed by brackets "[]" replaced with your own identifying 2282 * information: Portions Copyright [yyyy] [name of copyright owner] 2283 * 2284 * CDDL HEADER END 2285 */ 2286 /* 2287 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2288 * Copyright 2014 PALO, Richard. 2289 * 2290 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 2291 * Use is subject to license terms. 2292 */ 2293 2294 /* Copyright (c) 1988 AT&T */ 2295 /* All Rights Reserved */ 2296 2297 2298 /* 2299 * An application should not include this header directly. Instead it 2300 * should be included only through the inclusion of other Sun headers. 2301 * 2302 * The contents of this header is limited to identifiers specified in the 2303 * C Standard. Any new identifiers specified in future amendments to the 2304 * C Standard must be placed in this header. If these new identifiers 2305 * are required to also be in the C++ Standard "std" namespace, then for 2306 * anything other than macro definitions, corresponding "using" directives 2307 * must also be added to <locale.h>. 2308 */ 2309 2310 2311 2312 2313 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2314 /* 2315 * CDDL HEADER START 2316 * 2317 * The contents of this file are subject to the terms of the 2318 * Common Development and Distribution License (the "License"). 2319 * You may not use this file except in compliance with the License. 2320 * 2321 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2322 * or http://www.opensolaris.org/os/licensing. 2323 * See the License for the specific language governing permissions 2324 * and limitations under the License. 2325 * 2326 * When distributing Covered Code, include this CDDL HEADER in each 2327 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2328 * If applicable, add the following below this CDDL HEADER, with the 2329 * fields enclosed by brackets "[]" replaced with your own identifying 2330 * information: Portions Copyright [yyyy] [name of copyright owner] 2331 * 2332 * CDDL HEADER END 2333 */ 2334 2335 /* 2336 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2337 * Copyright 2016 Joyent, Inc. 2338 * 2339 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2340 * Use is subject to license terms. 2341 */ 2342 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2 2343 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 2344 /* 2345 * This file and its contents are supplied under the terms of the 2346 * Common Development and Distribution License ("CDDL"), version 1.0. 2347 * You may only use this file in accordance with the terms of version 2348 * 1.0 of the CDDL. 2349 * 2350 * A full copy of the text of the CDDL should have accompanied this 2351 * source. A copy of the CDDL is also available via the Internet at 2352 * http://www.illumos.org/license/CDDL. 2353 */ 2354 2355 /* 2356 * Copyright 2014-2016 PALO, Richard. 2357 */ 2358 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2 2359 2360 2361 2362 2363 2364 unsigned char __mb_cur_max(void); 2365 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2366 typedef struct { 2367 int quot; 2368 int rem; 2369 } div_t; 2370 2371 typedef struct { 2372 long quot; 2373 long rem; 2374 } ldiv_t; 2375 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2376 /* 2377 * wchar_t is a built-in type in standard C++ and as such is not 2378 * defined here when using standard C++. However, the GNU compiler 2379 * fixincludes utility nonetheless creates its own version of this 2380 * header for use by gcc and g++. In that version it adds a redundant 2381 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 2382 * header we need to include the following magic comment: 2383 * 2384 * we must use the C++ compiler's type 2385 * 2386 * The above comment should not be removed or changed until GNU 2387 * gcc/fixinc/inclhack.def is updated to bypass this header. 2388 */ 2389 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2390 extern void abort(void) __attribute__((__noreturn__)); 2391 extern int abs(int); 2392 extern int atexit(void (*)(void)); 2393 extern double atof(const char *); 2394 extern int atoi(const char *); 2395 extern long int atol(const char *); 2396 extern void *bsearch(const void *, const void *, size_t, size_t, 2397 int (*)(const void *, const void *)); 2398 2399 2400 2401 2402 2403 2404 extern void *calloc(size_t, size_t); 2405 extern div_t div(int, int); 2406 extern void exit(int) 2407 __attribute__((__noreturn__)); 2408 extern void free(void *); 2409 extern char *getenv(const char *); 2410 extern long int labs(long); 2411 extern ldiv_t ldiv(long, long); 2412 extern void *malloc(size_t); 2413 extern int mblen(const char *, size_t); 2414 extern size_t mbstowcs(wchar_t *, const char *, 2415 size_t); 2416 extern int mbtowc(wchar_t *, const char *, size_t); 2417 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); 2418 2419 2420 2421 2422 2423 extern int rand(void); 2424 extern void *realloc(void *, size_t); 2425 extern void srand(unsigned int); 2426 extern double strtod(const char *, char **); 2427 extern long int strtol(const char *, char **, int); 2428 extern unsigned long int strtoul(const char *, 2429 char **, int); 2430 extern int system(const char *); 2431 extern int wctomb(char *, wchar_t); 2432 extern size_t wcstombs(char *, const wchar_t *, 2433 size_t); 2434 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 2435 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1 2436 /* 2437 * CDDL HEADER START 2438 * 2439 * The contents of this file are subject to the terms of the 2440 * Common Development and Distribution License, Version 1.0 only 2441 * (the "License"). You may not use this file except in compliance 2442 * with the License. 2443 * 2444 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2445 * or http://www.opensolaris.org/os/licensing. 2446 * See the License for the specific language governing permissions 2447 * and limitations under the License. 2448 * 2449 * When distributing Covered Code, include this CDDL HEADER in each 2450 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2451 * If applicable, add the following below this CDDL HEADER, with the 2452 * fields enclosed by brackets "[]" replaced with your own identifying 2453 * information: Portions Copyright [yyyy] [name of copyright owner] 2454 * 2455 * CDDL HEADER END 2456 */ 2457 /* 2458 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2459 * 2460 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2461 * Use is subject to license terms. 2462 */ 2463 2464 /* 2465 * An application should not include this header directly. Instead it 2466 * should be included only through the inclusion of other Sun headers. 2467 * 2468 * The contents of this header is limited to identifiers specified in 2469 * the C99 standard and in conflict with the C++ implementation of the 2470 * standard header. The C++ standard may adopt the C99 standard at 2471 * which point it is expected that the symbols included here will 2472 * become part of the C++ std namespace. 2473 */ 2474 2475 2476 2477 2478 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2479 /* 2480 * CDDL HEADER START 2481 * 2482 * The contents of this file are subject to the terms of the 2483 * Common Development and Distribution License (the "License"). 2484 * You may not use this file except in compliance with the License. 2485 * 2486 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2487 * or http://www.opensolaris.org/os/licensing. 2488 * See the License for the specific language governing permissions 2489 * and limitations under the License. 2490 * 2491 * When distributing Covered Code, include this CDDL HEADER in each 2492 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2493 * If applicable, add the following below this CDDL HEADER, with the 2494 * fields enclosed by brackets "[]" replaced with your own identifying 2495 * information: Portions Copyright [yyyy] [name of copyright owner] 2496 * 2497 * CDDL HEADER END 2498 */ 2499 2500 /* 2501 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2502 * Copyright 2016 Joyent, Inc. 2503 * 2504 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2505 * Use is subject to license terms. 2506 */ 2507 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2 2508 2509 2510 2511 2512 2513 /* 2514 * The following have been added as a result of the ISO/IEC 9899:1999 2515 * standard. For a strictly conforming C application, visibility is 2516 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 2517 * For non-strictly conforming C applications, there are no restrictions 2518 * on the C namespace. 2519 */ 2520 2521 2522 typedef struct { 2523 long long quot; 2524 long long rem; 2525 } lldiv_t; 2526 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2527 extern void _Exit(int); 2528 extern float strtof(const char *, char **); 2529 extern long double strtold(const char *, char **); 2530 2531 2532 extern long long atoll(const char *); 2533 extern long long llabs(long long); 2534 extern lldiv_t lldiv(long long, long long); 2535 extern long long strtoll(const char *, char **, 2536 int); 2537 extern unsigned long long strtoull(const char *, 2538 char **, int); 2539 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 2540 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1 2541 /* 2542 * This file and its contents are supplied under the terms of the 2543 * Common Development and Distribution License ("CDDL"), version 1.0. 2544 * You may only use this file in accordance with the terms of version 2545 * 1.0 of the CDDL. 2546 * 2547 * A full copy of the text of the CDDL should have accompanied this 2548 * source. A copy of the CDDL is also available via the Internet at 2549 * http://www.illumos.org/license/CDDL. 2550 */ 2551 2552 /* 2553 * Copyright 2016 Joyent, Inc. 2554 */ 2555 2556 /* 2557 * An application should not include this header directly. Instead it 2558 * should be included only through the inclusion of other illumos headers. 2559 * 2560 * The contents of this header is limited to identifiers specified in 2561 * the C11 standard and in conflict with the C++ implementation of the 2562 * standard header. The C++ standard may adopt the C11 standard at 2563 * which point it is expected that the symbols included here will 2564 * become part of the C++ std namespace. 2565 */ 2566 2567 2568 2569 2570 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2571 /* 2572 * CDDL HEADER START 2573 * 2574 * The contents of this file are subject to the terms of the 2575 * Common Development and Distribution License (the "License"). 2576 * You may not use this file except in compliance with the License. 2577 * 2578 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2579 * or http://www.opensolaris.org/os/licensing. 2580 * See the License for the specific language governing permissions 2581 * and limitations under the License. 2582 * 2583 * When distributing Covered Code, include this CDDL HEADER in each 2584 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2585 * If applicable, add the following below this CDDL HEADER, with the 2586 * fields enclosed by brackets "[]" replaced with your own identifying 2587 * information: Portions Copyright [yyyy] [name of copyright owner] 2588 * 2589 * CDDL HEADER END 2590 */ 2591 2592 /* 2593 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2594 * Copyright 2016 Joyent, Inc. 2595 * 2596 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2597 * Use is subject to license terms. 2598 */ 2599 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2 2600 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2601 /* 2602 * The following have been added as a result of the ISO/IEC 9899:2011 2603 * standard. For a strictly conforming C application, visibility is 2604 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 2605 * For non-strictly conforming C applications, there are no restrictions 2606 * on the C namespace. 2607 */ 2608 2609 /* 2610 * Work around fix-includes and other bad actors with using multiple headers. 2611 */ 2612 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2613 extern void *aligned_alloc(size_t, size_t); 2614 extern int at_quick_exit(void (*)(void)); 2615 extern void quick_exit(int); 2616 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 2617 2618 2619 2620 2621 2622 /* 2623 * Allow global visibility for symbols defined in 2624 * C++ "std" namespace in <iso/stdlib_iso.h>. 2625 */ 2626 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2627 /* 2628 * Allow global visibility for symbols defined in 2629 * C++ "std" namespace in <iso/stdlib_c11.h>. 2630 */ 2631 # 101 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2632 typedef unsigned int uid_t; /* UID type */ 2633 2634 2635 /* large file compilation environment setup */ 2636 2637 2638 2639 2640 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2641 #pragma redefine_extname mkstemp mkstemp64 2642 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2643 2644 2645 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2646 #pragma redefine_extname mkstemps mkstemps64 2647 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2648 2649 2650 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2651 #pragma redefine_extname mkostemp mkostemp64 2652 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2653 2654 2655 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2656 #pragma redefine_extname mkostemps mkostemps64 2657 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2658 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2659 /* In the LP64 compilation environment, all APIs are already large file */ 2660 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2661 extern int rand_r(unsigned int *); 2662 2663 2664 extern void _exithandle(void); 2665 2666 2667 2668 2669 extern double drand48(void); 2670 extern double erand48(unsigned short *); 2671 extern long jrand48(unsigned short *); 2672 extern void lcong48(unsigned short *); 2673 extern long lrand48(void); 2674 extern long mrand48(void); 2675 extern long nrand48(unsigned short *); 2676 extern unsigned short *seed48(unsigned short *); 2677 extern void srand48(long); 2678 extern int putenv(char *); 2679 extern void setkey(const char *); 2680 2681 2682 /* 2683 * swab() has historically been in <stdlib.h> as delivered from AT&T 2684 * and continues to be visible in the default compilation environment. 2685 * As of Issue 4 of the X/Open Portability Guides, swab() was declared 2686 * in <unistd.h>. As a result, with respect to X/Open namespace the 2687 * swab() declaration in this header is only visible for the XPG3 2688 * environment. 2689 */ 2690 # 182 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2691 extern void swab(const char *, char *, ssize_t); 2692 2693 2694 2695 2696 2697 extern int mkstemp(char *); 2698 2699 extern int mkstemps(char *, int); 2700 2701 2702 2703 2704 2705 extern int mkstemp64(char *); 2706 2707 extern int mkstemps64(char *, int); 2708 2709 2710 2711 2712 extern char *mkdtemp(char *); 2713 2714 2715 2716 extern int mkostemp(char *, int); 2717 extern int mkostemps(char *, int, int); 2718 2719 2720 extern int mkostemp64(char *, int); 2721 extern int mkostemps64(char *, int, int); 2722 2723 2724 2725 2726 2727 2728 extern long a64l(const char *); 2729 extern char *ecvt(double, int, int *, int *); 2730 extern char *fcvt(double, int, int *, int *); 2731 extern char *gcvt(double, int, char *); 2732 extern int getsubopt(char **, char *const *, char **); 2733 extern int grantpt(int); 2734 extern char *initstate(unsigned, char *, size_t); 2735 extern char *l64a(long); 2736 extern char *mktemp(char *); 2737 extern char *ptsname(int); 2738 extern long random(void); 2739 extern char *realpath(const char *, char *); 2740 extern char *setstate(const char *); 2741 extern void srandom(unsigned); 2742 extern int unlockpt(int); 2743 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 2744 2745 extern int ttyslot(void); 2746 extern void *valloc(size_t); 2747 2748 2749 2750 2751 2752 2753 extern int posix_memalign(void **, size_t, size_t); 2754 extern int posix_openpt(int); 2755 extern int setenv(const char *, const char *, int); 2756 extern int unsetenv(const char *); 2757 2758 2759 2760 2761 extern char *canonicalize_file_name(const char *); 2762 extern int clearenv(void); 2763 extern void closefrom(int); 2764 extern int daemon(int, int); 2765 extern int dup2(int, int); 2766 extern int dup3(int, int, int); 2767 extern int fdwalk(int (*)(void *, int), void *); 2768 extern char *qecvt(long double, int, int *, int *); 2769 extern char *qfcvt(long double, int, int *, int *); 2770 extern char *qgcvt(long double, int, char *); 2771 extern char *getcwd(char *, size_t); 2772 extern const char *getexecname(void); 2773 2774 2775 2776 2777 2778 2779 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2780 #pragma redefine_extname getlogin getloginx 2781 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2782 2783 2784 2785 2786 2787 2788 extern char *getlogin(void); 2789 2790 2791 extern int getopt(int, char *const *, const char *); 2792 extern char *optarg; 2793 extern int optind, opterr, optopt; 2794 extern char *getpass(const char *); 2795 extern char *getpassphrase(const char *); 2796 extern int getpw(uid_t, char *); 2797 extern int isatty(int); 2798 extern void *memalign(size_t, size_t); 2799 extern char *ttyname(int); 2800 extern char *mkdtemp(char *); 2801 extern const char *getprogname(void); 2802 extern void setprogname(const char *); 2803 2804 2805 extern char *lltostr(long long, char *); 2806 extern char *ulltostr(unsigned long long, char *); 2807 2808 2809 2810 2811 /* OpenBSD compatibility functions */ 2812 2813 2814 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1 2815 /* 2816 * CDDL HEADER START 2817 * 2818 * The contents of this file are subject to the terms of the 2819 * Common Development and Distribution License, Version 1.0 only 2820 * (the "License"). You may not use this file except in compliance 2821 * with the License. 2822 * 2823 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2824 * or http://www.opensolaris.org/os/licensing. 2825 * See the License for the specific language governing permissions 2826 * and limitations under the License. 2827 * 2828 * When distributing Covered Code, include this CDDL HEADER in each 2829 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2830 * If applicable, add the following below this CDDL HEADER, with the 2831 * fields enclosed by brackets "[]" replaced with your own identifying 2832 * information: Portions Copyright [yyyy] [name of copyright owner] 2833 * 2834 * CDDL HEADER END 2835 */ 2836 /* 2837 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2838 * 2839 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 2840 * Use is subject to license terms. 2841 */ 2842 2843 2844 2845 2846 /* 2847 * This file, <inttypes.h>, is specified by the ISO C standard, 2848 * standard, ISO/IEC 9899:1999 Programming language - C and is 2849 * also defined by SUSv3. 2850 * 2851 * ISO International Organization for Standardization. 2852 * SUSv3 Single Unix Specification, Version 3 2853 */ 2854 2855 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2856 /* 2857 * CDDL HEADER START 2858 * 2859 * The contents of this file are subject to the terms of the 2860 * Common Development and Distribution License (the "License"). 2861 * You may not use this file except in compliance with the License. 2862 * 2863 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2864 * or http://www.opensolaris.org/os/licensing. 2865 * See the License for the specific language governing permissions 2866 * and limitations under the License. 2867 * 2868 * When distributing Covered Code, include this CDDL HEADER in each 2869 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2870 * If applicable, add the following below this CDDL HEADER, with the 2871 * fields enclosed by brackets "[]" replaced with your own identifying 2872 * information: Portions Copyright [yyyy] [name of copyright owner] 2873 * 2874 * CDDL HEADER END 2875 */ 2876 2877 /* 2878 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2879 * Copyright 2016 Joyent, Inc. 2880 * 2881 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2882 * Use is subject to license terms. 2883 */ 2884 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 2885 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 1 2886 /* 2887 * CDDL HEADER START 2888 * 2889 * The contents of this file are subject to the terms of the 2890 * Common Development and Distribution License, Version 1.0 only 2891 * (the "License"). You may not use this file except in compliance 2892 * with the License. 2893 * 2894 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2895 * or http://www.opensolaris.org/os/licensing. 2896 * See the License for the specific language governing permissions 2897 * and limitations under the License. 2898 * 2899 * When distributing Covered Code, include this CDDL HEADER in each 2900 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2901 * If applicable, add the following below this CDDL HEADER, with the 2902 * fields enclosed by brackets "[]" replaced with your own identifying 2903 * information: Portions Copyright [yyyy] [name of copyright owner] 2904 * 2905 * CDDL HEADER END 2906 */ 2907 /* 2908 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 2909 * Use is subject to license terms. 2910 */ 2911 2912 2913 2914 2915 #pragma ident "%Z%%M% %I% %E% SMI" 2916 2917 /* 2918 * This header, <sys/inttypes.h>, contains (through nested inclusion) the 2919 * vast majority of the facilities specified for <inttypes.h> as defined 2920 * by the ISO C Standard, ISO/IEC 9899:1999 Programming language - C. 2921 * 2922 * Kernel/Driver developers are encouraged to include this file to access 2923 * the fixed size types, limits and utility macros. Application developers 2924 * should use the standard defined header <inttypes.h>. 2925 */ 2926 2927 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2928 /* 2929 * CDDL HEADER START 2930 * 2931 * The contents of this file are subject to the terms of the 2932 * Common Development and Distribution License (the "License"). 2933 * You may not use this file except in compliance with the License. 2934 * 2935 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2936 * or http://www.opensolaris.org/os/licensing. 2937 * See the License for the specific language governing permissions 2938 * and limitations under the License. 2939 * 2940 * When distributing Covered Code, include this CDDL HEADER in each 2941 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2942 * If applicable, add the following below this CDDL HEADER, with the 2943 * fields enclosed by brackets "[]" replaced with your own identifying 2944 * information: Portions Copyright [yyyy] [name of copyright owner] 2945 * 2946 * CDDL HEADER END 2947 */ 2948 2949 /* 2950 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2951 * Copyright 2016 Joyent, Inc. 2952 * 2953 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2954 * Use is subject to license terms. 2955 */ 2956 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 2957 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 2958 /* 2959 * CDDL HEADER START 2960 * 2961 * The contents of this file are subject to the terms of the 2962 * Common Development and Distribution License, Version 1.0 only 2963 * (the "License"). You may not use this file except in compliance 2964 * with the License. 2965 * 2966 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2967 * or http://www.opensolaris.org/os/licensing. 2968 * See the License for the specific language governing permissions 2969 * and limitations under the License. 2970 * 2971 * When distributing Covered Code, include this CDDL HEADER in each 2972 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2973 * If applicable, add the following below this CDDL HEADER, with the 2974 * fields enclosed by brackets "[]" replaced with your own identifying 2975 * information: Portions Copyright [yyyy] [name of copyright owner] 2976 * 2977 * CDDL HEADER END 2978 */ 2979 /* 2980 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2981 * 2982 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2983 * Use is subject to license terms. 2984 */ 2985 2986 2987 2988 2989 /* 2990 * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation 2991 * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999 2992 * Programming language - C. 2993 * 2994 * Programs/Modules should not directly include this file. Access to the 2995 * types defined in this file should be through the inclusion of one of the 2996 * following files: 2997 * 2998 * <sys/types.h> Provides only the "_t" types defined in this 2999 * file which is a subset of the contents of 3000 * <inttypes.h>. (This can be appropriate for 3001 * all programs/modules except those claiming 3002 * ANSI-C conformance.) 3003 * 3004 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 3005 * components of <inttypes.h>. 3006 * 3007 * <inttypes.h> For use by applications. 3008 * 3009 * See these files for more details. 3010 */ 3011 3012 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3013 /* 3014 * CDDL HEADER START 3015 * 3016 * The contents of this file are subject to the terms of the 3017 * Common Development and Distribution License (the "License"). 3018 * You may not use this file except in compliance with the License. 3019 * 3020 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3021 * or http://www.opensolaris.org/os/licensing. 3022 * See the License for the specific language governing permissions 3023 * and limitations under the License. 3024 * 3025 * When distributing Covered Code, include this CDDL HEADER in each 3026 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3027 * If applicable, add the following below this CDDL HEADER, with the 3028 * fields enclosed by brackets "[]" replaced with your own identifying 3029 * information: Portions Copyright [yyyy] [name of copyright owner] 3030 * 3031 * CDDL HEADER END 3032 */ 3033 3034 /* 3035 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3036 * Copyright 2016 Joyent, Inc. 3037 * 3038 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3039 * Use is subject to license terms. 3040 */ 3041 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2 3042 3043 3044 3045 3046 3047 /* 3048 * Basic / Extended integer types 3049 * 3050 * The following defines the basic fixed-size integer types. 3051 * 3052 * Implementations are free to typedef them to Standard C integer types or 3053 * extensions that they support. If an implementation does not support one 3054 * of the particular integer data types below, then it should not define the 3055 * typedefs and macros corresponding to that data type. Note that int8_t 3056 * is not defined in -Xs mode on ISAs for which the ABI specifies "char" 3057 * as an unsigned entity because there is no way to define an eight bit 3058 * signed integral. 3059 */ 3060 3061 typedef char int8_t; 3062 3063 3064 3065 typedef short int16_t; 3066 typedef int int32_t; 3067 3068 3069 3070 3071 3072 3073 typedef long long int64_t; 3074 3075 3076 3077 typedef unsigned char uint8_t; 3078 typedef unsigned short uint16_t; 3079 typedef unsigned int uint32_t; 3080 3081 3082 3083 3084 typedef unsigned long long uint64_t; 3085 3086 3087 3088 /* 3089 * intmax_t and uintmax_t are to be the longest (in number of bits) signed 3090 * and unsigned integer types supported by the implementation. 3091 */ 3092 3093 typedef int64_t intmax_t; 3094 typedef uint64_t uintmax_t; 3095 3096 3097 3098 3099 3100 /* 3101 * intptr_t and uintptr_t are signed and unsigned integer types large enough 3102 * to hold any data pointer; that is, data pointers can be assigned into or 3103 * from these integer types without losing precision. 3104 */ 3105 3106 3107 3108 3109 typedef int intptr_t; 3110 typedef unsigned int uintptr_t; 3111 3112 3113 /* 3114 * The following define the fastest integer types that can hold the 3115 * specified number of bits. 3116 */ 3117 3118 typedef char int_fast8_t; 3119 3120 3121 3122 typedef int int_fast16_t; 3123 typedef int int_fast32_t; 3124 3125 3126 3127 3128 typedef long long int_fast64_t; 3129 3130 3131 3132 typedef unsigned char uint_fast8_t; 3133 typedef unsigned int uint_fast16_t; 3134 typedef unsigned int uint_fast32_t; 3135 3136 3137 3138 3139 typedef unsigned long long uint_fast64_t; 3140 3141 3142 3143 /* 3144 * The following define the smallest integer types that can hold the 3145 * specified number of bits. 3146 */ 3147 3148 typedef char int_least8_t; 3149 3150 3151 3152 typedef short int_least16_t; 3153 typedef int int_least32_t; 3154 3155 3156 3157 3158 typedef long long int_least64_t; 3159 3160 3161 3162 /* 3163 * If these are changed, please update char16_t and char32_t in head/uchar.h. 3164 */ 3165 typedef unsigned char uint_least8_t; 3166 typedef unsigned short uint_least16_t; 3167 typedef unsigned int uint_least32_t; 3168 3169 3170 3171 3172 typedef unsigned long long uint_least64_t; 3173 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3174 3175 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 3176 /* 3177 * CDDL HEADER START 3178 * 3179 * The contents of this file are subject to the terms of the 3180 * Common Development and Distribution License, Version 1.0 only 3181 * (the "License"). You may not use this file except in compliance 3182 * with the License. 3183 * 3184 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3185 * or http://www.opensolaris.org/os/licensing. 3186 * See the License for the specific language governing permissions 3187 * and limitations under the License. 3188 * 3189 * When distributing Covered Code, include this CDDL HEADER in each 3190 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3191 * If applicable, add the following below this CDDL HEADER, with the 3192 * fields enclosed by brackets "[]" replaced with your own identifying 3193 * information: Portions Copyright [yyyy] [name of copyright owner] 3194 * 3195 * CDDL HEADER END 3196 */ 3197 /* 3198 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3199 * 3200 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3201 * Use is subject to license terms. 3202 */ 3203 3204 3205 3206 3207 /* 3208 * This file, <sys/int_limits.h>, is part of the Sun Microsystems implementation 3209 * of <inttypes.h> as defined in the ISO C standard, ISO/IEC 9899:1999 3210 * Programming language - C. 3211 * 3212 * Programs/Modules should not directly include this file. Access to the 3213 * types defined in this file should be through the inclusion of one of the 3214 * following files: 3215 * 3216 * <limits.h> This nested inclusion is disabled for strictly 3217 * ANSI-C conforming compilations. The *_MIN 3218 * definitions are not visible to POSIX or XPG 3219 * conforming applications (due to what may be 3220 * a bug in the specification - this is under 3221 * investigation) 3222 * 3223 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 3224 * components of <inttypes.h>. 3225 * 3226 * <inttypes.h> For use by applications. 3227 * 3228 * See these files for more details. 3229 */ 3230 3231 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3232 /* 3233 * CDDL HEADER START 3234 * 3235 * The contents of this file are subject to the terms of the 3236 * Common Development and Distribution License (the "License"). 3237 * You may not use this file except in compliance with the License. 3238 * 3239 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3240 * or http://www.opensolaris.org/os/licensing. 3241 * See the License for the specific language governing permissions 3242 * and limitations under the License. 3243 * 3244 * When distributing Covered Code, include this CDDL HEADER in each 3245 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3246 * If applicable, add the following below this CDDL HEADER, with the 3247 * fields enclosed by brackets "[]" replaced with your own identifying 3248 * information: Portions Copyright [yyyy] [name of copyright owner] 3249 * 3250 * CDDL HEADER END 3251 */ 3252 3253 /* 3254 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3255 * Copyright 2016 Joyent, Inc. 3256 * 3257 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3258 * Use is subject to license terms. 3259 */ 3260 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2 3261 3262 3263 3264 3265 3266 /* 3267 * Limits 3268 * 3269 * The following define the limits for the types defined in <sys/int_types.h>. 3270 * 3271 * INTMAX_MIN (minimum value of the largest supported signed integer type), 3272 * INTMAX_MAX (maximum value of the largest supported signed integer type), 3273 * and UINTMAX_MAX (maximum value of the largest supported unsigned integer 3274 * type) can be set to implementation defined limits. 3275 * 3276 * NOTE : A programmer can test to see whether an implementation supports 3277 * a particular size of integer by testing if the macro that gives the 3278 * maximum for that datatype is defined. For example, if #ifdef UINT64_MAX 3279 * tests false, the implementation does not support unsigned 64 bit integers. 3280 * 3281 * The type of these macros is intentionally unspecified. 3282 * 3283 * The types int8_t, int_least8_t, and int_fast8_t are not defined for ISAs 3284 * where the ABI specifies "char" as unsigned when the translation mode is 3285 * not ANSI-C. 3286 */ 3287 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 3288 /* 3289 * The following 2 macros are provided for testing whether the types 3290 * intptr_t and uintptr_t (integers large enough to hold a void *) are 3291 * defined in this header. They are needed in case the architecture can't 3292 * represent a pointer in any standard integral type. 3293 */ 3294 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 3295 /* Maximum limits of ptrdiff_t defined in <sys/types.h> */ 3296 3297 3298 3299 3300 3301 3302 /* 3303 * Maximum value of a "size_t". SIZE_MAX was previously defined 3304 * in <limits.h>, however, the standards specify it be defined 3305 * in <stdint.h>. The <stdint.h> headers includes this header as 3306 * does <limits.h>. The value of SIZE_MAX should not deviate 3307 * from the value of ULONG_MAX defined <sys/types.h>. 3308 */ 3309 3310 3311 3312 3313 3314 3315 /* Maximum limit of sig_atomic_t defined in <sys/types.h> */ 3316 3317 3318 3319 3320 /* 3321 * Maximum limit of wchar_t. The WCHAR_* macros are also 3322 * defined in <iso/wchar_iso.h>, but inclusion of that header 3323 * will break ISO/IEC C namespace. 3324 */ 3325 3326 3327 3328 3329 /* Maximum limit of wint_t */ 3330 3331 3332 3333 3334 /* 3335 * It is probably a bug in the POSIX specification (IEEE-1003.1-1990) that 3336 * when including <limits.h> that the suffix _MAX is reserved but not the 3337 * suffix _MIN. However, until that issue is resolved.... 3338 */ 3339 # 230 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 3340 /* Minimum value of a pointer-holding signed integer type */ 3341 3342 3343 3344 3345 3346 3347 /* Minimum limits of ptrdiff_t defined in <sys/types.h> */ 3348 3349 3350 3351 3352 3353 3354 /* Minimum limit of sig_atomic_t defined in <sys/types.h> */ 3355 3356 3357 3358 3359 /* 3360 * Minimum limit of wchar_t. The WCHAR_* macros are also 3361 * defined in <iso/wchar_iso.h>, but inclusion of that header 3362 * will break ISO/IEC C namespace. 3363 */ 3364 3365 3366 3367 3368 /* Minimum limit of wint_t */ 3369 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3370 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1 3371 /* 3372 * CDDL HEADER START 3373 * 3374 * The contents of this file are subject to the terms of the 3375 * Common Development and Distribution License, Version 1.0 only 3376 * (the "License"). You may not use this file except in compliance 3377 * with the License. 3378 * 3379 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3380 * or http://www.opensolaris.org/os/licensing. 3381 * See the License for the specific language governing permissions 3382 * and limitations under the License. 3383 * 3384 * When distributing Covered Code, include this CDDL HEADER in each 3385 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3386 * If applicable, add the following below this CDDL HEADER, with the 3387 * fields enclosed by brackets "[]" replaced with your own identifying 3388 * information: Portions Copyright [yyyy] [name of copyright owner] 3389 * 3390 * CDDL HEADER END 3391 */ 3392 /* 3393 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3394 * 3395 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3396 * Use is subject to license terms. 3397 */ 3398 3399 3400 3401 3402 /* 3403 * This file, <sys/int_const.h>, is part of the Sun Microsystems implementation 3404 * of <inttypes.h> as proposed in the ISO/JTC1/SC22/WG14 C committee's working 3405 * draft for the revision of the current ISO C standard, ISO/IEC 9899:1990 3406 * Programming language - C. 3407 * 3408 * Programs/Modules should not directly include this file. Access to the 3409 * types defined in this file should be through the inclusion of one of the 3410 * following files: 3411 * 3412 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 3413 * components of <inttypes.h>. 3414 * 3415 * <inttypes.h> For use by applications. 3416 * 3417 * See these files for more details. 3418 * 3419 * Use at your own risk. This file will track the evolution of the revision 3420 * of the current ISO C standard. As of February 1996, the committee is 3421 * squarely behind the fixed sized types. 3422 */ 3423 3424 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3425 /* 3426 * CDDL HEADER START 3427 * 3428 * The contents of this file are subject to the terms of the 3429 * Common Development and Distribution License (the "License"). 3430 * You may not use this file except in compliance with the License. 3431 * 3432 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3433 * or http://www.opensolaris.org/os/licensing. 3434 * See the License for the specific language governing permissions 3435 * and limitations under the License. 3436 * 3437 * When distributing Covered Code, include this CDDL HEADER in each 3438 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3439 * If applicable, add the following below this CDDL HEADER, with the 3440 * fields enclosed by brackets "[]" replaced with your own identifying 3441 * information: Portions Copyright [yyyy] [name of copyright owner] 3442 * 3443 * CDDL HEADER END 3444 */ 3445 3446 /* 3447 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3448 * Copyright 2016 Joyent, Inc. 3449 * 3450 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3451 * Use is subject to license terms. 3452 */ 3453 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2 3454 3455 3456 3457 3458 3459 /* 3460 * Constants 3461 * 3462 * The following macros create constants of the types defined in 3463 * <sys/int_types.h>. The intent is that: 3464 * Constants defined using these macros have a specific size and 3465 * signedness. The suffix used for int64_t and uint64_t (ll and ull) 3466 * are for examples only. Implementations are permitted to use other 3467 * suffixes. 3468 * 3469 * The "CSTYLED" comments are flags to an internal code style analysis tool 3470 * telling it to silently accept the line which follows. This internal 3471 * standard requires a space between arguments, but the historical, 3472 * non-ANSI-C ``method'' of concatenation can't tolerate those spaces. 3473 */ 3474 /* CSTYLED */ 3475 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 3476 /* CSTYLED */ 3477 3478 3479 3480 3481 /* CSTYLED */ 3482 3483 /* CSTYLED */ 3484 3485 /* CSTYLED */ 3486 3487 3488 3489 3490 3491 3492 /* CSTYLED */ 3493 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 3494 /* CSTYLED */ 3495 3496 /* CSTYLED */ 3497 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3498 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 1 3499 /* 3500 * CDDL HEADER START 3501 * 3502 * The contents of this file are subject to the terms of the 3503 * Common Development and Distribution License, Version 1.0 only 3504 * (the "License"). You may not use this file except in compliance 3505 * with the License. 3506 * 3507 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3508 * or http://www.opensolaris.org/os/licensing. 3509 * See the License for the specific language governing permissions 3510 * and limitations under the License. 3511 * 3512 * When distributing Covered Code, include this CDDL HEADER in each 3513 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3514 * If applicable, add the following below this CDDL HEADER, with the 3515 * fields enclosed by brackets "[]" replaced with your own identifying 3516 * information: Portions Copyright [yyyy] [name of copyright owner] 3517 * 3518 * CDDL HEADER END 3519 */ 3520 /* 3521 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3522 * 3523 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3524 * Use is subject to license terms. 3525 */ 3526 3527 3528 3529 3530 /* 3531 * This file, <sys/int_fmtio.h>, is part of the Sun Microsystems implementation 3532 * of <inttypes.h> as defined by the ISO C Standard, ISO/IEC 9899:1999 3533 * Programming language - C. 3534 * 3535 * ISO International Organization for Standardization. 3536 * 3537 * Programs/Modules should not directly include this file. Access to the 3538 * types defined in this file should be through the inclusion of one of the 3539 * following files: 3540 * 3541 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 3542 * components of <inttypes.h>. 3543 * 3544 * <inttypes.h> For use by applications. 3545 * 3546 * See these files for more details. 3547 */ 3548 3549 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3550 /* 3551 * CDDL HEADER START 3552 * 3553 * The contents of this file are subject to the terms of the 3554 * Common Development and Distribution License (the "License"). 3555 * You may not use this file except in compliance with the License. 3556 * 3557 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3558 * or http://www.opensolaris.org/os/licensing. 3559 * See the License for the specific language governing permissions 3560 * and limitations under the License. 3561 * 3562 * When distributing Covered Code, include this CDDL HEADER in each 3563 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3564 * If applicable, add the following below this CDDL HEADER, with the 3565 * fields enclosed by brackets "[]" replaced with your own identifying 3566 * information: Portions Copyright [yyyy] [name of copyright owner] 3567 * 3568 * CDDL HEADER END 3569 */ 3570 3571 /* 3572 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3573 * Copyright 2016 Joyent, Inc. 3574 * 3575 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3576 * Use is subject to license terms. 3577 */ 3578 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2 3579 3580 3581 3582 3583 3584 /* 3585 * Formatted I/O 3586 * 3587 * The following macros can be used even when an implementation has not 3588 * extended the printf/scanf family of functions. 3589 * 3590 * The form of the names of the macros is either "PRI" for printf specifiers 3591 * or "SCN" for scanf specifiers, followed by the conversion specifier letter 3592 * followed by the datatype size. For example, PRId32 is the macro for 3593 * the printf d conversion specifier with the flags for 32 bit datatype. 3594 * 3595 * An example using one of these macros: 3596 * 3597 * uint64_t u; 3598 * printf("u = %016" PRIx64 "\n", u); 3599 * 3600 * For the purpose of example, the definitions of the printf/scanf macros 3601 * below have the values appropriate for a machine with 8 bit shorts, 16 3602 * bit shorts, 32 bit ints, 32 or 64 bit longs depending on compilation 3603 * mode, and 64 bit long longs. 3604 */ 3605 3606 /* 3607 * fprintf macros for signed integers 3608 */ 3609 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3610 /* 3611 * fprintf macros for unsigned integers 3612 */ 3613 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3614 /* 3615 * fprintf macros for pointers 3616 */ 3617 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3618 /* 3619 * fscanf macros for signed integers 3620 */ 3621 # 282 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3622 /* 3623 * fscanf macros for unsigned integers 3624 */ 3625 # 349 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 3626 /* 3627 * The following macros define I/O formats for intmax_t and uintmax_t. 3628 */ 3629 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 3630 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 3631 3632 3633 3634 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 1 3635 /* 3636 * CDDL HEADER START 3637 * 3638 * The contents of this file are subject to the terms of the 3639 * Common Development and Distribution License, Version 1.0 only 3640 * (the "License"). You may not use this file except in compliance 3641 * with the License. 3642 * 3643 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3644 * or http://www.opensolaris.org/os/licensing. 3645 * See the License for the specific language governing permissions 3646 * and limitations under the License. 3647 * 3648 * When distributing Covered Code, include this CDDL HEADER in each 3649 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3650 * If applicable, add the following below this CDDL HEADER, with the 3651 * fields enclosed by brackets "[]" replaced with your own identifying 3652 * information: Portions Copyright [yyyy] [name of copyright owner] 3653 * 3654 * CDDL HEADER END 3655 */ 3656 /* 3657 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 3658 * Use is subject to license terms. 3659 */ 3660 3661 3662 3663 3664 #pragma ident "%Z%%M% %I% %E% SMI" 3665 3666 /* 3667 * This header is included by <stdint.h> which was introduced by 3668 * the ISO C Standard, ISO/IEC 9899:1999 Programming language - C. 3669 * The header is a subset of the <inttypes.h> header. 3670 */ 3671 3672 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 3673 /* 3674 * CDDL HEADER START 3675 * 3676 * The contents of this file are subject to the terms of the 3677 * Common Development and Distribution License, Version 1.0 only 3678 * (the "License"). You may not use this file except in compliance 3679 * with the License. 3680 * 3681 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3682 * or http://www.opensolaris.org/os/licensing. 3683 * See the License for the specific language governing permissions 3684 * and limitations under the License. 3685 * 3686 * When distributing Covered Code, include this CDDL HEADER in each 3687 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3688 * If applicable, add the following below this CDDL HEADER, with the 3689 * fields enclosed by brackets "[]" replaced with your own identifying 3690 * information: Portions Copyright [yyyy] [name of copyright owner] 3691 * 3692 * CDDL HEADER END 3693 */ 3694 /* 3695 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3696 * 3697 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3698 * Use is subject to license terms. 3699 */ 3700 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 3701 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 3702 /* 3703 * CDDL HEADER START 3704 * 3705 * The contents of this file are subject to the terms of the 3706 * Common Development and Distribution License, Version 1.0 only 3707 * (the "License"). You may not use this file except in compliance 3708 * with the License. 3709 * 3710 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3711 * or http://www.opensolaris.org/os/licensing. 3712 * See the License for the specific language governing permissions 3713 * and limitations under the License. 3714 * 3715 * When distributing Covered Code, include this CDDL HEADER in each 3716 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3717 * If applicable, add the following below this CDDL HEADER, with the 3718 * fields enclosed by brackets "[]" replaced with your own identifying 3719 * information: Portions Copyright [yyyy] [name of copyright owner] 3720 * 3721 * CDDL HEADER END 3722 */ 3723 /* 3724 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3725 * 3726 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3727 * Use is subject to license terms. 3728 */ 3729 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 3730 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1 3731 /* 3732 * CDDL HEADER START 3733 * 3734 * The contents of this file are subject to the terms of the 3735 * Common Development and Distribution License, Version 1.0 only 3736 * (the "License"). You may not use this file except in compliance 3737 * with the License. 3738 * 3739 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3740 * or http://www.opensolaris.org/os/licensing. 3741 * See the License for the specific language governing permissions 3742 * and limitations under the License. 3743 * 3744 * When distributing Covered Code, include this CDDL HEADER in each 3745 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3746 * If applicable, add the following below this CDDL HEADER, with the 3747 * fields enclosed by brackets "[]" replaced with your own identifying 3748 * information: Portions Copyright [yyyy] [name of copyright owner] 3749 * 3750 * CDDL HEADER END 3751 */ 3752 /* 3753 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3754 * 3755 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3756 * Use is subject to license terms. 3757 */ 3758 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 3759 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 3760 3761 3762 3763 3764 3765 3766 /* Inclusion of <stddef.h> breaks namespace, therefore define wchar_t */ 3767 3768 /* 3769 * wchar_t is a built-in type in standard C++ and as such is not 3770 * defined here when using standard C++. However, the GNU compiler 3771 * fixincludes utility nonetheless creates its own version of this 3772 * header for use by gcc and g++. In that version it adds a redundant 3773 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 3774 * header we need to include the following magic comment: 3775 * 3776 * we must use the C++ compiler's type 3777 * 3778 * The above comment should not be removed or changed until GNU 3779 * gcc/fixinc/inclhack.def is updated to bypass this header. 3780 */ 3781 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 3782 typedef struct { 3783 intmax_t quot; 3784 intmax_t rem; 3785 } imaxdiv_t; 3786 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 3787 extern intmax_t imaxabs(intmax_t); 3788 extern imaxdiv_t imaxdiv(intmax_t, intmax_t); 3789 extern intmax_t strtoimax(const char *, char **, 3790 int); 3791 extern uintmax_t strtoumax(const char *, char **, 3792 int); 3793 extern intmax_t wcstoimax(const wchar_t *, 3794 wchar_t **, int); 3795 extern uintmax_t wcstoumax(const wchar_t *, 3796 wchar_t **, int); 3797 # 302 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 3798 extern uint32_t arc4random(void); 3799 extern void arc4random_buf(void *, size_t); 3800 extern uint32_t arc4random_uniform(uint32_t); 3801 extern void freezero(void *, size_t); 3802 extern void *recallocarray(void *, size_t, size_t, size_t); 3803 # 37 "cmdexec.c" 2 3804 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1 3805 /* 3806 * CDDL HEADER START 3807 * 3808 * The contents of this file are subject to the terms of the 3809 * Common Development and Distribution License (the "License"). 3810 * You may not use this file except in compliance with the License. 3811 * 3812 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3813 * or http://www.opensolaris.org/os/licensing. 3814 * See the License for the specific language governing permissions 3815 * and limitations under the License. 3816 * 3817 * When distributing Covered Code, include this CDDL HEADER in each 3818 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3819 * If applicable, add the following below this CDDL HEADER, with the 3820 * fields enclosed by brackets "[]" replaced with your own identifying 3821 * information: Portions Copyright [yyyy] [name of copyright owner] 3822 * 3823 * CDDL HEADER END 3824 */ 3825 3826 /* 3827 * Copyright 2014 PALO, Richard. 3828 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3829 * Copyright (c) 2013 Gary Mills 3830 * 3831 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 3832 */ 3833 3834 /* Copyright (c) 1988 AT&T */ 3835 /* All Rights Reserved */ 3836 3837 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 3838 3839 3840 3841 3842 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3843 /* 3844 * CDDL HEADER START 3845 * 3846 * The contents of this file are subject to the terms of the 3847 * Common Development and Distribution License (the "License"). 3848 * You may not use this file except in compliance with the License. 3849 * 3850 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3851 * or http://www.opensolaris.org/os/licensing. 3852 * See the License for the specific language governing permissions 3853 * and limitations under the License. 3854 * 3855 * When distributing Covered Code, include this CDDL HEADER in each 3856 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3857 * If applicable, add the following below this CDDL HEADER, with the 3858 * fields enclosed by brackets "[]" replaced with your own identifying 3859 * information: Portions Copyright [yyyy] [name of copyright owner] 3860 * 3861 * CDDL HEADER END 3862 */ 3863 3864 /* 3865 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3866 * Copyright 2016 Joyent, Inc. 3867 * 3868 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3869 * Use is subject to license terms. 3870 */ 3871 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 3872 3873 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 3874 /* 3875 * This file and its contents are supplied under the terms of the 3876 * Common Development and Distribution License ("CDDL"), version 1.0. 3877 * You may only use this file in accordance with the terms of version 3878 * 1.0 of the CDDL. 3879 * 3880 * A full copy of the text of the CDDL should have accompanied this 3881 * source. A copy of the CDDL is also available via the Internet at 3882 * http://www.illumos.org/license/CDDL. 3883 */ 3884 3885 /* 3886 * Copyright 2014-2016 PALO, Richard. 3887 */ 3888 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 3889 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 3890 /* 3891 * CDDL HEADER START 3892 * 3893 * The contents of this file are subject to the terms of the 3894 * Common Development and Distribution License (the "License"). 3895 * You may not use this file except in compliance with the License. 3896 * 3897 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3898 * or http://www.opensolaris.org/os/licensing. 3899 * See the License for the specific language governing permissions 3900 * and limitations under the License. 3901 * 3902 * When distributing Covered Code, include this CDDL HEADER in each 3903 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3904 * If applicable, add the following below this CDDL HEADER, with the 3905 * fields enclosed by brackets "[]" replaced with your own identifying 3906 * information: Portions Copyright [yyyy] [name of copyright owner] 3907 * 3908 * CDDL HEADER END 3909 */ 3910 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 3911 /* All Rights Reserved */ 3912 3913 3914 /* 3915 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3916 * Use is subject to license terms. 3917 * 3918 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 3919 * Copyright 2016 Joyent, Inc. 3920 */ 3921 3922 3923 3924 3925 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3926 /* 3927 * CDDL HEADER START 3928 * 3929 * The contents of this file are subject to the terms of the 3930 * Common Development and Distribution License (the "License"). 3931 * You may not use this file except in compliance with the License. 3932 * 3933 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3934 * or http://www.opensolaris.org/os/licensing. 3935 * See the License for the specific language governing permissions 3936 * and limitations under the License. 3937 * 3938 * When distributing Covered Code, include this CDDL HEADER in each 3939 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3940 * If applicable, add the following below this CDDL HEADER, with the 3941 * fields enclosed by brackets "[]" replaced with your own identifying 3942 * information: Portions Copyright [yyyy] [name of copyright owner] 3943 * 3944 * CDDL HEADER END 3945 */ 3946 3947 /* 3948 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3949 * Copyright 2016 Joyent, Inc. 3950 * 3951 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3952 * Use is subject to license terms. 3953 */ 3954 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3955 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3956 /* 3957 * CDDL HEADER START 3958 * 3959 * The contents of this file are subject to the terms of the 3960 * Common Development and Distribution License (the "License"). 3961 * You may not use this file except in compliance with the License. 3962 * 3963 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3964 * or http://www.opensolaris.org/os/licensing. 3965 * See the License for the specific language governing permissions 3966 * and limitations under the License. 3967 * 3968 * 3969 * When distributing Covered Code, include this CDDL HEADER in each 3970 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3971 * If applicable, add the following below this CDDL HEADER, with the 3972 * fields enclosed by brackets "[]" replaced with your own identifying 3973 * information: Portions Copyright [yyyy] [name of copyright owner] 3974 * 3975 * CDDL HEADER END 3976 */ 3977 3978 /* 3979 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 3980 * Use is subject to license terms. 3981 * Copyright 2016 Joyent, Inc. 3982 */ 3983 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3984 3985 /* 3986 * Machine dependent definitions moved to <sys/machtypes.h>. 3987 */ 3988 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1 3989 /* 3990 * CDDL HEADER START 3991 * 3992 * The contents of this file are subject to the terms of the 3993 * Common Development and Distribution License, Version 1.0 only 3994 * (the "License"). You may not use this file except in compliance 3995 * with the License. 3996 * 3997 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3998 * or http://www.opensolaris.org/os/licensing. 3999 * See the License for the specific language governing permissions 4000 * and limitations under the License. 4001 * 4002 * When distributing Covered Code, include this CDDL HEADER in each 4003 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4004 * If applicable, add the following below this CDDL HEADER, with the 4005 * fields enclosed by brackets "[]" replaced with your own identifying 4006 * information: Portions Copyright [yyyy] [name of copyright owner] 4007 * 4008 * CDDL HEADER END 4009 */ 4010 /* 4011 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 4012 * Use is subject to license terms. 4013 */ 4014 4015 4016 4017 4018 #pragma ident "%Z%%M% %I% %E% SMI" 4019 4020 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4021 /* 4022 * CDDL HEADER START 4023 * 4024 * The contents of this file are subject to the terms of the 4025 * Common Development and Distribution License (the "License"). 4026 * You may not use this file except in compliance with the License. 4027 * 4028 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4029 * or http://www.opensolaris.org/os/licensing. 4030 * See the License for the specific language governing permissions 4031 * and limitations under the License. 4032 * 4033 * When distributing Covered Code, include this CDDL HEADER in each 4034 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4035 * If applicable, add the following below this CDDL HEADER, with the 4036 * fields enclosed by brackets "[]" replaced with your own identifying 4037 * information: Portions Copyright [yyyy] [name of copyright owner] 4038 * 4039 * CDDL HEADER END 4040 */ 4041 4042 /* 4043 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4044 * Copyright 2016 Joyent, Inc. 4045 * 4046 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4047 * Use is subject to license terms. 4048 */ 4049 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2 4050 4051 4052 4053 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1 4054 /* 4055 * CDDL HEADER START 4056 * 4057 * The contents of this file are subject to the terms of the 4058 * Common Development and Distribution License (the "License"). 4059 * You may not use this file except in compliance with the License. 4060 * 4061 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4062 * or http://www.opensolaris.org/os/licensing. 4063 * See the License for the specific language governing permissions 4064 * and limitations under the License. 4065 * 4066 * When distributing Covered Code, include this CDDL HEADER in each 4067 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4068 * If applicable, add the following below this CDDL HEADER, with the 4069 * fields enclosed by brackets "[]" replaced with your own identifying 4070 * information: Portions Copyright [yyyy] [name of copyright owner] 4071 * 4072 * CDDL HEADER END 4073 */ 4074 /* 4075 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 4076 * Use is subject to license terms. 4077 */ 4078 4079 4080 4081 4082 #pragma ident "%Z%%M% %I% %E% SMI" 4083 4084 4085 4086 4087 4088 /* 4089 * Machine dependent types: 4090 * 4091 * intel ia32 Version 4092 */ 4093 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 4094 typedef struct _label_t { long val[6]; } label_t; 4095 4096 4097 4098 typedef unsigned char lock_t; /* lock work for busy wait */ 4099 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2 4100 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 4101 4102 /* 4103 * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C 4104 * committee's working draft for the revision of the current ISO C standard, 4105 * ISO/IEC 9899:1990 Programming language - C. These are not currently 4106 * required by any standard but constitute a useful, general purpose set 4107 * of type definitions which is namespace clean with respect to all standards. 4108 */ 4109 4110 4111 4112 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 4113 /* 4114 * CDDL HEADER START 4115 * 4116 * The contents of this file are subject to the terms of the 4117 * Common Development and Distribution License, Version 1.0 only 4118 * (the "License"). You may not use this file except in compliance 4119 * with the License. 4120 * 4121 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4122 * or http://www.opensolaris.org/os/licensing. 4123 * See the License for the specific language governing permissions 4124 * and limitations under the License. 4125 * 4126 * When distributing Covered Code, include this CDDL HEADER in each 4127 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4128 * If applicable, add the following below this CDDL HEADER, with the 4129 * fields enclosed by brackets "[]" replaced with your own identifying 4130 * information: Portions Copyright [yyyy] [name of copyright owner] 4131 * 4132 * CDDL HEADER END 4133 */ 4134 /* 4135 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4136 * 4137 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 4138 * Use is subject to license terms. 4139 */ 4140 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 4141 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4142 /* 4143 * Strictly conforming ANSI C environments prior to the 1999 4144 * revision of the C Standard (ISO/IEC 9899:1999) do not have 4145 * the long long data type. 4146 */ 4147 4148 typedef long long longlong_t; 4149 typedef unsigned long long u_longlong_t; 4150 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4151 /* 4152 * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had 4153 * to use them instead of int32_t and uint32_t because DEC had 4154 * shipped 64-bit wide. 4155 */ 4156 4157 4158 4159 4160 typedef long t_scalar_t; /* historical versions */ 4161 typedef unsigned long t_uscalar_t; 4162 4163 4164 /* 4165 * POSIX Extensions 4166 */ 4167 typedef unsigned char uchar_t; 4168 typedef unsigned short ushort_t; 4169 typedef unsigned int uint_t; 4170 typedef unsigned long ulong_t; 4171 4172 typedef char *caddr_t; /* ?<core address> type */ 4173 typedef long daddr_t; /* <disk address> type */ 4174 typedef short cnt_t; /* ?<count> type */ 4175 4176 4177 4178 4179 4180 4181 typedef int ptrdiff_t; /* (historical version) */ 4182 4183 4184 4185 /* 4186 * VM-related types 4187 */ 4188 typedef ulong_t pfn_t; /* page frame number */ 4189 typedef ulong_t pgcnt_t; /* number of pages */ 4190 typedef long spgcnt_t; /* signed number of pages */ 4191 4192 typedef uchar_t use_t; /* use count for swap. */ 4193 typedef short sysid_t; 4194 typedef short index_t; 4195 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */ 4196 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */ 4197 4198 /* 4199 * The size of off_t and related types depends on the setting of 4200 * _FILE_OFFSET_BITS. (Note that other system headers define other types 4201 * related to those defined here.) 4202 * 4203 * If _LARGEFILE64_SOURCE is defined, variants of these types that are 4204 * explicitly 64 bits wide become available. 4205 */ 4206 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4207 typedef u_longlong_t ino_t; /* expanded inode type */ 4208 typedef longlong_t blkcnt_t; /* count of file blocks */ 4209 typedef u_longlong_t fsblkcnt_t; /* count of file system blocks */ 4210 typedef u_longlong_t fsfilcnt_t; /* count of files */ 4211 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4212 typedef u_longlong_t ino64_t; /* expanded inode type */ 4213 typedef longlong_t blkcnt64_t; /* count of file blocks */ 4214 typedef u_longlong_t fsblkcnt64_t; /* count of file system blocks */ 4215 typedef u_longlong_t fsfilcnt64_t; /* count of files */ 4216 4217 4218 4219 4220 4221 4222 typedef long blksize_t; /* used for block sizes */ 4223 4224 4225 4226 4227 4228 typedef enum { B_FALSE, B_TRUE } boolean_t; 4229 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4230 /* 4231 * The {u,}pad64_t types can be used in structures such that those structures 4232 * may be accessed by code produced by compilation environments which don't 4233 * support a 64 bit integral datatype. The intention is not to allow 4234 * use of these fields in such environments, but to maintain the alignment 4235 * and offsets of the structure. 4236 * 4237 * Similar comments for {u,}pad128_t. 4238 * 4239 * Note that these types do NOT generate any stronger alignment constraints 4240 * than those available in the underlying ABI. See <sys/isa_defs.h> 4241 */ 4242 4243 typedef int64_t pad64_t; 4244 typedef uint64_t upad64_t; 4245 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4246 typedef union { 4247 long double _q; 4248 int32_t _l[4]; 4249 } pad128_t; 4250 4251 typedef union { 4252 long double _q; 4253 uint32_t _l[4]; 4254 } upad128_t; 4255 4256 typedef longlong_t offset_t; 4257 typedef u_longlong_t u_offset_t; 4258 typedef u_longlong_t len_t; 4259 typedef u_longlong_t diskaddr_t; 4260 4261 4262 4263 4264 /* 4265 * Definitions remaining from previous partial support for 64-bit file 4266 * offsets. This partial support for devices greater than 2gb requires 4267 * compiler support for long long. 4268 */ 4269 4270 typedef union { 4271 offset_t _f; /* Full 64 bit offset value */ 4272 struct { 4273 int32_t _l; /* lower 32 bits of offset value */ 4274 int32_t _u; /* upper 32 bits of offset value */ 4275 } _p; 4276 } lloff_t; 4277 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4278 typedef union { 4279 longlong_t _f; /* Full 64 bit disk address value */ 4280 struct { 4281 int32_t _l; /* lower 32 bits of disk address value */ 4282 int32_t _u; /* upper 32 bits of disk address value */ 4283 } _p; 4284 } lldaddr_t; 4285 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4286 typedef uint_t k_fltset_t; /* kernel fault set type */ 4287 4288 /* 4289 * The following type is for various kinds of identifiers. The 4290 * actual type must be the same for all since some system calls 4291 * (such as sigsend) take arguments that may be any of these 4292 * types. The enumeration type idtype_t defined in sys/procset.h 4293 * is used to indicate what type of id is being specified -- 4294 * a process id, process group id, session id, scheduling class id, 4295 * user id, group id, project id, task id or zone id. 4296 */ 4297 4298 4299 4300 typedef long id_t; /* (historical version) */ 4301 4302 4303 typedef id_t lgrp_id_t; /* lgroup ID */ 4304 4305 /* 4306 * Type useconds_t is an unsigned integral type capable of storing 4307 * values at least in the range of zero to 1,000,000. 4308 */ 4309 typedef uint_t useconds_t; /* Time, in microseconds */ 4310 4311 4312 4313 typedef long suseconds_t; /* signed # of microseconds */ 4314 4315 4316 /* 4317 * Typedefs for dev_t components. 4318 */ 4319 4320 4321 4322 4323 typedef ulong_t major_t; /* (historical version) */ 4324 typedef ulong_t minor_t; /* (historical version) */ 4325 4326 4327 /* 4328 * The data type of a thread priority. 4329 */ 4330 typedef short pri_t; 4331 4332 /* 4333 * The data type for a CPU flags field. (Can be extended to larger unsigned 4334 * types, if needed, limited by ability to update atomically.) 4335 */ 4336 typedef ushort_t cpu_flag_t; 4337 4338 /* 4339 * For compatibility reasons the following typedefs (prefixed o_) 4340 * can't grow regardless of the EFT definition. Although, 4341 * applications should not explicitly use these typedefs 4342 * they may be included via a system header definition. 4343 * WARNING: These typedefs may be removed in a future 4344 * release. 4345 * ex. the definitions in s5inode.h (now obsoleted) 4346 * remained small to preserve compatibility 4347 * in the S5 file system type. 4348 */ 4349 typedef ushort_t o_mode_t; /* old file attribute type */ 4350 typedef short o_dev_t; /* old device type */ 4351 typedef ushort_t o_uid_t; /* old UID type */ 4352 typedef o_uid_t o_gid_t; /* old GID type */ 4353 typedef short o_nlink_t; /* old file link type */ 4354 typedef short o_pid_t; /* old process id type */ 4355 typedef ushort_t o_ino_t; /* old inode type */ 4356 4357 4358 /* 4359 * POSIX and XOPEN Declarations 4360 */ 4361 typedef int key_t; /* IPC key type */ 4362 4363 4364 4365 typedef ulong_t mode_t; /* (historical version) */ 4366 4367 4368 4369 4370 4371 4372 4373 typedef uid_t gid_t; /* GID type */ 4374 4375 typedef uint32_t datalink_id_t; 4376 typedef uint32_t vrid_t; 4377 4378 typedef id_t taskid_t; 4379 typedef id_t projid_t; 4380 typedef id_t poolid_t; 4381 typedef id_t zoneid_t; 4382 typedef id_t ctid_t; 4383 4384 /* 4385 * POSIX definitions are same as defined in thread.h and synch.h. 4386 * Any changes made to here should be reflected in corresponding 4387 * files as described in comments. 4388 */ 4389 typedef uint_t pthread_t; /* = thread_t in thread.h */ 4390 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */ 4391 4392 /* "Magic numbers" tagging synchronization object types */ 4393 4394 4395 4396 4397 4398 typedef struct _pthread_mutex { /* = mutex_t in synch.h */ 4399 struct { 4400 uint16_t __pthread_mutex_flag1; 4401 uint8_t __pthread_mutex_flag2; 4402 uint8_t __pthread_mutex_ceiling; 4403 uint16_t __pthread_mutex_type; 4404 uint16_t __pthread_mutex_magic; 4405 } __pthread_mutex_flags; 4406 union { 4407 struct { 4408 uint8_t __pthread_mutex_pad[8]; 4409 } __pthread_mutex_lock64; 4410 struct { 4411 uint32_t __pthread_ownerpid; 4412 uint32_t __pthread_lockword; 4413 } __pthread_mutex_lock32; 4414 upad64_t __pthread_mutex_owner64; 4415 } __pthread_mutex_lock; 4416 upad64_t __pthread_mutex_data; 4417 } pthread_mutex_t; 4418 4419 typedef struct _pthread_cond { /* = cond_t in synch.h */ 4420 struct { 4421 uint8_t __pthread_cond_flag[4]; 4422 uint16_t __pthread_cond_type; 4423 uint16_t __pthread_cond_magic; 4424 } __pthread_cond_flags; 4425 upad64_t __pthread_cond_data; 4426 } pthread_cond_t; 4427 4428 /* 4429 * UNIX 98 Extension 4430 */ 4431 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */ 4432 int32_t __pthread_rwlock_readers; 4433 uint16_t __pthread_rwlock_type; 4434 uint16_t __pthread_rwlock_magic; 4435 pthread_mutex_t __pthread_rwlock_mutex; 4436 pthread_cond_t __pthread_rwlock_readercv; 4437 pthread_cond_t __pthread_rwlock_writercv; 4438 } pthread_rwlock_t; 4439 4440 /* 4441 * SUSV3 4442 */ 4443 typedef struct { 4444 uint32_t __pthread_barrier_count; 4445 uint32_t __pthread_barrier_current; 4446 upad64_t __pthread_barrier_cycle; 4447 upad64_t __pthread_barrier_reserved; 4448 pthread_mutex_t __pthread_barrier_lock; 4449 pthread_cond_t __pthread_barrier_cond; 4450 } pthread_barrier_t; 4451 4452 typedef pthread_mutex_t pthread_spinlock_t; 4453 4454 /* 4455 * attributes for threads, dynamically allocated by library 4456 */ 4457 typedef struct _pthread_attr { 4458 void *__pthread_attrp; 4459 } pthread_attr_t; 4460 4461 /* 4462 * attributes for mutex, dynamically allocated by library 4463 */ 4464 typedef struct _pthread_mutexattr { 4465 void *__pthread_mutexattrp; 4466 } pthread_mutexattr_t; 4467 4468 /* 4469 * attributes for cond, dynamically allocated by library 4470 */ 4471 typedef struct _pthread_condattr { 4472 void *__pthread_condattrp; 4473 } pthread_condattr_t; 4474 4475 /* 4476 * pthread_once 4477 */ 4478 typedef struct _once { 4479 upad64_t __pthread_once_pad[4]; 4480 } pthread_once_t; 4481 4482 /* 4483 * UNIX 98 Extensions 4484 * attributes for rwlock, dynamically allocated by library 4485 */ 4486 typedef struct _pthread_rwlockattr { 4487 void *__pthread_rwlockattrp; 4488 } pthread_rwlockattr_t; 4489 4490 /* 4491 * SUSV3 4492 * attributes for pthread_barrier_t, dynamically allocated by library 4493 */ 4494 typedef struct { 4495 void *__pthread_barrierattrp; 4496 } pthread_barrierattr_t; 4497 4498 typedef ulong_t dev_t; /* expanded device type */ 4499 4500 4501 4502 4503 4504 typedef ulong_t nlink_t; /* (historical version) */ 4505 typedef long pid_t; /* (historical version) */ 4506 # 537 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4507 typedef long time_t; /* time of day in seconds */ 4508 4509 4510 4511 4512 typedef long clock_t; /* relative time in a specified resolution */ 4513 4514 4515 4516 4517 typedef int clockid_t; /* clock identifier type */ 4518 4519 4520 4521 4522 typedef int timer_t; /* timer identifier type */ 4523 4524 4525 4526 4527 /* BEGIN CSTYLED */ 4528 typedef unsigned char unchar; 4529 typedef unsigned short ushort; 4530 typedef unsigned int uint; 4531 typedef unsigned long ulong; 4532 /* END CSTYLED */ 4533 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4534 /* 4535 * The following is the value of type id_t to use to indicate the 4536 * caller's current id. See procset.h for the type idtype_t 4537 * which defines which kind of id is being specified. 4538 */ 4539 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 4540 /* 4541 * The following value of type pfn_t is used to indicate 4542 * invalid page frame number. 4543 */ 4544 4545 4546 4547 /* BEGIN CSTYLED */ 4548 typedef unsigned char u_char; 4549 typedef unsigned short u_short; 4550 typedef unsigned int u_int; 4551 typedef unsigned long u_long; 4552 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */ 4553 typedef quad_t quad; /* used by UFS */ 4554 /* END CSTYLED */ 4555 4556 /* 4557 * Nested include for BSD/sockets source compatibility. 4558 * (The select macros used to be defined here). 4559 */ 4560 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1 4561 /* 4562 * CDDL HEADER START 4563 * 4564 * The contents of this file are subject to the terms of the 4565 * Common Development and Distribution License (the "License"). 4566 * You may not use this file except in compliance with the License. 4567 * 4568 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4569 * or http://www.opensolaris.org/os/licensing. 4570 * See the License for the specific language governing permissions 4571 * and limitations under the License. 4572 * 4573 * When distributing Covered Code, include this CDDL HEADER in each 4574 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4575 * If applicable, add the following below this CDDL HEADER, with the 4576 * fields enclosed by brackets "[]" replaced with your own identifying 4577 * information: Portions Copyright [yyyy] [name of copyright owner] 4578 * 4579 * CDDL HEADER END 4580 */ 4581 4582 /* 4583 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4584 * 4585 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4586 * 4587 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 4588 * Use is subject to license terms. 4589 */ 4590 4591 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4592 /* All Rights Reserved */ 4593 4594 /* 4595 * University Copyright- Copyright (c) 1982, 1986, 1988 4596 * The Regents of the University of California 4597 * All Rights Reserved 4598 * 4599 * University Acknowledgment- Portions of this document are derived from 4600 * software developed by the University of California, Berkeley, and its 4601 * contributors. 4602 */ 4603 4604 4605 4606 4607 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4608 /* 4609 * CDDL HEADER START 4610 * 4611 * The contents of this file are subject to the terms of the 4612 * Common Development and Distribution License (the "License"). 4613 * You may not use this file except in compliance with the License. 4614 * 4615 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4616 * or http://www.opensolaris.org/os/licensing. 4617 * See the License for the specific language governing permissions 4618 * and limitations under the License. 4619 * 4620 * When distributing Covered Code, include this CDDL HEADER in each 4621 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4622 * If applicable, add the following below this CDDL HEADER, with the 4623 * fields enclosed by brackets "[]" replaced with your own identifying 4624 * information: Portions Copyright [yyyy] [name of copyright owner] 4625 * 4626 * CDDL HEADER END 4627 */ 4628 4629 /* 4630 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4631 * Copyright 2016 Joyent, Inc. 4632 * 4633 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4634 * Use is subject to license terms. 4635 */ 4636 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 4637 4638 4639 4640 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 4641 /* 4642 * CDDL HEADER START 4643 * 4644 * The contents of this file are subject to the terms of the 4645 * Common Development and Distribution License, Version 1.0 only 4646 * (the "License"). You may not use this file except in compliance 4647 * with the License. 4648 * 4649 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4650 * or http://www.opensolaris.org/os/licensing. 4651 * See the License for the specific language governing permissions 4652 * and limitations under the License. 4653 * 4654 * When distributing Covered Code, include this CDDL HEADER in each 4655 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4656 * If applicable, add the following below this CDDL HEADER, with the 4657 * fields enclosed by brackets "[]" replaced with your own identifying 4658 * information: Portions Copyright [yyyy] [name of copyright owner] 4659 * 4660 * CDDL HEADER END 4661 */ 4662 /* 4663 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 4664 * Use is subject to license terms. 4665 */ 4666 4667 /* 4668 * Implementation-private. This header should not be included 4669 * directly by an application. The application should instead 4670 * include <time.h> which includes this header conditionally 4671 * depending on which feature test macros are defined. By default, 4672 * this header is included by <time.h>. X/Open and POSIX 4673 * standards requirements result in this header being included 4674 * by <time.h> only under a restricted set of conditions. 4675 */ 4676 4677 4678 4679 4680 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4681 /* 4682 * CDDL HEADER START 4683 * 4684 * The contents of this file are subject to the terms of the 4685 * Common Development and Distribution License (the "License"). 4686 * You may not use this file except in compliance with the License. 4687 * 4688 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4689 * or http://www.opensolaris.org/os/licensing. 4690 * See the License for the specific language governing permissions 4691 * and limitations under the License. 4692 * 4693 * When distributing Covered Code, include this CDDL HEADER in each 4694 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4695 * If applicable, add the following below this CDDL HEADER, with the 4696 * fields enclosed by brackets "[]" replaced with your own identifying 4697 * information: Portions Copyright [yyyy] [name of copyright owner] 4698 * 4699 * CDDL HEADER END 4700 */ 4701 4702 /* 4703 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4704 * Copyright 2016 Joyent, Inc. 4705 * 4706 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4707 * Use is subject to license terms. 4708 */ 4709 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2 4710 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 4711 /* 4712 * Time expressed in seconds and nanoseconds 4713 */ 4714 4715 typedef struct timespec { /* definition per POSIX.4 */ 4716 time_t tv_sec; /* seconds */ 4717 long tv_nsec; /* and nanoseconds */ 4718 } timespec_t; 4719 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 4720 typedef struct timespec timestruc_t; /* definition per SVr4 */ 4721 4722 /* 4723 * The following has been left in for backward compatibility. Portable 4724 * applications should not use the structure name timestruc. 4725 */ 4726 4727 4728 4729 4730 4731 /* 4732 * Timer specification 4733 */ 4734 typedef struct itimerspec { /* definition per POSIX.4 */ 4735 struct timespec it_interval; /* timer period */ 4736 struct timespec it_value; /* timer expiration */ 4737 } itimerspec_t; 4738 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 4739 4740 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 4741 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4742 /* All Rights Reserved */ 4743 4744 4745 /* 4746 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 4747 * All rights reserved. The Berkeley software License Agreement 4748 * specifies the terms and conditions for redistribution. 4749 */ 4750 4751 /* 4752 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4753 * 4754 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4755 * Use is subject to license terms. 4756 * 4757 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4758 */ 4759 4760 /* 4761 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 4762 */ 4763 4764 4765 4766 4767 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4768 /* 4769 * CDDL HEADER START 4770 * 4771 * The contents of this file are subject to the terms of the 4772 * Common Development and Distribution License (the "License"). 4773 * You may not use this file except in compliance with the License. 4774 * 4775 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4776 * or http://www.opensolaris.org/os/licensing. 4777 * See the License for the specific language governing permissions 4778 * and limitations under the License. 4779 * 4780 * When distributing Covered Code, include this CDDL HEADER in each 4781 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4782 * If applicable, add the following below this CDDL HEADER, with the 4783 * fields enclosed by brackets "[]" replaced with your own identifying 4784 * information: Portions Copyright [yyyy] [name of copyright owner] 4785 * 4786 * CDDL HEADER END 4787 */ 4788 4789 /* 4790 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4791 * Copyright 2016 Joyent, Inc. 4792 * 4793 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4794 * Use is subject to license terms. 4795 */ 4796 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4797 4798 /* 4799 * Structure returned by gettimeofday(2) system call, 4800 * and used in other calls. 4801 */ 4802 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4803 struct timeval { 4804 time_t tv_sec; /* seconds */ 4805 suseconds_t tv_usec; /* and microseconds */ 4806 }; 4807 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4808 struct timezone { 4809 int tz_minuteswest; /* minutes west of Greenwich */ 4810 int tz_dsttime; /* type of dst correction */ 4811 }; 4812 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4813 /* 4814 * Needed for longlong_t type. Placement of this due to <sys/types.h> 4815 * including <sys/select.h> which relies on the presense of the itimerval 4816 * structure. 4817 */ 4818 4819 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 4820 /* 4821 * CDDL HEADER START 4822 * 4823 * The contents of this file are subject to the terms of the 4824 * Common Development and Distribution License (the "License"). 4825 * You may not use this file except in compliance with the License. 4826 * 4827 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4828 * or http://www.opensolaris.org/os/licensing. 4829 * See the License for the specific language governing permissions 4830 * and limitations under the License. 4831 * 4832 * When distributing Covered Code, include this CDDL HEADER in each 4833 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4834 * If applicable, add the following below this CDDL HEADER, with the 4835 * fields enclosed by brackets "[]" replaced with your own identifying 4836 * information: Portions Copyright [yyyy] [name of copyright owner] 4837 * 4838 * CDDL HEADER END 4839 */ 4840 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4841 /* All Rights Reserved */ 4842 4843 4844 /* 4845 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4846 * Use is subject to license terms. 4847 * 4848 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4849 * Copyright 2016 Joyent, Inc. 4850 */ 4851 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4852 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4853 /* 4854 * Operations on timevals. 4855 */ 4856 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4857 /* 4858 * Names of the interval timers, and structure 4859 * defining a timer setting. 4860 */ 4861 4862 4863 4864 /* time and when system is running on */ 4865 /* behalf of the process. */ 4866 4867 /* time profiling of multithreaded */ 4868 /* programs. */ 4869 4870 4871 struct itimerval { 4872 struct timeval it_interval; /* timer interval */ 4873 struct timeval it_value; /* current value */ 4874 }; 4875 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4876 /* 4877 * Definitions for commonly used resolutions. 4878 */ 4879 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4880 /* 4881 * Time expressed as a 64-bit nanosecond counter. 4882 */ 4883 typedef longlong_t hrtime_t; 4884 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4885 int adjtime(struct timeval *, struct timeval *); 4886 4887 4888 4889 4890 int futimesat(int, const char *, const struct timeval *); 4891 4892 4893 4894 4895 4896 int getitimer(int, struct itimerval *); 4897 int utimes(const char *, const struct timeval *); 4898 4899 4900 4901 4902 int setitimer(int, struct itimerval *, 4903 struct itimerval *); 4904 4905 4906 4907 4908 /* 4909 * gettimeofday() and settimeofday() were included in SVr4 due to their 4910 * common use in BSD based applications. They were to be included exactly 4911 * as in BSD, with two parameters. However, AT&T/USL noted that the second 4912 * parameter was unused and deleted it, thereby making a routine included 4913 * for compatibility, incompatible. 4914 * 4915 * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two 4916 * parameters. 4917 * 4918 * This has caused general disagreement in the application community as to 4919 * the syntax of these routines. Solaris defaults to the XSH4.2 definition. 4920 * The flag _SVID_GETTOD may be used to force the SVID version. 4921 */ 4922 4923 4924 4925 4926 4927 int settimeofday(struct timeval *, void *); 4928 4929 hrtime_t gethrtime(void); 4930 hrtime_t gethrvtime(void); 4931 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4932 int gettimeofday(struct timeval *, void *); 4933 4934 4935 4936 4937 /* 4938 * The inclusion of <time.h> is historical and was added for 4939 * backward compatibility in delta 1.2 when a number of definitions 4940 * were moved out of <sys/time.h>. More recently, the timespec and 4941 * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*, 4942 * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>, 4943 * which is now included by <time.h>. This change was due to POSIX 4944 * 1003.1b-1993 and X/Open UNIX 98 requirements. For non-POSIX and 4945 * non-X/Open applications, including this header will still make 4946 * visible these definitions. 4947 */ 4948 4949 4950 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 4951 /* 4952 * CDDL HEADER START 4953 * 4954 * The contents of this file are subject to the terms of the 4955 * Common Development and Distribution License (the "License"). 4956 * You may not use this file except in compliance with the License. 4957 * 4958 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4959 * or http://www.opensolaris.org/os/licensing. 4960 * See the License for the specific language governing permissions 4961 * and limitations under the License. 4962 * 4963 * When distributing Covered Code, include this CDDL HEADER in each 4964 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4965 * If applicable, add the following below this CDDL HEADER, with the 4966 * fields enclosed by brackets "[]" replaced with your own identifying 4967 * information: Portions Copyright [yyyy] [name of copyright owner] 4968 * 4969 * CDDL HEADER END 4970 */ 4971 /* Copyright (c) 1988 AT&T */ 4972 /* All Rights Reserved */ 4973 4974 4975 /* 4976 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4977 * 4978 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 4979 * Use is subject to license terms. 4980 */ 4981 /* 4982 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 4983 * Copyright 2016 Joyent, Inc. 4984 */ 4985 4986 4987 4988 4989 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4990 /* 4991 * CDDL HEADER START 4992 * 4993 * The contents of this file are subject to the terms of the 4994 * Common Development and Distribution License (the "License"). 4995 * You may not use this file except in compliance with the License. 4996 * 4997 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4998 * or http://www.opensolaris.org/os/licensing. 4999 * See the License for the specific language governing permissions 5000 * and limitations under the License. 5001 * 5002 * When distributing Covered Code, include this CDDL HEADER in each 5003 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5004 * If applicable, add the following below this CDDL HEADER, with the 5005 * fields enclosed by brackets "[]" replaced with your own identifying 5006 * information: Portions Copyright [yyyy] [name of copyright owner] 5007 * 5008 * CDDL HEADER END 5009 */ 5010 5011 /* 5012 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 5013 * Copyright 2016 Joyent, Inc. 5014 * 5015 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 5016 * Use is subject to license terms. 5017 */ 5018 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 5019 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1 5020 /* 5021 * CDDL HEADER START 5022 * 5023 * The contents of this file are subject to the terms of the 5024 * Common Development and Distribution License, Version 1.0 only 5025 * (the "License"). You may not use this file except in compliance 5026 * with the License. 5027 * 5028 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5029 * or http://www.opensolaris.org/os/licensing. 5030 * See the License for the specific language governing permissions 5031 * and limitations under the License. 5032 * 5033 * When distributing Covered Code, include this CDDL HEADER in each 5034 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5035 * If applicable, add the following below this CDDL HEADER, with the 5036 * fields enclosed by brackets "[]" replaced with your own identifying 5037 * information: Portions Copyright [yyyy] [name of copyright owner] 5038 * 5039 * CDDL HEADER END 5040 */ 5041 /* Copyright (c) 1988 AT&T */ 5042 /* All Rights Reserved */ 5043 5044 /* 5045 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 5046 * Copyright 2014 PALO, Richard. 5047 * 5048 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 5049 * Use is subject to license terms. 5050 */ 5051 5052 /* 5053 * An application should not include this header directly. Instead it 5054 * should be included only through the inclusion of other Sun headers. 5055 * 5056 * The contents of this header is limited to identifiers specified in the 5057 * C Standard. Any new identifiers specified in future amendments to the 5058 * C Standard must be placed in this header. If these new identifiers 5059 * are required to also be in the C++ Standard "std" namespace, then for 5060 * anything other than macro definitions, corresponding "using" directives 5061 * must also be added to <time.h.h>. 5062 */ 5063 5064 5065 5066 5067 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 5068 /* 5069 * CDDL HEADER START 5070 * 5071 * The contents of this file are subject to the terms of the 5072 * Common Development and Distribution License (the "License"). 5073 * You may not use this file except in compliance with the License. 5074 * 5075 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5076 * or http://www.opensolaris.org/os/licensing. 5077 * See the License for the specific language governing permissions 5078 * and limitations under the License. 5079 * 5080 * When distributing Covered Code, include this CDDL HEADER in each 5081 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5082 * If applicable, add the following below this CDDL HEADER, with the 5083 * fields enclosed by brackets "[]" replaced with your own identifying 5084 * information: Portions Copyright [yyyy] [name of copyright owner] 5085 * 5086 * CDDL HEADER END 5087 */ 5088 5089 /* 5090 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 5091 * Copyright 2016 Joyent, Inc. 5092 * 5093 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 5094 * Use is subject to license terms. 5095 */ 5096 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2 5097 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 5098 /* 5099 * This file and its contents are supplied under the terms of the 5100 * Common Development and Distribution License ("CDDL"), version 1.0. 5101 * You may only use this file in accordance with the terms of version 5102 * 1.0 of the CDDL. 5103 * 5104 * A full copy of the text of the CDDL should have accompanied this 5105 * source. A copy of the CDDL is also available via the Internet at 5106 * http://www.illumos.org/license/CDDL. 5107 */ 5108 5109 /* 5110 * Copyright 2014-2016 PALO, Richard. 5111 */ 5112 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2 5113 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 5114 struct tm { /* see ctime(3) */ 5115 int tm_sec; 5116 int tm_min; 5117 int tm_hour; 5118 int tm_mday; 5119 int tm_mon; 5120 int tm_year; 5121 int tm_wday; 5122 int tm_yday; 5123 int tm_isdst; 5124 }; 5125 5126 5127 extern char *asctime(const struct tm *); 5128 extern clock_t clock(void); 5129 extern char *ctime(const time_t *); 5130 extern double difftime(time_t, time_t); 5131 extern struct tm *gmtime(const time_t *); 5132 extern struct tm *localtime(const time_t *); 5133 extern time_t mktime(struct tm *); 5134 extern time_t time(time_t *); 5135 extern size_t strftime(char *, size_t, const char *, 5136 const struct tm *); 5137 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 5138 /* 5139 * C11 requires sys/time_impl.h for the definition of the struct timespec. 5140 */ 5141 5142 5143 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 5144 /* 5145 * CDDL HEADER START 5146 * 5147 * The contents of this file are subject to the terms of the 5148 * Common Development and Distribution License (the "License"). 5149 * You may not use this file except in compliance with the License. 5150 * 5151 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5152 * or http://www.opensolaris.org/os/licensing. 5153 * See the License for the specific language governing permissions 5154 * and limitations under the License. 5155 * 5156 * When distributing Covered Code, include this CDDL HEADER in each 5157 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5158 * If applicable, add the following below this CDDL HEADER, with the 5159 * fields enclosed by brackets "[]" replaced with your own identifying 5160 * information: Portions Copyright [yyyy] [name of copyright owner] 5161 * 5162 * CDDL HEADER END 5163 */ 5164 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 5165 /* All Rights Reserved */ 5166 5167 5168 /* 5169 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 5170 * Use is subject to license terms. 5171 * 5172 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 5173 * Copyright 2016 Joyent, Inc. 5174 */ 5175 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 5176 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 5177 /* 5178 * CDDL HEADER START 5179 * 5180 * The contents of this file are subject to the terms of the 5181 * Common Development and Distribution License, Version 1.0 only 5182 * (the "License"). You may not use this file except in compliance 5183 * with the License. 5184 * 5185 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5186 * or http://www.opensolaris.org/os/licensing. 5187 * See the License for the specific language governing permissions 5188 * and limitations under the License. 5189 * 5190 * When distributing Covered Code, include this CDDL HEADER in each 5191 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5192 * If applicable, add the following below this CDDL HEADER, with the 5193 * fields enclosed by brackets "[]" replaced with your own identifying 5194 * information: Portions Copyright [yyyy] [name of copyright owner] 5195 * 5196 * CDDL HEADER END 5197 */ 5198 /* 5199 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 5200 * Use is subject to license terms. 5201 */ 5202 5203 /* 5204 * Implementation-private. This header should not be included 5205 * directly by an application. The application should instead 5206 * include <time.h> which includes this header conditionally 5207 * depending on which feature test macros are defined. By default, 5208 * this header is included by <time.h>. X/Open and POSIX 5209 * standards requirements result in this header being included 5210 * by <time.h> only under a restricted set of conditions. 5211 */ 5212 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 5213 5214 5215 /* 5216 * Allow global visibility for symbols defined in 5217 * C++ "std" namespace in <iso/time_iso.h>. 5218 */ 5219 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5220 extern struct tm *gmtime_r(const time_t *, 5221 struct tm *); 5222 extern struct tm *localtime_r(const time_t *, 5223 struct tm *); 5224 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5225 extern char *strptime(const char *, const char *, 5226 struct tm *); 5227 5228 5229 5230 5231 5232 /* 5233 * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the 5234 * definition of the sigevent structure. Both require the inclusion 5235 * of <signal.h> and <time.h> when using the timer_create() function. 5236 * However, X/Open also specifies that the sigevent structure be defined 5237 * in <time.h> as described in the header <signal.h>. This prevents 5238 * compiler warnings for applications that only include <time.h> and not 5239 * also <signal.h>. The sigval union and the sigevent structure is 5240 * therefore defined both here and in <sys/siginfo.h> which gets included 5241 * via inclusion of <signal.h>. 5242 */ 5243 5244 5245 union sigval { 5246 int sival_int; /* integer value */ 5247 void *sival_ptr; /* pointer value */ 5248 }; 5249 5250 5251 5252 5253 struct sigevent { 5254 int sigev_notify; /* notification mode */ 5255 int sigev_signo; /* signal number */ 5256 union sigval sigev_value; /* signal value */ 5257 void (*sigev_notify_function)(union sigval); 5258 pthread_attr_t *sigev_notify_attributes; 5259 int __sigev_pad2; 5260 }; 5261 5262 5263 extern int clock_getres(clockid_t, struct timespec *); 5264 extern int clock_gettime(clockid_t, struct timespec *); 5265 extern int clock_settime(clockid_t, const struct timespec *); 5266 extern int timer_create(clockid_t, struct sigevent *, 5267 timer_t *); 5268 extern int timer_delete(timer_t); 5269 extern int timer_getoverrun(timer_t); 5270 extern int timer_gettime(timer_t, struct itimerspec *); 5271 extern int timer_settime(timer_t, int, const struct itimerspec *, 5272 struct itimerspec *); 5273 5274 extern int nanosleep(const struct timespec *, struct timespec *); 5275 extern int clock_nanosleep(clockid_t, int, 5276 const struct timespec *, struct timespec *); 5277 5278 5279 5280 5281 5282 5283 extern void tzset(void); 5284 extern char *tzname[2]; 5285 5286 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */ 5287 5288 5289 extern long _sysconf(int); /* System Private interface to sysconf() */ 5290 5291 /* 3 is _SC_CLK_TCK */ 5292 5293 5294 5295 5296 5297 extern long timezone; 5298 extern int daylight; 5299 5300 5301 5302 5303 5304 5305 extern time_t timegm(struct tm *); 5306 extern int cftime(char *, char *, const time_t *); 5307 extern int ascftime(char *, const char *, const struct tm *); 5308 extern long altzone; 5309 5310 5311 5312 5313 extern struct tm *getdate(const char *); 5314 5315 5316 5317 5318 5319 extern int getdate_err; 5320 5321 5322 5323 /* 5324 * ctime_r() & asctime_r() prototypes are defined here. 5325 */ 5326 5327 /* 5328 * Previous releases of Solaris, starting at 2.3, provided definitions of 5329 * various functions as specified in POSIX.1c, Draft 6. For some of these 5330 * functions, the final POSIX 1003.1c standard had a different number of 5331 * arguments and return values. 5332 * 5333 * The following segment of this header provides support for the standard 5334 * interfaces while supporting applications written under earlier 5335 * releases. The application defines appropriate values of the feature 5336 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate 5337 * whether it was written to expect the Draft 6 or standard versions of 5338 * these interfaces, before including this header. This header then 5339 * provides a mapping from the source version of the interface to an 5340 * appropriate binary interface. Such mappings permit an application 5341 * to be built from libraries and objects which have mixed expectations 5342 * of the definitions of these functions. 5343 * 5344 * For applications using the Draft 6 definitions, the binary symbol is the 5345 * same as the source symbol, and no explicit mapping is needed. For the 5346 * standard interface, the function func() is mapped to the binary symbol 5347 * _posix_func(). The preferred mechanism for the remapping is a compiler 5348 * #pragma. If the compiler does not provide such a #pragma, the header file 5349 * defines a static function func() which calls the _posix_func() version; 5350 * this has to be done instead of #define since POSIX specifies that an 5351 * application can #undef the symbol and still be bound to the correct 5352 * implementation. Unfortunately, the statics confuse lint so we fallback to 5353 * #define in that case. 5354 * 5355 * NOTE: Support for the Draft 6 definitions is provided for compatibility 5356 * only. New applications/libraries should use the standard definitions. 5357 */ 5358 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5359 extern char *asctime_r(const struct tm *, char *, int); 5360 extern char *ctime_r(const time_t *, char *, int); 5361 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 5362 extern size_t strftime_l(char *, size_t, 5363 const char *, const struct tm *, locale_t); 5364 5365 5366 5367 5368 5369 /* 5370 * Note, the C11 standard requires that all the various base values that are 5371 * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one. 5372 */ 5373 5374 5375 extern int timespec_get(struct timespec *, int); 5376 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 5377 5378 5379 /* 5380 * The inclusion of <sys/select.h> is needed for the FD_CLR, 5381 * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the 5382 * select() prototype defined in the XOpen specifications 5383 * beginning with XSH4v2. Placement required after definition 5384 * for itimerval. 5385 */ 5386 5387 5388 5389 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1 5390 /* 5391 * CDDL HEADER START 5392 * 5393 * The contents of this file are subject to the terms of the 5394 * Common Development and Distribution License (the "License"). 5395 * You may not use this file except in compliance with the License. 5396 * 5397 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5398 * or http://www.opensolaris.org/os/licensing. 5399 * See the License for the specific language governing permissions 5400 * and limitations under the License. 5401 * 5402 * When distributing Covered Code, include this CDDL HEADER in each 5403 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5404 * If applicable, add the following below this CDDL HEADER, with the 5405 * fields enclosed by brackets "[]" replaced with your own identifying 5406 * information: Portions Copyright [yyyy] [name of copyright owner] 5407 * 5408 * CDDL HEADER END 5409 */ 5410 5411 /* 5412 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 5413 * 5414 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 5415 * 5416 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 5417 * Use is subject to license terms. 5418 */ 5419 5420 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 5421 /* All Rights Reserved */ 5422 5423 /* 5424 * University Copyright- Copyright (c) 1982, 1986, 1988 5425 * The Regents of the University of California 5426 * All Rights Reserved 5427 * 5428 * University Acknowledgment- Portions of this document are derived from 5429 * software developed by the University of California, Berkeley, and its 5430 * contributors. 5431 */ 5432 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 5433 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 5434 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5435 /* 5436 * The sigset_t type is defined in <sys/signal.h> and duplicated 5437 * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6 5438 * now allows the visibility of signal.h in this header, however 5439 * an order of inclusion problem occurs as a result of inclusion 5440 * of <sys/select.h> in <signal.h> under certain conditions. 5441 * Rather than include <sys/signal.h> here, we've duplicated 5442 * the sigset_t type instead. This type is required for the XPG6 5443 * introduced pselect() function also declared in this header. 5444 */ 5445 5446 5447 typedef struct { /* signal set type */ 5448 unsigned int __sigbits[4]; 5449 } sigset_t; 5450 5451 5452 5453 5454 /* 5455 * Select uses bit masks of file descriptors in longs. 5456 * These macros manipulate such bit fields. 5457 * FD_SETSIZE may be defined by the user, but the default here 5458 * should be >= NOFILE (param.h). 5459 */ 5460 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5461 typedef long fd_mask; 5462 5463 typedef long fds_mask; 5464 5465 /* 5466 * The value of _NBBY needs to be consistant with the value 5467 * of NBBY in <sys/param.h>. 5468 */ 5469 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5470 typedef struct fd_set { 5471 5472 5473 5474 long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))]; 5475 } fd_set; 5476 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 5477 extern int select(int, fd_set *, fd_set *, 5478 fd_set *, struct timeval *); 5479 5480 5481 extern int pselect(int, fd_set *, fd_set *, 5482 fd_set *, const struct timespec *, 5483 const sigset_t *); 5484 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 5485 5486 5487 5488 /* 5489 * _VOID was defined to be either void or char but this is not 5490 * required because previous SunOS compilers have accepted the void 5491 * type. However, because many system header and source files use the 5492 * void keyword, the volatile keyword, and ANSI C function prototypes, 5493 * non-ANSI compilers cannot compile the system anyway. The _VOID macro 5494 * should therefore not be used and remains for source compatibility 5495 * only. 5496 */ 5497 /* CSTYLED */ 5498 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 5499 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1 5500 /* 5501 * CDDL HEADER START 5502 * 5503 * The contents of this file are subject to the terms of the 5504 * Common Development and Distribution License (the "License"). 5505 * You may not use this file except in compliance with the License. 5506 * 5507 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5508 * or http://www.opensolaris.org/os/licensing. 5509 * See the License for the specific language governing permissions 5510 * and limitations under the License. 5511 * 5512 * When distributing Covered Code, include this CDDL HEADER in each 5513 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5514 * If applicable, add the following below this CDDL HEADER, with the 5515 * fields enclosed by brackets "[]" replaced with your own identifying 5516 * information: Portions Copyright [yyyy] [name of copyright owner] 5517 * 5518 * CDDL HEADER END 5519 */ 5520 5521 /* 5522 * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 5523 * All Rights Reserved 5524 * 5525 */ 5526 5527 /* 5528 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 5529 * Use is subject to license terms. 5530 */ 5531 5532 /* 5533 * WARNING: This is an implementation-specific header, 5534 * its contents are not guaranteed. Applications 5535 * should include <unistd.h> and not this header. 5536 */ 5537 5538 5539 5540 5541 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 5542 /* 5543 * CDDL HEADER START 5544 * 5545 * The contents of this file are subject to the terms of the 5546 * Common Development and Distribution License (the "License"). 5547 * You may not use this file except in compliance with the License. 5548 * 5549 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5550 * or http://www.opensolaris.org/os/licensing. 5551 * See the License for the specific language governing permissions 5552 * and limitations under the License. 5553 * 5554 * When distributing Covered Code, include this CDDL HEADER in each 5555 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5556 * If applicable, add the following below this CDDL HEADER, with the 5557 * fields enclosed by brackets "[]" replaced with your own identifying 5558 * information: Portions Copyright [yyyy] [name of copyright owner] 5559 * 5560 * CDDL HEADER END 5561 */ 5562 5563 /* 5564 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 5565 * Copyright 2016 Joyent, Inc. 5566 * 5567 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 5568 * Use is subject to license terms. 5569 */ 5570 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2 5571 5572 5573 5574 5575 5576 /* command names for confstr */ 5577 5578 5579 5580 /* 5581 * command names for large file configuration information 5582 */ 5583 /* large file compilation environment configuration */ 5584 5585 5586 5587 5588 /* transitional large file interface configuration */ 5589 5590 5591 5592 5593 5594 /* UNIX 98 */ 5595 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5596 /* UNIX 03 */ 5597 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5598 /* command names for POSIX sysconf */ 5599 5600 /* POSIX.1 names */ 5601 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5602 /* SVR4 names */ 5603 5604 5605 5606 5607 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */ 5608 5609 5610 5611 5612 /* POSIX.4 names */ 5613 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5614 /* XPG4 names */ 5615 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5616 /* additional XSH4/XCU4 command names for sysconf */ 5617 5618 5619 5620 /* additional XPG4v2 (UNIX 95) command names */ 5621 5622 5623 5624 5625 5626 /* defined for XTI (XNS Issue 5) */ 5627 5628 5629 5630 5631 5632 5633 5634 /* 5635 * Hardware specific items 5636 * Note that not all items are supported on all architectures 5637 */ 5638 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5639 /* 5640 * POSIX.1c (pthreads) names. These values are defined above 5641 * the sub-500 range. See psarc case 1995/257. 5642 */ 5643 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5644 /* UNIX 98 */ 5645 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5646 /* UNIX 03 */ 5647 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5648 /* command names for POSIX pathconf */ 5649 5650 /* POSIX.1 names */ 5651 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5652 /* POSIX.4 names */ 5653 5654 5655 5656 /* UNIX 03 names */ 5657 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5658 /* UNIX 08 names */ 5659 5660 5661 /* 5662 * Large File Summit names 5663 * 5664 * This value matches the MIPS ABI choice, but leaves a large gap in the 5665 * value space. 5666 */ 5667 5668 5669 /* 5670 * Extended attributes 5671 */ 5672 5673 5674 5675 /* 5676 * If you add a _PC define above 101, you must change _PC_LAST (and truss). 5677 */ 5678 5679 5680 /* 5681 * Case sensitivity values (related to _PC_CASE_BEHAVIOR) 5682 */ 5683 5684 5685 5686 /* 5687 * The value of 0 is returned when 5688 * ACL's are not supported 5689 */ 5690 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5691 /* 5692 * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications 5693 * should not rely on this value, it has been aligned with the current 5694 * standard to avoid confusion if used. 5695 */ 5696 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 5697 /* UNIX 03 names */ 5698 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 5699 5700 5701 5702 5703 5704 /* Symbolic constants for the "access" routine: */ 5705 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5706 /* Symbolic constants for the "lseek" routine: */ 5707 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5708 /* Path names: */ 5709 5710 5711 5712 5713 /* 5714 * compile-time symbolic constants, 5715 * Support does not mean the feature is enabled. 5716 * Use pathconf/sysconf to obtain actual configuration value. 5717 */ 5718 5719 /* Values unchanged in UNIX 03 */ 5720 5721 5722 5723 5724 5725 /* 5726 * POSIX.1b compile-time symbolic constants. 5727 */ 5728 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5729 /* 5730 * POSIX.1c compile-time symbolic constants. 5731 */ 5732 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5733 /* New in UNIX 03 */ 5734 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5735 /* 5736 * Support for the POSIX.1 mutex protocol attribute. For realtime applications 5737 * which need mutexes to support priority inheritance/ceiling. 5738 */ 5739 # 187 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5740 /* 5741 * Large File Summit-related announcement macros. The system supports both 5742 * the additional and transitional Large File Summit interfaces. (The final 5743 * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.) 5744 */ 5745 5746 5747 5748 5749 5750 /* large file compilation environment setup */ 5751 5752 5753 5754 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5755 #pragma redefine_extname ftruncate ftruncate64 5756 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5757 5758 5759 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5760 #pragma redefine_extname lseek lseek64 5761 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5762 5763 5764 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5765 #pragma redefine_extname pread pread64 5766 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5767 5768 5769 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5770 #pragma redefine_extname pwrite pwrite64 5771 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5772 5773 5774 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5775 #pragma redefine_extname truncate truncate64 5776 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5777 5778 5779 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5780 #pragma redefine_extname lockf lockf64 5781 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5782 5783 5784 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5785 #pragma redefine_extname tell tell64 5786 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5787 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5788 /* In the LP64 compilation environment, the APIs are already large file */ 5789 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5790 extern int access(const char *, int); 5791 5792 extern int acct(const char *); 5793 5794 extern unsigned alarm(unsigned); 5795 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5796 5797 5798 extern int brk(void *); 5799 5800 extern int chdir(const char *); 5801 extern int chown(const char *, uid_t, gid_t); 5802 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5803 5804 5805 extern int chroot(const char *); 5806 5807 extern int close(int); 5808 5809 5810 5811 5812 5813 5814 extern char *ctermid(char *); 5815 5816 5817 extern char *ctermid_r(char *); 5818 5819 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5820 5821 extern char *cuserid(char *); 5822 5823 extern int dup(int); 5824 extern int dup2(int, int); 5825 extern int dup3(int, int, int); 5826 5827 5828 5829 5830 extern void endusershell(void); 5831 5832 extern int execl(const char *, const char *, ...); 5833 extern int execle(const char *, const char *, ...); 5834 extern int execlp(const char *, const char *, ...); 5835 extern int execv(const char *, char *const *); 5836 extern int execve(const char *, char *const *, char *const *); 5837 extern int execvp(const char *, char *const *); 5838 extern void _exit(int) 5839 __attribute__((__noreturn__)); 5840 /* 5841 * The following fattach prototype is duplicated in <stropts.h>. The 5842 * duplication is necessitated by XPG4.2 which requires the prototype 5843 * be defined in <stropts.h>. 5844 */ 5845 5846 extern int fattach(int, const char *); 5847 5848 5849 extern int fchdir(int); 5850 extern int fchown(int, uid_t, gid_t); 5851 5852 5853 extern int fchroot(int); 5854 5855 5856 5857 extern int fdatasync(int); 5858 5859 /* 5860 * The following fdetach prototype is duplicated in <stropts.h>. The 5861 * duplication is necessitated by XPG4.2 which requires the prototype 5862 * be defined in <stropts.h>. 5863 */ 5864 5865 extern int fdetach(const char *); 5866 5867 extern pid_t fork(void); 5868 5869 extern pid_t fork1(void); 5870 extern pid_t forkall(void); 5871 5872 extern long fpathconf(int, int); 5873 5874 5875 extern int fsync(int); 5876 5877 5878 5879 5880 extern int ftruncate(int, off_t); 5881 5882 extern char *getcwd(char *, size_t); 5883 5884 5885 extern int getdtablesize(void); 5886 5887 extern gid_t getegid(void); 5888 extern uid_t geteuid(void); 5889 extern gid_t getgid(void); 5890 extern int getgroups(int, gid_t *); 5891 5892 extern long gethostid(void); 5893 5894 5895 5896 5897 extern int gethostname(char *, int); 5898 # 372 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5899 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5900 5901 extern int getpagesize(void); 5902 5903 extern pid_t getpgid(pid_t); 5904 5905 extern pid_t getpid(void); 5906 extern pid_t getppid(void); 5907 extern pid_t getpgrp(void); 5908 5909 5910 char *gettxt(const char *, const char *); 5911 5912 5913 extern pid_t getsid(pid_t); 5914 5915 extern uid_t getuid(void); 5916 5917 extern char *getusershell(void); 5918 5919 /* 5920 * The following ioctl prototype is duplicated in <stropts.h>. The 5921 * duplication is necessitated by XPG4.2 which requires the prototype 5922 * be defined in <stropts.h>. 5923 */ 5924 5925 extern int ioctl(int, int, ...); 5926 extern int isaexec(const char *, char *const *, char *const *); 5927 extern int issetugid(void); 5928 5929 extern int isatty(int); 5930 5931 extern int lchown(const char *, uid_t, gid_t); 5932 5933 extern int link(const char *, const char *); 5934 5935 extern offset_t llseek(int, offset_t, int); 5936 5937 5938 5939 5940 extern int lockf(int, int, off_t); 5941 5942 extern off_t lseek(int, off_t, int); 5943 5944 5945 extern int nice(int); 5946 5947 5948 extern int mincore(caddr_t, size_t, char *); 5949 5950 extern long pathconf(const char *, int); 5951 extern int pause(void); 5952 extern int pipe(int *); 5953 extern int pipe2(int *, int); 5954 5955 5956 5957 extern ssize_t pread(int, void *, size_t, off_t); 5958 5959 5960 extern void profil(unsigned short *, size_t, unsigned long, unsigned int); 5961 5962 /* 5963 * pthread_atfork() is also declared in <pthread.h> as per SUSv3. The 5964 * declarations are identical. A change to either one may also require 5965 * appropriate namespace updates in order to avoid redeclaration 5966 * warnings in the case where both prototypes are exposed via inclusion 5967 * of both <pthread.h> and <unistd.h>. 5968 */ 5969 5970 5971 5972 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void)); 5973 5974 5975 5976 extern int ptrace(int, pid_t, int, int); 5977 5978 5979 5980 5981 extern ssize_t pwrite(int, const void *, size_t, off_t); 5982 5983 5984 /* per RFC 3542; This is also defined in netdb.h */ 5985 extern int rcmd_af(char **, unsigned short, const char *, const char *, 5986 const char *, int *, int); 5987 5988 extern ssize_t read(int, void *, size_t); 5989 5990 5991 extern ssize_t readlink(const char *, char *, 5992 size_t); 5993 5994 5995 5996 5997 5998 5999 extern int rename(const char *, const char *); 6000 6001 6002 6003 6004 6005 6006 6007 extern int resolvepath(const char *, char *, size_t); 6008 /* per RFC 3542; This is also defined in netdb.h */ 6009 extern int rexec_af(char **, unsigned short, const char *, const char *, 6010 const char *, int *, int); 6011 6012 extern int rmdir(const char *); 6013 6014 /* per RFC 3542; This is also defined in netdb.h */ 6015 extern int rresvport_af(int *, int); 6016 6017 6018 6019 6020 extern void *sbrk(intptr_t); 6021 6022 6023 extern int setegid(gid_t); 6024 extern int seteuid(uid_t); 6025 6026 extern int setgid(gid_t); 6027 6028 extern int setgroups(int, const gid_t *); 6029 extern int sethostname(char *, int); 6030 6031 extern int setpgid(pid_t, pid_t); 6032 6033 extern pid_t setpgrp(void); 6034 extern int setregid(gid_t, gid_t); 6035 extern int setreuid(uid_t, uid_t); 6036 6037 extern pid_t setsid(void); 6038 extern int setuid(uid_t); 6039 6040 extern void setusershell(void); 6041 6042 extern unsigned sleep(unsigned); 6043 6044 extern int stime(const time_t *); 6045 6046 6047 6048 6049 6050 6051 extern int symlink(const char *, const char *); 6052 extern void sync(void); 6053 # 534 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 6054 extern long sysconf(int); 6055 extern pid_t tcgetpgrp(int); 6056 extern int tcsetpgrp(int, pid_t); 6057 6058 6059 6060 extern off_t tell(int); 6061 6062 6063 6064 6065 extern int truncate(const char *, off_t); 6066 6067 extern char *ttyname(int); 6068 6069 extern useconds_t ualarm(useconds_t, useconds_t); 6070 6071 extern int unlink(const char *); 6072 6073 extern char *getwd(char *); 6074 extern int usleep(useconds_t); 6075 extern pid_t vfork(void) __attribute__((__returns_twice__)); 6076 #pragma unknown_control_flow(vfork) 6077 6078 6079 extern void vhangup(void); 6080 6081 extern ssize_t write(int, const void *, size_t); 6082 6083 extern void yield(void); 6084 6085 6086 6087 6088 /* || defined(_XPG7) */ 6089 extern int faccessat(int, const char *, int, int); 6090 extern int fchownat(int, const char *, uid_t, gid_t, int); 6091 extern int linkat(int, const char *, int, const char *, int); 6092 extern ssize_t readlinkat(int, const char *, 6093 char *, size_t); 6094 extern int renameat(int, const char *, int, const char *); 6095 extern int symlinkat(const char *, int, const char *); 6096 extern int unlinkat(int, const char *, int); 6097 6098 6099 extern int get_nprocs(void); 6100 extern int get_nprocs_conf(void); 6101 6102 6103 /* transitional large file interface versions */ 6104 6105 6106 extern int ftruncate64(int, off64_t); 6107 extern off64_t lseek64(int, off64_t, int); 6108 extern ssize_t pread64(int, void *, size_t, off64_t); 6109 extern ssize_t pwrite64(int, const void *, size_t, off64_t); 6110 extern off64_t tell64(int); 6111 extern int truncate64(const char *, off64_t); 6112 extern int lockf64(int, int, off64_t); 6113 6114 6115 /* 6116 * getlogin_r() & ttyname_r() prototypes are defined here. 6117 */ 6118 6119 /* 6120 * Previous releases of Solaris, starting at 2.3, provided definitions of 6121 * various functions as specified in POSIX.1c, Draft 6. For some of these 6122 * functions, the final POSIX 1003.1c standard had a different number of 6123 * arguments and return values. 6124 * 6125 * The following segment of this header provides support for the standard 6126 * interfaces while supporting applications written under earlier 6127 * releases. The application defines appropriate values of the feature 6128 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate 6129 * whether it was written to expect the Draft 6 or standard versions of 6130 * these interfaces, before including this header. This header then 6131 * provides a mapping from the source version of the interface to an 6132 * appropriate binary interface. Such mappings permit an application 6133 * to be built from libraries and objects which have mixed expectations 6134 * of the definitions of these functions. 6135 * 6136 * For applications using the Draft 6 definitions, the binary symbol is the 6137 * same as the source symbol, and no explicit mapping is needed. For the 6138 * standard interface, the function func() is mapped to the binary symbol 6139 * _posix_func(). The preferred mechanism for the remapping is a compiler 6140 * #pragma. If the compiler does not provide such a #pragma, the header file 6141 * defines a static function func() which calls the _posix_func() version; 6142 * this has to be done instead of #define since POSIX specifies that an 6143 * application can #undef the symbol and still be bound to the correct 6144 * implementation. Unfortunately, the statics confuse lint so we fallback to 6145 * #define in that case. 6146 * 6147 * NOTE: Support for the Draft 6 definitions is provided for compatibility 6148 * only. New applications/libraries should use the standard definitions. 6149 */ 6150 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 6151 6152 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 6153 #pragma redefine_extname getlogin_r getloginx_r 6154 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 6155 6156 6157 6158 6159 6160 6161 extern char *getlogin_r(char *, int); 6162 6163 extern char *ttyname_r(int, char *, int); 6164 6165 6166 6167 6168 6169 6170 extern int getentropy(void *, size_t); 6171 # 38 "cmdexec.c" 2 6172 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 1 6173 /* 6174 * CDDL HEADER START 6175 * 6176 * The contents of this file are subject to the terms of the 6177 * Common Development and Distribution License (the "License"). 6178 * You may not use this file except in compliance with the License. 6179 * 6180 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6181 * or http://www.opensolaris.org/os/licensing. 6182 * See the License for the specific language governing permissions 6183 * and limitations under the License. 6184 * 6185 * When distributing Covered Code, include this CDDL HEADER in each 6186 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6187 * If applicable, add the following below this CDDL HEADER, with the 6188 * fields enclosed by brackets "[]" replaced with your own identifying 6189 * information: Portions Copyright [yyyy] [name of copyright owner] 6190 * 6191 * CDDL HEADER END 6192 */ 6193 6194 /* 6195 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6196 * Use is subject to license terms. 6197 */ 6198 6199 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6200 /* All Rights Reserved */ 6201 # 38 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 6202 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 6203 /* 6204 * CDDL HEADER START 6205 * 6206 * The contents of this file are subject to the terms of the 6207 * Common Development and Distribution License (the "License"). 6208 * You may not use this file except in compliance with the License. 6209 * 6210 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6211 * or http://www.opensolaris.org/os/licensing. 6212 * See the License for the specific language governing permissions 6213 * and limitations under the License. 6214 * 6215 * When distributing Covered Code, include this CDDL HEADER in each 6216 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6217 * If applicable, add the following below this CDDL HEADER, with the 6218 * fields enclosed by brackets "[]" replaced with your own identifying 6219 * information: Portions Copyright [yyyy] [name of copyright owner] 6220 * 6221 * CDDL HEADER END 6222 */ 6223 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6224 /* All Rights Reserved */ 6225 6226 6227 /* 6228 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6229 * Use is subject to license terms. 6230 * 6231 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 6232 * Copyright 2016 Joyent, Inc. 6233 */ 6234 # 39 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6235 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 6236 /* 6237 * CDDL HEADER START 6238 * 6239 * The contents of this file are subject to the terms of the 6240 * Common Development and Distribution License (the "License"). 6241 * You may not use this file except in compliance with the License. 6242 * 6243 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6244 * or http://www.opensolaris.org/os/licensing. 6245 * See the License for the specific language governing permissions 6246 * and limitations under the License. 6247 * 6248 * When distributing Covered Code, include this CDDL HEADER in each 6249 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6250 * If applicable, add the following below this CDDL HEADER, with the 6251 * fields enclosed by brackets "[]" replaced with your own identifying 6252 * information: Portions Copyright [yyyy] [name of copyright owner] 6253 * 6254 * CDDL HEADER END 6255 */ 6256 6257 /* 6258 * Copyright (c) 2013 Gary Mills 6259 * 6260 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 6261 * Use is subject to license terms. 6262 */ 6263 6264 /* Copyright (c) 1988 AT&T */ 6265 /* All Rights Reserved */ 6266 6267 6268 6269 6270 6271 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 6272 /* 6273 * CDDL HEADER START 6274 * 6275 * The contents of this file are subject to the terms of the 6276 * Common Development and Distribution License (the "License"). 6277 * You may not use this file except in compliance with the License. 6278 * 6279 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6280 * or http://www.opensolaris.org/os/licensing. 6281 * See the License for the specific language governing permissions 6282 * and limitations under the License. 6283 * 6284 * When distributing Covered Code, include this CDDL HEADER in each 6285 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6286 * If applicable, add the following below this CDDL HEADER, with the 6287 * fields enclosed by brackets "[]" replaced with your own identifying 6288 * information: Portions Copyright [yyyy] [name of copyright owner] 6289 * 6290 * CDDL HEADER END 6291 */ 6292 6293 /* 6294 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 6295 * Copyright 2016 Joyent, Inc. 6296 * 6297 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 6298 * Use is subject to license terms. 6299 */ 6300 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 6301 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 6302 /* 6303 * CDDL HEADER START 6304 * 6305 * The contents of this file are subject to the terms of the 6306 * Common Development and Distribution License (the "License"). 6307 * You may not use this file except in compliance with the License. 6308 * 6309 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6310 * or http://www.opensolaris.org/os/licensing. 6311 * See the License for the specific language governing permissions 6312 * and limitations under the License. 6313 * 6314 * 6315 * When distributing Covered Code, include this CDDL HEADER in each 6316 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6317 * If applicable, add the following below this CDDL HEADER, with the 6318 * fields enclosed by brackets "[]" replaced with your own identifying 6319 * information: Portions Copyright [yyyy] [name of copyright owner] 6320 * 6321 * CDDL HEADER END 6322 */ 6323 6324 /* 6325 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 6326 * Use is subject to license terms. 6327 * Copyright 2016 Joyent, Inc. 6328 */ 6329 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 6330 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1 6331 /* 6332 * CDDL HEADER START 6333 * 6334 * The contents of this file are subject to the terms of the 6335 * Common Development and Distribution License, Version 1.0 only 6336 * (the "License"). You may not use this file except in compliance 6337 * with the License. 6338 * 6339 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6340 * or http://www.opensolaris.org/os/licensing. 6341 * See the License for the specific language governing permissions 6342 * and limitations under the License. 6343 * 6344 * When distributing Covered Code, include this CDDL HEADER in each 6345 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6346 * If applicable, add the following below this CDDL HEADER, with the 6347 * fields enclosed by brackets "[]" replaced with your own identifying 6348 * information: Portions Copyright [yyyy] [name of copyright owner] 6349 * 6350 * CDDL HEADER END 6351 */ 6352 /* 6353 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 6354 * Use is subject to license terms. 6355 */ 6356 6357 /* Copyright (c) 1988 AT&T */ 6358 /* All Rights Reserved */ 6359 6360 6361 /* 6362 * An application should not include this header directly. Instead it 6363 * should be included only through the inclusion of other Sun headers. 6364 * 6365 * The contents of this header is limited to identifiers specified in the 6366 * C Standard. Any new identifiers specified in future amendments to the 6367 * C Standard must be placed in this header. If these new identifiers 6368 * are required to also be in the C++ Standard "std" namespace, then for 6369 * anything other than macro definitions, corresponding "using" directives 6370 * must also be added to <limits.h>. 6371 */ 6372 6373 6374 6375 6376 #pragma ident "%Z%%M% %I% %E% SMI" 6377 6378 6379 6380 6381 6382 /* 6383 * Sizes of integral types 6384 */ 6385 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 6386 /* min value of a "long int" */ 6387 6388 6389 6390 6391 6392 /* min value of a long long */ 6393 6394 /* max value of a long long */ 6395 6396 /* max value of "unsigned long long */ 6397 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 6398 6399 /* 6400 * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C 6401 * committee's working draft for the revision of the current ISO C standard, 6402 * ISO/IEC 9899:1990 Programming language - C. These are not currently 6403 * required by any standard but constitute a useful, general purpose set 6404 * of type definitions and limits which is namespace clean with respect to 6405 * all standards. 6406 */ 6407 6408 6409 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 6410 /* 6411 * CDDL HEADER START 6412 * 6413 * The contents of this file are subject to the terms of the 6414 * Common Development and Distribution License, Version 1.0 only 6415 * (the "License"). You may not use this file except in compliance 6416 * with the License. 6417 * 6418 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6419 * or http://www.opensolaris.org/os/licensing. 6420 * See the License for the specific language governing permissions 6421 * and limitations under the License. 6422 * 6423 * When distributing Covered Code, include this CDDL HEADER in each 6424 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6425 * If applicable, add the following below this CDDL HEADER, with the 6426 * fields enclosed by brackets "[]" replaced with your own identifying 6427 * information: Portions Copyright [yyyy] [name of copyright owner] 6428 * 6429 * CDDL HEADER END 6430 */ 6431 /* 6432 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6433 * 6434 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 6435 * Use is subject to license terms. 6436 */ 6437 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 6438 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6439 /* 6440 * ARG_MAX is calculated as follows: 6441 * NCARGS - space for other stuff on initial stack 6442 * like aux vectors, saved registers, etc.. 6443 */ 6444 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6445 /* 6446 * POSIX conformant definitions - An implementation may define 6447 * other symbols which reflect the actual implementation. Alternate 6448 * definitions may not be as restrictive as the POSIX definitions. 6449 */ 6450 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6451 /* POSIX.1c conformant */ 6452 6453 6454 6455 6456 6457 /* UNIX 03 conformant */ 6458 6459 6460 6461 6462 6463 /* 6464 * POSIX.2 and XPG4-XSH4 conformant definitions 6465 */ 6466 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6467 /* UNIX 03 conformant */ 6468 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6469 /* 6470 * For dual definitions for PASS_MAX and sysconf.c 6471 */ 6472 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6473 /* NLS printf() and scanf() */ 6474 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6475 /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */ 6476 6477 6478 6479 /* of a double */ 6480 6481 6482 /* of a "float" */ 6483 6484 6485 /* Marked as LEGACY in SUSv1 and removed in SUSv2 */ 6486 6487 6488 /* of a double */ 6489 6490 /* of a float */ 6491 # 248 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6492 /* 6493 * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the 6494 * related text states: 6495 * 6496 * A definition of one of the values from Table 2-5 shall be omitted from the 6497 * <limits.h> on specific implementations where the corresponding value is 6498 * equal to or greater than the stated minimum, but where the value can vary 6499 * depending on the file to which it is applied. The actual value supported for 6500 * a specific pathname shall be provided by the pathconf() (5.7.1) function. 6501 * 6502 * This is clear that any machine supporting multiple file system types 6503 * and/or a network can not include this define, regardless of protection 6504 * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags. 6505 * 6506 * #define NAME_MAX 14 6507 */ 6508 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 6509 /* Increased for illumos */ 6510 # 40 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6511 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 6512 /* 6513 * CDDL HEADER START 6514 * 6515 * The contents of this file are subject to the terms of the 6516 * Common Development and Distribution License (the "License"). 6517 * You may not use this file except in compliance with the License. 6518 * 6519 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6520 * or http://www.opensolaris.org/os/licensing. 6521 * See the License for the specific language governing permissions 6522 * and limitations under the License. 6523 * 6524 * When distributing Covered Code, include this CDDL HEADER in each 6525 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6526 * If applicable, add the following below this CDDL HEADER, with the 6527 * fields enclosed by brackets "[]" replaced with your own identifying 6528 * information: Portions Copyright [yyyy] [name of copyright owner] 6529 * 6530 * CDDL HEADER END 6531 */ 6532 6533 /* 6534 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6535 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 6536 */ 6537 6538 /* Copyright (c) 1988 AT&T */ 6539 /* All Rights Reserved */ 6540 6541 /* 6542 * User-visible pieces of the ANSI C standard I/O package. 6543 */ 6544 # 41 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6545 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 1 6546 /* 6547 * CDDL HEADER START 6548 * 6549 * The contents of this file are subject to the terms of the 6550 * Common Development and Distribution License, Version 1.0 only 6551 * (the "License"). You may not use this file except in compliance 6552 * with the License. 6553 * 6554 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6555 * or http://www.opensolaris.org/os/licensing. 6556 * See the License for the specific language governing permissions 6557 * and limitations under the License. 6558 * 6559 * When distributing Covered Code, include this CDDL HEADER in each 6560 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6561 * If applicable, add the following below this CDDL HEADER, with the 6562 * fields enclosed by brackets "[]" replaced with your own identifying 6563 * information: Portions Copyright [yyyy] [name of copyright owner] 6564 * 6565 * CDDL HEADER END 6566 */ 6567 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6568 /* All Rights Reserved */ 6569 6570 6571 6572 6573 6574 #pragma ident "%Z%%M% %I% %E% SMI" 6575 6576 6577 6578 6579 6580 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 6581 /* 6582 * CDDL HEADER START 6583 * 6584 * The contents of this file are subject to the terms of the 6585 * Common Development and Distribution License (the "License"). 6586 * You may not use this file except in compliance with the License. 6587 * 6588 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6589 * or http://www.opensolaris.org/os/licensing. 6590 * See the License for the specific language governing permissions 6591 * and limitations under the License. 6592 * 6593 * When distributing Covered Code, include this CDDL HEADER in each 6594 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6595 * If applicable, add the following below this CDDL HEADER, with the 6596 * fields enclosed by brackets "[]" replaced with your own identifying 6597 * information: Portions Copyright [yyyy] [name of copyright owner] 6598 * 6599 * CDDL HEADER END 6600 */ 6601 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6602 /* All Rights Reserved */ 6603 6604 6605 /* 6606 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6607 * Use is subject to license terms. 6608 * 6609 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 6610 * Copyright 2016 Joyent, Inc. 6611 */ 6612 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 2 6613 6614 struct pkgdev { 6615 int rdonly; 6616 int mntflg; 6617 longlong_t capacity; /* number of 512-blocks on device */ 6618 char *name; 6619 char *dirname; 6620 char *pathname; 6621 char *mount; 6622 char *fstyp; 6623 char *cdevice; 6624 char *bdevice; 6625 char *norewind; 6626 }; 6627 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6628 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 6629 /* 6630 * CDDL HEADER START 6631 * 6632 * The contents of this file are subject to the terms of the 6633 * Common Development and Distribution License (the "License"). 6634 * You may not use this file except in compliance with the License. 6635 * 6636 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6637 * or http://www.opensolaris.org/os/licensing. 6638 * See the License for the specific language governing permissions 6639 * and limitations under the License. 6640 * 6641 * When distributing Covered Code, include this CDDL HEADER in each 6642 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6643 * If applicable, add the following below this CDDL HEADER, with the 6644 * fields enclosed by brackets "[]" replaced with your own identifying 6645 * information: Portions Copyright [yyyy] [name of copyright owner] 6646 * 6647 * CDDL HEADER END 6648 */ 6649 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6650 /* All Rights Reserved */ 6651 6652 /* 6653 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 6654 * Use is subject to license terms. 6655 */ 6656 6657 6658 6659 6660 #pragma ident "%Z%%M% %I% %E% SMI" 6661 6662 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 6663 /* 6664 * CDDL HEADER START 6665 * 6666 * The contents of this file are subject to the terms of the 6667 * Common Development and Distribution License (the "License"). 6668 * You may not use this file except in compliance with the License. 6669 * 6670 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6671 * or http://www.opensolaris.org/os/licensing. 6672 * See the License for the specific language governing permissions 6673 * and limitations under the License. 6674 * 6675 * When distributing Covered Code, include this CDDL HEADER in each 6676 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6677 * If applicable, add the following below this CDDL HEADER, with the 6678 * fields enclosed by brackets "[]" replaced with your own identifying 6679 * information: Portions Copyright [yyyy] [name of copyright owner] 6680 * 6681 * CDDL HEADER END 6682 */ 6683 /* Copyright (c) 1988 AT&T */ 6684 /* All Rights Reserved */ 6685 6686 6687 /* 6688 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6689 * 6690 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 6691 * Use is subject to license terms. 6692 */ 6693 /* 6694 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 6695 * Copyright 2016 Joyent, Inc. 6696 */ 6697 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 2 6698 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 6699 extern char *errstr; 6700 6701 struct ainfo { 6702 char *local; 6703 mode_t mode; 6704 char owner[64 +1]; 6705 char group[64 +1]; 6706 major_t major; 6707 minor_t minor; 6708 }; 6709 6710 struct cinfo { 6711 long cksum; 6712 fsblkcnt_t size; 6713 time_t modtime; 6714 }; 6715 6716 struct pinfo { 6717 char status; 6718 char pkg[64 +1]; 6719 char editflag; 6720 char aclass[64 +1]; 6721 struct pinfo 6722 *next; 6723 }; 6724 6725 struct cfent { 6726 short volno; 6727 char ftype; 6728 char pkg_class[64 +1]; 6729 int pkg_class_idx; 6730 char *path; 6731 struct ainfo ainfo; 6732 struct cinfo cinfo; 6733 short npkgs; 6734 struct pinfo 6735 *pinfo; 6736 }; 6737 6738 /* averify() & cverify() error codes */ 6739 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 6740 # 1 "/usr/include/openssl/bio.h" 1 3 4 6741 /* crypto/bio/bio.h */ 6742 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 6743 * All rights reserved. 6744 * 6745 * This package is an SSL implementation written 6746 * by Eric Young (eay@cryptsoft.com). 6747 * The implementation was written so as to conform with Netscapes SSL. 6748 * 6749 * This library is free for commercial and non-commercial use as long as 6750 * the following conditions are aheared to. The following conditions 6751 * apply to all code found in this distribution, be it the RC4, RSA, 6752 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 6753 * included with this distribution is covered by the same copyright terms 6754 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 6755 * 6756 * Copyright remains Eric Young's, and as such any Copyright notices in 6757 * the code are not to be removed. 6758 * If this package is used in a product, Eric Young should be given attribution 6759 * as the author of the parts of the library used. 6760 * This can be in the form of a textual message at program startup or 6761 * in documentation (online or textual) provided with the package. 6762 * 6763 * Redistribution and use in source and binary forms, with or without 6764 * modification, are permitted provided that the following conditions 6765 * are met: 6766 * 1. Redistributions of source code must retain the copyright 6767 * notice, this list of conditions and the following disclaimer. 6768 * 2. Redistributions in binary form must reproduce the above copyright 6769 * notice, this list of conditions and the following disclaimer in the 6770 * documentation and/or other materials provided with the distribution. 6771 * 3. All advertising materials mentioning features or use of this software 6772 * must display the following acknowledgement: 6773 * "This product includes cryptographic software written by 6774 * Eric Young (eay@cryptsoft.com)" 6775 * The word 'cryptographic' can be left out if the rouines from the library 6776 * being used are not cryptographic related :-). 6777 * 4. If you include any Windows specific code (or a derivative thereof) from 6778 * the apps directory (application code) you must include an acknowledgement: 6779 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 6780 * 6781 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 6782 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 6783 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 6784 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 6785 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 6786 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 6787 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 6788 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 6789 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 6790 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 6791 * SUCH DAMAGE. 6792 * 6793 * The licence and distribution terms for any publically available version or 6794 * derivative of this code cannot be changed. i.e. this code cannot simply be 6795 * copied and put under another distribution licence 6796 * [including the GNU Public Licence.] 6797 */ 6798 6799 6800 6801 6802 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 6803 /* e_os2.h */ 6804 /* ==================================================================== 6805 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 6806 * 6807 * Redistribution and use in source and binary forms, with or without 6808 * modification, are permitted provided that the following conditions 6809 * are met: 6810 * 6811 * 1. Redistributions of source code must retain the above copyright 6812 * notice, this list of conditions and the following disclaimer. 6813 * 6814 * 2. Redistributions in binary form must reproduce the above copyright 6815 * notice, this list of conditions and the following disclaimer in 6816 * the documentation and/or other materials provided with the 6817 * distribution. 6818 * 6819 * 3. All advertising materials mentioning features or use of this 6820 * software must display the following acknowledgment: 6821 * "This product includes software developed by the OpenSSL Project 6822 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 6823 * 6824 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 6825 * endorse or promote products derived from this software without 6826 * prior written permission. For written permission, please contact 6827 * openssl-core@openssl.org. 6828 * 6829 * 5. Products derived from this software may not be called "OpenSSL" 6830 * nor may "OpenSSL" appear in their names without prior written 6831 * permission of the OpenSSL Project. 6832 * 6833 * 6. Redistributions of any form whatsoever must retain the following 6834 * acknowledgment: 6835 * "This product includes software developed by the OpenSSL Project 6836 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 6837 * 6838 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 6839 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 6840 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 6841 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 6842 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 6843 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 6844 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 6845 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 6846 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 6847 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 6848 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 6849 * OF THE POSSIBILITY OF SUCH DAMAGE. 6850 * ==================================================================== 6851 * 6852 * This product includes cryptographic software written by Eric Young 6853 * (eay@cryptsoft.com). This product includes software written by Tim 6854 * Hudson (tjh@cryptsoft.com). 6855 * 6856 */ 6857 6858 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 6859 /* opensslconf.h */ 6860 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 6861 6862 6863 6864 6865 /* OpenSSL was configured with the following options: */ 6866 # 108 "/usr/include/openssl/opensslconf.h" 3 4 6867 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 6868 asks for it. This is a transient feature that is provided for those 6869 who haven't had the time to do the appropriate changes in their 6870 applications. */ 6871 # 204 "/usr/include/openssl/opensslconf.h" 3 4 6872 /* crypto/opensslconf.h.in */ 6873 6874 /* Generate 80386 code? */ 6875 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 6876 # 65 "/usr/include/openssl/e_os2.h" 3 4 6877 /****************************************************************************** 6878 * Detect operating systems. This probably needs completing. 6879 * The result is that at least one OPENSSL_SYS_os macro should be defined. 6880 * However, if none is defined, Unix is assumed. 6881 **/ 6882 6883 6884 6885 /* ---------------------- Macintosh, before MacOS X ----------------------- */ 6886 6887 6888 6889 6890 6891 /* ---------------------- NetWare ----------------------------------------- */ 6892 6893 6894 6895 6896 6897 /* --------------------- Microsoft operating systems ---------------------- */ 6898 6899 /* 6900 * Note that MSDOS actually denotes 32-bit environments running on top of 6901 * MS-DOS, such as DJGPP one. 6902 */ 6903 6904 6905 6906 6907 6908 /* 6909 * For 32 bit environment, there seems to be the CygWin environment and then 6910 * all the others that try to do the same thing Microsoft does... 6911 */ 6912 # 129 "/usr/include/openssl/e_os2.h" 3 4 6913 /* Anything that tries to look like Microsoft is "Windows" */ 6914 # 138 "/usr/include/openssl/e_os2.h" 3 4 6915 /* 6916 * DLL settings. This part is a bit tough, because it's up to the 6917 * application implementor how he or she will link the application, so it 6918 * requires some macro to be used. 6919 */ 6920 # 152 "/usr/include/openssl/e_os2.h" 3 4 6921 /* ------------------------------- OpenVMS -------------------------------- */ 6922 # 166 "/usr/include/openssl/e_os2.h" 3 4 6923 /* -------------------------------- OS/2 ---------------------------------- */ 6924 6925 6926 6927 6928 6929 /* -------------------------------- Unix ---------------------------------- */ 6930 # 207 "/usr/include/openssl/e_os2.h" 3 4 6931 /* -------------------------------- VOS ----------------------------------- */ 6932 # 218 "/usr/include/openssl/e_os2.h" 3 4 6933 /* ------------------------------ VxWorks --------------------------------- */ 6934 6935 6936 6937 6938 /* -------------------------------- BeOS ---------------------------------- */ 6939 # 234 "/usr/include/openssl/e_os2.h" 3 4 6940 /** 6941 * That's it for OS-specific stuff 6942 *****************************************************************************/ 6943 6944 /* Specials for I/O an exit */ 6945 # 247 "/usr/include/openssl/e_os2.h" 3 4 6946 /*- 6947 * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare 6948 * certain global symbols that, with some compilers under VMS, have to be 6949 * defined and declared explicitely with globaldef and globalref. 6950 * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare 6951 * DLL exports and imports for compilers under Win32. These are a little 6952 * more complicated to use. Basically, for any library that exports some 6953 * global variables, the following code must be present in the header file 6954 * that declares them, before OPENSSL_EXTERN is used: 6955 * 6956 * #ifdef SOME_BUILD_FLAG_MACRO 6957 * # undef OPENSSL_EXTERN 6958 * # define OPENSSL_EXTERN OPENSSL_EXPORT 6959 * #endif 6960 * 6961 * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL 6962 * have some generally sensible values, and for OPENSSL_EXTERN to have the 6963 * value OPENSSL_IMPORT. 6964 */ 6965 # 282 "/usr/include/openssl/e_os2.h" 3 4 6966 /*- 6967 * Macros to allow global variables to be reached through function calls when 6968 * required (if a shared library version requires it, for example. 6969 * The way it's done allows definitions like this: 6970 * 6971 * // in foobar.c 6972 * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) 6973 * // in foobar.h 6974 * OPENSSL_DECLARE_GLOBAL(int,foobar); 6975 * #define foobar OPENSSL_GLOBAL_REF(foobar) 6976 */ 6977 # 63 "/usr/include/openssl/bio.h" 2 3 4 6978 6979 6980 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 6981 /* 6982 * CDDL HEADER START 6983 * 6984 * The contents of this file are subject to the terms of the 6985 * Common Development and Distribution License (the "License"). 6986 * You may not use this file except in compliance with the License. 6987 * 6988 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6989 * or http://www.opensolaris.org/os/licensing. 6990 * See the License for the specific language governing permissions 6991 * and limitations under the License. 6992 * 6993 * When distributing Covered Code, include this CDDL HEADER in each 6994 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6995 * If applicable, add the following below this CDDL HEADER, with the 6996 * fields enclosed by brackets "[]" replaced with your own identifying 6997 * information: Portions Copyright [yyyy] [name of copyright owner] 6998 * 6999 * CDDL HEADER END 7000 */ 7001 7002 /* 7003 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7004 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7005 */ 7006 7007 /* Copyright (c) 1988 AT&T */ 7008 /* All Rights Reserved */ 7009 7010 /* 7011 * User-visible pieces of the ANSI C standard I/O package. 7012 */ 7013 # 66 "/usr/include/openssl/bio.h" 2 3 4 7014 7015 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1 3 4 7016 /* 7017 * CDDL HEADER START 7018 * 7019 * The contents of this file are subject to the terms of the 7020 * Common Development and Distribution License, Version 1.0 only 7021 * (the "License"). You may not use this file except in compliance 7022 * with the License. 7023 * 7024 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7025 * or http://www.opensolaris.org/os/licensing. 7026 * See the License for the specific language governing permissions 7027 * and limitations under the License. 7028 * 7029 * When distributing Covered Code, include this CDDL HEADER in each 7030 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7031 * If applicable, add the following below this CDDL HEADER, with the 7032 * fields enclosed by brackets "[]" replaced with your own identifying 7033 * information: Portions Copyright [yyyy] [name of copyright owner] 7034 * 7035 * CDDL HEADER END 7036 */ 7037 /* Copyright (c) 1988 AT&T */ 7038 /* All Rights Reserved */ 7039 7040 /* 7041 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7042 * 7043 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7044 * Use is subject to license terms. 7045 */ 7046 7047 7048 7049 7050 /* 7051 * This header defines the ISO C 1989, ISO C++ 1998, and ISO C 1999 7052 * variable argument definitions. For legacy support, it also defines 7053 * the pre-standard variable argument definitions. 7054 * 7055 * The varargs definitions within this header are defined in terms of 7056 * implementation definitions. These implementation definitions reside 7057 * in <sys/va_list.h>. This organization enables protected use of 7058 * the implementation by other standard headers without introducing 7059 * names into the users' namespace. 7060 */ 7061 7062 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 1 3 4 7063 /* 7064 * CDDL HEADER START 7065 * 7066 * The contents of this file are subject to the terms of the 7067 * Common Development and Distribution License, Version 1.0 only 7068 * (the "License"). You may not use this file except in compliance 7069 * with the License. 7070 * 7071 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7072 * or http://www.opensolaris.org/os/licensing. 7073 * See the License for the specific language governing permissions 7074 * and limitations under the License. 7075 * 7076 * When distributing Covered Code, include this CDDL HEADER in each 7077 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7078 * If applicable, add the following below this CDDL HEADER, with the 7079 * fields enclosed by brackets "[]" replaced with your own identifying 7080 * information: Portions Copyright [yyyy] [name of copyright owner] 7081 * 7082 * CDDL HEADER END 7083 */ 7084 /* Copyright (c) 1988 AT&T */ 7085 /* All Rights Reserved */ 7086 7087 7088 /* 7089 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7090 * Use is subject to license terms. 7091 */ 7092 7093 /* 7094 * An application should not include this header directly. Instead it 7095 * should be included only through the inclusion of other Sun headers. 7096 * 7097 * The contents of this header is limited to identifiers specified in the 7098 * C Standard. Any new identifiers specified in future amendments to the 7099 * C Standard must be placed in this header. If these new identifiers 7100 * are required to also be in the C++ Standard "std" namespace, then for 7101 * anything other than macro definitions, corresponding "using" directives 7102 * must also be added to <stdarg.h>. 7103 */ 7104 7105 7106 7107 7108 #pragma ident "%Z%%M% %I% %E% SMI" 7109 7110 /* 7111 * This header defines the ISO C 1989 and ISO C++ 1998 variable 7112 * argument definitions. 7113 * 7114 * The varargs definitions within this header are defined in terms of 7115 * implementation definitions. These implementation definitions reside 7116 * in <sys/va_impl.h>. This organization enables protected use of 7117 * the implementation by other standard headers without introducing 7118 * names into the users' namespace. 7119 */ 7120 7121 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 1 3 4 7122 /* 7123 * CDDL HEADER START 7124 * 7125 * The contents of this file are subject to the terms of the 7126 * Common Development and Distribution License, Version 1.0 only 7127 * (the "License"). You may not use this file except in compliance 7128 * with the License. 7129 * 7130 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7131 * or http://www.opensolaris.org/os/licensing. 7132 * See the License for the specific language governing permissions 7133 * and limitations under the License. 7134 * 7135 * When distributing Covered Code, include this CDDL HEADER in each 7136 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7137 * If applicable, add the following below this CDDL HEADER, with the 7138 * fields enclosed by brackets "[]" replaced with your own identifying 7139 * information: Portions Copyright [yyyy] [name of copyright owner] 7140 * 7141 * CDDL HEADER END 7142 */ 7143 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7144 /* All Rights Reserved */ 7145 7146 7147 /* 7148 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7149 * 7150 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7151 * Use is subject to license terms. 7152 */ 7153 7154 7155 7156 7157 /* 7158 * An application should not include this header directly. Instead it 7159 * should be included only through the inclusion of other Sun headers, 7160 * specifically <stdarg.h> and <varargs.h>. 7161 * 7162 * This header serves two purposes. 7163 * 7164 * First, it provides a common set of definitions that implementations 7165 * of the various standards for variable argument lists may use. These 7166 * various standards are implemented in <varargs.h>, <stdarg.h>, 7167 * <iso/stdarg_iso.h>, <iso/stdarg_c99.h>, and <sys/varargs.h>. 7168 * 7169 * Second, it provides varying implementations of the common definitions, 7170 * depending upon the compiler. 7171 */ 7172 7173 /* 7174 * The common definitions exported by this header or compilers using 7175 * this header are: 7176 * 7177 * the macro __va_start(list, name) starting the list iteration 7178 * the macro __va_arg(list, type) getting the current arg and iterating 7179 * the macro __va_copy(to, from) to bookmark the list iteration 7180 * the macro __va_end(list) to end the iteration 7181 * 7182 * In addition, the following are exported via inclusion of <sys/va_list.h>: 7183 * 7184 * the identifier __builtin_va_alist for the variable list pseudo parameter 7185 * the type __va_alist_type for the variable list pseudo parameter 7186 * the type __va_list defining the type of the variable list iterator 7187 */ 7188 7189 /* 7190 * This header uses feature macros (e.g. __BUILTIN_VA_ARG_INCR and 7191 * __BUILTIN_VA_STRUCT), compiler macros (e.g. __GNUC__), and processor 7192 * macros (e.g. __sparc) to determine the protocol appropriate to the 7193 * current compilation. It is intended that the compilation system 7194 * define the feature, processor, and compiler macros, not the user of 7195 * the system. 7196 */ 7197 7198 /* 7199 * Many compilation systems depend upon the use of special functions 7200 * built into the the compilation system to handle variable argument 7201 * lists. These built-in symbols may include one or more of the 7202 * following: 7203 * 7204 * __builtin_va_alist 7205 * __builtin_va_start 7206 * __builtin_va_arg_incr 7207 * __builtin_stdarg_start 7208 * __builtin_va_end 7209 * __builtin_va_arg 7210 * __builtin_va_copy 7211 */ 7212 7213 /* 7214 * The following are defined in <sys/va_list.h>: 7215 * 7216 * __va_alist_type 7217 * __va_void() 7218 * __va_ptr_base 7219 * ISA definitions via inclusion of <sys/isa_defs.h> 7220 * 7221 * Inclusion of this header also makes visible the symbols in <sys/va_list.h>. 7222 * This header is included in <varargs.h>, <sys/varargs.h> and in <stdarg.h> 7223 * via inclusion of <iso/stdarg_iso.h>. 7224 */ 7225 7226 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1 3 4 7227 /* 7228 * CDDL HEADER START 7229 * 7230 * The contents of this file are subject to the terms of the 7231 * Common Development and Distribution License, Version 1.0 only 7232 * (the "License"). You may not use this file except in compliance 7233 * with the License. 7234 * 7235 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7236 * or http://www.opensolaris.org/os/licensing. 7237 * See the License for the specific language governing permissions 7238 * and limitations under the License. 7239 * 7240 * When distributing Covered Code, include this CDDL HEADER in each 7241 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7242 * If applicable, add the following below this CDDL HEADER, with the 7243 * fields enclosed by brackets "[]" replaced with your own identifying 7244 * information: Portions Copyright [yyyy] [name of copyright owner] 7245 * 7246 * CDDL HEADER END 7247 */ 7248 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7249 /* All Rights Reserved */ 7250 7251 7252 /* 7253 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7254 * 7255 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7256 * Use is subject to license terms. 7257 */ 7258 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 2 3 4 7259 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 2 3 4 7260 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 3 4 7261 typedef __va_list va_list; 7262 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4 7263 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 1 3 4 7264 /* 7265 * CDDL HEADER START 7266 * 7267 * The contents of this file are subject to the terms of the 7268 * Common Development and Distribution License, Version 1.0 only 7269 * (the "License"). You may not use this file except in compliance 7270 * with the License. 7271 * 7272 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7273 * or http://www.opensolaris.org/os/licensing. 7274 * See the License for the specific language governing permissions 7275 * and limitations under the License. 7276 * 7277 * When distributing Covered Code, include this CDDL HEADER in each 7278 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7279 * If applicable, add the following below this CDDL HEADER, with the 7280 * fields enclosed by brackets "[]" replaced with your own identifying 7281 * information: Portions Copyright [yyyy] [name of copyright owner] 7282 * 7283 * CDDL HEADER END 7284 */ 7285 /* Copyright (c) 1988 AT&T */ 7286 /* All Rights Reserved */ 7287 7288 7289 /* 7290 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7291 * Use is subject to license terms. 7292 */ 7293 7294 7295 7296 7297 #pragma ident "%Z%%M% %I% %E% SMI" 7298 7299 /* 7300 * An application should not include this header directly. Instead it 7301 * should be included only through the inclusion of other Sun headers. 7302 * 7303 * This header defines the va_copy variable argument macro, which is 7304 * new in ISO C 1999, and thus not present in ISO C 1989 and ISO C++ 7305 * 1998. Because this macro is a long-standing Solaris extension, it 7306 * is also permitted in other contexts. 7307 * 7308 * The varargs definitions within this header are defined in terms of 7309 * implementation definitions. These implementation definitions reside 7310 * in <sys/va_list.h>. This organization enables protected use of 7311 * the implementation by other standard headers without introducing 7312 * names into the users' namespace. 7313 */ 7314 7315 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4 7316 /* 7317 * CDDL HEADER START 7318 * 7319 * The contents of this file are subject to the terms of the 7320 * Common Development and Distribution License (the "License"). 7321 * You may not use this file except in compliance with the License. 7322 * 7323 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7324 * or http://www.opensolaris.org/os/licensing. 7325 * See the License for the specific language governing permissions 7326 * and limitations under the License. 7327 * 7328 * When distributing Covered Code, include this CDDL HEADER in each 7329 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7330 * If applicable, add the following below this CDDL HEADER, with the 7331 * fields enclosed by brackets "[]" replaced with your own identifying 7332 * information: Portions Copyright [yyyy] [name of copyright owner] 7333 * 7334 * CDDL HEADER END 7335 */ 7336 7337 /* 7338 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 7339 * Copyright 2016 Joyent, Inc. 7340 * 7341 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 7342 * Use is subject to license terms. 7343 */ 7344 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 2 3 4 7345 7346 7347 7348 7349 7350 /* 7351 * va_copy was initially a Solaris extension to provide a portable 7352 * way to perform a variable argument list ``bookmarking'' function. 7353 * It is now specified in the ISO/IEC 9899:1999 standard. 7354 */ 7355 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4 7356 7357 /* 7358 * Allow global visibility for symbols defined in 7359 * C++ "std" namespace in <iso/stdarg_iso.h>. 7360 */ 7361 # 68 "/usr/include/openssl/bio.h" 2 3 4 7362 7363 # 1 "/usr/include/openssl/crypto.h" 1 3 4 7364 /* crypto/crypto.h */ 7365 /* ==================================================================== 7366 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 7367 * 7368 * Redistribution and use in source and binary forms, with or without 7369 * modification, are permitted provided that the following conditions 7370 * are met: 7371 * 7372 * 1. Redistributions of source code must retain the above copyright 7373 * notice, this list of conditions and the following disclaimer. 7374 * 7375 * 2. Redistributions in binary form must reproduce the above copyright 7376 * notice, this list of conditions and the following disclaimer in 7377 * the documentation and/or other materials provided with the 7378 * distribution. 7379 * 7380 * 3. All advertising materials mentioning features or use of this 7381 * software must display the following acknowledgment: 7382 * "This product includes software developed by the OpenSSL Project 7383 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 7384 * 7385 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 7386 * endorse or promote products derived from this software without 7387 * prior written permission. For written permission, please contact 7388 * openssl-core@openssl.org. 7389 * 7390 * 5. Products derived from this software may not be called "OpenSSL" 7391 * nor may "OpenSSL" appear in their names without prior written 7392 * permission of the OpenSSL Project. 7393 * 7394 * 6. Redistributions of any form whatsoever must retain the following 7395 * acknowledgment: 7396 * "This product includes software developed by the OpenSSL Project 7397 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 7398 * 7399 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 7400 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7401 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 7402 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 7403 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 7404 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 7405 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 7406 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7407 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 7408 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 7409 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 7410 * OF THE POSSIBILITY OF SUCH DAMAGE. 7411 * ==================================================================== 7412 * 7413 * This product includes cryptographic software written by Eric Young 7414 * (eay@cryptsoft.com). This product includes software written by Tim 7415 * Hudson (tjh@cryptsoft.com). 7416 * 7417 */ 7418 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 7419 * All rights reserved. 7420 * 7421 * This package is an SSL implementation written 7422 * by Eric Young (eay@cryptsoft.com). 7423 * The implementation was written so as to conform with Netscapes SSL. 7424 * 7425 * This library is free for commercial and non-commercial use as long as 7426 * the following conditions are aheared to. The following conditions 7427 * apply to all code found in this distribution, be it the RC4, RSA, 7428 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 7429 * included with this distribution is covered by the same copyright terms 7430 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 7431 * 7432 * Copyright remains Eric Young's, and as such any Copyright notices in 7433 * the code are not to be removed. 7434 * If this package is used in a product, Eric Young should be given attribution 7435 * as the author of the parts of the library used. 7436 * This can be in the form of a textual message at program startup or 7437 * in documentation (online or textual) provided with the package. 7438 * 7439 * Redistribution and use in source and binary forms, with or without 7440 * modification, are permitted provided that the following conditions 7441 * are met: 7442 * 1. Redistributions of source code must retain the copyright 7443 * notice, this list of conditions and the following disclaimer. 7444 * 2. Redistributions in binary form must reproduce the above copyright 7445 * notice, this list of conditions and the following disclaimer in the 7446 * documentation and/or other materials provided with the distribution. 7447 * 3. All advertising materials mentioning features or use of this software 7448 * must display the following acknowledgement: 7449 * "This product includes cryptographic software written by 7450 * Eric Young (eay@cryptsoft.com)" 7451 * The word 'cryptographic' can be left out if the rouines from the library 7452 * being used are not cryptographic related :-). 7453 * 4. If you include any Windows specific code (or a derivative thereof) from 7454 * the apps directory (application code) you must include an acknowledgement: 7455 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 7456 * 7457 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 7458 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7459 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 7460 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 7461 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 7462 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 7463 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7464 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 7465 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 7466 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 7467 * SUCH DAMAGE. 7468 * 7469 * The licence and distribution terms for any publically available version or 7470 * derivative of this code cannot be changed. i.e. this code cannot simply be 7471 * copied and put under another distribution licence 7472 * [including the GNU Public Licence.] 7473 */ 7474 /* ==================================================================== 7475 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 7476 * ECDH support in OpenSSL originally developed by 7477 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 7478 */ 7479 7480 7481 7482 7483 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1 3 4 7484 /* 7485 * CDDL HEADER START 7486 * 7487 * The contents of this file are subject to the terms of the 7488 * Common Development and Distribution License (the "License"). 7489 * You may not use this file except in compliance with the License. 7490 * 7491 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7492 * or http://www.opensolaris.org/os/licensing. 7493 * See the License for the specific language governing permissions 7494 * and limitations under the License. 7495 * 7496 * When distributing Covered Code, include this CDDL HEADER in each 7497 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7498 * If applicable, add the following below this CDDL HEADER, with the 7499 * fields enclosed by brackets "[]" replaced with your own identifying 7500 * information: Portions Copyright [yyyy] [name of copyright owner] 7501 * 7502 * CDDL HEADER END 7503 */ 7504 7505 /* 7506 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7507 * Copyright (c) 2013 Gary Mills 7508 * 7509 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7510 */ 7511 7512 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 7513 7514 /* Copyright (c) 1988 AT&T */ 7515 /* All Rights Reserved */ 7516 # 121 "/usr/include/openssl/crypto.h" 2 3 4 7517 7518 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 7519 /* e_os2.h */ 7520 /* ==================================================================== 7521 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 7522 * 7523 * Redistribution and use in source and binary forms, with or without 7524 * modification, are permitted provided that the following conditions 7525 * are met: 7526 * 7527 * 1. Redistributions of source code must retain the above copyright 7528 * notice, this list of conditions and the following disclaimer. 7529 * 7530 * 2. Redistributions in binary form must reproduce the above copyright 7531 * notice, this list of conditions and the following disclaimer in 7532 * the documentation and/or other materials provided with the 7533 * distribution. 7534 * 7535 * 3. All advertising materials mentioning features or use of this 7536 * software must display the following acknowledgment: 7537 * "This product includes software developed by the OpenSSL Project 7538 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 7539 * 7540 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 7541 * endorse or promote products derived from this software without 7542 * prior written permission. For written permission, please contact 7543 * openssl-core@openssl.org. 7544 * 7545 * 5. Products derived from this software may not be called "OpenSSL" 7546 * nor may "OpenSSL" appear in their names without prior written 7547 * permission of the OpenSSL Project. 7548 * 7549 * 6. Redistributions of any form whatsoever must retain the following 7550 * acknowledgment: 7551 * "This product includes software developed by the OpenSSL Project 7552 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 7553 * 7554 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 7555 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7556 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 7557 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 7558 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 7559 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 7560 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 7561 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7562 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 7563 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 7564 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 7565 * OF THE POSSIBILITY OF SUCH DAMAGE. 7566 * ==================================================================== 7567 * 7568 * This product includes cryptographic software written by Eric Young 7569 * (eay@cryptsoft.com). This product includes software written by Tim 7570 * Hudson (tjh@cryptsoft.com). 7571 * 7572 */ 7573 7574 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 7575 /* opensslconf.h */ 7576 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 7577 7578 7579 7580 7581 /* OpenSSL was configured with the following options: */ 7582 # 108 "/usr/include/openssl/opensslconf.h" 3 4 7583 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 7584 asks for it. This is a transient feature that is provided for those 7585 who haven't had the time to do the appropriate changes in their 7586 applications. */ 7587 # 204 "/usr/include/openssl/opensslconf.h" 3 4 7588 /* crypto/opensslconf.h.in */ 7589 7590 /* Generate 80386 code? */ 7591 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 7592 # 123 "/usr/include/openssl/crypto.h" 2 3 4 7593 7594 7595 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 7596 /* 7597 * CDDL HEADER START 7598 * 7599 * The contents of this file are subject to the terms of the 7600 * Common Development and Distribution License (the "License"). 7601 * You may not use this file except in compliance with the License. 7602 * 7603 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7604 * or http://www.opensolaris.org/os/licensing. 7605 * See the License for the specific language governing permissions 7606 * and limitations under the License. 7607 * 7608 * When distributing Covered Code, include this CDDL HEADER in each 7609 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7610 * If applicable, add the following below this CDDL HEADER, with the 7611 * fields enclosed by brackets "[]" replaced with your own identifying 7612 * information: Portions Copyright [yyyy] [name of copyright owner] 7613 * 7614 * CDDL HEADER END 7615 */ 7616 7617 /* 7618 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7619 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7620 */ 7621 7622 /* Copyright (c) 1988 AT&T */ 7623 /* All Rights Reserved */ 7624 7625 /* 7626 * User-visible pieces of the ANSI C standard I/O package. 7627 */ 7628 # 126 "/usr/include/openssl/crypto.h" 2 3 4 7629 7630 7631 # 1 "/usr/include/openssl/stack.h" 1 3 4 7632 /* crypto/stack/stack.h */ 7633 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 7634 * All rights reserved. 7635 * 7636 * This package is an SSL implementation written 7637 * by Eric Young (eay@cryptsoft.com). 7638 * The implementation was written so as to conform with Netscapes SSL. 7639 * 7640 * This library is free for commercial and non-commercial use as long as 7641 * the following conditions are aheared to. The following conditions 7642 * apply to all code found in this distribution, be it the RC4, RSA, 7643 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 7644 * included with this distribution is covered by the same copyright terms 7645 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 7646 * 7647 * Copyright remains Eric Young's, and as such any Copyright notices in 7648 * the code are not to be removed. 7649 * If this package is used in a product, Eric Young should be given attribution 7650 * as the author of the parts of the library used. 7651 * This can be in the form of a textual message at program startup or 7652 * in documentation (online or textual) provided with the package. 7653 * 7654 * Redistribution and use in source and binary forms, with or without 7655 * modification, are permitted provided that the following conditions 7656 * are met: 7657 * 1. Redistributions of source code must retain the copyright 7658 * notice, this list of conditions and the following disclaimer. 7659 * 2. Redistributions in binary form must reproduce the above copyright 7660 * notice, this list of conditions and the following disclaimer in the 7661 * documentation and/or other materials provided with the distribution. 7662 * 3. All advertising materials mentioning features or use of this software 7663 * must display the following acknowledgement: 7664 * "This product includes cryptographic software written by 7665 * Eric Young (eay@cryptsoft.com)" 7666 * The word 'cryptographic' can be left out if the rouines from the library 7667 * being used are not cryptographic related :-). 7668 * 4. If you include any Windows specific code (or a derivative thereof) from 7669 * the apps directory (application code) you must include an acknowledgement: 7670 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 7671 * 7672 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 7673 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7674 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 7675 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 7676 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 7677 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 7678 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7679 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 7680 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 7681 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 7682 * SUCH DAMAGE. 7683 * 7684 * The licence and distribution terms for any publically available version or 7685 * derivative of this code cannot be changed. i.e. this code cannot simply be 7686 * copied and put under another distribution licence 7687 * [including the GNU Public Licence.] 7688 */ 7689 # 66 "/usr/include/openssl/stack.h" 3 4 7690 typedef struct stack_st { 7691 int num; 7692 char **data; 7693 int sorted; 7694 int num_alloc; 7695 int (*comp) (const void *, const void *); 7696 } _STACK; /* Use STACK_OF(...) instead */ 7697 7698 7699 7700 7701 int sk_num(const _STACK *); 7702 void *sk_value(const _STACK *, int); 7703 7704 void *sk_set(_STACK *, int, void *); 7705 7706 _STACK *sk_new(int (*cmp) (const void *, const void *)); 7707 _STACK *sk_new_null(void); 7708 void sk_free(_STACK *); 7709 void sk_pop_free(_STACK *st, void (*func) (void *)); 7710 _STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); 7711 int sk_insert(_STACK *sk, void *data, int where); 7712 void *sk_delete(_STACK *st, int loc); 7713 void *sk_delete_ptr(_STACK *st, void *p); 7714 int sk_find(_STACK *st, void *data); 7715 int sk_find_ex(_STACK *st, void *data); 7716 int sk_push(_STACK *st, void *data); 7717 int sk_unshift(_STACK *st, void *data); 7718 void *sk_shift(_STACK *st); 7719 void *sk_pop(_STACK *st); 7720 void sk_zero(_STACK *st); 7721 int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *))) 7722 (const void *, const void *); 7723 _STACK *sk_dup(_STACK *st); 7724 void sk_sort(_STACK *st); 7725 int sk_is_sorted(const _STACK *st); 7726 # 129 "/usr/include/openssl/crypto.h" 2 3 4 7727 # 1 "/usr/include/openssl/safestack.h" 1 3 4 7728 /* ==================================================================== 7729 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 7730 * 7731 * Redistribution and use in source and binary forms, with or without 7732 * modification, are permitted provided that the following conditions 7733 * are met: 7734 * 7735 * 1. Redistributions of source code must retain the above copyright 7736 * notice, this list of conditions and the following disclaimer. 7737 * 7738 * 2. Redistributions in binary form must reproduce the above copyright 7739 * notice, this list of conditions and the following disclaimer in 7740 * the documentation and/or other materials provided with the 7741 * distribution. 7742 * 7743 * 3. All advertising materials mentioning features or use of this 7744 * software must display the following acknowledgment: 7745 * "This product includes software developed by the OpenSSL Project 7746 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 7747 * 7748 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 7749 * endorse or promote products derived from this software without 7750 * prior written permission. For written permission, please contact 7751 * openssl-core@openssl.org. 7752 * 7753 * 5. Products derived from this software may not be called "OpenSSL" 7754 * nor may "OpenSSL" appear in their names without prior written 7755 * permission of the OpenSSL Project. 7756 * 7757 * 6. Redistributions of any form whatsoever must retain the following 7758 * acknowledgment: 7759 * "This product includes software developed by the OpenSSL Project 7760 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 7761 * 7762 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 7763 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7764 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 7765 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 7766 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 7767 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 7768 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 7769 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7770 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 7771 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 7772 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 7773 * OF THE POSSIBILITY OF SUCH DAMAGE. 7774 * ==================================================================== 7775 * 7776 * This product includes cryptographic software written by Eric Young 7777 * (eay@cryptsoft.com). This product includes software written by Tim 7778 * Hudson (tjh@cryptsoft.com). 7779 * 7780 */ 7781 7782 7783 7784 7785 # 1 "/usr/include/openssl/stack.h" 1 3 4 7786 /* crypto/stack/stack.h */ 7787 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 7788 * All rights reserved. 7789 * 7790 * This package is an SSL implementation written 7791 * by Eric Young (eay@cryptsoft.com). 7792 * The implementation was written so as to conform with Netscapes SSL. 7793 * 7794 * This library is free for commercial and non-commercial use as long as 7795 * the following conditions are aheared to. The following conditions 7796 * apply to all code found in this distribution, be it the RC4, RSA, 7797 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 7798 * included with this distribution is covered by the same copyright terms 7799 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 7800 * 7801 * Copyright remains Eric Young's, and as such any Copyright notices in 7802 * the code are not to be removed. 7803 * If this package is used in a product, Eric Young should be given attribution 7804 * as the author of the parts of the library used. 7805 * This can be in the form of a textual message at program startup or 7806 * in documentation (online or textual) provided with the package. 7807 * 7808 * Redistribution and use in source and binary forms, with or without 7809 * modification, are permitted provided that the following conditions 7810 * are met: 7811 * 1. Redistributions of source code must retain the copyright 7812 * notice, this list of conditions and the following disclaimer. 7813 * 2. Redistributions in binary form must reproduce the above copyright 7814 * notice, this list of conditions and the following disclaimer in the 7815 * documentation and/or other materials provided with the distribution. 7816 * 3. All advertising materials mentioning features or use of this software 7817 * must display the following acknowledgement: 7818 * "This product includes cryptographic software written by 7819 * Eric Young (eay@cryptsoft.com)" 7820 * The word 'cryptographic' can be left out if the rouines from the library 7821 * being used are not cryptographic related :-). 7822 * 4. If you include any Windows specific code (or a derivative thereof) from 7823 * the apps directory (application code) you must include an acknowledgement: 7824 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 7825 * 7826 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 7827 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 7828 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 7829 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 7830 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 7831 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 7832 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 7833 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 7834 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 7835 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 7836 * SUCH DAMAGE. 7837 * 7838 * The licence and distribution terms for any publically available version or 7839 * derivative of this code cannot be changed. i.e. this code cannot simply be 7840 * copied and put under another distribution licence 7841 * [including the GNU Public Licence.] 7842 */ 7843 # 59 "/usr/include/openssl/safestack.h" 2 3 4 7844 # 69 "/usr/include/openssl/safestack.h" 3 4 7845 /* 7846 * In C++ we get problems because an explicit cast is needed from (void *) we 7847 * use CHECKED_STACK_OF to ensure the correct type is passed in the macros 7848 * below. 7849 */ 7850 # 102 "/usr/include/openssl/safestack.h" 3 4 7851 /* nada (obsolete in new safestack approach)*/ 7852 7853 7854 /*- 7855 * Strings are special: normally an lhash entry will point to a single 7856 * (somewhat) mutable object. In the case of strings: 7857 * 7858 * a) Instead of a single char, there is an array of chars, NUL-terminated. 7859 * b) The string may have be immutable. 7860 * 7861 * So, they need their own declarations. Especially important for 7862 * type-checking tools, such as Deputy. 7863 * 7864 * In practice, however, it appears to be hard to have a const 7865 * string. For now, I'm settling for dealing with the fact it is a 7866 * string at all. 7867 */ 7868 typedef char *OPENSSL_STRING; 7869 7870 typedef const char *OPENSSL_CSTRING; 7871 7872 /* 7873 * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but 7874 * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned 7875 * above, instead of a single char each entry is a NUL-terminated array of 7876 * chars. So, we have to implement STRING specially for STACK_OF. This is 7877 * dealt with in the autogenerated macros below. 7878 */ 7879 7880 struct stack_st_OPENSSL_STRING { _STACK stack; }; 7881 7882 /* 7883 * Similarly, we sometimes use a block of characters, NOT nul-terminated. 7884 * These should also be distinguished from "normal" stacks. 7885 */ 7886 typedef void *OPENSSL_BLOCK; 7887 struct stack_st_OPENSSL_BLOCK { _STACK stack; }; 7888 7889 /* 7890 * SKM_sk_... stack macros are internal to safestack.h: never use them 7891 * directly, use sk_<type>_... instead 7892 */ 7893 # 211 "/usr/include/openssl/safestack.h" 3 4 7894 /* 7895 * This block of defines is updated by util/mkstack.pl, please do not touch! 7896 */ 7897 # 130 "/usr/include/openssl/crypto.h" 2 3 4 7898 # 1 "/usr/include/openssl/opensslv.h" 1 3 4 7899 7900 7901 7902 7903 7904 7905 7906 /*- 7907 * Numeric release version identifier: 7908 * MNNFFPPS: major minor fix patch status 7909 * The status nibble has one of the values 0 for development, 1 to e for betas 7910 * 1 to 14, and f for release. The patch level is exactly that. 7911 * For example: 7912 * 0.9.3-dev 0x00903000 7913 * 0.9.3-beta1 0x00903001 7914 * 0.9.3-beta2-dev 0x00903002 7915 * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) 7916 * 0.9.3 0x0090300f 7917 * 0.9.3a 0x0090301f 7918 * 0.9.4 0x0090400f 7919 * 1.2.3z 0x102031af 7920 * 7921 * For continuity reasons (because 0.9.5 is already out, and is coded 7922 * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level 7923 * part is slightly different, by setting the highest bit. This means 7924 * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start 7925 * with 0x0090600S... 7926 * 7927 * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) 7928 * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for 7929 * major minor fix final patch/beta) 7930 */ 7931 # 41 "/usr/include/openssl/opensslv.h" 3 4 7932 /*- 7933 * The macros below are to be used for shared library (.so, .dll, ...) 7934 * versioning. That kind of versioning works a bit differently between 7935 * operating systems. The most usual scheme is to set a major and a minor 7936 * number, and have the runtime loader check that the major number is equal 7937 * to what it was at application link time, while the minor number has to 7938 * be greater or equal to what it was at application link time. With this 7939 * scheme, the version number is usually part of the file name, like this: 7940 * 7941 * libcrypto.so.0.9 7942 * 7943 * Some unixen also make a softlink with the major verson number only: 7944 * 7945 * libcrypto.so.0 7946 * 7947 * On Tru64 and IRIX 6.x it works a little bit differently. There, the 7948 * shared library version is stored in the file, and is actually a series 7949 * of versions, separated by colons. The rightmost version present in the 7950 * library when linking an application is stored in the application to be 7951 * matched at run time. When the application is run, a check is done to 7952 * see if the library version stored in the application matches any of the 7953 * versions in the version string of the library itself. 7954 * This version string can be constructed in any way, depending on what 7955 * kind of matching is desired. However, to implement the same scheme as 7956 * the one used in the other unixen, all compatible versions, from lowest 7957 * to highest, should be part of the string. Consecutive builds would 7958 * give the following versions strings: 7959 * 7960 * 3.0 7961 * 3.0:3.1 7962 * 3.0:3.1:3.2 7963 * 4.0 7964 * 4.0:4.1 7965 * 7966 * Notice how version 4 is completely incompatible with version, and 7967 * therefore give the breach you can see. 7968 * 7969 * There may be other schemes as well that I haven't yet discovered. 7970 * 7971 * So, here's the way it works here: first of all, the library version 7972 * number doesn't need at all to match the overall OpenSSL version. 7973 * However, it's nice and more understandable if it actually does. 7974 * The current library version is stored in the macro SHLIB_VERSION_NUMBER, 7975 * which is just a piece of text in the format "M.m.e" (Major, minor, edit). 7976 * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, 7977 * we need to keep a history of version numbers, which is done in the 7978 * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and 7979 * should only keep the versions that are binary compatible with the current. 7980 */ 7981 # 131 "/usr/include/openssl/crypto.h" 2 3 4 7982 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 7983 /* ==================================================================== 7984 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 7985 * 7986 * Redistribution and use in source and binary forms, with or without 7987 * modification, are permitted provided that the following conditions 7988 * are met: 7989 * 7990 * 1. Redistributions of source code must retain the above copyright 7991 * notice, this list of conditions and the following disclaimer. 7992 * 7993 * 2. Redistributions in binary form must reproduce the above copyright 7994 * notice, this list of conditions and the following disclaimer in 7995 * the documentation and/or other materials provided with the 7996 * distribution. 7997 * 7998 * 3. All advertising materials mentioning features or use of this 7999 * software must display the following acknowledgment: 8000 * "This product includes software developed by the OpenSSL Project 8001 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8002 * 8003 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8004 * endorse or promote products derived from this software without 8005 * prior written permission. For written permission, please contact 8006 * openssl-core@openssl.org. 8007 * 8008 * 5. Products derived from this software may not be called "OpenSSL" 8009 * nor may "OpenSSL" appear in their names without prior written 8010 * permission of the OpenSSL Project. 8011 * 8012 * 6. Redistributions of any form whatsoever must retain the following 8013 * acknowledgment: 8014 * "This product includes software developed by the OpenSSL Project 8015 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8016 * 8017 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8018 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8019 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8020 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8021 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8022 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8023 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8024 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8025 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8026 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8027 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8028 * OF THE POSSIBILITY OF SUCH DAMAGE. 8029 * ==================================================================== 8030 * 8031 * This product includes cryptographic software written by Eric Young 8032 * (eay@cryptsoft.com). This product includes software written by Tim 8033 * Hudson (tjh@cryptsoft.com). 8034 * 8035 */ 8036 # 62 "/usr/include/openssl/ossl_typ.h" 3 4 8037 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 8038 /* e_os2.h */ 8039 /* ==================================================================== 8040 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 8041 * 8042 * Redistribution and use in source and binary forms, with or without 8043 * modification, are permitted provided that the following conditions 8044 * are met: 8045 * 8046 * 1. Redistributions of source code must retain the above copyright 8047 * notice, this list of conditions and the following disclaimer. 8048 * 8049 * 2. Redistributions in binary form must reproduce the above copyright 8050 * notice, this list of conditions and the following disclaimer in 8051 * the documentation and/or other materials provided with the 8052 * distribution. 8053 * 8054 * 3. All advertising materials mentioning features or use of this 8055 * software must display the following acknowledgment: 8056 * "This product includes software developed by the OpenSSL Project 8057 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8058 * 8059 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8060 * endorse or promote products derived from this software without 8061 * prior written permission. For written permission, please contact 8062 * openssl-core@openssl.org. 8063 * 8064 * 5. Products derived from this software may not be called "OpenSSL" 8065 * nor may "OpenSSL" appear in their names without prior written 8066 * permission of the OpenSSL Project. 8067 * 8068 * 6. Redistributions of any form whatsoever must retain the following 8069 * acknowledgment: 8070 * "This product includes software developed by the OpenSSL Project 8071 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8072 * 8073 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8074 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8075 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8076 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8077 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8078 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8079 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8080 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8081 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8082 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8083 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8084 * OF THE POSSIBILITY OF SUCH DAMAGE. 8085 * ==================================================================== 8086 * 8087 * This product includes cryptographic software written by Eric Young 8088 * (eay@cryptsoft.com). This product includes software written by Tim 8089 * Hudson (tjh@cryptsoft.com). 8090 * 8091 */ 8092 8093 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 8094 /* opensslconf.h */ 8095 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 8096 8097 8098 8099 8100 /* OpenSSL was configured with the following options: */ 8101 # 108 "/usr/include/openssl/opensslconf.h" 3 4 8102 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 8103 asks for it. This is a transient feature that is provided for those 8104 who haven't had the time to do the appropriate changes in their 8105 applications. */ 8106 # 204 "/usr/include/openssl/opensslconf.h" 3 4 8107 /* crypto/opensslconf.h.in */ 8108 8109 /* Generate 80386 code? */ 8110 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 8111 # 63 "/usr/include/openssl/ossl_typ.h" 2 3 4 8112 # 83 "/usr/include/openssl/ossl_typ.h" 3 4 8113 typedef struct asn1_string_st ASN1_INTEGER; 8114 typedef struct asn1_string_st ASN1_ENUMERATED; 8115 typedef struct asn1_string_st ASN1_BIT_STRING; 8116 typedef struct asn1_string_st ASN1_OCTET_STRING; 8117 typedef struct asn1_string_st ASN1_PRINTABLESTRING; 8118 typedef struct asn1_string_st ASN1_T61STRING; 8119 typedef struct asn1_string_st ASN1_IA5STRING; 8120 typedef struct asn1_string_st ASN1_GENERALSTRING; 8121 typedef struct asn1_string_st ASN1_UNIVERSALSTRING; 8122 typedef struct asn1_string_st ASN1_BMPSTRING; 8123 typedef struct asn1_string_st ASN1_UTCTIME; 8124 typedef struct asn1_string_st ASN1_TIME; 8125 typedef struct asn1_string_st ASN1_GENERALIZEDTIME; 8126 typedef struct asn1_string_st ASN1_VISIBLESTRING; 8127 typedef struct asn1_string_st ASN1_UTF8STRING; 8128 typedef struct asn1_string_st ASN1_STRING; 8129 typedef int ASN1_BOOLEAN; 8130 typedef int ASN1_NULL; 8131 8132 8133 typedef struct asn1_object_st ASN1_OBJECT; 8134 8135 typedef struct ASN1_ITEM_st ASN1_ITEM; 8136 typedef struct asn1_pctx_st ASN1_PCTX; 8137 # 120 "/usr/include/openssl/ossl_typ.h" 3 4 8138 typedef struct bignum_st BIGNUM; 8139 typedef struct bignum_ctx BN_CTX; 8140 typedef struct bn_blinding_st BN_BLINDING; 8141 typedef struct bn_mont_ctx_st BN_MONT_CTX; 8142 typedef struct bn_recp_ctx_st BN_RECP_CTX; 8143 typedef struct bn_gencb_st BN_GENCB; 8144 8145 typedef struct buf_mem_st BUF_MEM; 8146 8147 typedef struct evp_cipher_st EVP_CIPHER; 8148 typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; 8149 typedef struct env_md_st EVP_MD; 8150 typedef struct env_md_ctx_st EVP_MD_CTX; 8151 typedef struct evp_pkey_st EVP_PKEY; 8152 8153 typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; 8154 8155 typedef struct evp_pkey_method_st EVP_PKEY_METHOD; 8156 typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; 8157 8158 typedef struct dh_st DH; 8159 typedef struct dh_method DH_METHOD; 8160 8161 typedef struct dsa_st DSA; 8162 typedef struct dsa_method DSA_METHOD; 8163 8164 typedef struct rsa_st RSA; 8165 typedef struct rsa_meth_st RSA_METHOD; 8166 8167 typedef struct rand_meth_st RAND_METHOD; 8168 8169 typedef struct ecdh_method ECDH_METHOD; 8170 typedef struct ecdsa_method ECDSA_METHOD; 8171 8172 typedef struct x509_st X509; 8173 typedef struct X509_algor_st X509_ALGOR; 8174 typedef struct X509_crl_st X509_CRL; 8175 typedef struct x509_crl_method_st X509_CRL_METHOD; 8176 typedef struct x509_revoked_st X509_REVOKED; 8177 typedef struct X509_name_st X509_NAME; 8178 typedef struct X509_pubkey_st X509_PUBKEY; 8179 typedef struct x509_store_st X509_STORE; 8180 typedef struct x509_store_ctx_st X509_STORE_CTX; 8181 8182 typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 8183 8184 typedef struct v3_ext_ctx X509V3_CTX; 8185 typedef struct conf_st CONF; 8186 8187 typedef struct store_st STORE; 8188 typedef struct store_method_st STORE_METHOD; 8189 8190 typedef struct ui_st UI; 8191 typedef struct ui_method_st UI_METHOD; 8192 8193 typedef struct st_ERR_FNS ERR_FNS; 8194 8195 typedef struct engine_st ENGINE; 8196 typedef struct ssl_st SSL; 8197 typedef struct ssl_ctx_st SSL_CTX; 8198 8199 typedef struct comp_method_st COMP_METHOD; 8200 8201 typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; 8202 typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; 8203 typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; 8204 typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; 8205 8206 typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 8207 typedef struct DIST_POINT_st DIST_POINT; 8208 typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 8209 typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 8210 8211 /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ 8212 8213 8214 8215 typedef struct crypto_ex_data_st CRYPTO_EX_DATA; 8216 /* Callback types for crypto.h */ 8217 typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 8218 int idx, long argl, void *argp); 8219 typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 8220 int idx, long argl, void *argp); 8221 typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, 8222 void *from_d, int idx, long argl, void *argp); 8223 8224 typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; 8225 typedef struct ocsp_response_st OCSP_RESPONSE; 8226 typedef struct ocsp_responder_id_st OCSP_RESPID; 8227 # 132 "/usr/include/openssl/crypto.h" 2 3 4 8228 8229 8230 8231 8232 8233 /* 8234 * Resolve problems on some operating systems with symbol names that clash 8235 * one way or another 8236 */ 8237 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 8238 /* ==================================================================== 8239 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 8240 * 8241 * Redistribution and use in source and binary forms, with or without 8242 * modification, are permitted provided that the following conditions 8243 * are met: 8244 * 8245 * 1. Redistributions of source code must retain the above copyright 8246 * notice, this list of conditions and the following disclaimer. 8247 * 8248 * 2. Redistributions in binary form must reproduce the above copyright 8249 * notice, this list of conditions and the following disclaimer in 8250 * the documentation and/or other materials provided with the 8251 * distribution. 8252 * 8253 * 3. All advertising materials mentioning features or use of this 8254 * software must display the following acknowledgment: 8255 * "This product includes software developed by the OpenSSL Project 8256 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8257 * 8258 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8259 * endorse or promote products derived from this software without 8260 * prior written permission. For written permission, please contact 8261 * openssl-core@openssl.org. 8262 * 8263 * 5. Products derived from this software may not be called "OpenSSL" 8264 * nor may "OpenSSL" appear in their names without prior written 8265 * permission of the OpenSSL Project. 8266 * 8267 * 6. Redistributions of any form whatsoever must retain the following 8268 * acknowledgment: 8269 * "This product includes software developed by the OpenSSL Project 8270 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8271 * 8272 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8273 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8274 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8275 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8276 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8277 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8278 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8279 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8280 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8281 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8282 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8283 * OF THE POSSIBILITY OF SUCH DAMAGE. 8284 * ==================================================================== 8285 * 8286 * This product includes cryptographic software written by Eric Young 8287 * (eay@cryptsoft.com). This product includes software written by Tim 8288 * Hudson (tjh@cryptsoft.com). 8289 * 8290 */ 8291 8292 8293 8294 8295 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 8296 /* e_os2.h */ 8297 /* ==================================================================== 8298 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 8299 * 8300 * Redistribution and use in source and binary forms, with or without 8301 * modification, are permitted provided that the following conditions 8302 * are met: 8303 * 8304 * 1. Redistributions of source code must retain the above copyright 8305 * notice, this list of conditions and the following disclaimer. 8306 * 8307 * 2. Redistributions in binary form must reproduce the above copyright 8308 * notice, this list of conditions and the following disclaimer in 8309 * the documentation and/or other materials provided with the 8310 * distribution. 8311 * 8312 * 3. All advertising materials mentioning features or use of this 8313 * software must display the following acknowledgment: 8314 * "This product includes software developed by the OpenSSL Project 8315 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8316 * 8317 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8318 * endorse or promote products derived from this software without 8319 * prior written permission. For written permission, please contact 8320 * openssl-core@openssl.org. 8321 * 8322 * 5. Products derived from this software may not be called "OpenSSL" 8323 * nor may "OpenSSL" appear in their names without prior written 8324 * permission of the OpenSSL Project. 8325 * 8326 * 6. Redistributions of any form whatsoever must retain the following 8327 * acknowledgment: 8328 * "This product includes software developed by the OpenSSL Project 8329 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8330 * 8331 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8332 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8333 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8334 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8335 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8336 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8337 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8338 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8339 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8340 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8341 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8342 * OF THE POSSIBILITY OF SUCH DAMAGE. 8343 * ==================================================================== 8344 * 8345 * This product includes cryptographic software written by Eric Young 8346 * (eay@cryptsoft.com). This product includes software written by Tim 8347 * Hudson (tjh@cryptsoft.com). 8348 * 8349 */ 8350 8351 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 8352 /* opensslconf.h */ 8353 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 8354 8355 8356 8357 8358 /* OpenSSL was configured with the following options: */ 8359 # 108 "/usr/include/openssl/opensslconf.h" 3 4 8360 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 8361 asks for it. This is a transient feature that is provided for those 8362 who haven't had the time to do the appropriate changes in their 8363 applications. */ 8364 # 204 "/usr/include/openssl/opensslconf.h" 3 4 8365 /* crypto/opensslconf.h.in */ 8366 8367 /* Generate 80386 code? */ 8368 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 8369 # 59 "/usr/include/openssl/symhacks.h" 2 3 4 8370 8371 /* 8372 * Hacks to solve the problem with linkers incapable of handling very long 8373 * symbol names. In the case of VMS, the limit is 31 characters on VMS for 8374 * VAX. 8375 */ 8376 /* 8377 * Note that this affects util/libeay.num and util/ssleay.num... you may 8378 * change those manually, but that's not recommended, as those files are 8379 * controlled centrally and updated on Unix, and the central definition may 8380 * disagree with yours, which in turn may come with shareable library 8381 * incompatibilities. 8382 */ 8383 # 481 "/usr/include/openssl/symhacks.h" 3 4 8384 /* Case insensitive linking causes problems.... */ 8385 # 142 "/usr/include/openssl/crypto.h" 2 3 4 8386 8387 8388 8389 8390 8391 /* Backward compatibility to SSLeay */ 8392 /* 8393 * This is more to be used to check the correct DLL is being used in the MS 8394 * world. 8395 */ 8396 8397 8398 /* #define SSLEAY_OPTIONS 1 no longer supported */ 8399 8400 8401 8402 8403 8404 /* Already declared in ossl_typ.h */ 8405 # 174 "/usr/include/openssl/crypto.h" 3 4 8406 /* A generic structure to pass assorted data in a expandable way */ 8407 typedef struct openssl_item_st { 8408 int code; 8409 void *value; /* Not used for flag attributes */ 8410 size_t value_size; /* Max size of value for output, length for 8411 * input */ 8412 size_t *value_length; /* Returned length of value for output */ 8413 } OPENSSL_ITEM; 8414 8415 /* 8416 * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock 8417 * names in cryptlib.c 8418 */ 8419 # 256 "/usr/include/openssl/crypto.h" 3 4 8420 /* 8421 * Some applications as well as some parts of OpenSSL need to allocate and 8422 * deallocate locks in a dynamic fashion. The following typedef makes this 8423 * possible in a type-safe manner. 8424 */ 8425 /* struct CRYPTO_dynlock_value has to be defined by the application. */ 8426 typedef struct { 8427 int references; 8428 struct CRYPTO_dynlock_value *data; 8429 } CRYPTO_dynlock; 8430 8431 /* 8432 * The following can be used to detect memory leaks in the SSLeay library. It 8433 * used, it turns on malloc checking 8434 */ 8435 8436 8437 8438 8439 8440 8441 /* 8442 * The following are bit values to turn on or off options connected to the 8443 * malloc checking functionality 8444 */ 8445 8446 /* Adds time to the memory checking information */ 8447 8448 /* Adds thread number to the memory checking information */ 8449 8450 8451 8452 8453 /* predec of the BIO type */ 8454 typedef struct bio_st BIO_dummy; 8455 8456 struct crypto_ex_data_st { 8457 struct stack_st_void *sk; 8458 /* gcc is screwing up this data structure :-( */ 8459 int dummy; 8460 }; 8461 struct stack_st_void { _STACK stack; }; 8462 8463 /* 8464 * This stuff is basically class callback functions The current classes are 8465 * SSL_CTX, SSL, SSL_SESSION, and a few more 8466 */ 8467 8468 typedef struct crypto_ex_data_func_st { 8469 long argl; /* Arbitary long */ 8470 void *argp; /* Arbitary void * */ 8471 CRYPTO_EX_new *new_func; 8472 CRYPTO_EX_free *free_func; 8473 CRYPTO_EX_dup *dup_func; 8474 } CRYPTO_EX_DATA_FUNCS; 8475 8476 struct stack_st_CRYPTO_EX_DATA_FUNCS { _STACK stack; }; 8477 8478 /* 8479 * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA 8480 * entry. 8481 */ 8482 # 336 "/usr/include/openssl/crypto.h" 3 4 8483 /* 8484 * Dynamically assigned indexes start from this value (don't use directly, 8485 * use via CRYPTO_ex_data_new_class). 8486 */ 8487 8488 8489 /* 8490 * This is the default callbacks, but we can have others as well: this is 8491 * needed in Win32 where the application malloc and the library malloc may 8492 * not be the same. 8493 */ 8494 # 356 "/usr/include/openssl/crypto.h" 3 4 8495 /* 8496 * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG 8497 * is defined) 8498 */ 8499 # 369 "/usr/include/openssl/crypto.h" 3 4 8500 int CRYPTO_mem_ctrl(int mode); 8501 int CRYPTO_is_mem_check_on(void); 8502 8503 /* for applications */ 8504 8505 8506 8507 /* for library-internal use */ 8508 # 396 "/usr/include/openssl/crypto.h" 3 4 8509 const char *SSLeay_version(int type); 8510 unsigned long SSLeay(void); 8511 8512 int OPENSSL_issetugid(void); 8513 8514 /* An opaque type representing an implementation of "ex_data" support */ 8515 typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; 8516 /* Return an opaque pointer to the current "ex_data" implementation */ 8517 const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); 8518 /* Sets the "ex_data" implementation to be used (if it's not too late) */ 8519 int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); 8520 /* Get a new "ex_data" class, and return the corresponding "class_index" */ 8521 int CRYPTO_ex_data_new_class(void); 8522 /* Within a given class, get/register a new index */ 8523 int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, 8524 CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, 8525 CRYPTO_EX_free *free_func); 8526 /* 8527 * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a 8528 * given class (invokes whatever per-class callbacks are applicable) 8529 */ 8530 int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 8531 int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, 8532 CRYPTO_EX_DATA *from); 8533 void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 8534 /* 8535 * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular 8536 * index (relative to the class type involved) 8537 */ 8538 int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); 8539 void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); 8540 /* 8541 * This function cleans up all "ex_data" state. It mustn't be called under 8542 * potential race-conditions. 8543 */ 8544 void CRYPTO_cleanup_all_ex_data(void); 8545 8546 int CRYPTO_get_new_lockid(char *name); 8547 8548 int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */ 8549 void CRYPTO_lock(int mode, int type, const char *file, int line); 8550 void CRYPTO_set_locking_callback(void (*func) (int mode, int type, 8551 const char *file, int line)); 8552 void (*CRYPTO_get_locking_callback(void)) (int mode, int type, 8553 const char *file, int line); 8554 void CRYPTO_set_add_lock_callback(int (*func) 8555 (int *num, int mount, int type, 8556 const char *file, int line)); 8557 int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type, 8558 const char *file, int line); 8559 8560 /* Don't use this structure directly. */ 8561 typedef struct crypto_threadid_st { 8562 void *ptr; 8563 unsigned long val; 8564 } CRYPTO_THREADID; 8565 /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ 8566 void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); 8567 void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); 8568 int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *)); 8569 void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *); 8570 void CRYPTO_THREADID_current(CRYPTO_THREADID *id); 8571 int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); 8572 void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); 8573 unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); 8574 8575 void CRYPTO_set_id_callback(unsigned long (*func) (void)); 8576 unsigned long (*CRYPTO_get_id_callback(void)) (void); 8577 unsigned long CRYPTO_thread_id(void); 8578 8579 8580 const char *CRYPTO_get_lock_name(int type); 8581 int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, 8582 int line); 8583 8584 int CRYPTO_get_new_dynlockid(void); 8585 void CRYPTO_destroy_dynlockid(int i); 8586 struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); 8587 void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value 8588 *(*dyn_create_function) (const char 8589 *file, 8590 int line)); 8591 void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) 8592 (int mode, 8593 struct CRYPTO_dynlock_value *l, 8594 const char *file, int line)); 8595 void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) 8596 (struct CRYPTO_dynlock_value *l, 8597 const char *file, int line)); 8598 struct CRYPTO_dynlock_value 8599 *(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line); 8600 void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode, 8601 struct CRYPTO_dynlock_value 8602 *l, const char *file, 8603 int line); 8604 void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value 8605 *l, const char *file, 8606 int line); 8607 8608 /* 8609 * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call 8610 * the latter last if you need different functions 8611 */ 8612 int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), 8613 void (*f) (void *)); 8614 int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), 8615 void (*free_func) (void *)); 8616 int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), 8617 void *(*r) (void *, size_t, const char *, 8618 int), void (*f) (void *)); 8619 int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), 8620 void (*free_func) (void *)); 8621 int CRYPTO_set_mem_debug_functions(void (*m) 8622 (void *, int, const char *, int, int), 8623 void (*r) (void *, void *, int, 8624 const char *, int, int), 8625 void (*f) (void *, int), void (*so) (long), 8626 long (*go) (void)); 8627 void CRYPTO_get_mem_functions(void *(**m) (size_t), 8628 void *(**r) (void *, size_t), 8629 void (**f) (void *)); 8630 void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), 8631 void (**f) (void *)); 8632 void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), 8633 void *(**r) (void *, size_t, const char *, 8634 int), void (**f) (void *)); 8635 void CRYPTO_get_locked_mem_ex_functions(void 8636 *(**m) (size_t, const char *, int), 8637 void (**f) (void *)); 8638 void CRYPTO_get_mem_debug_functions(void (**m) 8639 (void *, int, const char *, int, int), 8640 void (**r) (void *, void *, int, 8641 const char *, int, int), 8642 void (**f) (void *, int), 8643 void (**so) (long), long (**go) (void)); 8644 8645 void *CRYPTO_malloc_locked(int num, const char *file, int line); 8646 void CRYPTO_free_locked(void *ptr); 8647 void *CRYPTO_malloc(int num, const char *file, int line); 8648 char *CRYPTO_strdup(const char *str, const char *file, int line); 8649 void CRYPTO_free(void *ptr); 8650 void *CRYPTO_realloc(void *addr, int num, const char *file, int line); 8651 void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file, 8652 int line); 8653 void *CRYPTO_remalloc(void *addr, int num, const char *file, int line); 8654 8655 void OPENSSL_cleanse(void *ptr, size_t len); 8656 8657 void CRYPTO_set_mem_debug_options(long bits); 8658 long CRYPTO_get_mem_debug_options(void); 8659 8660 8661 8662 int CRYPTO_push_info_(const char *info, const char *file, int line); 8663 int CRYPTO_pop_info(void); 8664 int CRYPTO_remove_all_info(void); 8665 8666 /* 8667 * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro; 8668 * used as default in CRYPTO_MDEBUG compilations): 8669 */ 8670 /*- 8671 * The last argument has the following significance: 8672 * 8673 * 0: called before the actual memory allocation has taken place 8674 * 1: called after the actual memory allocation has taken place 8675 */ 8676 void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, 8677 int before_p); 8678 void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file, 8679 int line, int before_p); 8680 void CRYPTO_dbg_free(void *addr, int before_p); 8681 /*- 8682 * Tell the debugging code about options. By default, the following values 8683 * apply: 8684 * 8685 * 0: Clear all options. 8686 * V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option. 8687 * V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option. 8688 * V_CRYPTO_MDEBUG_ALL (3): 1 + 2 8689 */ 8690 void CRYPTO_dbg_set_options(long bits); 8691 long CRYPTO_dbg_get_options(void); 8692 8693 8694 void CRYPTO_mem_leaks_fp(FILE *); 8695 8696 void CRYPTO_mem_leaks(struct bio_st *bio); 8697 /* unsigned long order, char *file, int line, int num_bytes, char *addr */ 8698 typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int, 8699 void *); 8700 void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); 8701 8702 /* die if we have to */ 8703 void OpenSSLDie(const char *file, int line, const char *assertion); 8704 8705 8706 unsigned long *OPENSSL_ia32cap_loc(void); 8707 8708 int OPENSSL_isservice(void); 8709 8710 int FIPS_mode(void); 8711 int FIPS_mode_set(int r); 8712 8713 void OPENSSL_init(void); 8714 # 624 "/usr/include/openssl/crypto.h" 3 4 8715 /* 8716 * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. 8717 * It takes an amount of time dependent on |len|, but independent of the 8718 * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements 8719 * into a defined order as the return value when a != b is undefined, other 8720 * than to be non-zero. 8721 */ 8722 int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); 8723 8724 /* BEGIN ERROR CODES */ 8725 /* 8726 * The following lines are auto generated by the script mkerr.pl. Any changes 8727 * made after this point may be overwritten when the script is next run. 8728 */ 8729 void ERR_load_CRYPTO_strings(void); 8730 8731 /* Error codes for the CRYPTO functions. */ 8732 8733 /* Function codes. */ 8734 # 654 "/usr/include/openssl/crypto.h" 3 4 8735 /* Reason codes. */ 8736 # 70 "/usr/include/openssl/bio.h" 2 3 4 8737 # 83 "/usr/include/openssl/bio.h" 3 4 8738 /* These are the 'types' of BIOs */ 8739 # 116 "/usr/include/openssl/bio.h" 3 4 8740 /* 8741 * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. 8742 * BIO_set_fp(in,stdin,BIO_NOCLOSE); 8743 */ 8744 8745 8746 8747 /* 8748 * These are used in the following macros and are passed to BIO_ctrl() 8749 */ 8750 # 139 "/usr/include/openssl/bio.h" 3 4 8751 /* callback is int cb(BIO *bio,state,ret); */ 8752 8753 8754 8755 8756 8757 /* dgram BIO stuff */ 8758 # 157 "/usr/include/openssl/bio.h" 3 4 8759 /* #ifdef IP_MTU_DISCOVER */ 8760 8761 /* #endif */ 8762 # 196 "/usr/include/openssl/bio.h" 3 4 8763 /* modifiers */ 8764 # 208 "/usr/include/openssl/bio.h" 3 4 8765 /* 8766 * "UPLINK" flag denotes file descriptors provided by application. It 8767 * defaults to 0, as most platforms don't require UPLINK interface. 8768 */ 8769 8770 8771 8772 /* Used in BIO_gethostbyname() */ 8773 8774 8775 8776 8777 8778 8779 /* Mostly used in the SSL BIO */ 8780 /*- 8781 * Not used anymore 8782 * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10 8783 * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20 8784 * #define BIO_FLAGS_PROTOCOL_STARTUP 0x40 8785 */ 8786 8787 8788 8789 /* 8790 * This is used with memory BIOs: it means we shouldn't free up or change the 8791 * data in any way. 8792 */ 8793 8794 8795 typedef struct bio_st BIO; 8796 8797 void BIO_set_flags(BIO *b, int flags); 8798 int BIO_test_flags(const BIO *b, int flags); 8799 void BIO_clear_flags(BIO *b, int flags); 8800 # 252 "/usr/include/openssl/bio.h" 3 4 8801 /* These are normally used internally in BIOs */ 8802 8803 8804 8805 8806 8807 /* These should be used by the application to tell why we should retry */ 8808 8809 8810 8811 8812 8813 8814 /* 8815 * The next three are used in conjunction with the BIO_should_io_special() 8816 * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int 8817 * *reason); will walk the BIO stack and return the 'reason' for the special 8818 * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return 8819 * the code. 8820 */ 8821 /* 8822 * Returned from the SSL bio when the certificate retrieval code had an error 8823 */ 8824 8825 /* Returned from the connect BIO when a connect would have blocked */ 8826 8827 /* Returned from the accept BIO when an accept would have blocked */ 8828 8829 8830 /* These are passed by the BIO callback */ 8831 8832 8833 8834 8835 8836 8837 8838 /* 8839 * The callback is called before and after the underling operation, The 8840 * BIO_CB_RETURN flag indicates if it is after the call 8841 */ 8842 8843 8844 8845 8846 8847 long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *, 8848 int, long, long); 8849 void BIO_set_callback(BIO *b, 8850 long (*callback) (struct bio_st *, int, const char *, 8851 int, long, long)); 8852 char *BIO_get_callback_arg(const BIO *b); 8853 void BIO_set_callback_arg(BIO *b, char *arg); 8854 8855 const char *BIO_method_name(const BIO *b); 8856 int BIO_method_type(const BIO *b); 8857 8858 typedef void bio_info_cb (struct bio_st *, int, const char *, int, long, 8859 long); 8860 8861 typedef struct bio_method_st { 8862 int type; 8863 const char *name; 8864 int (*bwrite) (BIO *, const char *, int); 8865 int (*bread) (BIO *, char *, int); 8866 int (*bputs) (BIO *, const char *); 8867 int (*bgets) (BIO *, char *, int); 8868 long (*ctrl) (BIO *, int, long, void *); 8869 int (*create) (BIO *); 8870 int (*destroy) (BIO *); 8871 long (*callback_ctrl) (BIO *, int, bio_info_cb *); 8872 } BIO_METHOD; 8873 8874 struct bio_st { 8875 BIO_METHOD *method; 8876 /* bio, mode, argp, argi, argl, ret */ 8877 long (*callback) (struct bio_st *, int, const char *, int, long, long); 8878 char *cb_arg; /* first argument for the callback */ 8879 int init; 8880 int shutdown; 8881 int flags; /* extra storage */ 8882 int retry_reason; 8883 int num; 8884 void *ptr; 8885 struct bio_st *next_bio; /* used by filter BIOs */ 8886 struct bio_st *prev_bio; /* used by filter BIOs */ 8887 int references; 8888 unsigned long num_read; 8889 unsigned long num_write; 8890 CRYPTO_EX_DATA ex_data; 8891 }; 8892 8893 struct stack_st_BIO { _STACK stack; }; 8894 8895 typedef struct bio_f_buffer_ctx_struct { 8896 /*- 8897 * Buffers are setup like this: 8898 * 8899 * <---------------------- size -----------------------> 8900 * +---------------------------------------------------+ 8901 * | consumed | remaining | free space | 8902 * +---------------------------------------------------+ 8903 * <-- off --><------- len -------> 8904 */ 8905 /*- BIO *bio; *//* 8906 * this is now in the BIO struct 8907 */ 8908 int ibuf_size; /* how big is the input buffer */ 8909 int obuf_size; /* how big is the output buffer */ 8910 char *ibuf; /* the char array */ 8911 int ibuf_len; /* how many bytes are in it */ 8912 int ibuf_off; /* write/read offset */ 8913 char *obuf; /* the char array */ 8914 int obuf_len; /* how many bytes are in it */ 8915 int obuf_off; /* write/read offset */ 8916 } BIO_F_BUFFER_CTX; 8917 8918 /* Prefix and suffix callback in ASN1 BIO */ 8919 typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, 8920 void *parg); 8921 # 398 "/usr/include/openssl/bio.h" 3 4 8922 /* connect BIO stuff */ 8923 # 407 "/usr/include/openssl/bio.h" 3 4 8924 /* 8925 * #define BIO_CONN_get_param_hostname BIO_ctrl 8926 */ 8927 # 474 "/usr/include/openssl/bio.h" 3 4 8928 /* BIO_s_connect() and BIO_s_socks4a_connect() */ 8929 # 486 "/usr/include/openssl/bio.h" 3 4 8930 /* BIO_s_accept() */ 8931 8932 8933 /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ 8934 # 499 "/usr/include/openssl/bio.h" 3 4 8935 /* BIO_s_accept() and BIO_s_connect() */ 8936 8937 8938 8939 8940 /* BIO_s_proxy_client() */ 8941 8942 8943 /* BIO_set_nbio(b,n) */ 8944 8945 /* BIO *BIO_get_filter_bio(BIO *bio); */ 8946 # 519 "/usr/include/openssl/bio.h" 3 4 8947 /* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ 8948 8949 8950 8951 /* BIO_s_file() */ 8952 8953 8954 8955 /* BIO_s_fd() and BIO_s_file() */ 8956 8957 8958 8959 /* 8960 * name is cast to lose const, but might be better to route through a 8961 * function so we can do it safely 8962 */ 8963 # 552 "/usr/include/openssl/bio.h" 3 4 8964 /* 8965 * WARNING WARNING, this ups the reference count on the read bio of the SSL 8966 * structure. This is because the ssl read BIO is now pointed to by the 8967 * next_bio field in the bio. So when you free the BIO, make sure you are 8968 * doing a BIO_free_all() to catch the underlying BIO. 8969 */ 8970 # 568 "/usr/include/openssl/bio.h" 3 4 8971 /* defined in evp.h */ 8972 /* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ 8973 8974 8975 8976 8977 8978 8979 8980 /* For the BIO_f_buffer() type */ 8981 8982 8983 8984 8985 8986 8987 /* Don't use the next one unless you know what you are doing :-) */ 8988 # 593 "/usr/include/openssl/bio.h" 3 4 8989 /* ...pending macros have inappropriate return type */ 8990 size_t BIO_ctrl_pending(BIO *b); 8991 size_t BIO_ctrl_wpending(BIO *b); 8992 8993 8994 8995 8996 8997 /* For the BIO_f_buffer() type */ 8998 8999 9000 /* For BIO_s_bio() */ 9001 9002 9003 9004 9005 9006 /* macros with inappropriate type -- but ...pending macros use int too: */ 9007 9008 9009 size_t BIO_ctrl_get_write_guarantee(BIO *b); 9010 size_t BIO_ctrl_get_read_request(BIO *b); 9011 int BIO_ctrl_reset_read_request(BIO *b); 9012 9013 /* ctrl macros for dgram */ 9014 # 633 "/usr/include/openssl/bio.h" 3 4 9015 /* These two aren't currently implemented */ 9016 /* int BIO_get_ex_num(BIO *bio); */ 9017 /* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */ 9018 int BIO_set_ex_data(BIO *bio, int idx, void *data); 9019 void *BIO_get_ex_data(BIO *bio, int idx); 9020 int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 9021 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 9022 unsigned long BIO_number_read(BIO *bio); 9023 unsigned long BIO_number_written(BIO *bio); 9024 9025 /* For BIO_f_asn1() */ 9026 int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, 9027 asn1_ps_func *prefix_free); 9028 int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, 9029 asn1_ps_func **pprefix_free); 9030 int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, 9031 asn1_ps_func *suffix_free); 9032 int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, 9033 asn1_ps_func **psuffix_free); 9034 9035 9036 BIO_METHOD *BIO_s_file(void); 9037 BIO *BIO_new_file(const char *filename, const char *mode); 9038 BIO *BIO_new_fp(FILE *stream, int close_flag); 9039 9040 9041 BIO *BIO_new(BIO_METHOD *type); 9042 int BIO_set(BIO *a, BIO_METHOD *type); 9043 int BIO_free(BIO *a); 9044 void BIO_vfree(BIO *a); 9045 int BIO_read(BIO *b, void *data, int len); 9046 int BIO_gets(BIO *bp, char *buf, int size); 9047 int BIO_write(BIO *b, const void *data, int len); 9048 int BIO_puts(BIO *bp, const char *buf); 9049 int BIO_indent(BIO *b, int indent, int max); 9050 long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); 9051 long BIO_callback_ctrl(BIO *b, int cmd, 9052 void (*fp) (struct bio_st *, int, const char *, int, 9053 long, long)); 9054 char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); 9055 long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); 9056 BIO *BIO_push(BIO *b, BIO *append); 9057 BIO *BIO_pop(BIO *b); 9058 void BIO_free_all(BIO *a); 9059 BIO *BIO_find_type(BIO *b, int bio_type); 9060 BIO *BIO_next(BIO *b); 9061 BIO *BIO_get_retry_BIO(BIO *bio, int *reason); 9062 int BIO_get_retry_reason(BIO *bio); 9063 BIO *BIO_dup_chain(BIO *in); 9064 9065 int BIO_nread0(BIO *bio, char **buf); 9066 int BIO_nread(BIO *bio, char **buf, int num); 9067 int BIO_nwrite0(BIO *bio, char **buf); 9068 int BIO_nwrite(BIO *bio, char **buf, int num); 9069 9070 long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, 9071 long argl, long ret); 9072 9073 BIO_METHOD *BIO_s_mem(void); 9074 BIO *BIO_new_mem_buf(const void *buf, int len); 9075 BIO_METHOD *BIO_s_socket(void); 9076 BIO_METHOD *BIO_s_connect(void); 9077 BIO_METHOD *BIO_s_accept(void); 9078 BIO_METHOD *BIO_s_fd(void); 9079 9080 BIO_METHOD *BIO_s_log(void); 9081 9082 BIO_METHOD *BIO_s_bio(void); 9083 BIO_METHOD *BIO_s_null(void); 9084 BIO_METHOD *BIO_f_null(void); 9085 BIO_METHOD *BIO_f_buffer(void); 9086 9087 9088 9089 BIO_METHOD *BIO_f_nbio_test(void); 9090 9091 BIO_METHOD *BIO_s_datagram(void); 9092 9093 9094 9095 9096 9097 /* BIO_METHOD *BIO_f_ber(void); */ 9098 9099 int BIO_sock_should_retry(int i); 9100 int BIO_sock_non_fatal_error(int error); 9101 int BIO_dgram_non_fatal_error(int error); 9102 9103 int BIO_fd_should_retry(int i); 9104 int BIO_fd_non_fatal_error(int error); 9105 int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), 9106 void *u, const char *s, int len); 9107 int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), 9108 void *u, const char *s, int len, int indent); 9109 int BIO_dump(BIO *b, const char *bytes, int len); 9110 int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); 9111 9112 int BIO_dump_fp(FILE *fp, const char *s, int len); 9113 int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); 9114 9115 int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, 9116 int datalen); 9117 9118 struct hostent *BIO_gethostbyname(const char *name); 9119 /*- 9120 * We might want a thread-safe interface too: 9121 * struct hostent *BIO_gethostbyname_r(const char *name, 9122 * struct hostent *result, void *buffer, size_t buflen); 9123 * or something similar (caller allocates a struct hostent, 9124 * pointed to by "result", and additional buffer space for the various 9125 * substructures; if the buffer does not suffice, NULL is returned 9126 * and an appropriate error code is set). 9127 */ 9128 int BIO_sock_error(int sock); 9129 int BIO_socket_ioctl(int fd, long type, void *arg); 9130 int BIO_socket_nbio(int fd, int mode); 9131 int BIO_get_port(const char *str, unsigned short *port_ptr); 9132 int BIO_get_host_ip(const char *str, unsigned char *ip); 9133 int BIO_get_accept_socket(char *host_port, int mode); 9134 int BIO_accept(int sock, char **ip_port); 9135 int BIO_sock_init(void); 9136 void BIO_sock_cleanup(void); 9137 int BIO_set_tcp_ndelay(int sock, int turn_on); 9138 9139 BIO *BIO_new_socket(int sock, int close_flag); 9140 BIO *BIO_new_dgram(int fd, int close_flag); 9141 # 771 "/usr/include/openssl/bio.h" 3 4 9142 BIO *BIO_new_fd(int fd, int close_flag); 9143 BIO *BIO_new_connect(const char *host_port); 9144 BIO *BIO_new_accept(const char *host_port); 9145 9146 int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, 9147 BIO **bio2, size_t writebuf2); 9148 /* 9149 * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. 9150 * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default 9151 * value. 9152 */ 9153 9154 void BIO_copy_next_retry(BIO *b); 9155 9156 /* 9157 * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); 9158 */ 9159 9160 9161 9162 9163 9164 9165 int BIO_printf(BIO *bio, const char *format, ...) 9166 __attribute__((__format__(__printf__, 2, 3))); 9167 int BIO_vprintf(BIO *bio, const char *format, va_list args) 9168 __attribute__((__format__(__printf__, 2, 0))); 9169 int BIO_snprintf(char *buf, size_t n, const char *format, ...) 9170 __attribute__((__format__(__printf__, 3, 4))); 9171 int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) 9172 __attribute__((__format__(__printf__, 3, 0))); 9173 9174 9175 /* BEGIN ERROR CODES */ 9176 /* 9177 * The following lines are auto generated by the script mkerr.pl. Any changes 9178 * made after this point may be overwritten when the script is next run. 9179 */ 9180 void ERR_load_BIO_strings(void); 9181 9182 /* Error codes for the BIO functions. */ 9183 9184 /* Function codes. */ 9185 # 849 "/usr/include/openssl/bio.h" 3 4 9186 /* Reason codes. */ 9187 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 9188 # 1 "/usr/include/openssl/x509.h" 1 3 4 9189 /* crypto/x509/x509.h */ 9190 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 9191 * All rights reserved. 9192 * 9193 * This package is an SSL implementation written 9194 * by Eric Young (eay@cryptsoft.com). 9195 * The implementation was written so as to conform with Netscapes SSL. 9196 * 9197 * This library is free for commercial and non-commercial use as long as 9198 * the following conditions are aheared to. The following conditions 9199 * apply to all code found in this distribution, be it the RC4, RSA, 9200 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 9201 * included with this distribution is covered by the same copyright terms 9202 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 9203 * 9204 * Copyright remains Eric Young's, and as such any Copyright notices in 9205 * the code are not to be removed. 9206 * If this package is used in a product, Eric Young should be given attribution 9207 * as the author of the parts of the library used. 9208 * This can be in the form of a textual message at program startup or 9209 * in documentation (online or textual) provided with the package. 9210 * 9211 * Redistribution and use in source and binary forms, with or without 9212 * modification, are permitted provided that the following conditions 9213 * are met: 9214 * 1. Redistributions of source code must retain the copyright 9215 * notice, this list of conditions and the following disclaimer. 9216 * 2. Redistributions in binary form must reproduce the above copyright 9217 * notice, this list of conditions and the following disclaimer in the 9218 * documentation and/or other materials provided with the distribution. 9219 * 3. All advertising materials mentioning features or use of this software 9220 * must display the following acknowledgement: 9221 * "This product includes cryptographic software written by 9222 * Eric Young (eay@cryptsoft.com)" 9223 * The word 'cryptographic' can be left out if the rouines from the library 9224 * being used are not cryptographic related :-). 9225 * 4. If you include any Windows specific code (or a derivative thereof) from 9226 * the apps directory (application code) you must include an acknowledgement: 9227 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 9228 * 9229 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 9230 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9231 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 9232 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 9233 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 9234 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 9235 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9236 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 9237 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 9238 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 9239 * SUCH DAMAGE. 9240 * 9241 * The licence and distribution terms for any publically available version or 9242 * derivative of this code cannot be changed. i.e. this code cannot simply be 9243 * copied and put under another distribution licence 9244 * [including the GNU Public Licence.] 9245 */ 9246 /* ==================================================================== 9247 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 9248 * ECDH support in OpenSSL originally developed by 9249 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 9250 */ 9251 9252 9253 9254 9255 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 9256 /* e_os2.h */ 9257 /* ==================================================================== 9258 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 9259 * 9260 * Redistribution and use in source and binary forms, with or without 9261 * modification, are permitted provided that the following conditions 9262 * are met: 9263 * 9264 * 1. Redistributions of source code must retain the above copyright 9265 * notice, this list of conditions and the following disclaimer. 9266 * 9267 * 2. Redistributions in binary form must reproduce the above copyright 9268 * notice, this list of conditions and the following disclaimer in 9269 * the documentation and/or other materials provided with the 9270 * distribution. 9271 * 9272 * 3. All advertising materials mentioning features or use of this 9273 * software must display the following acknowledgment: 9274 * "This product includes software developed by the OpenSSL Project 9275 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9276 * 9277 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9278 * endorse or promote products derived from this software without 9279 * prior written permission. For written permission, please contact 9280 * openssl-core@openssl.org. 9281 * 9282 * 5. Products derived from this software may not be called "OpenSSL" 9283 * nor may "OpenSSL" appear in their names without prior written 9284 * permission of the OpenSSL Project. 9285 * 9286 * 6. Redistributions of any form whatsoever must retain the following 9287 * acknowledgment: 9288 * "This product includes software developed by the OpenSSL Project 9289 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9290 * 9291 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9292 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9293 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9294 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9295 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9296 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9297 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9298 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9299 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9300 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9301 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9302 * OF THE POSSIBILITY OF SUCH DAMAGE. 9303 * ==================================================================== 9304 * 9305 * This product includes cryptographic software written by Eric Young 9306 * (eay@cryptsoft.com). This product includes software written by Tim 9307 * Hudson (tjh@cryptsoft.com). 9308 * 9309 */ 9310 9311 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 9312 /* opensslconf.h */ 9313 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 9314 9315 9316 9317 9318 /* OpenSSL was configured with the following options: */ 9319 # 108 "/usr/include/openssl/opensslconf.h" 3 4 9320 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 9321 asks for it. This is a transient feature that is provided for those 9322 who haven't had the time to do the appropriate changes in their 9323 applications. */ 9324 # 204 "/usr/include/openssl/opensslconf.h" 3 4 9325 /* crypto/opensslconf.h.in */ 9326 9327 /* Generate 80386 code? */ 9328 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 9329 # 68 "/usr/include/openssl/x509.h" 2 3 4 9330 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 9331 /* ==================================================================== 9332 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 9333 * 9334 * Redistribution and use in source and binary forms, with or without 9335 * modification, are permitted provided that the following conditions 9336 * are met: 9337 * 9338 * 1. Redistributions of source code must retain the above copyright 9339 * notice, this list of conditions and the following disclaimer. 9340 * 9341 * 2. Redistributions in binary form must reproduce the above copyright 9342 * notice, this list of conditions and the following disclaimer in 9343 * the documentation and/or other materials provided with the 9344 * distribution. 9345 * 9346 * 3. All advertising materials mentioning features or use of this 9347 * software must display the following acknowledgment: 9348 * "This product includes software developed by the OpenSSL Project 9349 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9350 * 9351 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9352 * endorse or promote products derived from this software without 9353 * prior written permission. For written permission, please contact 9354 * openssl-core@openssl.org. 9355 * 9356 * 5. Products derived from this software may not be called "OpenSSL" 9357 * nor may "OpenSSL" appear in their names without prior written 9358 * permission of the OpenSSL Project. 9359 * 9360 * 6. Redistributions of any form whatsoever must retain the following 9361 * acknowledgment: 9362 * "This product includes software developed by the OpenSSL Project 9363 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9364 * 9365 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9366 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9367 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9368 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9369 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9370 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9371 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9372 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9373 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9374 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9375 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9376 * OF THE POSSIBILITY OF SUCH DAMAGE. 9377 * ==================================================================== 9378 * 9379 * This product includes cryptographic software written by Eric Young 9380 * (eay@cryptsoft.com). This product includes software written by Tim 9381 * Hudson (tjh@cryptsoft.com). 9382 * 9383 */ 9384 # 69 "/usr/include/openssl/x509.h" 2 3 4 9385 9386 # 1 "/usr/include/openssl/buffer.h" 1 3 4 9387 /* crypto/buffer/buffer.h */ 9388 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 9389 * All rights reserved. 9390 * 9391 * This package is an SSL implementation written 9392 * by Eric Young (eay@cryptsoft.com). 9393 * The implementation was written so as to conform with Netscapes SSL. 9394 * 9395 * This library is free for commercial and non-commercial use as long as 9396 * the following conditions are aheared to. The following conditions 9397 * apply to all code found in this distribution, be it the RC4, RSA, 9398 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 9399 * included with this distribution is covered by the same copyright terms 9400 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 9401 * 9402 * Copyright remains Eric Young's, and as such any Copyright notices in 9403 * the code are not to be removed. 9404 * If this package is used in a product, Eric Young should be given attribution 9405 * as the author of the parts of the library used. 9406 * This can be in the form of a textual message at program startup or 9407 * in documentation (online or textual) provided with the package. 9408 * 9409 * Redistribution and use in source and binary forms, with or without 9410 * modification, are permitted provided that the following conditions 9411 * are met: 9412 * 1. Redistributions of source code must retain the copyright 9413 * notice, this list of conditions and the following disclaimer. 9414 * 2. Redistributions in binary form must reproduce the above copyright 9415 * notice, this list of conditions and the following disclaimer in the 9416 * documentation and/or other materials provided with the distribution. 9417 * 3. All advertising materials mentioning features or use of this software 9418 * must display the following acknowledgement: 9419 * "This product includes cryptographic software written by 9420 * Eric Young (eay@cryptsoft.com)" 9421 * The word 'cryptographic' can be left out if the rouines from the library 9422 * being used are not cryptographic related :-). 9423 * 4. If you include any Windows specific code (or a derivative thereof) from 9424 * the apps directory (application code) you must include an acknowledgement: 9425 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 9426 * 9427 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 9428 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9429 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 9430 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 9431 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 9432 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 9433 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9434 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 9435 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 9436 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 9437 * SUCH DAMAGE. 9438 * 9439 * The licence and distribution terms for any publically available version or 9440 * derivative of this code cannot be changed. i.e. this code cannot simply be 9441 * copied and put under another distribution licence 9442 * [including the GNU Public Licence.] 9443 */ 9444 9445 9446 9447 9448 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 9449 /* ==================================================================== 9450 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 9451 * 9452 * Redistribution and use in source and binary forms, with or without 9453 * modification, are permitted provided that the following conditions 9454 * are met: 9455 * 9456 * 1. Redistributions of source code must retain the above copyright 9457 * notice, this list of conditions and the following disclaimer. 9458 * 9459 * 2. Redistributions in binary form must reproduce the above copyright 9460 * notice, this list of conditions and the following disclaimer in 9461 * the documentation and/or other materials provided with the 9462 * distribution. 9463 * 9464 * 3. All advertising materials mentioning features or use of this 9465 * software must display the following acknowledgment: 9466 * "This product includes software developed by the OpenSSL Project 9467 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9468 * 9469 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9470 * endorse or promote products derived from this software without 9471 * prior written permission. For written permission, please contact 9472 * openssl-core@openssl.org. 9473 * 9474 * 5. Products derived from this software may not be called "OpenSSL" 9475 * nor may "OpenSSL" appear in their names without prior written 9476 * permission of the OpenSSL Project. 9477 * 9478 * 6. Redistributions of any form whatsoever must retain the following 9479 * acknowledgment: 9480 * "This product includes software developed by the OpenSSL Project 9481 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9482 * 9483 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9484 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9485 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9486 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9487 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9488 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9489 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9490 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9491 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9492 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9493 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9494 * OF THE POSSIBILITY OF SUCH DAMAGE. 9495 * ==================================================================== 9496 * 9497 * This product includes cryptographic software written by Eric Young 9498 * (eay@cryptsoft.com). This product includes software written by Tim 9499 * Hudson (tjh@cryptsoft.com). 9500 * 9501 */ 9502 # 63 "/usr/include/openssl/buffer.h" 2 3 4 9503 9504 9505 9506 9507 9508 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4 9509 /* 9510 * CDDL HEADER START 9511 * 9512 * The contents of this file are subject to the terms of the 9513 * Common Development and Distribution License, Version 1.0 only 9514 * (the "License"). You may not use this file except in compliance 9515 * with the License. 9516 * 9517 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9518 * or http://www.opensolaris.org/os/licensing. 9519 * See the License for the specific language governing permissions 9520 * and limitations under the License. 9521 * 9522 * When distributing Covered Code, include this CDDL HEADER in each 9523 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9524 * If applicable, add the following below this CDDL HEADER, with the 9525 * fields enclosed by brackets "[]" replaced with your own identifying 9526 * information: Portions Copyright [yyyy] [name of copyright owner] 9527 * 9528 * CDDL HEADER END 9529 */ 9530 /* Copyright (c) 1988 AT&T */ 9531 /* All Rights Reserved */ 9532 9533 9534 /* 9535 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 9536 * Use is subject to license terms. 9537 */ 9538 9539 9540 9541 9542 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4 9543 /* 9544 * CDDL HEADER START 9545 * 9546 * The contents of this file are subject to the terms of the 9547 * Common Development and Distribution License (the "License"). 9548 * You may not use this file except in compliance with the License. 9549 * 9550 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9551 * or http://www.opensolaris.org/os/licensing. 9552 * See the License for the specific language governing permissions 9553 * and limitations under the License. 9554 * 9555 * 9556 * When distributing Covered Code, include this CDDL HEADER in each 9557 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9558 * If applicable, add the following below this CDDL HEADER, with the 9559 * fields enclosed by brackets "[]" replaced with your own identifying 9560 * information: Portions Copyright [yyyy] [name of copyright owner] 9561 * 9562 * CDDL HEADER END 9563 */ 9564 9565 /* 9566 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 9567 * Use is subject to license terms. 9568 * Copyright 2016 Joyent, Inc. 9569 */ 9570 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 9571 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 1 3 4 9572 /* 9573 * CDDL HEADER START 9574 * 9575 * The contents of this file are subject to the terms of the 9576 * Common Development and Distribution License, Version 1.0 only 9577 * (the "License"). You may not use this file except in compliance 9578 * with the License. 9579 * 9580 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9581 * or http://www.opensolaris.org/os/licensing. 9582 * See the License for the specific language governing permissions 9583 * and limitations under the License. 9584 * 9585 * When distributing Covered Code, include this CDDL HEADER in each 9586 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9587 * If applicable, add the following below this CDDL HEADER, with the 9588 * fields enclosed by brackets "[]" replaced with your own identifying 9589 * information: Portions Copyright [yyyy] [name of copyright owner] 9590 * 9591 * CDDL HEADER END 9592 */ 9593 /* Copyright (c) 1988 AT&T */ 9594 /* All Rights Reserved */ 9595 9596 9597 /* 9598 * Copyright 1999-2003 Sun Microsystems, Inc. All rights reserved. 9599 * Use is subject to license terms. 9600 */ 9601 9602 /* 9603 * Copyright 2014 PALO, Richard. 9604 * Copyright 2016 Joyent, Inc. 9605 */ 9606 9607 /* 9608 * An application should not include this header directly. Instead it 9609 * should be included only through the inclusion of other Sun headers. 9610 * 9611 * The contents of this header is limited to identifiers specified in the 9612 * C Standard. Any new identifiers specified in future amendments to the 9613 * C Standard must be placed in this header. If these new identifiers 9614 * are required to also be in the C++ Standard "std" namespace, then for 9615 * anything other than macro definitions, corresponding "using" directives 9616 * must also be added to <stddef.h.h>. 9617 */ 9618 9619 9620 9621 9622 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4 9623 /* 9624 * CDDL HEADER START 9625 * 9626 * The contents of this file are subject to the terms of the 9627 * Common Development and Distribution License (the "License"). 9628 * You may not use this file except in compliance with the License. 9629 * 9630 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9631 * or http://www.opensolaris.org/os/licensing. 9632 * See the License for the specific language governing permissions 9633 * and limitations under the License. 9634 * 9635 * 9636 * When distributing Covered Code, include this CDDL HEADER in each 9637 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9638 * If applicable, add the following below this CDDL HEADER, with the 9639 * fields enclosed by brackets "[]" replaced with your own identifying 9640 * information: Portions Copyright [yyyy] [name of copyright owner] 9641 * 9642 * CDDL HEADER END 9643 */ 9644 9645 /* 9646 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 9647 * Use is subject to license terms. 9648 * Copyright 2016 Joyent, Inc. 9649 */ 9650 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 9651 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4 9652 /* 9653 * CDDL HEADER START 9654 * 9655 * The contents of this file are subject to the terms of the 9656 * Common Development and Distribution License (the "License"). 9657 * You may not use this file except in compliance with the License. 9658 * 9659 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9660 * or http://www.opensolaris.org/os/licensing. 9661 * See the License for the specific language governing permissions 9662 * and limitations under the License. 9663 * 9664 * When distributing Covered Code, include this CDDL HEADER in each 9665 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9666 * If applicable, add the following below this CDDL HEADER, with the 9667 * fields enclosed by brackets "[]" replaced with your own identifying 9668 * information: Portions Copyright [yyyy] [name of copyright owner] 9669 * 9670 * CDDL HEADER END 9671 */ 9672 9673 /* 9674 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 9675 * Copyright 2016 Joyent, Inc. 9676 * 9677 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 9678 * Use is subject to license terms. 9679 */ 9680 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 9681 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 3 4 9682 /* 9683 * This file and its contents are supplied under the terms of the 9684 * Common Development and Distribution License ("CDDL"), version 1.0. 9685 * You may only use this file in accordance with the terms of version 9686 * 1.0 of the CDDL. 9687 * 9688 * A full copy of the text of the CDDL should have accompanied this 9689 * source. A copy of the CDDL is also available via the Internet at 9690 * http://www.illumos.org/license/CDDL. 9691 */ 9692 9693 /* 9694 * Copyright 2014-2016 PALO, Richard. 9695 */ 9696 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 9697 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 3 4 9698 typedef long max_align_t; 9699 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 9700 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 1 3 4 9701 /* 9702 * This file and its contents are supplied under the terms of the 9703 * Common Development and Distribution License ("CDDL"), version 1.0. 9704 * You may only use this file in accordance with the terms of version 9705 * 1.0 of the CDDL. 9706 * 9707 * A full copy of the text of the CDDL should have accompanied this 9708 * source. A copy of the CDDL is also available via the Internet at 9709 * http://www.illumos.org/license/CDDL. 9710 */ 9711 9712 /* 9713 * Copyright 2017 Toomas Soome <tsoome@me.com> 9714 */ 9715 9716 9717 9718 9719 /* 9720 * Commonly used macros and definitions. 9721 */ 9722 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 3 4 9723 /* 9724 * We must not expose container_of() to userland, but we want it 9725 * to be available for early boot and for the kernel. 9726 */ 9727 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 9728 9729 /* 9730 * Allow global visibility for symbols defined in 9731 * C++ "std" namespace in <iso/stddef_iso.h>. 9732 */ 9733 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 3 4 9734 /* 9735 * wchar_t is a built-in type in standard C++ and as such is not 9736 * defined here when using standard C++. However, the GNU compiler 9737 * fixincludes utility nonetheless creates its own version of this 9738 * header for use by gcc and g++. In that version it adds a redundant 9739 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 9740 * header we need to include the following magic comment: 9741 * 9742 * we must use the C++ compiler's type 9743 * 9744 * The above comment should not be removed or changed until GNU 9745 * gcc/fixinc/inclhack.def is updated to bypass this header. 9746 */ 9747 # 69 "/usr/include/openssl/buffer.h" 2 3 4 9748 9749 9750 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 3 4 9751 /* 9752 * CDDL HEADER START 9753 * 9754 * The contents of this file are subject to the terms of the 9755 * Common Development and Distribution License (the "License"). 9756 * You may not use this file except in compliance with the License. 9757 * 9758 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9759 * or http://www.opensolaris.org/os/licensing. 9760 * See the License for the specific language governing permissions 9761 * and limitations under the License. 9762 * 9763 * When distributing Covered Code, include this CDDL HEADER in each 9764 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 9765 * If applicable, add the following below this CDDL HEADER, with the 9766 * fields enclosed by brackets "[]" replaced with your own identifying 9767 * information: Portions Copyright [yyyy] [name of copyright owner] 9768 * 9769 * CDDL HEADER END 9770 */ 9771 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 9772 /* All Rights Reserved */ 9773 9774 9775 /* 9776 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 9777 * Use is subject to license terms. 9778 * 9779 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 9780 * Copyright 2016 Joyent, Inc. 9781 */ 9782 # 72 "/usr/include/openssl/buffer.h" 2 3 4 9783 9784 9785 /* Already declared in ossl_typ.h */ 9786 /* typedef struct buf_mem_st BUF_MEM; */ 9787 9788 struct buf_mem_st { 9789 size_t length; /* current number of bytes */ 9790 char *data; 9791 size_t max; /* size of buffer */ 9792 }; 9793 9794 BUF_MEM *BUF_MEM_new(void); 9795 void BUF_MEM_free(BUF_MEM *a); 9796 int BUF_MEM_grow(BUF_MEM *str, size_t len); 9797 int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); 9798 size_t BUF_strnlen(const char *str, size_t maxlen); 9799 char *BUF_strdup(const char *str); 9800 9801 /* 9802 * Like strndup, but in addition, explicitly guarantees to never read past the 9803 * first |siz| bytes of |str|. 9804 */ 9805 char *BUF_strndup(const char *str, size_t siz); 9806 9807 void *BUF_memdup(const void *data, size_t siz); 9808 void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); 9809 9810 /* safe string functions */ 9811 size_t BUF_strlcpy(char *dst, const char *src, size_t siz); 9812 size_t BUF_strlcat(char *dst, const char *src, size_t siz); 9813 9814 /* BEGIN ERROR CODES */ 9815 /* 9816 * The following lines are auto generated by the script mkerr.pl. Any changes 9817 * made after this point may be overwritten when the script is next run. 9818 */ 9819 void ERR_load_BUF_strings(void); 9820 9821 /* Error codes for the BUF functions. */ 9822 9823 /* Function codes. */ 9824 9825 9826 9827 9828 9829 9830 9831 /* Reason codes. */ 9832 # 71 "/usr/include/openssl/x509.h" 2 3 4 9833 9834 9835 # 1 "/usr/include/openssl/evp.h" 1 3 4 9836 /* crypto/evp/evp.h */ 9837 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 9838 * All rights reserved. 9839 * 9840 * This package is an SSL implementation written 9841 * by Eric Young (eay@cryptsoft.com). 9842 * The implementation was written so as to conform with Netscapes SSL. 9843 * 9844 * This library is free for commercial and non-commercial use as long as 9845 * the following conditions are aheared to. The following conditions 9846 * apply to all code found in this distribution, be it the RC4, RSA, 9847 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 9848 * included with this distribution is covered by the same copyright terms 9849 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 9850 * 9851 * Copyright remains Eric Young's, and as such any Copyright notices in 9852 * the code are not to be removed. 9853 * If this package is used in a product, Eric Young should be given attribution 9854 * as the author of the parts of the library used. 9855 * This can be in the form of a textual message at program startup or 9856 * in documentation (online or textual) provided with the package. 9857 * 9858 * Redistribution and use in source and binary forms, with or without 9859 * modification, are permitted provided that the following conditions 9860 * are met: 9861 * 1. Redistributions of source code must retain the copyright 9862 * notice, this list of conditions and the following disclaimer. 9863 * 2. Redistributions in binary form must reproduce the above copyright 9864 * notice, this list of conditions and the following disclaimer in the 9865 * documentation and/or other materials provided with the distribution. 9866 * 3. All advertising materials mentioning features or use of this software 9867 * must display the following acknowledgement: 9868 * "This product includes cryptographic software written by 9869 * Eric Young (eay@cryptsoft.com)" 9870 * The word 'cryptographic' can be left out if the rouines from the library 9871 * being used are not cryptographic related :-). 9872 * 4. If you include any Windows specific code (or a derivative thereof) from 9873 * the apps directory (application code) you must include an acknowledgement: 9874 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 9875 * 9876 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 9877 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9878 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 9879 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 9880 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 9881 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 9882 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9883 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 9884 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 9885 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 9886 * SUCH DAMAGE. 9887 * 9888 * The licence and distribution terms for any publically available version or 9889 * derivative of this code cannot be changed. i.e. this code cannot simply be 9890 * copied and put under another distribution licence 9891 * [including the GNU Public Licence.] 9892 */ 9893 # 66 "/usr/include/openssl/evp.h" 3 4 9894 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 9895 /* opensslconf.h */ 9896 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 9897 9898 9899 9900 9901 /* OpenSSL was configured with the following options: */ 9902 # 108 "/usr/include/openssl/opensslconf.h" 3 4 9903 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 9904 asks for it. This is a transient feature that is provided for those 9905 who haven't had the time to do the appropriate changes in their 9906 applications. */ 9907 # 204 "/usr/include/openssl/opensslconf.h" 3 4 9908 /* crypto/opensslconf.h.in */ 9909 9910 /* Generate 80386 code? */ 9911 # 67 "/usr/include/openssl/evp.h" 2 3 4 9912 9913 9914 9915 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 9916 /* ==================================================================== 9917 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 9918 * 9919 * Redistribution and use in source and binary forms, with or without 9920 * modification, are permitted provided that the following conditions 9921 * are met: 9922 * 9923 * 1. Redistributions of source code must retain the above copyright 9924 * notice, this list of conditions and the following disclaimer. 9925 * 9926 * 2. Redistributions in binary form must reproduce the above copyright 9927 * notice, this list of conditions and the following disclaimer in 9928 * the documentation and/or other materials provided with the 9929 * distribution. 9930 * 9931 * 3. All advertising materials mentioning features or use of this 9932 * software must display the following acknowledgment: 9933 * "This product includes software developed by the OpenSSL Project 9934 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9935 * 9936 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9937 * endorse or promote products derived from this software without 9938 * prior written permission. For written permission, please contact 9939 * openssl-core@openssl.org. 9940 * 9941 * 5. Products derived from this software may not be called "OpenSSL" 9942 * nor may "OpenSSL" appear in their names without prior written 9943 * permission of the OpenSSL Project. 9944 * 9945 * 6. Redistributions of any form whatsoever must retain the following 9946 * acknowledgment: 9947 * "This product includes software developed by the OpenSSL Project 9948 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9949 * 9950 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9951 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9952 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9953 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9954 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9955 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9956 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9957 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9958 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9959 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9960 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9961 * OF THE POSSIBILITY OF SUCH DAMAGE. 9962 * ==================================================================== 9963 * 9964 * This product includes cryptographic software written by Eric Young 9965 * (eay@cryptsoft.com). This product includes software written by Tim 9966 * Hudson (tjh@cryptsoft.com). 9967 * 9968 */ 9969 # 71 "/usr/include/openssl/evp.h" 2 3 4 9970 9971 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 9972 /* ==================================================================== 9973 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 9974 * 9975 * Redistribution and use in source and binary forms, with or without 9976 * modification, are permitted provided that the following conditions 9977 * are met: 9978 * 9979 * 1. Redistributions of source code must retain the above copyright 9980 * notice, this list of conditions and the following disclaimer. 9981 * 9982 * 2. Redistributions in binary form must reproduce the above copyright 9983 * notice, this list of conditions and the following disclaimer in 9984 * the documentation and/or other materials provided with the 9985 * distribution. 9986 * 9987 * 3. All advertising materials mentioning features or use of this 9988 * software must display the following acknowledgment: 9989 * "This product includes software developed by the OpenSSL Project 9990 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9991 * 9992 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9993 * endorse or promote products derived from this software without 9994 * prior written permission. For written permission, please contact 9995 * openssl-core@openssl.org. 9996 * 9997 * 5. Products derived from this software may not be called "OpenSSL" 9998 * nor may "OpenSSL" appear in their names without prior written 9999 * permission of the OpenSSL Project. 10000 * 10001 * 6. Redistributions of any form whatsoever must retain the following 10002 * acknowledgment: 10003 * "This product includes software developed by the OpenSSL Project 10004 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10005 * 10006 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10007 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10008 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10009 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10010 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10011 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10012 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10013 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10014 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10015 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10016 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10017 * OF THE POSSIBILITY OF SUCH DAMAGE. 10018 * ==================================================================== 10019 * 10020 * This product includes cryptographic software written by Eric Young 10021 * (eay@cryptsoft.com). This product includes software written by Tim 10022 * Hudson (tjh@cryptsoft.com). 10023 * 10024 */ 10025 # 73 "/usr/include/openssl/evp.h" 2 3 4 10026 10027 10028 # 1 "/usr/include/openssl/bio.h" 1 3 4 10029 /* crypto/bio/bio.h */ 10030 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10031 * All rights reserved. 10032 * 10033 * This package is an SSL implementation written 10034 * by Eric Young (eay@cryptsoft.com). 10035 * The implementation was written so as to conform with Netscapes SSL. 10036 * 10037 * This library is free for commercial and non-commercial use as long as 10038 * the following conditions are aheared to. The following conditions 10039 * apply to all code found in this distribution, be it the RC4, RSA, 10040 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10041 * included with this distribution is covered by the same copyright terms 10042 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10043 * 10044 * Copyright remains Eric Young's, and as such any Copyright notices in 10045 * the code are not to be removed. 10046 * If this package is used in a product, Eric Young should be given attribution 10047 * as the author of the parts of the library used. 10048 * This can be in the form of a textual message at program startup or 10049 * in documentation (online or textual) provided with the package. 10050 * 10051 * Redistribution and use in source and binary forms, with or without 10052 * modification, are permitted provided that the following conditions 10053 * are met: 10054 * 1. Redistributions of source code must retain the copyright 10055 * notice, this list of conditions and the following disclaimer. 10056 * 2. Redistributions in binary form must reproduce the above copyright 10057 * notice, this list of conditions and the following disclaimer in the 10058 * documentation and/or other materials provided with the distribution. 10059 * 3. All advertising materials mentioning features or use of this software 10060 * must display the following acknowledgement: 10061 * "This product includes cryptographic software written by 10062 * Eric Young (eay@cryptsoft.com)" 10063 * The word 'cryptographic' can be left out if the rouines from the library 10064 * being used are not cryptographic related :-). 10065 * 4. If you include any Windows specific code (or a derivative thereof) from 10066 * the apps directory (application code) you must include an acknowledgement: 10067 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10068 * 10069 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10070 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10071 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10072 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10073 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10074 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10075 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10076 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10077 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10078 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10079 * SUCH DAMAGE. 10080 * 10081 * The licence and distribution terms for any publically available version or 10082 * derivative of this code cannot be changed. i.e. this code cannot simply be 10083 * copied and put under another distribution licence 10084 * [including the GNU Public Licence.] 10085 */ 10086 # 76 "/usr/include/openssl/evp.h" 2 3 4 10087 10088 10089 /*- 10090 #define EVP_RC2_KEY_SIZE 16 10091 #define EVP_RC4_KEY_SIZE 16 10092 #define EVP_BLOWFISH_KEY_SIZE 16 10093 #define EVP_CAST5_KEY_SIZE 16 10094 #define EVP_RC5_32_12_16_KEY_SIZE 16 10095 */ 10096 10097 10098 10099 10100 10101 10102 /* Default PKCS#5 iteration count */ 10103 10104 10105 # 1 "/usr/include/openssl/objects.h" 1 3 4 10106 /* crypto/objects/objects.h */ 10107 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10108 * All rights reserved. 10109 * 10110 * This package is an SSL implementation written 10111 * by Eric Young (eay@cryptsoft.com). 10112 * The implementation was written so as to conform with Netscapes SSL. 10113 * 10114 * This library is free for commercial and non-commercial use as long as 10115 * the following conditions are aheared to. The following conditions 10116 * apply to all code found in this distribution, be it the RC4, RSA, 10117 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10118 * included with this distribution is covered by the same copyright terms 10119 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10120 * 10121 * Copyright remains Eric Young's, and as such any Copyright notices in 10122 * the code are not to be removed. 10123 * If this package is used in a product, Eric Young should be given attribution 10124 * as the author of the parts of the library used. 10125 * This can be in the form of a textual message at program startup or 10126 * in documentation (online or textual) provided with the package. 10127 * 10128 * Redistribution and use in source and binary forms, with or without 10129 * modification, are permitted provided that the following conditions 10130 * are met: 10131 * 1. Redistributions of source code must retain the copyright 10132 * notice, this list of conditions and the following disclaimer. 10133 * 2. Redistributions in binary form must reproduce the above copyright 10134 * notice, this list of conditions and the following disclaimer in the 10135 * documentation and/or other materials provided with the distribution. 10136 * 3. All advertising materials mentioning features or use of this software 10137 * must display the following acknowledgement: 10138 * "This product includes cryptographic software written by 10139 * Eric Young (eay@cryptsoft.com)" 10140 * The word 'cryptographic' can be left out if the rouines from the library 10141 * being used are not cryptographic related :-). 10142 * 4. If you include any Windows specific code (or a derivative thereof) from 10143 * the apps directory (application code) you must include an acknowledgement: 10144 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10145 * 10146 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10147 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10148 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10149 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10150 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10151 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10152 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10153 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10154 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10155 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10156 * SUCH DAMAGE. 10157 * 10158 * The licence and distribution terms for any publically available version or 10159 * derivative of this code cannot be changed. i.e. this code cannot simply be 10160 * copied and put under another distribution licence 10161 * [including the GNU Public Licence.] 10162 */ 10163 10164 10165 10166 10167 10168 10169 10170 # 1 "/usr/include/openssl/obj_mac.h" 1 3 4 10171 /* crypto/objects/obj_mac.h */ 10172 10173 /* 10174 * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following 10175 * command: perl objects.pl objects.txt obj_mac.num obj_mac.h 10176 */ 10177 10178 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 10179 * All rights reserved. 10180 * 10181 * This package is an SSL implementation written 10182 * by Eric Young (eay@cryptsoft.com). 10183 * The implementation was written so as to conform with Netscapes SSL. 10184 * 10185 * This library is free for commercial and non-commercial use as long as 10186 * the following conditions are aheared to. The following conditions 10187 * apply to all code found in this distribution, be it the RC4, RSA, 10188 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10189 * included with this distribution is covered by the same copyright terms 10190 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10191 * 10192 * Copyright remains Eric Young's, and as such any Copyright notices in 10193 * the code are not to be removed. 10194 * If this package is used in a product, Eric Young should be given attribution 10195 * as the author of the parts of the library used. 10196 * This can be in the form of a textual message at program startup or 10197 * in documentation (online or textual) provided with the package. 10198 * 10199 * Redistribution and use in source and binary forms, with or without 10200 * modification, are permitted provided that the following conditions 10201 * are met: 10202 * 1. Redistributions of source code must retain the copyright 10203 * notice, this list of conditions and the following disclaimer. 10204 * 2. Redistributions in binary form must reproduce the above copyright 10205 * notice, this list of conditions and the following disclaimer in the 10206 * documentation and/or other materials provided with the distribution. 10207 * 3. All advertising materials mentioning features or use of this software 10208 * must display the following acknowledgement: 10209 * "This product includes cryptographic software written by 10210 * Eric Young (eay@cryptsoft.com)" 10211 * The word 'cryptographic' can be left out if the rouines from the library 10212 * being used are not cryptographic related :-). 10213 * 4. If you include any Windows specific code (or a derivative thereof) from 10214 * the apps directory (application code) you must include an acknowledgement: 10215 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10216 * 10217 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10218 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10219 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10220 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10221 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10222 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10223 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10224 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10225 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10226 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10227 * SUCH DAMAGE. 10228 * 10229 * The licence and distribution terms for any publically available version or 10230 * derivative of this code cannot be changed. i.e. this code cannot simply be 10231 * copied and put under another distribution licence 10232 * [including the GNU Public Licence.] 10233 */ 10234 # 66 "/usr/include/openssl/objects.h" 2 3 4 10235 # 964 "/usr/include/openssl/objects.h" 3 4 10236 # 1 "/usr/include/openssl/bio.h" 1 3 4 10237 /* crypto/bio/bio.h */ 10238 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10239 * All rights reserved. 10240 * 10241 * This package is an SSL implementation written 10242 * by Eric Young (eay@cryptsoft.com). 10243 * The implementation was written so as to conform with Netscapes SSL. 10244 * 10245 * This library is free for commercial and non-commercial use as long as 10246 * the following conditions are aheared to. The following conditions 10247 * apply to all code found in this distribution, be it the RC4, RSA, 10248 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10249 * included with this distribution is covered by the same copyright terms 10250 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10251 * 10252 * Copyright remains Eric Young's, and as such any Copyright notices in 10253 * the code are not to be removed. 10254 * If this package is used in a product, Eric Young should be given attribution 10255 * as the author of the parts of the library used. 10256 * This can be in the form of a textual message at program startup or 10257 * in documentation (online or textual) provided with the package. 10258 * 10259 * Redistribution and use in source and binary forms, with or without 10260 * modification, are permitted provided that the following conditions 10261 * are met: 10262 * 1. Redistributions of source code must retain the copyright 10263 * notice, this list of conditions and the following disclaimer. 10264 * 2. Redistributions in binary form must reproduce the above copyright 10265 * notice, this list of conditions and the following disclaimer in the 10266 * documentation and/or other materials provided with the distribution. 10267 * 3. All advertising materials mentioning features or use of this software 10268 * must display the following acknowledgement: 10269 * "This product includes cryptographic software written by 10270 * Eric Young (eay@cryptsoft.com)" 10271 * The word 'cryptographic' can be left out if the rouines from the library 10272 * being used are not cryptographic related :-). 10273 * 4. If you include any Windows specific code (or a derivative thereof) from 10274 * the apps directory (application code) you must include an acknowledgement: 10275 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10276 * 10277 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10278 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10279 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10280 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10281 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10282 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10283 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10284 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10285 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10286 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10287 * SUCH DAMAGE. 10288 * 10289 * The licence and distribution terms for any publically available version or 10290 * derivative of this code cannot be changed. i.e. this code cannot simply be 10291 * copied and put under another distribution licence 10292 * [including the GNU Public Licence.] 10293 */ 10294 # 965 "/usr/include/openssl/objects.h" 2 3 4 10295 # 1 "/usr/include/openssl/asn1.h" 1 3 4 10296 /* crypto/asn1/asn1.h */ 10297 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10298 * All rights reserved. 10299 * 10300 * This package is an SSL implementation written 10301 * by Eric Young (eay@cryptsoft.com). 10302 * The implementation was written so as to conform with Netscapes SSL. 10303 * 10304 * This library is free for commercial and non-commercial use as long as 10305 * the following conditions are aheared to. The following conditions 10306 * apply to all code found in this distribution, be it the RC4, RSA, 10307 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10308 * included with this distribution is covered by the same copyright terms 10309 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10310 * 10311 * Copyright remains Eric Young's, and as such any Copyright notices in 10312 * the code are not to be removed. 10313 * If this package is used in a product, Eric Young should be given attribution 10314 * as the author of the parts of the library used. 10315 * This can be in the form of a textual message at program startup or 10316 * in documentation (online or textual) provided with the package. 10317 * 10318 * Redistribution and use in source and binary forms, with or without 10319 * modification, are permitted provided that the following conditions 10320 * are met: 10321 * 1. Redistributions of source code must retain the copyright 10322 * notice, this list of conditions and the following disclaimer. 10323 * 2. Redistributions in binary form must reproduce the above copyright 10324 * notice, this list of conditions and the following disclaimer in the 10325 * documentation and/or other materials provided with the distribution. 10326 * 3. All advertising materials mentioning features or use of this software 10327 * must display the following acknowledgement: 10328 * "This product includes cryptographic software written by 10329 * Eric Young (eay@cryptsoft.com)" 10330 * The word 'cryptographic' can be left out if the rouines from the library 10331 * being used are not cryptographic related :-). 10332 * 4. If you include any Windows specific code (or a derivative thereof) from 10333 * the apps directory (application code) you must include an acknowledgement: 10334 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10335 * 10336 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10337 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10338 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10339 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10340 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10341 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10342 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10343 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10344 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10345 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10346 * SUCH DAMAGE. 10347 * 10348 * The licence and distribution terms for any publically available version or 10349 * derivative of this code cannot be changed. i.e. this code cannot simply be 10350 * copied and put under another distribution licence 10351 * [including the GNU Public Licence.] 10352 */ 10353 10354 10355 10356 10357 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 3 4 10358 /* 10359 * CDDL HEADER START 10360 * 10361 * The contents of this file are subject to the terms of the 10362 * Common Development and Distribution License (the "License"). 10363 * You may not use this file except in compliance with the License. 10364 * 10365 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10366 * or http://www.opensolaris.org/os/licensing. 10367 * See the License for the specific language governing permissions 10368 * and limitations under the License. 10369 * 10370 * When distributing Covered Code, include this CDDL HEADER in each 10371 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10372 * If applicable, add the following below this CDDL HEADER, with the 10373 * fields enclosed by brackets "[]" replaced with your own identifying 10374 * information: Portions Copyright [yyyy] [name of copyright owner] 10375 * 10376 * CDDL HEADER END 10377 */ 10378 /* Copyright (c) 1988 AT&T */ 10379 /* All Rights Reserved */ 10380 10381 10382 /* 10383 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 10384 * 10385 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 10386 * Use is subject to license terms. 10387 */ 10388 /* 10389 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 10390 * Copyright 2016 Joyent, Inc. 10391 */ 10392 # 63 "/usr/include/openssl/asn1.h" 2 3 4 10393 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 10394 /* e_os2.h */ 10395 /* ==================================================================== 10396 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 10397 * 10398 * Redistribution and use in source and binary forms, with or without 10399 * modification, are permitted provided that the following conditions 10400 * are met: 10401 * 10402 * 1. Redistributions of source code must retain the above copyright 10403 * notice, this list of conditions and the following disclaimer. 10404 * 10405 * 2. Redistributions in binary form must reproduce the above copyright 10406 * notice, this list of conditions and the following disclaimer in 10407 * the documentation and/or other materials provided with the 10408 * distribution. 10409 * 10410 * 3. All advertising materials mentioning features or use of this 10411 * software must display the following acknowledgment: 10412 * "This product includes software developed by the OpenSSL Project 10413 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10414 * 10415 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10416 * endorse or promote products derived from this software without 10417 * prior written permission. For written permission, please contact 10418 * openssl-core@openssl.org. 10419 * 10420 * 5. Products derived from this software may not be called "OpenSSL" 10421 * nor may "OpenSSL" appear in their names without prior written 10422 * permission of the OpenSSL Project. 10423 * 10424 * 6. Redistributions of any form whatsoever must retain the following 10425 * acknowledgment: 10426 * "This product includes software developed by the OpenSSL Project 10427 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10428 * 10429 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10430 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10431 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10432 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10433 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10434 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10435 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10436 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10437 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10438 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10439 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10440 * OF THE POSSIBILITY OF SUCH DAMAGE. 10441 * ==================================================================== 10442 * 10443 * This product includes cryptographic software written by Eric Young 10444 * (eay@cryptsoft.com). This product includes software written by Tim 10445 * Hudson (tjh@cryptsoft.com). 10446 * 10447 */ 10448 10449 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 10450 /* opensslconf.h */ 10451 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 10452 10453 10454 10455 10456 /* OpenSSL was configured with the following options: */ 10457 # 108 "/usr/include/openssl/opensslconf.h" 3 4 10458 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 10459 asks for it. This is a transient feature that is provided for those 10460 who haven't had the time to do the appropriate changes in their 10461 applications. */ 10462 # 204 "/usr/include/openssl/opensslconf.h" 3 4 10463 /* crypto/opensslconf.h.in */ 10464 10465 /* Generate 80386 code? */ 10466 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 10467 # 64 "/usr/include/openssl/asn1.h" 2 3 4 10468 10469 # 1 "/usr/include/openssl/bio.h" 1 3 4 10470 /* crypto/bio/bio.h */ 10471 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10472 * All rights reserved. 10473 * 10474 * This package is an SSL implementation written 10475 * by Eric Young (eay@cryptsoft.com). 10476 * The implementation was written so as to conform with Netscapes SSL. 10477 * 10478 * This library is free for commercial and non-commercial use as long as 10479 * the following conditions are aheared to. The following conditions 10480 * apply to all code found in this distribution, be it the RC4, RSA, 10481 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10482 * included with this distribution is covered by the same copyright terms 10483 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10484 * 10485 * Copyright remains Eric Young's, and as such any Copyright notices in 10486 * the code are not to be removed. 10487 * If this package is used in a product, Eric Young should be given attribution 10488 * as the author of the parts of the library used. 10489 * This can be in the form of a textual message at program startup or 10490 * in documentation (online or textual) provided with the package. 10491 * 10492 * Redistribution and use in source and binary forms, with or without 10493 * modification, are permitted provided that the following conditions 10494 * are met: 10495 * 1. Redistributions of source code must retain the copyright 10496 * notice, this list of conditions and the following disclaimer. 10497 * 2. Redistributions in binary form must reproduce the above copyright 10498 * notice, this list of conditions and the following disclaimer in the 10499 * documentation and/or other materials provided with the distribution. 10500 * 3. All advertising materials mentioning features or use of this software 10501 * must display the following acknowledgement: 10502 * "This product includes cryptographic software written by 10503 * Eric Young (eay@cryptsoft.com)" 10504 * The word 'cryptographic' can be left out if the rouines from the library 10505 * being used are not cryptographic related :-). 10506 * 4. If you include any Windows specific code (or a derivative thereof) from 10507 * the apps directory (application code) you must include an acknowledgement: 10508 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10509 * 10510 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10511 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10512 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10513 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10514 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10515 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10516 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10517 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10518 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10519 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10520 * SUCH DAMAGE. 10521 * 10522 * The licence and distribution terms for any publically available version or 10523 * derivative of this code cannot be changed. i.e. this code cannot simply be 10524 * copied and put under another distribution licence 10525 * [including the GNU Public Licence.] 10526 */ 10527 # 66 "/usr/include/openssl/asn1.h" 2 3 4 10528 10529 # 1 "/usr/include/openssl/stack.h" 1 3 4 10530 /* crypto/stack/stack.h */ 10531 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10532 * All rights reserved. 10533 * 10534 * This package is an SSL implementation written 10535 * by Eric Young (eay@cryptsoft.com). 10536 * The implementation was written so as to conform with Netscapes SSL. 10537 * 10538 * This library is free for commercial and non-commercial use as long as 10539 * the following conditions are aheared to. The following conditions 10540 * apply to all code found in this distribution, be it the RC4, RSA, 10541 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10542 * included with this distribution is covered by the same copyright terms 10543 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10544 * 10545 * Copyright remains Eric Young's, and as such any Copyright notices in 10546 * the code are not to be removed. 10547 * If this package is used in a product, Eric Young should be given attribution 10548 * as the author of the parts of the library used. 10549 * This can be in the form of a textual message at program startup or 10550 * in documentation (online or textual) provided with the package. 10551 * 10552 * Redistribution and use in source and binary forms, with or without 10553 * modification, are permitted provided that the following conditions 10554 * are met: 10555 * 1. Redistributions of source code must retain the copyright 10556 * notice, this list of conditions and the following disclaimer. 10557 * 2. Redistributions in binary form must reproduce the above copyright 10558 * notice, this list of conditions and the following disclaimer in the 10559 * documentation and/or other materials provided with the distribution. 10560 * 3. All advertising materials mentioning features or use of this software 10561 * must display the following acknowledgement: 10562 * "This product includes cryptographic software written by 10563 * Eric Young (eay@cryptsoft.com)" 10564 * The word 'cryptographic' can be left out if the rouines from the library 10565 * being used are not cryptographic related :-). 10566 * 4. If you include any Windows specific code (or a derivative thereof) from 10567 * the apps directory (application code) you must include an acknowledgement: 10568 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10569 * 10570 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10571 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10572 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10573 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10574 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10575 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10576 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10577 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10578 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10579 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10580 * SUCH DAMAGE. 10581 * 10582 * The licence and distribution terms for any publically available version or 10583 * derivative of this code cannot be changed. i.e. this code cannot simply be 10584 * copied and put under another distribution licence 10585 * [including the GNU Public Licence.] 10586 */ 10587 # 68 "/usr/include/openssl/asn1.h" 2 3 4 10588 # 1 "/usr/include/openssl/safestack.h" 1 3 4 10589 /* ==================================================================== 10590 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 10591 * 10592 * Redistribution and use in source and binary forms, with or without 10593 * modification, are permitted provided that the following conditions 10594 * are met: 10595 * 10596 * 1. Redistributions of source code must retain the above copyright 10597 * notice, this list of conditions and the following disclaimer. 10598 * 10599 * 2. Redistributions in binary form must reproduce the above copyright 10600 * notice, this list of conditions and the following disclaimer in 10601 * the documentation and/or other materials provided with the 10602 * distribution. 10603 * 10604 * 3. All advertising materials mentioning features or use of this 10605 * software must display the following acknowledgment: 10606 * "This product includes software developed by the OpenSSL Project 10607 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10608 * 10609 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10610 * endorse or promote products derived from this software without 10611 * prior written permission. For written permission, please contact 10612 * openssl-core@openssl.org. 10613 * 10614 * 5. Products derived from this software may not be called "OpenSSL" 10615 * nor may "OpenSSL" appear in their names without prior written 10616 * permission of the OpenSSL Project. 10617 * 10618 * 6. Redistributions of any form whatsoever must retain the following 10619 * acknowledgment: 10620 * "This product includes software developed by the OpenSSL Project 10621 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10622 * 10623 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10624 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10625 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10626 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10627 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10628 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10629 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10630 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10631 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10632 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10633 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10634 * OF THE POSSIBILITY OF SUCH DAMAGE. 10635 * ==================================================================== 10636 * 10637 * This product includes cryptographic software written by Eric Young 10638 * (eay@cryptsoft.com). This product includes software written by Tim 10639 * Hudson (tjh@cryptsoft.com). 10640 * 10641 */ 10642 # 69 "/usr/include/openssl/asn1.h" 2 3 4 10643 10644 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 10645 /* ==================================================================== 10646 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 10647 * 10648 * Redistribution and use in source and binary forms, with or without 10649 * modification, are permitted provided that the following conditions 10650 * are met: 10651 * 10652 * 1. Redistributions of source code must retain the above copyright 10653 * notice, this list of conditions and the following disclaimer. 10654 * 10655 * 2. Redistributions in binary form must reproduce the above copyright 10656 * notice, this list of conditions and the following disclaimer in 10657 * the documentation and/or other materials provided with the 10658 * distribution. 10659 * 10660 * 3. All advertising materials mentioning features or use of this 10661 * software must display the following acknowledgment: 10662 * "This product includes software developed by the OpenSSL Project 10663 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10664 * 10665 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10666 * endorse or promote products derived from this software without 10667 * prior written permission. For written permission, please contact 10668 * openssl-core@openssl.org. 10669 * 10670 * 5. Products derived from this software may not be called "OpenSSL" 10671 * nor may "OpenSSL" appear in their names without prior written 10672 * permission of the OpenSSL Project. 10673 * 10674 * 6. Redistributions of any form whatsoever must retain the following 10675 * acknowledgment: 10676 * "This product includes software developed by the OpenSSL Project 10677 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10678 * 10679 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10680 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10681 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10682 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10683 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10684 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10685 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10686 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10687 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10688 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10689 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10690 * OF THE POSSIBILITY OF SUCH DAMAGE. 10691 * ==================================================================== 10692 * 10693 * This product includes cryptographic software written by Eric Young 10694 * (eay@cryptsoft.com). This product includes software written by Tim 10695 * Hudson (tjh@cryptsoft.com). 10696 * 10697 */ 10698 # 71 "/usr/include/openssl/asn1.h" 2 3 4 10699 10700 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 10701 /* ==================================================================== 10702 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 10703 * 10704 * Redistribution and use in source and binary forms, with or without 10705 * modification, are permitted provided that the following conditions 10706 * are met: 10707 * 10708 * 1. Redistributions of source code must retain the above copyright 10709 * notice, this list of conditions and the following disclaimer. 10710 * 10711 * 2. Redistributions in binary form must reproduce the above copyright 10712 * notice, this list of conditions and the following disclaimer in 10713 * the documentation and/or other materials provided with the 10714 * distribution. 10715 * 10716 * 3. All advertising materials mentioning features or use of this 10717 * software must display the following acknowledgment: 10718 * "This product includes software developed by the OpenSSL Project 10719 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10720 * 10721 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10722 * endorse or promote products derived from this software without 10723 * prior written permission. For written permission, please contact 10724 * openssl-core@openssl.org. 10725 * 10726 * 5. Products derived from this software may not be called "OpenSSL" 10727 * nor may "OpenSSL" appear in their names without prior written 10728 * permission of the OpenSSL Project. 10729 * 10730 * 6. Redistributions of any form whatsoever must retain the following 10731 * acknowledgment: 10732 * "This product includes software developed by the OpenSSL Project 10733 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10734 * 10735 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10736 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10737 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10738 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10739 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10740 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10741 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10742 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10743 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10744 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10745 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10746 * OF THE POSSIBILITY OF SUCH DAMAGE. 10747 * ==================================================================== 10748 * 10749 * This product includes cryptographic software written by Eric Young 10750 * (eay@cryptsoft.com). This product includes software written by Tim 10751 * Hudson (tjh@cryptsoft.com). 10752 * 10753 */ 10754 # 73 "/usr/include/openssl/asn1.h" 2 3 4 10755 10756 # 1 "/usr/include/openssl/bn.h" 1 3 4 10757 /* crypto/bn/bn.h */ 10758 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 10759 * All rights reserved. 10760 * 10761 * This package is an SSL implementation written 10762 * by Eric Young (eay@cryptsoft.com). 10763 * The implementation was written so as to conform with Netscapes SSL. 10764 * 10765 * This library is free for commercial and non-commercial use as long as 10766 * the following conditions are aheared to. The following conditions 10767 * apply to all code found in this distribution, be it the RC4, RSA, 10768 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10769 * included with this distribution is covered by the same copyright terms 10770 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10771 * 10772 * Copyright remains Eric Young's, and as such any Copyright notices in 10773 * the code are not to be removed. 10774 * If this package is used in a product, Eric Young should be given attribution 10775 * as the author of the parts of the library used. 10776 * This can be in the form of a textual message at program startup or 10777 * in documentation (online or textual) provided with the package. 10778 * 10779 * Redistribution and use in source and binary forms, with or without 10780 * modification, are permitted provided that the following conditions 10781 * are met: 10782 * 1. Redistributions of source code must retain the copyright 10783 * notice, this list of conditions and the following disclaimer. 10784 * 2. Redistributions in binary form must reproduce the above copyright 10785 * notice, this list of conditions and the following disclaimer in the 10786 * documentation and/or other materials provided with the distribution. 10787 * 3. All advertising materials mentioning features or use of this software 10788 * must display the following acknowledgement: 10789 * "This product includes cryptographic software written by 10790 * Eric Young (eay@cryptsoft.com)" 10791 * The word 'cryptographic' can be left out if the rouines from the library 10792 * being used are not cryptographic related :-). 10793 * 4. If you include any Windows specific code (or a derivative thereof) from 10794 * the apps directory (application code) you must include an acknowledgement: 10795 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10796 * 10797 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10798 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10799 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10800 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10801 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10802 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10803 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10804 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10805 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10806 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10807 * SUCH DAMAGE. 10808 * 10809 * The licence and distribution terms for any publically available version or 10810 * derivative of this code cannot be changed. i.e. this code cannot simply be 10811 * copied and put under another distribution licence 10812 * [including the GNU Public Licence.] 10813 */ 10814 /* ==================================================================== 10815 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 10816 * 10817 * Redistribution and use in source and binary forms, with or without 10818 * modification, are permitted provided that the following conditions 10819 * are met: 10820 * 10821 * 1. Redistributions of source code must retain the above copyright 10822 * notice, this list of conditions and the following disclaimer. 10823 * 10824 * 2. Redistributions in binary form must reproduce the above copyright 10825 * notice, this list of conditions and the following disclaimer in 10826 * the documentation and/or other materials provided with the 10827 * distribution. 10828 * 10829 * 3. All advertising materials mentioning features or use of this 10830 * software must display the following acknowledgment: 10831 * "This product includes software developed by the OpenSSL Project 10832 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10833 * 10834 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10835 * endorse or promote products derived from this software without 10836 * prior written permission. For written permission, please contact 10837 * openssl-core@openssl.org. 10838 * 10839 * 5. Products derived from this software may not be called "OpenSSL" 10840 * nor may "OpenSSL" appear in their names without prior written 10841 * permission of the OpenSSL Project. 10842 * 10843 * 6. Redistributions of any form whatsoever must retain the following 10844 * acknowledgment: 10845 * "This product includes software developed by the OpenSSL Project 10846 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10847 * 10848 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10849 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10850 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10851 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10852 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10853 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10854 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10855 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10856 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10857 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10858 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10859 * OF THE POSSIBILITY OF SUCH DAMAGE. 10860 * ==================================================================== 10861 * 10862 * This product includes cryptographic software written by Eric Young 10863 * (eay@cryptsoft.com). This product includes software written by Tim 10864 * Hudson (tjh@cryptsoft.com). 10865 * 10866 */ 10867 /* ==================================================================== 10868 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 10869 * 10870 * Portions of the attached software ("Contribution") are developed by 10871 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 10872 * 10873 * The Contribution is licensed pursuant to the Eric Young open source 10874 * license provided above. 10875 * 10876 * The binary polynomial arithmetic software is originally written by 10877 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 10878 * 10879 */ 10880 10881 10882 10883 10884 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 3 4 10885 /* 10886 * CDDL HEADER START 10887 * 10888 * The contents of this file are subject to the terms of the 10889 * Common Development and Distribution License (the "License"). 10890 * You may not use this file except in compliance with the License. 10891 * 10892 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10893 * or http://www.opensolaris.org/os/licensing. 10894 * See the License for the specific language governing permissions 10895 * and limitations under the License. 10896 * 10897 * When distributing Covered Code, include this CDDL HEADER in each 10898 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10899 * If applicable, add the following below this CDDL HEADER, with the 10900 * fields enclosed by brackets "[]" replaced with your own identifying 10901 * information: Portions Copyright [yyyy] [name of copyright owner] 10902 * 10903 * CDDL HEADER END 10904 */ 10905 10906 /* 10907 * Copyright (c) 2013 Gary Mills 10908 * 10909 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 10910 * Use is subject to license terms. 10911 */ 10912 10913 /* Copyright (c) 1988 AT&T */ 10914 /* All Rights Reserved */ 10915 # 129 "/usr/include/openssl/bn.h" 2 3 4 10916 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 10917 /* e_os2.h */ 10918 /* ==================================================================== 10919 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 10920 * 10921 * Redistribution and use in source and binary forms, with or without 10922 * modification, are permitted provided that the following conditions 10923 * are met: 10924 * 10925 * 1. Redistributions of source code must retain the above copyright 10926 * notice, this list of conditions and the following disclaimer. 10927 * 10928 * 2. Redistributions in binary form must reproduce the above copyright 10929 * notice, this list of conditions and the following disclaimer in 10930 * the documentation and/or other materials provided with the 10931 * distribution. 10932 * 10933 * 3. All advertising materials mentioning features or use of this 10934 * software must display the following acknowledgment: 10935 * "This product includes software developed by the OpenSSL Project 10936 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10937 * 10938 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10939 * endorse or promote products derived from this software without 10940 * prior written permission. For written permission, please contact 10941 * openssl-core@openssl.org. 10942 * 10943 * 5. Products derived from this software may not be called "OpenSSL" 10944 * nor may "OpenSSL" appear in their names without prior written 10945 * permission of the OpenSSL Project. 10946 * 10947 * 6. Redistributions of any form whatsoever must retain the following 10948 * acknowledgment: 10949 * "This product includes software developed by the OpenSSL Project 10950 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10951 * 10952 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10953 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10954 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10955 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10956 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10957 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10958 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10959 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10960 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10961 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10962 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10963 * OF THE POSSIBILITY OF SUCH DAMAGE. 10964 * ==================================================================== 10965 * 10966 * This product includes cryptographic software written by Eric Young 10967 * (eay@cryptsoft.com). This product includes software written by Tim 10968 * Hudson (tjh@cryptsoft.com). 10969 * 10970 */ 10971 10972 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 10973 /* opensslconf.h */ 10974 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 10975 10976 10977 10978 10979 /* OpenSSL was configured with the following options: */ 10980 # 108 "/usr/include/openssl/opensslconf.h" 3 4 10981 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 10982 asks for it. This is a transient feature that is provided for those 10983 who haven't had the time to do the appropriate changes in their 10984 applications. */ 10985 # 204 "/usr/include/openssl/opensslconf.h" 3 4 10986 /* crypto/opensslconf.h.in */ 10987 10988 /* Generate 80386 code? */ 10989 # 272 "/usr/include/openssl/opensslconf.h" 3 4 10990 /* 10991 * OpenSSL revision 1.521 from 2005-12-15 in OpenSSL_1_0_0-stable branch changed 10992 * 64 bit sparcv9 configuration from SIXTY_FOUR_BIT_LONG to BN_LLONG. 10993 */ 10994 10995 10996 10997 10998 10999 11000 /* Should we define BN_DIV2W here? */ 11001 11002 /* Only one for the following should be defined */ 11003 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 11004 # 130 "/usr/include/openssl/bn.h" 2 3 4 11005 11006 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 11007 /* 11008 * CDDL HEADER START 11009 * 11010 * The contents of this file are subject to the terms of the 11011 * Common Development and Distribution License (the "License"). 11012 * You may not use this file except in compliance with the License. 11013 * 11014 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11015 * or http://www.opensolaris.org/os/licensing. 11016 * See the License for the specific language governing permissions 11017 * and limitations under the License. 11018 * 11019 * When distributing Covered Code, include this CDDL HEADER in each 11020 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 11021 * If applicable, add the following below this CDDL HEADER, with the 11022 * fields enclosed by brackets "[]" replaced with your own identifying 11023 * information: Portions Copyright [yyyy] [name of copyright owner] 11024 * 11025 * CDDL HEADER END 11026 */ 11027 11028 /* 11029 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 11030 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 11031 */ 11032 11033 /* Copyright (c) 1988 AT&T */ 11034 /* All Rights Reserved */ 11035 11036 /* 11037 * User-visible pieces of the ANSI C standard I/O package. 11038 */ 11039 # 132 "/usr/include/openssl/bn.h" 2 3 4 11040 11041 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 11042 /* ==================================================================== 11043 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 11044 * 11045 * Redistribution and use in source and binary forms, with or without 11046 * modification, are permitted provided that the following conditions 11047 * are met: 11048 * 11049 * 1. Redistributions of source code must retain the above copyright 11050 * notice, this list of conditions and the following disclaimer. 11051 * 11052 * 2. Redistributions in binary form must reproduce the above copyright 11053 * notice, this list of conditions and the following disclaimer in 11054 * the documentation and/or other materials provided with the 11055 * distribution. 11056 * 11057 * 3. All advertising materials mentioning features or use of this 11058 * software must display the following acknowledgment: 11059 * "This product includes software developed by the OpenSSL Project 11060 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11061 * 11062 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11063 * endorse or promote products derived from this software without 11064 * prior written permission. For written permission, please contact 11065 * openssl-core@openssl.org. 11066 * 11067 * 5. Products derived from this software may not be called "OpenSSL" 11068 * nor may "OpenSSL" appear in their names without prior written 11069 * permission of the OpenSSL Project. 11070 * 11071 * 6. Redistributions of any form whatsoever must retain the following 11072 * acknowledgment: 11073 * "This product includes software developed by the OpenSSL Project 11074 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11075 * 11076 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11077 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11078 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11079 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11080 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11081 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11082 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11083 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11084 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11085 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11086 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11087 * OF THE POSSIBILITY OF SUCH DAMAGE. 11088 * ==================================================================== 11089 * 11090 * This product includes cryptographic software written by Eric Young 11091 * (eay@cryptsoft.com). This product includes software written by Tim 11092 * Hudson (tjh@cryptsoft.com). 11093 * 11094 */ 11095 # 134 "/usr/include/openssl/bn.h" 2 3 4 11096 # 1 "/usr/include/openssl/crypto.h" 1 3 4 11097 /* crypto/crypto.h */ 11098 /* ==================================================================== 11099 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 11100 * 11101 * Redistribution and use in source and binary forms, with or without 11102 * modification, are permitted provided that the following conditions 11103 * are met: 11104 * 11105 * 1. Redistributions of source code must retain the above copyright 11106 * notice, this list of conditions and the following disclaimer. 11107 * 11108 * 2. Redistributions in binary form must reproduce the above copyright 11109 * notice, this list of conditions and the following disclaimer in 11110 * the documentation and/or other materials provided with the 11111 * distribution. 11112 * 11113 * 3. All advertising materials mentioning features or use of this 11114 * software must display the following acknowledgment: 11115 * "This product includes software developed by the OpenSSL Project 11116 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11117 * 11118 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11119 * endorse or promote products derived from this software without 11120 * prior written permission. For written permission, please contact 11121 * openssl-core@openssl.org. 11122 * 11123 * 5. Products derived from this software may not be called "OpenSSL" 11124 * nor may "OpenSSL" appear in their names without prior written 11125 * permission of the OpenSSL Project. 11126 * 11127 * 6. Redistributions of any form whatsoever must retain the following 11128 * acknowledgment: 11129 * "This product includes software developed by the OpenSSL Project 11130 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11131 * 11132 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11133 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11134 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11135 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11136 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11137 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11138 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11139 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11140 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11141 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11142 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11143 * OF THE POSSIBILITY OF SUCH DAMAGE. 11144 * ==================================================================== 11145 * 11146 * This product includes cryptographic software written by Eric Young 11147 * (eay@cryptsoft.com). This product includes software written by Tim 11148 * Hudson (tjh@cryptsoft.com). 11149 * 11150 */ 11151 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11152 * All rights reserved. 11153 * 11154 * This package is an SSL implementation written 11155 * by Eric Young (eay@cryptsoft.com). 11156 * The implementation was written so as to conform with Netscapes SSL. 11157 * 11158 * This library is free for commercial and non-commercial use as long as 11159 * the following conditions are aheared to. The following conditions 11160 * apply to all code found in this distribution, be it the RC4, RSA, 11161 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11162 * included with this distribution is covered by the same copyright terms 11163 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11164 * 11165 * Copyright remains Eric Young's, and as such any Copyright notices in 11166 * the code are not to be removed. 11167 * If this package is used in a product, Eric Young should be given attribution 11168 * as the author of the parts of the library used. 11169 * This can be in the form of a textual message at program startup or 11170 * in documentation (online or textual) provided with the package. 11171 * 11172 * Redistribution and use in source and binary forms, with or without 11173 * modification, are permitted provided that the following conditions 11174 * are met: 11175 * 1. Redistributions of source code must retain the copyright 11176 * notice, this list of conditions and the following disclaimer. 11177 * 2. Redistributions in binary form must reproduce the above copyright 11178 * notice, this list of conditions and the following disclaimer in the 11179 * documentation and/or other materials provided with the distribution. 11180 * 3. All advertising materials mentioning features or use of this software 11181 * must display the following acknowledgement: 11182 * "This product includes cryptographic software written by 11183 * Eric Young (eay@cryptsoft.com)" 11184 * The word 'cryptographic' can be left out if the rouines from the library 11185 * being used are not cryptographic related :-). 11186 * 4. If you include any Windows specific code (or a derivative thereof) from 11187 * the apps directory (application code) you must include an acknowledgement: 11188 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11189 * 11190 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11191 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11192 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11193 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11194 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11195 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11196 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11197 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11198 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11199 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11200 * SUCH DAMAGE. 11201 * 11202 * The licence and distribution terms for any publically available version or 11203 * derivative of this code cannot be changed. i.e. this code cannot simply be 11204 * copied and put under another distribution licence 11205 * [including the GNU Public Licence.] 11206 */ 11207 /* ==================================================================== 11208 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 11209 * ECDH support in OpenSSL originally developed by 11210 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 11211 */ 11212 # 135 "/usr/include/openssl/bn.h" 2 3 4 11213 11214 11215 11216 11217 11218 /* 11219 * These preprocessor symbols control various aspects of the bignum headers 11220 * and library code. They're not defined by any "normal" configuration, as 11221 * they are intended for development and testing purposes. NB: defining all 11222 * three can be useful for debugging application code as well as openssl 11223 * itself. BN_DEBUG - turn on various debugging alterations to the bignum 11224 * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up 11225 * mismanagement of bignum internals. You must also define BN_DEBUG. 11226 */ 11227 /* #define BN_DEBUG */ 11228 /* #define BN_DEBUG_RAND */ 11229 11230 11231 11232 11233 11234 11235 11236 /* 11237 * This next option uses the C libraries (2 word)/(1 word) function. If it is 11238 * not defined, I use my C version (which is slower). The reason for this 11239 * flag is that when the particular C compiler library routine is used, and 11240 * the library is linked with a different compiler, the library is missing. 11241 * This mostly happens when the library is built with gcc and then linked 11242 * using normal cc. This would be a common occurrence because gcc normally 11243 * produces code that is 2 times faster than system compilers for the big 11244 * number stuff. For machines with only one compiler (or shared libraries), 11245 * this should be on. Again this in only really a problem on machines using 11246 * "long long's", are 32bit, and are not using my assembler code. 11247 */ 11248 11249 11250 11251 11252 11253 11254 11255 /* 11256 * assuming long is 64bit - this is the DEC Alpha unsigned long long is only 11257 * 64 bits :-(, don't define BN_LLONG for the DEC Alpha 11258 */ 11259 # 203 "/usr/include/openssl/bn.h" 3 4 11260 /* 11261 * This is where the long long data type is 64 bits, but long is 32. For 11262 * machines where there are 64bit registers, this is the mode to use. IRIX, 11263 * on R4000 and above should use this mode, along with the relevant assembler 11264 * code :-). Do NOT define BN_LLONG. 11265 */ 11266 # 265 "/usr/include/openssl/bn.h" 3 4 11267 /* 11268 * avoid leaking exponent information through timing, 11269 * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, 11270 * BN_div() will call BN_div_no_branch, 11271 * BN_mod_inverse() will call BN_mod_inverse_no_branch. 11272 */ 11273 # 284 "/usr/include/openssl/bn.h" 3 4 11274 /* used for debuging */ 11275 11276 11277 11278 11279 /* 11280 * get a clone of a BIGNUM with changed flags, for *temporary* use only (the 11281 * two BIGNUMs cannot not be used in parallel!) 11282 */ 11283 # 302 "/usr/include/openssl/bn.h" 3 4 11284 /* Already declared in ossl_typ.h */ 11285 # 313 "/usr/include/openssl/bn.h" 3 4 11286 struct bignum_st { 11287 unsigned int *d; /* Pointer to an array of 'BN_BITS2' bit 11288 * chunks. */ 11289 int top; /* Index of last used d +1. */ 11290 /* The next are internal book keeping for bn_expand. */ 11291 int dmax; /* Size of the d array. */ 11292 int neg; /* one if the number is negative */ 11293 int flags; 11294 }; 11295 11296 /* Used for montgomery multiplication */ 11297 struct bn_mont_ctx_st { 11298 int ri; /* number of bits in R */ 11299 BIGNUM RR; /* used to convert to montgomery form */ 11300 BIGNUM N; /* The modulus */ 11301 BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only 11302 * stored for bignum algorithm) */ 11303 unsigned int n0[2]; /* least significant word(s) of Ni; (type 11304 * changed with 0.9.9, was "BN_ULONG n0;" 11305 * before) */ 11306 int flags; 11307 }; 11308 11309 /* 11310 * Used for reciprocal division/mod functions It cannot be shared between 11311 * threads 11312 */ 11313 struct bn_recp_ctx_st { 11314 BIGNUM N; /* the divisor */ 11315 BIGNUM Nr; /* the reciprocal */ 11316 int num_bits; 11317 int shift; 11318 int flags; 11319 }; 11320 11321 /* Used for slow "generation" functions. */ 11322 struct bn_gencb_st { 11323 unsigned int ver; /* To handle binary (in)compatibility */ 11324 void *arg; /* callback-specific data */ 11325 union { 11326 /* if(ver==1) - handles old style callbacks */ 11327 void (*cb_1) (int, int, void *); 11328 /* if(ver==2) - new callback style */ 11329 int (*cb_2) (int, int, BN_GENCB *); 11330 } cb; 11331 }; 11332 /* Wrapper function to make using BN_GENCB easier, */ 11333 int BN_GENCB_call(BN_GENCB *cb, int a, int b); 11334 /* Macro to populate a BN_GENCB structure with an "old"-style callback */ 11335 11336 11337 11338 11339 11340 /* Macro to populate a BN_GENCB structure with a "new"-style callback */ 11341 # 377 "/usr/include/openssl/bn.h" 3 4 11342 /* 11343 * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations 11344 * that will be done for checking that a random number is probably prime. The 11345 * error rate for accepting a composite number as prime depends on the size of 11346 * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, 11347 * and so the level is what you would expect for a key of double the size of the 11348 * prime. 11349 * 11350 * This table is generated using the algorithm of FIPS PUB 186-4 11351 * Digital Signature Standard (DSS), section F.1, page 117. 11352 * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) 11353 * 11354 * The following magma script was used to generate the output: 11355 * securitybits:=125; 11356 * k:=1024; 11357 * for t:=1 to 65 do 11358 * for M:=3 to Floor(2*Sqrt(k-1)-1) do 11359 * S:=0; 11360 * // Sum over m 11361 * for m:=3 to M do 11362 * s:=0; 11363 * // Sum over j 11364 * for j:=2 to m do 11365 * s+:=(RealField(32)!2)^-(j+(k-1)/j); 11366 * end for; 11367 * S+:=2^(m-(m-1)*t)*s; 11368 * end for; 11369 * A:=2^(k-2-M*t); 11370 * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; 11371 * pkt:=2.00743*Log(2)*k*2^-k*(A+B); 11372 * seclevel:=Floor(-Log(2,pkt)); 11373 * if seclevel ge securitybits then 11374 * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; 11375 * break; 11376 * end if; 11377 * end for; 11378 * if seclevel ge securitybits then break; end if; 11379 * end for; 11380 * 11381 * It can be run online at: 11382 * http://magma.maths.usyd.edu.au/calc 11383 * 11384 * And will output: 11385 * k: 1024, security: 129 bits (t: 6, M: 23) 11386 * 11387 * k is the number of bits of the prime, securitybits is the level we want to 11388 * reach. 11389 * 11390 * prime length | RSA key size | # MR tests | security level 11391 * -------------+--------------|------------+--------------- 11392 * (b) >= 6394 | >= 12788 | 3 | 256 bit 11393 * (b) >= 3747 | >= 7494 | 3 | 192 bit 11394 * (b) >= 1345 | >= 2690 | 4 | 128 bit 11395 * (b) >= 1080 | >= 2160 | 5 | 128 bit 11396 * (b) >= 852 | >= 1704 | 5 | 112 bit 11397 * (b) >= 476 | >= 952 | 5 | 80 bit 11398 * (b) >= 400 | >= 800 | 6 | 80 bit 11399 * (b) >= 347 | >= 694 | 7 | 80 bit 11400 * (b) >= 308 | >= 616 | 8 | 80 bit 11401 * (b) >= 55 | >= 110 | 27 | 64 bit 11402 * (b) >= 6 | >= 12 | 34 | 64 bit 11403 */ 11404 # 451 "/usr/include/openssl/bn.h" 3 4 11405 /* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */ 11406 # 472 "/usr/include/openssl/bn.h" 3 4 11407 const BIGNUM *BN_value_one(void); 11408 char *BN_options(void); 11409 BN_CTX *BN_CTX_new(void); 11410 11411 void BN_CTX_init(BN_CTX *c); 11412 11413 void BN_CTX_free(BN_CTX *c); 11414 void BN_CTX_start(BN_CTX *ctx); 11415 BIGNUM *BN_CTX_get(BN_CTX *ctx); 11416 void BN_CTX_end(BN_CTX *ctx); 11417 int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); 11418 int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); 11419 int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); 11420 int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); 11421 int BN_num_bits(const BIGNUM *a); 11422 int BN_num_bits_word(unsigned int); 11423 BIGNUM *BN_new(void); 11424 void BN_init(BIGNUM *); 11425 void BN_clear_free(BIGNUM *a); 11426 BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); 11427 void BN_swap(BIGNUM *a, BIGNUM *b); 11428 BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); 11429 int BN_bn2bin(const BIGNUM *a, unsigned char *to); 11430 BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); 11431 int BN_bn2mpi(const BIGNUM *a, unsigned char *to); 11432 int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11433 int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11434 int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11435 int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11436 int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 11437 int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); 11438 /** BN_set_negative sets sign of a BIGNUM 11439 * \param b pointer to the BIGNUM object 11440 * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise 11441 */ 11442 void BN_set_negative(BIGNUM *b, int n); 11443 /** BN_is_negative returns 1 if the BIGNUM is negative 11444 * \param a pointer to the BIGNUM object 11445 * \return 1 if a < 0 and 0 otherwise 11446 */ 11447 11448 11449 int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, 11450 BN_CTX *ctx); 11451 11452 int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); 11453 int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 11454 BN_CTX *ctx); 11455 int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11456 const BIGNUM *m); 11457 int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 11458 BN_CTX *ctx); 11459 int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11460 const BIGNUM *m); 11461 int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 11462 BN_CTX *ctx); 11463 int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 11464 int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 11465 int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); 11466 int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, 11467 BN_CTX *ctx); 11468 int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); 11469 11470 unsigned int BN_mod_word(const BIGNUM *a, unsigned int w); 11471 unsigned int BN_div_word(BIGNUM *a, unsigned int w); 11472 int BN_mul_word(BIGNUM *a, unsigned int w); 11473 int BN_add_word(BIGNUM *a, unsigned int w); 11474 int BN_sub_word(BIGNUM *a, unsigned int w); 11475 int BN_set_word(BIGNUM *a, unsigned int w); 11476 unsigned int BN_get_word(const BIGNUM *a); 11477 11478 int BN_cmp(const BIGNUM *a, const BIGNUM *b); 11479 void BN_free(BIGNUM *a); 11480 int BN_is_bit_set(const BIGNUM *a, int n); 11481 int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); 11482 int BN_lshift1(BIGNUM *r, const BIGNUM *a); 11483 int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11484 11485 int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11486 const BIGNUM *m, BN_CTX *ctx); 11487 int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11488 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 11489 int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, 11490 const BIGNUM *m, BN_CTX *ctx, 11491 BN_MONT_CTX *in_mont); 11492 int BN_mod_exp_mont_word(BIGNUM *r, unsigned int a, const BIGNUM *p, 11493 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 11494 int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, 11495 const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, 11496 BN_CTX *ctx, BN_MONT_CTX *m_ctx); 11497 int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11498 const BIGNUM *m, BN_CTX *ctx); 11499 11500 int BN_mask_bits(BIGNUM *a, int n); 11501 11502 int BN_print_fp(FILE *fp, const BIGNUM *a); 11503 11504 11505 int BN_print(BIO *fp, const BIGNUM *a); 11506 11507 11508 11509 int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); 11510 int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); 11511 int BN_rshift1(BIGNUM *r, const BIGNUM *a); 11512 void BN_clear(BIGNUM *a); 11513 BIGNUM *BN_dup(const BIGNUM *a); 11514 int BN_ucmp(const BIGNUM *a, const BIGNUM *b); 11515 int BN_set_bit(BIGNUM *a, int n); 11516 int BN_clear_bit(BIGNUM *a, int n); 11517 char *BN_bn2hex(const BIGNUM *a); 11518 char *BN_bn2dec(const BIGNUM *a); 11519 int BN_hex2bn(BIGNUM **a, const char *str); 11520 int BN_dec2bn(BIGNUM **a, const char *str); 11521 int BN_asc2bn(BIGNUM **a, const char *str); 11522 int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 11523 int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns 11524 * -2 for 11525 * error */ 11526 BIGNUM *BN_mod_inverse(BIGNUM *ret, 11527 const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 11528 BIGNUM *BN_mod_sqrt(BIGNUM *ret, 11529 const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 11530 11531 void BN_consttime_swap(unsigned int swap, BIGNUM *a, BIGNUM *b, int nwords); 11532 11533 /* Deprecated versions */ 11534 11535 BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, 11536 const BIGNUM *add, const BIGNUM *rem, 11537 void (*callback) (int, int, void *), void *cb_arg); 11538 int BN_is_prime(const BIGNUM *p, int nchecks, 11539 void (*callback) (int, int, void *), 11540 BN_CTX *ctx, void *cb_arg); 11541 int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, 11542 void (*callback) (int, int, void *), BN_CTX *ctx, 11543 void *cb_arg, int do_trial_division); 11544 11545 11546 /* Newer versions */ 11547 int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, 11548 const BIGNUM *rem, BN_GENCB *cb); 11549 int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); 11550 int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, 11551 int do_trial_division, BN_GENCB *cb); 11552 11553 int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); 11554 11555 int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, 11556 const BIGNUM *Xp, const BIGNUM *Xp1, 11557 const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, 11558 BN_GENCB *cb); 11559 int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, 11560 BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, 11561 BN_CTX *ctx, BN_GENCB *cb); 11562 11563 BN_MONT_CTX *BN_MONT_CTX_new(void); 11564 void BN_MONT_CTX_init(BN_MONT_CTX *ctx); 11565 int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11566 BN_MONT_CTX *mont, BN_CTX *ctx); 11567 11568 11569 int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, 11570 BN_MONT_CTX *mont, BN_CTX *ctx); 11571 void BN_MONT_CTX_free(BN_MONT_CTX *mont); 11572 int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); 11573 BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); 11574 BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, 11575 const BIGNUM *mod, BN_CTX *ctx); 11576 11577 /* BN_BLINDING flags */ 11578 11579 11580 11581 BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); 11582 void BN_BLINDING_free(BN_BLINDING *b); 11583 int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); 11584 int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 11585 int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 11586 int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); 11587 int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, 11588 BN_CTX *); 11589 11590 unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); 11591 void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); 11592 11593 CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); 11594 unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); 11595 void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); 11596 BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, 11597 const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, 11598 int (*bn_mod_exp) (BIGNUM *r, 11599 const BIGNUM *a, 11600 const BIGNUM *p, 11601 const BIGNUM *m, 11602 BN_CTX *ctx, 11603 BN_MONT_CTX *m_ctx), 11604 BN_MONT_CTX *m_ctx); 11605 11606 11607 void BN_set_params(int mul, int high, int low, int mont); 11608 int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ 11609 11610 11611 void BN_RECP_CTX_init(BN_RECP_CTX *recp); 11612 BN_RECP_CTX *BN_RECP_CTX_new(void); 11613 void BN_RECP_CTX_free(BN_RECP_CTX *recp); 11614 int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); 11615 int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, 11616 BN_RECP_CTX *recp, BN_CTX *ctx); 11617 int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11618 const BIGNUM *m, BN_CTX *ctx); 11619 int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, 11620 BN_RECP_CTX *recp, BN_CTX *ctx); 11621 11622 11623 11624 /* 11625 * Functions for arithmetic over binary polynomials represented by BIGNUMs. 11626 * The BIGNUM::neg property of BIGNUMs representing binary polynomials is 11627 * ignored. Note that input arguments are not const so that their bit arrays 11628 * can be expanded to the appropriate size if needed. 11629 */ 11630 11631 /* 11632 * r = a + b 11633 */ 11634 int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 11635 11636 /* 11637 * r=a mod p 11638 */ 11639 int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); 11640 /* r = (a * b) mod p */ 11641 int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11642 const BIGNUM *p, BN_CTX *ctx); 11643 /* r = (a * a) mod p */ 11644 int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11645 /* r = (1 / b) mod p */ 11646 int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); 11647 /* r = (a / b) mod p */ 11648 int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11649 const BIGNUM *p, BN_CTX *ctx); 11650 /* r = (a ^ b) mod p */ 11651 int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11652 const BIGNUM *p, BN_CTX *ctx); 11653 /* r = sqrt(a) mod p */ 11654 int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11655 BN_CTX *ctx); 11656 /* r^2 + r = a mod p */ 11657 int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 11658 BN_CTX *ctx); 11659 11660 /*- 11661 * Some functions allow for representation of the irreducible polynomials 11662 * as an unsigned int[], say p. The irreducible f(t) is then of the form: 11663 * t^p[0] + t^p[1] + ... + t^p[k] 11664 * where m = p[0] > p[1] > ... > p[k] = 0. 11665 */ 11666 /* r = a mod p */ 11667 int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); 11668 /* r = (a * b) mod p */ 11669 int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11670 const int p[], BN_CTX *ctx); 11671 /* r = (a * a) mod p */ 11672 int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], 11673 BN_CTX *ctx); 11674 /* r = (1 / b) mod p */ 11675 int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], 11676 BN_CTX *ctx); 11677 /* r = (a / b) mod p */ 11678 int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11679 const int p[], BN_CTX *ctx); 11680 /* r = (a ^ b) mod p */ 11681 int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 11682 const int p[], BN_CTX *ctx); 11683 /* r = sqrt(a) mod p */ 11684 int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, 11685 const int p[], BN_CTX *ctx); 11686 /* r^2 + r = a mod p */ 11687 int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, 11688 const int p[], BN_CTX *ctx); 11689 int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); 11690 int BN_GF2m_arr2poly(const int p[], BIGNUM *a); 11691 11692 11693 11694 /* 11695 * faster mod functions for the 'NIST primes' 0 <= a < p^2 11696 */ 11697 int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11698 int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11699 int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11700 int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11701 int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 11702 11703 const BIGNUM *BN_get0_nist_prime_192(void); 11704 const BIGNUM *BN_get0_nist_prime_224(void); 11705 const BIGNUM *BN_get0_nist_prime_256(void); 11706 const BIGNUM *BN_get0_nist_prime_384(void); 11707 const BIGNUM *BN_get0_nist_prime_521(void); 11708 11709 /* library internal functions */ 11710 # 788 "/usr/include/openssl/bn.h" 3 4 11711 BIGNUM *bn_expand2(BIGNUM *a, int words); 11712 11713 BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ 11714 11715 11716 /*- 11717 * Bignum consistency macros 11718 * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from 11719 * bignum data after direct manipulations on the data. There is also an 11720 * "internal" macro, bn_check_top(), for verifying that there are no leading 11721 * zeroes. Unfortunately, some auditing is required due to the fact that 11722 * bn_fix_top() has become an overabused duct-tape because bignum data is 11723 * occasionally passed around in an inconsistent state. So the following 11724 * changes have been made to sort this out; 11725 * - bn_fix_top()s implementation has been moved to bn_correct_top() 11726 * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and 11727 * bn_check_top() is as before. 11728 * - if BN_DEBUG *is* defined; 11729 * - bn_check_top() tries to pollute unused words even if the bignum 'top' is 11730 * consistent. (ed: only if BN_DEBUG_RAND is defined) 11731 * - bn_fix_top() maps to bn_check_top() rather than "fixing" anything. 11732 * The idea is to have debug builds flag up inconsistent bignums when they 11733 * occur. If that occurs in a bn_fix_top(), we examine the code in question; if 11734 * the use of bn_fix_top() was appropriate (ie. it follows directly after code 11735 * that manipulates the bignum) it is converted to bn_correct_top(), and if it 11736 * was not appropriate, we convert it permanently to bn_check_top() and track 11737 * down the cause of the bug. Eventually, no internal code should be using the 11738 * bn_fix_top() macro. External applications and libraries should try this with 11739 * their own code too, both in terms of building against the openssl headers 11740 * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it 11741 * defined. This not only improves external code, it provides more test 11742 * coverage for openssl's own code. 11743 */ 11744 # 914 "/usr/include/openssl/bn.h" 3 4 11745 unsigned int bn_mul_add_words(unsigned int *rp, const unsigned int *ap, int num, 11746 unsigned int w); 11747 unsigned int bn_mul_words(unsigned int *rp, const unsigned int *ap, int num, unsigned int w); 11748 void bn_sqr_words(unsigned int *rp, const unsigned int *ap, int num); 11749 unsigned int bn_div_words(unsigned int h, unsigned int l, unsigned int d); 11750 unsigned int bn_add_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp, 11751 int num); 11752 unsigned int bn_sub_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp, 11753 int num); 11754 11755 /* Primes from RFC 2409 */ 11756 BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); 11757 BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); 11758 11759 /* Primes from RFC 3526 */ 11760 BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); 11761 BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); 11762 BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); 11763 BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); 11764 BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); 11765 BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); 11766 11767 int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); 11768 11769 /* BEGIN ERROR CODES */ 11770 /* 11771 * The following lines are auto generated by the script mkerr.pl. Any changes 11772 * made after this point may be overwritten when the script is next run. 11773 */ 11774 void ERR_load_BN_strings(void); 11775 11776 /* Error codes for the BN functions. */ 11777 11778 /* Function codes. */ 11779 # 991 "/usr/include/openssl/bn.h" 3 4 11780 /* Reason codes. */ 11781 # 75 "/usr/include/openssl/asn1.h" 2 3 4 11782 # 132 "/usr/include/openssl/asn1.h" 3 4 11783 /* For use with d2i_ASN1_type_bytes() */ 11784 # 152 "/usr/include/openssl/asn1.h" 3 4 11785 /* For use with ASN1_mbstring_copy() */ 11786 # 161 "/usr/include/openssl/asn1.h" 3 4 11787 struct X509_algor_st; 11788 struct stack_st_X509_ALGOR { _STACK stack; }; 11789 11790 11791 11792 11793 /* 11794 * We MUST make sure that, except for constness, asn1_ctx_st and 11795 * asn1_const_ctx are exactly the same. Fortunately, as soon as the old ASN1 11796 * parsing macros are gone, we can throw this away as well... 11797 */ 11798 typedef struct asn1_ctx_st { 11799 unsigned char *p; /* work char pointer */ 11800 int eos; /* end of sequence read for indefinite 11801 * encoding */ 11802 int error; /* error code to use when returning an error */ 11803 int inf; /* constructed if 0x20, indefinite is 0x21 */ 11804 int tag; /* tag from last 'get object' */ 11805 int xclass; /* class from last 'get object' */ 11806 long slen; /* length of last 'get object' */ 11807 unsigned char *max; /* largest value of p allowed */ 11808 unsigned char *q; /* temporary variable */ 11809 unsigned char **pp; /* variable */ 11810 int line; /* used in error processing */ 11811 } ASN1_CTX; 11812 11813 typedef struct asn1_const_ctx_st { 11814 const unsigned char *p; /* work char pointer */ 11815 int eos; /* end of sequence read for indefinite 11816 * encoding */ 11817 int error; /* error code to use when returning an error */ 11818 int inf; /* constructed if 0x20, indefinite is 0x21 */ 11819 int tag; /* tag from last 'get object' */ 11820 int xclass; /* class from last 'get object' */ 11821 long slen; /* length of last 'get object' */ 11822 const unsigned char *max; /* largest value of p allowed */ 11823 const unsigned char *q; /* temporary variable */ 11824 const unsigned char **pp; /* variable */ 11825 int line; /* used in error processing */ 11826 } ASN1_const_CTX; 11827 11828 /* 11829 * These are used internally in the ASN1_OBJECT to keep track of whether the 11830 * names and data need to be free()ed 11831 */ 11832 11833 11834 11835 11836 struct asn1_object_st { 11837 const char *sn, *ln; 11838 int nid; 11839 int length; 11840 const unsigned char *data; /* data remains const after init */ 11841 int flags; /* Should we free this one */ 11842 }; 11843 11844 11845 /* 11846 * This indicates that the ASN1_STRING is not a real value but just a place 11847 * holder for the location where indefinite length constructed data should be 11848 * inserted in the memory buffer 11849 */ 11850 11851 11852 /* 11853 * This flag is used by the CMS code to indicate that a string is not 11854 * complete and is a place holder for content when it had all been accessed. 11855 * The flag will be reset when content has been written to it. 11856 */ 11857 11858 11859 /* 11860 * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING 11861 * type. 11862 */ 11863 11864 /* This is the base type that holds just about everything :-) */ 11865 struct asn1_string_st { 11866 int length; 11867 int type; 11868 unsigned char *data; 11869 /* 11870 * The value of the following field depends on the type being held. It 11871 * is mostly being used for BIT_STRING so if the input data has a 11872 * non-zero 'unused bits' value, it will be handled correctly 11873 */ 11874 long flags; 11875 }; 11876 11877 /* 11878 * ASN1_ENCODING structure: this is used to save the received encoding of an 11879 * ASN1 type. This is useful to get round problems with invalid encodings 11880 * which can break signatures. 11881 */ 11882 11883 typedef struct ASN1_ENCODING_st { 11884 unsigned char *enc; /* DER encoding */ 11885 long len; /* Length of encoding */ 11886 int modified; /* set to 1 if 'enc' is invalid */ 11887 } ASN1_ENCODING; 11888 11889 /* Used with ASN1 LONG type: if a long is set to this it is omitted */ 11890 # 272 "/usr/include/openssl/asn1.h" 3 4 11891 typedef struct asn1_string_table_st { 11892 int nid; 11893 long minsize; 11894 long maxsize; 11895 unsigned long mask; 11896 unsigned long flags; 11897 } ASN1_STRING_TABLE; 11898 11899 struct stack_st_ASN1_STRING_TABLE { _STACK stack; }; 11900 11901 /* size limits: this stuff is taken straight from RFC2459 */ 11902 # 293 "/usr/include/openssl/asn1.h" 3 4 11903 /* 11904 * Declarations for template structures: for full definitions see asn1t.h 11905 */ 11906 typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; 11907 typedef struct ASN1_TLC_st ASN1_TLC; 11908 /* This is just an opaque pointer */ 11909 typedef struct ASN1_VALUE_st ASN1_VALUE; 11910 11911 /* Declare ASN1 functions: the implement macro in in asn1t.h */ 11912 # 363 "/usr/include/openssl/asn1.h" 3 4 11913 typedef void *d2i_of_void(void **,const unsigned char **,long); typedef int i2d_of_void(void *,unsigned char **); 11914 11915 /*- 11916 * The following macros and typedefs allow an ASN1_ITEM 11917 * to be embedded in a structure and referenced. Since 11918 * the ASN1_ITEM pointers need to be globally accessible 11919 * (possibly from shared libraries) they may exist in 11920 * different forms. On platforms that support it the 11921 * ASN1_ITEM structure itself will be globally exported. 11922 * Other platforms will export a function that returns 11923 * an ASN1_ITEM pointer. 11924 * 11925 * To handle both cases transparently the macros below 11926 * should be used instead of hard coding an ASN1_ITEM 11927 * pointer in a structure. 11928 * 11929 * The structure will look like this: 11930 * 11931 * typedef struct SOMETHING_st { 11932 * ... 11933 * ASN1_ITEM_EXP *iptr; 11934 * ... 11935 * } SOMETHING; 11936 * 11937 * It would be initialised as e.g.: 11938 * 11939 * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; 11940 * 11941 * and the actual pointer extracted with: 11942 * 11943 * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); 11944 * 11945 * Finally an ASN1_ITEM pointer can be extracted from an 11946 * appropriate reference with: ASN1_ITEM_rptr(X509). This 11947 * would be used when a function takes an ASN1_ITEM * argument. 11948 * 11949 */ 11950 11951 11952 11953 /* ASN1_ITEM pointer exported type */ 11954 typedef const ASN1_ITEM ASN1_ITEM_EXP; 11955 11956 /* Macro to obtain ASN1_ITEM pointer from exported type */ 11957 11958 11959 /* Macro to include ASN1_ITEM pointer from base type */ 11960 # 440 "/usr/include/openssl/asn1.h" 3 4 11961 /* Parameters used by ASN1_STRING_print_ex() */ 11962 11963 /* 11964 * These determine which characters to escape: RFC2253 special characters, 11965 * control characters and MSB set characters 11966 */ 11967 11968 11969 11970 11971 11972 /* 11973 * This flag determines how we do escaping: normally RC2253 backslash only, 11974 * set this to use backslash and quote. 11975 */ 11976 11977 11978 11979 /* These three flags are internal use only. */ 11980 11981 /* Character is a valid PrintableString character */ 11982 11983 /* Character needs escaping if it is the first character */ 11984 11985 /* Character needs escaping if it is the last character */ 11986 11987 11988 /* 11989 * NB the internal flags are safely reused below by flags handled at the top 11990 * level. 11991 */ 11992 11993 /* 11994 * If this is set we convert all character strings to UTF8 first 11995 */ 11996 11997 11998 11999 /* 12000 * If this is set we don't attempt to interpret content: just assume all 12001 * strings are 1 byte per character. This will produce some pretty odd 12002 * looking output! 12003 */ 12004 12005 12006 12007 /* If this is set we include the string type in the output */ 12008 12009 12010 /* 12011 * This determines which strings to display and which to 'dump' (hex dump of 12012 * content octets or DER encoding). We can only dump non character strings or 12013 * everything. If we don't dump 'unknown' they are interpreted as character 12014 * strings with 1 octet per character and are subject to the usual escaping 12015 * options. 12016 */ 12017 12018 12019 12020 12021 /* 12022 * These determine what 'dumping' does, we can dump the content octets or the 12023 * DER encoding: both use the RFC2253 #XXXXX notation. 12024 */ 12025 12026 12027 12028 /* 12029 * All the string flags consistent with RFC2253, escaping control characters 12030 * isn't essential in RFC2253 but it is advisable anyway. 12031 */ 12032 # 519 "/usr/include/openssl/asn1.h" 3 4 12033 struct stack_st_ASN1_INTEGER { _STACK stack; }; 12034 12035 12036 struct stack_st_ASN1_GENERALSTRING { _STACK stack; }; 12037 12038 typedef struct asn1_type_st { 12039 int type; 12040 union { 12041 char *ptr; 12042 ASN1_BOOLEAN boolean; 12043 ASN1_STRING *asn1_string; 12044 ASN1_OBJECT *object; 12045 ASN1_INTEGER *integer; 12046 ASN1_ENUMERATED *enumerated; 12047 ASN1_BIT_STRING *bit_string; 12048 ASN1_OCTET_STRING *octet_string; 12049 ASN1_PRINTABLESTRING *printablestring; 12050 ASN1_T61STRING *t61string; 12051 ASN1_IA5STRING *ia5string; 12052 ASN1_GENERALSTRING *generalstring; 12053 ASN1_BMPSTRING *bmpstring; 12054 ASN1_UNIVERSALSTRING *universalstring; 12055 ASN1_UTCTIME *utctime; 12056 ASN1_GENERALIZEDTIME *generalizedtime; 12057 ASN1_VISIBLESTRING *visiblestring; 12058 ASN1_UTF8STRING *utf8string; 12059 /* 12060 * set and sequence are left complete and still contain the set or 12061 * sequence bytes 12062 */ 12063 ASN1_STRING *set; 12064 ASN1_STRING *sequence; 12065 ASN1_VALUE *asn1_value; 12066 } value; 12067 } ASN1_TYPE; 12068 12069 struct stack_st_ASN1_TYPE { _STACK stack; }; 12070 12071 12072 typedef struct stack_st_ASN1_TYPE ASN1_SEQUENCE_ANY; 12073 12074 ASN1_SEQUENCE_ANY *d2i_ASN1_SEQUENCE_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); int i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); extern const ASN1_ITEM ASN1_SEQUENCE_ANY_it; 12075 ASN1_SEQUENCE_ANY *d2i_ASN1_SET_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len); int i2d_ASN1_SET_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out); extern const ASN1_ITEM ASN1_SET_ANY_it; 12076 12077 typedef struct NETSCAPE_X509_st { 12078 ASN1_OCTET_STRING *header; 12079 X509 *cert; 12080 } NETSCAPE_X509; 12081 12082 /* This is used to contain a list of bit names */ 12083 typedef struct BIT_STRING_BITNAME_st { 12084 int bitnum; 12085 const char *lname; 12086 const char *sname; 12087 } BIT_STRING_BITNAME; 12088 12089 12090 12091 12092 12093 12094 /* Macros for string operations */ 12095 # 772 "/usr/include/openssl/asn1.h" 3 4 12096 /* for the is_set parameter to i2d_ASN1_SET */ 12097 12098 12099 12100 ASN1_TYPE *ASN1_TYPE_new(void); void ASN1_TYPE_free(ASN1_TYPE *a); ASN1_TYPE *d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len); int i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out); extern const ASN1_ITEM ASN1_ANY_it; 12101 12102 int ASN1_TYPE_get(ASN1_TYPE *a); 12103 void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); 12104 int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); 12105 int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); 12106 12107 ASN1_OBJECT *ASN1_OBJECT_new(void); 12108 void ASN1_OBJECT_free(ASN1_OBJECT *a); 12109 int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); 12110 ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, 12111 long length); 12112 ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, 12113 long length); 12114 12115 extern const ASN1_ITEM ASN1_OBJECT_it; 12116 12117 struct stack_st_ASN1_OBJECT { _STACK stack; }; 12118 12119 12120 ASN1_STRING *ASN1_STRING_new(void); 12121 void ASN1_STRING_free(ASN1_STRING *a); 12122 void ASN1_STRING_clear_free(ASN1_STRING *a); 12123 int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); 12124 ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); 12125 ASN1_STRING *ASN1_STRING_type_new(int type); 12126 int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); 12127 /* 12128 * Since this is used to store all sorts of things, via macros, for now, 12129 * make its data void * 12130 */ 12131 int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); 12132 void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); 12133 int ASN1_STRING_length(const ASN1_STRING *x); 12134 void ASN1_STRING_length_set(ASN1_STRING *x, int n); 12135 int ASN1_STRING_type(ASN1_STRING *x); 12136 unsigned char *ASN1_STRING_data(ASN1_STRING *x); 12137 12138 ASN1_BIT_STRING *ASN1_BIT_STRING_new(void); void ASN1_BIT_STRING_free(ASN1_BIT_STRING *a); ASN1_BIT_STRING *d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len); int i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_BIT_STRING_it; 12139 int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp); 12140 ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, 12141 const unsigned char **pp, long length); 12142 int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); 12143 int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); 12144 int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); 12145 int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a, 12146 unsigned char *flags, int flags_len); 12147 12148 12149 int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, 12150 BIT_STRING_BITNAME *tbl, int indent); 12151 12152 int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); 12153 int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, 12154 BIT_STRING_BITNAME *tbl); 12155 12156 int i2d_ASN1_BOOLEAN(int a, unsigned char **pp); 12157 int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length); 12158 12159 ASN1_INTEGER *ASN1_INTEGER_new(void); void ASN1_INTEGER_free(ASN1_INTEGER *a); ASN1_INTEGER *d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len); int i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out); extern const ASN1_ITEM ASN1_INTEGER_it; 12160 int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp); 12161 ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, 12162 long length); 12163 ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, 12164 long length); 12165 ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); 12166 int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); 12167 12168 ASN1_ENUMERATED *ASN1_ENUMERATED_new(void); void ASN1_ENUMERATED_free(ASN1_ENUMERATED *a); ASN1_ENUMERATED *d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len); int i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **out); extern const ASN1_ITEM ASN1_ENUMERATED_it; 12169 12170 int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); 12171 ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); 12172 ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, 12173 int offset_day, long offset_sec); 12174 int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); 12175 int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); 12176 12177 12178 12179 12180 int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); 12181 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, 12182 time_t t); 12183 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, 12184 time_t t, int offset_day, 12185 long offset_sec); 12186 int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); 12187 int ASN1_TIME_diff(int *pday, int *psec, 12188 const ASN1_TIME *from, const ASN1_TIME *to); 12189 12190 ASN1_OCTET_STRING *ASN1_OCTET_STRING_new(void); void ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a); ASN1_OCTET_STRING *d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len); int i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_OCTET_STRING_it; 12191 ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); 12192 int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, 12193 const ASN1_OCTET_STRING *b); 12194 int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, 12195 int len); 12196 12197 ASN1_VISIBLESTRING *ASN1_VISIBLESTRING_new(void); void ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a); ASN1_VISIBLESTRING *d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_VISIBLESTRING_it; 12198 ASN1_UNIVERSALSTRING *ASN1_UNIVERSALSTRING_new(void); void ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a); ASN1_UNIVERSALSTRING *d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_UNIVERSALSTRING_it; 12199 ASN1_UTF8STRING *ASN1_UTF8STRING_new(void); void ASN1_UTF8STRING_free(ASN1_UTF8STRING *a); ASN1_UTF8STRING *d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len); int i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_UTF8STRING_it; 12200 ASN1_NULL *ASN1_NULL_new(void); void ASN1_NULL_free(ASN1_NULL *a); ASN1_NULL *d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len); int i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out); extern const ASN1_ITEM ASN1_NULL_it; 12201 ASN1_BMPSTRING *ASN1_BMPSTRING_new(void); void ASN1_BMPSTRING_free(ASN1_BMPSTRING *a); ASN1_BMPSTRING *d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len); int i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_BMPSTRING_it; 12202 12203 int UTF8_getc(const unsigned char *str, int len, unsigned long *val); 12204 int UTF8_putc(unsigned char *str, int len, unsigned long value); 12205 12206 ASN1_STRING *ASN1_PRINTABLE_new(void); void ASN1_PRINTABLE_free(ASN1_STRING *a); ASN1_STRING *d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_PRINTABLE_it; 12207 12208 ASN1_STRING *DIRECTORYSTRING_new(void); void DIRECTORYSTRING_free(ASN1_STRING *a); ASN1_STRING *d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM DIRECTORYSTRING_it; 12209 ASN1_STRING *DISPLAYTEXT_new(void); void DISPLAYTEXT_free(ASN1_STRING *a); ASN1_STRING *d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len); int i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out); extern const ASN1_ITEM DISPLAYTEXT_it; 12210 ASN1_PRINTABLESTRING *ASN1_PRINTABLESTRING_new(void); void ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a); ASN1_PRINTABLESTRING *d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len); int i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_PRINTABLESTRING_it; 12211 ASN1_T61STRING *ASN1_T61STRING_new(void); void ASN1_T61STRING_free(ASN1_T61STRING *a); ASN1_T61STRING *d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len); int i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_T61STRING_it; 12212 ASN1_IA5STRING *ASN1_IA5STRING_new(void); void ASN1_IA5STRING_free(ASN1_IA5STRING *a); ASN1_IA5STRING *d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len); int i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_IA5STRING_it; 12213 ASN1_GENERALSTRING *ASN1_GENERALSTRING_new(void); void ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a); ASN1_GENERALSTRING *d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len); int i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out); extern const ASN1_ITEM ASN1_GENERALSTRING_it; 12214 ASN1_UTCTIME *ASN1_UTCTIME_new(void); void ASN1_UTCTIME_free(ASN1_UTCTIME *a); ASN1_UTCTIME *d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len); int i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_UTCTIME_it; 12215 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_new(void); void ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a); ASN1_GENERALIZEDTIME *d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len); int i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_GENERALIZEDTIME_it; 12216 ASN1_TIME *ASN1_TIME_new(void); void ASN1_TIME_free(ASN1_TIME *a); ASN1_TIME *d2i_ASN1_TIME(ASN1_TIME **a, const unsigned char **in, long len); int i2d_ASN1_TIME(ASN1_TIME *a, unsigned char **out); extern const ASN1_ITEM ASN1_TIME_it; 12217 12218 extern const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it; 12219 12220 ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); 12221 ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, 12222 int offset_day, long offset_sec); 12223 int ASN1_TIME_check(ASN1_TIME *t); 12224 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME 12225 **out); 12226 int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); 12227 12228 int i2d_ASN1_SET(struct stack_st_OPENSSL_BLOCK *a, unsigned char **pp, 12229 i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); 12230 struct stack_st_OPENSSL_BLOCK *d2i_ASN1_SET(struct stack_st_OPENSSL_BLOCK **a, 12231 const unsigned char **pp, 12232 long length, d2i_of_void *d2i, 12233 void (*free_func) (OPENSSL_BLOCK), 12234 int ex_tag, int ex_class); 12235 12236 12237 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); 12238 int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); 12239 int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); 12240 int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); 12241 int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a); 12242 int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); 12243 int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); 12244 12245 int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a); 12246 12247 int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); 12248 ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, 12249 const char *sn, const char *ln); 12250 12251 int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); 12252 long ASN1_INTEGER_get(const ASN1_INTEGER *a); 12253 ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); 12254 BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); 12255 12256 int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); 12257 long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); 12258 ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); 12259 BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn); 12260 12261 /* General */ 12262 /* given a string, return the correct type, max is the maximum length */ 12263 int ASN1_PRINTABLE_type(const unsigned char *s, int max); 12264 12265 int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); 12266 ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, 12267 long length, int Ptag, int Pclass); 12268 unsigned long ASN1_tag2bit(int tag); 12269 /* type is one or more of the B_ASN1_ values. */ 12270 ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp, 12271 long length, int type); 12272 12273 /* PARSING */ 12274 int asn1_Finish(ASN1_CTX *c); 12275 int asn1_const_Finish(ASN1_const_CTX *c); 12276 12277 /* SPECIALS */ 12278 int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, 12279 int *pclass, long omax); 12280 int ASN1_check_infinite_end(unsigned char **p, long len); 12281 int ASN1_const_check_infinite_end(const unsigned char **p, long len); 12282 void ASN1_put_object(unsigned char **pp, int constructed, int length, 12283 int tag, int xclass); 12284 int ASN1_put_eoc(unsigned char **pp); 12285 int ASN1_object_size(int constructed, int length, int tag); 12286 12287 /* Used to implement other functions */ 12288 void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); 12289 # 976 "/usr/include/openssl/asn1.h" 3 4 12290 void *ASN1_item_dup(const ASN1_ITEM *it, void *x); 12291 12292 /* ASN1 alloc/free macros for when a type is only used internally */ 12293 12294 12295 12296 12297 12298 12299 void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); 12300 12301 12302 12303 12304 12305 12306 12307 void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); 12308 int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); 12309 # 1006 "/usr/include/openssl/asn1.h" 3 4 12310 int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); 12311 int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); 12312 12313 12314 int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); 12315 12316 12317 void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); 12318 12319 12320 12321 12322 12323 12324 12325 void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); 12326 int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); 12327 # 1034 "/usr/include/openssl/asn1.h" 3 4 12328 int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); 12329 int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); 12330 int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); 12331 int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); 12332 int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); 12333 int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); 12334 int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, 12335 unsigned char *buf, int off); 12336 int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); 12337 int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, 12338 int dump); 12339 12340 const char *ASN1_tag2str(int tag); 12341 12342 /* Used to load and write netscape format cert */ 12343 12344 NETSCAPE_X509 *NETSCAPE_X509_new(void); void NETSCAPE_X509_free(NETSCAPE_X509 *a); NETSCAPE_X509 *d2i_NETSCAPE_X509(NETSCAPE_X509 **a, const unsigned char **in, long len); int i2d_NETSCAPE_X509(NETSCAPE_X509 *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_X509_it; 12345 12346 int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); 12347 12348 int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); 12349 int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len); 12350 int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, 12351 unsigned char *data, int len); 12352 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, 12353 unsigned char *data, int max_len); 12354 12355 struct stack_st_OPENSSL_BLOCK *ASN1_seq_unpack(const unsigned char *buf, int len, 12356 d2i_of_void *d2i, 12357 void (*free_func) (OPENSSL_BLOCK)); 12358 unsigned char *ASN1_seq_pack(struct stack_st_OPENSSL_BLOCK *safes, i2d_of_void *i2d, 12359 unsigned char **buf, int *len); 12360 void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); 12361 void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); 12362 ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, 12363 ASN1_OCTET_STRING **oct); 12364 12365 12366 12367 12368 12369 12370 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, 12371 ASN1_OCTET_STRING **oct); 12372 12373 void ASN1_STRING_set_default_mask(unsigned long mask); 12374 int ASN1_STRING_set_default_mask_asc(const char *p); 12375 unsigned long ASN1_STRING_get_default_mask(void); 12376 int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, 12377 int inform, unsigned long mask); 12378 int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, 12379 int inform, unsigned long mask, 12380 long minsize, long maxsize); 12381 12382 ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, 12383 const unsigned char *in, int inlen, 12384 int inform, int nid); 12385 ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); 12386 int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); 12387 void ASN1_STRING_TABLE_cleanup(void); 12388 12389 /* ASN1 template functions */ 12390 12391 /* Old API compatible functions */ 12392 ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); 12393 void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); 12394 ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, 12395 long len, const ASN1_ITEM *it); 12396 int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); 12397 int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, 12398 const ASN1_ITEM *it); 12399 12400 void ASN1_add_oid_module(void); 12401 12402 ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); 12403 ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); 12404 12405 /* ASN1 Print flags */ 12406 12407 /* Indicate missing OPTIONAL fields */ 12408 12409 /* Mark start and end of SEQUENCE */ 12410 12411 /* Mark start and end of SEQUENCE/SET OF */ 12412 12413 /* Show the ASN1 type of primitives */ 12414 12415 /* Don't show ASN1 type of ANY */ 12416 12417 /* Don't show ASN1 type of MSTRINGs */ 12418 12419 /* Don't show field names in SEQUENCE */ 12420 12421 /* Show structure names of each SEQUENCE field */ 12422 12423 /* Don't show structure name even at top level */ 12424 12425 12426 int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, 12427 const ASN1_ITEM *it, const ASN1_PCTX *pctx); 12428 ASN1_PCTX *ASN1_PCTX_new(void); 12429 void ASN1_PCTX_free(ASN1_PCTX *p); 12430 unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p); 12431 void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); 12432 unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p); 12433 void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); 12434 unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p); 12435 void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); 12436 unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p); 12437 void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); 12438 unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p); 12439 void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); 12440 12441 BIO_METHOD *BIO_f_asn1(void); 12442 12443 BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); 12444 12445 int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 12446 const ASN1_ITEM *it); 12447 int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 12448 const char *hdr, const ASN1_ITEM *it); 12449 int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, 12450 int ctype_nid, int econt_nid, 12451 struct stack_st_X509_ALGOR *mdalgs, const ASN1_ITEM *it); 12452 ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); 12453 int SMIME_crlf_copy(BIO *in, BIO *out, int flags); 12454 int SMIME_text(BIO *in, BIO *out); 12455 12456 /* BEGIN ERROR CODES */ 12457 /* 12458 * The following lines are auto generated by the script mkerr.pl. Any changes 12459 * made after this point may be overwritten when the script is next run. 12460 */ 12461 12462 void ERR_load_ASN1_strings(void); 12463 12464 /* Error codes for the ASN1 functions. */ 12465 12466 /* Function codes. */ 12467 # 1298 "/usr/include/openssl/asn1.h" 3 4 12468 /* Reason codes. */ 12469 # 966 "/usr/include/openssl/objects.h" 2 3 4 12470 # 984 "/usr/include/openssl/objects.h" 3 4 12471 typedef struct obj_name_st { 12472 int type; 12473 int alias; 12474 const char *name; 12475 const char *data; 12476 } OBJ_NAME; 12477 12478 12479 12480 int OBJ_NAME_init(void); 12481 int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), 12482 int (*cmp_func) (const char *, const char *), 12483 void (*free_func) (const char *, int, const char *)); 12484 const char *OBJ_NAME_get(const char *name, int type); 12485 int OBJ_NAME_add(const char *name, int type, const char *data); 12486 int OBJ_NAME_remove(const char *name, int type); 12487 void OBJ_NAME_cleanup(int type); /* -1 for everything */ 12488 void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), 12489 void *arg); 12490 void OBJ_NAME_do_all_sorted(int type, 12491 void (*fn) (const OBJ_NAME *, void *arg), 12492 void *arg); 12493 12494 ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); 12495 ASN1_OBJECT *OBJ_nid2obj(int n); 12496 const char *OBJ_nid2ln(int n); 12497 const char *OBJ_nid2sn(int n); 12498 int OBJ_obj2nid(const ASN1_OBJECT *o); 12499 ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); 12500 int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); 12501 int OBJ_txt2nid(const char *s); 12502 int OBJ_ln2nid(const char *s); 12503 int OBJ_sn2nid(const char *s); 12504 int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); 12505 const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, 12506 int (*cmp) (const void *, const void *)); 12507 const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, 12508 int size, 12509 int (*cmp) (const void *, const void *), 12510 int flags); 12511 # 1035 "/usr/include/openssl/objects.h" 3 4 12512 /*- 12513 * Unsolved problem: if a type is actually a pointer type, like 12514 * nid_triple is, then its impossible to get a const where you need 12515 * it. Consider: 12516 * 12517 * typedef int nid_triple[3]; 12518 * const void *a_; 12519 * const nid_triple const *a = a_; 12520 * 12521 * The assignement discards a const because what you really want is: 12522 * 12523 * const int const * const *a = a_; 12524 * 12525 * But if you do that, you lose the fact that a is an array of 3 ints, 12526 * which breaks comparison functions. 12527 * 12528 * Thus we end up having to cast, sadly, or unpack the 12529 * declarations. Or, as I finally did in this case, delcare nid_triple 12530 * to be a struct, which it should have been in the first place. 12531 * 12532 * Ben, August 2008. 12533 * 12534 * Also, strictly speaking not all types need be const, but handling 12535 * the non-constness means a lot of complication, and in practice 12536 * comparison routines do always not touch their arguments. 12537 */ 12538 # 1104 "/usr/include/openssl/objects.h" 3 4 12539 int OBJ_new_nid(int num); 12540 int OBJ_add_object(const ASN1_OBJECT *obj); 12541 int OBJ_create(const char *oid, const char *sn, const char *ln); 12542 void OBJ_cleanup(void); 12543 int OBJ_create_objects(BIO *in); 12544 12545 int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); 12546 int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); 12547 int OBJ_add_sigid(int signid, int dig_id, int pkey_id); 12548 void OBJ_sigid_free(void); 12549 12550 extern int obj_cleanup_defer; 12551 void check_defer(int nid); 12552 12553 /* BEGIN ERROR CODES */ 12554 /* 12555 * The following lines are auto generated by the script mkerr.pl. Any changes 12556 * made after this point may be overwritten when the script is next run. 12557 */ 12558 void ERR_load_OBJ_strings(void); 12559 12560 /* Error codes for the OBJ functions. */ 12561 12562 /* Function codes. */ 12563 # 1136 "/usr/include/openssl/objects.h" 3 4 12564 /* Reason codes. */ 12565 # 95 "/usr/include/openssl/evp.h" 2 3 4 12566 # 125 "/usr/include/openssl/evp.h" 3 4 12567 /* 12568 * Type needs to be a bit field Sub-type needs to be for variations on the 12569 * method, as in, can it do arbitrary encryption.... 12570 */ 12571 struct evp_pkey_st { 12572 int type; 12573 int save_type; 12574 int references; 12575 const EVP_PKEY_ASN1_METHOD *ameth; 12576 ENGINE *engine; 12577 union { 12578 char *ptr; 12579 12580 struct rsa_st *rsa; /* RSA */ 12581 12582 12583 struct dsa_st *dsa; /* DSA */ 12584 12585 12586 struct dh_st *dh; /* DH */ 12587 12588 12589 struct ec_key_st *ec; /* ECC */ 12590 12591 } pkey; 12592 int save_parameters; 12593 struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */ 12594 } /* EVP_PKEY */ ; 12595 12596 12597 12598 12599 12600 12601 12602 struct env_md_st { 12603 int type; 12604 int pkey_type; 12605 int md_size; 12606 unsigned long flags; 12607 int (*init) (EVP_MD_CTX *ctx); 12608 int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); 12609 int (*final) (EVP_MD_CTX *ctx, unsigned char *md); 12610 int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from); 12611 int (*cleanup) (EVP_MD_CTX *ctx); 12612 /* FIXME: prototype these some day */ 12613 int (*sign) (int type, const unsigned char *m, unsigned int m_length, 12614 unsigned char *sigret, unsigned int *siglen, void *key); 12615 int (*verify) (int type, const unsigned char *m, unsigned int m_length, 12616 const unsigned char *sigbuf, unsigned int siglen, 12617 void *key); 12618 int required_pkey_type[5]; /* EVP_PKEY_xxx */ 12619 int block_size; 12620 int ctx_size; /* how big does the ctx->md_data need to be */ 12621 /* control function */ 12622 int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2); 12623 } /* EVP_MD */ ; 12624 12625 typedef int evp_sign_method(int type, const unsigned char *m, 12626 unsigned int m_length, unsigned char *sigret, 12627 unsigned int *siglen, void *key); 12628 typedef int evp_verify_method(int type, const unsigned char *m, 12629 unsigned int m_length, 12630 const unsigned char *sigbuf, 12631 unsigned int siglen, void *key); 12632 12633 /* digest can only handle a single block */ 12634 12635 12636 /* 12637 * digest is a "clone" digest used 12638 * which is a copy of an existing 12639 * one for a specific public key type. 12640 * EVP_dss1() etc 12641 */ 12642 12643 12644 /* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */ 12645 12646 12647 12648 /* DigestAlgorithmIdentifier flags... */ 12649 12650 12651 12652 /* NULL or absent parameter accepted. Use NULL */ 12653 12654 12655 12656 /* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ 12657 12658 12659 12660 /* Custom handling via ctrl */ 12661 12662 12663 12664 /* Note if suitable for use in FIPS mode */ 12665 12666 12667 /* Digest ctrls */ 12668 12669 12670 12671 12672 /* Minimum Algorithm specific ctrl value */ 12673 # 268 "/usr/include/openssl/evp.h" 3 4 12674 struct env_md_ctx_st { 12675 const EVP_MD *digest; 12676 ENGINE *engine; /* functional reference if 'digest' is 12677 * ENGINE-provided */ 12678 unsigned long flags; 12679 void *md_data; 12680 /* Public key context for sign/verify */ 12681 EVP_PKEY_CTX *pctx; 12682 /* Update function: usually copied from EVP_MD */ 12683 int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); 12684 } /* EVP_MD_CTX */ ; 12685 12686 /* values for EVP_MD_CTX flags */ 12687 12688 12689 12690 12691 12692 12693 12694 /* 12695 * FIPS and pad options are ignored in 1.0.0, definitions are here so we 12696 * don't accidentally reuse the values for other purposes. 12697 */ 12698 12699 12700 12701 12702 /* 12703 * The following PAD options are also currently ignored in 1.0.0, digest 12704 * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() 12705 * instead. 12706 */ 12707 12708 12709 12710 12711 12712 12713 12714 struct evp_cipher_st { 12715 int nid; 12716 int block_size; 12717 /* Default value for variable length ciphers */ 12718 int key_len; 12719 int iv_len; 12720 /* Various flags */ 12721 unsigned long flags; 12722 /* init key */ 12723 int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key, 12724 const unsigned char *iv, int enc); 12725 /* encrypt/decrypt data */ 12726 int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out, 12727 const unsigned char *in, size_t inl); 12728 /* cleanup ctx */ 12729 int (*cleanup) (EVP_CIPHER_CTX *); 12730 /* how big ctx->cipher_data needs to be */ 12731 int ctx_size; 12732 /* Populate a ASN1_TYPE with parameters */ 12733 int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); 12734 /* Get parameters from a ASN1_TYPE */ 12735 int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); 12736 /* Miscellaneous operations */ 12737 int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr); 12738 /* Application data */ 12739 void *app_data; 12740 } /* EVP_CIPHER */ ; 12741 12742 /* Values for cipher flags */ 12743 12744 /* Modes for ciphers */ 12745 # 351 "/usr/include/openssl/evp.h" 3 4 12746 /* Set if variable length cipher */ 12747 12748 /* Set if the iv handling should be done by the cipher itself */ 12749 12750 /* Set if the cipher's init() function should be called if key is NULL */ 12751 12752 /* Call ctrl() to init cipher parameters */ 12753 12754 /* Don't use standard key length function */ 12755 12756 /* Don't use standard block padding */ 12757 12758 /* cipher handles random key generation */ 12759 12760 /* cipher has its own additional copying logic */ 12761 12762 /* Allow use default ASN1 get/set iv */ 12763 12764 /* Buffer length in bits not bytes: CFB1 mode only */ 12765 12766 /* Note if suitable for use in FIPS mode */ 12767 12768 /* Allow non FIPS cipher in FIPS mode */ 12769 12770 /* 12771 * Cipher handles any and all padding logic as well as finalisation. 12772 */ 12773 12774 12775 12776 12777 /* 12778 * Cipher context flag to indicate we can handle wrap mode: if allowed in 12779 * older applications it could overflow buffers. 12780 */ 12781 12782 12783 12784 /* ctrl() values */ 12785 # 410 "/usr/include/openssl/evp.h" 3 4 12786 /* 12787 * AEAD cipher deduces payload length and returns number of bytes required to 12788 * store MAC and eventual padding. Subsequent call to EVP_Cipher even 12789 * appends/verifies MAC. 12790 */ 12791 12792 /* Used by composite AEAD ciphers, no-op in GCM, CCM... */ 12793 12794 /* Set the GCM invocation field, decrypt only */ 12795 12796 12797 12798 12799 12800 12801 12802 /* RFC 5246 defines additional data to be 13 bytes in length */ 12803 12804 12805 typedef struct { 12806 unsigned char *out; 12807 const unsigned char *inp; 12808 size_t len; 12809 unsigned int interleave; 12810 } EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; 12811 12812 /* GCM TLS constants */ 12813 /* Length of fixed part of IV derived from PRF */ 12814 12815 /* Length of explicit part of IV part of TLS records */ 12816 12817 /* Length of tag for TLS */ 12818 12819 12820 typedef struct evp_cipher_info_st { 12821 const EVP_CIPHER *cipher; 12822 unsigned char iv[16]; 12823 } EVP_CIPHER_INFO; 12824 12825 struct evp_cipher_ctx_st { 12826 const EVP_CIPHER *cipher; 12827 ENGINE *engine; /* functional reference if 'cipher' is 12828 * ENGINE-provided */ 12829 int encrypt; /* encrypt or decrypt */ 12830 int buf_len; /* number we have left */ 12831 unsigned char oiv[16]; /* original iv */ 12832 unsigned char iv[16]; /* working iv */ 12833 unsigned char buf[32]; /* saved partial block */ 12834 int num; /* used by cfb/ofb/ctr mode */ 12835 void *app_data; /* application stuff */ 12836 int key_len; /* May change for variable length cipher */ 12837 unsigned long flags; /* Various flags */ 12838 void *cipher_data; /* per EVP data */ 12839 int final_used; 12840 int block_mask; 12841 unsigned char final[32]; /* possible final block */ 12842 } /* EVP_CIPHER_CTX */ ; 12843 12844 typedef struct evp_Encode_Ctx_st { 12845 /* number saved in a partial encode/decode */ 12846 int num; 12847 /* 12848 * The length is either the output line length (in input bytes) or the 12849 * shortest input line length that is ok. Once decoding begins, the 12850 * length is adjusted up each time a longer line is decoded 12851 */ 12852 int length; 12853 /* data to encode */ 12854 unsigned char enc_data[80]; 12855 /* number read on current line */ 12856 int line_num; 12857 int expect_nl; 12858 } EVP_ENCODE_CTX; 12859 12860 /* Password based encryption function */ 12861 typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, 12862 int passlen, ASN1_TYPE *param, 12863 const EVP_CIPHER *cipher, const EVP_MD *md, 12864 int en_de); 12865 # 510 "/usr/include/openssl/evp.h" 3 4 12866 /* Add some extra combinations */ 12867 12868 12869 12870 12871 12872 int EVP_MD_type(const EVP_MD *md); 12873 12874 12875 int EVP_MD_pkey_type(const EVP_MD *md); 12876 int EVP_MD_size(const EVP_MD *md); 12877 int EVP_MD_block_size(const EVP_MD *md); 12878 unsigned long EVP_MD_flags(const EVP_MD *md); 12879 12880 const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); 12881 12882 12883 12884 12885 int EVP_CIPHER_nid(const EVP_CIPHER *cipher); 12886 12887 int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); 12888 int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); 12889 int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); 12890 unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); 12891 12892 12893 const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); 12894 int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); 12895 int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); 12896 int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); 12897 int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); 12898 int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); 12899 void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); 12900 void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); 12901 12902 unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); 12903 # 574 "/usr/include/openssl/evp.h" 3 4 12904 int EVP_Cipher(EVP_CIPHER_CTX *c, 12905 unsigned char *out, const unsigned char *in, unsigned int inl); 12906 # 586 "/usr/include/openssl/evp.h" 3 4 12907 void EVP_MD_CTX_init(EVP_MD_CTX *ctx); 12908 int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); 12909 EVP_MD_CTX *EVP_MD_CTX_create(void); 12910 void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); 12911 int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); 12912 void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); 12913 void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); 12914 int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); 12915 int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); 12916 int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); 12917 int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); 12918 int EVP_Digest(const void *data, size_t count, 12919 unsigned char *md, unsigned int *size, const EVP_MD *type, 12920 ENGINE *impl); 12921 12922 int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); 12923 int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); 12924 int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); 12925 12926 int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); 12927 int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, 12928 const char *prompt, int verify); 12929 void EVP_set_pw_prompt(const char *prompt); 12930 char *EVP_get_pw_prompt(void); 12931 12932 int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, 12933 const unsigned char *salt, const unsigned char *data, 12934 int datal, int count, unsigned char *key, 12935 unsigned char *iv); 12936 12937 void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); 12938 void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); 12939 int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); 12940 12941 int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 12942 const unsigned char *key, const unsigned char *iv); 12943 int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 12944 ENGINE *impl, const unsigned char *key, 12945 const unsigned char *iv); 12946 int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 12947 const unsigned char *in, int inl); 12948 int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 12949 int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 12950 12951 int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 12952 const unsigned char *key, const unsigned char *iv); 12953 int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 12954 ENGINE *impl, const unsigned char *key, 12955 const unsigned char *iv); 12956 int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 12957 const unsigned char *in, int inl); 12958 int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 12959 int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 12960 12961 int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 12962 const unsigned char *key, const unsigned char *iv, 12963 int enc); 12964 int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 12965 ENGINE *impl, const unsigned char *key, 12966 const unsigned char *iv, int enc); 12967 int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 12968 const unsigned char *in, int inl); 12969 int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 12970 int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 12971 12972 int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, 12973 EVP_PKEY *pkey); 12974 12975 int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, 12976 unsigned int siglen, EVP_PKEY *pkey); 12977 12978 int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 12979 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 12980 int EVP_DigestSignFinal(EVP_MD_CTX *ctx, 12981 unsigned char *sigret, size_t *siglen); 12982 12983 int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 12984 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 12985 int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, 12986 const unsigned char *sig, size_t siglen); 12987 12988 int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 12989 const unsigned char *ek, int ekl, const unsigned char *iv, 12990 EVP_PKEY *priv); 12991 int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 12992 12993 int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 12994 unsigned char **ek, int *ekl, unsigned char *iv, 12995 EVP_PKEY **pubk, int npubk); 12996 int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 12997 12998 void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); 12999 void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 13000 const unsigned char *in, int inl); 13001 void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); 13002 int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); 13003 13004 void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); 13005 int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 13006 const unsigned char *in, int inl); 13007 int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned 13008 char *out, int *outl); 13009 int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); 13010 13011 void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); 13012 int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); 13013 EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); 13014 void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); 13015 int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); 13016 int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); 13017 int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); 13018 int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); 13019 13020 13021 BIO_METHOD *BIO_f_md(void); 13022 BIO_METHOD *BIO_f_base64(void); 13023 BIO_METHOD *BIO_f_cipher(void); 13024 BIO_METHOD *BIO_f_reliable(void); 13025 void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, 13026 const unsigned char *i, int enc); 13027 13028 13029 const EVP_MD *EVP_md_null(void); 13030 13031 const EVP_MD *EVP_md2(void); 13032 13033 13034 const EVP_MD *EVP_md4(void); 13035 13036 13037 const EVP_MD *EVP_md5(void); 13038 13039 13040 const EVP_MD *EVP_sha(void); 13041 const EVP_MD *EVP_sha1(void); 13042 const EVP_MD *EVP_dss(void); 13043 const EVP_MD *EVP_dss1(void); 13044 const EVP_MD *EVP_ecdsa(void); 13045 13046 13047 const EVP_MD *EVP_sha224(void); 13048 const EVP_MD *EVP_sha256(void); 13049 13050 13051 const EVP_MD *EVP_sha384(void); 13052 const EVP_MD *EVP_sha512(void); 13053 13054 13055 13056 13057 13058 const EVP_MD *EVP_ripemd160(void); 13059 13060 13061 13062 13063 const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ 13064 13065 const EVP_CIPHER *EVP_des_ecb(void); 13066 const EVP_CIPHER *EVP_des_ede(void); 13067 const EVP_CIPHER *EVP_des_ede3(void); 13068 const EVP_CIPHER *EVP_des_ede_ecb(void); 13069 const EVP_CIPHER *EVP_des_ede3_ecb(void); 13070 const EVP_CIPHER *EVP_des_cfb64(void); 13071 13072 const EVP_CIPHER *EVP_des_cfb1(void); 13073 const EVP_CIPHER *EVP_des_cfb8(void); 13074 const EVP_CIPHER *EVP_des_ede_cfb64(void); 13075 13076 13077 13078 13079 13080 const EVP_CIPHER *EVP_des_ede3_cfb64(void); 13081 13082 const EVP_CIPHER *EVP_des_ede3_cfb1(void); 13083 const EVP_CIPHER *EVP_des_ede3_cfb8(void); 13084 const EVP_CIPHER *EVP_des_ofb(void); 13085 const EVP_CIPHER *EVP_des_ede_ofb(void); 13086 const EVP_CIPHER *EVP_des_ede3_ofb(void); 13087 const EVP_CIPHER *EVP_des_cbc(void); 13088 const EVP_CIPHER *EVP_des_ede_cbc(void); 13089 const EVP_CIPHER *EVP_des_ede3_cbc(void); 13090 const EVP_CIPHER *EVP_desx_cbc(void); 13091 const EVP_CIPHER *EVP_des_ede3_wrap(void); 13092 /* 13093 * This should now be supported through the dev_crypto ENGINE. But also, why 13094 * are rc4 and md5 declarations made here inside a "NO_DES" precompiler 13095 * branch? 13096 */ 13097 # 785 "/usr/include/openssl/evp.h" 3 4 13098 const EVP_CIPHER *EVP_rc4(void); 13099 const EVP_CIPHER *EVP_rc4_40(void); 13100 13101 const EVP_CIPHER *EVP_rc4_hmac_md5(void); 13102 # 799 "/usr/include/openssl/evp.h" 3 4 13103 const EVP_CIPHER *EVP_rc2_ecb(void); 13104 const EVP_CIPHER *EVP_rc2_cbc(void); 13105 const EVP_CIPHER *EVP_rc2_40_cbc(void); 13106 const EVP_CIPHER *EVP_rc2_64_cbc(void); 13107 const EVP_CIPHER *EVP_rc2_cfb64(void); 13108 13109 const EVP_CIPHER *EVP_rc2_ofb(void); 13110 13111 13112 const EVP_CIPHER *EVP_bf_ecb(void); 13113 const EVP_CIPHER *EVP_bf_cbc(void); 13114 const EVP_CIPHER *EVP_bf_cfb64(void); 13115 13116 const EVP_CIPHER *EVP_bf_ofb(void); 13117 13118 13119 const EVP_CIPHER *EVP_cast5_ecb(void); 13120 const EVP_CIPHER *EVP_cast5_cbc(void); 13121 const EVP_CIPHER *EVP_cast5_cfb64(void); 13122 13123 const EVP_CIPHER *EVP_cast5_ofb(void); 13124 # 829 "/usr/include/openssl/evp.h" 3 4 13125 const EVP_CIPHER *EVP_aes_128_ecb(void); 13126 const EVP_CIPHER *EVP_aes_128_cbc(void); 13127 const EVP_CIPHER *EVP_aes_128_cfb1(void); 13128 const EVP_CIPHER *EVP_aes_128_cfb8(void); 13129 const EVP_CIPHER *EVP_aes_128_cfb128(void); 13130 13131 const EVP_CIPHER *EVP_aes_128_ofb(void); 13132 const EVP_CIPHER *EVP_aes_128_ctr(void); 13133 const EVP_CIPHER *EVP_aes_128_ccm(void); 13134 const EVP_CIPHER *EVP_aes_128_gcm(void); 13135 const EVP_CIPHER *EVP_aes_128_xts(void); 13136 const EVP_CIPHER *EVP_aes_128_wrap(void); 13137 const EVP_CIPHER *EVP_aes_192_ecb(void); 13138 const EVP_CIPHER *EVP_aes_192_cbc(void); 13139 const EVP_CIPHER *EVP_aes_192_cfb1(void); 13140 const EVP_CIPHER *EVP_aes_192_cfb8(void); 13141 const EVP_CIPHER *EVP_aes_192_cfb128(void); 13142 13143 const EVP_CIPHER *EVP_aes_192_ofb(void); 13144 const EVP_CIPHER *EVP_aes_192_ctr(void); 13145 const EVP_CIPHER *EVP_aes_192_ccm(void); 13146 const EVP_CIPHER *EVP_aes_192_gcm(void); 13147 const EVP_CIPHER *EVP_aes_192_wrap(void); 13148 const EVP_CIPHER *EVP_aes_256_ecb(void); 13149 const EVP_CIPHER *EVP_aes_256_cbc(void); 13150 const EVP_CIPHER *EVP_aes_256_cfb1(void); 13151 const EVP_CIPHER *EVP_aes_256_cfb8(void); 13152 const EVP_CIPHER *EVP_aes_256_cfb128(void); 13153 13154 const EVP_CIPHER *EVP_aes_256_ofb(void); 13155 const EVP_CIPHER *EVP_aes_256_ctr(void); 13156 const EVP_CIPHER *EVP_aes_256_ccm(void); 13157 const EVP_CIPHER *EVP_aes_256_gcm(void); 13158 const EVP_CIPHER *EVP_aes_256_xts(void); 13159 const EVP_CIPHER *EVP_aes_256_wrap(void); 13160 13161 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); 13162 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); 13163 13164 13165 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); 13166 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); 13167 13168 13169 13170 const EVP_CIPHER *EVP_camellia_128_ecb(void); 13171 const EVP_CIPHER *EVP_camellia_128_cbc(void); 13172 const EVP_CIPHER *EVP_camellia_128_cfb1(void); 13173 const EVP_CIPHER *EVP_camellia_128_cfb8(void); 13174 const EVP_CIPHER *EVP_camellia_128_cfb128(void); 13175 13176 const EVP_CIPHER *EVP_camellia_128_ofb(void); 13177 const EVP_CIPHER *EVP_camellia_192_ecb(void); 13178 const EVP_CIPHER *EVP_camellia_192_cbc(void); 13179 const EVP_CIPHER *EVP_camellia_192_cfb1(void); 13180 const EVP_CIPHER *EVP_camellia_192_cfb8(void); 13181 const EVP_CIPHER *EVP_camellia_192_cfb128(void); 13182 13183 const EVP_CIPHER *EVP_camellia_192_ofb(void); 13184 const EVP_CIPHER *EVP_camellia_256_ecb(void); 13185 const EVP_CIPHER *EVP_camellia_256_cbc(void); 13186 const EVP_CIPHER *EVP_camellia_256_cfb1(void); 13187 const EVP_CIPHER *EVP_camellia_256_cfb8(void); 13188 const EVP_CIPHER *EVP_camellia_256_cfb128(void); 13189 13190 const EVP_CIPHER *EVP_camellia_256_ofb(void); 13191 # 905 "/usr/include/openssl/evp.h" 3 4 13192 void OPENSSL_add_all_algorithms_noconf(void); 13193 void OPENSSL_add_all_algorithms_conf(void); 13194 # 916 "/usr/include/openssl/evp.h" 3 4 13195 void OpenSSL_add_all_ciphers(void); 13196 void OpenSSL_add_all_digests(void); 13197 13198 13199 13200 13201 int EVP_add_cipher(const EVP_CIPHER *cipher); 13202 int EVP_add_digest(const EVP_MD *digest); 13203 13204 const EVP_CIPHER *EVP_get_cipherbyname(const char *name); 13205 const EVP_MD *EVP_get_digestbyname(const char *name); 13206 void EVP_cleanup(void); 13207 13208 void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, 13209 const char *from, const char *to, void *x), 13210 void *arg); 13211 void EVP_CIPHER_do_all_sorted(void (*fn) 13212 (const EVP_CIPHER *ciph, const char *from, 13213 const char *to, void *x), void *arg); 13214 13215 void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, 13216 const char *from, const char *to, void *x), 13217 void *arg); 13218 void EVP_MD_do_all_sorted(void (*fn) 13219 (const EVP_MD *ciph, const char *from, 13220 const char *to, void *x), void *arg); 13221 13222 int EVP_PKEY_decrypt_old(unsigned char *dec_key, 13223 const unsigned char *enc_key, int enc_key_len, 13224 EVP_PKEY *private_key); 13225 int EVP_PKEY_encrypt_old(unsigned char *enc_key, 13226 const unsigned char *key, int key_len, 13227 EVP_PKEY *pub_key); 13228 int EVP_PKEY_type(int type); 13229 int EVP_PKEY_id(const EVP_PKEY *pkey); 13230 int EVP_PKEY_base_id(const EVP_PKEY *pkey); 13231 int EVP_PKEY_bits(EVP_PKEY *pkey); 13232 int EVP_PKEY_size(EVP_PKEY *pkey); 13233 int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); 13234 int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); 13235 int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); 13236 void *EVP_PKEY_get0(EVP_PKEY *pkey); 13237 13238 13239 struct rsa_st; 13240 int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); 13241 struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); 13242 13243 13244 struct dsa_st; 13245 int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); 13246 struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); 13247 13248 13249 struct dh_st; 13250 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); 13251 struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); 13252 13253 13254 struct ec_key_st; 13255 int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); 13256 struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); 13257 13258 13259 EVP_PKEY *EVP_PKEY_new(void); 13260 void EVP_PKEY_free(EVP_PKEY *pkey); 13261 13262 EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, 13263 long length); 13264 int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); 13265 13266 EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, 13267 long length); 13268 EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, 13269 long length); 13270 int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); 13271 13272 int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); 13273 int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); 13274 int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); 13275 int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); 13276 13277 int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); 13278 13279 int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, 13280 int indent, ASN1_PCTX *pctx); 13281 int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, 13282 int indent, ASN1_PCTX *pctx); 13283 int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, 13284 int indent, ASN1_PCTX *pctx); 13285 13286 int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); 13287 13288 int EVP_CIPHER_type(const EVP_CIPHER *ctx); 13289 13290 /* calls methods */ 13291 int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13292 int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13293 13294 /* These are used by EVP_CIPHER methods */ 13295 int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13296 int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 13297 13298 /* PKCS5 password based encryption */ 13299 int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 13300 ASN1_TYPE *param, const EVP_CIPHER *cipher, 13301 const EVP_MD *md, int en_de); 13302 int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, 13303 const unsigned char *salt, int saltlen, int iter, 13304 int keylen, unsigned char *out); 13305 int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, 13306 const unsigned char *salt, int saltlen, int iter, 13307 const EVP_MD *digest, int keylen, unsigned char *out); 13308 int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 13309 ASN1_TYPE *param, const EVP_CIPHER *cipher, 13310 const EVP_MD *md, int en_de); 13311 13312 void PKCS5_PBE_add(void); 13313 13314 int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, 13315 ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); 13316 13317 /* PBE type */ 13318 13319 /* Can appear as the outermost AlgorithmIdentifier */ 13320 13321 /* Is an PRF type OID */ 13322 13323 13324 int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, 13325 int md_nid, EVP_PBE_KEYGEN *keygen); 13326 int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, 13327 EVP_PBE_KEYGEN *keygen); 13328 int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, 13329 EVP_PBE_KEYGEN **pkeygen); 13330 void EVP_PBE_cleanup(void); 13331 # 1064 "/usr/include/openssl/evp.h" 3 4 13332 int EVP_PKEY_asn1_get_count(void); 13333 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); 13334 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); 13335 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, 13336 const char *str, int len); 13337 int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); 13338 int EVP_PKEY_asn1_add_alias(int to, int from); 13339 int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, 13340 int *ppkey_flags, const char **pinfo, 13341 const char **ppem_str, 13342 const EVP_PKEY_ASN1_METHOD *ameth); 13343 13344 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey); 13345 EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, 13346 const char *pem_str, 13347 const char *info); 13348 void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, 13349 const EVP_PKEY_ASN1_METHOD *src); 13350 void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); 13351 void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, 13352 int (*pub_decode) (EVP_PKEY *pk, 13353 X509_PUBKEY *pub), 13354 int (*pub_encode) (X509_PUBKEY *pub, 13355 const EVP_PKEY *pk), 13356 int (*pub_cmp) (const EVP_PKEY *a, 13357 const EVP_PKEY *b), 13358 int (*pub_print) (BIO *out, 13359 const EVP_PKEY *pkey, 13360 int indent, ASN1_PCTX *pctx), 13361 int (*pkey_size) (const EVP_PKEY *pk), 13362 int (*pkey_bits) (const EVP_PKEY *pk)); 13363 void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, 13364 int (*priv_decode) (EVP_PKEY *pk, 13365 PKCS8_PRIV_KEY_INFO 13366 *p8inf), 13367 int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, 13368 const EVP_PKEY *pk), 13369 int (*priv_print) (BIO *out, 13370 const EVP_PKEY *pkey, 13371 int indent, 13372 ASN1_PCTX *pctx)); 13373 void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, 13374 int (*param_decode) (EVP_PKEY *pkey, 13375 const unsigned char **pder, 13376 int derlen), 13377 int (*param_encode) (const EVP_PKEY *pkey, 13378 unsigned char **pder), 13379 int (*param_missing) (const EVP_PKEY *pk), 13380 int (*param_copy) (EVP_PKEY *to, 13381 const EVP_PKEY *from), 13382 int (*param_cmp) (const EVP_PKEY *a, 13383 const EVP_PKEY *b), 13384 int (*param_print) (BIO *out, 13385 const EVP_PKEY *pkey, 13386 int indent, 13387 ASN1_PCTX *pctx)); 13388 13389 void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, 13390 void (*pkey_free) (EVP_PKEY *pkey)); 13391 void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, 13392 int (*pkey_ctrl) (EVP_PKEY *pkey, int op, 13393 long arg1, void *arg2)); 13394 void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, 13395 int (*item_verify) (EVP_MD_CTX *ctx, 13396 const ASN1_ITEM *it, 13397 void *asn, 13398 X509_ALGOR *a, 13399 ASN1_BIT_STRING *sig, 13400 EVP_PKEY *pkey), 13401 int (*item_sign) (EVP_MD_CTX *ctx, 13402 const ASN1_ITEM *it, 13403 void *asn, 13404 X509_ALGOR *alg1, 13405 X509_ALGOR *alg2, 13406 ASN1_BIT_STRING *sig)); 13407 # 1185 "/usr/include/openssl/evp.h" 3 4 13408 /* Used by GOST key encryption in TLS */ 13409 # 1199 "/usr/include/openssl/evp.h" 3 4 13410 /* 13411 * Method handles all operations: don't assume any digest related defaults. 13412 */ 13413 13414 13415 const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); 13416 EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); 13417 void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, 13418 const EVP_PKEY_METHOD *meth); 13419 void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); 13420 void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); 13421 int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); 13422 13423 EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); 13424 EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); 13425 EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); 13426 void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); 13427 13428 int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, 13429 int cmd, int p1, void *p2); 13430 int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, 13431 const char *value); 13432 13433 int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); 13434 void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); 13435 13436 EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, 13437 const unsigned char *key, int keylen); 13438 13439 void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); 13440 void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); 13441 EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); 13442 13443 EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); 13444 13445 void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); 13446 void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); 13447 13448 int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); 13449 int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, 13450 unsigned char *sig, size_t *siglen, 13451 const unsigned char *tbs, size_t tbslen); 13452 int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); 13453 int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, 13454 const unsigned char *sig, size_t siglen, 13455 const unsigned char *tbs, size_t tbslen); 13456 int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); 13457 int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, 13458 unsigned char *rout, size_t *routlen, 13459 const unsigned char *sig, size_t siglen); 13460 int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); 13461 int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, 13462 unsigned char *out, size_t *outlen, 13463 const unsigned char *in, size_t inlen); 13464 int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); 13465 int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, 13466 unsigned char *out, size_t *outlen, 13467 const unsigned char *in, size_t inlen); 13468 13469 int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); 13470 int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); 13471 int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); 13472 13473 typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx); 13474 13475 int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); 13476 int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 13477 int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); 13478 int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 13479 13480 void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); 13481 EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); 13482 13483 int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); 13484 13485 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, 13486 int (*init) (EVP_PKEY_CTX *ctx)); 13487 13488 void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, 13489 int (*copy) (EVP_PKEY_CTX *dst, 13490 EVP_PKEY_CTX *src)); 13491 13492 void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, 13493 void (*cleanup) (EVP_PKEY_CTX *ctx)); 13494 13495 void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, 13496 int (*paramgen_init) (EVP_PKEY_CTX *ctx), 13497 int (*paramgen) (EVP_PKEY_CTX *ctx, 13498 EVP_PKEY *pkey)); 13499 13500 void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, 13501 int (*keygen_init) (EVP_PKEY_CTX *ctx), 13502 int (*keygen) (EVP_PKEY_CTX *ctx, 13503 EVP_PKEY *pkey)); 13504 13505 void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, 13506 int (*sign_init) (EVP_PKEY_CTX *ctx), 13507 int (*sign) (EVP_PKEY_CTX *ctx, 13508 unsigned char *sig, size_t *siglen, 13509 const unsigned char *tbs, 13510 size_t tbslen)); 13511 13512 void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, 13513 int (*verify_init) (EVP_PKEY_CTX *ctx), 13514 int (*verify) (EVP_PKEY_CTX *ctx, 13515 const unsigned char *sig, 13516 size_t siglen, 13517 const unsigned char *tbs, 13518 size_t tbslen)); 13519 13520 void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, 13521 int (*verify_recover_init) (EVP_PKEY_CTX 13522 *ctx), 13523 int (*verify_recover) (EVP_PKEY_CTX 13524 *ctx, 13525 unsigned char 13526 *sig, 13527 size_t *siglen, 13528 const unsigned 13529 char *tbs, 13530 size_t tbslen)); 13531 13532 void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, 13533 int (*signctx_init) (EVP_PKEY_CTX *ctx, 13534 EVP_MD_CTX *mctx), 13535 int (*signctx) (EVP_PKEY_CTX *ctx, 13536 unsigned char *sig, 13537 size_t *siglen, 13538 EVP_MD_CTX *mctx)); 13539 13540 void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, 13541 int (*verifyctx_init) (EVP_PKEY_CTX *ctx, 13542 EVP_MD_CTX *mctx), 13543 int (*verifyctx) (EVP_PKEY_CTX *ctx, 13544 const unsigned char *sig, 13545 int siglen, 13546 EVP_MD_CTX *mctx)); 13547 13548 void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, 13549 int (*encrypt_init) (EVP_PKEY_CTX *ctx), 13550 int (*encryptfn) (EVP_PKEY_CTX *ctx, 13551 unsigned char *out, 13552 size_t *outlen, 13553 const unsigned char *in, 13554 size_t inlen)); 13555 13556 void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, 13557 int (*decrypt_init) (EVP_PKEY_CTX *ctx), 13558 int (*decrypt) (EVP_PKEY_CTX *ctx, 13559 unsigned char *out, 13560 size_t *outlen, 13561 const unsigned char *in, 13562 size_t inlen)); 13563 13564 void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, 13565 int (*derive_init) (EVP_PKEY_CTX *ctx), 13566 int (*derive) (EVP_PKEY_CTX *ctx, 13567 unsigned char *key, 13568 size_t *keylen)); 13569 13570 void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, 13571 int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, 13572 void *p2), 13573 int (*ctrl_str) (EVP_PKEY_CTX *ctx, 13574 const char *type, 13575 const char *value)); 13576 13577 void EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth, 13578 int (**pinit) (EVP_PKEY_CTX *ctx)); 13579 13580 void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, 13581 int (**pcopy) (EVP_PKEY_CTX *dst, 13582 EVP_PKEY_CTX *src)); 13583 13584 void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, 13585 void (**pcleanup) (EVP_PKEY_CTX *ctx)); 13586 13587 void EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth, 13588 int (**pparamgen_init) (EVP_PKEY_CTX *ctx), 13589 int (**pparamgen) (EVP_PKEY_CTX *ctx, 13590 EVP_PKEY *pkey)); 13591 13592 void EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth, 13593 int (**pkeygen_init) (EVP_PKEY_CTX *ctx), 13594 int (**pkeygen) (EVP_PKEY_CTX *ctx, 13595 EVP_PKEY *pkey)); 13596 13597 void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth, 13598 int (**psign_init) (EVP_PKEY_CTX *ctx), 13599 int (**psign) (EVP_PKEY_CTX *ctx, 13600 unsigned char *sig, size_t *siglen, 13601 const unsigned char *tbs, 13602 size_t tbslen)); 13603 13604 void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth, 13605 int (**pverify_init) (EVP_PKEY_CTX *ctx), 13606 int (**pverify) (EVP_PKEY_CTX *ctx, 13607 const unsigned char *sig, 13608 size_t siglen, 13609 const unsigned char *tbs, 13610 size_t tbslen)); 13611 13612 void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth, 13613 int (**pverify_recover_init) (EVP_PKEY_CTX 13614 *ctx), 13615 int (**pverify_recover) (EVP_PKEY_CTX 13616 *ctx, 13617 unsigned char 13618 *sig, 13619 size_t *siglen, 13620 const unsigned 13621 char *tbs, 13622 size_t tbslen)); 13623 13624 void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth, 13625 int (**psignctx_init) (EVP_PKEY_CTX *ctx, 13626 EVP_MD_CTX *mctx), 13627 int (**psignctx) (EVP_PKEY_CTX *ctx, 13628 unsigned char *sig, 13629 size_t *siglen, 13630 EVP_MD_CTX *mctx)); 13631 13632 void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth, 13633 int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, 13634 EVP_MD_CTX *mctx), 13635 int (**pverifyctx) (EVP_PKEY_CTX *ctx, 13636 const unsigned char *sig, 13637 int siglen, 13638 EVP_MD_CTX *mctx)); 13639 13640 void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth, 13641 int (**pencrypt_init) (EVP_PKEY_CTX *ctx), 13642 int (**pencryptfn) (EVP_PKEY_CTX *ctx, 13643 unsigned char *out, 13644 size_t *outlen, 13645 const unsigned char *in, 13646 size_t inlen)); 13647 13648 void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth, 13649 int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), 13650 int (**pdecrypt) (EVP_PKEY_CTX *ctx, 13651 unsigned char *out, 13652 size_t *outlen, 13653 const unsigned char *in, 13654 size_t inlen)); 13655 13656 void EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth, 13657 int (**pderive_init) (EVP_PKEY_CTX *ctx), 13658 int (**pderive) (EVP_PKEY_CTX *ctx, 13659 unsigned char *key, 13660 size_t *keylen)); 13661 13662 void EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth, 13663 int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, 13664 void *p2), 13665 int (**pctrl_str) (EVP_PKEY_CTX *ctx, 13666 const char *type, 13667 const char *value)); 13668 13669 void EVP_add_alg_module(void); 13670 13671 /* BEGIN ERROR CODES */ 13672 /* 13673 * The following lines are auto generated by the script mkerr.pl. Any changes 13674 * made after this point may be overwritten when the script is next run. 13675 */ 13676 13677 void ERR_load_EVP_strings(void); 13678 13679 /* Error codes for the EVP functions. */ 13680 13681 /* Function codes. */ 13682 # 1554 "/usr/include/openssl/evp.h" 3 4 13683 /* Reason codes. */ 13684 # 74 "/usr/include/openssl/x509.h" 2 3 4 13685 13686 13687 # 1 "/usr/include/openssl/bio.h" 1 3 4 13688 /* crypto/bio/bio.h */ 13689 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 13690 * All rights reserved. 13691 * 13692 * This package is an SSL implementation written 13693 * by Eric Young (eay@cryptsoft.com). 13694 * The implementation was written so as to conform with Netscapes SSL. 13695 * 13696 * This library is free for commercial and non-commercial use as long as 13697 * the following conditions are aheared to. The following conditions 13698 * apply to all code found in this distribution, be it the RC4, RSA, 13699 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13700 * included with this distribution is covered by the same copyright terms 13701 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 13702 * 13703 * Copyright remains Eric Young's, and as such any Copyright notices in 13704 * the code are not to be removed. 13705 * If this package is used in a product, Eric Young should be given attribution 13706 * as the author of the parts of the library used. 13707 * This can be in the form of a textual message at program startup or 13708 * in documentation (online or textual) provided with the package. 13709 * 13710 * Redistribution and use in source and binary forms, with or without 13711 * modification, are permitted provided that the following conditions 13712 * are met: 13713 * 1. Redistributions of source code must retain the copyright 13714 * notice, this list of conditions and the following disclaimer. 13715 * 2. Redistributions in binary form must reproduce the above copyright 13716 * notice, this list of conditions and the following disclaimer in the 13717 * documentation and/or other materials provided with the distribution. 13718 * 3. All advertising materials mentioning features or use of this software 13719 * must display the following acknowledgement: 13720 * "This product includes cryptographic software written by 13721 * Eric Young (eay@cryptsoft.com)" 13722 * The word 'cryptographic' can be left out if the rouines from the library 13723 * being used are not cryptographic related :-). 13724 * 4. If you include any Windows specific code (or a derivative thereof) from 13725 * the apps directory (application code) you must include an acknowledgement: 13726 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 13727 * 13728 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 13729 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13730 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 13731 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 13732 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 13733 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 13734 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13735 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 13736 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 13737 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 13738 * SUCH DAMAGE. 13739 * 13740 * The licence and distribution terms for any publically available version or 13741 * derivative of this code cannot be changed. i.e. this code cannot simply be 13742 * copied and put under another distribution licence 13743 * [including the GNU Public Licence.] 13744 */ 13745 # 77 "/usr/include/openssl/x509.h" 2 3 4 13746 13747 # 1 "/usr/include/openssl/stack.h" 1 3 4 13748 /* crypto/stack/stack.h */ 13749 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 13750 * All rights reserved. 13751 * 13752 * This package is an SSL implementation written 13753 * by Eric Young (eay@cryptsoft.com). 13754 * The implementation was written so as to conform with Netscapes SSL. 13755 * 13756 * This library is free for commercial and non-commercial use as long as 13757 * the following conditions are aheared to. The following conditions 13758 * apply to all code found in this distribution, be it the RC4, RSA, 13759 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13760 * included with this distribution is covered by the same copyright terms 13761 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 13762 * 13763 * Copyright remains Eric Young's, and as such any Copyright notices in 13764 * the code are not to be removed. 13765 * If this package is used in a product, Eric Young should be given attribution 13766 * as the author of the parts of the library used. 13767 * This can be in the form of a textual message at program startup or 13768 * in documentation (online or textual) provided with the package. 13769 * 13770 * Redistribution and use in source and binary forms, with or without 13771 * modification, are permitted provided that the following conditions 13772 * are met: 13773 * 1. Redistributions of source code must retain the copyright 13774 * notice, this list of conditions and the following disclaimer. 13775 * 2. Redistributions in binary form must reproduce the above copyright 13776 * notice, this list of conditions and the following disclaimer in the 13777 * documentation and/or other materials provided with the distribution. 13778 * 3. All advertising materials mentioning features or use of this software 13779 * must display the following acknowledgement: 13780 * "This product includes cryptographic software written by 13781 * Eric Young (eay@cryptsoft.com)" 13782 * The word 'cryptographic' can be left out if the rouines from the library 13783 * being used are not cryptographic related :-). 13784 * 4. If you include any Windows specific code (or a derivative thereof) from 13785 * the apps directory (application code) you must include an acknowledgement: 13786 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 13787 * 13788 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 13789 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13790 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 13791 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 13792 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 13793 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 13794 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13795 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 13796 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 13797 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 13798 * SUCH DAMAGE. 13799 * 13800 * The licence and distribution terms for any publically available version or 13801 * derivative of this code cannot be changed. i.e. this code cannot simply be 13802 * copied and put under another distribution licence 13803 * [including the GNU Public Licence.] 13804 */ 13805 # 79 "/usr/include/openssl/x509.h" 2 3 4 13806 # 1 "/usr/include/openssl/asn1.h" 1 3 4 13807 /* crypto/asn1/asn1.h */ 13808 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 13809 * All rights reserved. 13810 * 13811 * This package is an SSL implementation written 13812 * by Eric Young (eay@cryptsoft.com). 13813 * The implementation was written so as to conform with Netscapes SSL. 13814 * 13815 * This library is free for commercial and non-commercial use as long as 13816 * the following conditions are aheared to. The following conditions 13817 * apply to all code found in this distribution, be it the RC4, RSA, 13818 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13819 * included with this distribution is covered by the same copyright terms 13820 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 13821 * 13822 * Copyright remains Eric Young's, and as such any Copyright notices in 13823 * the code are not to be removed. 13824 * If this package is used in a product, Eric Young should be given attribution 13825 * as the author of the parts of the library used. 13826 * This can be in the form of a textual message at program startup or 13827 * in documentation (online or textual) provided with the package. 13828 * 13829 * Redistribution and use in source and binary forms, with or without 13830 * modification, are permitted provided that the following conditions 13831 * are met: 13832 * 1. Redistributions of source code must retain the copyright 13833 * notice, this list of conditions and the following disclaimer. 13834 * 2. Redistributions in binary form must reproduce the above copyright 13835 * notice, this list of conditions and the following disclaimer in the 13836 * documentation and/or other materials provided with the distribution. 13837 * 3. All advertising materials mentioning features or use of this software 13838 * must display the following acknowledgement: 13839 * "This product includes cryptographic software written by 13840 * Eric Young (eay@cryptsoft.com)" 13841 * The word 'cryptographic' can be left out if the rouines from the library 13842 * being used are not cryptographic related :-). 13843 * 4. If you include any Windows specific code (or a derivative thereof) from 13844 * the apps directory (application code) you must include an acknowledgement: 13845 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 13846 * 13847 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 13848 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13849 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 13850 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 13851 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 13852 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 13853 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13854 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 13855 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 13856 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 13857 * SUCH DAMAGE. 13858 * 13859 * The licence and distribution terms for any publically available version or 13860 * derivative of this code cannot be changed. i.e. this code cannot simply be 13861 * copied and put under another distribution licence 13862 * [including the GNU Public Licence.] 13863 */ 13864 # 80 "/usr/include/openssl/x509.h" 2 3 4 13865 # 1 "/usr/include/openssl/safestack.h" 1 3 4 13866 /* ==================================================================== 13867 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 13868 * 13869 * Redistribution and use in source and binary forms, with or without 13870 * modification, are permitted provided that the following conditions 13871 * are met: 13872 * 13873 * 1. Redistributions of source code must retain the above copyright 13874 * notice, this list of conditions and the following disclaimer. 13875 * 13876 * 2. Redistributions in binary form must reproduce the above copyright 13877 * notice, this list of conditions and the following disclaimer in 13878 * the documentation and/or other materials provided with the 13879 * distribution. 13880 * 13881 * 3. All advertising materials mentioning features or use of this 13882 * software must display the following acknowledgment: 13883 * "This product includes software developed by the OpenSSL Project 13884 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 13885 * 13886 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 13887 * endorse or promote products derived from this software without 13888 * prior written permission. For written permission, please contact 13889 * openssl-core@openssl.org. 13890 * 13891 * 5. Products derived from this software may not be called "OpenSSL" 13892 * nor may "OpenSSL" appear in their names without prior written 13893 * permission of the OpenSSL Project. 13894 * 13895 * 6. Redistributions of any form whatsoever must retain the following 13896 * acknowledgment: 13897 * "This product includes software developed by the OpenSSL Project 13898 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 13899 * 13900 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 13901 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13902 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 13903 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 13904 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 13905 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 13906 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 13907 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13908 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 13909 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 13910 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 13911 * OF THE POSSIBILITY OF SUCH DAMAGE. 13912 * ==================================================================== 13913 * 13914 * This product includes cryptographic software written by Eric Young 13915 * (eay@cryptsoft.com). This product includes software written by Tim 13916 * Hudson (tjh@cryptsoft.com). 13917 * 13918 */ 13919 # 81 "/usr/include/openssl/x509.h" 2 3 4 13920 13921 13922 # 1 "/usr/include/openssl/ec.h" 1 3 4 13923 /* crypto/ec/ec.h */ 13924 /* 13925 * Originally written by Bodo Moeller for the OpenSSL project. 13926 */ 13927 /** 13928 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 13929 * \author Originally written by Bodo Moeller for the OpenSSL project 13930 */ 13931 /* ==================================================================== 13932 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 13933 * 13934 * Redistribution and use in source and binary forms, with or without 13935 * modification, are permitted provided that the following conditions 13936 * are met: 13937 * 13938 * 1. Redistributions of source code must retain the above copyright 13939 * notice, this list of conditions and the following disclaimer. 13940 * 13941 * 2. Redistributions in binary form must reproduce the above copyright 13942 * notice, this list of conditions and the following disclaimer in 13943 * the documentation and/or other materials provided with the 13944 * distribution. 13945 * 13946 * 3. All advertising materials mentioning features or use of this 13947 * software must display the following acknowledgment: 13948 * "This product includes software developed by the OpenSSL Project 13949 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 13950 * 13951 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 13952 * endorse or promote products derived from this software without 13953 * prior written permission. For written permission, please contact 13954 * openssl-core@openssl.org. 13955 * 13956 * 5. Products derived from this software may not be called "OpenSSL" 13957 * nor may "OpenSSL" appear in their names without prior written 13958 * permission of the OpenSSL Project. 13959 * 13960 * 6. Redistributions of any form whatsoever must retain the following 13961 * acknowledgment: 13962 * "This product includes software developed by the OpenSSL Project 13963 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 13964 * 13965 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 13966 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 13967 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 13968 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 13969 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 13970 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 13971 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 13972 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 13973 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 13974 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 13975 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 13976 * OF THE POSSIBILITY OF SUCH DAMAGE. 13977 * ==================================================================== 13978 * 13979 * This product includes cryptographic software written by Eric Young 13980 * (eay@cryptsoft.com). This product includes software written by Tim 13981 * Hudson (tjh@cryptsoft.com). 13982 * 13983 */ 13984 /* ==================================================================== 13985 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 13986 * 13987 * Portions of the attached software ("Contribution") are developed by 13988 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 13989 * 13990 * The Contribution is licensed pursuant to the OpenSSL open source 13991 * license provided above. 13992 * 13993 * The elliptic curve binary polynomial software is originally written by 13994 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 13995 * 13996 */ 13997 13998 13999 14000 14001 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 14002 /* opensslconf.h */ 14003 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 14004 14005 14006 14007 14008 /* OpenSSL was configured with the following options: */ 14009 # 108 "/usr/include/openssl/opensslconf.h" 3 4 14010 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 14011 asks for it. This is a transient feature that is provided for those 14012 who haven't had the time to do the appropriate changes in their 14013 applications. */ 14014 # 204 "/usr/include/openssl/opensslconf.h" 3 4 14015 /* crypto/opensslconf.h.in */ 14016 14017 /* Generate 80386 code? */ 14018 # 80 "/usr/include/openssl/ec.h" 2 3 4 14019 14020 14021 14022 14023 14024 # 1 "/usr/include/openssl/asn1.h" 1 3 4 14025 /* crypto/asn1/asn1.h */ 14026 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 14027 * All rights reserved. 14028 * 14029 * This package is an SSL implementation written 14030 * by Eric Young (eay@cryptsoft.com). 14031 * The implementation was written so as to conform with Netscapes SSL. 14032 * 14033 * This library is free for commercial and non-commercial use as long as 14034 * the following conditions are aheared to. The following conditions 14035 * apply to all code found in this distribution, be it the RC4, RSA, 14036 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 14037 * included with this distribution is covered by the same copyright terms 14038 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14039 * 14040 * Copyright remains Eric Young's, and as such any Copyright notices in 14041 * the code are not to be removed. 14042 * If this package is used in a product, Eric Young should be given attribution 14043 * as the author of the parts of the library used. 14044 * This can be in the form of a textual message at program startup or 14045 * in documentation (online or textual) provided with the package. 14046 * 14047 * Redistribution and use in source and binary forms, with or without 14048 * modification, are permitted provided that the following conditions 14049 * are met: 14050 * 1. Redistributions of source code must retain the copyright 14051 * notice, this list of conditions and the following disclaimer. 14052 * 2. Redistributions in binary form must reproduce the above copyright 14053 * notice, this list of conditions and the following disclaimer in the 14054 * documentation and/or other materials provided with the distribution. 14055 * 3. All advertising materials mentioning features or use of this software 14056 * must display the following acknowledgement: 14057 * "This product includes cryptographic software written by 14058 * Eric Young (eay@cryptsoft.com)" 14059 * The word 'cryptographic' can be left out if the rouines from the library 14060 * being used are not cryptographic related :-). 14061 * 4. If you include any Windows specific code (or a derivative thereof) from 14062 * the apps directory (application code) you must include an acknowledgement: 14063 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 14064 * 14065 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 14066 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14067 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 14068 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 14069 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 14070 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 14071 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14072 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 14073 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 14074 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 14075 * SUCH DAMAGE. 14076 * 14077 * The licence and distribution terms for any publically available version or 14078 * derivative of this code cannot be changed. i.e. this code cannot simply be 14079 * copied and put under another distribution licence 14080 * [including the GNU Public Licence.] 14081 */ 14082 # 86 "/usr/include/openssl/ec.h" 2 3 4 14083 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 14084 /* ==================================================================== 14085 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 14086 * 14087 * Redistribution and use in source and binary forms, with or without 14088 * modification, are permitted provided that the following conditions 14089 * are met: 14090 * 14091 * 1. Redistributions of source code must retain the above copyright 14092 * notice, this list of conditions and the following disclaimer. 14093 * 14094 * 2. Redistributions in binary form must reproduce the above copyright 14095 * notice, this list of conditions and the following disclaimer in 14096 * the documentation and/or other materials provided with the 14097 * distribution. 14098 * 14099 * 3. All advertising materials mentioning features or use of this 14100 * software must display the following acknowledgment: 14101 * "This product includes software developed by the OpenSSL Project 14102 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 14103 * 14104 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 14105 * endorse or promote products derived from this software without 14106 * prior written permission. For written permission, please contact 14107 * openssl-core@openssl.org. 14108 * 14109 * 5. Products derived from this software may not be called "OpenSSL" 14110 * nor may "OpenSSL" appear in their names without prior written 14111 * permission of the OpenSSL Project. 14112 * 14113 * 6. Redistributions of any form whatsoever must retain the following 14114 * acknowledgment: 14115 * "This product includes software developed by the OpenSSL Project 14116 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 14117 * 14118 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 14119 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14120 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 14121 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 14122 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 14123 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 14124 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 14125 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14126 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 14127 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 14128 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 14129 * OF THE POSSIBILITY OF SUCH DAMAGE. 14130 * ==================================================================== 14131 * 14132 * This product includes cryptographic software written by Eric Young 14133 * (eay@cryptsoft.com). This product includes software written by Tim 14134 * Hudson (tjh@cryptsoft.com). 14135 * 14136 */ 14137 # 87 "/usr/include/openssl/ec.h" 2 3 4 14138 14139 # 1 "/usr/include/openssl/bn.h" 1 3 4 14140 /* crypto/bn/bn.h */ 14141 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 14142 * All rights reserved. 14143 * 14144 * This package is an SSL implementation written 14145 * by Eric Young (eay@cryptsoft.com). 14146 * The implementation was written so as to conform with Netscapes SSL. 14147 * 14148 * This library is free for commercial and non-commercial use as long as 14149 * the following conditions are aheared to. The following conditions 14150 * apply to all code found in this distribution, be it the RC4, RSA, 14151 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 14152 * included with this distribution is covered by the same copyright terms 14153 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14154 * 14155 * Copyright remains Eric Young's, and as such any Copyright notices in 14156 * the code are not to be removed. 14157 * If this package is used in a product, Eric Young should be given attribution 14158 * as the author of the parts of the library used. 14159 * This can be in the form of a textual message at program startup or 14160 * in documentation (online or textual) provided with the package. 14161 * 14162 * Redistribution and use in source and binary forms, with or without 14163 * modification, are permitted provided that the following conditions 14164 * are met: 14165 * 1. Redistributions of source code must retain the copyright 14166 * notice, this list of conditions and the following disclaimer. 14167 * 2. Redistributions in binary form must reproduce the above copyright 14168 * notice, this list of conditions and the following disclaimer in the 14169 * documentation and/or other materials provided with the distribution. 14170 * 3. All advertising materials mentioning features or use of this software 14171 * must display the following acknowledgement: 14172 * "This product includes cryptographic software written by 14173 * Eric Young (eay@cryptsoft.com)" 14174 * The word 'cryptographic' can be left out if the rouines from the library 14175 * being used are not cryptographic related :-). 14176 * 4. If you include any Windows specific code (or a derivative thereof) from 14177 * the apps directory (application code) you must include an acknowledgement: 14178 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 14179 * 14180 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 14181 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14182 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 14183 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 14184 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 14185 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 14186 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14187 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 14188 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 14189 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 14190 * SUCH DAMAGE. 14191 * 14192 * The licence and distribution terms for any publically available version or 14193 * derivative of this code cannot be changed. i.e. this code cannot simply be 14194 * copied and put under another distribution licence 14195 * [including the GNU Public Licence.] 14196 */ 14197 /* ==================================================================== 14198 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 14199 * 14200 * Redistribution and use in source and binary forms, with or without 14201 * modification, are permitted provided that the following conditions 14202 * are met: 14203 * 14204 * 1. Redistributions of source code must retain the above copyright 14205 * notice, this list of conditions and the following disclaimer. 14206 * 14207 * 2. Redistributions in binary form must reproduce the above copyright 14208 * notice, this list of conditions and the following disclaimer in 14209 * the documentation and/or other materials provided with the 14210 * distribution. 14211 * 14212 * 3. All advertising materials mentioning features or use of this 14213 * software must display the following acknowledgment: 14214 * "This product includes software developed by the OpenSSL Project 14215 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 14216 * 14217 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 14218 * endorse or promote products derived from this software without 14219 * prior written permission. For written permission, please contact 14220 * openssl-core@openssl.org. 14221 * 14222 * 5. Products derived from this software may not be called "OpenSSL" 14223 * nor may "OpenSSL" appear in their names without prior written 14224 * permission of the OpenSSL Project. 14225 * 14226 * 6. Redistributions of any form whatsoever must retain the following 14227 * acknowledgment: 14228 * "This product includes software developed by the OpenSSL Project 14229 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 14230 * 14231 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 14232 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14233 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 14234 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 14235 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 14236 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 14237 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 14238 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 14239 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 14240 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 14241 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 14242 * OF THE POSSIBILITY OF SUCH DAMAGE. 14243 * ==================================================================== 14244 * 14245 * This product includes cryptographic software written by Eric Young 14246 * (eay@cryptsoft.com). This product includes software written by Tim 14247 * Hudson (tjh@cryptsoft.com). 14248 * 14249 */ 14250 /* ==================================================================== 14251 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 14252 * 14253 * Portions of the attached software ("Contribution") are developed by 14254 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 14255 * 14256 * The Contribution is licensed pursuant to the Eric Young open source 14257 * license provided above. 14258 * 14259 * The binary polynomial arithmetic software is originally written by 14260 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 14261 * 14262 */ 14263 # 89 "/usr/include/openssl/ec.h" 2 3 4 14264 # 103 "/usr/include/openssl/ec.h" 3 4 14265 /** Enum for the point conversion form as defined in X9.62 (ECDSA) 14266 * for the encoding of a elliptic curve point (x,y) */ 14267 typedef enum { 14268 /** the point is encoded as z||x, where the octet z specifies 14269 * which solution of the quadratic equation y is */ 14270 POINT_CONVERSION_COMPRESSED = 2, 14271 /** the point is encoded as z||x||y, where z is the octet 0x04 */ 14272 POINT_CONVERSION_UNCOMPRESSED = 4, 14273 /** the point is encoded as z||x||y, where the octet z specifies 14274 * which solution of the quadratic equation y is */ 14275 POINT_CONVERSION_HYBRID = 6 14276 } point_conversion_form_t; 14277 14278 typedef struct ec_method_st EC_METHOD; 14279 14280 typedef struct ec_group_st 14281 /*- 14282 EC_METHOD *meth; 14283 -- field definition 14284 -- curve coefficients 14285 -- optional generator with associated information (order, cofactor) 14286 -- optional extra data (precomputed table for fast computation of multiples of generator) 14287 -- ASN1 stuff 14288 */ 14289 EC_GROUP; 14290 14291 typedef struct ec_point_st EC_POINT; 14292 14293 /********************************************************************/ 14294 /* EC_METHODs for curves over GF(p) */ 14295 /********************************************************************/ 14296 14297 /** Returns the basic GFp ec methods which provides the basis for the 14298 * optimized methods. 14299 * \return EC_METHOD object 14300 */ 14301 const EC_METHOD *EC_GFp_simple_method(void); 14302 14303 /** Returns GFp methods using montgomery multiplication. 14304 * \return EC_METHOD object 14305 */ 14306 const EC_METHOD *EC_GFp_mont_method(void); 14307 14308 /** Returns GFp methods using optimized methods for NIST recommended curves 14309 * \return EC_METHOD object 14310 */ 14311 const EC_METHOD *EC_GFp_nist_method(void); 14312 # 169 "/usr/include/openssl/ec.h" 3 4 14313 /********************************************************************/ 14314 /* EC_METHOD for curves over GF(2^m) */ 14315 /********************************************************************/ 14316 14317 /** Returns the basic GF2m ec method 14318 * \return EC_METHOD object 14319 */ 14320 const EC_METHOD *EC_GF2m_simple_method(void); 14321 14322 14323 14324 /********************************************************************/ 14325 /* EC_GROUP functions */ 14326 /********************************************************************/ 14327 14328 /** Creates a new EC_GROUP object 14329 * \param meth EC_METHOD to use 14330 * \return newly created EC_GROUP object or NULL in case of an error. 14331 */ 14332 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); 14333 14334 /** Frees a EC_GROUP object 14335 * \param group EC_GROUP object to be freed. 14336 */ 14337 void EC_GROUP_free(EC_GROUP *group); 14338 14339 /** Clears and frees a EC_GROUP object 14340 * \param group EC_GROUP object to be cleared and freed. 14341 */ 14342 void EC_GROUP_clear_free(EC_GROUP *group); 14343 14344 /** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. 14345 * \param dst destination EC_GROUP object 14346 * \param src source EC_GROUP object 14347 * \return 1 on success and 0 if an error occurred. 14348 */ 14349 int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); 14350 14351 /** Creates a new EC_GROUP object and copies the copies the content 14352 * form src to the newly created EC_KEY object 14353 * \param src source EC_GROUP object 14354 * \return newly created EC_GROUP object or NULL in case of an error. 14355 */ 14356 EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); 14357 14358 /** Returns the EC_METHOD of the EC_GROUP object. 14359 * \param group EC_GROUP object 14360 * \return EC_METHOD used in this EC_GROUP object. 14361 */ 14362 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); 14363 14364 /** Returns the field type of the EC_METHOD. 14365 * \param meth EC_METHOD object 14366 * \return NID of the underlying field type OID. 14367 */ 14368 int EC_METHOD_get_field_type(const EC_METHOD *meth); 14369 14370 /** Sets the generator and it's order/cofactor of a EC_GROUP object. 14371 * \param group EC_GROUP object 14372 * \param generator EC_POINT object with the generator. 14373 * \param order the order of the group generated by the generator. 14374 * \param cofactor the index of the sub-group generated by the generator 14375 * in the group of all points on the elliptic curve. 14376 * \return 1 on success and 0 if an error occured 14377 */ 14378 int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, 14379 const BIGNUM *order, const BIGNUM *cofactor); 14380 14381 /** Returns the generator of a EC_GROUP object. 14382 * \param group EC_GROUP object 14383 * \return the currently used generator (possibly NULL). 14384 */ 14385 const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); 14386 14387 /** Returns the montgomery data for order(Generator) 14388 * \param group EC_GROUP object 14389 * \return the currently used generator (possibly NULL). 14390 */ 14391 BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); 14392 14393 /** Gets the order of a EC_GROUP 14394 * \param group EC_GROUP object 14395 * \param order BIGNUM to which the order is copied 14396 * \param ctx BN_CTX object (optional) 14397 * \return 1 on success and 0 if an error occured 14398 */ 14399 int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); 14400 14401 /** Gets the cofactor of a EC_GROUP 14402 * \param group EC_GROUP object 14403 * \param cofactor BIGNUM to which the cofactor is copied 14404 * \param ctx BN_CTX object (optional) 14405 * \return 1 on success and 0 if an error occured 14406 */ 14407 int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, 14408 BN_CTX *ctx); 14409 14410 /** Sets the name of a EC_GROUP object 14411 * \param group EC_GROUP object 14412 * \param nid NID of the curve name OID 14413 */ 14414 void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); 14415 14416 /** Returns the curve name of a EC_GROUP object 14417 * \param group EC_GROUP object 14418 * \return NID of the curve name OID or 0 if not set. 14419 */ 14420 int EC_GROUP_get_curve_name(const EC_GROUP *group); 14421 14422 void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); 14423 int EC_GROUP_get_asn1_flag(const EC_GROUP *group); 14424 14425 void EC_GROUP_set_point_conversion_form(EC_GROUP *group, 14426 point_conversion_form_t form); 14427 point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); 14428 14429 unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); 14430 size_t EC_GROUP_get_seed_len(const EC_GROUP *); 14431 size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); 14432 14433 /** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b 14434 * \param group EC_GROUP object 14435 * \param p BIGNUM with the prime number 14436 * \param a BIGNUM with parameter a of the equation 14437 * \param b BIGNUM with parameter b of the equation 14438 * \param ctx BN_CTX object (optional) 14439 * \return 1 on success and 0 if an error occured 14440 */ 14441 int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, 14442 const BIGNUM *b, BN_CTX *ctx); 14443 14444 /** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b 14445 * \param group EC_GROUP object 14446 * \param p BIGNUM for the prime number 14447 * \param a BIGNUM for parameter a of the equation 14448 * \param b BIGNUM for parameter b of the equation 14449 * \param ctx BN_CTX object (optional) 14450 * \return 1 on success and 0 if an error occured 14451 */ 14452 int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, 14453 BIGNUM *b, BN_CTX *ctx); 14454 14455 14456 /** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b 14457 * \param group EC_GROUP object 14458 * \param p BIGNUM with the polynomial defining the underlying field 14459 * \param a BIGNUM with parameter a of the equation 14460 * \param b BIGNUM with parameter b of the equation 14461 * \param ctx BN_CTX object (optional) 14462 * \return 1 on success and 0 if an error occured 14463 */ 14464 int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, 14465 const BIGNUM *b, BN_CTX *ctx); 14466 14467 /** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b 14468 * \param group EC_GROUP object 14469 * \param p BIGNUM for the polynomial defining the underlying field 14470 * \param a BIGNUM for parameter a of the equation 14471 * \param b BIGNUM for parameter b of the equation 14472 * \param ctx BN_CTX object (optional) 14473 * \return 1 on success and 0 if an error occured 14474 */ 14475 int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, 14476 BIGNUM *b, BN_CTX *ctx); 14477 14478 /** Returns the number of bits needed to represent a field element 14479 * \param group EC_GROUP object 14480 * \return number of bits needed to represent a field element 14481 */ 14482 int EC_GROUP_get_degree(const EC_GROUP *group); 14483 14484 /** Checks whether the parameter in the EC_GROUP define a valid ec group 14485 * \param group EC_GROUP object 14486 * \param ctx BN_CTX object (optional) 14487 * \return 1 if group is a valid ec group and 0 otherwise 14488 */ 14489 int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); 14490 14491 /** Checks whether the discriminant of the elliptic curve is zero or not 14492 * \param group EC_GROUP object 14493 * \param ctx BN_CTX object (optional) 14494 * \return 1 if the discriminant is not zero and 0 otherwise 14495 */ 14496 int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); 14497 14498 /** Compares two EC_GROUP objects 14499 * \param a first EC_GROUP object 14500 * \param b second EC_GROUP object 14501 * \param ctx BN_CTX object (optional) 14502 * \return 0 if both groups are equal and 1 otherwise 14503 */ 14504 int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); 14505 14506 /* 14507 * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after 14508 * choosing an appropriate EC_METHOD 14509 */ 14510 14511 /** Creates a new EC_GROUP object with the specified parameters defined 14512 * over GFp (defined by the equation y^2 = x^3 + a*x + b) 14513 * \param p BIGNUM with the prime number 14514 * \param a BIGNUM with the parameter a of the equation 14515 * \param b BIGNUM with the parameter b of the equation 14516 * \param ctx BN_CTX object (optional) 14517 * \return newly created EC_GROUP object with the specified parameters 14518 */ 14519 EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, 14520 const BIGNUM *b, BN_CTX *ctx); 14521 14522 /** Creates a new EC_GROUP object with the specified parameters defined 14523 * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) 14524 * \param p BIGNUM with the polynomial defining the underlying field 14525 * \param a BIGNUM with the parameter a of the equation 14526 * \param b BIGNUM with the parameter b of the equation 14527 * \param ctx BN_CTX object (optional) 14528 * \return newly created EC_GROUP object with the specified parameters 14529 */ 14530 EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, 14531 const BIGNUM *b, BN_CTX *ctx); 14532 14533 /** Creates a EC_GROUP object with a curve specified by a NID 14534 * \param nid NID of the OID of the curve name 14535 * \return newly created EC_GROUP object with specified curve or NULL 14536 * if an error occurred 14537 */ 14538 EC_GROUP *EC_GROUP_new_by_curve_name(int nid); 14539 14540 /********************************************************************/ 14541 /* handling of internal curves */ 14542 /********************************************************************/ 14543 14544 typedef struct { 14545 int nid; 14546 const char *comment; 14547 } EC_builtin_curve; 14548 14549 /* 14550 * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all 14551 * available curves or zero if a error occurred. In case r ist not zero 14552 * nitems EC_builtin_curve structures are filled with the data of the first 14553 * nitems internal groups 14554 */ 14555 size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); 14556 14557 const char *EC_curve_nid2nist(int nid); 14558 int EC_curve_nist2nid(const char *name); 14559 14560 /********************************************************************/ 14561 /* EC_POINT functions */ 14562 /********************************************************************/ 14563 14564 /** Creates a new EC_POINT object for the specified EC_GROUP 14565 * \param group EC_GROUP the underlying EC_GROUP object 14566 * \return newly created EC_POINT object or NULL if an error occurred 14567 */ 14568 EC_POINT *EC_POINT_new(const EC_GROUP *group); 14569 14570 /** Frees a EC_POINT object 14571 * \param point EC_POINT object to be freed 14572 */ 14573 void EC_POINT_free(EC_POINT *point); 14574 14575 /** Clears and frees a EC_POINT object 14576 * \param point EC_POINT object to be cleared and freed 14577 */ 14578 void EC_POINT_clear_free(EC_POINT *point); 14579 14580 /** Copies EC_POINT object 14581 * \param dst destination EC_POINT object 14582 * \param src source EC_POINT object 14583 * \return 1 on success and 0 if an error occured 14584 */ 14585 int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); 14586 14587 /** Creates a new EC_POINT object and copies the content of the supplied 14588 * EC_POINT 14589 * \param src source EC_POINT object 14590 * \param group underlying the EC_GROUP object 14591 * \return newly created EC_POINT object or NULL if an error occurred 14592 */ 14593 EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); 14594 14595 /** Returns the EC_METHOD used in EC_POINT object 14596 * \param point EC_POINT object 14597 * \return the EC_METHOD used 14598 */ 14599 const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); 14600 14601 /** Sets a point to infinity (neutral element) 14602 * \param group underlying EC_GROUP object 14603 * \param point EC_POINT to set to infinity 14604 * \return 1 on success and 0 if an error occured 14605 */ 14606 int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); 14607 14608 /** Sets the jacobian projective coordinates of a EC_POINT over GFp 14609 * \param group underlying EC_GROUP object 14610 * \param p EC_POINT object 14611 * \param x BIGNUM with the x-coordinate 14612 * \param y BIGNUM with the y-coordinate 14613 * \param z BIGNUM with the z-coordinate 14614 * \param ctx BN_CTX object (optional) 14615 * \return 1 on success and 0 if an error occured 14616 */ 14617 int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, 14618 EC_POINT *p, const BIGNUM *x, 14619 const BIGNUM *y, const BIGNUM *z, 14620 BN_CTX *ctx); 14621 14622 /** Gets the jacobian projective coordinates of a EC_POINT over GFp 14623 * \param group underlying EC_GROUP object 14624 * \param p EC_POINT object 14625 * \param x BIGNUM for the x-coordinate 14626 * \param y BIGNUM for the y-coordinate 14627 * \param z BIGNUM for the z-coordinate 14628 * \param ctx BN_CTX object (optional) 14629 * \return 1 on success and 0 if an error occured 14630 */ 14631 int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, 14632 const EC_POINT *p, BIGNUM *x, 14633 BIGNUM *y, BIGNUM *z, 14634 BN_CTX *ctx); 14635 14636 /** Sets the affine coordinates of a EC_POINT over GFp 14637 * \param group underlying EC_GROUP object 14638 * \param p EC_POINT object 14639 * \param x BIGNUM with the x-coordinate 14640 * \param y BIGNUM with the y-coordinate 14641 * \param ctx BN_CTX object (optional) 14642 * \return 1 on success and 0 if an error occured 14643 */ 14644 int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, 14645 const BIGNUM *x, const BIGNUM *y, 14646 BN_CTX *ctx); 14647 14648 /** Gets the affine coordinates of a EC_POINT over GFp 14649 * \param group underlying EC_GROUP object 14650 * \param p EC_POINT object 14651 * \param x BIGNUM for the x-coordinate 14652 * \param y BIGNUM for the y-coordinate 14653 * \param ctx BN_CTX object (optional) 14654 * \return 1 on success and 0 if an error occured 14655 */ 14656 int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, 14657 const EC_POINT *p, BIGNUM *x, 14658 BIGNUM *y, BN_CTX *ctx); 14659 14660 /** Sets the x9.62 compressed coordinates of a EC_POINT over GFp 14661 * \param group underlying EC_GROUP object 14662 * \param p EC_POINT object 14663 * \param x BIGNUM with x-coordinate 14664 * \param y_bit integer with the y-Bit (either 0 or 1) 14665 * \param ctx BN_CTX object (optional) 14666 * \return 1 on success and 0 if an error occured 14667 */ 14668 int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, 14669 EC_POINT *p, const BIGNUM *x, 14670 int y_bit, BN_CTX *ctx); 14671 14672 /** Sets the affine coordinates of a EC_POINT over GF2m 14673 * \param group underlying EC_GROUP object 14674 * \param p EC_POINT object 14675 * \param x BIGNUM with the x-coordinate 14676 * \param y BIGNUM with the y-coordinate 14677 * \param ctx BN_CTX object (optional) 14678 * \return 1 on success and 0 if an error occured 14679 */ 14680 int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, 14681 const BIGNUM *x, const BIGNUM *y, 14682 BN_CTX *ctx); 14683 14684 /** Gets the affine coordinates of a EC_POINT over GF2m 14685 * \param group underlying EC_GROUP object 14686 * \param p EC_POINT object 14687 * \param x BIGNUM for the x-coordinate 14688 * \param y BIGNUM for the y-coordinate 14689 * \param ctx BN_CTX object (optional) 14690 * \return 1 on success and 0 if an error occured 14691 */ 14692 int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, 14693 const EC_POINT *p, BIGNUM *x, 14694 BIGNUM *y, BN_CTX *ctx); 14695 14696 /** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m 14697 * \param group underlying EC_GROUP object 14698 * \param p EC_POINT object 14699 * \param x BIGNUM with x-coordinate 14700 * \param y_bit integer with the y-Bit (either 0 or 1) 14701 * \param ctx BN_CTX object (optional) 14702 * \return 1 on success and 0 if an error occured 14703 */ 14704 int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, 14705 EC_POINT *p, const BIGNUM *x, 14706 int y_bit, BN_CTX *ctx); 14707 14708 /** Encodes a EC_POINT object to a octet string 14709 * \param group underlying EC_GROUP object 14710 * \param p EC_POINT object 14711 * \param form point conversion form 14712 * \param buf memory buffer for the result. If NULL the function returns 14713 * required buffer size. 14714 * \param len length of the memory buffer 14715 * \param ctx BN_CTX object (optional) 14716 * \return the length of the encoded octet string or 0 if an error occurred 14717 */ 14718 size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, 14719 point_conversion_form_t form, 14720 unsigned char *buf, size_t len, BN_CTX *ctx); 14721 14722 /** Decodes a EC_POINT from a octet string 14723 * \param group underlying EC_GROUP object 14724 * \param p EC_POINT object 14725 * \param buf memory buffer with the encoded ec point 14726 * \param len length of the encoded ec point 14727 * \param ctx BN_CTX object (optional) 14728 * \return 1 on success and 0 if an error occured 14729 */ 14730 int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, 14731 const unsigned char *buf, size_t len, BN_CTX *ctx); 14732 14733 /* other interfaces to point2oct/oct2point: */ 14734 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, 14735 point_conversion_form_t form, BIGNUM *, BN_CTX *); 14736 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, 14737 EC_POINT *, BN_CTX *); 14738 char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, 14739 point_conversion_form_t form, BN_CTX *); 14740 EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, 14741 EC_POINT *, BN_CTX *); 14742 14743 /********************************************************************/ 14744 /* functions for doing EC_POINT arithmetic */ 14745 /********************************************************************/ 14746 14747 /** Computes the sum of two EC_POINT 14748 * \param group underlying EC_GROUP object 14749 * \param r EC_POINT object for the result (r = a + b) 14750 * \param a EC_POINT object with the first summand 14751 * \param b EC_POINT object with the second summand 14752 * \param ctx BN_CTX object (optional) 14753 * \return 1 on success and 0 if an error occured 14754 */ 14755 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 14756 const EC_POINT *b, BN_CTX *ctx); 14757 14758 /** Computes the double of a EC_POINT 14759 * \param group underlying EC_GROUP object 14760 * \param r EC_POINT object for the result (r = 2 * a) 14761 * \param a EC_POINT object 14762 * \param ctx BN_CTX object (optional) 14763 * \return 1 on success and 0 if an error occured 14764 */ 14765 int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 14766 BN_CTX *ctx); 14767 14768 /** Computes the inverse of a EC_POINT 14769 * \param group underlying EC_GROUP object 14770 * \param a EC_POINT object to be inverted (it's used for the result as well) 14771 * \param ctx BN_CTX object (optional) 14772 * \return 1 on success and 0 if an error occured 14773 */ 14774 int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); 14775 14776 /** Checks whether the point is the neutral element of the group 14777 * \param group the underlying EC_GROUP object 14778 * \param p EC_POINT object 14779 * \return 1 if the point is the neutral element and 0 otherwise 14780 */ 14781 int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); 14782 14783 /** Checks whether the point is on the curve 14784 * \param group underlying EC_GROUP object 14785 * \param point EC_POINT object to check 14786 * \param ctx BN_CTX object (optional) 14787 * \return 1 if point if on the curve and 0 otherwise 14788 */ 14789 int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, 14790 BN_CTX *ctx); 14791 14792 /** Compares two EC_POINTs 14793 * \param group underlying EC_GROUP object 14794 * \param a first EC_POINT object 14795 * \param b second EC_POINT object 14796 * \param ctx BN_CTX object (optional) 14797 * \return 0 if both points are equal and a value != 0 otherwise 14798 */ 14799 int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, 14800 BN_CTX *ctx); 14801 14802 int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); 14803 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, 14804 EC_POINT *points[], BN_CTX *ctx); 14805 14806 /** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i] 14807 * \param group underlying EC_GROUP object 14808 * \param r EC_POINT object for the result 14809 * \param n BIGNUM with the multiplier for the group generator (optional) 14810 * \param num number futher summands 14811 * \param p array of size num of EC_POINT objects 14812 * \param m array of size num of BIGNUM objects 14813 * \param ctx BN_CTX object (optional) 14814 * \return 1 on success and 0 if an error occured 14815 */ 14816 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, 14817 size_t num, const EC_POINT *p[], const BIGNUM *m[], 14818 BN_CTX *ctx); 14819 14820 /** Computes r = generator * n + q * m 14821 * \param group underlying EC_GROUP object 14822 * \param r EC_POINT object for the result 14823 * \param n BIGNUM with the multiplier for the group generator (optional) 14824 * \param q EC_POINT object with the first factor of the second summand 14825 * \param m BIGNUM with the second factor of the second summand 14826 * \param ctx BN_CTX object (optional) 14827 * \return 1 on success and 0 if an error occured 14828 */ 14829 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, 14830 const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); 14831 14832 /** Stores multiples of generator for faster point multiplication 14833 * \param group EC_GROUP object 14834 * \param ctx BN_CTX object (optional) 14835 * \return 1 on success and 0 if an error occured 14836 */ 14837 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); 14838 14839 /** Reports whether a precomputation has been done 14840 * \param group EC_GROUP object 14841 * \return 1 if a pre-computation has been done and 0 otherwise 14842 */ 14843 int EC_GROUP_have_precompute_mult(const EC_GROUP *group); 14844 14845 /********************************************************************/ 14846 /* ASN1 stuff */ 14847 /********************************************************************/ 14848 14849 /* 14850 * EC_GROUP_get_basis_type() returns the NID of the basis type used to 14851 * represent the field elements 14852 */ 14853 int EC_GROUP_get_basis_type(const EC_GROUP *); 14854 14855 int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); 14856 int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, 14857 unsigned int *k2, unsigned int *k3); 14858 14859 14860 14861 14862 typedef struct ecpk_parameters_st ECPKPARAMETERS; 14863 14864 EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); 14865 int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); 14866 # 731 "/usr/include/openssl/ec.h" 3 4 14867 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); 14868 14869 14870 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); 14871 14872 14873 /********************************************************************/ 14874 /* EC_KEY functions */ 14875 /********************************************************************/ 14876 14877 typedef struct ec_key_st EC_KEY; 14878 14879 /* some values for the encoding_flag */ 14880 14881 14882 14883 /* some values for the flags field */ 14884 14885 14886 14887 /** Creates a new EC_KEY object. 14888 * \return EC_KEY object or NULL if an error occurred. 14889 */ 14890 EC_KEY *EC_KEY_new(void); 14891 14892 int EC_KEY_get_flags(const EC_KEY *key); 14893 14894 void EC_KEY_set_flags(EC_KEY *key, int flags); 14895 14896 void EC_KEY_clear_flags(EC_KEY *key, int flags); 14897 14898 /** Creates a new EC_KEY object using a named curve as underlying 14899 * EC_GROUP object. 14900 * \param nid NID of the named curve. 14901 * \return EC_KEY object or NULL if an error occurred. 14902 */ 14903 EC_KEY *EC_KEY_new_by_curve_name(int nid); 14904 14905 /** Frees a EC_KEY object. 14906 * \param key EC_KEY object to be freed. 14907 */ 14908 void EC_KEY_free(EC_KEY *key); 14909 14910 /** Copies a EC_KEY object. 14911 * \param dst destination EC_KEY object 14912 * \param src src EC_KEY object 14913 * \return dst or NULL if an error occurred. 14914 */ 14915 EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); 14916 14917 /** Creates a new EC_KEY object and copies the content from src to it. 14918 * \param src the source EC_KEY object 14919 * \return newly created EC_KEY object or NULL if an error occurred. 14920 */ 14921 EC_KEY *EC_KEY_dup(const EC_KEY *src); 14922 14923 /** Increases the internal reference count of a EC_KEY object. 14924 * \param key EC_KEY object 14925 * \return 1 on success and 0 if an error occurred. 14926 */ 14927 int EC_KEY_up_ref(EC_KEY *key); 14928 14929 /** Returns the EC_GROUP object of a EC_KEY object 14930 * \param key EC_KEY object 14931 * \return the EC_GROUP object (possibly NULL). 14932 */ 14933 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); 14934 14935 /** Sets the EC_GROUP of a EC_KEY object. 14936 * \param key EC_KEY object 14937 * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY 14938 * object will use an own copy of the EC_GROUP). 14939 * \return 1 on success and 0 if an error occurred. 14940 */ 14941 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); 14942 14943 /** Returns the private key of a EC_KEY object. 14944 * \param key EC_KEY object 14945 * \return a BIGNUM with the private key (possibly NULL). 14946 */ 14947 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); 14948 14949 /** Sets the private key of a EC_KEY object. 14950 * \param key EC_KEY object 14951 * \param prv BIGNUM with the private key (note: the EC_KEY object 14952 * will use an own copy of the BIGNUM). 14953 * \return 1 on success and 0 if an error occurred. 14954 */ 14955 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); 14956 14957 /** Returns the public key of a EC_KEY object. 14958 * \param key the EC_KEY object 14959 * \return a EC_POINT object with the public key (possibly NULL) 14960 */ 14961 const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); 14962 14963 /** Sets the public key of a EC_KEY object. 14964 * \param key EC_KEY object 14965 * \param pub EC_POINT object with the public key (note: the EC_KEY object 14966 * will use an own copy of the EC_POINT object). 14967 * \return 1 on success and 0 if an error occurred. 14968 */ 14969 int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); 14970 14971 unsigned EC_KEY_get_enc_flags(const EC_KEY *key); 14972 void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); 14973 point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); 14974 void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); 14975 /* functions to set/get method specific data */ 14976 void *EC_KEY_get_key_method_data(EC_KEY *key, 14977 void *(*dup_func) (void *), 14978 void (*free_func) (void *), 14979 void (*clear_free_func) (void *)); 14980 /** Sets the key method data of an EC_KEY object, if none has yet been set. 14981 * \param key EC_KEY object 14982 * \param data opaque data to install. 14983 * \param dup_func a function that duplicates |data|. 14984 * \param free_func a function that frees |data|. 14985 * \param clear_free_func a function that wipes and frees |data|. 14986 * \return the previously set data pointer, or NULL if |data| was inserted. 14987 */ 14988 void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, 14989 void *(*dup_func) (void *), 14990 void (*free_func) (void *), 14991 void (*clear_free_func) (void *)); 14992 /* wrapper functions for the underlying EC_GROUP object */ 14993 void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); 14994 14995 /** Creates a table of pre-computed multiples of the generator to 14996 * accelerate further EC_KEY operations. 14997 * \param key EC_KEY object 14998 * \param ctx BN_CTX object (optional) 14999 * \return 1 on success and 0 if an error occurred. 15000 */ 15001 int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); 15002 15003 /** Creates a new ec private (and optional a new public) key. 15004 * \param key EC_KEY object 15005 * \return 1 on success and 0 if an error occurred. 15006 */ 15007 int EC_KEY_generate_key(EC_KEY *key); 15008 15009 /** Verifies that a private and/or public key is valid. 15010 * \param key the EC_KEY object 15011 * \return 1 on success and 0 otherwise. 15012 */ 15013 int EC_KEY_check_key(const EC_KEY *key); 15014 15015 /** Sets a public key from affine coordindates performing 15016 * neccessary NIST PKV tests. 15017 * \param key the EC_KEY object 15018 * \param x public key x coordinate 15019 * \param y public key y coordinate 15020 * \return 1 on success and 0 otherwise. 15021 */ 15022 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, 15023 BIGNUM *y); 15024 15025 /********************************************************************/ 15026 /* de- and encoding functions for SEC1 ECPrivateKey */ 15027 /********************************************************************/ 15028 15029 /** Decodes a private key from a memory buffer. 15030 * \param key a pointer to a EC_KEY object which should be used (or NULL) 15031 * \param in pointer to memory with the DER encoded private key 15032 * \param len length of the DER encoded private key 15033 * \return the decoded private key or NULL if an error occurred. 15034 */ 15035 EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); 15036 15037 /** Encodes a private key object and stores the result in a buffer. 15038 * \param key the EC_KEY object to encode 15039 * \param out the buffer for the result (if NULL the function returns number 15040 * of bytes needed). 15041 * \return 1 on success and 0 if an error occurred. 15042 */ 15043 int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); 15044 15045 /********************************************************************/ 15046 /* de- and encoding functions for EC parameters */ 15047 /********************************************************************/ 15048 15049 /** Decodes ec parameter from a memory buffer. 15050 * \param key a pointer to a EC_KEY object which should be used (or NULL) 15051 * \param in pointer to memory with the DER encoded ec parameters 15052 * \param len length of the DER encoded ec parameters 15053 * \return a EC_KEY object with the decoded parameters or NULL if an error 15054 * occurred. 15055 */ 15056 EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); 15057 15058 /** Encodes ec parameter and stores the result in a buffer. 15059 * \param key the EC_KEY object with ec paramters to encode 15060 * \param out the buffer for the result (if NULL the function returns number 15061 * of bytes needed). 15062 * \return 1 on success and 0 if an error occurred. 15063 */ 15064 int i2d_ECParameters(EC_KEY *key, unsigned char **out); 15065 15066 /********************************************************************/ 15067 /* de- and encoding functions for EC public key */ 15068 /* (octet string, not DER -- hence 'o2i' and 'i2o') */ 15069 /********************************************************************/ 15070 15071 /** Decodes a ec public key from a octet string. 15072 * \param key a pointer to a EC_KEY object which should be used 15073 * \param in memory buffer with the encoded public key 15074 * \param len length of the encoded public key 15075 * \return EC_KEY object with decoded public key or NULL if an error 15076 * occurred. 15077 */ 15078 EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); 15079 15080 /** Encodes a ec public key in an octet string. 15081 * \param key the EC_KEY object with the public key 15082 * \param out the buffer for the result (if NULL the function returns number 15083 * of bytes needed). 15084 * \return 1 on success and 0 if an error occurred 15085 */ 15086 int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); 15087 15088 15089 /** Prints out the ec parameters on human readable form. 15090 * \param bp BIO object to which the information is printed 15091 * \param key EC_KEY object 15092 * \return 1 on success and 0 if an error occurred 15093 */ 15094 int ECParameters_print(BIO *bp, const EC_KEY *key); 15095 15096 /** Prints out the contents of a EC_KEY object 15097 * \param bp BIO object to which the information is printed 15098 * \param key EC_KEY object 15099 * \param off line offset 15100 * \return 1 on success and 0 if an error occurred 15101 */ 15102 int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); 15103 15104 15105 15106 /** Prints out the ec parameters on human readable form. 15107 * \param fp file descriptor to which the information is printed 15108 * \param key EC_KEY object 15109 * \return 1 on success and 0 if an error occurred 15110 */ 15111 int ECParameters_print_fp(FILE *fp, const EC_KEY *key); 15112 15113 /** Prints out the contents of a EC_KEY object 15114 * \param fp file descriptor to which the information is printed 15115 * \param key EC_KEY object 15116 * \param off line offset 15117 * \return 1 on success and 0 if an error occurred 15118 */ 15119 int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); 15120 # 1067 "/usr/include/openssl/ec.h" 3 4 15121 /* KDF types */ 15122 15123 15124 15125 /* BEGIN ERROR CODES */ 15126 /* 15127 * The following lines are auto generated by the script mkerr.pl. Any changes 15128 * made after this point may be overwritten when the script is next run. 15129 */ 15130 15131 void ERR_load_EC_strings(void); 15132 15133 /* Error codes for the EC functions. */ 15134 15135 /* Function codes. */ 15136 # 1227 "/usr/include/openssl/ec.h" 3 4 15137 /* Reason codes. */ 15138 # 84 "/usr/include/openssl/x509.h" 2 3 4 15139 15140 15141 15142 # 1 "/usr/include/openssl/ecdsa.h" 1 3 4 15143 /* crypto/ecdsa/ecdsa.h */ 15144 /** 15145 * \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions 15146 * \author Written by Nils Larsch for the OpenSSL project 15147 */ 15148 /* ==================================================================== 15149 * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. 15150 * 15151 * Redistribution and use in source and binary forms, with or without 15152 * modification, are permitted provided that the following conditions 15153 * are met: 15154 * 15155 * 1. Redistributions of source code must retain the above copyright 15156 * notice, this list of conditions and the following disclaimer. 15157 * 15158 * 2. Redistributions in binary form must reproduce the above copyright 15159 * notice, this list of conditions and the following disclaimer in 15160 * the documentation and/or other materials provided with the 15161 * distribution. 15162 * 15163 * 3. All advertising materials mentioning features or use of this 15164 * software must display the following acknowledgment: 15165 * "This product includes software developed by the OpenSSL Project 15166 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 15167 * 15168 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15169 * endorse or promote products derived from this software without 15170 * prior written permission. For written permission, please contact 15171 * licensing@OpenSSL.org. 15172 * 15173 * 5. Products derived from this software may not be called "OpenSSL" 15174 * nor may "OpenSSL" appear in their names without prior written 15175 * permission of the OpenSSL Project. 15176 * 15177 * 6. Redistributions of any form whatsoever must retain the following 15178 * acknowledgment: 15179 * "This product includes software developed by the OpenSSL Project 15180 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 15181 * 15182 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15183 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15184 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15185 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15186 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15187 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15188 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15189 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15190 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15191 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15192 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15193 * OF THE POSSIBILITY OF SUCH DAMAGE. 15194 * ==================================================================== 15195 * 15196 * This product includes cryptographic software written by Eric Young 15197 * (eay@cryptsoft.com). This product includes software written by Tim 15198 * Hudson (tjh@cryptsoft.com). 15199 * 15200 */ 15201 15202 15203 15204 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 15205 /* opensslconf.h */ 15206 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 15207 15208 15209 15210 15211 /* OpenSSL was configured with the following options: */ 15212 # 108 "/usr/include/openssl/opensslconf.h" 3 4 15213 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 15214 asks for it. This is a transient feature that is provided for those 15215 who haven't had the time to do the appropriate changes in their 15216 applications. */ 15217 # 204 "/usr/include/openssl/opensslconf.h" 3 4 15218 /* crypto/opensslconf.h.in */ 15219 15220 /* Generate 80386 code? */ 15221 # 63 "/usr/include/openssl/ecdsa.h" 2 3 4 15222 15223 15224 15225 15226 15227 # 1 "/usr/include/openssl/ec.h" 1 3 4 15228 /* crypto/ec/ec.h */ 15229 /* 15230 * Originally written by Bodo Moeller for the OpenSSL project. 15231 */ 15232 /** 15233 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 15234 * \author Originally written by Bodo Moeller for the OpenSSL project 15235 */ 15236 /* ==================================================================== 15237 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 15238 * 15239 * Redistribution and use in source and binary forms, with or without 15240 * modification, are permitted provided that the following conditions 15241 * are met: 15242 * 15243 * 1. Redistributions of source code must retain the above copyright 15244 * notice, this list of conditions and the following disclaimer. 15245 * 15246 * 2. Redistributions in binary form must reproduce the above copyright 15247 * notice, this list of conditions and the following disclaimer in 15248 * the documentation and/or other materials provided with the 15249 * distribution. 15250 * 15251 * 3. All advertising materials mentioning features or use of this 15252 * software must display the following acknowledgment: 15253 * "This product includes software developed by the OpenSSL Project 15254 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15255 * 15256 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15257 * endorse or promote products derived from this software without 15258 * prior written permission. For written permission, please contact 15259 * openssl-core@openssl.org. 15260 * 15261 * 5. Products derived from this software may not be called "OpenSSL" 15262 * nor may "OpenSSL" appear in their names without prior written 15263 * permission of the OpenSSL Project. 15264 * 15265 * 6. Redistributions of any form whatsoever must retain the following 15266 * acknowledgment: 15267 * "This product includes software developed by the OpenSSL Project 15268 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15269 * 15270 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15271 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15272 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15273 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15274 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15275 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15276 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15277 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15278 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15279 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15280 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15281 * OF THE POSSIBILITY OF SUCH DAMAGE. 15282 * ==================================================================== 15283 * 15284 * This product includes cryptographic software written by Eric Young 15285 * (eay@cryptsoft.com). This product includes software written by Tim 15286 * Hudson (tjh@cryptsoft.com). 15287 * 15288 */ 15289 /* ==================================================================== 15290 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15291 * 15292 * Portions of the attached software ("Contribution") are developed by 15293 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 15294 * 15295 * The Contribution is licensed pursuant to the OpenSSL open source 15296 * license provided above. 15297 * 15298 * The elliptic curve binary polynomial software is originally written by 15299 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 15300 * 15301 */ 15302 # 69 "/usr/include/openssl/ecdsa.h" 2 3 4 15303 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 15304 /* ==================================================================== 15305 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 15306 * 15307 * Redistribution and use in source and binary forms, with or without 15308 * modification, are permitted provided that the following conditions 15309 * are met: 15310 * 15311 * 1. Redistributions of source code must retain the above copyright 15312 * notice, this list of conditions and the following disclaimer. 15313 * 15314 * 2. Redistributions in binary form must reproduce the above copyright 15315 * notice, this list of conditions and the following disclaimer in 15316 * the documentation and/or other materials provided with the 15317 * distribution. 15318 * 15319 * 3. All advertising materials mentioning features or use of this 15320 * software must display the following acknowledgment: 15321 * "This product includes software developed by the OpenSSL Project 15322 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15323 * 15324 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15325 * endorse or promote products derived from this software without 15326 * prior written permission. For written permission, please contact 15327 * openssl-core@openssl.org. 15328 * 15329 * 5. Products derived from this software may not be called "OpenSSL" 15330 * nor may "OpenSSL" appear in their names without prior written 15331 * permission of the OpenSSL Project. 15332 * 15333 * 6. Redistributions of any form whatsoever must retain the following 15334 * acknowledgment: 15335 * "This product includes software developed by the OpenSSL Project 15336 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15337 * 15338 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15339 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15340 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15341 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15342 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15343 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15344 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15345 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15346 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15347 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15348 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15349 * OF THE POSSIBILITY OF SUCH DAMAGE. 15350 * ==================================================================== 15351 * 15352 * This product includes cryptographic software written by Eric Young 15353 * (eay@cryptsoft.com). This product includes software written by Tim 15354 * Hudson (tjh@cryptsoft.com). 15355 * 15356 */ 15357 # 70 "/usr/include/openssl/ecdsa.h" 2 3 4 15358 15359 # 1 "/usr/include/openssl/bn.h" 1 3 4 15360 /* crypto/bn/bn.h */ 15361 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 15362 * All rights reserved. 15363 * 15364 * This package is an SSL implementation written 15365 * by Eric Young (eay@cryptsoft.com). 15366 * The implementation was written so as to conform with Netscapes SSL. 15367 * 15368 * This library is free for commercial and non-commercial use as long as 15369 * the following conditions are aheared to. The following conditions 15370 * apply to all code found in this distribution, be it the RC4, RSA, 15371 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15372 * included with this distribution is covered by the same copyright terms 15373 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15374 * 15375 * Copyright remains Eric Young's, and as such any Copyright notices in 15376 * the code are not to be removed. 15377 * If this package is used in a product, Eric Young should be given attribution 15378 * as the author of the parts of the library used. 15379 * This can be in the form of a textual message at program startup or 15380 * in documentation (online or textual) provided with the package. 15381 * 15382 * Redistribution and use in source and binary forms, with or without 15383 * modification, are permitted provided that the following conditions 15384 * are met: 15385 * 1. Redistributions of source code must retain the copyright 15386 * notice, this list of conditions and the following disclaimer. 15387 * 2. Redistributions in binary form must reproduce the above copyright 15388 * notice, this list of conditions and the following disclaimer in the 15389 * documentation and/or other materials provided with the distribution. 15390 * 3. All advertising materials mentioning features or use of this software 15391 * must display the following acknowledgement: 15392 * "This product includes cryptographic software written by 15393 * Eric Young (eay@cryptsoft.com)" 15394 * The word 'cryptographic' can be left out if the rouines from the library 15395 * being used are not cryptographic related :-). 15396 * 4. If you include any Windows specific code (or a derivative thereof) from 15397 * the apps directory (application code) you must include an acknowledgement: 15398 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 15399 * 15400 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 15401 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15402 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15403 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15404 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 15405 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 15406 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15407 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 15408 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 15409 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 15410 * SUCH DAMAGE. 15411 * 15412 * The licence and distribution terms for any publically available version or 15413 * derivative of this code cannot be changed. i.e. this code cannot simply be 15414 * copied and put under another distribution licence 15415 * [including the GNU Public Licence.] 15416 */ 15417 /* ==================================================================== 15418 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 15419 * 15420 * Redistribution and use in source and binary forms, with or without 15421 * modification, are permitted provided that the following conditions 15422 * are met: 15423 * 15424 * 1. Redistributions of source code must retain the above copyright 15425 * notice, this list of conditions and the following disclaimer. 15426 * 15427 * 2. Redistributions in binary form must reproduce the above copyright 15428 * notice, this list of conditions and the following disclaimer in 15429 * the documentation and/or other materials provided with the 15430 * distribution. 15431 * 15432 * 3. All advertising materials mentioning features or use of this 15433 * software must display the following acknowledgment: 15434 * "This product includes software developed by the OpenSSL Project 15435 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15436 * 15437 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15438 * endorse or promote products derived from this software without 15439 * prior written permission. For written permission, please contact 15440 * openssl-core@openssl.org. 15441 * 15442 * 5. Products derived from this software may not be called "OpenSSL" 15443 * nor may "OpenSSL" appear in their names without prior written 15444 * permission of the OpenSSL Project. 15445 * 15446 * 6. Redistributions of any form whatsoever must retain the following 15447 * acknowledgment: 15448 * "This product includes software developed by the OpenSSL Project 15449 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15450 * 15451 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15452 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15453 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15454 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15455 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15456 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15457 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15458 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15459 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15460 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15461 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15462 * OF THE POSSIBILITY OF SUCH DAMAGE. 15463 * ==================================================================== 15464 * 15465 * This product includes cryptographic software written by Eric Young 15466 * (eay@cryptsoft.com). This product includes software written by Tim 15467 * Hudson (tjh@cryptsoft.com). 15468 * 15469 */ 15470 /* ==================================================================== 15471 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15472 * 15473 * Portions of the attached software ("Contribution") are developed by 15474 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 15475 * 15476 * The Contribution is licensed pursuant to the Eric Young open source 15477 * license provided above. 15478 * 15479 * The binary polynomial arithmetic software is originally written by 15480 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 15481 * 15482 */ 15483 # 72 "/usr/include/openssl/ecdsa.h" 2 3 4 15484 15485 15486 15487 15488 15489 15490 typedef struct ECDSA_SIG_st { 15491 BIGNUM *r; 15492 BIGNUM *s; 15493 } ECDSA_SIG; 15494 15495 /** Allocates and initialize a ECDSA_SIG structure 15496 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 15497 */ 15498 ECDSA_SIG *ECDSA_SIG_new(void); 15499 15500 /** frees a ECDSA_SIG structure 15501 * \param sig pointer to the ECDSA_SIG structure 15502 */ 15503 void ECDSA_SIG_free(ECDSA_SIG *sig); 15504 15505 /** DER encode content of ECDSA_SIG object (note: this function modifies *pp 15506 * (*pp += length of the DER encoded signature)). 15507 * \param sig pointer to the ECDSA_SIG object 15508 * \param pp pointer to a unsigned char pointer for the output or NULL 15509 * \return the length of the DER encoded ECDSA_SIG object or 0 15510 */ 15511 int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); 15512 15513 /** Decodes a DER encoded ECDSA signature (note: this function changes *pp 15514 * (*pp += len)). 15515 * \param sig pointer to ECDSA_SIG pointer (may be NULL) 15516 * \param pp memory buffer with the DER encoded signature 15517 * \param len length of the buffer 15518 * \return pointer to the decoded ECDSA_SIG structure (or NULL) 15519 */ 15520 ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); 15521 15522 /** Computes the ECDSA signature of the given hash value using 15523 * the supplied private key and returns the created signature. 15524 * \param dgst pointer to the hash value 15525 * \param dgst_len length of the hash value 15526 * \param eckey EC_KEY object containing a private EC key 15527 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 15528 */ 15529 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, 15530 EC_KEY *eckey); 15531 15532 /** Computes ECDSA signature of a given hash value using the supplied 15533 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 15534 * \param dgst pointer to the hash value to sign 15535 * \param dgstlen length of the hash value 15536 * \param kinv BIGNUM with a pre-computed inverse k (optional) 15537 * \param rp BIGNUM with a pre-computed rp value (optioanl), 15538 * see ECDSA_sign_setup 15539 * \param eckey EC_KEY object containing a private EC key 15540 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 15541 */ 15542 ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, 15543 const BIGNUM *kinv, const BIGNUM *rp, 15544 EC_KEY *eckey); 15545 15546 /** Verifies that the supplied signature is a valid ECDSA 15547 * signature of the supplied hash value using the supplied public key. 15548 * \param dgst pointer to the hash value 15549 * \param dgst_len length of the hash value 15550 * \param sig ECDSA_SIG structure 15551 * \param eckey EC_KEY object containing a public EC key 15552 * \return 1 if the signature is valid, 0 if the signature is invalid 15553 * and -1 on error 15554 */ 15555 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, 15556 const ECDSA_SIG *sig, EC_KEY *eckey); 15557 15558 const ECDSA_METHOD *ECDSA_OpenSSL(void); 15559 15560 /** Sets the default ECDSA method 15561 * \param meth new default ECDSA_METHOD 15562 */ 15563 void ECDSA_set_default_method(const ECDSA_METHOD *meth); 15564 15565 /** Returns the default ECDSA method 15566 * \return pointer to ECDSA_METHOD structure containing the default method 15567 */ 15568 const ECDSA_METHOD *ECDSA_get_default_method(void); 15569 15570 /** Sets method to be used for the ECDSA operations 15571 * \param eckey EC_KEY object 15572 * \param meth new method 15573 * \return 1 on success and 0 otherwise 15574 */ 15575 int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth); 15576 15577 /** Returns the maximum length of the DER encoded signature 15578 * \param eckey EC_KEY object 15579 * \return numbers of bytes required for the DER encoded signature 15580 */ 15581 int ECDSA_size(const EC_KEY *eckey); 15582 15583 /** Precompute parts of the signing operation 15584 * \param eckey EC_KEY object containing a private EC key 15585 * \param ctx BN_CTX object (optional) 15586 * \param kinv BIGNUM pointer for the inverse of k 15587 * \param rp BIGNUM pointer for x coordinate of k * generator 15588 * \return 1 on success and 0 otherwise 15589 */ 15590 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); 15591 15592 /** Computes ECDSA signature of a given hash value using the supplied 15593 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 15594 * \param type this parameter is ignored 15595 * \param dgst pointer to the hash value to sign 15596 * \param dgstlen length of the hash value 15597 * \param sig memory for the DER encoded created signature 15598 * \param siglen pointer to the length of the returned signature 15599 * \param eckey EC_KEY object containing a private EC key 15600 * \return 1 on success and 0 otherwise 15601 */ 15602 int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, 15603 unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); 15604 15605 /** Computes ECDSA signature of a given hash value using the supplied 15606 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 15607 * \param type this parameter is ignored 15608 * \param dgst pointer to the hash value to sign 15609 * \param dgstlen length of the hash value 15610 * \param sig buffer to hold the DER encoded signature 15611 * \param siglen pointer to the length of the returned signature 15612 * \param kinv BIGNUM with a pre-computed inverse k (optional) 15613 * \param rp BIGNUM with a pre-computed rp value (optioanl), 15614 * see ECDSA_sign_setup 15615 * \param eckey EC_KEY object containing a private EC key 15616 * \return 1 on success and 0 otherwise 15617 */ 15618 int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, 15619 unsigned char *sig, unsigned int *siglen, 15620 const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); 15621 15622 /** Verifies that the given signature is valid ECDSA signature 15623 * of the supplied hash value using the specified public key. 15624 * \param type this parameter is ignored 15625 * \param dgst pointer to the hash value 15626 * \param dgstlen length of the hash value 15627 * \param sig pointer to the DER encoded signature 15628 * \param siglen length of the DER encoded signature 15629 * \param eckey EC_KEY object containing a public EC key 15630 * \return 1 if the signature is valid, 0 if the signature is invalid 15631 * and -1 on error 15632 */ 15633 int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, 15634 const unsigned char *sig, int siglen, EC_KEY *eckey); 15635 15636 /* the standard ex_data functions */ 15637 int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new 15638 *new_func, CRYPTO_EX_dup *dup_func, 15639 CRYPTO_EX_free *free_func); 15640 int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); 15641 void *ECDSA_get_ex_data(EC_KEY *d, int idx); 15642 15643 /** Allocates and initialize a ECDSA_METHOD structure 15644 * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) 15645 * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred 15646 */ 15647 15648 ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); 15649 15650 /** frees a ECDSA_METHOD structure 15651 * \param ecdsa_method pointer to the ECDSA_METHOD structure 15652 */ 15653 void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); 15654 15655 /** Sets application specific data in the ECDSA_METHOD 15656 * \param ecdsa_method pointer to existing ECDSA_METHOD 15657 * \param app application specific data to set 15658 */ 15659 15660 void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); 15661 15662 /** Returns application specific data from a ECDSA_METHOD structure 15663 * \param ecdsa_method pointer to ECDSA_METHOD structure 15664 * \return pointer to application specific data. 15665 */ 15666 15667 void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); 15668 15669 /** Set the ECDSA_do_sign function in the ECDSA_METHOD 15670 * \param ecdsa_method pointer to existing ECDSA_METHOD 15671 * \param ecdsa_do_sign a funtion of type ECDSA_do_sign 15672 */ 15673 15674 void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, 15675 ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char 15676 *dgst, int dgst_len, 15677 const BIGNUM *inv, 15678 const BIGNUM *rp, 15679 EC_KEY *eckey)); 15680 15681 /** Set the ECDSA_sign_setup function in the ECDSA_METHOD 15682 * \param ecdsa_method pointer to existing ECDSA_METHOD 15683 * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup 15684 */ 15685 15686 void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, 15687 int (*ecdsa_sign_setup) (EC_KEY *eckey, 15688 BN_CTX *ctx, 15689 BIGNUM **kinv, 15690 BIGNUM **r)); 15691 15692 /** Set the ECDSA_do_verify function in the ECDSA_METHOD 15693 * \param ecdsa_method pointer to existing ECDSA_METHOD 15694 * \param ecdsa_do_verify a funtion of type ECDSA_do_verify 15695 */ 15696 15697 void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, 15698 int (*ecdsa_do_verify) (const unsigned char 15699 *dgst, int dgst_len, 15700 const ECDSA_SIG *sig, 15701 EC_KEY *eckey)); 15702 15703 void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); 15704 15705 /** Set the flags field in the ECDSA_METHOD 15706 * \param ecdsa_method pointer to existing ECDSA_METHOD 15707 * \param flags flags value to set 15708 */ 15709 15710 void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); 15711 15712 /** Set the name field in the ECDSA_METHOD 15713 * \param ecdsa_method pointer to existing ECDSA_METHOD 15714 * \param name name to set 15715 */ 15716 15717 /* BEGIN ERROR CODES */ 15718 /* 15719 * The following lines are auto generated by the script mkerr.pl. Any changes 15720 * made after this point may be overwritten when the script is next run. 15721 */ 15722 void ERR_load_ECDSA_strings(void); 15723 15724 /* Error codes for the ECDSA functions. */ 15725 15726 /* Function codes. */ 15727 15728 15729 15730 15731 15732 15733 15734 /* Reason codes. */ 15735 # 88 "/usr/include/openssl/x509.h" 2 3 4 15736 15737 15738 15739 # 1 "/usr/include/openssl/ecdh.h" 1 3 4 15740 /* crypto/ecdh/ecdh.h */ 15741 /* ==================================================================== 15742 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15743 * 15744 * The Elliptic Curve Public-Key Crypto Library (ECC Code) included 15745 * herein is developed by SUN MICROSYSTEMS, INC., and is contributed 15746 * to the OpenSSL project. 15747 * 15748 * The ECC Code is licensed pursuant to the OpenSSL open source 15749 * license provided below. 15750 * 15751 * The ECDH software is originally written by Douglas Stebila of 15752 * Sun Microsystems Laboratories. 15753 * 15754 */ 15755 /* ==================================================================== 15756 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. 15757 * 15758 * Redistribution and use in source and binary forms, with or without 15759 * modification, are permitted provided that the following conditions 15760 * are met: 15761 * 15762 * 1. Redistributions of source code must retain the above copyright 15763 * notice, this list of conditions and the following disclaimer. 15764 * 15765 * 2. Redistributions in binary form must reproduce the above copyright 15766 * notice, this list of conditions and the following disclaimer in 15767 * the documentation and/or other materials provided with the 15768 * distribution. 15769 * 15770 * 3. All advertising materials mentioning features or use of this 15771 * software must display the following acknowledgment: 15772 * "This product includes software developed by the OpenSSL Project 15773 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 15774 * 15775 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15776 * endorse or promote products derived from this software without 15777 * prior written permission. For written permission, please contact 15778 * licensing@OpenSSL.org. 15779 * 15780 * 5. Products derived from this software may not be called "OpenSSL" 15781 * nor may "OpenSSL" appear in their names without prior written 15782 * permission of the OpenSSL Project. 15783 * 15784 * 6. Redistributions of any form whatsoever must retain the following 15785 * acknowledgment: 15786 * "This product includes software developed by the OpenSSL Project 15787 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 15788 * 15789 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15790 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15791 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15792 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15793 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15794 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15795 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15796 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15797 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15798 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15799 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15800 * OF THE POSSIBILITY OF SUCH DAMAGE. 15801 * ==================================================================== 15802 * 15803 * This product includes cryptographic software written by Eric Young 15804 * (eay@cryptsoft.com). This product includes software written by Tim 15805 * Hudson (tjh@cryptsoft.com). 15806 * 15807 */ 15808 15809 15810 15811 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 15812 /* opensslconf.h */ 15813 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 15814 15815 15816 15817 15818 /* OpenSSL was configured with the following options: */ 15819 # 108 "/usr/include/openssl/opensslconf.h" 3 4 15820 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 15821 asks for it. This is a transient feature that is provided for those 15822 who haven't had the time to do the appropriate changes in their 15823 applications. */ 15824 # 204 "/usr/include/openssl/opensslconf.h" 3 4 15825 /* crypto/opensslconf.h.in */ 15826 15827 /* Generate 80386 code? */ 15828 # 73 "/usr/include/openssl/ecdh.h" 2 3 4 15829 15830 15831 15832 15833 15834 # 1 "/usr/include/openssl/ec.h" 1 3 4 15835 /* crypto/ec/ec.h */ 15836 /* 15837 * Originally written by Bodo Moeller for the OpenSSL project. 15838 */ 15839 /** 15840 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 15841 * \author Originally written by Bodo Moeller for the OpenSSL project 15842 */ 15843 /* ==================================================================== 15844 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 15845 * 15846 * Redistribution and use in source and binary forms, with or without 15847 * modification, are permitted provided that the following conditions 15848 * are met: 15849 * 15850 * 1. Redistributions of source code must retain the above copyright 15851 * notice, this list of conditions and the following disclaimer. 15852 * 15853 * 2. Redistributions in binary form must reproduce the above copyright 15854 * notice, this list of conditions and the following disclaimer in 15855 * the documentation and/or other materials provided with the 15856 * distribution. 15857 * 15858 * 3. All advertising materials mentioning features or use of this 15859 * software must display the following acknowledgment: 15860 * "This product includes software developed by the OpenSSL Project 15861 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15862 * 15863 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15864 * endorse or promote products derived from this software without 15865 * prior written permission. For written permission, please contact 15866 * openssl-core@openssl.org. 15867 * 15868 * 5. Products derived from this software may not be called "OpenSSL" 15869 * nor may "OpenSSL" appear in their names without prior written 15870 * permission of the OpenSSL Project. 15871 * 15872 * 6. Redistributions of any form whatsoever must retain the following 15873 * acknowledgment: 15874 * "This product includes software developed by the OpenSSL Project 15875 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15876 * 15877 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15878 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15879 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15880 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15881 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15882 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15883 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15884 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15885 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15886 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15887 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15888 * OF THE POSSIBILITY OF SUCH DAMAGE. 15889 * ==================================================================== 15890 * 15891 * This product includes cryptographic software written by Eric Young 15892 * (eay@cryptsoft.com). This product includes software written by Tim 15893 * Hudson (tjh@cryptsoft.com). 15894 * 15895 */ 15896 /* ==================================================================== 15897 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15898 * 15899 * Portions of the attached software ("Contribution") are developed by 15900 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 15901 * 15902 * The Contribution is licensed pursuant to the OpenSSL open source 15903 * license provided above. 15904 * 15905 * The elliptic curve binary polynomial software is originally written by 15906 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 15907 * 15908 */ 15909 # 79 "/usr/include/openssl/ecdh.h" 2 3 4 15910 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 15911 /* ==================================================================== 15912 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 15913 * 15914 * Redistribution and use in source and binary forms, with or without 15915 * modification, are permitted provided that the following conditions 15916 * are met: 15917 * 15918 * 1. Redistributions of source code must retain the above copyright 15919 * notice, this list of conditions and the following disclaimer. 15920 * 15921 * 2. Redistributions in binary form must reproduce the above copyright 15922 * notice, this list of conditions and the following disclaimer in 15923 * the documentation and/or other materials provided with the 15924 * distribution. 15925 * 15926 * 3. All advertising materials mentioning features or use of this 15927 * software must display the following acknowledgment: 15928 * "This product includes software developed by the OpenSSL Project 15929 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15930 * 15931 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15932 * endorse or promote products derived from this software without 15933 * prior written permission. For written permission, please contact 15934 * openssl-core@openssl.org. 15935 * 15936 * 5. Products derived from this software may not be called "OpenSSL" 15937 * nor may "OpenSSL" appear in their names without prior written 15938 * permission of the OpenSSL Project. 15939 * 15940 * 6. Redistributions of any form whatsoever must retain the following 15941 * acknowledgment: 15942 * "This product includes software developed by the OpenSSL Project 15943 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15944 * 15945 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15946 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15947 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15948 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15949 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15950 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15951 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15952 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15953 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15954 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15955 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15956 * OF THE POSSIBILITY OF SUCH DAMAGE. 15957 * ==================================================================== 15958 * 15959 * This product includes cryptographic software written by Eric Young 15960 * (eay@cryptsoft.com). This product includes software written by Tim 15961 * Hudson (tjh@cryptsoft.com). 15962 * 15963 */ 15964 # 80 "/usr/include/openssl/ecdh.h" 2 3 4 15965 15966 # 1 "/usr/include/openssl/bn.h" 1 3 4 15967 /* crypto/bn/bn.h */ 15968 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 15969 * All rights reserved. 15970 * 15971 * This package is an SSL implementation written 15972 * by Eric Young (eay@cryptsoft.com). 15973 * The implementation was written so as to conform with Netscapes SSL. 15974 * 15975 * This library is free for commercial and non-commercial use as long as 15976 * the following conditions are aheared to. The following conditions 15977 * apply to all code found in this distribution, be it the RC4, RSA, 15978 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15979 * included with this distribution is covered by the same copyright terms 15980 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15981 * 15982 * Copyright remains Eric Young's, and as such any Copyright notices in 15983 * the code are not to be removed. 15984 * If this package is used in a product, Eric Young should be given attribution 15985 * as the author of the parts of the library used. 15986 * This can be in the form of a textual message at program startup or 15987 * in documentation (online or textual) provided with the package. 15988 * 15989 * Redistribution and use in source and binary forms, with or without 15990 * modification, are permitted provided that the following conditions 15991 * are met: 15992 * 1. Redistributions of source code must retain the copyright 15993 * notice, this list of conditions and the following disclaimer. 15994 * 2. Redistributions in binary form must reproduce the above copyright 15995 * notice, this list of conditions and the following disclaimer in the 15996 * documentation and/or other materials provided with the distribution. 15997 * 3. All advertising materials mentioning features or use of this software 15998 * must display the following acknowledgement: 15999 * "This product includes cryptographic software written by 16000 * Eric Young (eay@cryptsoft.com)" 16001 * The word 'cryptographic' can be left out if the rouines from the library 16002 * being used are not cryptographic related :-). 16003 * 4. If you include any Windows specific code (or a derivative thereof) from 16004 * the apps directory (application code) you must include an acknowledgement: 16005 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16006 * 16007 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16008 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16009 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16010 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16011 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16012 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16013 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16014 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16015 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16016 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16017 * SUCH DAMAGE. 16018 * 16019 * The licence and distribution terms for any publically available version or 16020 * derivative of this code cannot be changed. i.e. this code cannot simply be 16021 * copied and put under another distribution licence 16022 * [including the GNU Public Licence.] 16023 */ 16024 /* ==================================================================== 16025 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 16026 * 16027 * Redistribution and use in source and binary forms, with or without 16028 * modification, are permitted provided that the following conditions 16029 * are met: 16030 * 16031 * 1. Redistributions of source code must retain the above copyright 16032 * notice, this list of conditions and the following disclaimer. 16033 * 16034 * 2. Redistributions in binary form must reproduce the above copyright 16035 * notice, this list of conditions and the following disclaimer in 16036 * the documentation and/or other materials provided with the 16037 * distribution. 16038 * 16039 * 3. All advertising materials mentioning features or use of this 16040 * software must display the following acknowledgment: 16041 * "This product includes software developed by the OpenSSL Project 16042 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16043 * 16044 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16045 * endorse or promote products derived from this software without 16046 * prior written permission. For written permission, please contact 16047 * openssl-core@openssl.org. 16048 * 16049 * 5. Products derived from this software may not be called "OpenSSL" 16050 * nor may "OpenSSL" appear in their names without prior written 16051 * permission of the OpenSSL Project. 16052 * 16053 * 6. Redistributions of any form whatsoever must retain the following 16054 * acknowledgment: 16055 * "This product includes software developed by the OpenSSL Project 16056 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16057 * 16058 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16059 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16060 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16061 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16062 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16063 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16064 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16065 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16066 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16067 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16068 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16069 * OF THE POSSIBILITY OF SUCH DAMAGE. 16070 * ==================================================================== 16071 * 16072 * This product includes cryptographic software written by Eric Young 16073 * (eay@cryptsoft.com). This product includes software written by Tim 16074 * Hudson (tjh@cryptsoft.com). 16075 * 16076 */ 16077 /* ==================================================================== 16078 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16079 * 16080 * Portions of the attached software ("Contribution") are developed by 16081 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 16082 * 16083 * The Contribution is licensed pursuant to the Eric Young open source 16084 * license provided above. 16085 * 16086 * The binary polynomial arithmetic software is originally written by 16087 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 16088 * 16089 */ 16090 # 82 "/usr/include/openssl/ecdh.h" 2 3 4 16091 # 90 "/usr/include/openssl/ecdh.h" 3 4 16092 const ECDH_METHOD *ECDH_OpenSSL(void); 16093 16094 void ECDH_set_default_method(const ECDH_METHOD *); 16095 const ECDH_METHOD *ECDH_get_default_method(void); 16096 int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); 16097 16098 int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, 16099 EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, 16100 void *out, size_t *outlen)); 16101 16102 int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new 16103 *new_func, CRYPTO_EX_dup *dup_func, 16104 CRYPTO_EX_free *free_func); 16105 int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); 16106 void *ECDH_get_ex_data(EC_KEY *d, int idx); 16107 16108 int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, 16109 const unsigned char *Z, size_t Zlen, 16110 const unsigned char *sinfo, size_t sinfolen, 16111 const EVP_MD *md); 16112 16113 /* BEGIN ERROR CODES */ 16114 /* 16115 * The following lines are auto generated by the script mkerr.pl. Any changes 16116 * made after this point may be overwritten when the script is next run. 16117 */ 16118 void ERR_load_ECDH_strings(void); 16119 16120 /* Error codes for the ECDH functions. */ 16121 16122 /* Function codes. */ 16123 16124 16125 16126 16127 /* Reason codes. */ 16128 # 92 "/usr/include/openssl/x509.h" 2 3 4 16129 16130 16131 16132 16133 # 1 "/usr/include/openssl/rsa.h" 1 3 4 16134 /* crypto/rsa/rsa.h */ 16135 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16136 * All rights reserved. 16137 * 16138 * This package is an SSL implementation written 16139 * by Eric Young (eay@cryptsoft.com). 16140 * The implementation was written so as to conform with Netscapes SSL. 16141 * 16142 * This library is free for commercial and non-commercial use as long as 16143 * the following conditions are aheared to. The following conditions 16144 * apply to all code found in this distribution, be it the RC4, RSA, 16145 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16146 * included with this distribution is covered by the same copyright terms 16147 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16148 * 16149 * Copyright remains Eric Young's, and as such any Copyright notices in 16150 * the code are not to be removed. 16151 * If this package is used in a product, Eric Young should be given attribution 16152 * as the author of the parts of the library used. 16153 * This can be in the form of a textual message at program startup or 16154 * in documentation (online or textual) provided with the package. 16155 * 16156 * Redistribution and use in source and binary forms, with or without 16157 * modification, are permitted provided that the following conditions 16158 * are met: 16159 * 1. Redistributions of source code must retain the copyright 16160 * notice, this list of conditions and the following disclaimer. 16161 * 2. Redistributions in binary form must reproduce the above copyright 16162 * notice, this list of conditions and the following disclaimer in the 16163 * documentation and/or other materials provided with the distribution. 16164 * 3. All advertising materials mentioning features or use of this software 16165 * must display the following acknowledgement: 16166 * "This product includes cryptographic software written by 16167 * Eric Young (eay@cryptsoft.com)" 16168 * The word 'cryptographic' can be left out if the rouines from the library 16169 * being used are not cryptographic related :-). 16170 * 4. If you include any Windows specific code (or a derivative thereof) from 16171 * the apps directory (application code) you must include an acknowledgement: 16172 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16173 * 16174 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16175 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16176 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16177 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16178 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16179 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16180 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16181 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16182 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16183 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16184 * SUCH DAMAGE. 16185 * 16186 * The licence and distribution terms for any publically available version or 16187 * derivative of this code cannot be changed. i.e. this code cannot simply be 16188 * copied and put under another distribution licence 16189 * [including the GNU Public Licence.] 16190 */ 16191 16192 16193 16194 16195 # 1 "/usr/include/openssl/asn1.h" 1 3 4 16196 /* crypto/asn1/asn1.h */ 16197 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16198 * All rights reserved. 16199 * 16200 * This package is an SSL implementation written 16201 * by Eric Young (eay@cryptsoft.com). 16202 * The implementation was written so as to conform with Netscapes SSL. 16203 * 16204 * This library is free for commercial and non-commercial use as long as 16205 * the following conditions are aheared to. The following conditions 16206 * apply to all code found in this distribution, be it the RC4, RSA, 16207 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16208 * included with this distribution is covered by the same copyright terms 16209 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16210 * 16211 * Copyright remains Eric Young's, and as such any Copyright notices in 16212 * the code are not to be removed. 16213 * If this package is used in a product, Eric Young should be given attribution 16214 * as the author of the parts of the library used. 16215 * This can be in the form of a textual message at program startup or 16216 * in documentation (online or textual) provided with the package. 16217 * 16218 * Redistribution and use in source and binary forms, with or without 16219 * modification, are permitted provided that the following conditions 16220 * are met: 16221 * 1. Redistributions of source code must retain the copyright 16222 * notice, this list of conditions and the following disclaimer. 16223 * 2. Redistributions in binary form must reproduce the above copyright 16224 * notice, this list of conditions and the following disclaimer in the 16225 * documentation and/or other materials provided with the distribution. 16226 * 3. All advertising materials mentioning features or use of this software 16227 * must display the following acknowledgement: 16228 * "This product includes cryptographic software written by 16229 * Eric Young (eay@cryptsoft.com)" 16230 * The word 'cryptographic' can be left out if the rouines from the library 16231 * being used are not cryptographic related :-). 16232 * 4. If you include any Windows specific code (or a derivative thereof) from 16233 * the apps directory (application code) you must include an acknowledgement: 16234 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16235 * 16236 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16237 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16238 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16239 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16240 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16241 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16242 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16243 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16244 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16245 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16246 * SUCH DAMAGE. 16247 * 16248 * The licence and distribution terms for any publically available version or 16249 * derivative of this code cannot be changed. i.e. this code cannot simply be 16250 * copied and put under another distribution licence 16251 * [including the GNU Public Licence.] 16252 */ 16253 # 63 "/usr/include/openssl/rsa.h" 2 3 4 16254 16255 16256 # 1 "/usr/include/openssl/bio.h" 1 3 4 16257 /* crypto/bio/bio.h */ 16258 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16259 * All rights reserved. 16260 * 16261 * This package is an SSL implementation written 16262 * by Eric Young (eay@cryptsoft.com). 16263 * The implementation was written so as to conform with Netscapes SSL. 16264 * 16265 * This library is free for commercial and non-commercial use as long as 16266 * the following conditions are aheared to. The following conditions 16267 * apply to all code found in this distribution, be it the RC4, RSA, 16268 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16269 * included with this distribution is covered by the same copyright terms 16270 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16271 * 16272 * Copyright remains Eric Young's, and as such any Copyright notices in 16273 * the code are not to be removed. 16274 * If this package is used in a product, Eric Young should be given attribution 16275 * as the author of the parts of the library used. 16276 * This can be in the form of a textual message at program startup or 16277 * in documentation (online or textual) provided with the package. 16278 * 16279 * Redistribution and use in source and binary forms, with or without 16280 * modification, are permitted provided that the following conditions 16281 * are met: 16282 * 1. Redistributions of source code must retain the copyright 16283 * notice, this list of conditions and the following disclaimer. 16284 * 2. Redistributions in binary form must reproduce the above copyright 16285 * notice, this list of conditions and the following disclaimer in the 16286 * documentation and/or other materials provided with the distribution. 16287 * 3. All advertising materials mentioning features or use of this software 16288 * must display the following acknowledgement: 16289 * "This product includes cryptographic software written by 16290 * Eric Young (eay@cryptsoft.com)" 16291 * The word 'cryptographic' can be left out if the rouines from the library 16292 * being used are not cryptographic related :-). 16293 * 4. If you include any Windows specific code (or a derivative thereof) from 16294 * the apps directory (application code) you must include an acknowledgement: 16295 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16296 * 16297 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16298 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16299 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16300 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16301 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16302 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16303 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16304 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16305 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16306 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16307 * SUCH DAMAGE. 16308 * 16309 * The licence and distribution terms for any publically available version or 16310 * derivative of this code cannot be changed. i.e. this code cannot simply be 16311 * copied and put under another distribution licence 16312 * [including the GNU Public Licence.] 16313 */ 16314 # 66 "/usr/include/openssl/rsa.h" 2 3 4 16315 16316 # 1 "/usr/include/openssl/crypto.h" 1 3 4 16317 /* crypto/crypto.h */ 16318 /* ==================================================================== 16319 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 16320 * 16321 * Redistribution and use in source and binary forms, with or without 16322 * modification, are permitted provided that the following conditions 16323 * are met: 16324 * 16325 * 1. Redistributions of source code must retain the above copyright 16326 * notice, this list of conditions and the following disclaimer. 16327 * 16328 * 2. Redistributions in binary form must reproduce the above copyright 16329 * notice, this list of conditions and the following disclaimer in 16330 * the documentation and/or other materials provided with the 16331 * distribution. 16332 * 16333 * 3. All advertising materials mentioning features or use of this 16334 * software must display the following acknowledgment: 16335 * "This product includes software developed by the OpenSSL Project 16336 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16337 * 16338 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16339 * endorse or promote products derived from this software without 16340 * prior written permission. For written permission, please contact 16341 * openssl-core@openssl.org. 16342 * 16343 * 5. Products derived from this software may not be called "OpenSSL" 16344 * nor may "OpenSSL" appear in their names without prior written 16345 * permission of the OpenSSL Project. 16346 * 16347 * 6. Redistributions of any form whatsoever must retain the following 16348 * acknowledgment: 16349 * "This product includes software developed by the OpenSSL Project 16350 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16351 * 16352 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16353 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16354 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16355 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16356 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16357 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16358 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16359 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16360 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16361 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16362 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16363 * OF THE POSSIBILITY OF SUCH DAMAGE. 16364 * ==================================================================== 16365 * 16366 * This product includes cryptographic software written by Eric Young 16367 * (eay@cryptsoft.com). This product includes software written by Tim 16368 * Hudson (tjh@cryptsoft.com). 16369 * 16370 */ 16371 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16372 * All rights reserved. 16373 * 16374 * This package is an SSL implementation written 16375 * by Eric Young (eay@cryptsoft.com). 16376 * The implementation was written so as to conform with Netscapes SSL. 16377 * 16378 * This library is free for commercial and non-commercial use as long as 16379 * the following conditions are aheared to. The following conditions 16380 * apply to all code found in this distribution, be it the RC4, RSA, 16381 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16382 * included with this distribution is covered by the same copyright terms 16383 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16384 * 16385 * Copyright remains Eric Young's, and as such any Copyright notices in 16386 * the code are not to be removed. 16387 * If this package is used in a product, Eric Young should be given attribution 16388 * as the author of the parts of the library used. 16389 * This can be in the form of a textual message at program startup or 16390 * in documentation (online or textual) provided with the package. 16391 * 16392 * Redistribution and use in source and binary forms, with or without 16393 * modification, are permitted provided that the following conditions 16394 * are met: 16395 * 1. Redistributions of source code must retain the copyright 16396 * notice, this list of conditions and the following disclaimer. 16397 * 2. Redistributions in binary form must reproduce the above copyright 16398 * notice, this list of conditions and the following disclaimer in the 16399 * documentation and/or other materials provided with the distribution. 16400 * 3. All advertising materials mentioning features or use of this software 16401 * must display the following acknowledgement: 16402 * "This product includes cryptographic software written by 16403 * Eric Young (eay@cryptsoft.com)" 16404 * The word 'cryptographic' can be left out if the rouines from the library 16405 * being used are not cryptographic related :-). 16406 * 4. If you include any Windows specific code (or a derivative thereof) from 16407 * the apps directory (application code) you must include an acknowledgement: 16408 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16409 * 16410 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16411 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16412 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16413 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16414 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16415 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16416 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16417 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16418 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16419 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16420 * SUCH DAMAGE. 16421 * 16422 * The licence and distribution terms for any publically available version or 16423 * derivative of this code cannot be changed. i.e. this code cannot simply be 16424 * copied and put under another distribution licence 16425 * [including the GNU Public Licence.] 16426 */ 16427 /* ==================================================================== 16428 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16429 * ECDH support in OpenSSL originally developed by 16430 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 16431 */ 16432 # 68 "/usr/include/openssl/rsa.h" 2 3 4 16433 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 16434 /* ==================================================================== 16435 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 16436 * 16437 * Redistribution and use in source and binary forms, with or without 16438 * modification, are permitted provided that the following conditions 16439 * are met: 16440 * 16441 * 1. Redistributions of source code must retain the above copyright 16442 * notice, this list of conditions and the following disclaimer. 16443 * 16444 * 2. Redistributions in binary form must reproduce the above copyright 16445 * notice, this list of conditions and the following disclaimer in 16446 * the documentation and/or other materials provided with the 16447 * distribution. 16448 * 16449 * 3. All advertising materials mentioning features or use of this 16450 * software must display the following acknowledgment: 16451 * "This product includes software developed by the OpenSSL Project 16452 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16453 * 16454 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16455 * endorse or promote products derived from this software without 16456 * prior written permission. For written permission, please contact 16457 * openssl-core@openssl.org. 16458 * 16459 * 5. Products derived from this software may not be called "OpenSSL" 16460 * nor may "OpenSSL" appear in their names without prior written 16461 * permission of the OpenSSL Project. 16462 * 16463 * 6. Redistributions of any form whatsoever must retain the following 16464 * acknowledgment: 16465 * "This product includes software developed by the OpenSSL Project 16466 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16467 * 16468 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16469 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16470 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16471 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16472 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16473 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16474 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16475 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16476 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16477 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16478 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16479 * OF THE POSSIBILITY OF SUCH DAMAGE. 16480 * ==================================================================== 16481 * 16482 * This product includes cryptographic software written by Eric Young 16483 * (eay@cryptsoft.com). This product includes software written by Tim 16484 * Hudson (tjh@cryptsoft.com). 16485 * 16486 */ 16487 # 69 "/usr/include/openssl/rsa.h" 2 3 4 16488 16489 # 1 "/usr/include/openssl/bn.h" 1 3 4 16490 /* crypto/bn/bn.h */ 16491 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 16492 * All rights reserved. 16493 * 16494 * This package is an SSL implementation written 16495 * by Eric Young (eay@cryptsoft.com). 16496 * The implementation was written so as to conform with Netscapes SSL. 16497 * 16498 * This library is free for commercial and non-commercial use as long as 16499 * the following conditions are aheared to. The following conditions 16500 * apply to all code found in this distribution, be it the RC4, RSA, 16501 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16502 * included with this distribution is covered by the same copyright terms 16503 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16504 * 16505 * Copyright remains Eric Young's, and as such any Copyright notices in 16506 * the code are not to be removed. 16507 * If this package is used in a product, Eric Young should be given attribution 16508 * as the author of the parts of the library used. 16509 * This can be in the form of a textual message at program startup or 16510 * in documentation (online or textual) provided with the package. 16511 * 16512 * Redistribution and use in source and binary forms, with or without 16513 * modification, are permitted provided that the following conditions 16514 * are met: 16515 * 1. Redistributions of source code must retain the copyright 16516 * notice, this list of conditions and the following disclaimer. 16517 * 2. Redistributions in binary form must reproduce the above copyright 16518 * notice, this list of conditions and the following disclaimer in the 16519 * documentation and/or other materials provided with the distribution. 16520 * 3. All advertising materials mentioning features or use of this software 16521 * must display the following acknowledgement: 16522 * "This product includes cryptographic software written by 16523 * Eric Young (eay@cryptsoft.com)" 16524 * The word 'cryptographic' can be left out if the rouines from the library 16525 * being used are not cryptographic related :-). 16526 * 4. If you include any Windows specific code (or a derivative thereof) from 16527 * the apps directory (application code) you must include an acknowledgement: 16528 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16529 * 16530 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16531 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16532 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16533 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16534 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16535 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16536 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16537 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16538 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16539 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16540 * SUCH DAMAGE. 16541 * 16542 * The licence and distribution terms for any publically available version or 16543 * derivative of this code cannot be changed. i.e. this code cannot simply be 16544 * copied and put under another distribution licence 16545 * [including the GNU Public Licence.] 16546 */ 16547 /* ==================================================================== 16548 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 16549 * 16550 * Redistribution and use in source and binary forms, with or without 16551 * modification, are permitted provided that the following conditions 16552 * are met: 16553 * 16554 * 1. Redistributions of source code must retain the above copyright 16555 * notice, this list of conditions and the following disclaimer. 16556 * 16557 * 2. Redistributions in binary form must reproduce the above copyright 16558 * notice, this list of conditions and the following disclaimer in 16559 * the documentation and/or other materials provided with the 16560 * distribution. 16561 * 16562 * 3. All advertising materials mentioning features or use of this 16563 * software must display the following acknowledgment: 16564 * "This product includes software developed by the OpenSSL Project 16565 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16566 * 16567 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16568 * endorse or promote products derived from this software without 16569 * prior written permission. For written permission, please contact 16570 * openssl-core@openssl.org. 16571 * 16572 * 5. Products derived from this software may not be called "OpenSSL" 16573 * nor may "OpenSSL" appear in their names without prior written 16574 * permission of the OpenSSL Project. 16575 * 16576 * 6. Redistributions of any form whatsoever must retain the following 16577 * acknowledgment: 16578 * "This product includes software developed by the OpenSSL Project 16579 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16580 * 16581 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16582 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16583 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16584 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16585 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16586 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16587 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16588 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16589 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16590 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16591 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16592 * OF THE POSSIBILITY OF SUCH DAMAGE. 16593 * ==================================================================== 16594 * 16595 * This product includes cryptographic software written by Eric Young 16596 * (eay@cryptsoft.com). This product includes software written by Tim 16597 * Hudson (tjh@cryptsoft.com). 16598 * 16599 */ 16600 /* ==================================================================== 16601 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16602 * 16603 * Portions of the attached software ("Contribution") are developed by 16604 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 16605 * 16606 * The Contribution is licensed pursuant to the Eric Young open source 16607 * license provided above. 16608 * 16609 * The binary polynomial arithmetic software is originally written by 16610 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 16611 * 16612 */ 16613 # 71 "/usr/include/openssl/rsa.h" 2 3 4 16614 # 81 "/usr/include/openssl/rsa.h" 3 4 16615 /* Declared already in ossl_typ.h */ 16616 /* typedef struct rsa_st RSA; */ 16617 /* typedef struct rsa_meth_st RSA_METHOD; */ 16618 16619 struct rsa_meth_st { 16620 const char *name; 16621 int (*rsa_pub_enc) (int flen, const unsigned char *from, 16622 unsigned char *to, RSA *rsa, int padding); 16623 int (*rsa_pub_dec) (int flen, const unsigned char *from, 16624 unsigned char *to, RSA *rsa, int padding); 16625 int (*rsa_priv_enc) (int flen, const unsigned char *from, 16626 unsigned char *to, RSA *rsa, int padding); 16627 int (*rsa_priv_dec) (int flen, const unsigned char *from, 16628 unsigned char *to, RSA *rsa, int padding); 16629 /* Can be null */ 16630 int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); 16631 /* Can be null */ 16632 int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 16633 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 16634 /* called at new */ 16635 int (*init) (RSA *rsa); 16636 /* called at free */ 16637 int (*finish) (RSA *rsa); 16638 /* RSA_METHOD_FLAG_* things */ 16639 int flags; 16640 /* may be needed! */ 16641 char *app_data; 16642 /* 16643 * New sign and verify functions: some libraries don't allow arbitrary 16644 * data to be signed/verified: this allows them to be used. Note: for 16645 * this to work the RSA_public_decrypt() and RSA_private_encrypt() should 16646 * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note: 16647 * for backwards compatibility this functionality is only enabled if the 16648 * RSA_FLAG_SIGN_VER option is set in 'flags'. 16649 */ 16650 int (*rsa_sign) (int type, 16651 const unsigned char *m, unsigned int m_length, 16652 unsigned char *sigret, unsigned int *siglen, 16653 const RSA *rsa); 16654 int (*rsa_verify) (int dtype, const unsigned char *m, 16655 unsigned int m_length, const unsigned char *sigbuf, 16656 unsigned int siglen, const RSA *rsa); 16657 /* 16658 * If this callback is NULL, the builtin software RSA key-gen will be 16659 * used. This is for behavioural compatibility whilst the code gets 16660 * rewired, but one day it would be nice to assume there are no such 16661 * things as "builtin software" implementations. 16662 */ 16663 int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); 16664 }; 16665 16666 struct rsa_st { 16667 /* 16668 * The first parameter is used to pickup errors where this is passed 16669 * instead of aEVP_PKEY, it is set to 0 16670 */ 16671 int pad; 16672 long version; 16673 const RSA_METHOD *meth; 16674 /* functional reference if 'meth' is ENGINE-provided */ 16675 ENGINE *engine; 16676 BIGNUM *n; 16677 BIGNUM *e; 16678 BIGNUM *d; 16679 BIGNUM *p; 16680 BIGNUM *q; 16681 BIGNUM *dmp1; 16682 BIGNUM *dmq1; 16683 BIGNUM *iqmp; 16684 /* be careful using this if the RSA structure is shared */ 16685 CRYPTO_EX_DATA ex_data; 16686 int references; 16687 int flags; 16688 /* Used to cache montgomery values */ 16689 BN_MONT_CTX *_method_mod_n; 16690 BN_MONT_CTX *_method_mod_p; 16691 BN_MONT_CTX *_method_mod_q; 16692 /* 16693 * all BIGNUM values are actually in the following data, if it is not 16694 * NULL 16695 */ 16696 char *bignum_data; 16697 BN_BLINDING *blinding; 16698 BN_BLINDING *mt_blinding; 16699 }; 16700 # 176 "/usr/include/openssl/rsa.h" 3 4 16701 /* exponent limit enforced for "large" modulus only */ 16702 # 190 "/usr/include/openssl/rsa.h" 3 4 16703 /* 16704 * This flag means the private key operations will be handled by rsa_mod_exp 16705 * and that they do not depend on the private key components being present: 16706 * for example a key stored in external hardware. Without this flag 16707 * bn_mod_exp gets called when private key components are absent. 16708 */ 16709 16710 16711 /* 16712 * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify 16713 * functions. 16714 */ 16715 16716 16717 /* 16718 * new with 0.9.6j and 0.9.7b; the built-in 16719 * RSA implementation now uses blinding by 16720 * default (ignoring RSA_FLAG_BLINDING), 16721 * but other engines might not need it 16722 */ 16723 16724 /* 16725 * new with 0.9.8f; the built-in RSA 16726 * implementation now uses constant time 16727 * operations by default in private key operations, 16728 * e.g., constant time modular exponentiation, 16729 * modular inverse without leaking branches, 16730 * division without leaking branches. This 16731 * flag disables these constant time 16732 * operations and results in faster RSA 16733 * private key operations. 16734 */ 16735 # 312 "/usr/include/openssl/rsa.h" 3 4 16736 /* EVP_PKEY_ only */ 16737 16738 16739 16740 16741 16742 16743 16744 RSA *RSA_new(void); 16745 RSA *RSA_new_method(ENGINE *engine); 16746 int RSA_size(const RSA *rsa); 16747 16748 /* Deprecated version */ 16749 16750 RSA *RSA_generate_key(int bits, unsigned long e, void 16751 (*callback) (int, int, void *), void *cb_arg); 16752 16753 16754 /* New version */ 16755 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); 16756 16757 int RSA_check_key(const RSA *); 16758 /* next 4 return -1 on error */ 16759 int RSA_public_encrypt(int flen, const unsigned char *from, 16760 unsigned char *to, RSA *rsa, int padding); 16761 int RSA_private_encrypt(int flen, const unsigned char *from, 16762 unsigned char *to, RSA *rsa, int padding); 16763 int RSA_public_decrypt(int flen, const unsigned char *from, 16764 unsigned char *to, RSA *rsa, int padding); 16765 int RSA_private_decrypt(int flen, const unsigned char *from, 16766 unsigned char *to, RSA *rsa, int padding); 16767 void RSA_free(RSA *r); 16768 /* "up" the RSA object's reference count */ 16769 int RSA_up_ref(RSA *r); 16770 16771 int RSA_flags(const RSA *r); 16772 16773 void RSA_set_default_method(const RSA_METHOD *meth); 16774 const RSA_METHOD *RSA_get_default_method(void); 16775 const RSA_METHOD *RSA_get_method(const RSA *rsa); 16776 int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); 16777 16778 /* This function needs the memory locking malloc callbacks to be installed */ 16779 int RSA_memory_lock(RSA *r); 16780 16781 /* these are the actual SSLeay RSA functions */ 16782 const RSA_METHOD *RSA_PKCS1_SSLeay(void); 16783 16784 const RSA_METHOD *RSA_null_method(void); 16785 16786 RSA *d2i_RSAPublicKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPublicKey(const RSA *a, unsigned char **out); extern const ASN1_ITEM RSAPublicKey_it; 16787 RSA *d2i_RSAPrivateKey(RSA **a, const unsigned char **in, long len); int i2d_RSAPrivateKey(const RSA *a, unsigned char **out); extern const ASN1_ITEM RSAPrivateKey_it; 16788 16789 typedef struct rsa_pss_params_st { 16790 X509_ALGOR *hashAlgorithm; 16791 X509_ALGOR *maskGenAlgorithm; 16792 ASN1_INTEGER *saltLength; 16793 ASN1_INTEGER *trailerField; 16794 } RSA_PSS_PARAMS; 16795 16796 RSA_PSS_PARAMS *RSA_PSS_PARAMS_new(void); void RSA_PSS_PARAMS_free(RSA_PSS_PARAMS *a); RSA_PSS_PARAMS *d2i_RSA_PSS_PARAMS(RSA_PSS_PARAMS **a, const unsigned char **in, long len); int i2d_RSA_PSS_PARAMS(RSA_PSS_PARAMS *a, unsigned char **out); extern const ASN1_ITEM RSA_PSS_PARAMS_it; 16797 16798 typedef struct rsa_oaep_params_st { 16799 X509_ALGOR *hashFunc; 16800 X509_ALGOR *maskGenFunc; 16801 X509_ALGOR *pSourceFunc; 16802 } RSA_OAEP_PARAMS; 16803 16804 RSA_OAEP_PARAMS *RSA_OAEP_PARAMS_new(void); void RSA_OAEP_PARAMS_free(RSA_OAEP_PARAMS *a); RSA_OAEP_PARAMS *d2i_RSA_OAEP_PARAMS(RSA_OAEP_PARAMS **a, const unsigned char **in, long len); int i2d_RSA_OAEP_PARAMS(RSA_OAEP_PARAMS *a, unsigned char **out); extern const ASN1_ITEM RSA_OAEP_PARAMS_it; 16805 16806 16807 int RSA_print_fp(FILE *fp, const RSA *r, int offset); 16808 16809 16810 16811 int RSA_print(BIO *bp, const RSA *r, int offset); 16812 16813 16814 16815 int i2d_RSA_NET(const RSA *a, unsigned char **pp, 16816 int (*cb) (char *buf, int len, const char *prompt, 16817 int verify), int sgckey); 16818 RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, 16819 int (*cb) (char *buf, int len, const char *prompt, 16820 int verify), int sgckey); 16821 16822 int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, 16823 int (*cb) (char *buf, int len, const char *prompt, 16824 int verify)); 16825 RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, 16826 int (*cb) (char *buf, int len, const char *prompt, 16827 int verify)); 16828 16829 16830 /* 16831 * The following 2 functions sign and verify a X509_SIG ASN1 object inside 16832 * PKCS#1 padded RSA encryption 16833 */ 16834 int RSA_sign(int type, const unsigned char *m, unsigned int m_length, 16835 unsigned char *sigret, unsigned int *siglen, RSA *rsa); 16836 int RSA_verify(int type, const unsigned char *m, unsigned int m_length, 16837 const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); 16838 16839 /* 16840 * The following 2 function sign and verify a ASN1_OCTET_STRING object inside 16841 * PKCS#1 padded RSA encryption 16842 */ 16843 int RSA_sign_ASN1_OCTET_STRING(int type, 16844 const unsigned char *m, unsigned int m_length, 16845 unsigned char *sigret, unsigned int *siglen, 16846 RSA *rsa); 16847 int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, 16848 unsigned int m_length, unsigned char *sigbuf, 16849 unsigned int siglen, RSA *rsa); 16850 16851 int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); 16852 void RSA_blinding_off(RSA *rsa); 16853 BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); 16854 16855 int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, 16856 const unsigned char *f, int fl); 16857 int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, 16858 const unsigned char *f, int fl, 16859 int rsa_len); 16860 int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, 16861 const unsigned char *f, int fl); 16862 int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, 16863 const unsigned char *f, int fl, 16864 int rsa_len); 16865 int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, 16866 long seedlen, const EVP_MD *dgst); 16867 int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, 16868 const unsigned char *f, int fl, 16869 const unsigned char *p, int pl); 16870 int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, 16871 const unsigned char *f, int fl, int rsa_len, 16872 const unsigned char *p, int pl); 16873 int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 16874 const unsigned char *from, int flen, 16875 const unsigned char *param, int plen, 16876 const EVP_MD *md, const EVP_MD *mgf1md); 16877 int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 16878 const unsigned char *from, int flen, 16879 int num, const unsigned char *param, 16880 int plen, const EVP_MD *md, 16881 const EVP_MD *mgf1md); 16882 int RSA_padding_add_SSLv23(unsigned char *to, int tlen, 16883 const unsigned char *f, int fl); 16884 int RSA_padding_check_SSLv23(unsigned char *to, int tlen, 16885 const unsigned char *f, int fl, int rsa_len); 16886 int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, 16887 int fl); 16888 int RSA_padding_check_none(unsigned char *to, int tlen, 16889 const unsigned char *f, int fl, int rsa_len); 16890 int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, 16891 int fl); 16892 int RSA_padding_check_X931(unsigned char *to, int tlen, 16893 const unsigned char *f, int fl, int rsa_len); 16894 int RSA_X931_hash_id(int nid); 16895 16896 int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, 16897 const EVP_MD *Hash, const unsigned char *EM, 16898 int sLen); 16899 int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, 16900 const unsigned char *mHash, const EVP_MD *Hash, 16901 int sLen); 16902 16903 int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, 16904 const EVP_MD *Hash, const EVP_MD *mgf1Hash, 16905 const unsigned char *EM, int sLen); 16906 16907 int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, 16908 const unsigned char *mHash, 16909 const EVP_MD *Hash, const EVP_MD *mgf1Hash, 16910 int sLen); 16911 16912 int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 16913 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 16914 int RSA_set_ex_data(RSA *r, int idx, void *arg); 16915 void *RSA_get_ex_data(const RSA *r, int idx); 16916 16917 RSA *RSAPublicKey_dup(RSA *rsa); 16918 RSA *RSAPrivateKey_dup(RSA *rsa); 16919 16920 /* 16921 * If this flag is set the RSA method is FIPS compliant and can be used in 16922 * FIPS mode. This is set in the validated module method. If an application 16923 * sets this flag in its own methods it is its responsibility to ensure the 16924 * result is compliant. 16925 */ 16926 16927 16928 16929 /* 16930 * If this flag is set the operations normally disabled in FIPS mode are 16931 * permitted it is then the applications responsibility to ensure that the 16932 * usage is compliant. 16933 */ 16934 16935 16936 /* 16937 * Application has decided PRNG is good enough to generate a key: don't 16938 * check. 16939 */ 16940 16941 16942 /* BEGIN ERROR CODES */ 16943 /* 16944 * The following lines are auto generated by the script mkerr.pl. Any changes 16945 * made after this point may be overwritten when the script is next run. 16946 */ 16947 void ERR_load_RSA_strings(void); 16948 16949 /* Error codes for the RSA functions. */ 16950 16951 /* Function codes. */ 16952 # 592 "/usr/include/openssl/rsa.h" 3 4 16953 /* Reason codes. */ 16954 # 97 "/usr/include/openssl/x509.h" 2 3 4 16955 16956 16957 # 1 "/usr/include/openssl/dsa.h" 1 3 4 16958 /* crypto/dsa/dsa.h */ 16959 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 16960 * All rights reserved. 16961 * 16962 * This package is an SSL implementation written 16963 * by Eric Young (eay@cryptsoft.com). 16964 * The implementation was written so as to conform with Netscapes SSL. 16965 * 16966 * This library is free for commercial and non-commercial use as long as 16967 * the following conditions are aheared to. The following conditions 16968 * apply to all code found in this distribution, be it the RC4, RSA, 16969 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16970 * included with this distribution is covered by the same copyright terms 16971 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16972 * 16973 * Copyright remains Eric Young's, and as such any Copyright notices in 16974 * the code are not to be removed. 16975 * If this package is used in a product, Eric Young should be given attribution 16976 * as the author of the parts of the library used. 16977 * This can be in the form of a textual message at program startup or 16978 * in documentation (online or textual) provided with the package. 16979 * 16980 * Redistribution and use in source and binary forms, with or without 16981 * modification, are permitted provided that the following conditions 16982 * are met: 16983 * 1. Redistributions of source code must retain the copyright 16984 * notice, this list of conditions and the following disclaimer. 16985 * 2. Redistributions in binary form must reproduce the above copyright 16986 * notice, this list of conditions and the following disclaimer in the 16987 * documentation and/or other materials provided with the distribution. 16988 * 3. All advertising materials mentioning features or use of this software 16989 * must display the following acknowledgement: 16990 * "This product includes cryptographic software written by 16991 * Eric Young (eay@cryptsoft.com)" 16992 * The word 'cryptographic' can be left out if the rouines from the library 16993 * being used are not cryptographic related :-). 16994 * 4. If you include any Windows specific code (or a derivative thereof) from 16995 * the apps directory (application code) you must include an acknowledgement: 16996 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16997 * 16998 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16999 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17000 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17001 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17002 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17003 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17004 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17005 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17006 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17007 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17008 * SUCH DAMAGE. 17009 * 17010 * The licence and distribution terms for any publically available version or 17011 * derivative of this code cannot be changed. i.e. this code cannot simply be 17012 * copied and put under another distribution licence 17013 * [including the GNU Public Licence.] 17014 */ 17015 17016 /* 17017 * The DSS routines are based on patches supplied by 17018 * Steven Schoch <schoch@sheba.arc.nasa.gov>. He basically did the 17019 * work and I have just tweaked them a little to fit into my 17020 * stylistic vision for SSLeay :-) */ 17021 17022 17023 17024 17025 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 17026 /* e_os2.h */ 17027 /* ==================================================================== 17028 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 17029 * 17030 * Redistribution and use in source and binary forms, with or without 17031 * modification, are permitted provided that the following conditions 17032 * are met: 17033 * 17034 * 1. Redistributions of source code must retain the above copyright 17035 * notice, this list of conditions and the following disclaimer. 17036 * 17037 * 2. Redistributions in binary form must reproduce the above copyright 17038 * notice, this list of conditions and the following disclaimer in 17039 * the documentation and/or other materials provided with the 17040 * distribution. 17041 * 17042 * 3. All advertising materials mentioning features or use of this 17043 * software must display the following acknowledgment: 17044 * "This product includes software developed by the OpenSSL Project 17045 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17046 * 17047 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17048 * endorse or promote products derived from this software without 17049 * prior written permission. For written permission, please contact 17050 * openssl-core@openssl.org. 17051 * 17052 * 5. Products derived from this software may not be called "OpenSSL" 17053 * nor may "OpenSSL" appear in their names without prior written 17054 * permission of the OpenSSL Project. 17055 * 17056 * 6. Redistributions of any form whatsoever must retain the following 17057 * acknowledgment: 17058 * "This product includes software developed by the OpenSSL Project 17059 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17060 * 17061 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17062 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17063 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17064 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17065 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17066 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17067 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17068 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17069 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17070 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17071 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17072 * OF THE POSSIBILITY OF SUCH DAMAGE. 17073 * ==================================================================== 17074 * 17075 * This product includes cryptographic software written by Eric Young 17076 * (eay@cryptsoft.com). This product includes software written by Tim 17077 * Hudson (tjh@cryptsoft.com). 17078 * 17079 */ 17080 17081 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 17082 /* opensslconf.h */ 17083 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 17084 17085 17086 17087 17088 /* OpenSSL was configured with the following options: */ 17089 # 108 "/usr/include/openssl/opensslconf.h" 3 4 17090 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 17091 asks for it. This is a transient feature that is provided for those 17092 who haven't had the time to do the appropriate changes in their 17093 applications. */ 17094 # 204 "/usr/include/openssl/opensslconf.h" 3 4 17095 /* crypto/opensslconf.h.in */ 17096 17097 /* Generate 80386 code? */ 17098 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 17099 # 69 "/usr/include/openssl/dsa.h" 2 3 4 17100 17101 17102 17103 17104 17105 17106 # 1 "/usr/include/openssl/bio.h" 1 3 4 17107 /* crypto/bio/bio.h */ 17108 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17109 * All rights reserved. 17110 * 17111 * This package is an SSL implementation written 17112 * by Eric Young (eay@cryptsoft.com). 17113 * The implementation was written so as to conform with Netscapes SSL. 17114 * 17115 * This library is free for commercial and non-commercial use as long as 17116 * the following conditions are aheared to. The following conditions 17117 * apply to all code found in this distribution, be it the RC4, RSA, 17118 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17119 * included with this distribution is covered by the same copyright terms 17120 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17121 * 17122 * Copyright remains Eric Young's, and as such any Copyright notices in 17123 * the code are not to be removed. 17124 * If this package is used in a product, Eric Young should be given attribution 17125 * as the author of the parts of the library used. 17126 * This can be in the form of a textual message at program startup or 17127 * in documentation (online or textual) provided with the package. 17128 * 17129 * Redistribution and use in source and binary forms, with or without 17130 * modification, are permitted provided that the following conditions 17131 * are met: 17132 * 1. Redistributions of source code must retain the copyright 17133 * notice, this list of conditions and the following disclaimer. 17134 * 2. Redistributions in binary form must reproduce the above copyright 17135 * notice, this list of conditions and the following disclaimer in the 17136 * documentation and/or other materials provided with the distribution. 17137 * 3. All advertising materials mentioning features or use of this software 17138 * must display the following acknowledgement: 17139 * "This product includes cryptographic software written by 17140 * Eric Young (eay@cryptsoft.com)" 17141 * The word 'cryptographic' can be left out if the rouines from the library 17142 * being used are not cryptographic related :-). 17143 * 4. If you include any Windows specific code (or a derivative thereof) from 17144 * the apps directory (application code) you must include an acknowledgement: 17145 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17146 * 17147 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17148 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17149 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17150 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17151 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17152 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17153 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17154 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17155 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17156 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17157 * SUCH DAMAGE. 17158 * 17159 * The licence and distribution terms for any publically available version or 17160 * derivative of this code cannot be changed. i.e. this code cannot simply be 17161 * copied and put under another distribution licence 17162 * [including the GNU Public Licence.] 17163 */ 17164 # 76 "/usr/include/openssl/dsa.h" 2 3 4 17165 17166 # 1 "/usr/include/openssl/crypto.h" 1 3 4 17167 /* crypto/crypto.h */ 17168 /* ==================================================================== 17169 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 17170 * 17171 * Redistribution and use in source and binary forms, with or without 17172 * modification, are permitted provided that the following conditions 17173 * are met: 17174 * 17175 * 1. Redistributions of source code must retain the above copyright 17176 * notice, this list of conditions and the following disclaimer. 17177 * 17178 * 2. Redistributions in binary form must reproduce the above copyright 17179 * notice, this list of conditions and the following disclaimer in 17180 * the documentation and/or other materials provided with the 17181 * distribution. 17182 * 17183 * 3. All advertising materials mentioning features or use of this 17184 * software must display the following acknowledgment: 17185 * "This product includes software developed by the OpenSSL Project 17186 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17187 * 17188 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17189 * endorse or promote products derived from this software without 17190 * prior written permission. For written permission, please contact 17191 * openssl-core@openssl.org. 17192 * 17193 * 5. Products derived from this software may not be called "OpenSSL" 17194 * nor may "OpenSSL" appear in their names without prior written 17195 * permission of the OpenSSL Project. 17196 * 17197 * 6. Redistributions of any form whatsoever must retain the following 17198 * acknowledgment: 17199 * "This product includes software developed by the OpenSSL Project 17200 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17201 * 17202 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17203 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17204 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17205 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17206 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17207 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17208 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17209 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17210 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17211 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17212 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17213 * OF THE POSSIBILITY OF SUCH DAMAGE. 17214 * ==================================================================== 17215 * 17216 * This product includes cryptographic software written by Eric Young 17217 * (eay@cryptsoft.com). This product includes software written by Tim 17218 * Hudson (tjh@cryptsoft.com). 17219 * 17220 */ 17221 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17222 * All rights reserved. 17223 * 17224 * This package is an SSL implementation written 17225 * by Eric Young (eay@cryptsoft.com). 17226 * The implementation was written so as to conform with Netscapes SSL. 17227 * 17228 * This library is free for commercial and non-commercial use as long as 17229 * the following conditions are aheared to. The following conditions 17230 * apply to all code found in this distribution, be it the RC4, RSA, 17231 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17232 * included with this distribution is covered by the same copyright terms 17233 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17234 * 17235 * Copyright remains Eric Young's, and as such any Copyright notices in 17236 * the code are not to be removed. 17237 * If this package is used in a product, Eric Young should be given attribution 17238 * as the author of the parts of the library used. 17239 * This can be in the form of a textual message at program startup or 17240 * in documentation (online or textual) provided with the package. 17241 * 17242 * Redistribution and use in source and binary forms, with or without 17243 * modification, are permitted provided that the following conditions 17244 * are met: 17245 * 1. Redistributions of source code must retain the copyright 17246 * notice, this list of conditions and the following disclaimer. 17247 * 2. Redistributions in binary form must reproduce the above copyright 17248 * notice, this list of conditions and the following disclaimer in the 17249 * documentation and/or other materials provided with the distribution. 17250 * 3. All advertising materials mentioning features or use of this software 17251 * must display the following acknowledgement: 17252 * "This product includes cryptographic software written by 17253 * Eric Young (eay@cryptsoft.com)" 17254 * The word 'cryptographic' can be left out if the rouines from the library 17255 * being used are not cryptographic related :-). 17256 * 4. If you include any Windows specific code (or a derivative thereof) from 17257 * the apps directory (application code) you must include an acknowledgement: 17258 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17259 * 17260 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17261 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17262 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17263 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17264 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17265 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17266 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17267 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17268 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17269 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17270 * SUCH DAMAGE. 17271 * 17272 * The licence and distribution terms for any publically available version or 17273 * derivative of this code cannot be changed. i.e. this code cannot simply be 17274 * copied and put under another distribution licence 17275 * [including the GNU Public Licence.] 17276 */ 17277 /* ==================================================================== 17278 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17279 * ECDH support in OpenSSL originally developed by 17280 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 17281 */ 17282 # 78 "/usr/include/openssl/dsa.h" 2 3 4 17283 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 17284 /* ==================================================================== 17285 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 17286 * 17287 * Redistribution and use in source and binary forms, with or without 17288 * modification, are permitted provided that the following conditions 17289 * are met: 17290 * 17291 * 1. Redistributions of source code must retain the above copyright 17292 * notice, this list of conditions and the following disclaimer. 17293 * 17294 * 2. Redistributions in binary form must reproduce the above copyright 17295 * notice, this list of conditions and the following disclaimer in 17296 * the documentation and/or other materials provided with the 17297 * distribution. 17298 * 17299 * 3. All advertising materials mentioning features or use of this 17300 * software must display the following acknowledgment: 17301 * "This product includes software developed by the OpenSSL Project 17302 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17303 * 17304 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17305 * endorse or promote products derived from this software without 17306 * prior written permission. For written permission, please contact 17307 * openssl-core@openssl.org. 17308 * 17309 * 5. Products derived from this software may not be called "OpenSSL" 17310 * nor may "OpenSSL" appear in their names without prior written 17311 * permission of the OpenSSL Project. 17312 * 17313 * 6. Redistributions of any form whatsoever must retain the following 17314 * acknowledgment: 17315 * "This product includes software developed by the OpenSSL Project 17316 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17317 * 17318 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17319 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17320 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17321 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17322 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17323 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17324 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17325 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17326 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17327 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17328 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17329 * OF THE POSSIBILITY OF SUCH DAMAGE. 17330 * ==================================================================== 17331 * 17332 * This product includes cryptographic software written by Eric Young 17333 * (eay@cryptsoft.com). This product includes software written by Tim 17334 * Hudson (tjh@cryptsoft.com). 17335 * 17336 */ 17337 # 79 "/usr/include/openssl/dsa.h" 2 3 4 17338 17339 17340 # 1 "/usr/include/openssl/bn.h" 1 3 4 17341 /* crypto/bn/bn.h */ 17342 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 17343 * All rights reserved. 17344 * 17345 * This package is an SSL implementation written 17346 * by Eric Young (eay@cryptsoft.com). 17347 * The implementation was written so as to conform with Netscapes SSL. 17348 * 17349 * This library is free for commercial and non-commercial use as long as 17350 * the following conditions are aheared to. The following conditions 17351 * apply to all code found in this distribution, be it the RC4, RSA, 17352 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17353 * included with this distribution is covered by the same copyright terms 17354 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17355 * 17356 * Copyright remains Eric Young's, and as such any Copyright notices in 17357 * the code are not to be removed. 17358 * If this package is used in a product, Eric Young should be given attribution 17359 * as the author of the parts of the library used. 17360 * This can be in the form of a textual message at program startup or 17361 * in documentation (online or textual) provided with the package. 17362 * 17363 * Redistribution and use in source and binary forms, with or without 17364 * modification, are permitted provided that the following conditions 17365 * are met: 17366 * 1. Redistributions of source code must retain the copyright 17367 * notice, this list of conditions and the following disclaimer. 17368 * 2. Redistributions in binary form must reproduce the above copyright 17369 * notice, this list of conditions and the following disclaimer in the 17370 * documentation and/or other materials provided with the distribution. 17371 * 3. All advertising materials mentioning features or use of this software 17372 * must display the following acknowledgement: 17373 * "This product includes cryptographic software written by 17374 * Eric Young (eay@cryptsoft.com)" 17375 * The word 'cryptographic' can be left out if the rouines from the library 17376 * being used are not cryptographic related :-). 17377 * 4. If you include any Windows specific code (or a derivative thereof) from 17378 * the apps directory (application code) you must include an acknowledgement: 17379 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17380 * 17381 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17382 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17383 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17384 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17385 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17386 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17387 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17388 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17389 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17390 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17391 * SUCH DAMAGE. 17392 * 17393 * The licence and distribution terms for any publically available version or 17394 * derivative of this code cannot be changed. i.e. this code cannot simply be 17395 * copied and put under another distribution licence 17396 * [including the GNU Public Licence.] 17397 */ 17398 /* ==================================================================== 17399 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 17400 * 17401 * Redistribution and use in source and binary forms, with or without 17402 * modification, are permitted provided that the following conditions 17403 * are met: 17404 * 17405 * 1. Redistributions of source code must retain the above copyright 17406 * notice, this list of conditions and the following disclaimer. 17407 * 17408 * 2. Redistributions in binary form must reproduce the above copyright 17409 * notice, this list of conditions and the following disclaimer in 17410 * the documentation and/or other materials provided with the 17411 * distribution. 17412 * 17413 * 3. All advertising materials mentioning features or use of this 17414 * software must display the following acknowledgment: 17415 * "This product includes software developed by the OpenSSL Project 17416 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17417 * 17418 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17419 * endorse or promote products derived from this software without 17420 * prior written permission. For written permission, please contact 17421 * openssl-core@openssl.org. 17422 * 17423 * 5. Products derived from this software may not be called "OpenSSL" 17424 * nor may "OpenSSL" appear in their names without prior written 17425 * permission of the OpenSSL Project. 17426 * 17427 * 6. Redistributions of any form whatsoever must retain the following 17428 * acknowledgment: 17429 * "This product includes software developed by the OpenSSL Project 17430 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17431 * 17432 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17433 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17434 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17435 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17436 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17437 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17438 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17439 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17440 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17441 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17442 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17443 * OF THE POSSIBILITY OF SUCH DAMAGE. 17444 * ==================================================================== 17445 * 17446 * This product includes cryptographic software written by Eric Young 17447 * (eay@cryptsoft.com). This product includes software written by Tim 17448 * Hudson (tjh@cryptsoft.com). 17449 * 17450 */ 17451 /* ==================================================================== 17452 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17453 * 17454 * Portions of the attached software ("Contribution") are developed by 17455 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 17456 * 17457 * The Contribution is licensed pursuant to the Eric Young open source 17458 * license provided above. 17459 * 17460 * The binary polynomial arithmetic software is originally written by 17461 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 17462 * 17463 */ 17464 # 82 "/usr/include/openssl/dsa.h" 2 3 4 17465 17466 # 1 "/usr/include/openssl/dh.h" 1 3 4 17467 /* crypto/dh/dh.h */ 17468 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17469 * All rights reserved. 17470 * 17471 * This package is an SSL implementation written 17472 * by Eric Young (eay@cryptsoft.com). 17473 * The implementation was written so as to conform with Netscapes SSL. 17474 * 17475 * This library is free for commercial and non-commercial use as long as 17476 * the following conditions are aheared to. The following conditions 17477 * apply to all code found in this distribution, be it the RC4, RSA, 17478 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17479 * included with this distribution is covered by the same copyright terms 17480 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17481 * 17482 * Copyright remains Eric Young's, and as such any Copyright notices in 17483 * the code are not to be removed. 17484 * If this package is used in a product, Eric Young should be given attribution 17485 * as the author of the parts of the library used. 17486 * This can be in the form of a textual message at program startup or 17487 * in documentation (online or textual) provided with the package. 17488 * 17489 * Redistribution and use in source and binary forms, with or without 17490 * modification, are permitted provided that the following conditions 17491 * are met: 17492 * 1. Redistributions of source code must retain the copyright 17493 * notice, this list of conditions and the following disclaimer. 17494 * 2. Redistributions in binary form must reproduce the above copyright 17495 * notice, this list of conditions and the following disclaimer in the 17496 * documentation and/or other materials provided with the distribution. 17497 * 3. All advertising materials mentioning features or use of this software 17498 * must display the following acknowledgement: 17499 * "This product includes cryptographic software written by 17500 * Eric Young (eay@cryptsoft.com)" 17501 * The word 'cryptographic' can be left out if the rouines from the library 17502 * being used are not cryptographic related :-). 17503 * 4. If you include any Windows specific code (or a derivative thereof) from 17504 * the apps directory (application code) you must include an acknowledgement: 17505 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17506 * 17507 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17508 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17509 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17510 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17511 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17512 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17513 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17514 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17515 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17516 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17517 * SUCH DAMAGE. 17518 * 17519 * The licence and distribution terms for any publically available version or 17520 * derivative of this code cannot be changed. i.e. this code cannot simply be 17521 * copied and put under another distribution licence 17522 * [including the GNU Public Licence.] 17523 */ 17524 17525 17526 17527 17528 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 17529 /* e_os2.h */ 17530 /* ==================================================================== 17531 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 17532 * 17533 * Redistribution and use in source and binary forms, with or without 17534 * modification, are permitted provided that the following conditions 17535 * are met: 17536 * 17537 * 1. Redistributions of source code must retain the above copyright 17538 * notice, this list of conditions and the following disclaimer. 17539 * 17540 * 2. Redistributions in binary form must reproduce the above copyright 17541 * notice, this list of conditions and the following disclaimer in 17542 * the documentation and/or other materials provided with the 17543 * distribution. 17544 * 17545 * 3. All advertising materials mentioning features or use of this 17546 * software must display the following acknowledgment: 17547 * "This product includes software developed by the OpenSSL Project 17548 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17549 * 17550 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17551 * endorse or promote products derived from this software without 17552 * prior written permission. For written permission, please contact 17553 * openssl-core@openssl.org. 17554 * 17555 * 5. Products derived from this software may not be called "OpenSSL" 17556 * nor may "OpenSSL" appear in their names without prior written 17557 * permission of the OpenSSL Project. 17558 * 17559 * 6. Redistributions of any form whatsoever must retain the following 17560 * acknowledgment: 17561 * "This product includes software developed by the OpenSSL Project 17562 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17563 * 17564 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17565 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17566 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17567 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17568 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17569 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17570 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17571 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17572 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17573 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17574 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17575 * OF THE POSSIBILITY OF SUCH DAMAGE. 17576 * ==================================================================== 17577 * 17578 * This product includes cryptographic software written by Eric Young 17579 * (eay@cryptsoft.com). This product includes software written by Tim 17580 * Hudson (tjh@cryptsoft.com). 17581 * 17582 */ 17583 17584 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 17585 /* opensslconf.h */ 17586 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 17587 17588 17589 17590 17591 /* OpenSSL was configured with the following options: */ 17592 # 108 "/usr/include/openssl/opensslconf.h" 3 4 17593 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 17594 asks for it. This is a transient feature that is provided for those 17595 who haven't had the time to do the appropriate changes in their 17596 applications. */ 17597 # 204 "/usr/include/openssl/opensslconf.h" 3 4 17598 /* crypto/opensslconf.h.in */ 17599 17600 /* Generate 80386 code? */ 17601 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 17602 # 63 "/usr/include/openssl/dh.h" 2 3 4 17603 17604 17605 17606 17607 17608 17609 # 1 "/usr/include/openssl/bio.h" 1 3 4 17610 /* crypto/bio/bio.h */ 17611 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17612 * All rights reserved. 17613 * 17614 * This package is an SSL implementation written 17615 * by Eric Young (eay@cryptsoft.com). 17616 * The implementation was written so as to conform with Netscapes SSL. 17617 * 17618 * This library is free for commercial and non-commercial use as long as 17619 * the following conditions are aheared to. The following conditions 17620 * apply to all code found in this distribution, be it the RC4, RSA, 17621 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17622 * included with this distribution is covered by the same copyright terms 17623 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17624 * 17625 * Copyright remains Eric Young's, and as such any Copyright notices in 17626 * the code are not to be removed. 17627 * If this package is used in a product, Eric Young should be given attribution 17628 * as the author of the parts of the library used. 17629 * This can be in the form of a textual message at program startup or 17630 * in documentation (online or textual) provided with the package. 17631 * 17632 * Redistribution and use in source and binary forms, with or without 17633 * modification, are permitted provided that the following conditions 17634 * are met: 17635 * 1. Redistributions of source code must retain the copyright 17636 * notice, this list of conditions and the following disclaimer. 17637 * 2. Redistributions in binary form must reproduce the above copyright 17638 * notice, this list of conditions and the following disclaimer in the 17639 * documentation and/or other materials provided with the distribution. 17640 * 3. All advertising materials mentioning features or use of this software 17641 * must display the following acknowledgement: 17642 * "This product includes cryptographic software written by 17643 * Eric Young (eay@cryptsoft.com)" 17644 * The word 'cryptographic' can be left out if the rouines from the library 17645 * being used are not cryptographic related :-). 17646 * 4. If you include any Windows specific code (or a derivative thereof) from 17647 * the apps directory (application code) you must include an acknowledgement: 17648 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17649 * 17650 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17651 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17652 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17653 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17654 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17655 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17656 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17657 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17658 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17659 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17660 * SUCH DAMAGE. 17661 * 17662 * The licence and distribution terms for any publically available version or 17663 * derivative of this code cannot be changed. i.e. this code cannot simply be 17664 * copied and put under another distribution licence 17665 * [including the GNU Public Licence.] 17666 */ 17667 # 70 "/usr/include/openssl/dh.h" 2 3 4 17668 17669 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 17670 /* ==================================================================== 17671 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 17672 * 17673 * Redistribution and use in source and binary forms, with or without 17674 * modification, are permitted provided that the following conditions 17675 * are met: 17676 * 17677 * 1. Redistributions of source code must retain the above copyright 17678 * notice, this list of conditions and the following disclaimer. 17679 * 17680 * 2. Redistributions in binary form must reproduce the above copyright 17681 * notice, this list of conditions and the following disclaimer in 17682 * the documentation and/or other materials provided with the 17683 * distribution. 17684 * 17685 * 3. All advertising materials mentioning features or use of this 17686 * software must display the following acknowledgment: 17687 * "This product includes software developed by the OpenSSL Project 17688 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17689 * 17690 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17691 * endorse or promote products derived from this software without 17692 * prior written permission. For written permission, please contact 17693 * openssl-core@openssl.org. 17694 * 17695 * 5. Products derived from this software may not be called "OpenSSL" 17696 * nor may "OpenSSL" appear in their names without prior written 17697 * permission of the OpenSSL Project. 17698 * 17699 * 6. Redistributions of any form whatsoever must retain the following 17700 * acknowledgment: 17701 * "This product includes software developed by the OpenSSL Project 17702 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17703 * 17704 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17705 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17706 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17707 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17708 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17709 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17710 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17711 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17712 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17713 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17714 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17715 * OF THE POSSIBILITY OF SUCH DAMAGE. 17716 * ==================================================================== 17717 * 17718 * This product includes cryptographic software written by Eric Young 17719 * (eay@cryptsoft.com). This product includes software written by Tim 17720 * Hudson (tjh@cryptsoft.com). 17721 * 17722 */ 17723 # 72 "/usr/include/openssl/dh.h" 2 3 4 17724 17725 # 1 "/usr/include/openssl/bn.h" 1 3 4 17726 /* crypto/bn/bn.h */ 17727 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 17728 * All rights reserved. 17729 * 17730 * This package is an SSL implementation written 17731 * by Eric Young (eay@cryptsoft.com). 17732 * The implementation was written so as to conform with Netscapes SSL. 17733 * 17734 * This library is free for commercial and non-commercial use as long as 17735 * the following conditions are aheared to. The following conditions 17736 * apply to all code found in this distribution, be it the RC4, RSA, 17737 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17738 * included with this distribution is covered by the same copyright terms 17739 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17740 * 17741 * Copyright remains Eric Young's, and as such any Copyright notices in 17742 * the code are not to be removed. 17743 * If this package is used in a product, Eric Young should be given attribution 17744 * as the author of the parts of the library used. 17745 * This can be in the form of a textual message at program startup or 17746 * in documentation (online or textual) provided with the package. 17747 * 17748 * Redistribution and use in source and binary forms, with or without 17749 * modification, are permitted provided that the following conditions 17750 * are met: 17751 * 1. Redistributions of source code must retain the copyright 17752 * notice, this list of conditions and the following disclaimer. 17753 * 2. Redistributions in binary form must reproduce the above copyright 17754 * notice, this list of conditions and the following disclaimer in the 17755 * documentation and/or other materials provided with the distribution. 17756 * 3. All advertising materials mentioning features or use of this software 17757 * must display the following acknowledgement: 17758 * "This product includes cryptographic software written by 17759 * Eric Young (eay@cryptsoft.com)" 17760 * The word 'cryptographic' can be left out if the rouines from the library 17761 * being used are not cryptographic related :-). 17762 * 4. If you include any Windows specific code (or a derivative thereof) from 17763 * the apps directory (application code) you must include an acknowledgement: 17764 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17765 * 17766 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17767 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17768 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17769 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17770 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17771 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17772 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17773 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17774 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17775 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17776 * SUCH DAMAGE. 17777 * 17778 * The licence and distribution terms for any publically available version or 17779 * derivative of this code cannot be changed. i.e. this code cannot simply be 17780 * copied and put under another distribution licence 17781 * [including the GNU Public Licence.] 17782 */ 17783 /* ==================================================================== 17784 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 17785 * 17786 * Redistribution and use in source and binary forms, with or without 17787 * modification, are permitted provided that the following conditions 17788 * are met: 17789 * 17790 * 1. Redistributions of source code must retain the above copyright 17791 * notice, this list of conditions and the following disclaimer. 17792 * 17793 * 2. Redistributions in binary form must reproduce the above copyright 17794 * notice, this list of conditions and the following disclaimer in 17795 * the documentation and/or other materials provided with the 17796 * distribution. 17797 * 17798 * 3. All advertising materials mentioning features or use of this 17799 * software must display the following acknowledgment: 17800 * "This product includes software developed by the OpenSSL Project 17801 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17802 * 17803 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17804 * endorse or promote products derived from this software without 17805 * prior written permission. For written permission, please contact 17806 * openssl-core@openssl.org. 17807 * 17808 * 5. Products derived from this software may not be called "OpenSSL" 17809 * nor may "OpenSSL" appear in their names without prior written 17810 * permission of the OpenSSL Project. 17811 * 17812 * 6. Redistributions of any form whatsoever must retain the following 17813 * acknowledgment: 17814 * "This product includes software developed by the OpenSSL Project 17815 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17816 * 17817 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17818 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17819 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17820 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17821 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17822 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17823 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17824 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17825 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17826 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17827 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17828 * OF THE POSSIBILITY OF SUCH DAMAGE. 17829 * ==================================================================== 17830 * 17831 * This product includes cryptographic software written by Eric Young 17832 * (eay@cryptsoft.com). This product includes software written by Tim 17833 * Hudson (tjh@cryptsoft.com). 17834 * 17835 */ 17836 /* ==================================================================== 17837 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17838 * 17839 * Portions of the attached software ("Contribution") are developed by 17840 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 17841 * 17842 * The Contribution is licensed pursuant to the Eric Young open source 17843 * license provided above. 17844 * 17845 * The binary polynomial arithmetic software is originally written by 17846 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 17847 * 17848 */ 17849 # 74 "/usr/include/openssl/dh.h" 2 3 4 17850 # 82 "/usr/include/openssl/dh.h" 3 4 17851 /* 17852 * new with 0.9.7h; the built-in DH 17853 * implementation now uses constant time 17854 * modular exponentiation for secret exponents 17855 * by default. This flag causes the 17856 * faster variable sliding window method to 17857 * be used for all exponents. 17858 */ 17859 17860 17861 /* 17862 * If this flag is set the DH method is FIPS compliant and can be used in 17863 * FIPS mode. This is set in the validated module method. If an application 17864 * sets this flag in its own methods it is its reposibility to ensure the 17865 * result is compliant. 17866 */ 17867 17868 17869 17870 /* 17871 * If this flag is set the operations normally disabled in FIPS mode are 17872 * permitted it is then the applications responsibility to ensure that the 17873 * usage is compliant. 17874 */ 17875 17876 17877 17878 17879 17880 17881 17882 /* Already defined in ossl_typ.h */ 17883 /* typedef struct dh_st DH; */ 17884 /* typedef struct dh_method DH_METHOD; */ 17885 17886 struct dh_method { 17887 const char *name; 17888 /* Methods here */ 17889 int (*generate_key) (DH *dh); 17890 int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh); 17891 /* Can be null */ 17892 int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a, 17893 const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, 17894 BN_MONT_CTX *m_ctx); 17895 int (*init) (DH *dh); 17896 int (*finish) (DH *dh); 17897 int flags; 17898 char *app_data; 17899 /* If this is non-NULL, it will be used to generate parameters */ 17900 int (*generate_params) (DH *dh, int prime_len, int generator, 17901 BN_GENCB *cb); 17902 }; 17903 17904 struct dh_st { 17905 /* 17906 * This first argument is used to pick up errors when a DH is passed 17907 * instead of a EVP_PKEY 17908 */ 17909 int pad; 17910 int version; 17911 BIGNUM *p; 17912 BIGNUM *g; 17913 long length; /* optional */ 17914 BIGNUM *pub_key; /* g^x % p */ 17915 BIGNUM *priv_key; /* x */ 17916 int flags; 17917 BN_MONT_CTX *method_mont_p; 17918 /* Place holders if we want to do X9.42 DH */ 17919 BIGNUM *q; 17920 BIGNUM *j; 17921 unsigned char *seed; 17922 int seedlen; 17923 BIGNUM *counter; 17924 int references; 17925 CRYPTO_EX_DATA ex_data; 17926 const DH_METHOD *meth; 17927 ENGINE *engine; 17928 }; 17929 17930 17931 /* #define DH_GENERATOR_3 3 */ 17932 17933 17934 /* DH_check error codes */ 17935 # 174 "/usr/include/openssl/dh.h" 3 4 17936 /* DH_check_pub_key error codes */ 17937 17938 17939 17940 17941 /* 17942 * primes p where (p-1)/2 is prime too are called "safe"; we define this for 17943 * backward compatibility: 17944 */ 17945 # 209 "/usr/include/openssl/dh.h" 3 4 17946 DH *DHparams_dup(DH *); 17947 17948 const DH_METHOD *DH_OpenSSL(void); 17949 17950 void DH_set_default_method(const DH_METHOD *meth); 17951 const DH_METHOD *DH_get_default_method(void); 17952 int DH_set_method(DH *dh, const DH_METHOD *meth); 17953 DH *DH_new_method(ENGINE *engine); 17954 17955 DH *DH_new(void); 17956 void DH_free(DH *dh); 17957 int DH_up_ref(DH *dh); 17958 int DH_size(const DH *dh); 17959 int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 17960 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 17961 int DH_set_ex_data(DH *d, int idx, void *arg); 17962 void *DH_get_ex_data(DH *d, int idx); 17963 17964 /* Deprecated version */ 17965 17966 DH *DH_generate_parameters(int prime_len, int generator, 17967 void (*callback) (int, int, void *), void *cb_arg); 17968 17969 17970 /* New version */ 17971 int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, 17972 BN_GENCB *cb); 17973 17974 int DH_check(const DH *dh, int *codes); 17975 int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); 17976 int DH_generate_key(DH *dh); 17977 int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); 17978 int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); 17979 DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); 17980 int i2d_DHparams(const DH *a, unsigned char **pp); 17981 DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); 17982 int i2d_DHxparams(const DH *a, unsigned char **pp); 17983 17984 int DHparams_print_fp(FILE *fp, const DH *x); 17985 17986 17987 int DHparams_print(BIO *bp, const DH *x); 17988 17989 17990 17991 17992 /* RFC 5114 parameters */ 17993 DH *DH_get_1024_160(void); 17994 DH *DH_get_2048_224(void); 17995 DH *DH_get_2048_256(void); 17996 17997 17998 /* RFC2631 KDF */ 17999 int DH_KDF_X9_42(unsigned char *out, size_t outlen, 18000 const unsigned char *Z, size_t Zlen, 18001 ASN1_OBJECT *key_oid, 18002 const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); 18003 # 357 "/usr/include/openssl/dh.h" 3 4 18004 /* KDF types */ 18005 18006 18007 18008 /* BEGIN ERROR CODES */ 18009 /* 18010 * The following lines are auto generated by the script mkerr.pl. Any changes 18011 * made after this point may be overwritten when the script is next run. 18012 */ 18013 void ERR_load_DH_strings(void); 18014 18015 /* Error codes for the DH functions. */ 18016 18017 /* Function codes. */ 18018 # 392 "/usr/include/openssl/dh.h" 3 4 18019 /* Reason codes. */ 18020 # 84 "/usr/include/openssl/dsa.h" 2 3 4 18021 # 92 "/usr/include/openssl/dsa.h" 3 4 18022 /* 18023 * new with 0.9.7h; the built-in DSA implementation now uses constant time 18024 * modular exponentiation for secret exponents by default. This flag causes 18025 * the faster variable sliding window method to be used for all exponents. 18026 */ 18027 18028 18029 /* 18030 * If this flag is set the DSA method is FIPS compliant and can be used in 18031 * FIPS mode. This is set in the validated module method. If an application 18032 * sets this flag in its own methods it is its reposibility to ensure the 18033 * result is compliant. 18034 */ 18035 18036 18037 18038 /* 18039 * If this flag is set the operations normally disabled in FIPS mode are 18040 * permitted it is then the applications responsibility to ensure that the 18041 * usage is compliant. 18042 */ 18043 18044 18045 18046 18047 18048 18049 18050 /* Already defined in ossl_typ.h */ 18051 /* typedef struct dsa_st DSA; */ 18052 /* typedef struct dsa_method DSA_METHOD; */ 18053 18054 typedef struct DSA_SIG_st { 18055 BIGNUM *r; 18056 BIGNUM *s; 18057 } DSA_SIG; 18058 18059 struct dsa_method { 18060 const char *name; 18061 DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa); 18062 int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, 18063 BIGNUM **rp); 18064 int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len, 18065 DSA_SIG *sig, DSA *dsa); 18066 int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, 18067 BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, 18068 BN_MONT_CTX *in_mont); 18069 /* Can be null */ 18070 int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, 18071 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 18072 int (*init) (DSA *dsa); 18073 int (*finish) (DSA *dsa); 18074 int flags; 18075 char *app_data; 18076 /* If this is non-NULL, it is used to generate DSA parameters */ 18077 int (*dsa_paramgen) (DSA *dsa, int bits, 18078 const unsigned char *seed, int seed_len, 18079 int *counter_ret, unsigned long *h_ret, 18080 BN_GENCB *cb); 18081 /* If this is non-NULL, it is used to generate DSA keys */ 18082 int (*dsa_keygen) (DSA *dsa); 18083 }; 18084 18085 struct dsa_st { 18086 /* 18087 * This first variable is used to pick up errors where a DSA is passed 18088 * instead of of a EVP_PKEY 18089 */ 18090 int pad; 18091 long version; 18092 int write_params; 18093 BIGNUM *p; 18094 BIGNUM *q; /* == 20 */ 18095 BIGNUM *g; 18096 BIGNUM *pub_key; /* y public key */ 18097 BIGNUM *priv_key; /* x private key */ 18098 BIGNUM *kinv; /* Signing pre-calc */ 18099 BIGNUM *r; /* Signing pre-calc */ 18100 int flags; 18101 /* Normally used to cache montgomery values */ 18102 BN_MONT_CTX *method_mont_p; 18103 int references; 18104 CRYPTO_EX_DATA ex_data; 18105 const DSA_METHOD *meth; 18106 /* functional reference if 'meth' is ENGINE-provided */ 18107 ENGINE *engine; 18108 }; 18109 # 187 "/usr/include/openssl/dsa.h" 3 4 18110 DSA *DSAparams_dup(DSA *x); 18111 DSA_SIG *DSA_SIG_new(void); 18112 void DSA_SIG_free(DSA_SIG *a); 18113 int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); 18114 DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); 18115 18116 DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); 18117 int DSA_do_verify(const unsigned char *dgst, int dgst_len, 18118 DSA_SIG *sig, DSA *dsa); 18119 18120 const DSA_METHOD *DSA_OpenSSL(void); 18121 18122 void DSA_set_default_method(const DSA_METHOD *); 18123 const DSA_METHOD *DSA_get_default_method(void); 18124 int DSA_set_method(DSA *dsa, const DSA_METHOD *); 18125 18126 DSA *DSA_new(void); 18127 DSA *DSA_new_method(ENGINE *engine); 18128 void DSA_free(DSA *r); 18129 /* "up" the DSA object's reference count */ 18130 int DSA_up_ref(DSA *r); 18131 int DSA_size(const DSA *); 18132 /* next 4 return -1 on error */ 18133 int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); 18134 int DSA_sign(int type, const unsigned char *dgst, int dlen, 18135 unsigned char *sig, unsigned int *siglen, DSA *dsa); 18136 int DSA_verify(int type, const unsigned char *dgst, int dgst_len, 18137 const unsigned char *sigbuf, int siglen, DSA *dsa); 18138 int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 18139 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 18140 int DSA_set_ex_data(DSA *d, int idx, void *arg); 18141 void *DSA_get_ex_data(DSA *d, int idx); 18142 18143 DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); 18144 DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); 18145 DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); 18146 18147 /* Deprecated version */ 18148 18149 DSA *DSA_generate_parameters(int bits, 18150 unsigned char *seed, int seed_len, 18151 int *counter_ret, unsigned long *h_ret, void 18152 (*callback) (int, int, void *), void *cb_arg); 18153 18154 18155 /* New version */ 18156 int DSA_generate_parameters_ex(DSA *dsa, int bits, 18157 const unsigned char *seed, int seed_len, 18158 int *counter_ret, unsigned long *h_ret, 18159 BN_GENCB *cb); 18160 18161 int DSA_generate_key(DSA *a); 18162 int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); 18163 int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); 18164 int i2d_DSAparams(const DSA *a, unsigned char **pp); 18165 18166 18167 int DSAparams_print(BIO *bp, const DSA *x); 18168 int DSA_print(BIO *bp, const DSA *x, int off); 18169 18170 18171 int DSAparams_print_fp(FILE *fp, const DSA *x); 18172 int DSA_print_fp(FILE *bp, const DSA *x, int off); 18173 18174 18175 18176 /* 18177 * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only 18178 * have one value here we set the number of checks to 64 which is the 128 bit 18179 * security level that is the highest level and valid for creating a 3072 bit 18180 * DSA key. 18181 */ 18182 18183 18184 18185 18186 /* 18187 * Convert DSA structure (key or just parameters) into DH structure (be 18188 * careful to avoid small subgroup attacks when using this!) 18189 */ 18190 DH *DSA_dup_DH(const DSA *r); 18191 # 278 "/usr/include/openssl/dsa.h" 3 4 18192 /* BEGIN ERROR CODES */ 18193 /* 18194 * The following lines are auto generated by the script mkerr.pl. Any changes 18195 * made after this point may be overwritten when the script is next run. 18196 */ 18197 void ERR_load_DSA_strings(void); 18198 18199 /* Error codes for the DSA functions. */ 18200 18201 /* Function codes. */ 18202 # 316 "/usr/include/openssl/dsa.h" 3 4 18203 /* Reason codes. */ 18204 # 100 "/usr/include/openssl/x509.h" 2 3 4 18205 18206 18207 # 1 "/usr/include/openssl/dh.h" 1 3 4 18208 /* crypto/dh/dh.h */ 18209 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18210 * All rights reserved. 18211 * 18212 * This package is an SSL implementation written 18213 * by Eric Young (eay@cryptsoft.com). 18214 * The implementation was written so as to conform with Netscapes SSL. 18215 * 18216 * This library is free for commercial and non-commercial use as long as 18217 * the following conditions are aheared to. The following conditions 18218 * apply to all code found in this distribution, be it the RC4, RSA, 18219 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18220 * included with this distribution is covered by the same copyright terms 18221 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18222 * 18223 * Copyright remains Eric Young's, and as such any Copyright notices in 18224 * the code are not to be removed. 18225 * If this package is used in a product, Eric Young should be given attribution 18226 * as the author of the parts of the library used. 18227 * This can be in the form of a textual message at program startup or 18228 * in documentation (online or textual) provided with the package. 18229 * 18230 * Redistribution and use in source and binary forms, with or without 18231 * modification, are permitted provided that the following conditions 18232 * are met: 18233 * 1. Redistributions of source code must retain the copyright 18234 * notice, this list of conditions and the following disclaimer. 18235 * 2. Redistributions in binary form must reproduce the above copyright 18236 * notice, this list of conditions and the following disclaimer in the 18237 * documentation and/or other materials provided with the distribution. 18238 * 3. All advertising materials mentioning features or use of this software 18239 * must display the following acknowledgement: 18240 * "This product includes cryptographic software written by 18241 * Eric Young (eay@cryptsoft.com)" 18242 * The word 'cryptographic' can be left out if the rouines from the library 18243 * being used are not cryptographic related :-). 18244 * 4. If you include any Windows specific code (or a derivative thereof) from 18245 * the apps directory (application code) you must include an acknowledgement: 18246 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18247 * 18248 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18249 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18250 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18251 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18252 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18253 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18254 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18255 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18256 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18257 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18258 * SUCH DAMAGE. 18259 * 18260 * The licence and distribution terms for any publically available version or 18261 * derivative of this code cannot be changed. i.e. this code cannot simply be 18262 * copied and put under another distribution licence 18263 * [including the GNU Public Licence.] 18264 */ 18265 # 103 "/usr/include/openssl/x509.h" 2 3 4 18266 18267 18268 18269 18270 # 1 "/usr/include/openssl/sha.h" 1 3 4 18271 /* crypto/sha/sha.h */ 18272 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18273 * All rights reserved. 18274 * 18275 * This package is an SSL implementation written 18276 * by Eric Young (eay@cryptsoft.com). 18277 * The implementation was written so as to conform with Netscapes SSL. 18278 * 18279 * This library is free for commercial and non-commercial use as long as 18280 * the following conditions are aheared to. The following conditions 18281 * apply to all code found in this distribution, be it the RC4, RSA, 18282 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18283 * included with this distribution is covered by the same copyright terms 18284 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18285 * 18286 * Copyright remains Eric Young's, and as such any Copyright notices in 18287 * the code are not to be removed. 18288 * If this package is used in a product, Eric Young should be given attribution 18289 * as the author of the parts of the library used. 18290 * This can be in the form of a textual message at program startup or 18291 * in documentation (online or textual) provided with the package. 18292 * 18293 * Redistribution and use in source and binary forms, with or without 18294 * modification, are permitted provided that the following conditions 18295 * are met: 18296 * 1. Redistributions of source code must retain the copyright 18297 * notice, this list of conditions and the following disclaimer. 18298 * 2. Redistributions in binary form must reproduce the above copyright 18299 * notice, this list of conditions and the following disclaimer in the 18300 * documentation and/or other materials provided with the distribution. 18301 * 3. All advertising materials mentioning features or use of this software 18302 * must display the following acknowledgement: 18303 * "This product includes cryptographic software written by 18304 * Eric Young (eay@cryptsoft.com)" 18305 * The word 'cryptographic' can be left out if the rouines from the library 18306 * being used are not cryptographic related :-). 18307 * 4. If you include any Windows specific code (or a derivative thereof) from 18308 * the apps directory (application code) you must include an acknowledgement: 18309 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18310 * 18311 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18312 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18313 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18314 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18315 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18316 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18317 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18318 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18319 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18320 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18321 * SUCH DAMAGE. 18322 * 18323 * The licence and distribution terms for any publically available version or 18324 * derivative of this code cannot be changed. i.e. this code cannot simply be 18325 * copied and put under another distribution licence 18326 * [including the GNU Public Licence.] 18327 */ 18328 18329 18330 18331 18332 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 18333 /* e_os2.h */ 18334 /* ==================================================================== 18335 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 18336 * 18337 * Redistribution and use in source and binary forms, with or without 18338 * modification, are permitted provided that the following conditions 18339 * are met: 18340 * 18341 * 1. Redistributions of source code must retain the above copyright 18342 * notice, this list of conditions and the following disclaimer. 18343 * 18344 * 2. Redistributions in binary form must reproduce the above copyright 18345 * notice, this list of conditions and the following disclaimer in 18346 * the documentation and/or other materials provided with the 18347 * distribution. 18348 * 18349 * 3. All advertising materials mentioning features or use of this 18350 * software must display the following acknowledgment: 18351 * "This product includes software developed by the OpenSSL Project 18352 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18353 * 18354 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18355 * endorse or promote products derived from this software without 18356 * prior written permission. For written permission, please contact 18357 * openssl-core@openssl.org. 18358 * 18359 * 5. Products derived from this software may not be called "OpenSSL" 18360 * nor may "OpenSSL" appear in their names without prior written 18361 * permission of the OpenSSL Project. 18362 * 18363 * 6. Redistributions of any form whatsoever must retain the following 18364 * acknowledgment: 18365 * "This product includes software developed by the OpenSSL Project 18366 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18367 * 18368 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18369 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18370 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18371 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18372 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18373 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18374 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18375 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18376 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18377 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18378 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18379 * OF THE POSSIBILITY OF SUCH DAMAGE. 18380 * ==================================================================== 18381 * 18382 * This product includes cryptographic software written by Eric Young 18383 * (eay@cryptsoft.com). This product includes software written by Tim 18384 * Hudson (tjh@cryptsoft.com). 18385 * 18386 */ 18387 18388 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 18389 /* opensslconf.h */ 18390 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 18391 18392 18393 18394 18395 /* OpenSSL was configured with the following options: */ 18396 # 108 "/usr/include/openssl/opensslconf.h" 3 4 18397 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 18398 asks for it. This is a transient feature that is provided for those 18399 who haven't had the time to do the appropriate changes in their 18400 applications. */ 18401 # 204 "/usr/include/openssl/opensslconf.h" 3 4 18402 /* crypto/opensslconf.h.in */ 18403 18404 /* Generate 80386 code? */ 18405 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 18406 # 63 "/usr/include/openssl/sha.h" 2 3 4 18407 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4 18408 /* 18409 * CDDL HEADER START 18410 * 18411 * The contents of this file are subject to the terms of the 18412 * Common Development and Distribution License, Version 1.0 only 18413 * (the "License"). You may not use this file except in compliance 18414 * with the License. 18415 * 18416 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 18417 * or http://www.opensolaris.org/os/licensing. 18418 * See the License for the specific language governing permissions 18419 * and limitations under the License. 18420 * 18421 * When distributing Covered Code, include this CDDL HEADER in each 18422 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 18423 * If applicable, add the following below this CDDL HEADER, with the 18424 * fields enclosed by brackets "[]" replaced with your own identifying 18425 * information: Portions Copyright [yyyy] [name of copyright owner] 18426 * 18427 * CDDL HEADER END 18428 */ 18429 /* Copyright (c) 1988 AT&T */ 18430 /* All Rights Reserved */ 18431 18432 18433 /* 18434 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 18435 * Use is subject to license terms. 18436 */ 18437 # 64 "/usr/include/openssl/sha.h" 2 3 4 18438 # 77 "/usr/include/openssl/sha.h" 3 4 18439 /*- 18440 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 18441 * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! 18442 * ! SHA_LONG_LOG2 has to be defined along. ! 18443 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 18444 */ 18445 # 100 "/usr/include/openssl/sha.h" 3 4 18446 typedef struct SHAstate_st { 18447 unsigned int h0, h1, h2, h3, h4; 18448 unsigned int Nl, Nh; 18449 unsigned int data[16]; 18450 unsigned int num; 18451 } SHA_CTX; 18452 18453 18454 18455 18456 18457 int SHA_Init(SHA_CTX *c); 18458 int SHA_Update(SHA_CTX *c, const void *data, size_t len); 18459 int SHA_Final(unsigned char *md, SHA_CTX *c); 18460 unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); 18461 void SHA_Transform(SHA_CTX *c, const unsigned char *data); 18462 18463 18464 18465 18466 18467 int SHA1_Init(SHA_CTX *c); 18468 int SHA1_Update(SHA_CTX *c, const void *data, size_t len); 18469 int SHA1_Final(unsigned char *md, SHA_CTX *c); 18470 unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); 18471 void SHA1_Transform(SHA_CTX *c, const unsigned char *data); 18472 # 134 "/usr/include/openssl/sha.h" 3 4 18473 typedef struct SHA256state_st { 18474 unsigned int h[8]; 18475 unsigned int Nl, Nh; 18476 unsigned int data[16]; 18477 unsigned int num, md_len; 18478 } SHA256_CTX; 18479 18480 18481 18482 18483 18484 18485 int SHA224_Init(SHA256_CTX *c); 18486 int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); 18487 int SHA224_Final(unsigned char *md, SHA256_CTX *c); 18488 unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); 18489 int SHA256_Init(SHA256_CTX *c); 18490 int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); 18491 int SHA256_Final(unsigned char *md, SHA256_CTX *c); 18492 unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); 18493 void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); 18494 18495 18496 18497 18498 18499 18500 /* 18501 * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 18502 * being exactly 64-bit wide. See Implementation Notes in sha512.c 18503 * for further details. 18504 */ 18505 /* 18506 * SHA-512 treats input data as a 18507 * contiguous array of 64 bit 18508 * wide big-endian values. 18509 */ 18510 # 183 "/usr/include/openssl/sha.h" 3 4 18511 typedef struct SHA512state_st { 18512 unsigned long long h[8]; 18513 unsigned long long Nl, Nh; 18514 union { 18515 unsigned long long d[16]; 18516 unsigned char p[(16*8)]; 18517 } u; 18518 unsigned int num, md_len; 18519 } SHA512_CTX; 18520 18521 18522 18523 18524 18525 18526 18527 int SHA384_Init(SHA512_CTX *c); 18528 int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); 18529 int SHA384_Final(unsigned char *md, SHA512_CTX *c); 18530 unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); 18531 int SHA512_Init(SHA512_CTX *c); 18532 int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); 18533 int SHA512_Final(unsigned char *md, SHA512_CTX *c); 18534 unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); 18535 void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); 18536 # 108 "/usr/include/openssl/x509.h" 2 3 4 18537 18538 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 18539 /* ==================================================================== 18540 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 18541 * 18542 * Redistribution and use in source and binary forms, with or without 18543 * modification, are permitted provided that the following conditions 18544 * are met: 18545 * 18546 * 1. Redistributions of source code must retain the above copyright 18547 * notice, this list of conditions and the following disclaimer. 18548 * 18549 * 2. Redistributions in binary form must reproduce the above copyright 18550 * notice, this list of conditions and the following disclaimer in 18551 * the documentation and/or other materials provided with the 18552 * distribution. 18553 * 18554 * 3. All advertising materials mentioning features or use of this 18555 * software must display the following acknowledgment: 18556 * "This product includes software developed by the OpenSSL Project 18557 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18558 * 18559 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18560 * endorse or promote products derived from this software without 18561 * prior written permission. For written permission, please contact 18562 * openssl-core@openssl.org. 18563 * 18564 * 5. Products derived from this software may not be called "OpenSSL" 18565 * nor may "OpenSSL" appear in their names without prior written 18566 * permission of the OpenSSL Project. 18567 * 18568 * 6. Redistributions of any form whatsoever must retain the following 18569 * acknowledgment: 18570 * "This product includes software developed by the OpenSSL Project 18571 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18572 * 18573 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18574 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18575 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18576 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18577 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18578 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18579 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18580 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18581 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18582 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18583 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18584 * OF THE POSSIBILITY OF SUCH DAMAGE. 18585 * ==================================================================== 18586 * 18587 * This product includes cryptographic software written by Eric Young 18588 * (eay@cryptsoft.com). This product includes software written by Tim 18589 * Hudson (tjh@cryptsoft.com). 18590 * 18591 */ 18592 # 110 "/usr/include/openssl/x509.h" 2 3 4 18593 # 137 "/usr/include/openssl/x509.h" 3 4 18594 typedef struct X509_objects_st { 18595 int nid; 18596 int (*a2i) (void); 18597 int (*i2a) (void); 18598 } X509_OBJECTS; 18599 18600 struct X509_algor_st { 18601 ASN1_OBJECT *algorithm; 18602 ASN1_TYPE *parameter; 18603 } /* X509_ALGOR */ ; 18604 18605 18606 18607 typedef struct stack_st_X509_ALGOR X509_ALGORS; 18608 18609 typedef struct X509_val_st { 18610 ASN1_TIME *notBefore; 18611 ASN1_TIME *notAfter; 18612 } X509_VAL; 18613 18614 struct X509_pubkey_st { 18615 X509_ALGOR *algor; 18616 ASN1_BIT_STRING *public_key; 18617 EVP_PKEY *pkey; 18618 }; 18619 18620 typedef struct X509_sig_st { 18621 X509_ALGOR *algor; 18622 ASN1_OCTET_STRING *digest; 18623 } X509_SIG; 18624 18625 typedef struct X509_name_entry_st { 18626 ASN1_OBJECT *object; 18627 ASN1_STRING *value; 18628 int set; 18629 int size; /* temp variable */ 18630 } X509_NAME_ENTRY; 18631 18632 struct stack_st_X509_NAME_ENTRY { _STACK stack; }; 18633 18634 18635 /* we always keep X509_NAMEs in 2 forms. */ 18636 struct X509_name_st { 18637 struct stack_st_X509_NAME_ENTRY *entries; 18638 int modified; /* true if 'bytes' needs to be built */ 18639 18640 BUF_MEM *bytes; 18641 18642 18643 18644 /* unsigned long hash; Keep the hash around for lookups */ 18645 unsigned char *canon_enc; 18646 int canon_enclen; 18647 } /* X509_NAME */ ; 18648 18649 struct stack_st_X509_NAME { _STACK stack; }; 18650 18651 18652 18653 typedef struct X509_extension_st { 18654 ASN1_OBJECT *object; 18655 ASN1_BOOLEAN critical; 18656 ASN1_OCTET_STRING *value; 18657 } X509_EXTENSION; 18658 18659 typedef struct stack_st_X509_EXTENSION X509_EXTENSIONS; 18660 18661 struct stack_st_X509_EXTENSION { _STACK stack; }; 18662 18663 18664 /* a sequence of these are used */ 18665 typedef struct x509_attributes_st { 18666 ASN1_OBJECT *object; 18667 int single; /* 0 for a set, 1 for a single item (which is 18668 * wrong) */ 18669 union { 18670 char *ptr; 18671 /* 18672 * 0 18673 */ struct stack_st_ASN1_TYPE *set; 18674 /* 18675 * 1 18676 */ ASN1_TYPE *single; 18677 } value; 18678 } X509_ATTRIBUTE; 18679 18680 struct stack_st_X509_ATTRIBUTE { _STACK stack; }; 18681 18682 18683 typedef struct X509_req_info_st { 18684 ASN1_ENCODING enc; 18685 ASN1_INTEGER *version; 18686 X509_NAME *subject; 18687 X509_PUBKEY *pubkey; 18688 /* d=2 hl=2 l= 0 cons: cont: 00 */ 18689 struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */ 18690 } X509_REQ_INFO; 18691 18692 typedef struct X509_req_st { 18693 X509_REQ_INFO *req_info; 18694 X509_ALGOR *sig_alg; 18695 ASN1_BIT_STRING *signature; 18696 int references; 18697 } X509_REQ; 18698 18699 typedef struct x509_cinf_st { 18700 ASN1_INTEGER *version; /* [ 0 ] default of v1 */ 18701 ASN1_INTEGER *serialNumber; 18702 X509_ALGOR *signature; 18703 X509_NAME *issuer; 18704 X509_VAL *validity; 18705 X509_NAME *subject; 18706 X509_PUBKEY *key; 18707 ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */ 18708 ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */ 18709 struct stack_st_X509_EXTENSION *extensions; /* [ 3 ] optional in v3 */ 18710 ASN1_ENCODING enc; 18711 } X509_CINF; 18712 18713 /* 18714 * This stuff is certificate "auxiliary info" it contains details which are 18715 * useful in certificate stores and databases. When used this is tagged onto 18716 * the end of the certificate itself 18717 */ 18718 18719 typedef struct x509_cert_aux_st { 18720 struct stack_st_ASN1_OBJECT *trust; /* trusted uses */ 18721 struct stack_st_ASN1_OBJECT *reject; /* rejected uses */ 18722 ASN1_UTF8STRING *alias; /* "friendly name" */ 18723 ASN1_OCTET_STRING *keyid; /* key id of private key */ 18724 struct stack_st_X509_ALGOR *other; /* other unspecified info */ 18725 } X509_CERT_AUX; 18726 18727 struct x509_st { 18728 X509_CINF *cert_info; 18729 X509_ALGOR *sig_alg; 18730 ASN1_BIT_STRING *signature; 18731 int valid; 18732 int references; 18733 char *name; 18734 CRYPTO_EX_DATA ex_data; 18735 /* These contain copies of various extension values */ 18736 long ex_pathlen; 18737 long ex_pcpathlen; 18738 unsigned long ex_flags; 18739 unsigned long ex_kusage; 18740 unsigned long ex_xkusage; 18741 unsigned long ex_nscert; 18742 ASN1_OCTET_STRING *skid; 18743 AUTHORITY_KEYID *akid; 18744 X509_POLICY_CACHE *policy_cache; 18745 struct stack_st_DIST_POINT *crldp; 18746 struct stack_st_GENERAL_NAME *altname; 18747 NAME_CONSTRAINTS *nc; 18748 18749 18750 18751 18752 18753 unsigned char sha1_hash[20]; 18754 18755 X509_CERT_AUX *aux; 18756 } /* X509 */ ; 18757 18758 struct stack_st_X509 { _STACK stack; }; 18759 18760 18761 /* This is used for a table of trust checking functions */ 18762 18763 typedef struct x509_trust_st { 18764 int trust; 18765 int flags; 18766 int (*check_trust) (struct x509_trust_st *, X509 *, int); 18767 char *name; 18768 int arg1; 18769 void *arg2; 18770 } X509_TRUST; 18771 18772 struct stack_st_X509_TRUST { _STACK stack; }; 18773 18774 typedef struct x509_cert_pair_st { 18775 X509 *forward; 18776 X509 *reverse; 18777 } X509_CERT_PAIR; 18778 18779 /* standard trust ids */ 18780 # 335 "/usr/include/openssl/x509.h" 3 4 18781 /* Keep these up to date! */ 18782 18783 18784 18785 /* trust_flags values */ 18786 18787 18788 18789 /* check_trust return codes */ 18790 18791 18792 18793 18794 18795 /* Flags for X509_print_ex() */ 18796 # 366 "/usr/include/openssl/x509.h" 3 4 18797 /* Flags specific to X509_NAME_print_ex() */ 18798 18799 /* The field separator information */ 18800 # 381 "/usr/include/openssl/x509.h" 3 4 18801 /* How the field name is shown */ 18802 # 392 "/usr/include/openssl/x509.h" 3 4 18803 /* 18804 * This determines if we dump fields we don't recognise: RFC2253 requires 18805 * this. 18806 */ 18807 18808 18809 18810 18811 18812 18813 /* Complete set of RFC2253 flags */ 18814 18815 18816 18817 18818 18819 18820 18821 /* readable oneline form */ 18822 18823 18824 18825 18826 18827 18828 18829 /* readable multiline form */ 18830 # 427 "/usr/include/openssl/x509.h" 3 4 18831 struct x509_revoked_st { 18832 ASN1_INTEGER *serialNumber; 18833 ASN1_TIME *revocationDate; 18834 struct stack_st_X509_EXTENSION /* optional */ *extensions; 18835 /* Set up if indirect CRL */ 18836 struct stack_st_GENERAL_NAME *issuer; 18837 /* Revocation reason */ 18838 int reason; 18839 int sequence; /* load sequence */ 18840 }; 18841 18842 struct stack_st_X509_REVOKED { _STACK stack; }; 18843 18844 18845 typedef struct X509_crl_info_st { 18846 ASN1_INTEGER *version; 18847 X509_ALGOR *sig_alg; 18848 X509_NAME *issuer; 18849 ASN1_TIME *lastUpdate; 18850 ASN1_TIME *nextUpdate; 18851 struct stack_st_X509_REVOKED *revoked; 18852 struct stack_st_X509_EXTENSION /* [0] */ *extensions; 18853 ASN1_ENCODING enc; 18854 } X509_CRL_INFO; 18855 18856 struct X509_crl_st { 18857 /* actual signature */ 18858 X509_CRL_INFO *crl; 18859 X509_ALGOR *sig_alg; 18860 ASN1_BIT_STRING *signature; 18861 int references; 18862 int flags; 18863 /* Copies of various extensions */ 18864 AUTHORITY_KEYID *akid; 18865 ISSUING_DIST_POINT *idp; 18866 /* Convenient breakdown of IDP */ 18867 int idp_flags; 18868 int idp_reasons; 18869 /* CRL and base CRL numbers for delta processing */ 18870 ASN1_INTEGER *crl_number; 18871 ASN1_INTEGER *base_crl_number; 18872 18873 unsigned char sha1_hash[20]; 18874 18875 struct stack_st_GENERAL_NAMES *issuers; 18876 const X509_CRL_METHOD *meth; 18877 void *meth_data; 18878 } /* X509_CRL */ ; 18879 18880 struct stack_st_X509_CRL { _STACK stack; }; 18881 18882 18883 typedef struct private_key_st { 18884 int version; 18885 /* The PKCS#8 data types */ 18886 X509_ALGOR *enc_algor; 18887 ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ 18888 /* When decrypted, the following will not be NULL */ 18889 EVP_PKEY *dec_pkey; 18890 /* used to encrypt and decrypt */ 18891 int key_length; 18892 char *key_data; 18893 int key_free; /* true if we should auto free key_data */ 18894 /* expanded version of 'enc_algor' */ 18895 EVP_CIPHER_INFO cipher; 18896 int references; 18897 } X509_PKEY; 18898 18899 18900 typedef struct X509_info_st { 18901 X509 *x509; 18902 X509_CRL *crl; 18903 X509_PKEY *x_pkey; 18904 EVP_CIPHER_INFO enc_cipher; 18905 int enc_len; 18906 char *enc_data; 18907 int references; 18908 } X509_INFO; 18909 18910 struct stack_st_X509_INFO { _STACK stack; }; 18911 18912 18913 /* 18914 * The next 2 structures and their 8 routines were sent to me by Pat Richard 18915 * <patr@x509.com> and are used to manipulate Netscapes spki structures - 18916 * useful if you are writing a CA web page 18917 */ 18918 typedef struct Netscape_spkac_st { 18919 X509_PUBKEY *pubkey; 18920 ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ 18921 } NETSCAPE_SPKAC; 18922 18923 typedef struct Netscape_spki_st { 18924 NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ 18925 X509_ALGOR *sig_algor; 18926 ASN1_BIT_STRING *signature; 18927 } NETSCAPE_SPKI; 18928 18929 /* Netscape certificate sequence structure */ 18930 typedef struct Netscape_certificate_sequence { 18931 ASN1_OBJECT *type; 18932 struct stack_st_X509 *certs; 18933 } NETSCAPE_CERT_SEQUENCE; 18934 18935 /*- Unused (and iv length is wrong) 18936 typedef struct CBCParameter_st 18937 { 18938 unsigned char iv[8]; 18939 } CBC_PARAM; 18940 */ 18941 18942 /* Password based encryption structure */ 18943 18944 typedef struct PBEPARAM_st { 18945 ASN1_OCTET_STRING *salt; 18946 ASN1_INTEGER *iter; 18947 } PBEPARAM; 18948 18949 /* Password based encryption V2 structures */ 18950 18951 typedef struct PBE2PARAM_st { 18952 X509_ALGOR *keyfunc; 18953 X509_ALGOR *encryption; 18954 } PBE2PARAM; 18955 18956 typedef struct PBKDF2PARAM_st { 18957 /* Usually OCTET STRING but could be anything */ 18958 ASN1_TYPE *salt; 18959 ASN1_INTEGER *iter; 18960 ASN1_INTEGER *keylength; 18961 X509_ALGOR *prf; 18962 } PBKDF2PARAM; 18963 18964 /* PKCS#8 private key info structure */ 18965 18966 struct pkcs8_priv_key_info_st { 18967 /* Flag for various broken formats */ 18968 int broken; 18969 18970 18971 18972 18973 18974 ASN1_INTEGER *version; 18975 X509_ALGOR *pkeyalg; 18976 /* Should be OCTET STRING but some are broken */ 18977 ASN1_TYPE *pkey; 18978 struct stack_st_X509_ATTRIBUTE *attributes; 18979 }; 18980 18981 18982 18983 18984 18985 # 1 "/usr/include/openssl/x509_vfy.h" 1 3 4 18986 /* crypto/x509/x509_vfy.h */ 18987 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18988 * All rights reserved. 18989 * 18990 * This package is an SSL implementation written 18991 * by Eric Young (eay@cryptsoft.com). 18992 * The implementation was written so as to conform with Netscapes SSL. 18993 * 18994 * This library is free for commercial and non-commercial use as long as 18995 * the following conditions are aheared to. The following conditions 18996 * apply to all code found in this distribution, be it the RC4, RSA, 18997 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18998 * included with this distribution is covered by the same copyright terms 18999 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19000 * 19001 * Copyright remains Eric Young's, and as such any Copyright notices in 19002 * the code are not to be removed. 19003 * If this package is used in a product, Eric Young should be given attribution 19004 * as the author of the parts of the library used. 19005 * This can be in the form of a textual message at program startup or 19006 * in documentation (online or textual) provided with the package. 19007 * 19008 * Redistribution and use in source and binary forms, with or without 19009 * modification, are permitted provided that the following conditions 19010 * are met: 19011 * 1. Redistributions of source code must retain the copyright 19012 * notice, this list of conditions and the following disclaimer. 19013 * 2. Redistributions in binary form must reproduce the above copyright 19014 * notice, this list of conditions and the following disclaimer in the 19015 * documentation and/or other materials provided with the distribution. 19016 * 3. All advertising materials mentioning features or use of this software 19017 * must display the following acknowledgement: 19018 * "This product includes cryptographic software written by 19019 * Eric Young (eay@cryptsoft.com)" 19020 * The word 'cryptographic' can be left out if the rouines from the library 19021 * being used are not cryptographic related :-). 19022 * 4. If you include any Windows specific code (or a derivative thereof) from 19023 * the apps directory (application code) you must include an acknowledgement: 19024 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19025 * 19026 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19027 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19028 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19029 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19030 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19031 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19032 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19033 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19034 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19035 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19036 * SUCH DAMAGE. 19037 * 19038 * The licence and distribution terms for any publically available version or 19039 * derivative of this code cannot be changed. i.e. this code cannot simply be 19040 * copied and put under another distribution licence 19041 * [including the GNU Public Licence.] 19042 */ 19043 # 70 "/usr/include/openssl/x509_vfy.h" 3 4 19044 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 19045 /* opensslconf.h */ 19046 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 19047 19048 19049 19050 19051 /* OpenSSL was configured with the following options: */ 19052 # 108 "/usr/include/openssl/opensslconf.h" 3 4 19053 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 19054 asks for it. This is a transient feature that is provided for those 19055 who haven't had the time to do the appropriate changes in their 19056 applications. */ 19057 # 204 "/usr/include/openssl/opensslconf.h" 3 4 19058 /* crypto/opensslconf.h.in */ 19059 19060 /* Generate 80386 code? */ 19061 # 71 "/usr/include/openssl/x509_vfy.h" 2 3 4 19062 19063 # 1 "/usr/include/openssl/lhash.h" 1 3 4 19064 /* crypto/lhash/lhash.h */ 19065 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19066 * All rights reserved. 19067 * 19068 * This package is an SSL implementation written 19069 * by Eric Young (eay@cryptsoft.com). 19070 * The implementation was written so as to conform with Netscapes SSL. 19071 * 19072 * This library is free for commercial and non-commercial use as long as 19073 * the following conditions are aheared to. The following conditions 19074 * apply to all code found in this distribution, be it the RC4, RSA, 19075 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19076 * included with this distribution is covered by the same copyright terms 19077 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19078 * 19079 * Copyright remains Eric Young's, and as such any Copyright notices in 19080 * the code are not to be removed. 19081 * If this package is used in a product, Eric Young should be given attribution 19082 * as the author of the parts of the library used. 19083 * This can be in the form of a textual message at program startup or 19084 * in documentation (online or textual) provided with the package. 19085 * 19086 * Redistribution and use in source and binary forms, with or without 19087 * modification, are permitted provided that the following conditions 19088 * are met: 19089 * 1. Redistributions of source code must retain the copyright 19090 * notice, this list of conditions and the following disclaimer. 19091 * 2. Redistributions in binary form must reproduce the above copyright 19092 * notice, this list of conditions and the following disclaimer in the 19093 * documentation and/or other materials provided with the distribution. 19094 * 3. All advertising materials mentioning features or use of this software 19095 * must display the following acknowledgement: 19096 * "This product includes cryptographic software written by 19097 * Eric Young (eay@cryptsoft.com)" 19098 * The word 'cryptographic' can be left out if the rouines from the library 19099 * being used are not cryptographic related :-). 19100 * 4. If you include any Windows specific code (or a derivative thereof) from 19101 * the apps directory (application code) you must include an acknowledgement: 19102 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19103 * 19104 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19105 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19106 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19107 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19108 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19109 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19110 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19111 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19112 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19113 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19114 * SUCH DAMAGE. 19115 * 19116 * The licence and distribution terms for any publically available version or 19117 * derivative of this code cannot be changed. i.e. this code cannot simply be 19118 * copied and put under another distribution licence 19119 * [including the GNU Public Licence.] 19120 */ 19121 19122 /* 19123 * Header for dynamic hash table routines Author - Eric Young 19124 */ 19125 19126 19127 19128 19129 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 19130 /* e_os2.h */ 19131 /* ==================================================================== 19132 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 19133 * 19134 * Redistribution and use in source and binary forms, with or without 19135 * modification, are permitted provided that the following conditions 19136 * are met: 19137 * 19138 * 1. Redistributions of source code must retain the above copyright 19139 * notice, this list of conditions and the following disclaimer. 19140 * 19141 * 2. Redistributions in binary form must reproduce the above copyright 19142 * notice, this list of conditions and the following disclaimer in 19143 * the documentation and/or other materials provided with the 19144 * distribution. 19145 * 19146 * 3. All advertising materials mentioning features or use of this 19147 * software must display the following acknowledgment: 19148 * "This product includes software developed by the OpenSSL Project 19149 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19150 * 19151 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19152 * endorse or promote products derived from this software without 19153 * prior written permission. For written permission, please contact 19154 * openssl-core@openssl.org. 19155 * 19156 * 5. Products derived from this software may not be called "OpenSSL" 19157 * nor may "OpenSSL" appear in their names without prior written 19158 * permission of the OpenSSL Project. 19159 * 19160 * 6. Redistributions of any form whatsoever must retain the following 19161 * acknowledgment: 19162 * "This product includes software developed by the OpenSSL Project 19163 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19164 * 19165 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19166 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19167 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19168 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19169 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19170 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19171 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19172 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19173 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19174 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19175 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19176 * OF THE POSSIBILITY OF SUCH DAMAGE. 19177 * ==================================================================== 19178 * 19179 * This product includes cryptographic software written by Eric Young 19180 * (eay@cryptsoft.com). This product includes software written by Tim 19181 * Hudson (tjh@cryptsoft.com). 19182 * 19183 */ 19184 19185 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 19186 /* opensslconf.h */ 19187 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 19188 19189 19190 19191 19192 /* OpenSSL was configured with the following options: */ 19193 # 108 "/usr/include/openssl/opensslconf.h" 3 4 19194 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 19195 asks for it. This is a transient feature that is provided for those 19196 who haven't had the time to do the appropriate changes in their 19197 applications. */ 19198 # 204 "/usr/include/openssl/opensslconf.h" 3 4 19199 /* crypto/opensslconf.h.in */ 19200 19201 /* Generate 80386 code? */ 19202 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 19203 # 67 "/usr/include/openssl/lhash.h" 2 3 4 19204 19205 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 19206 /* 19207 * CDDL HEADER START 19208 * 19209 * The contents of this file are subject to the terms of the 19210 * Common Development and Distribution License (the "License"). 19211 * You may not use this file except in compliance with the License. 19212 * 19213 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 19214 * or http://www.opensolaris.org/os/licensing. 19215 * See the License for the specific language governing permissions 19216 * and limitations under the License. 19217 * 19218 * When distributing Covered Code, include this CDDL HEADER in each 19219 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19220 * If applicable, add the following below this CDDL HEADER, with the 19221 * fields enclosed by brackets "[]" replaced with your own identifying 19222 * information: Portions Copyright [yyyy] [name of copyright owner] 19223 * 19224 * CDDL HEADER END 19225 */ 19226 19227 /* 19228 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 19229 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 19230 */ 19231 19232 /* Copyright (c) 1988 AT&T */ 19233 /* All Rights Reserved */ 19234 19235 /* 19236 * User-visible pieces of the ANSI C standard I/O package. 19237 */ 19238 # 69 "/usr/include/openssl/lhash.h" 2 3 4 19239 19240 19241 19242 # 1 "/usr/include/openssl/bio.h" 1 3 4 19243 /* crypto/bio/bio.h */ 19244 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19245 * All rights reserved. 19246 * 19247 * This package is an SSL implementation written 19248 * by Eric Young (eay@cryptsoft.com). 19249 * The implementation was written so as to conform with Netscapes SSL. 19250 * 19251 * This library is free for commercial and non-commercial use as long as 19252 * the following conditions are aheared to. The following conditions 19253 * apply to all code found in this distribution, be it the RC4, RSA, 19254 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19255 * included with this distribution is covered by the same copyright terms 19256 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19257 * 19258 * Copyright remains Eric Young's, and as such any Copyright notices in 19259 * the code are not to be removed. 19260 * If this package is used in a product, Eric Young should be given attribution 19261 * as the author of the parts of the library used. 19262 * This can be in the form of a textual message at program startup or 19263 * in documentation (online or textual) provided with the package. 19264 * 19265 * Redistribution and use in source and binary forms, with or without 19266 * modification, are permitted provided that the following conditions 19267 * are met: 19268 * 1. Redistributions of source code must retain the copyright 19269 * notice, this list of conditions and the following disclaimer. 19270 * 2. Redistributions in binary form must reproduce the above copyright 19271 * notice, this list of conditions and the following disclaimer in the 19272 * documentation and/or other materials provided with the distribution. 19273 * 3. All advertising materials mentioning features or use of this software 19274 * must display the following acknowledgement: 19275 * "This product includes cryptographic software written by 19276 * Eric Young (eay@cryptsoft.com)" 19277 * The word 'cryptographic' can be left out if the rouines from the library 19278 * being used are not cryptographic related :-). 19279 * 4. If you include any Windows specific code (or a derivative thereof) from 19280 * the apps directory (application code) you must include an acknowledgement: 19281 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19282 * 19283 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19284 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19285 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19286 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19287 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19288 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19289 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19290 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19291 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19292 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19293 * SUCH DAMAGE. 19294 * 19295 * The licence and distribution terms for any publically available version or 19296 * derivative of this code cannot be changed. i.e. this code cannot simply be 19297 * copied and put under another distribution licence 19298 * [including the GNU Public Licence.] 19299 */ 19300 # 73 "/usr/include/openssl/lhash.h" 2 3 4 19301 19302 19303 19304 19305 19306 19307 typedef struct lhash_node_st { 19308 void *data; 19309 struct lhash_node_st *next; 19310 19311 unsigned long hash; 19312 19313 } LHASH_NODE; 19314 19315 typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *); 19316 typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *); 19317 typedef void (*LHASH_DOALL_FN_TYPE) (void *); 19318 typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); 19319 19320 /* 19321 * Macros for declaring and implementing type-safe wrappers for LHASH 19322 * callbacks. This way, callbacks can be provided to LHASH structures without 19323 * function pointer casting and the macro-defined callbacks provide 19324 * per-variable casting before deferring to the underlying type-specific 19325 * callbacks. NB: It is possible to place a "static" in front of both the 19326 * DECLARE and IMPLEMENT macros if the functions are strictly internal. 19327 */ 19328 19329 /* First: "hash" functions */ 19330 # 110 "/usr/include/openssl/lhash.h" 3 4 19331 /* Second: "compare" functions */ 19332 # 120 "/usr/include/openssl/lhash.h" 3 4 19333 /* Third: "doall" functions */ 19334 # 129 "/usr/include/openssl/lhash.h" 3 4 19335 /* Fourth: "doall_arg" functions */ 19336 # 139 "/usr/include/openssl/lhash.h" 3 4 19337 typedef struct lhash_st { 19338 LHASH_NODE **b; 19339 LHASH_COMP_FN_TYPE comp; 19340 LHASH_HASH_FN_TYPE hash; 19341 unsigned int num_nodes; 19342 unsigned int num_alloc_nodes; 19343 unsigned int p; 19344 unsigned int pmax; 19345 unsigned long up_load; /* load times 256 */ 19346 unsigned long down_load; /* load times 256 */ 19347 unsigned long num_items; 19348 unsigned long num_expands; 19349 unsigned long num_expand_reallocs; 19350 unsigned long num_contracts; 19351 unsigned long num_contract_reallocs; 19352 unsigned long num_hash_calls; 19353 unsigned long num_comp_calls; 19354 unsigned long num_insert; 19355 unsigned long num_replace; 19356 unsigned long num_delete; 19357 unsigned long num_no_delete; 19358 unsigned long num_retrieve; 19359 unsigned long num_retrieve_miss; 19360 unsigned long num_hash_comps; 19361 int error; 19362 } _LHASH; /* Do not use _LHASH directly, use LHASH_OF 19363 * and friends */ 19364 19365 19366 19367 /* 19368 * Indicates a malloc() error in the last call, this is only bad in 19369 * lh_insert(). 19370 */ 19371 19372 19373 _LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); 19374 void lh_free(_LHASH *lh); 19375 void *lh_insert(_LHASH *lh, void *data); 19376 void *lh_delete(_LHASH *lh, const void *data); 19377 void *lh_retrieve(_LHASH *lh, const void *data); 19378 void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); 19379 void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); 19380 unsigned long lh_strhash(const char *c); 19381 unsigned long lh_num_items(const _LHASH *lh); 19382 19383 19384 void lh_stats(const _LHASH *lh, FILE *out); 19385 void lh_node_stats(const _LHASH *lh, FILE *out); 19386 void lh_node_usage_stats(const _LHASH *lh, FILE *out); 19387 19388 19389 19390 void lh_stats_bio(const _LHASH *lh, BIO *out); 19391 void lh_node_stats_bio(const _LHASH *lh, BIO *out); 19392 void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); 19393 19394 19395 /* Type checking... */ 19396 # 206 "/usr/include/openssl/lhash.h" 3 4 19397 /* Define wrapper functions. */ 19398 # 233 "/usr/include/openssl/lhash.h" 3 4 19399 struct lhash_st_OPENSSL_STRING { int dummy; }; 19400 struct lhash_st_OPENSSL_CSTRING { int dummy; }; 19401 # 73 "/usr/include/openssl/x509_vfy.h" 2 3 4 19402 19403 # 1 "/usr/include/openssl/bio.h" 1 3 4 19404 /* crypto/bio/bio.h */ 19405 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19406 * All rights reserved. 19407 * 19408 * This package is an SSL implementation written 19409 * by Eric Young (eay@cryptsoft.com). 19410 * The implementation was written so as to conform with Netscapes SSL. 19411 * 19412 * This library is free for commercial and non-commercial use as long as 19413 * the following conditions are aheared to. The following conditions 19414 * apply to all code found in this distribution, be it the RC4, RSA, 19415 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19416 * included with this distribution is covered by the same copyright terms 19417 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19418 * 19419 * Copyright remains Eric Young's, and as such any Copyright notices in 19420 * the code are not to be removed. 19421 * If this package is used in a product, Eric Young should be given attribution 19422 * as the author of the parts of the library used. 19423 * This can be in the form of a textual message at program startup or 19424 * in documentation (online or textual) provided with the package. 19425 * 19426 * Redistribution and use in source and binary forms, with or without 19427 * modification, are permitted provided that the following conditions 19428 * are met: 19429 * 1. Redistributions of source code must retain the copyright 19430 * notice, this list of conditions and the following disclaimer. 19431 * 2. Redistributions in binary form must reproduce the above copyright 19432 * notice, this list of conditions and the following disclaimer in the 19433 * documentation and/or other materials provided with the distribution. 19434 * 3. All advertising materials mentioning features or use of this software 19435 * must display the following acknowledgement: 19436 * "This product includes cryptographic software written by 19437 * Eric Young (eay@cryptsoft.com)" 19438 * The word 'cryptographic' can be left out if the rouines from the library 19439 * being used are not cryptographic related :-). 19440 * 4. If you include any Windows specific code (or a derivative thereof) from 19441 * the apps directory (application code) you must include an acknowledgement: 19442 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19443 * 19444 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19445 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19446 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19447 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19448 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19449 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19450 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19451 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19452 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19453 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19454 * SUCH DAMAGE. 19455 * 19456 * The licence and distribution terms for any publically available version or 19457 * derivative of this code cannot be changed. i.e. this code cannot simply be 19458 * copied and put under another distribution licence 19459 * [including the GNU Public Licence.] 19460 */ 19461 # 75 "/usr/include/openssl/x509_vfy.h" 2 3 4 19462 # 1 "/usr/include/openssl/crypto.h" 1 3 4 19463 /* crypto/crypto.h */ 19464 /* ==================================================================== 19465 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 19466 * 19467 * Redistribution and use in source and binary forms, with or without 19468 * modification, are permitted provided that the following conditions 19469 * are met: 19470 * 19471 * 1. Redistributions of source code must retain the above copyright 19472 * notice, this list of conditions and the following disclaimer. 19473 * 19474 * 2. Redistributions in binary form must reproduce the above copyright 19475 * notice, this list of conditions and the following disclaimer in 19476 * the documentation and/or other materials provided with the 19477 * distribution. 19478 * 19479 * 3. All advertising materials mentioning features or use of this 19480 * software must display the following acknowledgment: 19481 * "This product includes software developed by the OpenSSL Project 19482 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19483 * 19484 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19485 * endorse or promote products derived from this software without 19486 * prior written permission. For written permission, please contact 19487 * openssl-core@openssl.org. 19488 * 19489 * 5. Products derived from this software may not be called "OpenSSL" 19490 * nor may "OpenSSL" appear in their names without prior written 19491 * permission of the OpenSSL Project. 19492 * 19493 * 6. Redistributions of any form whatsoever must retain the following 19494 * acknowledgment: 19495 * "This product includes software developed by the OpenSSL Project 19496 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19497 * 19498 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19499 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19500 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19501 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19502 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19503 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19504 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19505 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19506 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19507 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19508 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19509 * OF THE POSSIBILITY OF SUCH DAMAGE. 19510 * ==================================================================== 19511 * 19512 * This product includes cryptographic software written by Eric Young 19513 * (eay@cryptsoft.com). This product includes software written by Tim 19514 * Hudson (tjh@cryptsoft.com). 19515 * 19516 */ 19517 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19518 * All rights reserved. 19519 * 19520 * This package is an SSL implementation written 19521 * by Eric Young (eay@cryptsoft.com). 19522 * The implementation was written so as to conform with Netscapes SSL. 19523 * 19524 * This library is free for commercial and non-commercial use as long as 19525 * the following conditions are aheared to. The following conditions 19526 * apply to all code found in this distribution, be it the RC4, RSA, 19527 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19528 * included with this distribution is covered by the same copyright terms 19529 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19530 * 19531 * Copyright remains Eric Young's, and as such any Copyright notices in 19532 * the code are not to be removed. 19533 * If this package is used in a product, Eric Young should be given attribution 19534 * as the author of the parts of the library used. 19535 * This can be in the form of a textual message at program startup or 19536 * in documentation (online or textual) provided with the package. 19537 * 19538 * Redistribution and use in source and binary forms, with or without 19539 * modification, are permitted provided that the following conditions 19540 * are met: 19541 * 1. Redistributions of source code must retain the copyright 19542 * notice, this list of conditions and the following disclaimer. 19543 * 2. Redistributions in binary form must reproduce the above copyright 19544 * notice, this list of conditions and the following disclaimer in the 19545 * documentation and/or other materials provided with the distribution. 19546 * 3. All advertising materials mentioning features or use of this software 19547 * must display the following acknowledgement: 19548 * "This product includes cryptographic software written by 19549 * Eric Young (eay@cryptsoft.com)" 19550 * The word 'cryptographic' can be left out if the rouines from the library 19551 * being used are not cryptographic related :-). 19552 * 4. If you include any Windows specific code (or a derivative thereof) from 19553 * the apps directory (application code) you must include an acknowledgement: 19554 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19555 * 19556 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19557 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19558 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19559 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19560 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19561 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19562 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19563 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19564 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19565 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19566 * SUCH DAMAGE. 19567 * 19568 * The licence and distribution terms for any publically available version or 19569 * derivative of this code cannot be changed. i.e. this code cannot simply be 19570 * copied and put under another distribution licence 19571 * [including the GNU Public Licence.] 19572 */ 19573 /* ==================================================================== 19574 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 19575 * ECDH support in OpenSSL originally developed by 19576 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 19577 */ 19578 # 76 "/usr/include/openssl/x509_vfy.h" 2 3 4 19579 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 19580 /* ==================================================================== 19581 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 19582 * 19583 * Redistribution and use in source and binary forms, with or without 19584 * modification, are permitted provided that the following conditions 19585 * are met: 19586 * 19587 * 1. Redistributions of source code must retain the above copyright 19588 * notice, this list of conditions and the following disclaimer. 19589 * 19590 * 2. Redistributions in binary form must reproduce the above copyright 19591 * notice, this list of conditions and the following disclaimer in 19592 * the documentation and/or other materials provided with the 19593 * distribution. 19594 * 19595 * 3. All advertising materials mentioning features or use of this 19596 * software must display the following acknowledgment: 19597 * "This product includes software developed by the OpenSSL Project 19598 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19599 * 19600 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19601 * endorse or promote products derived from this software without 19602 * prior written permission. For written permission, please contact 19603 * openssl-core@openssl.org. 19604 * 19605 * 5. Products derived from this software may not be called "OpenSSL" 19606 * nor may "OpenSSL" appear in their names without prior written 19607 * permission of the OpenSSL Project. 19608 * 19609 * 6. Redistributions of any form whatsoever must retain the following 19610 * acknowledgment: 19611 * "This product includes software developed by the OpenSSL Project 19612 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19613 * 19614 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19615 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19616 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19617 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19618 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19619 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19620 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19621 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19622 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19623 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19624 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19625 * OF THE POSSIBILITY OF SUCH DAMAGE. 19626 * ==================================================================== 19627 * 19628 * This product includes cryptographic software written by Eric Young 19629 * (eay@cryptsoft.com). This product includes software written by Tim 19630 * Hudson (tjh@cryptsoft.com). 19631 * 19632 */ 19633 # 77 "/usr/include/openssl/x509_vfy.h" 2 3 4 19634 # 92 "/usr/include/openssl/x509_vfy.h" 3 4 19635 typedef struct x509_file_st { 19636 int num_paths; /* number of paths to files or directories */ 19637 int num_alloced; 19638 char **paths; /* the list of paths or directories */ 19639 int *path_type; 19640 } X509_CERT_FILE_CTX; 19641 19642 /*******************************/ 19643 /*- 19644 SSL_CTX -> X509_STORE 19645 -> X509_LOOKUP 19646 ->X509_LOOKUP_METHOD 19647 -> X509_LOOKUP 19648 ->X509_LOOKUP_METHOD 19649 19650 SSL -> X509_STORE_CTX 19651 ->X509_STORE 19652 19653 The X509_STORE holds the tables etc for verification stuff. 19654 A X509_STORE_CTX is used while validating a single certificate. 19655 The X509_STORE has X509_LOOKUPs for looking up certs. 19656 The X509_STORE then calls a function to actually verify the 19657 certificate chain. 19658 */ 19659 19660 19661 19662 19663 19664 19665 19666 typedef struct x509_object_st { 19667 /* one of the above types */ 19668 int type; 19669 union { 19670 char *ptr; 19671 X509 *x509; 19672 X509_CRL *crl; 19673 EVP_PKEY *pkey; 19674 } data; 19675 } X509_OBJECT; 19676 19677 typedef struct x509_lookup_st X509_LOOKUP; 19678 19679 struct stack_st_X509_LOOKUP { _STACK stack; }; 19680 struct stack_st_X509_OBJECT { _STACK stack; }; 19681 19682 /* This is a static that defines the function interface */ 19683 typedef struct x509_lookup_method_st { 19684 const char *name; 19685 int (*new_item) (X509_LOOKUP *ctx); 19686 void (*free) (X509_LOOKUP *ctx); 19687 int (*init) (X509_LOOKUP *ctx); 19688 int (*shutdown) (X509_LOOKUP *ctx); 19689 int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl, 19690 char **ret); 19691 int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name, 19692 X509_OBJECT *ret); 19693 int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name, 19694 ASN1_INTEGER *serial, X509_OBJECT *ret); 19695 int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type, 19696 unsigned char *bytes, int len, 19697 X509_OBJECT *ret); 19698 int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len, 19699 X509_OBJECT *ret); 19700 } X509_LOOKUP_METHOD; 19701 19702 typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; 19703 19704 /* 19705 * This structure hold all parameters associated with a verify operation by 19706 * including an X509_VERIFY_PARAM structure in related structures the 19707 * parameters used can be customized 19708 */ 19709 19710 typedef struct X509_VERIFY_PARAM_st { 19711 char *name; 19712 time_t check_time; /* Time to use */ 19713 unsigned long inh_flags; /* Inheritance flags */ 19714 unsigned long flags; /* Various verify flags */ 19715 int purpose; /* purpose to check untrusted certificates */ 19716 int trust; /* trust setting to check */ 19717 int depth; /* Verify depth */ 19718 struct stack_st_ASN1_OBJECT *policies; /* Permissible policies */ 19719 X509_VERIFY_PARAM_ID *id; /* opaque ID data */ 19720 } X509_VERIFY_PARAM; 19721 19722 struct stack_st_X509_VERIFY_PARAM { _STACK stack; }; 19723 19724 /* 19725 * This is used to hold everything. It is used for all certificate 19726 * validation. Once we have a certificate chain, the 'verify' function is 19727 * then called to actually check the cert chain. 19728 */ 19729 struct x509_store_st { 19730 /* The following is a cache of trusted certs */ 19731 int cache; /* if true, stash any hits */ 19732 struct stack_st_X509_OBJECT *objs; /* Cache of all objects */ 19733 /* These are external lookup methods */ 19734 struct stack_st_X509_LOOKUP *get_cert_methods; 19735 X509_VERIFY_PARAM *param; 19736 /* Callbacks for various operations */ 19737 /* called to verify a certificate */ 19738 int (*verify) (X509_STORE_CTX *ctx); 19739 /* error callback */ 19740 int (*verify_cb) (int ok, X509_STORE_CTX *ctx); 19741 /* get issuers cert from ctx */ 19742 int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 19743 /* check issued */ 19744 int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); 19745 /* Check revocation status of chain */ 19746 int (*check_revocation) (X509_STORE_CTX *ctx); 19747 /* retrieve CRL */ 19748 int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); 19749 /* Check CRL validity */ 19750 int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); 19751 /* Check certificate against CRL */ 19752 int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); 19753 struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); 19754 struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); 19755 int (*cleanup) (X509_STORE_CTX *ctx); 19756 CRYPTO_EX_DATA ex_data; 19757 int references; 19758 } /* X509_STORE */ ; 19759 19760 int X509_STORE_set_depth(X509_STORE *store, int depth); 19761 19762 19763 19764 19765 /* This is the functions plus an instance of the local variables. */ 19766 struct x509_lookup_st { 19767 int init; /* have we been started */ 19768 int skip; /* don't use us. */ 19769 X509_LOOKUP_METHOD *method; /* the functions */ 19770 char *method_data; /* method data */ 19771 X509_STORE *store_ctx; /* who owns us */ 19772 } /* X509_LOOKUP */ ; 19773 19774 /* 19775 * This is a used when verifying cert chains. Since the gathering of the 19776 * cert chain can take some time (and have to be 'retried', this needs to be 19777 * kept and passed around. 19778 */ 19779 struct x509_store_ctx_st { /* X509_STORE_CTX */ 19780 X509_STORE *ctx; 19781 /* used when looking up certs */ 19782 int current_method; 19783 /* The following are set by the caller */ 19784 /* The cert to check */ 19785 X509 *cert; 19786 /* chain of X509s - untrusted - passed in */ 19787 struct stack_st_X509 *untrusted; 19788 /* set of CRLs passed in */ 19789 struct stack_st_X509_CRL *crls; 19790 X509_VERIFY_PARAM *param; 19791 /* Other info for use with get_issuer() */ 19792 void *other_ctx; 19793 /* Callbacks for various operations */ 19794 /* called to verify a certificate */ 19795 int (*verify) (X509_STORE_CTX *ctx); 19796 /* error callback */ 19797 int (*verify_cb) (int ok, X509_STORE_CTX *ctx); 19798 /* get issuers cert from ctx */ 19799 int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 19800 /* check issued */ 19801 int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); 19802 /* Check revocation status of chain */ 19803 int (*check_revocation) (X509_STORE_CTX *ctx); 19804 /* retrieve CRL */ 19805 int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); 19806 /* Check CRL validity */ 19807 int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); 19808 /* Check certificate against CRL */ 19809 int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); 19810 int (*check_policy) (X509_STORE_CTX *ctx); 19811 struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); 19812 struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); 19813 int (*cleanup) (X509_STORE_CTX *ctx); 19814 /* The following is built up */ 19815 /* if 0, rebuild chain */ 19816 int valid; 19817 /* index of last untrusted cert */ 19818 int last_untrusted; 19819 /* chain of X509s - built up and trusted */ 19820 struct stack_st_X509 *chain; 19821 /* Valid policy tree */ 19822 X509_POLICY_TREE *tree; 19823 /* Require explicit policy value */ 19824 int explicit_policy; 19825 /* When something goes wrong, this is why */ 19826 int error_depth; 19827 int error; 19828 X509 *current_cert; 19829 /* cert currently being tested as valid issuer */ 19830 X509 *current_issuer; 19831 /* current CRL */ 19832 X509_CRL *current_crl; 19833 /* score of current CRL */ 19834 int current_crl_score; 19835 /* Reason mask */ 19836 unsigned int current_reasons; 19837 /* For CRL path validation: parent context */ 19838 X509_STORE_CTX *parent; 19839 CRYPTO_EX_DATA ex_data; 19840 } /* X509_STORE_CTX */ ; 19841 19842 void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); 19843 # 345 "/usr/include/openssl/x509_vfy.h" 3 4 19844 /* These are 'informational' when looking for issuer cert */ 19845 # 377 "/usr/include/openssl/x509_vfy.h" 3 4 19846 /* Suite B mode algorithm violation */ 19847 19848 19849 19850 19851 19852 19853 19854 /* Host, email and IP check errors */ 19855 19856 19857 19858 19859 /* Caller error */ 19860 19861 /* Issuer lookup error */ 19862 19863 19864 19865 19866 /* Certificate verify flags */ 19867 19868 /* Send issuer+subject checks to verify_cb */ 19869 19870 /* Use check time instead of current time */ 19871 19872 /* Lookup CRLs */ 19873 19874 /* Lookup CRLs for whole chain */ 19875 19876 /* Ignore unhandled critical extensions */ 19877 19878 /* Disable workarounds for broken certificates */ 19879 19880 /* Enable proxy certificate validation */ 19881 19882 /* Enable policy checking */ 19883 19884 /* Policy variable require-explicit-policy */ 19885 19886 /* Policy variable inhibit-any-policy */ 19887 19888 /* Policy variable inhibit-policy-mapping */ 19889 19890 /* Notify callback that policy is OK */ 19891 19892 /* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ 19893 19894 /* Delta CRL support */ 19895 19896 /* Check selfsigned CA signature */ 19897 19898 /* Use trusted store first */ 19899 19900 /* Suite B 128 bit only mode: not normally used */ 19901 19902 /* Suite B 192 bit only mode */ 19903 19904 /* Suite B 128 bit mode allowing 192 bit algorithms */ 19905 19906 19907 /* Allow partial chains if at least one certificate is in trusted store */ 19908 19909 /* 19910 * If the initial chain is not trusted, do not attempt to build an alternative 19911 * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag 19912 * will force the behaviour to match that of previous versions. 19913 */ 19914 # 453 "/usr/include/openssl/x509_vfy.h" 3 4 19915 /* Internal use: mask of policy related options */ 19916 19917 19918 19919 19920 19921 int X509_OBJECT_idx_by_subject(struct stack_st_X509_OBJECT *h, int type, 19922 X509_NAME *name); 19923 X509_OBJECT *X509_OBJECT_retrieve_by_subject(struct stack_st_X509_OBJECT *h, 19924 int type, X509_NAME *name); 19925 X509_OBJECT *X509_OBJECT_retrieve_match(struct stack_st_X509_OBJECT *h, 19926 X509_OBJECT *x); 19927 void X509_OBJECT_up_ref_count(X509_OBJECT *a); 19928 void X509_OBJECT_free_contents(X509_OBJECT *a); 19929 X509_STORE *X509_STORE_new(void); 19930 void X509_STORE_free(X509_STORE *v); 19931 19932 struct stack_st_X509 *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); 19933 struct stack_st_X509_CRL *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); 19934 int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); 19935 int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); 19936 int X509_STORE_set_trust(X509_STORE *ctx, int trust); 19937 int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); 19938 19939 void X509_STORE_set_verify_cb(X509_STORE *ctx, 19940 int (*verify_cb) (int, X509_STORE_CTX *)); 19941 19942 void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, 19943 struct stack_st_X509_CRL *(*cb) (X509_STORE_CTX 19944 *ctx, 19945 X509_NAME *nm)); 19946 19947 X509_STORE_CTX *X509_STORE_CTX_new(void); 19948 19949 int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 19950 19951 void X509_STORE_CTX_free(X509_STORE_CTX *ctx); 19952 int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, 19953 X509 *x509, struct stack_st_X509 *chain); 19954 void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, struct stack_st_X509 *sk); 19955 void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); 19956 19957 X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); 19958 19959 X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); 19960 19961 X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); 19962 X509_LOOKUP_METHOD *X509_LOOKUP_file(void); 19963 19964 int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); 19965 int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); 19966 19967 int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name, 19968 X509_OBJECT *ret); 19969 19970 int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, 19971 long argl, char **ret); 19972 19973 19974 int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); 19975 int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); 19976 int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); 19977 19978 19979 X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); 19980 void X509_LOOKUP_free(X509_LOOKUP *ctx); 19981 int X509_LOOKUP_init(X509_LOOKUP *ctx); 19982 int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, 19983 X509_OBJECT *ret); 19984 int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, 19985 ASN1_INTEGER *serial, X509_OBJECT *ret); 19986 int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, 19987 unsigned char *bytes, int len, 19988 X509_OBJECT *ret); 19989 int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, 19990 X509_OBJECT *ret); 19991 int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); 19992 19993 19994 int X509_STORE_load_locations(X509_STORE *ctx, 19995 const char *file, const char *dir); 19996 int X509_STORE_set_default_paths(X509_STORE *ctx); 19997 19998 19999 int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, 20000 CRYPTO_EX_new *new_func, 20001 CRYPTO_EX_dup *dup_func, 20002 CRYPTO_EX_free *free_func); 20003 int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); 20004 void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); 20005 int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); 20006 void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); 20007 int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); 20008 X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); 20009 X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); 20010 X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); 20011 X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); 20012 struct stack_st_X509 *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); 20013 struct stack_st_X509 *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); 20014 void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); 20015 void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, struct stack_st_X509 *sk); 20016 void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, struct stack_st_X509_CRL *sk); 20017 int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); 20018 int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); 20019 int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, 20020 int purpose, int trust); 20021 void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); 20022 void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, 20023 time_t t); 20024 void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, 20025 int (*verify_cb) (int, X509_STORE_CTX *)); 20026 20027 X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); 20028 int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); 20029 20030 X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); 20031 void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); 20032 int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); 20033 20034 /* X509_VERIFY_PARAM functions */ 20035 20036 X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); 20037 void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); 20038 int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, 20039 const X509_VERIFY_PARAM *from); 20040 int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, 20041 const X509_VERIFY_PARAM *from); 20042 int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); 20043 int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, 20044 unsigned long flags); 20045 int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, 20046 unsigned long flags); 20047 unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); 20048 int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); 20049 int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); 20050 void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); 20051 void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); 20052 int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, 20053 ASN1_OBJECT *policy); 20054 int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, 20055 struct stack_st_ASN1_OBJECT *policies); 20056 20057 int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, 20058 const char *name, size_t namelen); 20059 int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, 20060 const char *name, size_t namelen); 20061 void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, 20062 unsigned int flags); 20063 char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); 20064 int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, 20065 const char *email, size_t emaillen); 20066 int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, 20067 const unsigned char *ip, size_t iplen); 20068 int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, 20069 const char *ipasc); 20070 20071 int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); 20072 const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); 20073 20074 int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); 20075 int X509_VERIFY_PARAM_get_count(void); 20076 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); 20077 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); 20078 void X509_VERIFY_PARAM_table_cleanup(void); 20079 20080 int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, 20081 struct stack_st_X509 *certs, 20082 struct stack_st_ASN1_OBJECT *policy_oids, unsigned int flags); 20083 20084 void X509_policy_tree_free(X509_POLICY_TREE *tree); 20085 20086 int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); 20087 X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, 20088 int i); 20089 20090 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_policies(const 20091 X509_POLICY_TREE 20092 *tree); 20093 20094 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_user_policies(const 20095 X509_POLICY_TREE 20096 *tree); 20097 20098 int X509_policy_level_node_count(X509_POLICY_LEVEL *level); 20099 20100 X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, 20101 int i); 20102 20103 const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); 20104 20105 struct stack_st_POLICYQUALINFO *X509_policy_node_get0_qualifiers(const 20106 X509_POLICY_NODE 20107 *node); 20108 const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE 20109 *node); 20110 # 582 "/usr/include/openssl/x509.h" 2 3 4 20111 # 1 "/usr/include/openssl/pkcs7.h" 1 3 4 20112 /* crypto/pkcs7/pkcs7.h */ 20113 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20114 * All rights reserved. 20115 * 20116 * This package is an SSL implementation written 20117 * by Eric Young (eay@cryptsoft.com). 20118 * The implementation was written so as to conform with Netscapes SSL. 20119 * 20120 * This library is free for commercial and non-commercial use as long as 20121 * the following conditions are aheared to. The following conditions 20122 * apply to all code found in this distribution, be it the RC4, RSA, 20123 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20124 * included with this distribution is covered by the same copyright terms 20125 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20126 * 20127 * Copyright remains Eric Young's, and as such any Copyright notices in 20128 * the code are not to be removed. 20129 * If this package is used in a product, Eric Young should be given attribution 20130 * as the author of the parts of the library used. 20131 * This can be in the form of a textual message at program startup or 20132 * in documentation (online or textual) provided with the package. 20133 * 20134 * Redistribution and use in source and binary forms, with or without 20135 * modification, are permitted provided that the following conditions 20136 * are met: 20137 * 1. Redistributions of source code must retain the copyright 20138 * notice, this list of conditions and the following disclaimer. 20139 * 2. Redistributions in binary form must reproduce the above copyright 20140 * notice, this list of conditions and the following disclaimer in the 20141 * documentation and/or other materials provided with the distribution. 20142 * 3. All advertising materials mentioning features or use of this software 20143 * must display the following acknowledgement: 20144 * "This product includes cryptographic software written by 20145 * Eric Young (eay@cryptsoft.com)" 20146 * The word 'cryptographic' can be left out if the rouines from the library 20147 * being used are not cryptographic related :-). 20148 * 4. If you include any Windows specific code (or a derivative thereof) from 20149 * the apps directory (application code) you must include an acknowledgement: 20150 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20151 * 20152 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20153 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20154 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20155 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20156 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20157 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20158 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20159 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20160 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20161 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20162 * SUCH DAMAGE. 20163 * 20164 * The licence and distribution terms for any publically available version or 20165 * derivative of this code cannot be changed. i.e. this code cannot simply be 20166 * copied and put under another distribution licence 20167 * [including the GNU Public Licence.] 20168 */ 20169 20170 20171 20172 20173 # 1 "/usr/include/openssl/asn1.h" 1 3 4 20174 /* crypto/asn1/asn1.h */ 20175 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20176 * All rights reserved. 20177 * 20178 * This package is an SSL implementation written 20179 * by Eric Young (eay@cryptsoft.com). 20180 * The implementation was written so as to conform with Netscapes SSL. 20181 * 20182 * This library is free for commercial and non-commercial use as long as 20183 * the following conditions are aheared to. The following conditions 20184 * apply to all code found in this distribution, be it the RC4, RSA, 20185 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20186 * included with this distribution is covered by the same copyright terms 20187 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20188 * 20189 * Copyright remains Eric Young's, and as such any Copyright notices in 20190 * the code are not to be removed. 20191 * If this package is used in a product, Eric Young should be given attribution 20192 * as the author of the parts of the library used. 20193 * This can be in the form of a textual message at program startup or 20194 * in documentation (online or textual) provided with the package. 20195 * 20196 * Redistribution and use in source and binary forms, with or without 20197 * modification, are permitted provided that the following conditions 20198 * are met: 20199 * 1. Redistributions of source code must retain the copyright 20200 * notice, this list of conditions and the following disclaimer. 20201 * 2. Redistributions in binary form must reproduce the above copyright 20202 * notice, this list of conditions and the following disclaimer in the 20203 * documentation and/or other materials provided with the distribution. 20204 * 3. All advertising materials mentioning features or use of this software 20205 * must display the following acknowledgement: 20206 * "This product includes cryptographic software written by 20207 * Eric Young (eay@cryptsoft.com)" 20208 * The word 'cryptographic' can be left out if the rouines from the library 20209 * being used are not cryptographic related :-). 20210 * 4. If you include any Windows specific code (or a derivative thereof) from 20211 * the apps directory (application code) you must include an acknowledgement: 20212 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20213 * 20214 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20215 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20216 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20217 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20218 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20219 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20220 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20221 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20222 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20223 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20224 * SUCH DAMAGE. 20225 * 20226 * The licence and distribution terms for any publically available version or 20227 * derivative of this code cannot be changed. i.e. this code cannot simply be 20228 * copied and put under another distribution licence 20229 * [including the GNU Public Licence.] 20230 */ 20231 # 63 "/usr/include/openssl/pkcs7.h" 2 3 4 20232 # 1 "/usr/include/openssl/bio.h" 1 3 4 20233 /* crypto/bio/bio.h */ 20234 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20235 * All rights reserved. 20236 * 20237 * This package is an SSL implementation written 20238 * by Eric Young (eay@cryptsoft.com). 20239 * The implementation was written so as to conform with Netscapes SSL. 20240 * 20241 * This library is free for commercial and non-commercial use as long as 20242 * the following conditions are aheared to. The following conditions 20243 * apply to all code found in this distribution, be it the RC4, RSA, 20244 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20245 * included with this distribution is covered by the same copyright terms 20246 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20247 * 20248 * Copyright remains Eric Young's, and as such any Copyright notices in 20249 * the code are not to be removed. 20250 * If this package is used in a product, Eric Young should be given attribution 20251 * as the author of the parts of the library used. 20252 * This can be in the form of a textual message at program startup or 20253 * in documentation (online or textual) provided with the package. 20254 * 20255 * Redistribution and use in source and binary forms, with or without 20256 * modification, are permitted provided that the following conditions 20257 * are met: 20258 * 1. Redistributions of source code must retain the copyright 20259 * notice, this list of conditions and the following disclaimer. 20260 * 2. Redistributions in binary form must reproduce the above copyright 20261 * notice, this list of conditions and the following disclaimer in the 20262 * documentation and/or other materials provided with the distribution. 20263 * 3. All advertising materials mentioning features or use of this software 20264 * must display the following acknowledgement: 20265 * "This product includes cryptographic software written by 20266 * Eric Young (eay@cryptsoft.com)" 20267 * The word 'cryptographic' can be left out if the rouines from the library 20268 * being used are not cryptographic related :-). 20269 * 4. If you include any Windows specific code (or a derivative thereof) from 20270 * the apps directory (application code) you must include an acknowledgement: 20271 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20272 * 20273 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20274 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20275 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20276 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20277 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20278 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20279 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20280 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20281 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20282 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20283 * SUCH DAMAGE. 20284 * 20285 * The licence and distribution terms for any publically available version or 20286 * derivative of this code cannot be changed. i.e. this code cannot simply be 20287 * copied and put under another distribution licence 20288 * [including the GNU Public Licence.] 20289 */ 20290 # 64 "/usr/include/openssl/pkcs7.h" 2 3 4 20291 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 20292 /* e_os2.h */ 20293 /* ==================================================================== 20294 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 20295 * 20296 * Redistribution and use in source and binary forms, with or without 20297 * modification, are permitted provided that the following conditions 20298 * are met: 20299 * 20300 * 1. Redistributions of source code must retain the above copyright 20301 * notice, this list of conditions and the following disclaimer. 20302 * 20303 * 2. Redistributions in binary form must reproduce the above copyright 20304 * notice, this list of conditions and the following disclaimer in 20305 * the documentation and/or other materials provided with the 20306 * distribution. 20307 * 20308 * 3. All advertising materials mentioning features or use of this 20309 * software must display the following acknowledgment: 20310 * "This product includes software developed by the OpenSSL Project 20311 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20312 * 20313 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20314 * endorse or promote products derived from this software without 20315 * prior written permission. For written permission, please contact 20316 * openssl-core@openssl.org. 20317 * 20318 * 5. Products derived from this software may not be called "OpenSSL" 20319 * nor may "OpenSSL" appear in their names without prior written 20320 * permission of the OpenSSL Project. 20321 * 20322 * 6. Redistributions of any form whatsoever must retain the following 20323 * acknowledgment: 20324 * "This product includes software developed by the OpenSSL Project 20325 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20326 * 20327 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20328 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20329 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20330 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20331 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20332 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20333 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20334 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20335 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20336 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20337 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20338 * OF THE POSSIBILITY OF SUCH DAMAGE. 20339 * ==================================================================== 20340 * 20341 * This product includes cryptographic software written by Eric Young 20342 * (eay@cryptsoft.com). This product includes software written by Tim 20343 * Hudson (tjh@cryptsoft.com). 20344 * 20345 */ 20346 20347 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 20348 /* opensslconf.h */ 20349 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 20350 20351 20352 20353 20354 /* OpenSSL was configured with the following options: */ 20355 # 108 "/usr/include/openssl/opensslconf.h" 3 4 20356 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 20357 asks for it. This is a transient feature that is provided for those 20358 who haven't had the time to do the appropriate changes in their 20359 applications. */ 20360 # 204 "/usr/include/openssl/opensslconf.h" 3 4 20361 /* crypto/opensslconf.h.in */ 20362 20363 /* Generate 80386 code? */ 20364 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 20365 # 65 "/usr/include/openssl/pkcs7.h" 2 3 4 20366 20367 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 20368 /* ==================================================================== 20369 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 20370 * 20371 * Redistribution and use in source and binary forms, with or without 20372 * modification, are permitted provided that the following conditions 20373 * are met: 20374 * 20375 * 1. Redistributions of source code must retain the above copyright 20376 * notice, this list of conditions and the following disclaimer. 20377 * 20378 * 2. Redistributions in binary form must reproduce the above copyright 20379 * notice, this list of conditions and the following disclaimer in 20380 * the documentation and/or other materials provided with the 20381 * distribution. 20382 * 20383 * 3. All advertising materials mentioning features or use of this 20384 * software must display the following acknowledgment: 20385 * "This product includes software developed by the OpenSSL Project 20386 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20387 * 20388 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20389 * endorse or promote products derived from this software without 20390 * prior written permission. For written permission, please contact 20391 * openssl-core@openssl.org. 20392 * 20393 * 5. Products derived from this software may not be called "OpenSSL" 20394 * nor may "OpenSSL" appear in their names without prior written 20395 * permission of the OpenSSL Project. 20396 * 20397 * 6. Redistributions of any form whatsoever must retain the following 20398 * acknowledgment: 20399 * "This product includes software developed by the OpenSSL Project 20400 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20401 * 20402 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20403 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20404 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20405 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20406 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20407 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20408 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20409 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20410 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20411 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20412 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20413 * OF THE POSSIBILITY OF SUCH DAMAGE. 20414 * ==================================================================== 20415 * 20416 * This product includes cryptographic software written by Eric Young 20417 * (eay@cryptsoft.com). This product includes software written by Tim 20418 * Hudson (tjh@cryptsoft.com). 20419 * 20420 */ 20421 # 67 "/usr/include/openssl/pkcs7.h" 2 3 4 20422 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 20423 /* ==================================================================== 20424 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 20425 * 20426 * Redistribution and use in source and binary forms, with or without 20427 * modification, are permitted provided that the following conditions 20428 * are met: 20429 * 20430 * 1. Redistributions of source code must retain the above copyright 20431 * notice, this list of conditions and the following disclaimer. 20432 * 20433 * 2. Redistributions in binary form must reproduce the above copyright 20434 * notice, this list of conditions and the following disclaimer in 20435 * the documentation and/or other materials provided with the 20436 * distribution. 20437 * 20438 * 3. All advertising materials mentioning features or use of this 20439 * software must display the following acknowledgment: 20440 * "This product includes software developed by the OpenSSL Project 20441 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20442 * 20443 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20444 * endorse or promote products derived from this software without 20445 * prior written permission. For written permission, please contact 20446 * openssl-core@openssl.org. 20447 * 20448 * 5. Products derived from this software may not be called "OpenSSL" 20449 * nor may "OpenSSL" appear in their names without prior written 20450 * permission of the OpenSSL Project. 20451 * 20452 * 6. Redistributions of any form whatsoever must retain the following 20453 * acknowledgment: 20454 * "This product includes software developed by the OpenSSL Project 20455 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20456 * 20457 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20458 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20459 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20460 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20461 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20462 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20463 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20464 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20465 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20466 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20467 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20468 * OF THE POSSIBILITY OF SUCH DAMAGE. 20469 * ==================================================================== 20470 * 20471 * This product includes cryptographic software written by Eric Young 20472 * (eay@cryptsoft.com). This product includes software written by Tim 20473 * Hudson (tjh@cryptsoft.com). 20474 * 20475 */ 20476 # 68 "/usr/include/openssl/pkcs7.h" 2 3 4 20477 # 79 "/usr/include/openssl/pkcs7.h" 3 4 20478 /*- 20479 Encryption_ID DES-CBC 20480 Digest_ID MD5 20481 Digest_Encryption_ID rsaEncryption 20482 Key_Encryption_ID rsaEncryption 20483 */ 20484 20485 typedef struct pkcs7_issuer_and_serial_st { 20486 X509_NAME *issuer; 20487 ASN1_INTEGER *serial; 20488 } PKCS7_ISSUER_AND_SERIAL; 20489 20490 typedef struct pkcs7_signer_info_st { 20491 ASN1_INTEGER *version; /* version 1 */ 20492 PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 20493 X509_ALGOR *digest_alg; 20494 struct stack_st_X509_ATTRIBUTE *auth_attr; /* [ 0 ] */ 20495 X509_ALGOR *digest_enc_alg; 20496 ASN1_OCTET_STRING *enc_digest; 20497 struct stack_st_X509_ATTRIBUTE *unauth_attr; /* [ 1 ] */ 20498 /* The private key to sign with */ 20499 EVP_PKEY *pkey; 20500 } PKCS7_SIGNER_INFO; 20501 20502 struct stack_st_PKCS7_SIGNER_INFO { _STACK stack; }; 20503 20504 20505 typedef struct pkcs7_recip_info_st { 20506 ASN1_INTEGER *version; /* version 0 */ 20507 PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 20508 X509_ALGOR *key_enc_algor; 20509 ASN1_OCTET_STRING *enc_key; 20510 X509 *cert; /* get the pub-key from this */ 20511 } PKCS7_RECIP_INFO; 20512 20513 struct stack_st_PKCS7_RECIP_INFO { _STACK stack; }; 20514 20515 20516 typedef struct pkcs7_signed_st { 20517 ASN1_INTEGER *version; /* version 1 */ 20518 struct stack_st_X509_ALGOR *md_algs; /* md used */ 20519 struct stack_st_X509 *cert; /* [ 0 ] */ 20520 struct stack_st_X509_CRL *crl; /* [ 1 ] */ 20521 struct stack_st_PKCS7_SIGNER_INFO *signer_info; 20522 struct pkcs7_st *contents; 20523 } PKCS7_SIGNED; 20524 /* 20525 * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about 20526 * merging the two 20527 */ 20528 20529 typedef struct pkcs7_enc_content_st { 20530 ASN1_OBJECT *content_type; 20531 X509_ALGOR *algorithm; 20532 ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ 20533 const EVP_CIPHER *cipher; 20534 } PKCS7_ENC_CONTENT; 20535 20536 typedef struct pkcs7_enveloped_st { 20537 ASN1_INTEGER *version; /* version 0 */ 20538 struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 20539 PKCS7_ENC_CONTENT *enc_data; 20540 } PKCS7_ENVELOPE; 20541 20542 typedef struct pkcs7_signedandenveloped_st { 20543 ASN1_INTEGER *version; /* version 1 */ 20544 struct stack_st_X509_ALGOR *md_algs; /* md used */ 20545 struct stack_st_X509 *cert; /* [ 0 ] */ 20546 struct stack_st_X509_CRL *crl; /* [ 1 ] */ 20547 struct stack_st_PKCS7_SIGNER_INFO *signer_info; 20548 PKCS7_ENC_CONTENT *enc_data; 20549 struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 20550 } PKCS7_SIGN_ENVELOPE; 20551 20552 typedef struct pkcs7_digest_st { 20553 ASN1_INTEGER *version; /* version 0 */ 20554 X509_ALGOR *md; /* md used */ 20555 struct pkcs7_st *contents; 20556 ASN1_OCTET_STRING *digest; 20557 } PKCS7_DIGEST; 20558 20559 typedef struct pkcs7_encrypted_st { 20560 ASN1_INTEGER *version; /* version 0 */ 20561 PKCS7_ENC_CONTENT *enc_data; 20562 } PKCS7_ENCRYPT; 20563 20564 typedef struct pkcs7_st { 20565 /* 20566 * The following is non NULL if it contains ASN1 encoding of this 20567 * structure 20568 */ 20569 unsigned char *asn1; 20570 long length; 20571 20572 20573 20574 int state; /* used during processing */ 20575 int detached; 20576 ASN1_OBJECT *type; 20577 /* content as defined by the type */ 20578 /* 20579 * all encryption/message digests are applied to the 'contents', leaving 20580 * out the 'type' field. 20581 */ 20582 union { 20583 char *ptr; 20584 /* NID_pkcs7_data */ 20585 ASN1_OCTET_STRING *data; 20586 /* NID_pkcs7_signed */ 20587 PKCS7_SIGNED *sign; 20588 /* NID_pkcs7_enveloped */ 20589 PKCS7_ENVELOPE *enveloped; 20590 /* NID_pkcs7_signedAndEnveloped */ 20591 PKCS7_SIGN_ENVELOPE *signed_and_enveloped; 20592 /* NID_pkcs7_digest */ 20593 PKCS7_DIGEST *digest; 20594 /* NID_pkcs7_encrypted */ 20595 PKCS7_ENCRYPT *encrypted; 20596 /* Anything else */ 20597 ASN1_TYPE *other; 20598 } d; 20599 } PKCS7; 20600 20601 struct stack_st_PKCS7 { _STACK stack; }; 20602 20603 20604 # 227 "/usr/include/openssl/pkcs7.h" 3 4 20605 /* S/MIME related flags */ 20606 # 246 "/usr/include/openssl/pkcs7.h" 3 4 20607 /* Flags: for compatibility with older code */ 20608 # 258 "/usr/include/openssl/pkcs7.h" 3 4 20609 PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new(void); void PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a); PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **in, long len); int i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ISSUER_AND_SERIAL_it; 20610 20611 int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, 20612 const EVP_MD *type, unsigned char *md, 20613 unsigned int *len); 20614 20615 PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); 20616 int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); 20617 20618 PKCS7 *PKCS7_dup(PKCS7 *p7); 20619 PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); 20620 int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); 20621 int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 20622 int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 20623 20624 PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new(void); void PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a); PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGNER_INFO_it; 20625 PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new(void); void PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a); PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len); int i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS7_RECIP_INFO_it; 20626 PKCS7_SIGNED *PKCS7_SIGNED_new(void); void PKCS7_SIGNED_free(PKCS7_SIGNED *a); PKCS7_SIGNED *d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len); int i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGNED_it; 20627 PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new(void); void PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a); PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len); int i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENC_CONTENT_it; 20628 PKCS7_ENVELOPE *PKCS7_ENVELOPE_new(void); void PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a); PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENVELOPE_it; 20629 PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void); void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a); PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long len); int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out); extern const ASN1_ITEM PKCS7_SIGN_ENVELOPE_it; 20630 PKCS7_DIGEST *PKCS7_DIGEST_new(void); void PKCS7_DIGEST_free(PKCS7_DIGEST *a); PKCS7_DIGEST *d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len); int i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out); extern const ASN1_ITEM PKCS7_DIGEST_it; 20631 PKCS7_ENCRYPT *PKCS7_ENCRYPT_new(void); void PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a); PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len); int i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out); extern const ASN1_ITEM PKCS7_ENCRYPT_it; 20632 PKCS7 *PKCS7_new(void); void PKCS7_free(PKCS7 *a); PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len); int i2d_PKCS7(PKCS7 *a, unsigned char **out); extern const ASN1_ITEM PKCS7_it; 20633 20634 extern const ASN1_ITEM PKCS7_ATTR_SIGN_it; 20635 extern const ASN1_ITEM PKCS7_ATTR_VERIFY_it; 20636 20637 int i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out); 20638 int PKCS7_print_ctx(BIO *out, PKCS7 *x, int indent, const ASN1_PCTX *pctx); 20639 20640 long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); 20641 20642 int PKCS7_set_type(PKCS7 *p7, int type); 20643 int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); 20644 int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); 20645 int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, 20646 const EVP_MD *dgst); 20647 int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); 20648 int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); 20649 int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); 20650 int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); 20651 int PKCS7_content_new(PKCS7 *p7, int nid); 20652 int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, 20653 BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); 20654 int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, 20655 X509 *x509); 20656 20657 BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); 20658 int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); 20659 BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); 20660 20661 PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, 20662 EVP_PKEY *pkey, const EVP_MD *dgst); 20663 X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); 20664 int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); 20665 struct stack_st_PKCS7_SIGNER_INFO *PKCS7_get_signer_info(PKCS7 *p7); 20666 20667 PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); 20668 void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, 20669 X509_ALGOR **pdig, X509_ALGOR **psig); 20670 void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); 20671 int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); 20672 int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); 20673 int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); 20674 int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); 20675 20676 PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); 20677 ASN1_OCTET_STRING *PKCS7_digest_from_attributes(struct stack_st_X509_ATTRIBUTE *sk); 20678 int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, 20679 void *data); 20680 int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, 20681 void *value); 20682 ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); 20683 ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); 20684 int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, 20685 struct stack_st_X509_ATTRIBUTE *sk); 20686 int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, 20687 struct stack_st_X509_ATTRIBUTE *sk); 20688 20689 PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs, 20690 BIO *data, int flags); 20691 20692 PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, 20693 X509 *signcert, EVP_PKEY *pkey, 20694 const EVP_MD *md, int flags); 20695 20696 int PKCS7_final(PKCS7 *p7, BIO *data, int flags); 20697 int PKCS7_verify(PKCS7 *p7, struct stack_st_X509 *certs, X509_STORE *store, 20698 BIO *indata, BIO *out, int flags); 20699 struct stack_st_X509 *PKCS7_get0_signers(PKCS7 *p7, struct stack_st_X509 *certs, 20700 int flags); 20701 PKCS7 *PKCS7_encrypt(struct stack_st_X509 *certs, BIO *in, const EVP_CIPHER *cipher, 20702 int flags); 20703 int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, 20704 int flags); 20705 20706 int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, 20707 struct stack_st_X509_ALGOR *cap); 20708 struct stack_st_X509_ALGOR *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); 20709 int PKCS7_simple_smimecap(struct stack_st_X509_ALGOR *sk, int nid, int arg); 20710 20711 int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); 20712 int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); 20713 int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, 20714 const unsigned char *md, int mdlen); 20715 20716 int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); 20717 PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); 20718 20719 BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); 20720 20721 /* BEGIN ERROR CODES */ 20722 /* 20723 * The following lines are auto generated by the script mkerr.pl. Any changes 20724 * made after this point may be overwritten when the script is next run. 20725 */ 20726 void ERR_load_PKCS7_strings(void); 20727 20728 /* Error codes for the PKCS7 functions. */ 20729 20730 /* Function codes. */ 20731 # 421 "/usr/include/openssl/pkcs7.h" 3 4 20732 /* Reason codes. */ 20733 # 583 "/usr/include/openssl/x509.h" 2 3 4 20734 # 592 "/usr/include/openssl/x509.h" 3 4 20735 /* #define X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */ 20736 # 608 "/usr/include/openssl/x509.h" 3 4 20737 void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); 20738 X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), 20739 int (*crl_free) (X509_CRL *crl), 20740 int (*crl_lookup) (X509_CRL *crl, 20741 X509_REVOKED **ret, 20742 ASN1_INTEGER *ser, 20743 X509_NAME *issuer), 20744 int (*crl_verify) (X509_CRL *crl, 20745 EVP_PKEY *pk)); 20746 void X509_CRL_METHOD_free(X509_CRL_METHOD *m); 20747 20748 void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); 20749 void *X509_CRL_get_meth_data(X509_CRL *crl); 20750 20751 /* 20752 * This one is only used so that a binary form can output, as in 20753 * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) 20754 */ 20755 20756 20757 const char *X509_verify_cert_error_string(long n); 20758 20759 20760 int X509_verify(X509 *a, EVP_PKEY *r); 20761 20762 int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); 20763 int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); 20764 int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); 20765 20766 NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); 20767 char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); 20768 EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); 20769 int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); 20770 20771 int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); 20772 20773 int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); 20774 int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); 20775 20776 int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 20777 int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); 20778 int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); 20779 int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); 20780 int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); 20781 int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); 20782 int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); 20783 int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); 20784 int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); 20785 20786 int X509_pubkey_digest(const X509 *data, const EVP_MD *type, 20787 unsigned char *md, unsigned int *len); 20788 int X509_digest(const X509 *data, const EVP_MD *type, 20789 unsigned char *md, unsigned int *len); 20790 int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, 20791 unsigned char *md, unsigned int *len); 20792 int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, 20793 unsigned char *md, unsigned int *len); 20794 int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, 20795 unsigned char *md, unsigned int *len); 20796 20797 20798 20799 X509 *d2i_X509_fp(FILE *fp, X509 **x509); 20800 int i2d_X509_fp(FILE *fp, X509 *x509); 20801 X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); 20802 int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); 20803 X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); 20804 int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); 20805 20806 RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); 20807 int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); 20808 RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); 20809 int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); 20810 RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); 20811 int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); 20812 20813 20814 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); 20815 int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); 20816 DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); 20817 int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); 20818 20819 20820 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); 20821 int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); 20822 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); 20823 int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); 20824 20825 X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); 20826 int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); 20827 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, 20828 PKCS8_PRIV_KEY_INFO **p8inf); 20829 int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); 20830 int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); 20831 int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); 20832 EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); 20833 int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); 20834 EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); 20835 20836 20837 20838 X509 *d2i_X509_bio(BIO *bp, X509 **x509); 20839 int i2d_X509_bio(BIO *bp, X509 *x509); 20840 X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); 20841 int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); 20842 X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); 20843 int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); 20844 20845 RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); 20846 int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); 20847 RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); 20848 int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); 20849 RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); 20850 int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); 20851 20852 20853 DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); 20854 int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); 20855 DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); 20856 int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); 20857 20858 20859 EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); 20860 int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); 20861 EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); 20862 int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); 20863 20864 X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); 20865 int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); 20866 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, 20867 PKCS8_PRIV_KEY_INFO **p8inf); 20868 int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); 20869 int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); 20870 int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); 20871 EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); 20872 int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); 20873 EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); 20874 20875 20876 X509 *X509_dup(X509 *x509); 20877 X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); 20878 X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); 20879 X509_CRL *X509_CRL_dup(X509_CRL *crl); 20880 X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); 20881 X509_REQ *X509_REQ_dup(X509_REQ *req); 20882 X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); 20883 int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, 20884 void *pval); 20885 void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, 20886 X509_ALGOR *algor); 20887 void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); 20888 int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); 20889 20890 X509_NAME *X509_NAME_dup(X509_NAME *xn); 20891 X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); 20892 20893 int X509_cmp_time(const ASN1_TIME *s, time_t *t); 20894 int X509_cmp_current_time(const ASN1_TIME *s); 20895 ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); 20896 ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, 20897 int offset_day, long offset_sec, time_t *t); 20898 ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); 20899 20900 const char *X509_get_default_cert_area(void); 20901 const char *X509_get_default_cert_dir(void); 20902 const char *X509_get_default_cert_file(void); 20903 const char *X509_get_default_cert_dir_env(void); 20904 const char *X509_get_default_cert_file_env(void); 20905 const char *X509_get_default_private_dir(void); 20906 20907 X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 20908 X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); 20909 20910 X509_ALGOR *X509_ALGOR_new(void); void X509_ALGOR_free(X509_ALGOR *a); X509_ALGOR *d2i_X509_ALGOR(X509_ALGOR **a, const unsigned char **in, long len); int i2d_X509_ALGOR(X509_ALGOR *a, unsigned char **out); extern const ASN1_ITEM X509_ALGOR_it; 20911 X509_ALGORS *d2i_X509_ALGORS(X509_ALGORS **a, const unsigned char **in, long len); int i2d_X509_ALGORS(X509_ALGORS *a, unsigned char **out); extern const ASN1_ITEM X509_ALGORS_it; 20912 X509_VAL *X509_VAL_new(void); void X509_VAL_free(X509_VAL *a); X509_VAL *d2i_X509_VAL(X509_VAL **a, const unsigned char **in, long len); int i2d_X509_VAL(X509_VAL *a, unsigned char **out); extern const ASN1_ITEM X509_VAL_it; 20913 20914 X509_PUBKEY *X509_PUBKEY_new(void); void X509_PUBKEY_free(X509_PUBKEY *a); X509_PUBKEY *d2i_X509_PUBKEY(X509_PUBKEY **a, const unsigned char **in, long len); int i2d_X509_PUBKEY(X509_PUBKEY *a, unsigned char **out); extern const ASN1_ITEM X509_PUBKEY_it; 20915 20916 int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); 20917 EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); 20918 int X509_get_pubkey_parameters(EVP_PKEY *pkey, struct stack_st_X509 *chain); 20919 int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); 20920 EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); 20921 20922 int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); 20923 RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); 20924 20925 20926 int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); 20927 DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); 20928 20929 20930 int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); 20931 EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); 20932 20933 20934 X509_SIG *X509_SIG_new(void); void X509_SIG_free(X509_SIG *a); X509_SIG *d2i_X509_SIG(X509_SIG **a, const unsigned char **in, long len); int i2d_X509_SIG(X509_SIG *a, unsigned char **out); extern const ASN1_ITEM X509_SIG_it; 20935 X509_REQ_INFO *X509_REQ_INFO_new(void); void X509_REQ_INFO_free(X509_REQ_INFO *a); X509_REQ_INFO *d2i_X509_REQ_INFO(X509_REQ_INFO **a, const unsigned char **in, long len); int i2d_X509_REQ_INFO(X509_REQ_INFO *a, unsigned char **out); extern const ASN1_ITEM X509_REQ_INFO_it; 20936 X509_REQ *X509_REQ_new(void); void X509_REQ_free(X509_REQ *a); X509_REQ *d2i_X509_REQ(X509_REQ **a, const unsigned char **in, long len); int i2d_X509_REQ(X509_REQ *a, unsigned char **out); extern const ASN1_ITEM X509_REQ_it; 20937 20938 X509_ATTRIBUTE *X509_ATTRIBUTE_new(void); void X509_ATTRIBUTE_free(X509_ATTRIBUTE *a); X509_ATTRIBUTE *d2i_X509_ATTRIBUTE(X509_ATTRIBUTE **a, const unsigned char **in, long len); int i2d_X509_ATTRIBUTE(X509_ATTRIBUTE *a, unsigned char **out); extern const ASN1_ITEM X509_ATTRIBUTE_it; 20939 X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); 20940 20941 X509_EXTENSION *X509_EXTENSION_new(void); void X509_EXTENSION_free(X509_EXTENSION *a); X509_EXTENSION *d2i_X509_EXTENSION(X509_EXTENSION **a, const unsigned char **in, long len); int i2d_X509_EXTENSION(X509_EXTENSION *a, unsigned char **out); extern const ASN1_ITEM X509_EXTENSION_it; 20942 X509_EXTENSIONS *d2i_X509_EXTENSIONS(X509_EXTENSIONS **a, const unsigned char **in, long len); int i2d_X509_EXTENSIONS(X509_EXTENSIONS *a, unsigned char **out); extern const ASN1_ITEM X509_EXTENSIONS_it; 20943 20944 X509_NAME_ENTRY *X509_NAME_ENTRY_new(void); void X509_NAME_ENTRY_free(X509_NAME_ENTRY *a); X509_NAME_ENTRY *d2i_X509_NAME_ENTRY(X509_NAME_ENTRY **a, const unsigned char **in, long len); int i2d_X509_NAME_ENTRY(X509_NAME_ENTRY *a, unsigned char **out); extern const ASN1_ITEM X509_NAME_ENTRY_it; 20945 20946 X509_NAME *X509_NAME_new(void); void X509_NAME_free(X509_NAME *a); X509_NAME *d2i_X509_NAME(X509_NAME **a, const unsigned char **in, long len); int i2d_X509_NAME(X509_NAME *a, unsigned char **out); extern const ASN1_ITEM X509_NAME_it; 20947 20948 int X509_NAME_set(X509_NAME **xn, X509_NAME *name); 20949 20950 X509_CINF *X509_CINF_new(void); void X509_CINF_free(X509_CINF *a); X509_CINF *d2i_X509_CINF(X509_CINF **a, const unsigned char **in, long len); int i2d_X509_CINF(X509_CINF *a, unsigned char **out); extern const ASN1_ITEM X509_CINF_it; 20951 20952 X509 *X509_new(void); void X509_free(X509 *a); X509 *d2i_X509(X509 **a, const unsigned char **in, long len); int i2d_X509(X509 *a, unsigned char **out); extern const ASN1_ITEM X509_it; 20953 X509_CERT_AUX *X509_CERT_AUX_new(void); void X509_CERT_AUX_free(X509_CERT_AUX *a); X509_CERT_AUX *d2i_X509_CERT_AUX(X509_CERT_AUX **a, const unsigned char **in, long len); int i2d_X509_CERT_AUX(X509_CERT_AUX *a, unsigned char **out); extern const ASN1_ITEM X509_CERT_AUX_it; 20954 20955 X509_CERT_PAIR *X509_CERT_PAIR_new(void); void X509_CERT_PAIR_free(X509_CERT_PAIR *a); X509_CERT_PAIR *d2i_X509_CERT_PAIR(X509_CERT_PAIR **a, const unsigned char **in, long len); int i2d_X509_CERT_PAIR(X509_CERT_PAIR *a, unsigned char **out); extern const ASN1_ITEM X509_CERT_PAIR_it; 20956 20957 int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 20958 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 20959 int X509_set_ex_data(X509 *r, int idx, void *arg); 20960 void *X509_get_ex_data(X509 *r, int idx); 20961 int i2d_X509_AUX(X509 *a, unsigned char **pp); 20962 X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); 20963 20964 int i2d_re_X509_tbs(X509 *x, unsigned char **pp); 20965 20966 void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, 20967 const X509 *x); 20968 int X509_get_signature_nid(const X509 *x); 20969 20970 int X509_alias_set1(X509 *x, unsigned char *name, int len); 20971 int X509_keyid_set1(X509 *x, unsigned char *id, int len); 20972 unsigned char *X509_alias_get0(X509 *x, int *len); 20973 unsigned char *X509_keyid_get0(X509 *x, int *len); 20974 int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, 20975 int); 20976 int X509_TRUST_set(int *t, int trust); 20977 int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); 20978 int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); 20979 void X509_trust_clear(X509 *x); 20980 void X509_reject_clear(X509 *x); 20981 20982 X509_REVOKED *X509_REVOKED_new(void); void X509_REVOKED_free(X509_REVOKED *a); X509_REVOKED *d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len); int i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out); extern const ASN1_ITEM X509_REVOKED_it; 20983 X509_CRL_INFO *X509_CRL_INFO_new(void); void X509_CRL_INFO_free(X509_CRL_INFO *a); X509_CRL_INFO *d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len); int i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out); extern const ASN1_ITEM X509_CRL_INFO_it; 20984 X509_CRL *X509_CRL_new(void); void X509_CRL_free(X509_CRL *a); X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len); int i2d_X509_CRL(X509_CRL *a, unsigned char **out); extern const ASN1_ITEM X509_CRL_it; 20985 20986 int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); 20987 int X509_CRL_get0_by_serial(X509_CRL *crl, 20988 X509_REVOKED **ret, ASN1_INTEGER *serial); 20989 int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); 20990 20991 X509_PKEY *X509_PKEY_new(void); 20992 void X509_PKEY_free(X509_PKEY *a); 20993 int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp); 20994 X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, 20995 long length); 20996 20997 NETSCAPE_SPKI *NETSCAPE_SPKI_new(void); void NETSCAPE_SPKI_free(NETSCAPE_SPKI *a); NETSCAPE_SPKI *d2i_NETSCAPE_SPKI(NETSCAPE_SPKI **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKI(NETSCAPE_SPKI *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_SPKI_it; 20998 NETSCAPE_SPKAC *NETSCAPE_SPKAC_new(void); void NETSCAPE_SPKAC_free(NETSCAPE_SPKAC *a); NETSCAPE_SPKAC *d2i_NETSCAPE_SPKAC(NETSCAPE_SPKAC **a, const unsigned char **in, long len); int i2d_NETSCAPE_SPKAC(NETSCAPE_SPKAC *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_SPKAC_it; 20999 NETSCAPE_CERT_SEQUENCE *NETSCAPE_CERT_SEQUENCE_new(void); void NETSCAPE_CERT_SEQUENCE_free(NETSCAPE_CERT_SEQUENCE *a); NETSCAPE_CERT_SEQUENCE *d2i_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE **a, const unsigned char **in, long len); int i2d_NETSCAPE_CERT_SEQUENCE(NETSCAPE_CERT_SEQUENCE *a, unsigned char **out); extern const ASN1_ITEM NETSCAPE_CERT_SEQUENCE_it; 21000 21001 21002 X509_INFO *X509_INFO_new(void); 21003 void X509_INFO_free(X509_INFO *a); 21004 char *X509_NAME_oneline(X509_NAME *a, char *buf, int size); 21005 21006 int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, 21007 ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); 21008 21009 int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, 21010 unsigned char *md, unsigned int *len); 21011 21012 int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, 21013 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 21014 char *data, EVP_PKEY *pkey, const EVP_MD *type); 21015 21016 int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, 21017 unsigned char *md, unsigned int *len); 21018 21019 int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, 21020 ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); 21021 21022 int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, 21023 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, 21024 EVP_PKEY *pkey, const EVP_MD *type); 21025 int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, 21026 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 21027 void *asn, EVP_MD_CTX *ctx); 21028 21029 21030 int X509_set_version(X509 *x, long version); 21031 int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); 21032 ASN1_INTEGER *X509_get_serialNumber(X509 *x); 21033 int X509_set_issuer_name(X509 *x, X509_NAME *name); 21034 X509_NAME *X509_get_issuer_name(X509 *a); 21035 int X509_set_subject_name(X509 *x, X509_NAME *name); 21036 X509_NAME *X509_get_subject_name(X509 *a); 21037 int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); 21038 int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); 21039 int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); 21040 EVP_PKEY *X509_get_pubkey(X509 *x); 21041 ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); 21042 int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ ); 21043 21044 int X509_REQ_set_version(X509_REQ *x, long version); 21045 int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); 21046 int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); 21047 EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); 21048 int X509_REQ_extension_nid(int nid); 21049 int *X509_REQ_get_extension_nids(void); 21050 void X509_REQ_set_extension_nids(int *nids); 21051 struct stack_st_X509_EXTENSION *X509_REQ_get_extensions(X509_REQ *req); 21052 int X509_REQ_add_extensions_nid(X509_REQ *req, struct stack_st_X509_EXTENSION *exts, 21053 int nid); 21054 int X509_REQ_add_extensions(X509_REQ *req, struct stack_st_X509_EXTENSION *exts); 21055 int X509_REQ_get_attr_count(const X509_REQ *req); 21056 int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); 21057 int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, 21058 int lastpos); 21059 X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); 21060 X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); 21061 int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); 21062 int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, 21063 const ASN1_OBJECT *obj, int type, 21064 const unsigned char *bytes, int len); 21065 int X509_REQ_add1_attr_by_NID(X509_REQ *req, 21066 int nid, int type, 21067 const unsigned char *bytes, int len); 21068 int X509_REQ_add1_attr_by_txt(X509_REQ *req, 21069 const char *attrname, int type, 21070 const unsigned char *bytes, int len); 21071 21072 int X509_CRL_set_version(X509_CRL *x, long version); 21073 int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); 21074 int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); 21075 int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); 21076 int X509_CRL_sort(X509_CRL *crl); 21077 21078 int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); 21079 int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); 21080 21081 X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, 21082 EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); 21083 21084 int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); 21085 21086 int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); 21087 int X509_chain_check_suiteb(int *perror_depth, 21088 X509 *x, struct stack_st_X509 *chain, 21089 unsigned long flags); 21090 int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); 21091 struct stack_st_X509 *X509_chain_up_ref(struct stack_st_X509 *chain); 21092 21093 int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); 21094 unsigned long X509_issuer_and_serial_hash(X509 *a); 21095 21096 int X509_issuer_name_cmp(const X509 *a, const X509 *b); 21097 unsigned long X509_issuer_name_hash(X509 *a); 21098 21099 int X509_subject_name_cmp(const X509 *a, const X509 *b); 21100 unsigned long X509_subject_name_hash(X509 *x); 21101 21102 21103 unsigned long X509_issuer_name_hash_old(X509 *a); 21104 unsigned long X509_subject_name_hash_old(X509 *x); 21105 21106 21107 int X509_cmp(const X509 *a, const X509 *b); 21108 int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); 21109 unsigned long X509_NAME_hash(X509_NAME *x); 21110 unsigned long X509_NAME_hash_old(X509_NAME *x); 21111 21112 int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); 21113 int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); 21114 21115 int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, 21116 unsigned long cflag); 21117 int X509_print_fp(FILE *bp, X509 *x); 21118 int X509_CRL_print_fp(FILE *bp, X509_CRL *x); 21119 int X509_REQ_print_fp(FILE *bp, X509_REQ *req); 21120 int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, 21121 unsigned long flags); 21122 21123 21124 21125 int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); 21126 int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, 21127 unsigned long flags); 21128 int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, 21129 unsigned long cflag); 21130 int X509_print(BIO *bp, X509 *x); 21131 int X509_ocspid_print(BIO *bp, X509 *x); 21132 int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent); 21133 int X509_CRL_print(BIO *bp, X509_CRL *x); 21134 int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, 21135 unsigned long cflag); 21136 int X509_REQ_print(BIO *bp, X509_REQ *req); 21137 21138 21139 int X509_NAME_entry_count(X509_NAME *name); 21140 int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); 21141 int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, 21142 char *buf, int len); 21143 21144 /* 21145 * NOTE: you should be passsing -1, not 0 as lastpos. The functions that use 21146 * lastpos, search after that position on. 21147 */ 21148 int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); 21149 int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, 21150 int lastpos); 21151 X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); 21152 X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); 21153 int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, 21154 int loc, int set); 21155 int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, 21156 unsigned char *bytes, int len, int loc, 21157 int set); 21158 int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, 21159 unsigned char *bytes, int len, int loc, 21160 int set); 21161 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, 21162 const char *field, int type, 21163 const unsigned char *bytes, 21164 int len); 21165 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, 21166 int type, unsigned char *bytes, 21167 int len); 21168 int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, 21169 const unsigned char *bytes, int len, int loc, 21170 int set); 21171 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, 21172 ASN1_OBJECT *obj, int type, 21173 const unsigned char *bytes, 21174 int len); 21175 int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); 21176 int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, 21177 const unsigned char *bytes, int len); 21178 ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); 21179 ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); 21180 21181 int X509v3_get_ext_count(const struct stack_st_X509_EXTENSION *x); 21182 int X509v3_get_ext_by_NID(const struct stack_st_X509_EXTENSION *x, 21183 int nid, int lastpos); 21184 int X509v3_get_ext_by_OBJ(const struct stack_st_X509_EXTENSION *x, 21185 ASN1_OBJECT *obj, int lastpos); 21186 int X509v3_get_ext_by_critical(const struct stack_st_X509_EXTENSION *x, 21187 int crit, int lastpos); 21188 X509_EXTENSION *X509v3_get_ext(const struct stack_st_X509_EXTENSION *x, int loc); 21189 X509_EXTENSION *X509v3_delete_ext(struct stack_st_X509_EXTENSION *x, int loc); 21190 struct stack_st_X509_EXTENSION *X509v3_add_ext(struct stack_st_X509_EXTENSION **x, 21191 X509_EXTENSION *ex, int loc); 21192 21193 int X509_get_ext_count(X509 *x); 21194 int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); 21195 int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos); 21196 int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); 21197 X509_EXTENSION *X509_get_ext(X509 *x, int loc); 21198 X509_EXTENSION *X509_delete_ext(X509 *x, int loc); 21199 int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); 21200 void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); 21201 int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, 21202 unsigned long flags); 21203 21204 int X509_CRL_get_ext_count(X509_CRL *x); 21205 int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); 21206 int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos); 21207 int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); 21208 X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); 21209 X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); 21210 int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); 21211 void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); 21212 int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, 21213 unsigned long flags); 21214 21215 int X509_REVOKED_get_ext_count(X509_REVOKED *x); 21216 int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); 21217 int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj, 21218 int lastpos); 21219 int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); 21220 X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); 21221 X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); 21222 int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); 21223 void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); 21224 int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, 21225 unsigned long flags); 21226 21227 X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, 21228 int nid, int crit, 21229 ASN1_OCTET_STRING *data); 21230 X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, 21231 ASN1_OBJECT *obj, int crit, 21232 ASN1_OCTET_STRING *data); 21233 int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj); 21234 int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); 21235 int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); 21236 ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); 21237 ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); 21238 int X509_EXTENSION_get_critical(X509_EXTENSION *ex); 21239 21240 int X509at_get_attr_count(const struct stack_st_X509_ATTRIBUTE *x); 21241 int X509at_get_attr_by_NID(const struct stack_st_X509_ATTRIBUTE *x, int nid, 21242 int lastpos); 21243 int X509at_get_attr_by_OBJ(const struct stack_st_X509_ATTRIBUTE *sk, 21244 ASN1_OBJECT *obj, int lastpos); 21245 X509_ATTRIBUTE *X509at_get_attr(const struct stack_st_X509_ATTRIBUTE *x, int loc); 21246 X509_ATTRIBUTE *X509at_delete_attr(struct stack_st_X509_ATTRIBUTE *x, int loc); 21247 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr(struct stack_st_X509_ATTRIBUTE **x, 21248 X509_ATTRIBUTE *attr); 21249 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_OBJ(struct stack_st_X509_ATTRIBUTE 21250 **x, const ASN1_OBJECT *obj, 21251 int type, 21252 const unsigned char *bytes, 21253 int len); 21254 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_NID(struct stack_st_X509_ATTRIBUTE 21255 **x, int nid, int type, 21256 const unsigned char *bytes, 21257 int len); 21258 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_txt(struct stack_st_X509_ATTRIBUTE 21259 **x, const char *attrname, 21260 int type, 21261 const unsigned char *bytes, 21262 int len); 21263 void *X509at_get0_data_by_OBJ(struct stack_st_X509_ATTRIBUTE *x, ASN1_OBJECT *obj, 21264 int lastpos, int type); 21265 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, 21266 int atrtype, const void *data, 21267 int len); 21268 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, 21269 const ASN1_OBJECT *obj, 21270 int atrtype, const void *data, 21271 int len); 21272 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, 21273 const char *atrname, int type, 21274 const unsigned char *bytes, 21275 int len); 21276 int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); 21277 int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, 21278 const void *data, int len); 21279 void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, 21280 void *data); 21281 int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); 21282 ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); 21283 ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); 21284 21285 int EVP_PKEY_get_attr_count(const EVP_PKEY *key); 21286 int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); 21287 int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, 21288 int lastpos); 21289 X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); 21290 X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); 21291 int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); 21292 int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, 21293 const ASN1_OBJECT *obj, int type, 21294 const unsigned char *bytes, int len); 21295 int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, 21296 int nid, int type, 21297 const unsigned char *bytes, int len); 21298 int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, 21299 const char *attrname, int type, 21300 const unsigned char *bytes, int len); 21301 21302 int X509_verify_cert(X509_STORE_CTX *ctx); 21303 21304 /* lookup a cert from a X509 STACK */ 21305 X509 *X509_find_by_issuer_and_serial(struct stack_st_X509 *sk, X509_NAME *name, 21306 ASN1_INTEGER *serial); 21307 X509 *X509_find_by_subject(struct stack_st_X509 *sk, X509_NAME *name); 21308 21309 PBEPARAM *PBEPARAM_new(void); void PBEPARAM_free(PBEPARAM *a); PBEPARAM *d2i_PBEPARAM(PBEPARAM **a, const unsigned char **in, long len); int i2d_PBEPARAM(PBEPARAM *a, unsigned char **out); extern const ASN1_ITEM PBEPARAM_it; 21310 PBE2PARAM *PBE2PARAM_new(void); void PBE2PARAM_free(PBE2PARAM *a); PBE2PARAM *d2i_PBE2PARAM(PBE2PARAM **a, const unsigned char **in, long len); int i2d_PBE2PARAM(PBE2PARAM *a, unsigned char **out); extern const ASN1_ITEM PBE2PARAM_it; 21311 PBKDF2PARAM *PBKDF2PARAM_new(void); void PBKDF2PARAM_free(PBKDF2PARAM *a); PBKDF2PARAM *d2i_PBKDF2PARAM(PBKDF2PARAM **a, const unsigned char **in, long len); int i2d_PBKDF2PARAM(PBKDF2PARAM *a, unsigned char **out); extern const ASN1_ITEM PBKDF2PARAM_it; 21312 21313 int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, 21314 const unsigned char *salt, int saltlen); 21315 21316 X509_ALGOR *PKCS5_pbe_set(int alg, int iter, 21317 const unsigned char *salt, int saltlen); 21318 X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, 21319 unsigned char *salt, int saltlen); 21320 X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, 21321 unsigned char *salt, int saltlen, 21322 unsigned char *aiv, int prf_nid); 21323 21324 X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, 21325 int prf_nid, int keylen); 21326 21327 /* PKCS#8 utilities */ 21328 21329 PKCS8_PRIV_KEY_INFO *PKCS8_PRIV_KEY_INFO_new(void); void PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *a); PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO **a, const unsigned char **in, long len); int i2d_PKCS8_PRIV_KEY_INFO(PKCS8_PRIV_KEY_INFO *a, unsigned char **out); extern const ASN1_ITEM PKCS8_PRIV_KEY_INFO_it; 21330 21331 EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); 21332 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); 21333 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); 21334 PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); 21335 21336 int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, 21337 int version, int ptype, void *pval, 21338 unsigned char *penc, int penclen); 21339 int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, 21340 const unsigned char **pk, int *ppklen, 21341 X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); 21342 21343 int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, 21344 int ptype, void *pval, 21345 unsigned char *penc, int penclen); 21346 int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, 21347 const unsigned char **pk, int *ppklen, 21348 X509_ALGOR **pa, X509_PUBKEY *pub); 21349 21350 int X509_check_trust(X509 *x, int id, int flags); 21351 int X509_TRUST_get_count(void); 21352 X509_TRUST *X509_TRUST_get0(int idx); 21353 int X509_TRUST_get_by_id(int id); 21354 int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), 21355 char *name, int arg1, void *arg2); 21356 void X509_TRUST_cleanup(void); 21357 int X509_TRUST_get_flags(X509_TRUST *xp); 21358 char *X509_TRUST_get0_name(X509_TRUST *xp); 21359 int X509_TRUST_get_trust(X509_TRUST *xp); 21360 21361 /* BEGIN ERROR CODES */ 21362 /* 21363 * The following lines are auto generated by the script mkerr.pl. Any changes 21364 * made after this point may be overwritten when the script is next run. 21365 */ 21366 21367 void ERR_load_X509_strings(void); 21368 21369 /* Error codes for the X509 functions. */ 21370 21371 /* Function codes. */ 21372 # 1291 "/usr/include/openssl/x509.h" 3 4 21373 /* Reason codes. */ 21374 # 45 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 21375 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 1 21376 /* 21377 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 21378 * 21379 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21380 * Use is subject to license terms. 21381 */ 21382 21383 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 21384 /* All Rights Reserved */ 21385 21386 /* 21387 * BIND 4.9.3: 21388 * 21389 * Copyright (c) 1980, 1983, 1988, 1993 21390 * The Regents of the University of California. All rights reserved. 21391 * 21392 * Redistribution and use in source and binary forms, with or without 21393 * modification, are permitted provided that the following conditions 21394 * are met: 21395 * 1. Redistributions of source code must retain the above copyright 21396 * notice, this list of conditions and the following disclaimer. 21397 * 2. Redistributions in binary form must reproduce the above copyright 21398 * notice, this list of conditions and the following disclaimer in the 21399 * documentation and/or other materials provided with the distribution. 21400 * 3. All advertising materials mentioning features or use of this software 21401 * must display the following acknowledgement: 21402 * This product includes software developed by the University of 21403 * California, Berkeley and its contributors. 21404 * 4. Neither the name of the University nor the names of its contributors 21405 * may be used to endorse or promote products derived from this software 21406 * without specific prior written permission. 21407 * 21408 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21409 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21410 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21411 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21412 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21413 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21414 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21415 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21416 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21417 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 21418 * SUCH DAMAGE. 21419 * - 21420 * Portions Copyright (c) 1993 by Digital Equipment Corporation. 21421 * 21422 * Permission to use, copy, modify, and distribute this software for any 21423 * purpose with or without fee is hereby granted, provided that the above 21424 * copyright notice and this permission notice appear in all copies, and that 21425 * the name of Digital Equipment Corporation not be used in advertising or 21426 * publicity pertaining to distribution of the document or software without 21427 * specific, written prior permission. 21428 * 21429 * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL 21430 * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES 21431 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT 21432 * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 21433 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 21434 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 21435 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 21436 * SOFTWARE. 21437 * --Copyright-- 21438 * 21439 * End BIND 4.9.3 21440 */ 21441 21442 /* 21443 * Structures returned by network data base library. 21444 * All addresses are supplied in host order, and 21445 * returned in network order (suitable for use in system calls). 21446 */ 21447 21448 21449 21450 21451 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 21452 /* 21453 * CDDL HEADER START 21454 * 21455 * The contents of this file are subject to the terms of the 21456 * Common Development and Distribution License (the "License"). 21457 * You may not use this file except in compliance with the License. 21458 * 21459 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21460 * or http://www.opensolaris.org/os/licensing. 21461 * See the License for the specific language governing permissions 21462 * and limitations under the License. 21463 * 21464 * When distributing Covered Code, include this CDDL HEADER in each 21465 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21466 * If applicable, add the following below this CDDL HEADER, with the 21467 * fields enclosed by brackets "[]" replaced with your own identifying 21468 * information: Portions Copyright [yyyy] [name of copyright owner] 21469 * 21470 * CDDL HEADER END 21471 */ 21472 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 21473 /* All Rights Reserved */ 21474 21475 21476 /* 21477 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21478 * Use is subject to license terms. 21479 * 21480 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 21481 * Copyright 2016 Joyent, Inc. 21482 */ 21483 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 21484 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1 21485 /* 21486 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21487 * Use is subject to license terms. 21488 * 21489 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 21490 */ 21491 /* 21492 * Copyright (c) 1982, 1986 Regents of the University of California. 21493 * All rights reserved. 21494 * 21495 * Redistribution and use in source and binary forms are permitted 21496 * provided that this notice is preserved and that due credit is given 21497 * to the University of California at Berkeley. The name of the University 21498 * may not be used to endorse or promote products derived from this 21499 * software without specific prior written permission. This software 21500 * is provided ``as is'' without express or implied warranty. 21501 */ 21502 21503 /* 21504 * Constants and structures defined by the internet system, 21505 * according to following documents 21506 * 21507 * Internet ASSIGNED NUMBERS (RFC1700) and its successors: 21508 * http://www.iana.org/assignments/protocol-numbers 21509 * http://www.iana.org/assignments/port-numbers 21510 * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors) 21511 * 21512 */ 21513 21514 21515 21516 21517 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 21518 /* 21519 * CDDL HEADER START 21520 * 21521 * The contents of this file are subject to the terms of the 21522 * Common Development and Distribution License (the "License"). 21523 * You may not use this file except in compliance with the License. 21524 * 21525 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21526 * or http://www.opensolaris.org/os/licensing. 21527 * See the License for the specific language governing permissions 21528 * and limitations under the License. 21529 * 21530 * When distributing Covered Code, include this CDDL HEADER in each 21531 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21532 * If applicable, add the following below this CDDL HEADER, with the 21533 * fields enclosed by brackets "[]" replaced with your own identifying 21534 * information: Portions Copyright [yyyy] [name of copyright owner] 21535 * 21536 * CDDL HEADER END 21537 */ 21538 21539 /* 21540 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 21541 * Copyright 2016 Joyent, Inc. 21542 * 21543 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 21544 * Use is subject to license terms. 21545 */ 21546 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 21547 21548 21549 21550 21551 21552 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 21553 /* 21554 * CDDL HEADER START 21555 * 21556 * The contents of this file are subject to the terms of the 21557 * Common Development and Distribution License (the "License"). 21558 * You may not use this file except in compliance with the License. 21559 * 21560 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21561 * or http://www.opensolaris.org/os/licensing. 21562 * See the License for the specific language governing permissions 21563 * and limitations under the License. 21564 * 21565 * When distributing Covered Code, include this CDDL HEADER in each 21566 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21567 * If applicable, add the following below this CDDL HEADER, with the 21568 * fields enclosed by brackets "[]" replaced with your own identifying 21569 * information: Portions Copyright [yyyy] [name of copyright owner] 21570 * 21571 * CDDL HEADER END 21572 */ 21573 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 21574 /* All Rights Reserved */ 21575 21576 21577 /* 21578 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21579 * Use is subject to license terms. 21580 * 21581 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 21582 * Copyright 2016 Joyent, Inc. 21583 */ 21584 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 21585 21586 21587 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1 21588 /* 21589 * CDDL HEADER START 21590 * 21591 * The contents of this file are subject to the terms of the 21592 * Common Development and Distribution License (the "License"). 21593 * You may not use this file except in compliance with the License. 21594 * 21595 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21596 * or http://www.opensolaris.org/os/licensing. 21597 * See the License for the specific language governing permissions 21598 * and limitations under the License. 21599 * 21600 * When distributing Covered Code, include this CDDL HEADER in each 21601 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21602 * If applicable, add the following below this CDDL HEADER, with the 21603 * fields enclosed by brackets "[]" replaced with your own identifying 21604 * information: Portions Copyright [yyyy] [name of copyright owner] 21605 * 21606 * CDDL HEADER END 21607 */ 21608 /* 21609 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21610 * Use is subject to license terms. 21611 */ 21612 21613 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 21614 /* All Rights Reserved */ 21615 21616 /* 21617 * Portions of this source code were derived from Berkeley 4.3 BSD 21618 * under license from the Regents of the University of California. 21619 */ 21620 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 21621 typedef uint16_t sa_family_t; 21622 21623 21624 /* 21625 * Structure used by kernel to store most 21626 * addresses. 21627 */ 21628 struct sockaddr { 21629 sa_family_t sa_family; /* address family */ 21630 char sa_data[14]; /* up to 14 bytes of direct address */ 21631 }; 21632 21633 21634 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 1 21635 /* 21636 * CDDL HEADER START 21637 * 21638 * The contents of this file are subject to the terms of the 21639 * Common Development and Distribution License (the "License"). 21640 * You may not use this file except in compliance with the License. 21641 * 21642 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21643 * or http://www.opensolaris.org/os/licensing. 21644 * See the License for the specific language governing permissions 21645 * and limitations under the License. 21646 * 21647 * When distributing Covered Code, include this CDDL HEADER in each 21648 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21649 * If applicable, add the following below this CDDL HEADER, with the 21650 * fields enclosed by brackets "[]" replaced with your own identifying 21651 * information: Portions Copyright [yyyy] [name of copyright owner] 21652 * 21653 * CDDL HEADER END 21654 */ 21655 /* 21656 * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. 21657 */ 21658 21659 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 21660 /* All Rights Reserved */ 21661 21662 /* 21663 * University Copyright- Copyright (c) 1982, 1986, 1988 21664 * The Regents of the University of California 21665 * All Rights Reserved 21666 * 21667 * University Acknowledgment- Portions of this document are derived from 21668 * software developed by the University of California, Berkeley, and its 21669 * contributors. 21670 */ 21671 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 21672 /* 21673 * Definitions for UNIX IPC domain. 21674 */ 21675 struct sockaddr_un { 21676 sa_family_t sun_family; /* AF_UNIX */ 21677 char sun_path[108]; /* path name (gag) */ 21678 }; 21679 21680 21681 21682 /* 21683 * NOTE: If we ever go to BSD-style sun_len + sun_family, this macro needs to 21684 * change. 21685 * 21686 * Also, include a strlen() prototype, and we have to protect it w.r.t. 21687 * UNIX{98,03}. And because there's strlen, we need size_t as well. 21688 */ 21689 # 76 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 21690 extern size_t strlen(const char *); 21691 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2 21692 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if_dl.h" 1 21693 /* 21694 * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. 21695 * Use is subject to license terms. 21696 */ 21697 /* 21698 * Copyright (c) 1990, 1993 21699 * The Regents of the University of California. All rights reserved. 21700 * 21701 * Redistribution and use in source and binary forms, with or without 21702 * modification, are permitted provided that the following conditions 21703 * are met: 21704 * 1. Redistributions of source code must retain the above copyright 21705 * notice, this list of conditions and the following disclaimer. 21706 * 2. Redistributions in binary form must reproduce the above copyright 21707 * notice, this list of conditions and the following disclaimer in the 21708 * documentation and/or other materials provided with the distribution. 21709 * 3. All advertising materials mentioning features or use of this software 21710 * must display the following acknowledgement: 21711 * This product includes software developed by the University of 21712 * California, Berkeley and its contributors. 21713 * 4. Neither the name of the University nor the names of its contributors 21714 * may be used to endorse or promote products derived from this software 21715 * without specific prior written permission. 21716 * 21717 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21718 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21719 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21720 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21721 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21722 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21723 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21724 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21725 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21726 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 21727 * SUCH DAMAGE. 21728 */ 21729 21730 21731 21732 21733 #pragma ident "%Z%%M% %I% %E% SMI" 21734 /* from UCB 8.1 (Berkeley) 6/10/93 */ 21735 21736 21737 21738 21739 21740 /* 21741 * A Link-Level Sockaddr may specify the interface in one of two 21742 * ways: either by means of a system-provided index number (computed 21743 * anew and possibly differently on every reboot), or by a human-readable 21744 * string such as "il0" (for managerial convenience). 21745 * 21746 * Census taking actions, such as something akin to SIOCGCONF would return 21747 * both the index and the human name. 21748 * 21749 * High volume transactions (such as giving a link-level ``from'' address 21750 * in a recvfrom or recvmsg call) may be likely only to provide the indexed 21751 * form, (which requires fewer copy operations and less space). 21752 * 21753 * The form and interpretation of the link-level address is purely a matter 21754 * of convention between the device driver and its consumers; however, it is 21755 * expected that all drivers for an interface of a given if_type will agree. 21756 */ 21757 21758 /* 21759 * Structure of a Link-Level sockaddr: 21760 */ 21761 struct sockaddr_dl { 21762 ushort_t sdl_family; /* AF_LINK */ 21763 ushort_t sdl_index; /* if != 0, system given index for interface */ 21764 uchar_t sdl_type; /* interface type */ 21765 uchar_t sdl_nlen; /* interface name length, no trailing 0 reqd. */ 21766 uchar_t sdl_alen; /* link level address length */ 21767 uchar_t sdl_slen; /* link layer selector length */ 21768 char sdl_data[244]; /* contains both if name and ll address */ 21769 }; 21770 21771 21772 21773 21774 extern char *_link_ntoa(const unsigned char *, char *, int, int); 21775 extern unsigned char *_link_aton(const char *, int *); 21776 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2 21777 21778 21779 21780 /* 21781 * sockaddr_storage: 21782 * Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr 21783 * structures. Has sufficient size and alignment for those sockaddrs. 21784 */ 21785 21786 /* 21787 * Desired maximum size, alignment size and related types. 21788 */ 21789 21790 21791 /* 21792 * To represent desired sockaddr max alignment for platform, a 21793 * type is chosen which may depend on implementation platform architecture. 21794 * Type chosen based on alignment size restrictions from <sys/isa_defs.h>. 21795 * We desire to force up to (but no more than) 64-bit (8 byte) alignment, 21796 * on platforms where it is possible to do so. (e.g not possible on ia32). 21797 * For all currently supported platforms by our implementation 21798 * in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64) 21799 * type "double" is suitable for that intent. 21800 * 21801 * Note: Type "double" is chosen over the more obvious integer type int64_t. 21802 * int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32. 21803 */ 21804 typedef double sockaddr_maxalign_t; 21805 21806 21807 21808 /* 21809 * Definitions used for sockaddr_storage structure paddings design. 21810 */ 21811 21812 21813 21814 21815 struct sockaddr_storage { 21816 sa_family_t ss_family; /* Address family */ 21817 /* Following fields are implementation specific */ 21818 char _ss_pad1[((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t))]; 21819 sockaddr_maxalign_t _ss_align; 21820 char _ss_pad2[(256 - (sizeof (sa_family_t)+ ((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t)) + (sizeof (sockaddr_maxalign_t))))]; 21821 }; 21822 21823 21824 /* 21825 * To be compatible with the Linux interfaces used, this structure is 21826 * placed in socket_impl.h so that an include for <sys/socket.h> will 21827 * pickup this structure. This structure is for use with PF_PACKET 21828 * sockets. 21829 */ 21830 struct sockaddr_ll { 21831 uint16_t sll_family; 21832 uint16_t sll_protocol; 21833 int32_t sll_ifindex; 21834 uint16_t sll_hatype; 21835 uint8_t sll_pkttype; 21836 uint8_t sll_halen; 21837 uint8_t sll_addr[8]; 21838 }; 21839 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 21840 21841 21842 21843 21844 21845 /* 21846 * The socklen definitions are reproduced here from sys/socket.h so as to 21847 * not introduce that namespace into existing users of netinet/in.h. 21848 */ 21849 21850 21851 21852 typedef uint32_t socklen_t; 21853 21854 21855 21856 21857 21858 typedef void *Psocklen_t; 21859 21860 21861 21862 21863 21864 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 1 21865 /* 21866 * CDDL HEADER START 21867 * 21868 * The contents of this file are subject to the terms of the 21869 * Common Development and Distribution License (the "License"). 21870 * You may not use this file except in compliance with the License. 21871 * 21872 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21873 * or http://www.opensolaris.org/os/licensing. 21874 * See the License for the specific language governing permissions 21875 * and limitations under the License. 21876 * 21877 * When distributing Covered Code, include this CDDL HEADER in each 21878 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21879 * If applicable, add the following below this CDDL HEADER, with the 21880 * fields enclosed by brackets "[]" replaced with your own identifying 21881 * information: Portions Copyright [yyyy] [name of copyright owner] 21882 * 21883 * CDDL HEADER END 21884 */ 21885 /* 21886 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 21887 * Use is subject to license terms. 21888 */ 21889 21890 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 21891 /* All Rights Reserved */ 21892 21893 21894 21895 21896 21897 /* 21898 * For source compatibility 21899 */ 21900 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 21901 /* 21902 * CDDL HEADER START 21903 * 21904 * The contents of this file are subject to the terms of the 21905 * Common Development and Distribution License (the "License"). 21906 * You may not use this file except in compliance with the License. 21907 * 21908 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21909 * or http://www.opensolaris.org/os/licensing. 21910 * See the License for the specific language governing permissions 21911 * and limitations under the License. 21912 * 21913 * 21914 * When distributing Covered Code, include this CDDL HEADER in each 21915 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21916 * If applicable, add the following below this CDDL HEADER, with the 21917 * fields enclosed by brackets "[]" replaced with your own identifying 21918 * information: Portions Copyright [yyyy] [name of copyright owner] 21919 * 21920 * CDDL HEADER END 21921 */ 21922 21923 /* 21924 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 21925 * Use is subject to license terms. 21926 * Copyright 2016 Joyent, Inc. 21927 */ 21928 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 21929 21930 21931 21932 21933 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 1 21934 /* 21935 * CDDL HEADER START 21936 * 21937 * The contents of this file are subject to the terms of the 21938 * Common Development and Distribution License, Version 1.0 only 21939 * (the "License"). You may not use this file except in compliance 21940 * with the License. 21941 * 21942 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 21943 * or http://www.opensolaris.org/os/licensing. 21944 * See the License for the specific language governing permissions 21945 * and limitations under the License. 21946 * 21947 * When distributing Covered Code, include this CDDL HEADER in each 21948 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 21949 * If applicable, add the following below this CDDL HEADER, with the 21950 * fields enclosed by brackets "[]" replaced with your own identifying 21951 * information: Portions Copyright [yyyy] [name of copyright owner] 21952 * 21953 * CDDL HEADER END 21954 */ 21955 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 21956 /* All Rights Reserved */ 21957 21958 21959 /* 21960 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 21961 * 21962 * Copyright (c) 1995, 1998 by Sun Microsystems, Inc. 21963 * All rights reserved. 21964 */ 21965 21966 /* 21967 * Copyright 2015, Joyent, Inc. 21968 */ 21969 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 21970 /* 21971 * Structure of file descriptor/event pairs supplied in 21972 * the poll arrays. 21973 */ 21974 typedef struct pollfd { 21975 int fd; /* file desc to poll */ 21976 short events; /* events of interest on fd */ 21977 short revents; /* events that occurred on fd */ 21978 } pollfd_t; 21979 21980 typedef unsigned long nfds_t; 21981 21982 /* 21983 * Testable select events 21984 */ 21985 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 21986 /* 21987 * Non-testable poll events (may not be specified in events field, 21988 * but may be returned in revents field). 21989 */ 21990 21991 21992 21993 21994 /* 21995 * These events will never be specified in revents, but may be specified in 21996 * events to control /dev/poll behavior. 21997 */ 21998 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 21999 int poll(struct pollfd *, nfds_t, int); 22000 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 22001 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/strmdep.h" 1 22002 /* 22003 * CDDL HEADER START 22004 * 22005 * The contents of this file are subject to the terms of the 22006 * Common Development and Distribution License, Version 1.0 only 22007 * (the "License"). You may not use this file except in compliance 22008 * with the License. 22009 * 22010 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22011 * or http://www.opensolaris.org/os/licensing. 22012 * See the License for the specific language governing permissions 22013 * and limitations under the License. 22014 * 22015 * When distributing Covered Code, include this CDDL HEADER in each 22016 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22017 * If applicable, add the following below this CDDL HEADER, with the 22018 * fields enclosed by brackets "[]" replaced with your own identifying 22019 * information: Portions Copyright [yyyy] [name of copyright owner] 22020 * 22021 * CDDL HEADER END 22022 */ 22023 /* 22024 * Copyright (c) 1997-1998 by Sun Microsystems, Inc. 22025 * All rights reserved. 22026 */ 22027 22028 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22029 /* All Rights Reserved */ 22030 22031 22032 22033 22034 22035 #pragma ident "%Z%%M% %I% %E% SMI" 22036 22037 22038 22039 22040 22041 /* 22042 * This file contains all machine-dependent declarations 22043 * in STREAMS. 22044 */ 22045 22046 /* 22047 * Copy data from one data buffer to another. 22048 * The addresses must be word aligned - if not, use bcopy! 22049 */ 22050 22051 22052 /* 22053 * save the address of the calling function on the 3b2 to 22054 * enable tracking of who is allocating message blocks 22055 */ 22056 22057 22058 /* 22059 * macro to check pointer alignment 22060 * (true if alignment is sufficient for worst case) 22061 */ 22062 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 22063 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1 22064 /* 22065 * CDDL HEADER START 22066 * 22067 * The contents of this file are subject to the terms of the 22068 * Common Development and Distribution License (the "License"). 22069 * You may not use this file except in compliance with the License. 22070 * 22071 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22072 * or http://www.opensolaris.org/os/licensing. 22073 * See the License for the specific language governing permissions 22074 * and limitations under the License. 22075 * 22076 * When distributing Covered Code, include this CDDL HEADER in each 22077 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22078 * If applicable, add the following below this CDDL HEADER, with the 22079 * fields enclosed by brackets "[]" replaced with your own identifying 22080 * information: Portions Copyright [yyyy] [name of copyright owner] 22081 * 22082 * CDDL HEADER END 22083 */ 22084 /* 22085 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22086 * Use is subject to license terms. 22087 */ 22088 22089 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 22090 /* All Rights Reserved */ 22091 22092 /* 22093 * Portions of this source code were derived from Berkeley 4.3 BSD 22094 * under license from the Regents of the University of California. 22095 */ 22096 22097 22098 22099 22100 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22101 /* 22102 * CDDL HEADER START 22103 * 22104 * The contents of this file are subject to the terms of the 22105 * Common Development and Distribution License (the "License"). 22106 * You may not use this file except in compliance with the License. 22107 * 22108 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22109 * or http://www.opensolaris.org/os/licensing. 22110 * See the License for the specific language governing permissions 22111 * and limitations under the License. 22112 * 22113 * When distributing Covered Code, include this CDDL HEADER in each 22114 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22115 * If applicable, add the following below this CDDL HEADER, with the 22116 * fields enclosed by brackets "[]" replaced with your own identifying 22117 * information: Portions Copyright [yyyy] [name of copyright owner] 22118 * 22119 * CDDL HEADER END 22120 */ 22121 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22122 /* All Rights Reserved */ 22123 22124 22125 /* 22126 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22127 * Use is subject to license terms. 22128 * 22129 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22130 * Copyright 2016 Joyent, Inc. 22131 */ 22132 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 2 22133 22134 22135 22136 22137 22138 /* 22139 * The credential is an opaque kernel private data structure defined in 22140 * <sys/cred_impl.h>. 22141 */ 22142 22143 typedef struct cred cred_t; 22144 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 22145 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1 22146 /* 22147 * CDDL HEADER START 22148 * 22149 * The contents of this file are subject to the terms of the 22150 * Common Development and Distribution License, Version 1.0 only 22151 * (the "License"). You may not use this file except in compliance 22152 * with the License. 22153 * 22154 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22155 * or http://www.opensolaris.org/os/licensing. 22156 * See the License for the specific language governing permissions 22157 * and limitations under the License. 22158 * 22159 * When distributing Covered Code, include this CDDL HEADER in each 22160 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22161 * If applicable, add the following below this CDDL HEADER, with the 22162 * fields enclosed by brackets "[]" replaced with your own identifying 22163 * information: Portions Copyright [yyyy] [name of copyright owner] 22164 * 22165 * CDDL HEADER END 22166 */ 22167 /* 22168 * Copyright (c) 1991-1998 by Sun Microsystems, Inc. 22169 * All rights reserved. 22170 */ 22171 22172 /* 22173 * t_lock.h: Prototypes for disp_locks, plus include files 22174 * that describe the interfaces to kernel synch. 22175 * objects. 22176 */ 22177 22178 22179 22180 22181 #pragma ident "%Z%%M% %I% %E% SMI" 22182 22183 22184 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1 22185 /* 22186 * CDDL HEADER START 22187 * 22188 * The contents of this file are subject to the terms of the 22189 * Common Development and Distribution License (the "License"). 22190 * You may not use this file except in compliance with the License. 22191 * 22192 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22193 * or http://www.opensolaris.org/os/licensing. 22194 * See the License for the specific language governing permissions 22195 * and limitations under the License. 22196 * 22197 * When distributing Covered Code, include this CDDL HEADER in each 22198 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22199 * If applicable, add the following below this CDDL HEADER, with the 22200 * fields enclosed by brackets "[]" replaced with your own identifying 22201 * information: Portions Copyright [yyyy] [name of copyright owner] 22202 * 22203 * CDDL HEADER END 22204 */ 22205 /* 22206 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 22207 * Use is subject to license terms. 22208 * Copyright 2016 Joyent, Inc. 22209 */ 22210 22211 22212 22213 22214 #pragma ident "%Z%%M% %I% %E% SMI" 22215 22216 22217 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22218 /* 22219 * CDDL HEADER START 22220 * 22221 * The contents of this file are subject to the terms of the 22222 * Common Development and Distribution License (the "License"). 22223 * You may not use this file except in compliance with the License. 22224 * 22225 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22226 * or http://www.opensolaris.org/os/licensing. 22227 * See the License for the specific language governing permissions 22228 * and limitations under the License. 22229 * 22230 * When distributing Covered Code, include this CDDL HEADER in each 22231 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22232 * If applicable, add the following below this CDDL HEADER, with the 22233 * fields enclosed by brackets "[]" replaced with your own identifying 22234 * information: Portions Copyright [yyyy] [name of copyright owner] 22235 * 22236 * CDDL HEADER END 22237 */ 22238 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22239 /* All Rights Reserved */ 22240 22241 22242 /* 22243 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22244 * Use is subject to license terms. 22245 * 22246 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22247 * Copyright 2016 Joyent, Inc. 22248 */ 22249 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2 22250 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 22251 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22252 /* All Rights Reserved */ 22253 22254 22255 /* 22256 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 22257 * All rights reserved. The Berkeley software License Agreement 22258 * specifies the terms and conditions for redistribution. 22259 */ 22260 22261 /* 22262 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 22263 * 22264 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22265 * Use is subject to license terms. 22266 * 22267 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22268 */ 22269 22270 /* 22271 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 22272 */ 22273 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2 22274 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 22275 typedef lock_t disp_lock_t; /* dispatcher lock type */ 22276 22277 /* 22278 * SPIN_LOCK() macro indicates whether lock is implemented as a spin lock or 22279 * an adaptive mutex, depending on what interrupt levels use it. 22280 */ 22281 22282 22283 /* 22284 * Macro to control loops which spin on a lock and then check state 22285 * periodically. Its passed an integer, and returns a boolean value 22286 * that if true indicates its a good time to get the scheduler lock and 22287 * check the state of the current owner of the lock. 22288 */ 22289 22290 22291 /* 22292 * Externs for CLOCK_LOCK and clock resolution 22293 */ 22294 extern volatile uint32_t hres_lock; 22295 extern hrtime_t hrtime_base; 22296 extern int clock_res; 22297 22298 22299 22300 /* 22301 * The definitions of the symbolic interrupt levels: 22302 * 22303 * CLOCK_LEVEL => The level at which one must be to block the clock. 22304 * 22305 * LOCK_LEVEL => The highest level at which one may block (and thus the 22306 * highest level at which one may acquire adaptive locks) 22307 * Also the highest level at which one may be preempted. 22308 * 22309 * DISP_LEVEL => The level at which one must be to perform dispatcher 22310 * operations. 22311 * 22312 * The constraints on the platform: 22313 * 22314 * - CLOCK_LEVEL must be less than or equal to LOCK_LEVEL 22315 * - LOCK_LEVEL must be less than DISP_LEVEL 22316 * - DISP_LEVEL should be as close to LOCK_LEVEL as possible 22317 * 22318 * Note that LOCK_LEVEL and CLOCK_LEVEL have historically always been equal; 22319 * changing this relationship is probably possible but not advised. 22320 * 22321 */ 22322 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 22323 /* 22324 * The following mask is for the cpu_intr_actv bits corresponding to 22325 * high-level PILs. It should equal: 22326 * ((((1 << PIL_MAX + 1) - 1) >> LOCK_LEVEL + 1) << LOCK_LEVEL + 1) 22327 */ 22328 22329 22330 /* 22331 * The semaphore code depends on being able to represent a lock plus 22332 * owner in a single 32-bit word. (Mutexes used to have a similar 22333 * dependency, but no longer.) Thus the owner must contain at most 22334 * 24 significant bits. At present only threads and semaphores 22335 * must be aware of this vile constraint. Different ISAs may handle this 22336 * differently depending on their capabilities (e.g. compare-and-swap) 22337 * and limitations (e.g. constraints on alignment and/or KERNELBASE). 22338 */ 22339 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22340 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1 22341 /* 22342 * CDDL HEADER START 22343 * 22344 * The contents of this file are subject to the terms of the 22345 * Common Development and Distribution License (the "License"). 22346 * You may not use this file except in compliance with the License. 22347 * 22348 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22349 * or http://www.opensolaris.org/os/licensing. 22350 * See the License for the specific language governing permissions 22351 * and limitations under the License. 22352 * 22353 * When distributing Covered Code, include this CDDL HEADER in each 22354 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22355 * If applicable, add the following below this CDDL HEADER, with the 22356 * fields enclosed by brackets "[]" replaced with your own identifying 22357 * information: Portions Copyright [yyyy] [name of copyright owner] 22358 * 22359 * CDDL HEADER END 22360 */ 22361 22362 /* 22363 * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 22364 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. 22365 */ 22366 22367 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 22368 /* All Rights Reserved */ 22369 22370 /* 22371 * University Copyright- Copyright (c) 1982, 1986, 1988 22372 * The Regents of the University of California 22373 * All Rights Reserved 22374 * 22375 * University Acknowledgment- Portions of this document are derived from 22376 * software developed by the University of California, Berkeley, and its 22377 * contributors. 22378 */ 22379 22380 22381 22382 22383 22384 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22385 /* 22386 * CDDL HEADER START 22387 * 22388 * The contents of this file are subject to the terms of the 22389 * Common Development and Distribution License (the "License"). 22390 * You may not use this file except in compliance with the License. 22391 * 22392 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22393 * or http://www.opensolaris.org/os/licensing. 22394 * See the License for the specific language governing permissions 22395 * and limitations under the License. 22396 * 22397 * When distributing Covered Code, include this CDDL HEADER in each 22398 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22399 * If applicable, add the following below this CDDL HEADER, with the 22400 * fields enclosed by brackets "[]" replaced with your own identifying 22401 * information: Portions Copyright [yyyy] [name of copyright owner] 22402 * 22403 * CDDL HEADER END 22404 */ 22405 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22406 /* All Rights Reserved */ 22407 22408 22409 /* 22410 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22411 * Use is subject to license terms. 22412 * 22413 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22414 * Copyright 2016 Joyent, Inc. 22415 */ 22416 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22417 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 22418 /* 22419 * CDDL HEADER START 22420 * 22421 * The contents of this file are subject to the terms of the 22422 * Common Development and Distribution License (the "License"). 22423 * You may not use this file except in compliance with the License. 22424 * 22425 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22426 * or http://www.opensolaris.org/os/licensing. 22427 * See the License for the specific language governing permissions 22428 * and limitations under the License. 22429 * 22430 * 22431 * When distributing Covered Code, include this CDDL HEADER in each 22432 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22433 * If applicable, add the following below this CDDL HEADER, with the 22434 * fields enclosed by brackets "[]" replaced with your own identifying 22435 * information: Portions Copyright [yyyy] [name of copyright owner] 22436 * 22437 * CDDL HEADER END 22438 */ 22439 22440 /* 22441 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 22442 * Use is subject to license terms. 22443 * Copyright 2016 Joyent, Inc. 22444 */ 22445 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22446 22447 22448 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 22449 /* 22450 * This file and its contents are supplied under the terms of the 22451 * Common Development and Distribution License ("CDDL"), version 1.0. 22452 * You may only use this file in accordance with the terms of version 22453 * 1.0 of the CDDL. 22454 * 22455 * A full copy of the text of the CDDL should have accompanied this 22456 * source. A copy of the CDDL is also available via the Internet at 22457 * http://www.illumos.org/license/CDDL. 22458 */ 22459 22460 /* 22461 * Copyright 2014-2016 PALO, Richard. 22462 */ 22463 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22464 22465 22466 22467 22468 22469 /* 22470 * Fundamental variables; don't change too often. 22471 */ 22472 22473 /* 22474 * _POSIX_VDISABLE has historically been defined in <sys/param.h> since 22475 * an early merge with AT&T source. It has also historically been defined 22476 * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially 22477 * required the existence of _POSIX_VDISABLE in <sys/termios.h>. 22478 * Subsequent versions of the IEEE Standard as well as the X/Open 22479 * specifications required that _POSIX_VDISABLE be defined in <unistd.h> 22480 * while still allowing for it's existence in other headers. With the 22481 * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>. 22482 */ 22483 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22484 /* compatibility purposes only */ 22485 /* and will be removed in a */ 22486 /* later release */ 22487 22488 /* 22489 * These define the maximum and minimum allowable values of the 22490 * configurable parameter NGROUPS_MAX. 22491 */ 22492 22493 22494 22495 22496 /* 22497 * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h. 22498 */ 22499 22500 22501 /* 22502 * Default process priority. Keep it in sync with limits.h. 22503 */ 22504 22505 22506 /* 22507 * Fundamental constants of the implementation--cannot be changed easily. 22508 */ 22509 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22510 /* REMOTE -- whether machine is primary, secondary, or regular */ 22511 22512 22513 22514 /* 22515 * MAXPATHLEN defines the longest permissible path length, 22516 * including the terminating null, after expanding symbolic links. 22517 * TYPICALMAXPATHLEN is used in a few places as an optimization 22518 * with a local buffer on the stack to avoid kmem_alloc(). 22519 * MAXSYMLINKS defines the maximum number of symbolic links 22520 * that may be expanded in a path name. It should be set high 22521 * enough to allow all legitimate uses, but halt infinite loops 22522 * reasonably quickly. 22523 * MAXNAMELEN is the length (including the terminating null) of 22524 * the longest permissible file (component) name. 22525 */ 22526 22527 22528 22529 22530 22531 /* 22532 * MAXLINKNAMELEN defines the longest possible permitted datalink name, 22533 * including the terminating NUL. Note that this must not be larger 22534 * than related networking constants such as LIFNAMSIZ. 22535 */ 22536 22537 22538 22539 22540 22541 22542 /* 22543 * The following are defined to be the same as 22544 * defined in /usr/include/limits.h. They are 22545 * needed for pipe and FIFO compatibility. 22546 */ 22547 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22548 /* macros replacing interleaving functions */ 22549 22550 22551 22552 /* 22553 * File system parameters and macros. 22554 * 22555 * The file system is made out of blocks of at most MAXBSIZE units, 22556 * with smaller units (fragments) only in the last direct block. 22557 * MAXBSIZE primarily determines the size of buffers in the buffer 22558 * pool. It may be made larger without any effect on existing 22559 * file systems; however making it smaller make make some file 22560 * systems unmountable. 22561 * 22562 * Note that the blocked devices are assumed to have DEV_BSIZE 22563 * "sectors" and that fragments must be some multiple of this size. 22564 */ 22565 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22566 /* 64 bit versions of btodb and dbtob */ 22567 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22568 /* 22569 * Size of arg list passed in by user. 22570 */ 22571 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22572 /* 22573 * Scale factor for scaled integers used to count 22574 * %cpu time and load averages. 22575 */ 22576 22577 22578 22579 /* 22580 * Delay units are in microseconds. 22581 * 22582 * XXX These macros are not part of the DDI! 22583 */ 22584 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22585 /* 22586 * The following is to free utilities from machine dependencies within 22587 * an architecture. Must be included after definition of DEV_BSIZE. 22588 */ 22589 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 22590 /* 22591 * The following are assorted machine dependent values which can be 22592 * obtained in a machine independent manner through sysconf(2) or 22593 * sysinfo(2). In order to guarantee that these provide the expected 22594 * value at all times, the System Private interface (leading underscore) 22595 * is used. 22596 */ 22597 22598 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1 22599 /* 22600 * CDDL HEADER START 22601 * 22602 * The contents of this file are subject to the terms of the 22603 * Common Development and Distribution License (the "License"). 22604 * You may not use this file except in compliance with the License. 22605 * 22606 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22607 * or http://www.opensolaris.org/os/licensing. 22608 * See the License for the specific language governing permissions 22609 * and limitations under the License. 22610 * 22611 * When distributing Covered Code, include this CDDL HEADER in each 22612 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22613 * If applicable, add the following below this CDDL HEADER, with the 22614 * fields enclosed by brackets "[]" replaced with your own identifying 22615 * information: Portions Copyright [yyyy] [name of copyright owner] 22616 * 22617 * CDDL HEADER END 22618 */ 22619 22620 /* 22621 * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 22622 * All Rights Reserved 22623 * 22624 */ 22625 22626 /* 22627 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22628 * Use is subject to license terms. 22629 */ 22630 22631 /* 22632 * WARNING: This is an implementation-specific header, 22633 * its contents are not guaranteed. Applications 22634 * should include <unistd.h> and not this header. 22635 */ 22636 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 22637 22638 22639 22640 22641 22642 22643 extern long _sysconf(int); /* System Private interface to sysconf() */ 22644 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22645 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1 22646 /* 22647 * CDDL HEADER START 22648 * 22649 * The contents of this file are subject to the terms of the 22650 * Common Development and Distribution License (the "License"). 22651 * You may not use this file except in compliance with the License. 22652 * 22653 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22654 * or http://www.opensolaris.org/os/licensing. 22655 * See the License for the specific language governing permissions 22656 * and limitations under the License. 22657 * 22658 * When distributing Covered Code, include this CDDL HEADER in each 22659 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22660 * If applicable, add the following below this CDDL HEADER, with the 22661 * fields enclosed by brackets "[]" replaced with your own identifying 22662 * information: Portions Copyright [yyyy] [name of copyright owner] 22663 * 22664 * CDDL HEADER END 22665 */ 22666 /* 22667 * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved. 22668 */ 22669 22670 22671 22672 22673 22674 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22675 /* 22676 * CDDL HEADER START 22677 * 22678 * The contents of this file are subject to the terms of the 22679 * Common Development and Distribution License (the "License"). 22680 * You may not use this file except in compliance with the License. 22681 * 22682 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22683 * or http://www.opensolaris.org/os/licensing. 22684 * See the License for the specific language governing permissions 22685 * and limitations under the License. 22686 * 22687 * When distributing Covered Code, include this CDDL HEADER in each 22688 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22689 * If applicable, add the following below this CDDL HEADER, with the 22690 * fields enclosed by brackets "[]" replaced with your own identifying 22691 * information: Portions Copyright [yyyy] [name of copyright owner] 22692 * 22693 * CDDL HEADER END 22694 */ 22695 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22696 /* All Rights Reserved */ 22697 22698 22699 /* 22700 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22701 * Use is subject to license terms. 22702 * 22703 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22704 * Copyright 2016 Joyent, Inc. 22705 */ 22706 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 2 22707 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 22708 /* 22709 * Public interface to mutual exclusion locks. See mutex(9F) for details. 22710 * 22711 * The basic mutex type is MUTEX_ADAPTIVE, which is expected to be used 22712 * in almost all of the kernel. MUTEX_SPIN provides interrupt blocking 22713 * and must be used in interrupt handlers above LOCK_LEVEL. The iblock 22714 * cookie argument to mutex_init() encodes the interrupt level to block. 22715 * The iblock cookie must be NULL for adaptive locks. 22716 * 22717 * MUTEX_DEFAULT is the type usually specified (except in drivers) to 22718 * mutex_init(). It is identical to MUTEX_ADAPTIVE. 22719 * 22720 * MUTEX_DRIVER is always used by drivers. mutex_init() converts this to 22721 * either MUTEX_ADAPTIVE or MUTEX_SPIN depending on the iblock cookie. 22722 * 22723 * Mutex statistics can be gathered on the fly, without rebooting or 22724 * recompiling the kernel, via the lockstat driver (lockstat(7D)). 22725 */ 22726 typedef enum { 22727 MUTEX_ADAPTIVE = 0, /* spin if owner is running, otherwise block */ 22728 MUTEX_SPIN = 1, /* block interrupts and spin */ 22729 MUTEX_DRIVER = 4, /* driver (DDI) mutex */ 22730 MUTEX_DEFAULT = 6 /* kernel default mutex */ 22731 } kmutex_type_t; 22732 22733 typedef struct mutex { 22734 22735 22736 22737 void *_opaque[2]; 22738 22739 } kmutex_t; 22740 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22741 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 1 22742 /* 22743 * CDDL HEADER START 22744 * 22745 * The contents of this file are subject to the terms of the 22746 * Common Development and Distribution License (the "License"). 22747 * You may not use this file except in compliance with the License. 22748 * 22749 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22750 * or http://www.opensolaris.org/os/licensing. 22751 * See the License for the specific language governing permissions 22752 * and limitations under the License. 22753 * 22754 * When distributing Covered Code, include this CDDL HEADER in each 22755 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22756 * If applicable, add the following below this CDDL HEADER, with the 22757 * fields enclosed by brackets "[]" replaced with your own identifying 22758 * information: Portions Copyright [yyyy] [name of copyright owner] 22759 * 22760 * CDDL HEADER END 22761 */ 22762 /* 22763 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 22764 * Use is subject to license terms. 22765 */ 22766 22767 /* 22768 * Copyright (c) 2013, Joyent, Inc. All rights reserved. 22769 */ 22770 22771 22772 22773 22774 /* 22775 * Public interface to readers/writer locks. See rwlock(9F) for details. 22776 */ 22777 22778 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22779 /* 22780 * CDDL HEADER START 22781 * 22782 * The contents of this file are subject to the terms of the 22783 * Common Development and Distribution License (the "License"). 22784 * You may not use this file except in compliance with the License. 22785 * 22786 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22787 * or http://www.opensolaris.org/os/licensing. 22788 * See the License for the specific language governing permissions 22789 * and limitations under the License. 22790 * 22791 * When distributing Covered Code, include this CDDL HEADER in each 22792 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22793 * If applicable, add the following below this CDDL HEADER, with the 22794 * fields enclosed by brackets "[]" replaced with your own identifying 22795 * information: Portions Copyright [yyyy] [name of copyright owner] 22796 * 22797 * CDDL HEADER END 22798 */ 22799 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22800 /* All Rights Reserved */ 22801 22802 22803 /* 22804 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22805 * Use is subject to license terms. 22806 * 22807 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22808 * Copyright 2016 Joyent, Inc. 22809 */ 22810 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 2 22811 22812 22813 22814 22815 22816 22817 22818 typedef enum { 22819 RW_DRIVER = 2, /* driver (DDI) rwlock */ 22820 RW_DEFAULT = 4 /* kernel default rwlock */ 22821 } krw_type_t; 22822 22823 typedef enum { 22824 RW_WRITER, 22825 RW_READER, 22826 RW_READER_STARVEWRITER 22827 } krw_t; 22828 22829 typedef struct _krwlock { 22830 void *_opaque[1]; 22831 } krwlock_t; 22832 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22833 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 1 22834 /* 22835 * CDDL HEADER START 22836 * 22837 * The contents of this file are subject to the terms of the 22838 * Common Development and Distribution License, Version 1.0 only 22839 * (the "License"). You may not use this file except in compliance 22840 * with the License. 22841 * 22842 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22843 * or http://www.opensolaris.org/os/licensing. 22844 * See the License for the specific language governing permissions 22845 * and limitations under the License. 22846 * 22847 * When distributing Covered Code, include this CDDL HEADER in each 22848 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22849 * If applicable, add the following below this CDDL HEADER, with the 22850 * fields enclosed by brackets "[]" replaced with your own identifying 22851 * information: Portions Copyright [yyyy] [name of copyright owner] 22852 * 22853 * CDDL HEADER END 22854 */ 22855 /* 22856 * Copyright (c) 1993-1998 by Sun Microsystems, Inc. 22857 * All rights reserved. 22858 */ 22859 22860 22861 22862 22863 #pragma ident "%Z%%M% %I% %E% SMI" 22864 22865 /* 22866 * Public interface to semaphores. See semaphore(9F) for details. 22867 */ 22868 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 22869 typedef enum { 22870 SEMA_DEFAULT, 22871 SEMA_DRIVER 22872 } ksema_type_t; 22873 22874 typedef struct _ksema { 22875 void * _opaque[2]; /* 2 words on 4 byte alignment */ 22876 } ksema_t; 22877 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22878 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 1 22879 /* 22880 * CDDL HEADER START 22881 * 22882 * The contents of this file are subject to the terms of the 22883 * Common Development and Distribution License (the "License"). 22884 * You may not use this file except in compliance with the License. 22885 * 22886 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22887 * or http://www.opensolaris.org/os/licensing. 22888 * See the License for the specific language governing permissions 22889 * and limitations under the License. 22890 * 22891 * When distributing Covered Code, include this CDDL HEADER in each 22892 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22893 * If applicable, add the following below this CDDL HEADER, with the 22894 * fields enclosed by brackets "[]" replaced with your own identifying 22895 * information: Portions Copyright [yyyy] [name of copyright owner] 22896 * 22897 * CDDL HEADER END 22898 */ 22899 /* 22900 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22901 * Use is subject to license terms. 22902 */ 22903 22904 /* 22905 * Copyright (c) 2012 by Delphix. All rights reserved. 22906 */ 22907 22908 /* 22909 * condvar.h: 22910 * 22911 * definitions for thread synchronization primitives: condition variables 22912 * This is the public part of the interface to condition variables. The 22913 * private (implementation-specific) part is in <arch>/sys/condvar_impl.h. 22914 */ 22915 22916 22917 22918 22919 22920 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22921 /* 22922 * CDDL HEADER START 22923 * 22924 * The contents of this file are subject to the terms of the 22925 * Common Development and Distribution License (the "License"). 22926 * You may not use this file except in compliance with the License. 22927 * 22928 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22929 * or http://www.opensolaris.org/os/licensing. 22930 * See the License for the specific language governing permissions 22931 * and limitations under the License. 22932 * 22933 * When distributing Covered Code, include this CDDL HEADER in each 22934 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22935 * If applicable, add the following below this CDDL HEADER, with the 22936 * fields enclosed by brackets "[]" replaced with your own identifying 22937 * information: Portions Copyright [yyyy] [name of copyright owner] 22938 * 22939 * CDDL HEADER END 22940 */ 22941 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22942 /* All Rights Reserved */ 22943 22944 22945 /* 22946 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22947 * Use is subject to license terms. 22948 * 22949 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22950 * Copyright 2016 Joyent, Inc. 22951 */ 22952 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2 22953 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 22954 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22955 /* All Rights Reserved */ 22956 22957 22958 /* 22959 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 22960 * All rights reserved. The Berkeley software License Agreement 22961 * specifies the terms and conditions for redistribution. 22962 */ 22963 22964 /* 22965 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 22966 * 22967 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22968 * Use is subject to license terms. 22969 * 22970 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22971 */ 22972 22973 /* 22974 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 22975 */ 22976 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2 22977 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 22978 /* 22979 * Condtion variables. 22980 */ 22981 22982 typedef struct _kcondvar { 22983 ushort_t _opaque; 22984 } kcondvar_t; 22985 22986 typedef enum { 22987 CV_DEFAULT, 22988 CV_DRIVER 22989 } kcv_type_t; 22990 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 22991 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 22992 /* 22993 * Mutual exclusion locks described in common/sys/mutex.h. 22994 * 22995 * Semaphores described in common/sys/semaphore.h. 22996 * 22997 * Readers/Writer locks described in common/sys/rwlock.h. 22998 * 22999 * Condition variables described in common/sys/condvar.h 23000 */ 23001 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23002 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 1 23003 /* 23004 * CDDL HEADER START 23005 * 23006 * The contents of this file are subject to the terms of the 23007 * Common Development and Distribution License, Version 1.0 only 23008 * (the "License"). You may not use this file except in compliance 23009 * with the License. 23010 * 23011 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23012 * or http://www.opensolaris.org/os/licensing. 23013 * See the License for the specific language governing permissions 23014 * and limitations under the License. 23015 * 23016 * When distributing Covered Code, include this CDDL HEADER in each 23017 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23018 * If applicable, add the following below this CDDL HEADER, with the 23019 * fields enclosed by brackets "[]" replaced with your own identifying 23020 * information: Portions Copyright [yyyy] [name of copyright owner] 23021 * 23022 * CDDL HEADER END 23023 */ 23024 /* 23025 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 23026 * Use is subject to license terms. 23027 */ 23028 23029 23030 23031 23032 #pragma ident "%Z%%M% %I% %E% SMI" 23033 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 23034 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 23035 /* 23036 * CDDL HEADER START 23037 * 23038 * The contents of this file are subject to the terms of the 23039 * Common Development and Distribution License (the "License"). 23040 * You may not use this file except in compliance with the License. 23041 * 23042 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23043 * or http://www.opensolaris.org/os/licensing. 23044 * See the License for the specific language governing permissions 23045 * and limitations under the License. 23046 * 23047 * 23048 * When distributing Covered Code, include this CDDL HEADER in each 23049 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23050 * If applicable, add the following below this CDDL HEADER, with the 23051 * fields enclosed by brackets "[]" replaced with your own identifying 23052 * information: Portions Copyright [yyyy] [name of copyright owner] 23053 * 23054 * CDDL HEADER END 23055 */ 23056 23057 /* 23058 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23059 * Use is subject to license terms. 23060 * Copyright 2016 Joyent, Inc. 23061 */ 23062 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 2 23063 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 23064 /* 23065 * XXX Ick. This type needs to be visible outside the above guard because 23066 * the proc structure is visible outside the _KERNEL | _KMEMUSER guard. 23067 * If we can make proc internals less visible, (which we obviously should) 23068 * then this can be invisible too. 23069 */ 23070 typedef unsigned int model_t; 23071 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23072 23073 23074 23075 23076 23077 /* 23078 * Data queue. 23079 * 23080 * NOTE: The *only* public fields are documented in queue(9S). 23081 * Everything else is implementation-private. 23082 * 23083 * The locking rules for the queue_t structure are extremely subtle and vary 23084 * widely depending on the field in question. As such, each field is 23085 * annotated according to the following legend: 23086 * 23087 * Q9S: The field is documented in queue(9S) and may be accessed without 23088 * locks by a STREAMS module when inside an entry point (e.g., put(9E)). 23089 * However, no fields can be directly modified unless q_lock is held 23090 * (which is not possible in a DDI compliant STREAMS module), with the 23091 * following exceptions: 23092 * 23093 * - q_ptr: can be modified as per the rules of the STREAMS module. 23094 * The STREAMS framework ignores q_ptr and thus imposes *no* 23095 * locking rules on it. 23096 * - q_qinfo: can be modified before qprocson(). 23097 * 23098 * - q_minpsz, q_maxpsz, q_hiwat, q_lowat: can be modified as per the 23099 * rules of the STREAMS module. The STREAMS framework never 23100 * modifies these fields, and is tolerant of temporarily 23101 * stale field values. 23102 * 23103 * In general, the STREAMS framework employs one of the following 23104 * techniques to ensure STREAMS modules can safely access Q9S fields: 23105 * 23106 * - The field is only modified by the framework when the stream is 23107 * locked with strlock() (q_next). 23108 * 23109 * - The field is modified by the framework, but the modifies are 23110 * atomic, and temporarily stale values are harmless (q_count, 23111 * q_first, q_last). 23112 * 23113 * - The field is modified by the framework, but the field's visible 23114 * values are either constant or directly under the control 23115 * of the STREAMS module itself (q_flag). 23116 * 23117 * QLK: The field must be accessed or modified under q_lock, except when 23118 * the stream has been locked with strlock(). If multiple q_locks must 23119 * be acquired, q_locks at higher addresses must be taken first. 23120 * 23121 * STR: The field can be accessed without a lock, but must be modified under 23122 * strlock(). 23123 * 23124 * SQLK: The field must be accessed or modified under SQLOCK(). 23125 * 23126 * NOLK: The field can be accessed without a lock, but can only be modified 23127 * when the queue_t is not known to any other threads. 23128 * 23129 * SVLK: The field must be accessed or modified under the service_queue lock. 23130 * Note that service_lock must be taken after any needed q_locks, 23131 * and that no other lock should be taken while service_lock is held. 23132 * 23133 * In addition, it is always acceptable to modify a field that is not yet 23134 * known to any other threads -- and other special case exceptions exist in 23135 * the code. Also, q_lock is used with q_wait to implement a stream head 23136 * monitor for reads and writes. 23137 */ 23138 typedef struct queue { 23139 struct qinit *q_qinfo; /* Q9S: Q processing procedure */ 23140 struct msgb *q_first; /* Q9S: first message in Q */ 23141 struct msgb *q_last; /* Q9S: last message in Q */ 23142 struct queue *q_next; /* Q9S: next Q in stream */ 23143 struct queue *q_link; /* SVLK: next Q for scheduling */ 23144 void *q_ptr; /* Q9S: module-specific data */ 23145 size_t q_count; /* Q9S: number of bytes on Q */ 23146 uint_t q_flag; /* Q9S: Q state */ 23147 ssize_t q_minpsz; /* Q9S: smallest packet OK on Q */ 23148 ssize_t q_maxpsz; /* Q9S: largest packet OK on Q */ 23149 size_t q_hiwat; /* Q9S: Q high water mark */ 23150 size_t q_lowat; /* Q9S: Q low water mark */ 23151 struct qband *q_bandp; /* QLK: band flow information */ 23152 kmutex_t q_lock; /* NOLK: structure lock */ 23153 struct stdata *q_stream; /* NOLK: stream backpointer */ 23154 struct syncq *q_syncq; /* NOLK: associated syncq */ 23155 unsigned char q_nband; /* QLK: number of bands */ 23156 kcondvar_t q_wait; /* NOLK: read/write sleep CV */ 23157 struct queue *q_nfsrv; /* STR: next Q with svc routine */ 23158 ushort_t q_draining; /* QLK: Q is draining */ 23159 short q_struiot; /* QLK: sync streams Q UIO mode */ 23160 clock_t q_qtstamp; /* QLK: when Q was enabled */ 23161 size_t q_mblkcnt; /* QLK: mblk count */ 23162 uint_t q_syncqmsgs; /* QLK: syncq message count */ 23163 size_t q_rwcnt; /* QLK: # threads in rwnext() */ 23164 pri_t q_spri; /* QLK: Q scheduling priority */ 23165 23166 /* 23167 * Syncq scheduling 23168 */ 23169 struct msgb *q_sqhead; /* QLK: first syncq message */ 23170 struct msgb *q_sqtail; /* QLK: last syncq message */ 23171 struct queue *q_sqnext; /* SQLK: next Q on syncq list */ 23172 struct queue *q_sqprev; /* SQLK: prev Q on syncq list */ 23173 uint_t q_sqflags; /* SQLK: syncq flags */ 23174 clock_t q_sqtstamp; /* SQLK: when Q was scheduled for sq */ 23175 23176 /* 23177 * NOLK: Reference to the queue's module's implementation 23178 * structure. This will be NULL for queues associated with drivers. 23179 */ 23180 struct fmodsw_impl *q_fp; 23181 } queue_t; 23182 23183 /* 23184 * Queue flags; unused flags not documented in queue(9S) can be recycled. 23185 */ 23186 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23187 /* UNUSED 0x00000200 was QHLIST */ 23188 /* UNUSED 0x00000400 was QUNSAFE */ 23189 23190 23191 23192 23193 23194 23195 /* all MT type flags */ 23196 23197 23198 23199 23200 23201 23202 /* UNUSED 0x00400000 was QHOT */ 23203 /* UNUSED 0x00800000 was QNEXTHOT */ 23204 /* UNUSED 0x01000000 was _QNEXTLESS */ 23205 23206 23207 23208 23209 /* direct interface to/from sockfs */ 23210 23211 /* queue sqflags (protected by SQLOCK). */ 23212 23213 23214 /* This is also noted by the */ 23215 /* q_draining field, but this one is */ 23216 /* protected by SQLOCK */ 23217 23218 /* 23219 * Structure that describes the separate information 23220 * for each priority band in the queue. 23221 */ 23222 typedef struct qband { 23223 struct qband *qb_next; /* next band's info */ 23224 size_t qb_count; /* number of bytes in band */ 23225 struct msgb *qb_first; /* beginning of band's data */ 23226 struct msgb *qb_last; /* end of band's data */ 23227 size_t qb_hiwat; /* high water mark for band */ 23228 size_t qb_lowat; /* low water mark for band */ 23229 uint_t qb_flag; /* see below */ 23230 size_t qb_mblkcnt; /* mblk counter for runaway msgs */ 23231 } qband_t; 23232 23233 /* 23234 * qband flags 23235 */ 23236 23237 23238 23239 23240 /* 23241 * Maximum number of bands. 23242 */ 23243 23244 23245 /* 23246 * Fields that can be manipulated through strqset() and strqget(). 23247 */ 23248 typedef enum qfields { 23249 QHIWAT = 0, /* q_hiwat or qb_hiwat */ 23250 QLOWAT = 1, /* q_lowat or qb_lowat */ 23251 QMAXPSZ = 2, /* q_maxpsz */ 23252 QMINPSZ = 3, /* q_minpsz */ 23253 QCOUNT = 4, /* q_count or qb_count */ 23254 QFIRST = 5, /* q_first or qb_first */ 23255 QLAST = 6, /* q_last or qb_last */ 23256 QFLAG = 7, /* q_flag or qb_flag */ 23257 QSTRUIOT = 8, /* q_struiot */ 23258 QBAD = 9 23259 } qfields_t; 23260 23261 /* 23262 * Module information structure 23263 */ 23264 struct module_info { 23265 ushort_t mi_idnum; /* module id number */ 23266 char *mi_idname; /* module name */ 23267 ssize_t mi_minpsz; /* min packet size accepted */ 23268 ssize_t mi_maxpsz; /* max packet size accepted */ 23269 size_t mi_hiwat; /* hi-water mark */ 23270 size_t mi_lowat; /* lo-water mark */ 23271 }; 23272 23273 /* 23274 * queue information structure (with Synchronous STREAMS extensions) 23275 */ 23276 struct qinit { 23277 int (*qi_putp)(); /* put procedure */ 23278 int (*qi_srvp)(); /* service procedure */ 23279 int (*qi_qopen)(); /* called on startup */ 23280 int (*qi_qclose)(); /* called on finish */ 23281 int (*qi_qadmin)(); /* for future use */ 23282 struct module_info *qi_minfo; /* module information structure */ 23283 struct module_stat *qi_mstat; /* module statistics structure */ 23284 int (*qi_rwp)(); /* r/w procedure */ 23285 int (*qi_infop)(); /* information procedure */ 23286 int qi_struiot; /* stream uio type for struio() */ 23287 }; 23288 23289 /* 23290 * Values for qi_struiot and q_struiot: 23291 */ 23292 23293 23294 23295 23296 /* 23297 * Streamtab (used in cdevsw and fmodsw to point to module or driver) 23298 */ 23299 struct streamtab { 23300 struct qinit *st_rdinit; 23301 struct qinit *st_wrinit; 23302 struct qinit *st_muxrinit; 23303 struct qinit *st_muxwinit; 23304 }; 23305 23306 /* 23307 * Structure sent to mux drivers to indicate a link. 23308 */ 23309 struct linkblk { 23310 queue_t *l_qtop; /* lowest level write queue of upper stream */ 23311 /* (set to NULL for persistent links) */ 23312 queue_t *l_qbot; /* highest level write queue of lower stream */ 23313 int l_index; /* index for lower stream. */ 23314 }; 23315 23316 /* 23317 * Esballoc data buffer freeing routine 23318 */ 23319 typedef struct free_rtn { 23320 void (*free_func)(); 23321 caddr_t free_arg; 23322 } frtn_t; 23323 23324 /* 23325 * Data block descriptor 23326 * 23327 * NOTE: db_base, db_lim, db_ref and db_type are the *only* public fields, 23328 * as described in datab(9S). Everything else is implementation-private. 23329 */ 23330 23331 23332 23333 typedef struct datab { 23334 frtn_t *db_frtnp; 23335 unsigned char *db_base; 23336 unsigned char *db_lim; 23337 unsigned char db_ref; 23338 unsigned char db_type; 23339 unsigned char db_flags; 23340 unsigned char db_struioflag; 23341 pid_t db_cpid; /* cached pid, needs verification */ 23342 void *db_cache; /* kmem cache descriptor */ 23343 struct msgb *db_mblk; 23344 void (*db_free)(struct msgb *, struct datab *); 23345 void (*db_lastfree)(struct msgb *, struct datab *); 23346 intptr_t db_cksumstart; 23347 intptr_t db_cksumend; 23348 intptr_t db_cksumstuff; 23349 union { 23350 double enforce_alignment; 23351 unsigned char data[8]; 23352 struct { 23353 union { 23354 uint32_t u32; 23355 uint16_t u16; 23356 } cksum_val; /* used to store calculated cksum */ 23357 uint16_t flags; 23358 uint16_t pad; 23359 } cksum; 23360 /* 23361 * Union used for future extensions (pointer to data ?). 23362 */ 23363 } db_struioun; 23364 struct fthdr *db_fthdr; 23365 cred_t *db_credp; /* credential */ 23366 } dblk_t; 23367 23368 23369 23370 23371 /* 23372 * Accessor macros for private dblk_t fields (the rest are in <sys/strsun.h>). 23373 */ 23374 23375 23376 23377 /* 23378 * Used by GLDv2 to store the TCI information. 23379 */ 23380 23381 23382 /* 23383 * Message block descriptor 23384 */ 23385 typedef struct msgb { 23386 struct msgb *b_next; 23387 struct msgb *b_prev; 23388 struct msgb *b_cont; 23389 unsigned char *b_rptr; 23390 unsigned char *b_wptr; 23391 struct datab *b_datap; 23392 unsigned char b_band; 23393 unsigned char b_tag; 23394 unsigned short b_flag; 23395 queue_t *b_queue; /* for sync queues */ 23396 } mblk_t; 23397 23398 /* 23399 * bcache descriptor 23400 */ 23401 typedef struct bcache { 23402 kmutex_t mutex; 23403 struct kmem_cache *buffer_cache; 23404 struct kmem_cache *dblk_cache; 23405 int alloc; 23406 int destroy; 23407 size_t size; 23408 uint_t align; 23409 } bcache_t; 23410 23411 /* 23412 * db_flags values (all implementation private!) 23413 */ 23414 23415 23416 23417 23418 /* 23419 * db_struioflag values: 23420 */ 23421 23422 23423 23424 23425 23426 23427 /* 23428 * Message flags. These are interpreted by the stream head. 23429 */ 23430 23431 23432 /* write side of stream */ 23433 23434 /* UNUSED 0x08 was MSGNOGET (can be recycled) */ 23435 23436 23437 23438 23439 /* 23440 * Streams message types. 23441 */ 23442 23443 /* 23444 * Data and protocol messages (regular and priority) 23445 */ 23446 23447 23448 23449 23450 /* 23451 * Control messages (regular and priority) 23452 */ 23453 # 445 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23454 /* 23455 * Control messages (high priority; go to head of queue) 23456 */ 23457 # 468 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23458 /* 23459 * Queue message class definitions. 23460 */ 23461 23462 23463 23464 /* 23465 * IOCTL structure - this structure is the format of the M_IOCTL message type. 23466 */ 23467 # 488 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23468 struct iocblk { 23469 int ioc_cmd; /* ioctl command type */ 23470 cred_t *ioc_cr; /* full credentials */ 23471 uint_t ioc_id; /* ioctl id */ 23472 size_t ioc_count; /* count of bytes in data field */ 23473 int ioc_error; /* error code */ 23474 int ioc_rval; /* return value */ 23475 int ioc_fill1; 23476 uint_t ioc_flag; /* see below */ 23477 int ioc_filler[2]; /* reserved for future use */ 23478 }; 23479 23480 23481 typedef struct iocblk *IOCP; 23482 23483 /* {ioc,cp}_flags values */ 23484 23485 23486 23487 23488 23489 23490 23491 /* 23492 * Is the ioctl data formatted for our native model? 23493 */ 23494 23495 23496 23497 /* 23498 * structure for the M_COPYIN and M_COPYOUT message types. 23499 */ 23500 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23501 struct copyreq { 23502 int cq_cmd; /* ioctl command (from ioc_cmd) */ 23503 cred_t *cq_cr; /* full credentials */ 23504 uint_t cq_id; /* ioctl id (from ioc_id) */ 23505 caddr_t cq_addr; /* address to copy data to/from */ 23506 size_t cq_size; /* number of bytes to copy */ 23507 uint_t cq_flag; /* must be zero */ 23508 mblk_t *cq_private; /* private state information */ 23509 int cq_filler[4]; /* reserved for future use */ 23510 }; 23511 23512 23513 /* 23514 * structure for the M_IOCDATA message type. 23515 */ 23516 # 557 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23517 struct copyresp { 23518 int cp_cmd; /* ioctl command (from ioc_cmd) */ 23519 cred_t *cp_cr; /* full credentials */ 23520 uint_t cp_id; /* ioctl id (from ioc_id) */ 23521 caddr_t cp_rval; /* status of request: 0 -> success */ 23522 /* non-zero -> failure */ 23523 size_t cp_pad1; 23524 uint_t cp_pad2; 23525 mblk_t *cp_private; /* private state information */ 23526 uint_t cp_flag; /* datamodel IOC_ flags; see above */ 23527 int cp_filler[3]; 23528 }; 23529 23530 23531 /* 23532 * Since these structures are all intended to travel in the same message 23533 * at different stages of a STREAMS ioctl, this union is used to determine 23534 * the message size in strdoioctl(). 23535 */ 23536 union ioctypes { 23537 struct iocblk iocblk; 23538 struct copyreq copyreq; 23539 struct copyresp copyresp; 23540 }; 23541 23542 /* 23543 * Options structure for M_SETOPTS message. This is sent upstream 23544 * by a module or driver to set stream head options. 23545 */ 23546 struct stroptions { 23547 uint_t so_flags; /* options to set */ 23548 short so_readopt; /* read option */ 23549 ushort_t so_wroff; /* write offset */ 23550 ssize_t so_minpsz; /* minimum read packet size */ 23551 ssize_t so_maxpsz; /* maximum read packet size */ 23552 size_t so_hiwat; /* read queue high water mark */ 23553 size_t so_lowat; /* read queue low water mark */ 23554 unsigned char so_band; /* band for water marks */ 23555 ushort_t so_erropt; /* error option */ 23556 ssize_t so_maxblk; /* maximum message block size */ 23557 ushort_t so_copyopt; /* copy options (see stropts.h) */ 23558 ushort_t so_tail; /* space available at the end */ 23559 }; 23560 23561 /* flags for stream options set message */ 23562 # 673 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 23563 /* 23564 * Miscellaneous parameters and flags. 23565 */ 23566 23567 /* 23568 * Values for stream flag in open to indicate module open, clone open, 23569 * and the return value for failure. 23570 */ 23571 23572 23573 23574 23575 /* 23576 * Priority definitions for block allocation. 23577 */ 23578 23579 23580 23581 23582 /* 23583 * Value for packet size that denotes infinity 23584 */ 23585 23586 23587 /* 23588 * Flags for flushq() 23589 */ 23590 23591 23592 23593 /* 23594 * Flag for transparent ioctls 23595 */ 23596 23597 23598 /* 23599 * Stream head default high/low water marks 23600 */ 23601 23602 23603 23604 /* 23605 * qwriter perimeter types 23606 */ 23607 23608 23609 23610 /* 23611 * Definitions of Streams macros and function interfaces. 23612 */ 23613 23614 /* 23615 * canenable - check if queue can be enabled by putq(). 23616 */ 23617 23618 23619 /* 23620 * Test if data block type is one of the data messages (i.e. not a control 23621 * message). 23622 */ 23623 23624 23625 23626 23627 23628 23629 23630 /* 23631 * Extract queue class of message block. 23632 */ 23633 23634 23635 /* 23636 * Align address on next lower word boundary. 23637 */ 23638 23639 23640 /* 23641 * Find the max size of data block. 23642 */ 23643 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 23644 23645 /* 23646 * Symbols such as htonl() are required to be exposed through this file, 23647 * per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h> 23648 */ 23649 23650 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1 23651 /* 23652 * CDDL HEADER START 23653 * 23654 * The contents of this file are subject to the terms of the 23655 * Common Development and Distribution License (the "License"). 23656 * You may not use this file except in compliance with the License. 23657 * 23658 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23659 * or http://www.opensolaris.org/os/licensing. 23660 * See the License for the specific language governing permissions 23661 * and limitations under the License. 23662 * 23663 * When distributing Covered Code, include this CDDL HEADER in each 23664 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23665 * If applicable, add the following below this CDDL HEADER, with the 23666 * fields enclosed by brackets "[]" replaced with your own identifying 23667 * information: Portions Copyright [yyyy] [name of copyright owner] 23668 * 23669 * CDDL HEADER END 23670 */ 23671 23672 /* 23673 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23674 * Use is subject to license terms. 23675 */ 23676 23677 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 23678 /* All Rights Reserved */ 23679 23680 /* 23681 * University Copyright- Copyright (c) 1982, 1986, 1988 23682 * The Regents of the University of California 23683 * All Rights Reserved 23684 * 23685 * University Acknowledgment- Portions of this document are derived from 23686 * software developed by the University of California, Berkeley, and its 23687 * contributors. 23688 */ 23689 23690 23691 23692 23693 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 23694 /* 23695 * CDDL HEADER START 23696 * 23697 * The contents of this file are subject to the terms of the 23698 * Common Development and Distribution License (the "License"). 23699 * You may not use this file except in compliance with the License. 23700 * 23701 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23702 * or http://www.opensolaris.org/os/licensing. 23703 * See the License for the specific language governing permissions 23704 * and limitations under the License. 23705 * 23706 * 23707 * When distributing Covered Code, include this CDDL HEADER in each 23708 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23709 * If applicable, add the following below this CDDL HEADER, with the 23710 * fields enclosed by brackets "[]" replaced with your own identifying 23711 * information: Portions Copyright [yyyy] [name of copyright owner] 23712 * 23713 * CDDL HEADER END 23714 */ 23715 23716 /* 23717 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23718 * Use is subject to license terms. 23719 * Copyright 2016 Joyent, Inc. 23720 */ 23721 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2 23722 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 23723 /* 23724 * CDDL HEADER START 23725 * 23726 * The contents of this file are subject to the terms of the 23727 * Common Development and Distribution License, Version 1.0 only 23728 * (the "License"). You may not use this file except in compliance 23729 * with the License. 23730 * 23731 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23732 * or http://www.opensolaris.org/os/licensing. 23733 * See the License for the specific language governing permissions 23734 * and limitations under the License. 23735 * 23736 * When distributing Covered Code, include this CDDL HEADER in each 23737 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23738 * If applicable, add the following below this CDDL HEADER, with the 23739 * fields enclosed by brackets "[]" replaced with your own identifying 23740 * information: Portions Copyright [yyyy] [name of copyright owner] 23741 * 23742 * CDDL HEADER END 23743 */ 23744 /* 23745 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 23746 * 23747 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 23748 * Use is subject to license terms. 23749 */ 23750 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2 23751 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23752 /* 23753 * macros for conversion between host and (internet) network byte order 23754 */ 23755 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23756 typedef uint16_t in_port_t; 23757 23758 23759 23760 23761 typedef uint32_t in_addr_t; 23762 23763 23764 23765 extern uint32_t htonl(uint32_t); 23766 extern uint16_t htons(uint16_t); 23767 extern uint32_t ntohl(uint32_t); 23768 extern uint16_t ntohs(uint16_t); 23769 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23770 extern uint64_t htonll(uint64_t); 23771 extern uint64_t ntohll(uint64_t); 23772 23773 23774 23775 23776 23777 23778 /* 23779 * Macros to reverse byte order 23780 */ 23781 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23782 /* 23783 * Macros to convert from a specific byte order to/from native byte order 23784 */ 23785 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23786 /* 23787 * Macros to read unaligned values from a specific byte order to 23788 * native byte order 23789 */ 23790 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 23791 /* 23792 * Macros to write unaligned values from native byte order to a specific byte 23793 * order. 23794 */ 23795 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 23796 23797 23798 23799 23800 23801 23802 23803 /* 23804 * Note: IPv4 address data structures usage conventions. 23805 * The "in_addr_t" type below (required by Unix standards) 23806 * is NOT a typedef of "struct in_addr" and violates the usual 23807 * conventions where "struct <name>" and <name>_t are corresponding 23808 * typedefs. 23809 * To minimize confusion, kernel data structures/usage prefers use 23810 * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t" 23811 * The user level APIs continue to follow the historic popular 23812 * practice of using "struct in_addr". 23813 */ 23814 23815 23816 23817 23818 23819 23820 23821 typedef uint32_t ipaddr_t; 23822 23823 23824 23825 23826 struct in6_addr { 23827 union { 23828 /* 23829 * Note: Static initalizers of "union" type assume 23830 * the constant on the RHS is the type of the first member 23831 * of union. 23832 * To make static initializers (and efficient usage) work, 23833 * the order of members exposed to user and kernel view of 23834 * this data structure is different. 23835 * User environment sees specified uint8_t type as first 23836 * member whereas kernel sees most efficient type as 23837 * first member. 23838 */ 23839 23840 23841 23842 23843 uint8_t _S6_u8[16]; /* IPv6 address */ 23844 uint32_t _S6_u32[4]; /* IPv6 address */ 23845 23846 uint32_t __S6_align; /* Align on 32 bit boundary */ 23847 } _S6_un; 23848 }; 23849 23850 23851 23852 23853 23854 23855 23856 typedef struct in6_addr in6_addr_t; 23857 # 144 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23858 /* 23859 * Protocols 23860 * 23861 * Some of these constant names are copied for the DTrace IP provider in 23862 * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept 23863 * in sync. 23864 */ 23865 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23866 /* Transmission Protocol */ 23867 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23868 /* 23869 * Port/socket numbers: network standard functions 23870 * 23871 * Entries should exist here for each port number compiled into an ON 23872 * component, such as snoop. 23873 */ 23874 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23875 /* 23876 * Port/socket numbers: host specific functions 23877 */ 23878 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23879 /* 23880 * Internet Key Exchange (IKE) ports 23881 */ 23882 23883 23884 23885 /* 23886 * UNIX TCP sockets 23887 */ 23888 23889 23890 23891 23892 23893 23894 /* 23895 * UNIX UDP sockets 23896 */ 23897 23898 23899 23900 23901 23902 23903 23904 /* 23905 * DHCPv6 UDP ports 23906 */ 23907 23908 23909 23910 23911 23912 /* 23913 * Ports < IPPORT_RESERVED are reserved for 23914 * privileged processes (e.g. root). 23915 * Ports > IPPORT_USERRESERVED are reserved 23916 * for servers, not necessarily privileged. 23917 */ 23918 23919 23920 23921 /* 23922 * Link numbers 23923 */ 23924 23925 23926 23927 23928 /* 23929 * IPv4 Internet address 23930 * This definition contains obsolete fields for compatibility 23931 * with SunOS 3.x and 4.2bsd. The presence of subnets renders 23932 * divisions into fixed fields misleading at best. New code 23933 * should use only the s_addr field. 23934 */ 23935 # 293 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23936 struct in_addr { 23937 union { 23938 struct { uint8_t s_b1, s_b2, s_b3, s_b4; } S_un_b; 23939 struct { uint16_t s_w1, s_w2; } S_un_w; 23940 23941 uint32_t S_addr; 23942 23943 23944 23945 } S_un; 23946 23947 23948 23949 23950 23951 23952 }; 23953 23954 /* 23955 * Definitions of bits in internet address integers. 23956 * On subnets, the decomposition of addresses to host and net parts 23957 * is done according to subnet mask, not the masks here. 23958 * 23959 * Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB, 23960 * IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto 23961 * obsolete". IN_MULTICAST macro should be used to test if a address 23962 * is a multicast address. 23963 */ 23964 # 348 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23965 /* 23966 * We have removed CLASS E checks from the kernel 23967 * But we preserve these defines for userland in order 23968 * to avoid compile breakage of some 3rd party piece of software 23969 */ 23970 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23971 /* Scoped IPv4 prefixes (in host byte-order) */ 23972 # 379 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 23973 /* RFC 3927 IPv4 link local address (i in host byte-order) */ 23974 23975 23976 /* Well known 6to4 Relay Router Anycast address defined in RFC 3068 */ 23977 23978 23979 23980 23981 23982 23983 /* 23984 * Define a macro to stuff the loopback address into an Internet address 23985 */ 23986 23987 23988 23989 23990 23991 23992 /* 23993 * IPv4 Socket address. 23994 */ 23995 struct sockaddr_in { 23996 sa_family_t sin_family; 23997 in_port_t sin_port; 23998 struct in_addr sin_addr; 23999 24000 char sin_zero[8]; 24001 24002 24003 24004 }; 24005 24006 24007 /* 24008 * IPv6 socket address. 24009 */ 24010 struct sockaddr_in6 { 24011 sa_family_t sin6_family; 24012 in_port_t sin6_port; 24013 uint32_t sin6_flowinfo; 24014 struct in6_addr sin6_addr; 24015 uint32_t sin6_scope_id; /* Depends on scope of sin6_addr */ 24016 uint32_t __sin6_src_id; /* Impl. specific - UDP replies */ 24017 }; 24018 24019 /* 24020 * Macros for accessing the traffic class and flow label fields from 24021 * sin6_flowinfo. 24022 * These are designed to be applied to a 32-bit value. 24023 */ 24024 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24025 /* masks */ 24026 24027 24028 24029 24030 24031 /* 24032 * Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for 24033 * use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t) 24034 * only. They need to be different for User/Kernel versions because union 24035 * component data structure is defined differently (it is identical at 24036 * binary representation level). 24037 * 24038 * const struct in6_addr IN6ADDR_ANY_INIT; 24039 * const struct in6_addr IN6ADDR_LOOPBACK_INIT; 24040 */ 24041 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24042 /* 24043 * RFC 2553 specifies the following macros. Their type is defined 24044 * as "int" in the RFC but they only have boolean significance 24045 * (zero or non-zero). For the purposes of our comment notation, 24046 * we assume a hypothetical type "bool" defined as follows to 24047 * write the prototypes assumed for macros in our comments better. 24048 * 24049 * typedef int bool; 24050 */ 24051 24052 /* 24053 * IN6 macros used to test for special IPv6 addresses 24054 * (Mostly from spec) 24055 * 24056 * bool IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *); 24057 * bool IN6_IS_ADDR_LOOPBACK (const struct in6_addr *); 24058 * bool IN6_IS_ADDR_MULTICAST (const struct in6_addr *); 24059 * bool IN6_IS_ADDR_LINKLOCAL (const struct in6_addr *); 24060 * bool IN6_IS_ADDR_SITELOCAL (const struct in6_addr *); 24061 * bool IN6_IS_ADDR_V4MAPPED (const struct in6_addr *); 24062 * bool IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553 24063 * bool IN6_IS_ADDR_V4COMPAT (const struct in6_addr *); 24064 * bool IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553 24065 * bool IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *); 24066 * bool IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *); 24067 * bool IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *); 24068 * bool IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *); 24069 * bool IN6_IS_ADDR_MC_GLOBAL (const struct in6_addr *); 24070 * bool IN6_IS_ADDR_6TO4 (const struct in6_addr *); -- Not from RFC2553 24071 * bool IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *, 24072 * const struct in6_addr *); -- Not from RFC2553 24073 * bool IN6_IS_ADDR_LINKSCOPE (const struct in6addr *); -- Not from RFC2553 24074 */ 24075 # 568 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24076 /* 24077 * IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY 24078 * Note: This macro is currently NOT defined in RFC2553 specification 24079 * and not a standard macro that portable applications should use. 24080 */ 24081 # 587 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24082 /* Exclude loopback and unspecified address */ 24083 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24084 /* 24085 * Note: 24086 * IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553 24087 * specification and not a standard macro that portable applications 24088 * should use. 24089 */ 24090 # 660 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24091 /* 24092 * The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or 24093 * RFC, and shouldn't be used by portable applications. It is used to see 24094 * if an address is a solicited-node multicast address, which is prefixed 24095 * with ff02:0:0:0:0:1:ff00::/104. 24096 */ 24097 # 680 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24098 /* 24099 * Macros to a) test for 6to4 IPv6 address, and b) to test if two 24100 * 6to4 addresses have the same /48 prefix, and, hence, are from the 24101 * same 6to4 site. 24102 */ 24103 # 699 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24104 /* 24105 * IN6_IS_ADDR_LINKSCOPE 24106 * Identifies an address as being either link-local, link-local multicast or 24107 * node-local multicast. All types of addresses are considered to be unique 24108 * within the scope of a given link. 24109 */ 24110 24111 24112 24113 24114 /* 24115 * Useful utility macros for operations with IPv6 addresses 24116 * Note: These macros are NOT defined in the RFC2553 or any other 24117 * standard specification and are not standard macros that portable 24118 * applications should use. 24119 */ 24120 24121 /* 24122 * IN6_V4MAPPED_TO_INADDR 24123 * IN6_V4MAPPED_TO_IPADDR 24124 * Assign a IPv4-Mapped IPv6 address to an IPv4 address. 24125 * Note: These macros are NOT defined in RFC2553 or any other standard 24126 * specification and are not macros that portable applications should 24127 * use. 24128 * 24129 * void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4); 24130 * void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4); 24131 * 24132 */ 24133 24134 24135 24136 24137 24138 /* 24139 * IN6_INADDR_TO_V4MAPPED 24140 * IN6_IPADDR_TO_V4MAPPED 24141 * Assign a IPv4 address address to an IPv6 address as a IPv4-mapped 24142 * address. 24143 * Note: These macros are NOT defined in RFC2553 or any other standard 24144 * specification and are not macros that portable applications should 24145 * use. 24146 * 24147 * void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6); 24148 * void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6); 24149 * 24150 */ 24151 # 770 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24152 /* 24153 * IN6_6TO4_TO_V4ADDR 24154 * Extract the embedded IPv4 address from the prefix to a 6to4 IPv6 24155 * address. 24156 * Note: This macro is NOT defined in RFC2553 or any other standard 24157 * specification and is not a macro that portable applications should 24158 * use. 24159 * Note: we don't use the IPADDR form of the macro because we need 24160 * to do a bytewise copy; the V4ADDR in the 6to4 address is not 24161 * 32-bit aligned. 24162 * 24163 * void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4); 24164 * 24165 */ 24166 24167 24168 24169 24170 24171 24172 /* 24173 * IN6_V4ADDR_TO_6TO4 24174 * Given an IPv4 address and an IPv6 address for output, a 6to4 address 24175 * will be created from the IPv4 Address. 24176 * Note: This method for creating 6to4 addresses is not standardized 24177 * outside of Solaris. The newly created 6to4 address will be of the form 24178 * 2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and 24179 * HOSTID will equal 1. 24180 * 24181 * void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6) 24182 * 24183 */ 24184 # 828 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24185 /* 24186 * IN6_ARE_ADDR_EQUAL (defined in RFC2292) 24187 * Compares if IPv6 addresses are equal. 24188 * Note: Compares in order of high likelyhood of a miss so we minimize 24189 * compares. (Current heuristic order, compare in reverse order of 24190 * uint32_t units) 24191 * 24192 * bool IN6_ARE_ADDR_EQUAL(const struct in6_addr *, 24193 * const struct in6_addr *); 24194 */ 24195 24196 24197 24198 24199 24200 24201 /* 24202 * IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs) 24203 * Compares if prefixed parts of IPv6 addresses are equal. 24204 * 24205 * uint32_t IN6_MASK_FROM_PREFIX(int, int); 24206 * bool IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *, 24207 * const struct in6_addr *, 24208 * int); 24209 */ 24210 # 879 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24211 /* 24212 * Options for use with [gs]etsockopt at the IP level. 24213 * 24214 * Note: Some of the IP_ namespace has conflict with and 24215 * and is exposed through <xti.h>. (It also requires exposing 24216 * options not implemented). The options with potential 24217 * for conflicts use #ifndef guards. 24218 */ 24219 # 919 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24220 /* 24221 * IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in 24222 * is used to differentiate b/w the two. 24223 */ 24224 24225 24226 24227 24228 24229 /* 24230 * Different preferences that can be requested from IPSEC protocols. 24231 */ 24232 24233 24234 24235 24236 /* 24237 * This can be used with the setsockopt() call to set per socket security 24238 * options. When the application uses per-socket API, we will reflect 24239 * the request on both outbound and inbound packets. 24240 */ 24241 24242 typedef struct ipsec_req { 24243 uint_t ipsr_ah_req; /* AH request */ 24244 uint_t ipsr_esp_req; /* ESP request */ 24245 uint_t ipsr_self_encap_req; /* Self-Encap request */ 24246 uint8_t ipsr_auth_alg; /* Auth algs for AH */ 24247 uint8_t ipsr_esp_alg; /* Encr algs for ESP */ 24248 uint8_t ipsr_esp_auth_alg; /* Auth algs for ESP */ 24249 } ipsec_req_t; 24250 24251 /* 24252 * MCAST_* options are protocol-independent. The actual definitions 24253 * are with the v6 options below; this comment is here to note the 24254 * namespace usage. 24255 * 24256 * #define MCAST_JOIN_GROUP 0x29 24257 * #define MCAST_LEAVE_GROUP 0x2a 24258 * #define MCAST_BLOCK_SOURCE 0x2b 24259 * #define MCAST_UNBLOCK_SOURCE 0x2c 24260 * #define MCAST_JOIN_SOURCE_GROUP 0x2d 24261 * #define MCAST_LEAVE_SOURCE_GROUP 0x2e 24262 */ 24263 24264 24265 /* 24266 * SunOS private (potentially not portable) IP_ option names 24267 */ 24268 24269 24270 24271 /* can be reused 0x44 */ 24272 24273 24274 /* 24275 * Option values and names (when !_XPG5) shared with <xti_inet.h> 24276 */ 24277 # 988 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24278 /* 24279 * The following option values are reserved by <xti_inet.h> 24280 * 24281 * T_IP_OPTIONS 0x107 - IP per-packet options 24282 * T_IP_TOS 0x108 - IP per packet type of service 24283 */ 24284 24285 /* 24286 * Default value constants for multicast attributes controlled by 24287 * IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options. 24288 */ 24289 24290 24291 24292 24293 /* 24294 * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. 24295 */ 24296 struct ip_mreq { 24297 struct in_addr imr_multiaddr; /* IP multicast address of group */ 24298 struct in_addr imr_interface; /* local IP address of interface */ 24299 }; 24300 24301 /* 24302 * Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE, 24303 * IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP. 24304 */ 24305 struct ip_mreq_source { 24306 struct in_addr imr_multiaddr; /* IP address of group */ 24307 struct in_addr imr_sourceaddr; /* IP address of source */ 24308 struct in_addr imr_interface; /* IP address of interface */ 24309 }; 24310 24311 /* 24312 * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on 24313 * IPv6 addresses. 24314 */ 24315 struct ipv6_mreq { 24316 struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */ 24317 unsigned int ipv6mr_interface; /* interface index */ 24318 }; 24319 24320 /* 24321 * Use #pragma pack() construct to force 32-bit alignment on amd64. 24322 * This is needed to keep the structure size and offsets consistent 24323 * between a 32-bit app and the 64-bit amd64 kernel in structures 24324 * where 64-bit alignment would create gaps (in this case, structures 24325 * which have a uint32_t followed by a struct sockaddr_storage). 24326 */ 24327 24328 24329 24330 24331 /* 24332 * Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP. 24333 */ 24334 struct group_req { 24335 uint32_t gr_interface; /* interface index */ 24336 struct sockaddr_storage gr_group; /* group address */ 24337 }; 24338 24339 /* 24340 * Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, 24341 * MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP. 24342 */ 24343 struct group_source_req { 24344 uint32_t gsr_interface; /* interface index */ 24345 struct sockaddr_storage gsr_group; /* group address */ 24346 struct sockaddr_storage gsr_source; /* source address */ 24347 }; 24348 24349 /* 24350 * Argument for SIOC[GS]MSFILTER ioctls 24351 */ 24352 struct group_filter { 24353 uint32_t gf_interface; /* interface index */ 24354 struct sockaddr_storage gf_group; /* multicast address */ 24355 uint32_t gf_fmode; /* filter mode */ 24356 uint32_t gf_numsrc; /* number of sources */ 24357 struct sockaddr_storage gf_slist[1]; /* source address */ 24358 }; 24359 # 1078 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24360 /* 24361 * Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific) 24362 */ 24363 struct ip_msfilter { 24364 struct in_addr imsf_multiaddr; /* IP multicast address of group */ 24365 struct in_addr imsf_interface; /* local IP address of interface */ 24366 uint32_t imsf_fmode; /* filter mode */ 24367 uint32_t imsf_numsrc; /* number of sources in src_list */ 24368 struct in_addr imsf_slist[1]; /* start of source list */ 24369 }; 24370 24371 24372 24373 24374 24375 /* 24376 * Multicast source filter manipulation functions in libsocket; 24377 * defined in RFC 3678. 24378 */ 24379 int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t, 24380 uint_t, struct sockaddr_storage *); 24381 24382 int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t *, 24383 uint_t *, struct sockaddr_storage *); 24384 24385 int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t, 24386 uint32_t, struct in_addr *); 24387 24388 int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *, 24389 uint32_t *, struct in_addr *); 24390 24391 /* 24392 * Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter() 24393 */ 24394 24395 24396 24397 /* 24398 * Argument struct for IP_PKTINFO option 24399 */ 24400 typedef struct in_pktinfo { 24401 unsigned int ipi_ifindex; /* send/recv interface index */ 24402 struct in_addr ipi_spec_dst; /* matched source address */ 24403 struct in_addr ipi_addr; /* src/dst address in IP hdr */ 24404 } in_pktinfo_t; 24405 24406 /* 24407 * Argument struct for IPV6_PKTINFO option 24408 */ 24409 struct in6_pktinfo { 24410 struct in6_addr ipi6_addr; /* src/dst IPv6 address */ 24411 unsigned int ipi6_ifindex; /* send/recv interface index */ 24412 }; 24413 24414 /* 24415 * Argument struct for IPV6_MTUINFO option 24416 */ 24417 struct ip6_mtuinfo { 24418 struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */ 24419 uint32_t ip6m_mtu; /* path MTU in host byte order */ 24420 }; 24421 24422 /* 24423 * IPv6 routing header types 24424 */ 24425 24426 24427 extern socklen_t inet6_rth_space(int type, int segments); 24428 extern void *inet6_rth_init(void *bp, socklen_t bp_len, int type, int segments); 24429 extern int inet6_rth_add(void *bp, const struct in6_addr *addr); 24430 extern int inet6_rth_reverse(const void *in, void *out); 24431 extern int inet6_rth_segments(const void *bp); 24432 extern struct in6_addr *inet6_rth_getaddr(const void *bp, int index); 24433 24434 extern int inet6_opt_init(void *extbuf, socklen_t extlen); 24435 extern int inet6_opt_append(void *extbuf, socklen_t extlen, int offset, 24436 uint8_t type, socklen_t len, uint_t align, void **databufp); 24437 extern int inet6_opt_finish(void *extbuf, socklen_t extlen, int offset); 24438 extern int inet6_opt_set_val(void *databuf, int offset, void *val, 24439 socklen_t vallen); 24440 extern int inet6_opt_next(void *extbuf, socklen_t extlen, int offset, 24441 uint8_t *typep, socklen_t *lenp, void **databufp); 24442 extern int inet6_opt_find(void *extbufp, socklen_t extlen, int offset, 24443 uint8_t type, socklen_t *lenp, void **databufp); 24444 extern int inet6_opt_get_val(void *databuf, int offset, void *val, 24445 socklen_t vallen); 24446 24447 24448 /* 24449 * Argument structure for IP_ADD_PROXY_ADDR. 24450 * Note that this is an unstable, experimental interface. It may change 24451 * later. Don't use it unless you know what it is. 24452 */ 24453 typedef struct { 24454 struct in_addr in_prefix_addr; 24455 unsigned int in_prefix_len; 24456 } in_prefix_t; 24457 24458 24459 24460 /* 24461 * IPv6 options 24462 */ 24463 24464 /* packets. */ 24465 /* argument type: uint_t */ 24466 24467 /* multicast packets. */ 24468 /* argument type: struct in6_addr */ 24469 24470 /* multicast packets. */ 24471 /* argument type: uint_t */ 24472 24473 /* multicast packets on same socket. */ 24474 /* argument type: uint_t */ 24475 24476 /* argument type: struct ipv6_mreq */ 24477 24478 /* argument type: struct ipv6_mreq */ 24479 24480 /* 24481 * Other XPG6 constants. 24482 */ 24483 24484 /* decimal notation. */ 24485 24486 /* standard colon-hex notation. */ 24487 24488 24489 24490 24491 24492 /* 24493 * IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are being kept 24494 * for backward compatibility. They have the same meaning as IPV6_JOIN_GROUP 24495 * and IPV6_LEAVE_GROUP respectively. 24496 */ 24497 24498 /* argument type: struct ipv6_mreq */ 24499 24500 /* argument type: struct ipv6_mreq */ 24501 24502 24503 /* arg type: "struct in6_pktingo" - */ 24504 24505 24506 24507 24508 /* the routing header */ 24509 24510 24511 /* the routing header */ 24512 24513 24514 24515 24516 /* 24517 * This options exists for backwards compatability and should no longer be 24518 * used. Use IPV6_RECVDSTOPTS instead. 24519 */ 24520 24521 24522 24523 24524 /* 24525 * enable/disable IPV6_RTHDRDSTOPTS. Now obsolete. IPV6_RECVDSTOPTS enables 24526 * the receipt of both headers. 24527 */ 24528 # 1259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24529 /* 24530 * enable/disable receipt of both both IPV6_DSTOPTS headers. 24531 */ 24532 24533 24534 /* 24535 * protocol-independent multicast membership options. 24536 */ 24537 24538 24539 24540 24541 24542 24543 24544 /* 32Bit field for IPV6_SRC_PREFERENCES */ 24545 # 1295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 24546 /* 24547 * SunOS private (potentially not portable) IPV6_ option names 24548 */ 24549 24550 24551 /* unspecified (all zeros) */ 24552 24553 /* 24554 * Miscellaneous IPv6 constants. 24555 */ 24556 24557 24558 24559 24560 /* 24561 * Extern declarations for pre-defined global const variables 24562 */ 24563 24564 24565 24566 extern const struct in6_addr in6addr_any; 24567 extern const struct in6_addr in6addr_loopback; 24568 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 24569 24570 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1 24571 /* 24572 * CDDL HEADER START 24573 * 24574 * The contents of this file are subject to the terms of the 24575 * Common Development and Distribution License (the "License"). 24576 * You may not use this file except in compliance with the License. 24577 * 24578 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24579 * or http://www.opensolaris.org/os/licensing. 24580 * See the License for the specific language governing permissions 24581 * and limitations under the License. 24582 * 24583 * When distributing Covered Code, include this CDDL HEADER in each 24584 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24585 * If applicable, add the following below this CDDL HEADER, with the 24586 * fields enclosed by brackets "[]" replaced with your own identifying 24587 * information: Portions Copyright [yyyy] [name of copyright owner] 24588 * 24589 * CDDL HEADER END 24590 */ 24591 /* 24592 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 24593 * 24594 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 24595 */ 24596 24597 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 24598 /* All Rights Reserved */ 24599 24600 /* 24601 * University Copyright- Copyright (c) 1982, 1986, 1988 24602 * The Regents of the University of California 24603 * All Rights Reserved 24604 * 24605 * University Acknowledgment- Portions of this document are derived from 24606 * software developed by the University of California, Berkeley, and its 24607 * contributors. 24608 */ 24609 24610 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 24611 24612 24613 24614 24615 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 24616 /* 24617 * CDDL HEADER START 24618 * 24619 * The contents of this file are subject to the terms of the 24620 * Common Development and Distribution License (the "License"). 24621 * You may not use this file except in compliance with the License. 24622 * 24623 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24624 * or http://www.opensolaris.org/os/licensing. 24625 * See the License for the specific language governing permissions 24626 * and limitations under the License. 24627 * 24628 * When distributing Covered Code, include this CDDL HEADER in each 24629 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24630 * If applicable, add the following below this CDDL HEADER, with the 24631 * fields enclosed by brackets "[]" replaced with your own identifying 24632 * information: Portions Copyright [yyyy] [name of copyright owner] 24633 * 24634 * CDDL HEADER END 24635 */ 24636 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24637 /* All Rights Reserved */ 24638 24639 24640 /* 24641 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24642 * Use is subject to license terms. 24643 * 24644 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24645 * Copyright 2016 Joyent, Inc. 24646 */ 24647 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 24648 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 1 24649 /* 24650 * CDDL HEADER START 24651 * 24652 * The contents of this file are subject to the terms of the 24653 * Common Development and Distribution License (the "License"). 24654 * You may not use this file except in compliance with the License. 24655 * 24656 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24657 * or http://www.opensolaris.org/os/licensing. 24658 * See the License for the specific language governing permissions 24659 * and limitations under the License. 24660 * 24661 * When distributing Covered Code, include this CDDL HEADER in each 24662 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24663 * If applicable, add the following below this CDDL HEADER, with the 24664 * fields enclosed by brackets "[]" replaced with your own identifying 24665 * information: Portions Copyright [yyyy] [name of copyright owner] 24666 * 24667 * CDDL HEADER END 24668 */ 24669 /* 24670 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 24671 * 24672 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 24673 * Use is subject to license terms. 24674 * 24675 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24676 * Copyright (c) 2015, Joyent, Inc. All rights reserved. 24677 */ 24678 24679 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24680 /* All Rights Reserved */ 24681 24682 /* 24683 * University Copyright- Copyright (c) 1982, 1986, 1988 24684 * The Regents of the University of California 24685 * All Rights Reserved 24686 * 24687 * University Acknowledgment- Portions of this document are derived from 24688 * software developed by the University of California, Berkeley, and its 24689 * contributors. 24690 */ 24691 24692 24693 24694 24695 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 24696 /* 24697 * CDDL HEADER START 24698 * 24699 * The contents of this file are subject to the terms of the 24700 * Common Development and Distribution License (the "License"). 24701 * You may not use this file except in compliance with the License. 24702 * 24703 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24704 * or http://www.opensolaris.org/os/licensing. 24705 * See the License for the specific language governing permissions 24706 * and limitations under the License. 24707 * 24708 * When distributing Covered Code, include this CDDL HEADER in each 24709 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24710 * If applicable, add the following below this CDDL HEADER, with the 24711 * fields enclosed by brackets "[]" replaced with your own identifying 24712 * information: Portions Copyright [yyyy] [name of copyright owner] 24713 * 24714 * CDDL HEADER END 24715 */ 24716 24717 /* 24718 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 24719 * Copyright 2016 Joyent, Inc. 24720 * 24721 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24722 * Use is subject to license terms. 24723 */ 24724 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2 24725 24726 24727 24728 24729 24730 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 24731 /* 24732 * CDDL HEADER START 24733 * 24734 * The contents of this file are subject to the terms of the 24735 * Common Development and Distribution License (the "License"). 24736 * You may not use this file except in compliance with the License. 24737 * 24738 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24739 * or http://www.opensolaris.org/os/licensing. 24740 * See the License for the specific language governing permissions 24741 * and limitations under the License. 24742 * 24743 * When distributing Covered Code, include this CDDL HEADER in each 24744 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24745 * If applicable, add the following below this CDDL HEADER, with the 24746 * fields enclosed by brackets "[]" replaced with your own identifying 24747 * information: Portions Copyright [yyyy] [name of copyright owner] 24748 * 24749 * CDDL HEADER END 24750 */ 24751 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24752 /* All Rights Reserved */ 24753 24754 24755 /* 24756 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24757 * Use is subject to license terms. 24758 * 24759 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24760 * Copyright 2016 Joyent, Inc. 24761 */ 24762 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2 24763 24764 /* 24765 * I/O parameter information. A uio structure describes the I/O which 24766 * is to be performed by an operation. Typically the data movement will 24767 * be performed by a routine such as uiomove(), which updates the uio 24768 * structure to reflect what was done. 24769 */ 24770 24771 24772 24773 24774 24775 24776 24777 typedef struct iovec { 24778 caddr_t iov_base; 24779 24780 24781 24782 long iov_len; 24783 24784 } iovec_t; 24785 # 90 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24786 /* 24787 * Segment flag values. 24788 */ 24789 typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t; 24790 24791 typedef struct uio { 24792 iovec_t *uio_iov; /* pointer to array of iovecs */ 24793 int uio_iovcnt; /* number of iovecs */ 24794 lloff_t _uio_offset; /* file offset */ 24795 uio_seg_t uio_segflg; /* address space (kernel or user) */ 24796 uint16_t uio_fmode; /* file mode flags */ 24797 uint16_t uio_extflg; /* extended flags */ 24798 lloff_t _uio_limit; /* u-limit (maximum byte offset) */ 24799 ssize_t uio_resid; /* residual count */ 24800 } uio_t; 24801 24802 /* 24803 * Extended uio_t uioa_t used for asynchronous uio. 24804 * 24805 * Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c" 24806 * as there isn't a formal definition of IOV_MAX for the kernel. 24807 */ 24808 24809 24810 typedef struct uioa_page_s { /* locked uio_iov state */ 24811 int uioa_pfncnt; /* count of pfn_t(s) in *uioa_ppp */ 24812 void **uioa_ppp; /* page_t or pfn_t arrary */ 24813 caddr_t uioa_base; /* address base */ 24814 size_t uioa_len; /* span length */ 24815 } uioa_page_t; 24816 24817 typedef struct uioa_s { 24818 iovec_t *uio_iov; /* pointer to array of iovecs */ 24819 int uio_iovcnt; /* number of iovecs */ 24820 lloff_t _uio_offset; /* file offset */ 24821 uio_seg_t uio_segflg; /* address space (kernel or user) */ 24822 uint16_t uio_fmode; /* file mode flags */ 24823 uint16_t uio_extflg; /* extended flags */ 24824 lloff_t _uio_limit; /* u-limit (maximum byte offset) */ 24825 ssize_t uio_resid; /* residual count */ 24826 /* 24827 * uioa extended members. 24828 */ 24829 uint32_t uioa_state; /* state of asynch i/o */ 24830 ssize_t uioa_mbytes; /* bytes that have been uioamove()ed */ 24831 uioa_page_t *uioa_lcur; /* pointer into uioa_locked[] */ 24832 void **uioa_lppp; /* pointer into lcur->uioa_ppp[] */ 24833 void *uioa_hwst[4]; /* opaque hardware state */ 24834 uioa_page_t uioa_locked[16]; /* Per iov locked pages */ 24835 } uioa_t; 24836 24837 /* 24838 * uio extensions 24839 * 24840 * PSARC 2009/478: Copy Reduction Interfaces 24841 */ 24842 typedef enum xuio_type { 24843 UIOTYPE_ASYNCIO, 24844 UIOTYPE_ZEROCOPY 24845 } xuio_type_t; 24846 24847 typedef struct xuio { 24848 uio_t xu_uio; /* Embedded UIO structure */ 24849 24850 /* Extended uio fields */ 24851 enum xuio_type xu_type; /* What kind of uio structure? */ 24852 union { 24853 /* Async I/O Support, intend to replace uioa_t. */ 24854 struct { 24855 uint32_t xu_a_state; /* state of async i/o */ 24856 /* bytes that have been uioamove()ed */ 24857 ssize_t xu_a_mbytes; 24858 uioa_page_t *xu_a_lcur; /* pointer into uioa_locked[] */ 24859 /* pointer into lcur->uioa_ppp[] */ 24860 void **xu_a_lppp; 24861 void *xu_a_hwst[4]; /* opaque hardware state */ 24862 /* Per iov locked pages */ 24863 uioa_page_t xu_a_locked[16]; 24864 } xu_aio; 24865 24866 /* 24867 * Copy Reduction Support -- facilate loaning / returning of 24868 * filesystem cache buffers. 24869 */ 24870 struct { 24871 int xu_zc_rw; /* read or write buffer */ 24872 void *xu_zc_priv; /* fs specific */ 24873 } xu_zc; 24874 } xu_ext; 24875 } xuio_t; 24876 # 207 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24877 /* 24878 * I/O direction. 24879 */ 24880 typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t; 24881 24882 /* 24883 * uio_extflg: extended flags 24884 * 24885 * NOTE: This flag will be used in uiomove to determine if non-temporal 24886 * access, ie, access bypassing caches, should be used. Filesystems that 24887 * don't initialize this field could experience suboptimal performance due to 24888 * the random data the field contains. 24889 * 24890 * NOTE: This flag is also used by uioasync callers to pass an extended 24891 * uio_t (uioa_t), to uioasync enabled consumers. Unlike above all 24892 * consumers of a uioa_t require the uio_extflg to be initialized. 24893 */ 24894 24895 24896 24897 24898 24899 24900 /* 24901 * Global uioasync capability shadow state. 24902 */ 24903 typedef struct uioasync_s { 24904 boolean_t enabled; /* Is uioasync enabled? */ 24905 size_t mincnt; /* Minimum byte count for use of */ 24906 } uioasync_t; 24907 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24908 extern ssize_t readv(int, const struct iovec *, int); 24909 extern ssize_t writev(int, const struct iovec *, int); 24910 24911 /* 24912 * When in the large file compilation environment, 24913 * map preadv/pwritev to their 64 bit offset versions 24914 */ 24915 24916 24917 24918 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24919 #pragma redefine_extname preadv preadv64 24920 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24921 24922 24923 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24924 #pragma redefine_extname pwritev pwritev64 24925 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24926 24927 24928 24929 24930 24931 24932 24933 /* In the LP64 compilation environment, the APIs are already large file */ 24934 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 24935 extern ssize_t preadv(int, const struct iovec *, int, off_t); 24936 extern ssize_t pwritev(int, const struct iovec *, int, off_t); 24937 24938 /* 24939 * preadv64 and pwritev64 should be defined when: 24940 * - Using the transitional compilation environment, and not 24941 * the large file compilation environment. 24942 */ 24943 24944 24945 extern ssize_t preadv64(int, const struct iovec *, int, off64_t); 24946 extern ssize_t pwritev64(int, const struct iovec *, int, off64_t); 24947 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 24948 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 24949 /* 24950 * CDDL HEADER START 24951 * 24952 * The contents of this file are subject to the terms of the 24953 * Common Development and Distribution License (the "License"). 24954 * You may not use this file except in compliance with the License. 24955 * 24956 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24957 * or http://www.opensolaris.org/os/licensing. 24958 * See the License for the specific language governing permissions 24959 * and limitations under the License. 24960 * 24961 * When distributing Covered Code, include this CDDL HEADER in each 24962 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24963 * If applicable, add the following below this CDDL HEADER, with the 24964 * fields enclosed by brackets "[]" replaced with your own identifying 24965 * information: Portions Copyright [yyyy] [name of copyright owner] 24966 * 24967 * CDDL HEADER END 24968 */ 24969 24970 /* 24971 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 24972 * Copyright 2016 Joyent, Inc. 24973 * 24974 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24975 * Use is subject to license terms. 24976 */ 24977 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 24978 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1 24979 /* 24980 * CDDL HEADER START 24981 * 24982 * The contents of this file are subject to the terms of the 24983 * Common Development and Distribution License (the "License"). 24984 * You may not use this file except in compliance with the License. 24985 * 24986 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24987 * or http://www.opensolaris.org/os/licensing. 24988 * See the License for the specific language governing permissions 24989 * and limitations under the License. 24990 * 24991 * When distributing Covered Code, include this CDDL HEADER in each 24992 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24993 * If applicable, add the following below this CDDL HEADER, with the 24994 * fields enclosed by brackets "[]" replaced with your own identifying 24995 * information: Portions Copyright [yyyy] [name of copyright owner] 24996 * 24997 * CDDL HEADER END 24998 */ 24999 /* 25000 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25001 * Use is subject to license terms. 25002 */ 25003 25004 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 25005 /* All Rights Reserved */ 25006 25007 /* 25008 * Portions of this source code were derived from Berkeley 4.3 BSD 25009 * under license from the Regents of the University of California. 25010 */ 25011 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25012 25013 25014 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 1 25015 /* 25016 * CDDL HEADER START 25017 * 25018 * The contents of this file are subject to the terms of the 25019 * Common Development and Distribution License, Version 1.0 only 25020 * (the "License"). You may not use this file except in compliance 25021 * with the License. 25022 * 25023 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25024 * or http://www.opensolaris.org/os/licensing. 25025 * See the License for the specific language governing permissions 25026 * and limitations under the License. 25027 * 25028 * When distributing Covered Code, include this CDDL HEADER in each 25029 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25030 * If applicable, add the following below this CDDL HEADER, with the 25031 * fields enclosed by brackets "[]" replaced with your own identifying 25032 * information: Portions Copyright [yyyy] [name of copyright owner] 25033 * 25034 * CDDL HEADER END 25035 */ 25036 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 25037 /* All Rights Reserved */ 25038 25039 25040 /* 25041 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 25042 * 25043 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 25044 * Use is subject to license terms. 25045 */ 25046 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 25047 struct netconfig { 25048 char *nc_netid; /* network identifier */ 25049 unsigned int nc_semantics; /* defined below */ 25050 unsigned int nc_flag; /* defined below */ 25051 char *nc_protofmly; /* protocol family name */ 25052 char *nc_proto; /* protocol name */ 25053 char *nc_device; /* device name for network id */ 25054 unsigned int nc_nlookups; /* # of entries in nc_lookups */ 25055 char **nc_lookups; /* list of lookup directories */ 25056 unsigned int nc_unused[8]; /* borrowed for lockd etc. */ 25057 }; 25058 25059 typedef struct { 25060 struct netconfig **nc_head; 25061 struct netconfig **nc_curr; 25062 } NCONF_HANDLE; 25063 25064 /* 25065 * Values of nc_semantics 25066 */ 25067 25068 25069 25070 25071 25072 /* 25073 * NOT FOR PUBLIC USE, Solaris internal only. 25074 * This value of nc_semantics is strictly for use of Remote Direct 25075 * Memory Access provider interfaces in Solaris only and not for 25076 * general use. Do not use this value for general purpose user or 25077 * kernel programming. If used the behavior is undefined. 25078 * This is a PRIVATE interface to be used by Solaris kRPC only. 25079 */ 25080 25081 25082 /* 25083 * Values of nc_flag 25084 */ 25085 25086 25087 25088 25089 25090 /* 25091 * Values of nc_protofmly 25092 */ 25093 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 25094 /* 25095 * NOT FOR PUBLIC USE, Solaris internal only. 25096 * This value of nc_semantics is strictly for use of Remote Direct 25097 * Memory Access provider interfaces in Solaris only and not for 25098 * general use. Do not use this value for general purpose user or 25099 * kernel programming. If used the behavior is undefined. 25100 * This is a PRIVATE interface to be used by Solaris kRPC only. 25101 */ 25102 25103 25104 /* 25105 * Values for nc_proto 25106 */ 25107 25108 25109 25110 25111 25112 25113 /* 25114 * Values for nc_proto for "rdma" protofmly 25115 */ 25116 25117 25118 25119 25120 extern void *setnetconfig(void); 25121 extern int endnetconfig(void *); 25122 extern struct netconfig *getnetconfig(void *); 25123 extern struct netconfig *getnetconfigent(const char *); 25124 extern void freenetconfigent(struct netconfig *); 25125 extern void *setnetpath(void); 25126 extern int endnetpath(void *); 25127 extern struct netconfig *getnetpath(void *); 25128 extern void nc_perror(const char *); 25129 extern char *nc_sperror(void); 25130 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25131 25132 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1 25133 /* 25134 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25135 * Use is subject to license terms. 25136 * 25137 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 25138 */ 25139 /* 25140 * Copyright (c) 1982, 1986 Regents of the University of California. 25141 * All rights reserved. 25142 * 25143 * Redistribution and use in source and binary forms are permitted 25144 * provided that this notice is preserved and that due credit is given 25145 * to the University of California at Berkeley. The name of the University 25146 * may not be used to endorse or promote products derived from this 25147 * software without specific prior written permission. This software 25148 * is provided ``as is'' without express or implied warranty. 25149 */ 25150 25151 /* 25152 * Constants and structures defined by the internet system, 25153 * according to following documents 25154 * 25155 * Internet ASSIGNED NUMBERS (RFC1700) and its successors: 25156 * http://www.iana.org/assignments/protocol-numbers 25157 * http://www.iana.org/assignments/port-numbers 25158 * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors) 25159 * 25160 */ 25161 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25162 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25163 /* 25164 * Definitions related to sockets: types, address families, options. 25165 */ 25166 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25167 /* 25168 * Types 25169 */ 25170 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25171 /* 25172 * Flags for socket() and accept4() 25173 */ 25174 25175 25176 25177 25178 /* 25179 * Option flags per-socket. 25180 */ 25181 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25182 /* 25183 * Socket options are passed using a signed integer, but it is also rare 25184 * for more than one to ever be passed at the same time with setsockopt 25185 * and only one at a time can be retrieved with getsockopt. 25186 * 25187 * Since the lower numbers cannot be renumbered for compatibility reasons, 25188 * it would seem that we need to start a new number space (0x40000000 - 25189 * 0x7fffffff) for those that don't need to be stored as a bit flag 25190 * somewhere. This limits the flag options to 30 but that seems to be 25191 * plenty, anyway. 0x40000000 is reserved for future use. 25192 */ 25193 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25194 /* 25195 * N.B.: The following definition is present only for compatibility 25196 * with release 3.0. It will disappear in later releases. 25197 */ 25198 25199 25200 /* 25201 * Additional options, not kept in so_options. 25202 */ 25203 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25204 /* "Socket"-level control message types: */ 25205 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25206 /* 25207 * Socket filter options 25208 */ 25209 25210 25211 25212 25213 25214 /* 25215 * Structure returned by FIL_LIST 25216 */ 25217 struct fil_info { 25218 int fi_flags; /* see below (FILF_*) */ 25219 int fi_pos; /* position (0 is bottom) */ 25220 char fi_name[32]; /* filter name */ 25221 }; 25222 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25223 /* 25224 * Structure used for manipulating linger option. 25225 */ 25226 struct linger { 25227 int l_onoff; /* option on/off */ 25228 int l_linger; /* linger time */ 25229 }; 25230 25231 /* 25232 * Levels for (get/set)sockopt() that don't apply to a specific protocol. 25233 */ 25234 25235 25236 25237 25238 25239 25240 25241 /* 25242 * Address families. 25243 * 25244 * Some of these constant names are copied for the DTrace IP provider in 25245 * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept 25246 * in sync. 25247 */ 25248 # 300 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25249 /* 25250 * Protocol families, same as address families for now. 25251 */ 25252 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25253 /* 25254 * Maximum queue length specifiable by listen. 25255 */ 25256 25257 25258 /* 25259 * Message header for recvmsg and sendmsg calls. 25260 */ 25261 struct msghdr { 25262 void *msg_name; /* optional address */ 25263 socklen_t msg_namelen; /* size of address */ 25264 struct iovec *msg_iov; /* scatter/gather array */ 25265 int msg_iovlen; /* # elements in msg_iov */ 25266 25267 25268 25269 25270 25271 25272 caddr_t msg_accrights; /* access rights sent/received */ 25273 int msg_accrightslen; 25274 25275 }; 25276 # 412 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25277 /* Added for XPGv2 compliance */ 25278 25279 25280 25281 25282 25283 /* with left over data */ 25284 /* End of XPGv2 compliance */ 25285 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25286 /* Added for XPGv2 compliance */ 25287 25288 25289 25290 25291 struct cmsghdr { 25292 socklen_t cmsg_len; /* data byte count, including hdr */ 25293 int cmsg_level; /* originating protocol */ 25294 int cmsg_type; /* protocol-specific type */ 25295 }; 25296 # 528 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 25297 extern int accept(int, struct sockaddr *, Psocklen_t); 25298 extern int accept4(int, struct sockaddr *, Psocklen_t, int); 25299 extern int bind(int, const struct sockaddr *, socklen_t); 25300 extern int connect(int, const struct sockaddr *, socklen_t); 25301 extern int getpeername(int, struct sockaddr *, Psocklen_t); 25302 extern int getsockname(int, struct sockaddr *, Psocklen_t); 25303 extern int getsockopt(int, int, int, void *, Psocklen_t); 25304 extern int listen(int, int); /* XXX - fixme??? where do I go */ 25305 extern int socketpair(int, int, int, int *); 25306 extern ssize_t recv(int, void *, size_t, int); 25307 extern ssize_t recvfrom(int, void *, size_t, int, 25308 struct sockaddr *, Psocklen_t); 25309 extern ssize_t recvmsg(int, struct msghdr *, int); 25310 extern ssize_t send(int, const void *, size_t, int); 25311 extern ssize_t sendmsg(int, const struct msghdr *, int); 25312 extern ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *, 25313 socklen_t); 25314 extern int setsockopt(int, int, int, const void *, socklen_t); 25315 extern int shutdown(int, int); 25316 extern int socket(int, int, int); 25317 25318 25319 extern int sockatmark(int); 25320 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 25321 25322 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 25323 /* 25324 * CDDL HEADER START 25325 * 25326 * The contents of this file are subject to the terms of the 25327 * Common Development and Distribution License (the "License"). 25328 * You may not use this file except in compliance with the License. 25329 * 25330 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25331 * or http://www.opensolaris.org/os/licensing. 25332 * See the License for the specific language governing permissions 25333 * and limitations under the License. 25334 * 25335 * When distributing Covered Code, include this CDDL HEADER in each 25336 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25337 * If applicable, add the following below this CDDL HEADER, with the 25338 * fields enclosed by brackets "[]" replaced with your own identifying 25339 * information: Portions Copyright [yyyy] [name of copyright owner] 25340 * 25341 * CDDL HEADER END 25342 */ 25343 25344 /* 25345 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 25346 * Copyright 2016 Joyent, Inc. 25347 * 25348 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25349 * Use is subject to license terms. 25350 */ 25351 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 25352 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25353 struct hostent { 25354 char *h_name; /* official name of host */ 25355 char **h_aliases; /* alias list */ 25356 int h_addrtype; /* host address type */ 25357 int h_length; /* length of address */ 25358 char **h_addr_list; /* list of addresses from name server */ 25359 25360 }; 25361 25362 25363 /* 25364 * addrinfo introduced with IPv6 for Protocol-Independent Hostname 25365 * and Service Name Translation. 25366 */ 25367 25368 25369 struct addrinfo { 25370 int ai_flags; /* AI_PASSIVE, AI_CANONNAME, ... */ 25371 int ai_family; /* PF_xxx */ 25372 int ai_socktype; /* SOCK_xxx */ 25373 int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ 25374 25375 25376 25377 socklen_t ai_addrlen; 25378 char *ai_canonname; /* canonical name for hostname */ 25379 struct sockaddr *ai_addr; /* binary address */ 25380 struct addrinfo *ai_next; /* next structure in linked list */ 25381 }; 25382 25383 /* 25384 * The flag 0x8000 is currently reserved for private use between libnsl and 25385 * libsocket. See lib/libsocket/inet/getaddrinfo.c for more information. 25386 */ 25387 /* addrinfo flags */ 25388 25389 25390 25391 25392 25393 /* getipnodebyname() flags */ 25394 25395 25396 25397 25398 25399 /* 25400 * These were defined in RFC 2553 but not SUSv3 25401 * or RFC 3493 which obsoleted 2553. 25402 */ 25403 25404 25405 25406 /* addrinfo errors */ 25407 # 166 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25408 /* getnameinfo flags */ 25409 25410 25411 25412 25413 25414 25415 25416 /* Not listed in any standards document */ 25417 25418 25419 25420 /* getnameinfo max sizes as defined in RFC 2553 obsoleted in RFC 3493 */ 25421 25422 25423 25424 25425 25426 /* 25427 * Scope delimit character 25428 */ 25429 25430 25431 25432 /* 25433 * Algorithm entry for /etc/inet/ipsecalgs which defines IPsec protocols 25434 * and algorithms. 25435 */ 25436 25437 typedef struct ipsecalgent { 25438 char **a_names; /* algorithm names */ 25439 int a_proto_num; /* protocol number */ 25440 int a_alg_num; /* algorithm number */ 25441 char *a_mech_name; /* encryption framework mechanism name */ 25442 int *a_block_sizes; /* supported block sizes */ 25443 int *a_key_sizes; /* supported key sizes */ 25444 int a_key_increment; /* key size increment */ 25445 int *a_mech_params; /* mechanism specific parameters */ 25446 int a_alg_flags; /* algorithm flags */ 25447 } ipsecalgent_t; 25448 25449 /* well-known IPsec protocol numbers */ 25450 25451 25452 25453 25454 25455 /* 25456 * Assumption here is that a network number 25457 * fits in 32 bits -- probably a poor one. 25458 */ 25459 struct netent { 25460 char *n_name; /* official name of net */ 25461 char **n_aliases; /* alias list */ 25462 int n_addrtype; /* net address type */ 25463 in_addr_t n_net; /* network # */ 25464 }; 25465 25466 struct protoent { 25467 char *p_name; /* official protocol name */ 25468 char **p_aliases; /* alias list */ 25469 int p_proto; /* protocol # */ 25470 }; 25471 25472 struct servent { 25473 char *s_name; /* official service name */ 25474 char **s_aliases; /* alias list */ 25475 int s_port; /* port # */ 25476 char *s_proto; /* protocol to use */ 25477 }; 25478 25479 25480 struct hostent *gethostbyname_r 25481 (const char *, struct hostent *, char *, int, int *h_errnop); 25482 struct hostent *gethostbyaddr_r 25483 (const char *, int, int, struct hostent *, char *, int, int *h_errnop); 25484 struct hostent *getipnodebyname(const char *, int, int, int *); 25485 struct hostent *getipnodebyaddr(const void *, size_t, int, int *); 25486 void freehostent(struct hostent *); 25487 struct hostent *gethostent_r(struct hostent *, char *, int, int *h_errnop); 25488 25489 struct servent *getservbyname_r 25490 (const char *name, const char *, struct servent *, char *, int); 25491 struct servent *getservbyport_r 25492 (int port, const char *, struct servent *, char *, int); 25493 struct servent *getservent_r(struct servent *, char *, int); 25494 25495 struct netent *getnetbyname_r 25496 (const char *, struct netent *, char *, int); 25497 struct netent *getnetbyaddr_r(long, int, struct netent *, char *, int); 25498 struct netent *getnetent_r(struct netent *, char *, int); 25499 25500 struct protoent *getprotobyname_r 25501 (const char *, struct protoent *, char *, int); 25502 struct protoent *getprotobynumber_r 25503 (int, struct protoent *, char *, int); 25504 struct protoent *getprotoent_r(struct protoent *, char *, int); 25505 25506 int getnetgrent_r(char **, char **, char **, char *, int); 25507 int innetgr(const char *, const char *, const char *, const char *); 25508 25509 25510 /* Old interfaces that return a pointer to a static area; MT-unsafe */ 25511 struct hostent *gethostbyname(const char *); 25512 struct hostent *gethostent(void); 25513 struct netent *getnetbyaddr(in_addr_t, int); 25514 struct netent *getnetbyname(const char *); 25515 struct netent *getnetent(void); 25516 struct protoent *getprotobyname(const char *); 25517 struct protoent *getprotobynumber(int); 25518 struct protoent *getprotoent(void); 25519 struct servent *getservbyname(const char *, const char *); 25520 struct servent *getservbyport(int, const char *); 25521 struct servent *getservent(void); 25522 25523 /* gethostbyaddr() second argument is a size_t only in unix95/unix98 */ 25524 25525 struct hostent *gethostbyaddr(const void *, socklen_t, int); 25526 25527 25528 25529 25530 25531 int endhostent(void); 25532 int endnetent(void); 25533 int endprotoent(void); 25534 int endservent(void); 25535 int sethostent(int); 25536 int setnetent(int); 25537 int setprotoent(int); 25538 int setservent(int); 25539 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25540 int getaddrinfo(const char *, 25541 const char *, 25542 const struct addrinfo *, 25543 struct addrinfo **); 25544 void freeaddrinfo(struct addrinfo *); 25545 const char *gai_strerror(int); 25546 int getnameinfo(const struct sockaddr *, 25547 socklen_t, char *, socklen_t, 25548 char *, socklen_t, int); 25549 25550 25551 25552 int getnetgrent(char **, char **, char **); 25553 int setnetgrent(const char *); 25554 int endnetgrent(void); 25555 int rcmd(char **, unsigned short, 25556 const char *, const char *, const char *, int *); 25557 int rcmd_af(char **, unsigned short, 25558 const char *, const char *, const char *, int *, int); 25559 int rresvport_af(int *, int); 25560 int rresvport_addr(int *, struct sockaddr_storage *); 25561 int rexec(char **, unsigned short, 25562 const char *, const char *, const char *, int *); 25563 int rexec_af(char **, unsigned short, 25564 const char *, const char *, const char *, int *, int); 25565 int rresvport(int *); 25566 int ruserok(const char *, int, const char *, const char *); 25567 /* BIND */ 25568 struct hostent *gethostbyname2(const char *, int); 25569 void herror(const char *); 25570 const char *hstrerror(int); 25571 /* End BIND */ 25572 25573 /* IPsec algorithm prototype definitions */ 25574 struct ipsecalgent *getipsecalgbyname(const char *, int, int *); 25575 struct ipsecalgent *getipsecalgbynum(int, int, int *); 25576 int getipsecprotobyname(const char *doi_name); 25577 char *getipsecprotobynum(int doi_domain); 25578 void freeipsecalgent(struct ipsecalgent *ptr); 25579 /* END IPsec algorithm prototype definitions */ 25580 25581 25582 25583 /* 25584 * Error return codes from gethostbyname() and gethostbyaddr() 25585 * (when using the resolver) 25586 */ 25587 25588 extern int h_errno; 25589 # 377 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25590 /* 25591 * Error return codes from gethostbyname() and gethostbyaddr() 25592 * (left in extern int h_errno). 25593 */ 25594 # 389 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 25595 /* BIND */ 25596 25597 25598 /* End BIND */ 25599 # 46 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 25600 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 1 25601 /* 25602 * CDDL HEADER START 25603 * 25604 * The contents of this file are subject to the terms of the 25605 * Common Development and Distribution License, Version 1.0 only 25606 * (the "License"). You may not use this file except in compliance 25607 * with the License. 25608 * 25609 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25610 * or http://www.opensolaris.org/os/licensing. 25611 * See the License for the specific language governing permissions 25612 * and limitations under the License. 25613 * 25614 * When distributing Covered Code, include this CDDL HEADER in each 25615 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25616 * If applicable, add the following below this CDDL HEADER, with the 25617 * fields enclosed by brackets "[]" replaced with your own identifying 25618 * information: Portions Copyright [yyyy] [name of copyright owner] 25619 * 25620 * CDDL HEADER END 25621 */ 25622 /* 25623 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25624 * Use is subject to license terms. 25625 */ 25626 25627 25628 25629 25630 #pragma ident "%Z%%M% %I% %E% SMI" 25631 25632 25633 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 25634 /* 25635 * CDDL HEADER START 25636 * 25637 * The contents of this file are subject to the terms of the 25638 * Common Development and Distribution License (the "License"). 25639 * You may not use this file except in compliance with the License. 25640 * 25641 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25642 * or http://www.opensolaris.org/os/licensing. 25643 * See the License for the specific language governing permissions 25644 * and limitations under the License. 25645 * 25646 * When distributing Covered Code, include this CDDL HEADER in each 25647 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25648 * If applicable, add the following below this CDDL HEADER, with the 25649 * fields enclosed by brackets "[]" replaced with your own identifying 25650 * information: Portions Copyright [yyyy] [name of copyright owner] 25651 * 25652 * CDDL HEADER END 25653 */ 25654 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 25655 /* All Rights Reserved */ 25656 25657 25658 /* 25659 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25660 * Use is subject to license terms. 25661 * 25662 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 25663 * Copyright 2016 Joyent, Inc. 25664 */ 25665 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 25666 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1 25667 /* 25668 * CDDL HEADER START 25669 * 25670 * The contents of this file are subject to the terms of the 25671 * Common Development and Distribution License, Version 1.0 only 25672 * (the "License"). You may not use this file except in compliance 25673 * with the License. 25674 * 25675 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25676 * or http://www.opensolaris.org/os/licensing. 25677 * See the License for the specific language governing permissions 25678 * and limitations under the License. 25679 * 25680 * When distributing Covered Code, include this CDDL HEADER in each 25681 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25682 * If applicable, add the following below this CDDL HEADER, with the 25683 * fields enclosed by brackets "[]" replaced with your own identifying 25684 * information: Portions Copyright [yyyy] [name of copyright owner] 25685 * 25686 * CDDL HEADER END 25687 */ 25688 /* 25689 * Copyright 2000 Sun Microsystems, Inc. All rights reserved. 25690 * Use is subject to license terms. 25691 */ 25692 25693 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 25694 /* All Rights Reserved */ 25695 25696 /* 25697 * University Copyright- Copyright (c) 1982, 1986, 1988 25698 * The Regents of the University of California 25699 * All Rights Reserved 25700 * 25701 * University Acknowledgment- Portions of this document are derived from 25702 * software developed by the University of California, Berkeley, and its 25703 * contributors. 25704 */ 25705 25706 25707 25708 25709 #pragma ident "%Z%%M% %I% %E% SMI" 25710 25711 25712 25713 25714 25715 /* 25716 * Error codes 25717 */ 25718 # 102 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25719 /* Filesystem Quotas */ 25720 25721 25722 /* Convergent Error Returns */ 25723 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25724 /* Interprocess Robust Locks */ 25725 25726 25727 25728 /* stream problems */ 25729 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25730 /* Interprocess Robust Locks */ 25731 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25732 /* shared library problems */ 25733 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25734 /* BSD Networking Software */ 25735 /* argument errors */ 25736 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25737 /* protocol family */ 25738 25739 25740 /* operational errors */ 25741 25742 25743 25744 /* of reset */ 25745 25746 25747 25748 25749 25750 /* XENIX has 135 - 142 */ 25751 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 25752 /* SUN Network File System */ 25753 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 25754 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 1 25755 /* 25756 * CDDL HEADER START 25757 * 25758 * The contents of this file are subject to the terms of the 25759 * Common Development and Distribution License, Version 1.0 only 25760 * (the "License"). You may not use this file except in compliance 25761 * with the License. 25762 * 25763 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25764 * or http://www.opensolaris.org/os/licensing. 25765 * See the License for the specific language governing permissions 25766 * and limitations under the License. 25767 * 25768 * When distributing Covered Code, include this CDDL HEADER in each 25769 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25770 * If applicable, add the following below this CDDL HEADER, with the 25771 * fields enclosed by brackets "[]" replaced with your own identifying 25772 * information: Portions Copyright [yyyy] [name of copyright owner] 25773 * 25774 * CDDL HEADER END 25775 */ 25776 /* 25777 * Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved. 25778 * Use is subject to license terms. 25779 */ 25780 25781 25782 25783 25784 #pragma ident "%Z%%M% %I% %E% SMI" 25785 25786 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1 25787 /* 25788 * CDDL HEADER START 25789 * 25790 * The contents of this file are subject to the terms of the 25791 * Common Development and Distribution License (the "License"). 25792 * You may not use this file except in compliance with the License. 25793 * 25794 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25795 * or http://www.opensolaris.org/os/licensing. 25796 * See the License for the specific language governing permissions 25797 * and limitations under the License. 25798 * 25799 * When distributing Covered Code, include this CDDL HEADER in each 25800 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25801 * If applicable, add the following below this CDDL HEADER, with the 25802 * fields enclosed by brackets "[]" replaced with your own identifying 25803 * information: Portions Copyright [yyyy] [name of copyright owner] 25804 * 25805 * CDDL HEADER END 25806 */ 25807 25808 /* 25809 * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 25810 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. 25811 */ 25812 25813 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 25814 /* All Rights Reserved */ 25815 25816 /* 25817 * University Copyright- Copyright (c) 1982, 1986, 1988 25818 * The Regents of the University of California 25819 * All Rights Reserved 25820 * 25821 * University Acknowledgment- Portions of this document are derived from 25822 * software developed by the University of California, Berkeley, and its 25823 * contributors. 25824 */ 25825 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 2 25826 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 25827 typedef struct { 25828 char hostname[256]; 25829 ushort_t port; 25830 } url_hport_t; 25831 25832 typedef struct { 25833 boolean_t https; 25834 url_hport_t hport; 25835 char abspath[1024]; 25836 } url_t; 25837 25838 extern int url_parse_hostport(const char *, url_hport_t *, ushort_t); 25839 extern int url_parse(const char *, url_t *); 25840 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 25841 25842 25843 25844 25845 25846 /* State information returned by http_conn_info() */ 25847 typedef struct { 25848 url_t uri; /* URI last loaded */ 25849 url_hport_t proxy; /* proxy, if any being used */ 25850 boolean_t keepalive; /* Keepalive setting being used */ 25851 uint_t read_timeout; /* Timeout to use for socket reads */ 25852 } http_conninfo_t; 25853 25854 25855 /* Structure for version of the http file */ 25856 typedef struct { 25857 uint_t maj_ver; /* Major version */ 25858 uint_t min_ver; /* Minor version */ 25859 uint_t micro_ver; /* Micro version */ 25860 } boot_http_ver_t; 25861 25862 /* Internal Libhttp errors */ 25863 25864 25865 25866 /* necessarily the underlying transport */ 25867 /* connection). */ 25868 25869 /* error. */ 25870 25871 25872 25873 /* No matching entry */ 25874 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 25875 /* Sources of errors */ 25876 25877 25878 25879 25880 25881 25882 25883 typedef struct { 25884 uint_t code; /* status code */ 25885 char *statusmsg; /* status message */ 25886 uint_t nresphdrs; /* number of response headers */ 25887 } http_respinfo_t; 25888 25889 25890 typedef void *http_handle_t; 25891 25892 boot_http_ver_t const *http_get_version(void); 25893 void http_set_p12_format(int); 25894 void http_set_verbose(boolean_t); 25895 int http_set_cipher_list(const char *); 25896 http_handle_t http_srv_init(const url_t *); 25897 int http_set_proxy(http_handle_t, const url_hport_t *); 25898 int http_set_keepalive(http_handle_t, boolean_t); 25899 int http_set_socket_read_timeout(http_handle_t, uint_t); 25900 int http_set_basic_auth(http_handle_t, const char *, const char *); 25901 int http_set_random_file(http_handle_t, const char *); 25902 int http_set_certificate_authority_file(const char *); 25903 int http_set_client_certificate_file(http_handle_t, const char *); 25904 int http_set_password(http_handle_t, const char *); 25905 int http_set_key_file_password(http_handle_t, const char *); 25906 int http_set_private_key_file(http_handle_t, const char *); 25907 25908 int http_srv_connect(http_handle_t); 25909 int http_head_request(http_handle_t, const char *); 25910 int http_get_request(http_handle_t, const char *); 25911 int http_get_range_request(http_handle_t, const char *, offset_t, offset_t); 25912 void http_free_respinfo(http_respinfo_t *); 25913 int http_process_headers(http_handle_t, http_respinfo_t **); 25914 int http_process_part_headers(http_handle_t, http_respinfo_t **); 25915 char *http_get_header_value(http_handle_t, const char *); 25916 char *http_get_response_header(http_handle_t, uint_t); 25917 int http_read_body(http_handle_t, char *, size_t); 25918 int http_srv_disconnect(http_handle_t); 25919 int http_srv_close(http_handle_t); 25920 http_conninfo_t *http_get_conn_info(http_handle_t); 25921 int http_conn_is_https(http_handle_t, boolean_t *); 25922 ulong_t http_get_lasterr(http_handle_t, uint_t *); 25923 void http_decode_err(ulong_t, int *, int *, int *); 25924 char const *http_errorstr(uint_t, ulong_t); 25925 # 47 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 25926 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1 25927 /* 25928 * CDDL HEADER START 25929 * 25930 * The contents of this file are subject to the terms of the 25931 * Common Development and Distribution License (the "License"). 25932 * You may not use this file except in compliance with the License. 25933 * 25934 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25935 * or http://www.opensolaris.org/os/licensing. 25936 * See the License for the specific language governing permissions 25937 * and limitations under the License. 25938 * 25939 * When distributing Covered Code, include this CDDL HEADER in each 25940 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25941 * If applicable, add the following below this CDDL HEADER, with the 25942 * fields enclosed by brackets "[]" replaced with your own identifying 25943 * information: Portions Copyright [yyyy] [name of copyright owner] 25944 * 25945 * CDDL HEADER END 25946 */ 25947 25948 /* 25949 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 25950 * Use is subject to license terms. 25951 */ 25952 25953 25954 25955 25956 25957 /* 25958 * Module: pkgerr.h 25959 * Description: 25960 * 25961 * Implements error routines to handle the creation, 25962 * management, and destruction of error objects, which 25963 * hold error messages and codes returned from libpkg 25964 * routines that support the objects defined herein. 25965 */ 25966 25967 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 25968 /* 25969 * CDDL HEADER START 25970 * 25971 * The contents of this file are subject to the terms of the 25972 * Common Development and Distribution License (the "License"). 25973 * You may not use this file except in compliance with the License. 25974 * 25975 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25976 * or http://www.opensolaris.org/os/licensing. 25977 * See the License for the specific language governing permissions 25978 * and limitations under the License. 25979 * 25980 * When distributing Covered Code, include this CDDL HEADER in each 25981 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25982 * If applicable, add the following below this CDDL HEADER, with the 25983 * fields enclosed by brackets "[]" replaced with your own identifying 25984 * information: Portions Copyright [yyyy] [name of copyright owner] 25985 * 25986 * CDDL HEADER END 25987 */ 25988 25989 /* 25990 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 25991 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 25992 */ 25993 25994 /* Copyright (c) 1988 AT&T */ 25995 /* All Rights Reserved */ 25996 25997 /* 25998 * User-visible pieces of the ANSI C standard I/O package. 25999 */ 26000 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 2 26001 26002 26003 26004 26005 26006 /* 26007 * Public Definitions 26008 */ 26009 26010 typedef enum { 26011 PKGERR_OK = 0, 26012 PKGERR_EXIST, 26013 PKGERR_READ, 26014 PKGERR_CORRUPT, 26015 PKGERR_PARSE, 26016 PKGERR_BADPASS, 26017 PKGERR_BADALIAS, 26018 PKGERR_INTERNAL, 26019 PKGERR_UNSUP, 26020 PKGERR_NOALIAS, 26021 PKGERR_NOALIASMATCH, 26022 PKGERR_MULTIPLE, 26023 PKGERR_INCOMPLETE, 26024 PKGERR_NOPRIVKEY, 26025 PKGERR_NOPUBKEY, 26026 PKGERR_NOCACERT, 26027 PKGERR_NOMEM, 26028 PKGERR_CHAIN, 26029 PKGERR_LOCKED, 26030 PKGERR_WRITE, 26031 PKGERR_UNLOCK, 26032 PKGERR_TIME, 26033 PKGERR_DUPLICATE, 26034 PKGERR_WEB, 26035 PKGERR_VERIFY 26036 } PKG_ERR_CODE; 26037 26038 /* 26039 * Public Structures 26040 */ 26041 26042 /* external reference to PKG_ERR object (contents private) */ 26043 typedef PKG_ERR_CODE pkg_err_t; 26044 26045 typedef struct _pkg_err_struct PKG_ERR; 26046 26047 /* 26048 * Public Methods 26049 */ 26050 26051 PKG_ERR *pkgerr_new(); 26052 void pkgerr_add(PKG_ERR *, PKG_ERR_CODE, char *, ...); 26053 void pkgerr_clear(PKG_ERR *); 26054 int pkgerr_dump(PKG_ERR *, FILE *); 26055 int pkgerr_num(PKG_ERR *); 26056 char *pkgerr_get(PKG_ERR *, int); 26057 void pkgerr_free(PKG_ERR *); 26058 # 48 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26059 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 1 26060 /* 26061 * CDDL HEADER START 26062 * 26063 * The contents of this file are subject to the terms of the 26064 * Common Development and Distribution License (the "License"). 26065 * You may not use this file except in compliance with the License. 26066 * 26067 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26068 * or http://www.opensolaris.org/os/licensing. 26069 * See the License for the specific language governing permissions 26070 * and limitations under the License. 26071 * 26072 * When distributing Covered Code, include this CDDL HEADER in each 26073 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26074 * If applicable, add the following below this CDDL HEADER, with the 26075 * fields enclosed by brackets "[]" replaced with your own identifying 26076 * information: Portions Copyright [yyyy] [name of copyright owner] 26077 * 26078 * CDDL HEADER END 26079 */ 26080 26081 /* 26082 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 26083 * Use is subject to license terms. 26084 */ 26085 26086 26087 26088 26089 26090 /* 26091 * Module: keystore.h 26092 * Description: This module contains the structure definitions for processing 26093 * package keystore files. 26094 */ 26095 26096 26097 26098 26099 26100 # 1 "/usr/include/openssl/evp.h" 1 3 4 26101 /* crypto/evp/evp.h */ 26102 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 26103 * All rights reserved. 26104 * 26105 * This package is an SSL implementation written 26106 * by Eric Young (eay@cryptsoft.com). 26107 * The implementation was written so as to conform with Netscapes SSL. 26108 * 26109 * This library is free for commercial and non-commercial use as long as 26110 * the following conditions are aheared to. The following conditions 26111 * apply to all code found in this distribution, be it the RC4, RSA, 26112 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 26113 * included with this distribution is covered by the same copyright terms 26114 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 26115 * 26116 * Copyright remains Eric Young's, and as such any Copyright notices in 26117 * the code are not to be removed. 26118 * If this package is used in a product, Eric Young should be given attribution 26119 * as the author of the parts of the library used. 26120 * This can be in the form of a textual message at program startup or 26121 * in documentation (online or textual) provided with the package. 26122 * 26123 * Redistribution and use in source and binary forms, with or without 26124 * modification, are permitted provided that the following conditions 26125 * are met: 26126 * 1. Redistributions of source code must retain the copyright 26127 * notice, this list of conditions and the following disclaimer. 26128 * 2. Redistributions in binary form must reproduce the above copyright 26129 * notice, this list of conditions and the following disclaimer in the 26130 * documentation and/or other materials provided with the distribution. 26131 * 3. All advertising materials mentioning features or use of this software 26132 * must display the following acknowledgement: 26133 * "This product includes cryptographic software written by 26134 * Eric Young (eay@cryptsoft.com)" 26135 * The word 'cryptographic' can be left out if the rouines from the library 26136 * being used are not cryptographic related :-). 26137 * 4. If you include any Windows specific code (or a derivative thereof) from 26138 * the apps directory (application code) you must include an acknowledgement: 26139 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 26140 * 26141 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 26142 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26143 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26144 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 26145 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26146 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26147 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26148 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26149 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26150 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26151 * SUCH DAMAGE. 26152 * 26153 * The licence and distribution terms for any publically available version or 26154 * derivative of this code cannot be changed. i.e. this code cannot simply be 26155 * copied and put under another distribution licence 26156 * [including the GNU Public Licence.] 26157 */ 26158 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 26159 # 1 "/usr/include/openssl/x509.h" 1 3 4 26160 /* crypto/x509/x509.h */ 26161 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 26162 * All rights reserved. 26163 * 26164 * This package is an SSL implementation written 26165 * by Eric Young (eay@cryptsoft.com). 26166 * The implementation was written so as to conform with Netscapes SSL. 26167 * 26168 * This library is free for commercial and non-commercial use as long as 26169 * the following conditions are aheared to. The following conditions 26170 * apply to all code found in this distribution, be it the RC4, RSA, 26171 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 26172 * included with this distribution is covered by the same copyright terms 26173 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 26174 * 26175 * Copyright remains Eric Young's, and as such any Copyright notices in 26176 * the code are not to be removed. 26177 * If this package is used in a product, Eric Young should be given attribution 26178 * as the author of the parts of the library used. 26179 * This can be in the form of a textual message at program startup or 26180 * in documentation (online or textual) provided with the package. 26181 * 26182 * Redistribution and use in source and binary forms, with or without 26183 * modification, are permitted provided that the following conditions 26184 * are met: 26185 * 1. Redistributions of source code must retain the copyright 26186 * notice, this list of conditions and the following disclaimer. 26187 * 2. Redistributions in binary form must reproduce the above copyright 26188 * notice, this list of conditions and the following disclaimer in the 26189 * documentation and/or other materials provided with the distribution. 26190 * 3. All advertising materials mentioning features or use of this software 26191 * must display the following acknowledgement: 26192 * "This product includes cryptographic software written by 26193 * Eric Young (eay@cryptsoft.com)" 26194 * The word 'cryptographic' can be left out if the rouines from the library 26195 * being used are not cryptographic related :-). 26196 * 4. If you include any Windows specific code (or a derivative thereof) from 26197 * the apps directory (application code) you must include an acknowledgement: 26198 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 26199 * 26200 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 26201 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26202 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26203 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 26204 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26205 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26206 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26207 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26208 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26209 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26210 * SUCH DAMAGE. 26211 * 26212 * The licence and distribution terms for any publically available version or 26213 * derivative of this code cannot be changed. i.e. this code cannot simply be 26214 * copied and put under another distribution licence 26215 * [including the GNU Public Licence.] 26216 */ 26217 /* ==================================================================== 26218 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 26219 * ECDH support in OpenSSL originally developed by 26220 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 26221 */ 26222 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 26223 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1 26224 /* 26225 * CDDL HEADER START 26226 * 26227 * The contents of this file are subject to the terms of the 26228 * Common Development and Distribution License (the "License"). 26229 * You may not use this file except in compliance with the License. 26230 * 26231 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26232 * or http://www.opensolaris.org/os/licensing. 26233 * See the License for the specific language governing permissions 26234 * and limitations under the License. 26235 * 26236 * When distributing Covered Code, include this CDDL HEADER in each 26237 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26238 * If applicable, add the following below this CDDL HEADER, with the 26239 * fields enclosed by brackets "[]" replaced with your own identifying 26240 * information: Portions Copyright [yyyy] [name of copyright owner] 26241 * 26242 * CDDL HEADER END 26243 */ 26244 26245 /* 26246 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 26247 * Use is subject to license terms. 26248 */ 26249 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 26250 26251 /* keystore structures */ 26252 26253 /* this opaque type represents a keystore */ 26254 typedef void *keystore_handle_t; 26255 26256 /* flags passed to open_keystore */ 26257 26258 /* opens keystore read-only. Attempts to modify results in an error */ 26259 26260 26261 /* opens keystore read-write */ 26262 26263 26264 /* 26265 * tells open_keystore to fall back to app-generic paths in the case that 26266 * the app-specific paths do not exist. 26267 */ 26268 26269 26270 /* 26271 * tells open_keystore to use the app-specific paths no matter what, 26272 * failing if they cannot be used for any reason. 26273 */ 26274 26275 26276 /* masks off various types of flags */ 26277 26278 26279 26280 /* default is read-only, soft */ 26281 26282 26283 26284 /* 26285 * possible encoding formats used by the library, used 26286 * by print_cert 26287 */ 26288 typedef enum { 26289 KEYSTORE_FORMAT_PEM, 26290 KEYSTORE_FORMAT_DER, 26291 KEYSTORE_FORMAT_TEXT 26292 } keystore_encoding_format_t; 26293 26294 /* 26295 * structure passed back to password callback for determining how 26296 * to prompt for passphrase, and where to record errors 26297 */ 26298 typedef struct { 26299 PKG_ERR *err; 26300 } keystore_passphrase_data; 26301 26302 26303 /* max length of a passphrase. One could use a short story! */ 26304 26305 26306 /* callback for collecting passphrase when open_keystore() is called */ 26307 typedef int keystore_passphrase_cb(char *, int, int, void *); 26308 26309 /* names of the individual files within the keystore path */ 26310 26311 26312 26313 26314 /* keystore.c */ 26315 extern int open_keystore(PKG_ERR *, char *, char *, 26316 keystore_passphrase_cb, long flags, keystore_handle_t *); 26317 26318 extern int print_certs(PKG_ERR *, keystore_handle_t, char *, 26319 keystore_encoding_format_t, FILE *); 26320 26321 extern int check_cert(PKG_ERR *, X509 *); 26322 26323 extern int check_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *); 26324 26325 extern int print_cert(PKG_ERR *, X509 *, 26326 keystore_encoding_format_t, char *, boolean_t, FILE *); 26327 26328 extern int close_keystore(PKG_ERR *, keystore_handle_t, 26329 keystore_passphrase_cb); 26330 26331 extern int merge_ca_cert(PKG_ERR *, X509 *, keystore_handle_t); 26332 extern int merge_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *, 26333 char *, keystore_handle_t); 26334 26335 extern int delete_cert_and_keys(PKG_ERR *, keystore_handle_t, 26336 char *); 26337 26338 extern int find_key_cert_pair(PKG_ERR *, keystore_handle_t, 26339 char *, EVP_PKEY **, X509 **); 26340 26341 extern int find_ca_certs(PKG_ERR *, keystore_handle_t, 26342 struct stack_st_X509 **); 26343 26344 extern int find_cl_certs(PKG_ERR *, keystore_handle_t, 26345 struct stack_st_X509 **); 26346 # 49 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26347 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 1 26348 /* 26349 * CDDL HEADER START 26350 * 26351 * The contents of this file are subject to the terms of the 26352 * Common Development and Distribution License (the "License"). 26353 * You may not use this file except in compliance with the License. 26354 * 26355 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26356 * or http://www.opensolaris.org/os/licensing. 26357 * See the License for the specific language governing permissions 26358 * and limitations under the License. 26359 * 26360 * When distributing Covered Code, include this CDDL HEADER in each 26361 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26362 * If applicable, add the following below this CDDL HEADER, with the 26363 * fields enclosed by brackets "[]" replaced with your own identifying 26364 * information: Portions Copyright [yyyy] [name of copyright owner] 26365 * 26366 * CDDL HEADER END 26367 */ 26368 26369 /* 26370 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 26371 * Use is subject to license terms. 26372 */ 26373 # 35 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 26374 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 26375 /* 26376 * CDDL HEADER START 26377 * 26378 * The contents of this file are subject to the terms of the 26379 * Common Development and Distribution License (the "License"). 26380 * You may not use this file except in compliance with the License. 26381 * 26382 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26383 * or http://www.opensolaris.org/os/licensing. 26384 * See the License for the specific language governing permissions 26385 * and limitations under the License. 26386 * 26387 * When distributing Covered Code, include this CDDL HEADER in each 26388 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26389 * If applicable, add the following below this CDDL HEADER, with the 26390 * fields enclosed by brackets "[]" replaced with your own identifying 26391 * information: Portions Copyright [yyyy] [name of copyright owner] 26392 * 26393 * CDDL HEADER END 26394 */ 26395 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 26396 /* All Rights Reserved */ 26397 26398 /* 26399 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 26400 * Use is subject to license terms. 26401 */ 26402 # 36 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 2 26403 26404 struct mergstat { 26405 unsigned setuid:1; /* pkgmap entry has setuid */ 26406 unsigned setgid:1; /* ... and/or setgid bit set */ 26407 unsigned contchg:1; /* contents of the files different */ 26408 unsigned attrchg:1; /* attributes are different */ 26409 unsigned shared:1; /* > 1 pkg associated with this */ 26410 unsigned osetuid:1; /* installed set[ug]id process ... */ 26411 unsigned osetgid:1; /* ... being overwritten by pkg. */ 26412 unsigned rogue:1; /* conflicting file not owned by a package */ 26413 unsigned dir2nondir:1; /* was a directory & now a non-directory */ 26414 unsigned replace:1; /* merge makes no sense for this object pair */ 26415 unsigned denied:1; /* for some reason this was not allowed in */ 26416 unsigned preloaded:1; /* already checked in a prior pkg op */ 26417 unsigned processed:1; /* already installed or removed */ 26418 unsigned parentsyml2dir:1; 26419 /* parent directory changed from symlink to a directory */ 26420 }; 26421 26422 /* 26423 * This is information required by pkgadd for fast operation. A 26424 * cfextra struct is tagged to each cfent structure requiring 26425 * processing. This is how we avoid some unneeded repetition. The 26426 * entries incorporating the word 'local' refer to the path that 26427 * gets us to the delivered package file. In other words, to install 26428 * a file we usually copy from 'local' to 'path' below. In the case 26429 * of a link, where no actual copying takes place, local is the source 26430 * of the link. Note that environment variables are not evaluated in 26431 * the locals unless they are links since the literal path is how 26432 * pkgadd finds the entry under the reloc directory. 26433 */ 26434 struct cfextra { 26435 struct cfent cf_ent; /* basic contents file entry */ 26436 struct mergstat mstat; /* merge status for installs */ 26437 uint32_t fsys_value; /* fstab[] entry index */ 26438 uint32_t fsys_base; /* actual base filesystem in fs_tab[] */ 26439 char *client_path; /* the client-relative path */ 26440 char *server_path; /* the server-relative path */ 26441 char *map_path; /* as read from the pkgmap */ 26442 char *client_local; /* client_relative local */ 26443 char *server_local; /* server relative local */ 26444 }; 26445 # 50 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26446 26447 /* 26448 * The contents database file interface. 26449 */ 26450 26451 typedef struct pkg_server *PKGserver; 26452 26453 /* Some commands modify the internal database: add them here */ 26454 # 82 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26455 typedef enum { 26456 INVALID, /* Not initialized */ 26457 NEVER, /* Don't start, does check if it is running. */ 26458 FLUSH_LOG, /* Run it once to incorporate the log. */ 26459 RUN_ONCE, /* Run until the current client stops. */ 26460 TIMEOUT, /* Run until a timeout occurs. */ 26461 PERMANENT, /* Run until it is externally terminated. */ 26462 DEFAULTMODE = TIMEOUT /* The default mode, must come last */ 26463 } start_mode_t; 26464 26465 typedef struct pkgcmd { 26466 int cmd; 26467 char buf[1]; 26468 } pkgcmd_t; 26469 26470 typedef struct pkgfilter { 26471 int cmd; 26472 int len; 26473 char buf[1]; 26474 } pkgfilter_t; 26475 26476 /* 26477 * Virtual File Protocol definitions 26478 */ 26479 26480 /* 26481 * flags associated with virtual file protocol operations; note that these flags 26482 * may only occupy the low order 16 bits of the 32-bit unsigned flag. 26483 */ 26484 26485 typedef unsigned long VFPFLAGS_T; 26486 # 121 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26487 /* virtual file protocol object */ 26488 26489 typedef struct _vfp VFP_T; 26490 26491 /* structure behind the virtual file protocol object */ 26492 26493 struct _vfp { 26494 FILE *_vfpFile; /* -> opened FILE */ 26495 char *_vfpCurr; /* -> current byte to read/write */ 26496 char *_vfpHighWater; /* -> last byte modified */ 26497 char *_vfpEnd; /* -> last data byte */ 26498 char *_vfpPath; /* -> path associated with FILE */ 26499 char *_vfpStart; /* -> first data byte */ 26500 void *_vfpExtra; /* undefined */ 26501 size_t _vfpSize; /* size of mapped/allocated area */ 26502 size_t _vfpMapSize; /* # mapped bytes */ 26503 VFPFLAGS_T _vfpFlags; /* flags associated with vfp/data */ 26504 int _vfpOverflow; /* non-zero if buffer write overflow */ 26505 blkcnt_t _vfpCkStBlocks; /* checkpoint # blocks */ 26506 dev_t _vfpCkDev; /* checkpoint device i.d. */ 26507 ino_t _vfpCkIno; /* checkpoint inode # */ 26508 off_t _vfpCkSize; /* checkpoint size */ 26509 time_t _vfpCkMtime; /* checkpoint modification time */ 26510 }; 26511 26512 /* 26513 * get highest modified byte (length) contained in vfp 26514 * 26515 * determine number of bytes to write - it will be the highest of: 26516 * -- the current pointer into the file - this is updated whenever 26517 * the location of the file is changed by a single byte 26518 * -- the last "high water mark" - the last known location that 26519 * was written to the file - updated only when the location 26520 * of the file is directly changed - e.g. vfpSetCurrCharPtr, 26521 * vfpTruncate, vfpRewind. 26522 * this reduces the "bookkeeping" that needs to be done to know 26523 * how many bytes to write out to the file - typically a file is 26524 * written sequentially so the current file pointer is sufficient 26525 * to determine how many bytes to write out. 26526 */ 26527 # 169 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26528 /* 26529 * increment current pointer by specified delta 26530 * if the delta exceeds the buffer size, set pointer to buffer end 26531 */ 26532 # 185 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26533 /* get the path associated with the vfp */ 26534 26535 26536 /* get a string from the vfp into a fixed size buffer */ 26537 # 207 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26538 /* get number of bytes remaining to read */ 26539 26540 26541 26542 26543 /* get number of bytes remaining to write */ 26544 26545 26546 26547 26548 /* put current character and increment to next */ 26549 26550 26551 26552 26553 26554 26555 /* put integer to current character and increment */ 26556 26557 26558 /* put long to current character and increment */ 26559 26560 26561 /* get current character and increment to next */ 26562 26563 26564 /* get current character - do not increment */ 26565 26566 26567 /* get pointer to current character */ 26568 26569 26570 /* increment current character pointer */ 26571 26572 26573 /* decrement current character pointer */ 26574 26575 26576 /* get pointer to first data byte in buffer */ 26577 26578 26579 /* get pointer to last data byte in buffer */ 26580 26581 26582 /* set pointer to current character */ 26583 26584 26585 26586 26587 26588 26589 /* set pointer to last data byte in buffer */ 26590 # 267 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26591 /* seek to end of file - one past last data byte in file */ 26592 26593 26594 /* get number of bytes between current char and specified char */ 26595 26596 26597 26598 /* put string to current character and increment */ 26599 # 284 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26600 /* put fixed number of bytes to current character and increment */ 26601 # 298 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26602 /* put format one arg to current character and increment */ 26603 26604 26605 26606 26607 26608 26609 26610 struct dm_buf { 26611 char *text_buffer; /* start of allocated buffer */ 26612 int offset; /* number of bytes into the text_buffer */ 26613 int allocation; /* size of buffer in bytes */ 26614 }; 26615 26616 /* This structure is used to hold a dynamically growing string */ 26617 26618 struct dstr { 26619 char *pc; 26620 int len; 26621 int max; 26622 }; 26623 26624 /* setmapmode() defines */ 26625 # 330 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26626 /* max length for printed attributes */ 26627 26628 26629 /* 26630 * These three defines indicate that the prototype file contains a '?' 26631 * meaning do not specify this data in the pkgmap entry. 26632 */ 26633 # 366 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26634 /* Settings for network admin defaults */ 26635 # 377 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 26636 /* package header magic tokens */ 26637 26638 26639 26640 /* name of security files */ 26641 26642 26643 26644 26645 26646 26647 /* 26648 * The next three mean that no mode, owner or group was specified or that the 26649 * one specified is invalid for some reason. Sometimes this is an error in 26650 * which case it is generally converted to CUR* with a warning. Other times 26651 * it means "look it up" by stating the existing file system object pointred 26652 * to in the prototype file. 26653 */ 26654 26655 26656 26657 26658 /* string comparitor abbreviators */ 26659 26660 26661 26662 26663 26664 26665 extern FILE *epopen(char *cmd, char *mode); 26666 extern char **gpkglist(char *dir, char **pkg, char **catg); 26667 extern int is_not_valid_length(char **category); 26668 extern int is_not_valid_category(char **category, char *progname); 26669 extern int is_same_CATEGORY(char **category, char *installed_category); 26670 extern char **get_categories(char *catg_arg); 26671 26672 extern void pkglist_cont(char *keyword); 26673 extern char **pkgalias(char *pkg); 26674 extern char *get_prog_name(void); 26675 extern char *set_prog_name(char *name); 26676 extern int averify(int fix, char *ftype, char *path, struct ainfo *ainfo); 26677 extern int ckparam(char *param, char *value); 26678 extern int ckvolseq(char *dir, int part, int nparts); 26679 extern int cverify(int fix, char *ftype, char *path, struct cinfo *cinfo, 26680 int allow_checksum); 26681 extern unsigned long compute_checksum(int *r_cksumerr, char *a_path); 26682 extern int fverify(int fix, char *ftype, char *path, struct ainfo *ainfo, 26683 struct cinfo *cinfo); 26684 extern char *getErrbufAddr(void); 26685 extern int getErrbufSize(void); 26686 extern char *getErrstr(void); 26687 extern void setErrstr(char *errstr); 26688 extern int devtype(char *alias, struct pkgdev *devp); 26689 extern int ds_totread; /* total number of parts read */ 26690 extern int ds_close(int pkgendflg); 26691 extern int ds_findpkg(char *device, char *pkg); 26692 extern int ds_getinfo(char *string); 26693 extern int ds_getpkg(char *device, int n, char *dstdir); 26694 extern int ds_ginit(char *device); 26695 extern boolean_t ds_fd_open(void); 26696 extern int ds_init(char *device, char **pkg, char *norewind); 26697 extern int BIO_ds_dump_header(PKG_ERR *, BIO *); 26698 extern int BIO_ds_dump(PKG_ERR *, char *, BIO *); 26699 extern int BIO_dump_cmd(char *cmd, BIO *bio); 26700 extern int ds_next(char *, char *); 26701 extern int ds_readbuf(char *device); 26702 extern int epclose(FILE *pp); 26703 extern int esystem(char *cmd, int ifd, int ofd); 26704 extern int e_ExecCmdArray(int *r_status, char **r_results, 26705 char *a_inputFile, char *a_cmd, char **a_args); 26706 extern int e_ExecCmdList(int *r_status, char **r_results, 26707 char *a_inputFile, char *a_cmd, ...); 26708 extern int gpkgmap(struct cfent *ept, FILE *fp); 26709 extern int gpkgmapvfp(struct cfent *ept, VFP_T *fpv); 26710 extern void setmapmode(int mode_no); 26711 extern int isFdRemote(int a_fd); 26712 extern int isFstypeRemote(char *a_fstype); 26713 extern int isPathRemote(char *a_path); 26714 extern int iscpio(char *path, int *iscomp); 26715 extern int isdir(char *path); 26716 extern int isfile(char *dir, char *file); 26717 extern int fmkdir(char *a_path, int a_mode); 26718 extern int pkgexecl(char *filein, char *fileout, char *uname, char *gname, 26719 ...); 26720 extern int pkgexecv(char *filein, char *fileout, char *uname, char *gname, 26721 char *arg[]); 26722 extern int pkghead(char *device); 26723 extern int pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts, 26724 int getvolflg); 26725 extern int pkgtrans(char *device1, char *device2, char **pkg, 26726 int options, keystore_handle_t, char *); 26727 extern int pkgumount(struct pkgdev *devp); 26728 extern int ppkgmap(struct cfent *ept, FILE *fp); 26729 extern int putcfile(struct cfent *ept, FILE *fp); 26730 extern int putcvfpfile(struct cfent *ept, VFP_T *vfp); 26731 extern int rrmdir(char *path); 26732 extern void set_memalloc_failure_func(void (*)(int)); 26733 extern void *xmalloc(size_t size); 26734 extern void *xrealloc(void *ptr, size_t size); 26735 extern char *xstrdup(char *str); 26736 extern void set_passphrase_prompt(char *); 26737 extern void set_passphrase_passarg(char *); 26738 extern int pkg_passphrase_cb(char *, int, int, void *); 26739 26740 extern int srchcfile(struct cfent *ept, char *path, PKGserver server); 26741 extern struct group *cgrgid(gid_t gid); 26742 extern struct group *cgrnam(char *nam); 26743 extern struct passwd *cpwnam(char *nam); 26744 extern struct passwd *cpwuid(uid_t uid); 26745 extern struct group *clgrgid(gid_t gid); 26746 extern struct group *clgrnam(char *nam); 26747 extern struct passwd *clpwnam(char *nam); 26748 extern struct passwd *clpwuid(uid_t uid); 26749 extern void basepath(char *path, char *basedir, char *ir); 26750 extern void canonize(char *file); 26751 extern void canonize_slashes(char *file); 26752 extern void checksum_off(void); 26753 extern void checksum_on(void); 26754 extern void cvtpath(char *path, char *copy); 26755 extern void ds_order(char *list[]); 26756 extern void ds_putinfo(char *buf, size_t); 26757 extern void ds_skiptoend(char *device); 26758 extern void ecleanup(void); 26759 /*PRINTFLIKE1*/ 26760 extern void logerr(char *fmt, ...); 26761 extern int mappath(int flag, char *path); 26762 extern int mapvar(int flag, char *varname); 26763 /*PRINTFLIKE1*/ 26764 extern void progerr(char *fmt, ...); 26765 extern void pkgerr(PKG_ERR *); 26766 extern void rpterr(void); 26767 extern void tputcfent(struct cfent *ept, FILE *fp); 26768 extern void set_nonABI_symlinks(void); 26769 extern int nonABI_symlinks(void); 26770 extern void disable_attribute_check(void); 26771 extern int get_disable_attribute_check(void); 26772 26773 /* security.c */ 26774 extern void sec_init(void); 26775 extern char *get_subject_display_name(X509 *); 26776 extern char *get_issuer_display_name(X509 *); 26777 extern char *get_serial_num(X509 *); 26778 extern char *get_fingerprint(X509 *, const EVP_MD *); 26779 extern int get_cert_chain(PKG_ERR *, X509 *, struct stack_st_X509 *, 26780 struct stack_st_X509 *, struct stack_st_X509 **); 26781 26782 /* pkgstr.c */ 26783 void pkgstrConvertUllToTimeString_r(unsigned long long a_time, 26784 char *a_buf, int a_bufLen); 26785 char *pkgstrConvertPathToBasename(char *a_path); 26786 char *pkgstrConvertPathToDirname(char *a_path); 26787 char *pkgstrDup(char *a_str); 26788 char *pkgstrLocatePathBasename(char *a_path); 26789 void pkgstrScaleNumericString(char *a_buf, unsigned long long scale); 26790 void pkgstrAddToken(char **a_old, char *a_new, char a_separator); 26791 boolean_t pkgstrContainsToken(char *a_string, char *a_token, 26792 char *a_separators); 26793 void pkgstrExpandTokens(char **a_old, char *a_string, 26794 char a_separator, char *a_separators); 26795 char *pkgstrGetToken(char *r_sep, char *a_string, int a_index, 26796 char *a_separators); 26797 void pkgstrGetToken_r(char *r_sep, char *a_string, int a_index, 26798 char *a_separators, char *a_buf, int a_bufLen); 26799 unsigned long pkgstrNumTokens(char *a_string, char *a_separators); 26800 char *pkgstrPrintf(char *a_format, ...); 26801 void pkgstrPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...); 26802 void pkgstrRemoveToken(char **r_string, char *a_token, 26803 char *a_separators, int a_index); 26804 void pkgstrRemoveLeadingWhitespace(char **a_str); 26805 /* vfpops.c */ 26806 extern int vfpCheckpointFile(VFP_T **r_destVfp, VFP_T **a_vfp, 26807 char *a_path); 26808 extern int vfpCheckpointOpen(VFP_T **a_cvfp, VFP_T **r_vfp, char *a_path, 26809 char *a_mode, VFPFLAGS_T a_flags); 26810 extern int vfpClearModified(VFP_T *a_vfp); 26811 extern int vfpClose(VFP_T **r_vfp); 26812 extern int vfpGetModified(VFP_T *a_vfp); 26813 extern int vfpOpen(VFP_T **r_vfp, char *a_path, char *a_mode, 26814 VFPFLAGS_T a_flags); 26815 extern void vfpRewind(VFP_T *a_vfp); 26816 extern ssize_t vfpSafePwrite(int a_fildes, void *a_buf, 26817 size_t a_nbyte, off_t a_offset); 26818 extern ssize_t vfpSafeWrite(int a_fildes, void *a_buf, size_t a_nbyte); 26819 extern int vfpSetFlags(VFP_T *a_vfp, VFPFLAGS_T a_flags); 26820 extern int vfpSetModified(VFP_T *a_vfp); 26821 extern int vfpSetSize(VFP_T *a_vfp, size_t a_size); 26822 extern void vfpTruncate(VFP_T *a_vfp); 26823 extern int vfpWriteToFile(VFP_T *a_vfp, char *a_path); 26824 26825 /* handlelocalfs.c */ 26826 boolean_t enable_local_fs(void); 26827 boolean_t restore_local_fs(void); 26828 26829 /* pkgserv.c */ 26830 extern PKGserver pkgopenserver(const char *, const char *, boolean_t); 26831 extern void pkgcloseserver(PKGserver); 26832 extern int pkgcmd(PKGserver, void *, size_t, char **, size_t *, 26833 int *); 26834 extern boolean_t pkgsync_needed(const char *, const char *, boolean_t); 26835 extern int pkgsync(const char *, const char *, boolean_t); 26836 extern int pkgservercommitfile(VFP_T *, PKGserver); 26837 extern int pkgopenfilter(PKGserver server, const char *pkginst); 26838 extern void pkgclosefilter(PKGserver); 26839 extern char *pkggetentry(PKGserver, int *, int *); 26840 extern char *pkggetentry_named(PKGserver, const char *, int *, 26841 int *); 26842 extern void pkgserversetmode(start_mode_t); 26843 extern start_mode_t pkgservergetmode(void); 26844 extern start_mode_t pkgparsemode(const char *); 26845 extern char *pkgmodeargument(start_mode_t); 26846 # 39 "cmdexec.c" 2 26847 26848 26849 26850 26851 26852 26853 static void usage(void); 26854 static int docmd(char *cmd, char *file, char *input); 26855 26856 int 26857 main(int argc, char *argv[]) 26858 { 26859 FILE *fpout, *fp; 26860 char line[256], 26861 *pt, 26862 *keyword, /* keyword = install || remove */ 26863 *input, /* sed input file */ 26864 *cmd, 26865 *srcfile, /* sed data file */ 26866 *destfile; /* target file to be updated */ 26867 int flag; 26868 char *prog; 26869 26870 (void) setlocale(6, ""); 26871 26872 26873 26874 26875 (void) textdomain(TEXT_DOMAIN); 26876 26877 prog = set_prog_name(argv[0]); 26878 26879 if (getuid()) { 26880 progerr(gettext("You must be \"root\" for %s to execute properly."), prog); 26881 exit(1); 26882 } 26883 26884 if (argc != 5) 26885 usage(); 26886 26887 cmd = argv[1]; 26888 keyword = argv[2]; 26889 srcfile = argv[3]; 26890 destfile = argv[4]; 26891 26892 srcfile = argv[3]; 26893 if ((fp = fopen(srcfile, "r")) == 0) { 26894 progerr(gettext("unable to open %s"), srcfile); 26895 exit(1); 26896 } 26897 26898 input = tempnam(0, "sedinp"); 26899 if ((fpout = fopen(input, "w")) == 0) { 26900 progerr(gettext("unable to open %s"), input); 26901 exit(2); 26902 } 26903 26904 flag = (-1); 26905 while (fgets(line, 256, fp)) { 26906 for (pt = line; isspace(*pt); /* void */) 26907 ++pt; 26908 if (*pt == '#') 26909 continue; 26910 if (*pt == '!') { 26911 if (flag > 0) 26912 break; /* no more lines to read */ 26913 pt = strtok(pt+1, " \t\n"); 26914 if (!pt) { 26915 progerr(gettext("null token after '!'")); 26916 exit(1); 26917 } 26918 flag = (strcmp(pt, keyword) ? 0 : 1); 26919 } else if (flag == 1) { /* bug # 1083359 */ 26920 (void) fputs(line, fpout); 26921 } 26922 } 26923 (void) fclose(fpout); 26924 if (flag > 0) { 26925 if (docmd(cmd, destfile, input)) { 26926 progerr(gettext("command failed <%s>"), cmd); 26927 exit(1); 26928 } 26929 } 26930 (void) unlink(input); 26931 return (0); 26932 } 26933 26934 static int 26935 docmd(char *cmd, char *file, char *input) 26936 { 26937 char *tempout; 26938 char command[256]; 26939 26940 tempout = tempnam(0, "temp1"); 26941 if (!tempout) 26942 return (-1); 26943 26944 (void) sprintf(command, "%s -f %s <%s >%s", cmd, input, file, tempout); 26945 if (system(command)) 26946 return (-1); 26947 26948 (void) sprintf(command, "cp %s %s", tempout, file); 26949 if (system(command)) 26950 return (-1); 26951 26952 (void) unlink(tempout); 26953 free(tempout); 26954 return (0); 26955 } 26956 26957 static void 26958 usage(void) 26959 { 26960 (void) fprintf((&__iob[2]), gettext("usage: %s cmd keyword src dest\n"), 26961 get_prog_name()); 26962 exit(2); 26963 } 26964