1 # 1 "setup_temporary_directory.c" 2 # 1 "<built-in>" 3 # 1 "<command-line>" 4 # 1 "setup_temporary_directory.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 2004 Sun Microsystems, Inc. All rights reserved. 28 * Use is subject to license terms. 29 */ 30 31 32 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 33 /* 34 * CDDL HEADER START 35 * 36 * The contents of this file are subject to the terms of the 37 * Common Development and Distribution License (the "License"). 38 * You may not use this file except in compliance with the License. 39 * 40 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 41 * or http://www.opensolaris.org/os/licensing. 42 * See the License for the specific language governing permissions 43 * and limitations under the License. 44 * 45 * When distributing Covered Code, include this CDDL HEADER in each 46 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 47 * If applicable, add the following below this CDDL HEADER, with the 48 * fields enclosed by brackets "[]" replaced with your own identifying 49 * information: Portions Copyright [yyyy] [name of copyright owner] 50 * 51 * CDDL HEADER END 52 */ 53 54 /* 55 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 56 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 57 */ 58 59 /* Copyright (c) 1988 AT&T */ 60 /* All Rights Reserved */ 61 62 /* 63 * User-visible pieces of the ANSI C standard I/O package. 64 */ 65 66 67 68 69 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 70 /* 71 * CDDL HEADER START 72 * 73 * The contents of this file are subject to the terms of the 74 * Common Development and Distribution License (the "License"). 75 * You may not use this file except in compliance with the License. 76 * 77 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 78 * or http://www.opensolaris.org/os/licensing. 79 * See the License for the specific language governing permissions 80 * and limitations under the License. 81 * 82 * When distributing Covered Code, include this CDDL HEADER in each 83 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 84 * If applicable, add the following below this CDDL HEADER, with the 85 * fields enclosed by brackets "[]" replaced with your own identifying 86 * information: Portions Copyright [yyyy] [name of copyright owner] 87 * 88 * CDDL HEADER END 89 */ 90 91 /* 92 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 93 * Copyright 2016 Joyent, Inc. 94 * 95 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 96 * Use is subject to license terms. 97 */ 98 99 100 101 102 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 1 103 /* 104 * CDDL HEADER START 105 * 106 * The contents of this file are subject to the terms of the 107 * Common Development and Distribution License, Version 1.0 only 108 * (the "License"). You may not use this file except in compliance 109 * with the License. 110 * 111 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 112 * or http://www.opensolaris.org/os/licensing. 113 * See the License for the specific language governing permissions 114 * and limitations under the License. 115 * 116 * When distributing Covered Code, include this CDDL HEADER in each 117 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 118 * If applicable, add the following below this CDDL HEADER, with the 119 * fields enclosed by brackets "[]" replaced with your own identifying 120 * information: Portions Copyright [yyyy] [name of copyright owner] 121 * 122 * CDDL HEADER END 123 */ 124 /* 125 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 126 * Use is subject to license terms. 127 */ 128 /* 129 * Copyright 2015 EveryCity Ltd. All rights reserved. 130 */ 131 132 133 134 135 /* 136 * This file contains definitions designed to enable different compilers 137 * to be used harmoniously on Solaris systems. 138 */ 139 140 141 142 143 144 /* 145 * Allow for version tests for compiler bugs and features. 146 */ 147 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 148 /* 149 * analogous to lint's PRINTFLIKEn 150 */ 151 152 153 154 155 156 /* 157 * Handle the kernel printf routines that can take '%b' too 158 */ 159 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 160 /* 161 * This one's pretty obvious -- the function never returns 162 */ 163 164 165 /* 166 * The function is 'extern inline' and expects GNU C89 behaviour, not C99 167 * behaviour. 168 * 169 * Should only be used on 'extern inline' definitions for GCC. 170 */ 171 172 173 174 175 176 177 /* 178 * The function has control flow such that it may return multiple times (in 179 * the manner of setjmp or vfork) 180 */ 181 182 183 184 185 186 187 /* 188 * This is an appropriate label for functions that do not 189 * modify their arguments, e.g. strlen() 190 */ 191 192 193 /* 194 * This is a stronger form of __pure__. Can be used for functions 195 * that do not modify their arguments and don't depend on global 196 * memory. 197 */ 198 199 200 201 202 /* 203 * This attribute, attached to a variable, means that the variable is meant to 204 * be possibly unused. GCC will not produce a warning for this variable. 205 */ 206 # 138 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/ccompile.h" 207 /* 208 * Shorthand versions for readability 209 */ 210 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2 211 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 212 /* 213 * CDDL HEADER START 214 * 215 * The contents of this file are subject to the terms of the 216 * Common Development and Distribution License (the "License"). 217 * You may not use this file except in compliance with the License. 218 * 219 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 220 * or http://www.opensolaris.org/os/licensing. 221 * See the License for the specific language governing permissions 222 * and limitations under the License. 223 * 224 * 225 * When distributing Covered Code, include this CDDL HEADER in each 226 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 227 * If applicable, add the following below this CDDL HEADER, with the 228 * fields enclosed by brackets "[]" replaced with your own identifying 229 * information: Portions Copyright [yyyy] [name of copyright owner] 230 * 231 * CDDL HEADER END 232 */ 233 234 /* 235 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 236 * Use is subject to license terms. 237 * Copyright 2016 Joyent, Inc. 238 */ 239 240 241 242 243 /* 244 * This header file serves to group a set of well known defines and to 245 * set these for each instruction set architecture. These defines may 246 * be divided into two groups; characteristics of the processor and 247 * implementation choices for Solaris on a processor. 248 * 249 * Processor Characteristics: 250 * 251 * _LITTLE_ENDIAN / _BIG_ENDIAN: 252 * The natural byte order of the processor. A pointer to an int points 253 * to the least/most significant byte of that int. 254 * 255 * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD: 256 * The processor specific direction of stack growth. A push onto the 257 * stack increases/decreases the stack pointer, so it stores data at 258 * successively higher/lower addresses. (Stackless machines ignored 259 * without regrets). 260 * 261 * _LONG_LONG_HTOL / _LONG_LONG_LTOH: 262 * A pointer to a long long points to the most/least significant long 263 * within that long long. 264 * 265 * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH: 266 * The C compiler assigns bit fields from the high/low to the low/high end 267 * of an int (most to least significant vs. least to most significant). 268 * 269 * _IEEE_754: 270 * The processor (or supported implementations of the processor) 271 * supports the ieee-754 floating point standard. No other floating 272 * point standards are supported (or significant). Any other supported 273 * floating point formats are expected to be cased on the ISA processor 274 * symbol. 275 * 276 * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED: 277 * The C Compiler implements objects of type `char' as `unsigned' or 278 * `signed' respectively. This is really an implementation choice of 279 * the compiler writer, but it is specified in the ABI and tends to 280 * be uniform across compilers for an instruction set architecture. 281 * Hence, it has the properties of a processor characteristic. 282 * 283 * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT / 284 * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT / 285 * _POINTER_ALIGNMENT / _FLOAT_ALIGNMENT: 286 * The ABI defines alignment requirements of each of the primitive 287 * object types. Some, if not all, may be hardware requirements as 288 * well. The values are expressed in "byte-alignment" units. 289 * 290 * _MAX_ALIGNMENT: 291 * The most stringent alignment requirement as specified by the ABI. 292 * Equal to the maximum of all the above _XXX_ALIGNMENT values. 293 * 294 * _MAX_ALIGNMENT_TYPE: 295 * The name of the C type that has the value descried in _MAX_ALIGNMENT. 296 * 297 * _ALIGNMENT_REQUIRED: 298 * True or false (1 or 0) whether or not the hardware requires the ABI 299 * alignment. 300 * 301 * _LONG_LONG_ALIGNMENT_32 302 * The 32-bit ABI supported by a 64-bit kernel may have different 303 * alignment requirements for primitive object types. The value of this 304 * identifier is expressed in "byte-alignment" units. 305 * 306 * _HAVE_CPUID_INSN 307 * This indicates that the architecture supports the 'cpuid' 308 * instruction as defined by Intel. (Intel allows other vendors 309 * to extend the instruction for their own purposes.) 310 * 311 * 312 * Implementation Choices: 313 * 314 * _ILP32 / _LP64: 315 * This specifies the compiler data type implementation as specified in 316 * the relevant ABI. The choice between these is strongly influenced 317 * by the underlying hardware, but is not absolutely tied to it. 318 * Currently only two data type models are supported: 319 * 320 * _ILP32: 321 * Int/Long/Pointer are 32 bits. This is the historical UNIX 322 * and Solaris implementation. Due to its historical standing, 323 * this is the default case. 324 * 325 * _LP64: 326 * Long/Pointer are 64 bits, Int is 32 bits. This is the chosen 327 * implementation for 64-bit ABIs such as SPARC V9. 328 * 329 * _I32LPx: 330 * A compilation environment where 'int' is 32-bit, and 331 * longs and pointers are simply the same size. 332 * 333 * In all cases, Char is 8 bits and Short is 16 bits. 334 * 335 * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16: 336 * This specifies the form of the disk VTOC (or label): 337 * 338 * _SUNOS_VTOC_8: 339 * This is a VTOC form which is upwardly compatible with the 340 * SunOS 4.x disk label and allows 8 partitions per disk. 341 * 342 * _SUNOS_VTOC_16: 343 * In this format the incore vtoc image matches the ondisk 344 * version. It allows 16 slices per disk, and is not 345 * compatible with the SunOS 4.x disk label. 346 * 347 * Note that these are not the only two VTOC forms possible and 348 * additional forms may be added. One possible form would be the 349 * SVr4 VTOC form. The symbol for that is reserved now, although 350 * it is not implemented. 351 * 352 * _SVR4_VTOC_16: 353 * This VTOC form is compatible with the System V Release 4 354 * VTOC (as implemented on the SVr4 Intel and 3b ports) with 355 * 16 partitions per disk. 356 * 357 * 358 * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR 359 * This describes the type of addresses used by system DMA: 360 * 361 * _DMA_USES_PHYSADDR: 362 * This type of DMA, used in the x86 implementation, 363 * requires physical addresses for DMA buffers. The 24-bit 364 * addresses used by some legacy boards is the source of the 365 * "low-memory" (<16MB) requirement for some devices using DMA. 366 * 367 * _DMA_USES_VIRTADDR: 368 * This method of DMA allows the use of virtual addresses for 369 * DMA transfers. 370 * 371 * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT 372 * This indicates the presence/absence of an fdisk table. 373 * 374 * _FIRMWARE_NEEDS_FDISK 375 * The fdisk table is required by system firmware. If present, 376 * it allows a disk to be subdivided into multiple fdisk 377 * partitions, each of which is equivalent to a separate, 378 * virtual disk. This enables the co-existence of multiple 379 * operating systems on a shared hard disk. 380 * 381 * _NO_FDISK_PRESENT 382 * If the fdisk table is absent, it is assumed that the entire 383 * media is allocated for a single operating system. 384 * 385 * _HAVE_TEM_FIRMWARE 386 * Defined if this architecture has the (fallback) option of 387 * using prom_* calls for doing I/O if a suitable kernel driver 388 * is not available to do it. 389 * 390 * _DONT_USE_1275_GENERIC_NAMES 391 * Controls whether or not device tree node names should 392 * comply with the IEEE 1275 "Generic Names" Recommended 393 * Practice. With _DONT_USE_GENERIC_NAMES, device-specific 394 * names identifying the particular device will be used. 395 * 396 * __i386_COMPAT 397 * This indicates whether the i386 ABI is supported as a *non-native* 398 * mode for the platform. When this symbol is defined: 399 * - 32-bit xstat-style system calls are enabled 400 * - 32-bit xmknod-style system calls are enabled 401 * - 32-bit system calls use i386 sizes -and- alignments 402 * 403 * Note that this is NOT defined for the i386 native environment! 404 * 405 * __x86 406 * This is ONLY a synonym for defined(__i386) || defined(__amd64) 407 * which is useful only insofar as these two architectures share 408 * common attributes. Analogous to __sparc. 409 * 410 * _PSM_MODULES 411 * This indicates whether or not the implementation uses PSM 412 * modules for processor support, reading /etc/mach from inside 413 * the kernel to extract a list. 414 * 415 * _RTC_CONFIG 416 * This indicates whether or not the implementation uses /etc/rtc_config 417 * to configure the real-time clock in the kernel. 418 * 419 * _UNIX_KRTLD 420 * This indicates that the implementation uses a dynamically 421 * linked unix + krtld to form the core kernel image at boot 422 * time, or (in the absence of this symbol) a prelinked kernel image. 423 * 424 * _OBP 425 * This indicates the firmware interface is OBP. 426 * 427 * _SOFT_HOSTID 428 * This indicates that the implementation obtains the hostid 429 * from the file /etc/hostid, rather than from hardware. 430 */ 431 432 433 434 435 436 /* 437 * The following set of definitions characterize Solaris on AMD's 438 * 64-bit systems. 439 */ 440 # 305 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 441 /* 442 * Define the appropriate "processor characteristics" 443 */ 444 # 333 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 445 /* 446 * Define the appropriate "implementation choices". 447 */ 448 # 351 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 449 /* 450 * The following set of definitions characterize the Solaris on SPARC systems. 451 * 452 * The symbol __sparc indicates any of the SPARC family of processor 453 * architectures. This includes SPARC V7, SPARC V8 and SPARC V9. 454 * 455 * The symbol __sparcv8 indicates the 32-bit SPARC V8 architecture as defined 456 * by Version 8 of the SPARC Architecture Manual. (SPARC V7 is close enough 457 * to SPARC V8 for the former to be subsumed into the latter definition.) 458 * 459 * The symbol __sparcv9 indicates the 64-bit SPARC V9 architecture as defined 460 * by Version 9 of the SPARC Architecture Manual. 461 * 462 * The symbols __sparcv8 and __sparcv9 are mutually exclusive, and are only 463 * relevant when the symbol __sparc is defined. 464 */ 465 /* 466 * XXX Due to the existence of 5110166, "defined(__sparcv9)" needs to be added 467 * to support backwards builds. This workaround should be removed in s10_71. 468 */ 469 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 2 470 471 472 473 474 475 /* 476 * Values of _POSIX_C_SOURCE 477 * 478 * undefined not a POSIX compilation 479 * 1 POSIX.1-1990 compilation 480 * 2 POSIX.2-1992 compilation 481 * 199309L POSIX.1b-1993 compilation (Real Time) 482 * 199506L POSIX.1c-1995 compilation (POSIX Threads) 483 * 200112L POSIX.1-2001 compilation (Austin Group Revision) 484 * 200809L POSIX.1-2008 compilation 485 */ 486 487 488 489 490 /* 491 * The feature test macros __XOPEN_OR_POSIX, _STRICT_STDC, _STRICT_SYMBOLS, 492 * and _STDC_C99 are Sun implementation specific macros created in order to 493 * compress common standards specified feature test macros for easier reading. 494 * These macros should not be used by the application developer as 495 * unexpected results may occur. Instead, the user should reference 496 * standards(5) for correct usage of the standards feature test macros. 497 * 498 * __XOPEN_OR_POSIX Used in cases where a symbol is defined by both 499 * X/Open or POSIX or in the negative, when neither 500 * X/Open or POSIX defines a symbol. 501 * 502 * _STRICT_STDC __STDC__ is specified by the C Standards and defined 503 * by the compiler. For Sun compilers the value of 504 * __STDC__ is either 1, 0, or not defined based on the 505 * compilation mode (see cc(1)). When the value of 506 * __STDC__ is 1 and in the absence of any other feature 507 * test macros, the namespace available to the application 508 * is limited to only those symbols defined by the C 509 * Standard. _STRICT_STDC provides a more readable means 510 * of identifying symbols defined by the standard, or in 511 * the negative, symbols that are extensions to the C 512 * Standard. See additional comments for GNU C differences. 513 * 514 * _STDC_C99 __STDC_VERSION__ is specified by the C standards and 515 * defined by the compiler and indicates the version of 516 * the C standard. A value of 199901L indicates a 517 * compiler that complies with ISO/IEC 9899:1999, other- 518 * wise known as the C99 standard. 519 * 520 * _STDC_C11 Like _STDC_C99 except that the value of __STDC_VERSION__ 521 * is 201112L indicating a compiler that compiles with 522 * ISO/IEXC 9899:2011, otherwise known as the C11 standard. 523 * 524 * _STRICT_SYMBOLS Used in cases where symbol visibility is restricted 525 * by the standards, and the user has not explicitly 526 * relaxed the strictness via __EXTENSIONS__. 527 */ 528 529 530 531 532 533 /* 534 * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC 535 * 99899:2011 specify the following predefined macro name: 536 * 537 * __STDC__ The integer constant 1, intended to indicate a conforming 538 * implementation. 539 * 540 * Furthermore, a strictly conforming program shall use only those features 541 * of the language and library specified in these standards. A conforming 542 * implementation shall accept any strictly conforming program. 543 * 544 * Based on these requirements, Sun's C compiler defines __STDC__ to 1 for 545 * strictly conforming environments and __STDC__ to 0 for environments that 546 * use ANSI C semantics but allow extensions to the C standard. For non-ANSI 547 * C semantics, Sun's C compiler does not define __STDC__. 548 * 549 * The GNU C project interpretation is that __STDC__ should always be defined 550 * to 1 for compilation modes that accept ANSI C syntax regardless of whether 551 * or not extensions to the C standard are used. Violations of conforming 552 * behavior are conditionally flagged as warnings via the use of the 553 * -pedantic option. In addition to defining __STDC__ to 1, the GNU C 554 * compiler also defines __STRICT_ANSI__ as a means of specifying strictly 555 * conforming environments using the -ansi or -std=<standard> options. 556 * 557 * In the absence of any other compiler options, Sun and GNU set the value 558 * of __STDC__ as follows when using the following options: 559 * 560 * Value of __STDC__ __STRICT_ANSI__ 561 * 562 * cc -Xa (default) 0 undefined 563 * cc -Xt (transitional) 0 undefined 564 * cc -Xc (strictly conforming) 1 undefined 565 * cc -Xs (K&R C) undefined undefined 566 * 567 * gcc (default) 1 undefined 568 * gcc -ansi, -std={c89, c99,...) 1 defined 569 * gcc -traditional (K&R) undefined undefined 570 * 571 * The default compilation modes for Sun C compilers versus GNU C compilers 572 * results in a differing value for __STDC__ which results in a more 573 * restricted namespace when using Sun compilers. To allow both GNU and Sun 574 * interpretations to peacefully co-exist, we use the following Sun 575 * implementation _STRICT_STDC_ macro: 576 */ 577 # 150 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 578 /* 579 * Compiler complies with ISO/IEC 9899:1999 or ISO/IEC 9989:2011 580 */ 581 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 582 /* 583 * Use strict symbol visibility. 584 */ 585 586 587 588 589 590 /* 591 * Large file interfaces: 592 * 593 * _LARGEFILE_SOURCE 594 * 1 large file-related additions to POSIX 595 * interfaces requested (fseeko, etc.) 596 * _LARGEFILE64_SOURCE 597 * 1 transitional large-file-related interfaces 598 * requested (seek64, stat64, etc.) 599 * 600 * The corresponding announcement macros are respectively: 601 * _LFS_LARGEFILE 602 * _LFS64_LARGEFILE 603 * (These are set in <unistd.h>.) 604 * 605 * Requesting _LARGEFILE64_SOURCE implies requesting _LARGEFILE_SOURCE as 606 * well. 607 * 608 * The large file interfaces are made visible regardless of the initial values 609 * of the feature test macros under certain circumstances: 610 * - If no explicit standards-conforming environment is requested (neither 611 * of _POSIX_SOURCE nor _XOPEN_SOURCE is defined and the value of 612 * __STDC__ does not imply standards conformance). 613 * - Extended system interfaces are explicitly requested (__EXTENSIONS__ 614 * is defined). 615 * - Access to in-kernel interfaces is requested (_KERNEL or _KMEMUSER is 616 * defined). (Note that this dependency is an artifact of the current 617 * kernel implementation and may change in future releases.) 618 */ 619 # 210 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 620 /* 621 * Large file compilation environment control: 622 * 623 * The setting of _FILE_OFFSET_BITS controls the size of various file-related 624 * types and governs the mapping between file-related source function symbol 625 * names and the corresponding binary entry points. 626 * 627 * In the 32-bit environment, the default value is 32; if not set, set it to 628 * the default here, to simplify tests in other headers. 629 * 630 * In the 64-bit compilation environment, the only value allowed is 64. 631 */ 632 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 633 /* 634 * Use of _XOPEN_SOURCE 635 * 636 * The following X/Open specifications are supported: 637 * 638 * X/Open Portability Guide, Issue 3 (XPG3) 639 * X/Open CAE Specification, Issue 4 (XPG4) 640 * X/Open CAE Specification, Issue 4, Version 2 (XPG4v2) 641 * X/Open CAE Specification, Issue 5 (XPG5) 642 * Open Group Technical Standard, Issue 6 (XPG6), also referred to as 643 * IEEE Std. 1003.1-2001 and ISO/IEC 9945:2002. 644 * Open Group Technical Standard, Issue 7 (XPG7), also referred to as 645 * IEEE Std. 1003.1-2008 and ISO/IEC 9945:2009. 646 * 647 * XPG4v2 is also referred to as UNIX 95 (SUS or SUSv1). 648 * XPG5 is also referred to as UNIX 98 or the Single Unix Specification, 649 * Version 2 (SUSv2) 650 * XPG6 is the result of a merge of the X/Open and POSIX specifications 651 * and as such is also referred to as IEEE Std. 1003.1-2001 in 652 * addition to UNIX 03 and SUSv3. 653 * XPG7 is also referred to as UNIX 08 and SUSv4. 654 * 655 * When writing a conforming X/Open application, as per the specification 656 * requirements, the appropriate feature test macros must be defined at 657 * compile time. These are as follows. For more info, see standards(5). 658 * 659 * Feature Test Macro Specification 660 * ------------------------------------------------ ------------- 661 * _XOPEN_SOURCE XPG3 662 * _XOPEN_SOURCE && _XOPEN_VERSION = 4 XPG4 663 * _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED = 1 XPG4v2 664 * _XOPEN_SOURCE = 500 XPG5 665 * _XOPEN_SOURCE = 600 (or POSIX_C_SOURCE=200112L) XPG6 666 * _XOPEN_SOURCE = 700 (or POSIX_C_SOURCE=200809L) XPG7 667 * 668 * In order to simplify the guards within the headers, the following 669 * implementation private test macros have been created. Applications 670 * must NOT use these private test macros as unexpected results will 671 * occur. 672 * 673 * Note that in general, the use of these private macros is cumulative. 674 * For example, the use of _XPG3 with no other restrictions on the X/Open 675 * namespace will make the symbols visible for XPG3 through XPG6 676 * compilation environments. The use of _XPG4_2 with no other X/Open 677 * namespace restrictions indicates that the symbols were introduced in 678 * XPG4v2 and are therefore visible for XPG4v2 through XPG6 compilation 679 * environments, but not for XPG3 or XPG4 compilation environments. 680 * 681 * _XPG3 X/Open Portability Guide, Issue 3 (XPG3) 682 * _XPG4 X/Open CAE Specification, Issue 4 (XPG4) 683 * _XPG4_2 X/Open CAE Specification, Issue 4, Version 2 (XPG4v2/UNIX 95/SUS) 684 * _XPG5 X/Open CAE Specification, Issue 5 (XPG5/UNIX 98/SUSv2) 685 * _XPG6 Open Group Technical Standard, Issue 6 (XPG6/UNIX 03/SUSv3) 686 * _XPG7 Open Group Technical Standard, Issue 7 (XPG7/UNIX 08/SUSv4) 687 */ 688 689 /* X/Open Portability Guide, Issue 3 */ 690 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 691 /* 692 * _XOPEN_VERSION is defined by the X/Open specifications and is not 693 * normally defined by the application, except in the case of an XPG4 694 * application. On the implementation side, _XOPEN_VERSION defined with 695 * the value of 3 indicates an XPG3 application. _XOPEN_VERSION defined 696 * with the value of 4 indicates an XPG4 or XPG4v2 (UNIX 95) application. 697 * _XOPEN_VERSION defined with a value of 500 indicates an XPG5 (UNIX 98) 698 * application and with a value of 600 indicates an XPG6 (UNIX 03) 699 * application and with a value of 700 indicates an XPG7 (UNIX 08). 700 * The appropriate version is determined by the use of the 701 * feature test macros described earlier. The value of _XOPEN_VERSION 702 * defaults to 3 otherwise indicating support for XPG3 applications. 703 */ 704 # 368 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 705 /* 706 * ANSI C and ISO 9899:1990 say the type long long doesn't exist in strictly 707 * conforming environments. ISO 9899:1999 says it does. 708 * 709 * The presence of _LONGLONG_TYPE says "long long exists" which is therefore 710 * defined in all but strictly conforming environments that disallow it. 711 */ 712 # 388 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 713 /* 714 * The following macro defines a value for the ISO C99 restrict 715 * keyword so that _RESTRICT_KYWD resolves to "restrict" if 716 * an ISO C99 compiler is used, "__restrict" for c++ and "" (null string) 717 * if any other compiler is used. This allows for the use of single 718 * prototype declarations regardless of compiler version. 719 */ 720 # 410 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 721 /* 722 * The following macro defines a value for the ISO C11 _Noreturn 723 * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if 724 * an ISO C11 compiler is used and "" (null string) if any other 725 * compiler is used. This allows for the use of single prototype 726 * declarations regardless of compiler version. 727 */ 728 729 730 731 732 733 734 735 /* 736 * The following macro indicates header support for the ANSI C++ 737 * standard. The ISO/IEC designation for this is ISO/IEC FDIS 14882. 738 */ 739 740 741 /* 742 * The following macro indicates header support for the C99 standard, 743 * ISO/IEC 9899:1999, Programming Languages - C. 744 */ 745 746 747 /* 748 * The following macro indicates header support for the C99 standard, 749 * ISO/IEC 9899:2011, Programming Languages - C. 750 */ 751 752 753 /* 754 * The following macro indicates header support for DTrace. The value is an 755 * integer that corresponds to the major version number for DTrace. 756 */ 757 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 758 759 760 761 762 763 /* 764 * Do all of our 'redefine_extname' processing before 765 * declarations of the associated functions are seen. 766 * This is necessary to keep gcc happy. 767 */ 768 769 770 /* large file compilation environment setup */ 771 772 773 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 774 #pragma redefine_extname fopen fopen64 775 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 776 777 778 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 779 #pragma redefine_extname freopen freopen64 780 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 781 782 783 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 784 #pragma redefine_extname tmpfile tmpfile64 785 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 786 787 788 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 789 #pragma redefine_extname fgetpos fgetpos64 790 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 791 792 793 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 794 #pragma redefine_extname fsetpos fsetpos64 795 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 796 797 798 799 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 800 #pragma redefine_extname fseeko fseeko64 801 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 802 803 804 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 805 #pragma redefine_extname ftello ftello64 806 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 807 808 809 810 811 /* In the LP64 compilation environment, all APIs are already large file */ 812 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 813 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1 814 /* 815 * CDDL HEADER START 816 * 817 * The contents of this file are subject to the terms of the 818 * Common Development and Distribution License, Version 1.0 only 819 * (the "License"). You may not use this file except in compliance 820 * with the License. 821 * 822 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 823 * or http://www.opensolaris.org/os/licensing. 824 * See the License for the specific language governing permissions 825 * and limitations under the License. 826 * 827 * When distributing Covered Code, include this CDDL HEADER in each 828 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 829 * If applicable, add the following below this CDDL HEADER, with the 830 * fields enclosed by brackets "[]" replaced with your own identifying 831 * information: Portions Copyright [yyyy] [name of copyright owner] 832 * 833 * CDDL HEADER END 834 */ 835 /* 836 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 837 * Copyright 2014 PALO, Richard. 838 * 839 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 840 * Use is subject to license terms. 841 */ 842 843 /* Copyright (c) 1988 AT&T */ 844 /* All Rights Reserved */ 845 846 /* 847 * An application should not include this header directly. Instead it 848 * should be included only through the inclusion of other Sun headers. 849 * 850 * The contents of this header is limited to identifiers specified in the 851 * C Standard. Any new identifiers specified in future amendments to the 852 * C Standard must be placed in this header. If these new identifiers 853 * are required to also be in the C++ Standard "std" namespace, then for 854 * anything other than macro definitions, corresponding "using" directives 855 * must also be added to <stdio.h>. 856 */ 857 858 /* 859 * User-visible pieces of the ANSI C standard I/O package. 860 */ 861 862 863 864 865 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 866 /* 867 * CDDL HEADER START 868 * 869 * The contents of this file are subject to the terms of the 870 * Common Development and Distribution License (the "License"). 871 * You may not use this file except in compliance with the License. 872 * 873 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 874 * or http://www.opensolaris.org/os/licensing. 875 * See the License for the specific language governing permissions 876 * and limitations under the License. 877 * 878 * When distributing Covered Code, include this CDDL HEADER in each 879 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 880 * If applicable, add the following below this CDDL HEADER, with the 881 * fields enclosed by brackets "[]" replaced with your own identifying 882 * information: Portions Copyright [yyyy] [name of copyright owner] 883 * 884 * CDDL HEADER END 885 */ 886 887 /* 888 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 889 * Copyright 2016 Joyent, Inc. 890 * 891 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 892 * Use is subject to license terms. 893 */ 894 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 895 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 896 /* 897 * This file and its contents are supplied under the terms of the 898 * Common Development and Distribution License ("CDDL"), version 1.0. 899 * You may only use this file in accordance with the terms of version 900 * 1.0 of the CDDL. 901 * 902 * A full copy of the text of the CDDL should have accompanied this 903 * source. A copy of the CDDL is also available via the Internet at 904 * http://www.illumos.org/license/CDDL. 905 */ 906 907 /* 908 * Copyright 2014-2016 PALO, Richard. 909 */ 910 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 911 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1 912 /* 913 * CDDL HEADER START 914 * 915 * The contents of this file are subject to the terms of the 916 * Common Development and Distribution License, Version 1.0 only 917 * (the "License"). You may not use this file except in compliance 918 * with the License. 919 * 920 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 921 * or http://www.opensolaris.org/os/licensing. 922 * See the License for the specific language governing permissions 923 * and limitations under the License. 924 * 925 * When distributing Covered Code, include this CDDL HEADER in each 926 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 927 * If applicable, add the following below this CDDL HEADER, with the 928 * fields enclosed by brackets "[]" replaced with your own identifying 929 * information: Portions Copyright [yyyy] [name of copyright owner] 930 * 931 * CDDL HEADER END 932 */ 933 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 934 /* All Rights Reserved */ 935 936 937 /* 938 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 939 * 940 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 941 * Use is subject to license terms. 942 */ 943 944 945 946 947 /* 948 * An application should not include this header directly. Instead it 949 * should be included only through the inclusion of other Sun headers. 950 * 951 * The purpose of this header is to provide the type definitions for 952 * the va_list argument used by a number of printf and printf like 953 * functions. The headers that define these various function prototypes 954 * #include this header directly. These include but are not necessarily 955 * limited to <stdio.h>, <stdio_iso.h>, <wchar_iso.h>, <strlog.h> and 956 * <syslog.h>. The type definitions included in this header are for 957 * the benefit of consumers of va_list. 958 * 959 * Any application that accepts variable argument lists must as documented, 960 * include either <varargs.h> or the preferred <stdarg.h>. Doing so will 961 * pull in the appropriate compiler protocols defined in <sys/va_impl.h> 962 * which is in turn is included by <varargs.h> and <stdarg.h>. See comments 963 * in <sys/va_impl.h> for more detailed information regarding implementation 964 * and compiler specific protocols. 965 */ 966 967 /* 968 * The common definitions exported by this header or compilers using 969 * this header are: 970 * 971 * the identifier __builtin_va_alist for the variable list pseudo parameter 972 * the type __va_alist_type for the variable list pseudo parameter 973 * the type __va_list defining the type of the variable list iterator 974 * 975 * The feature macros (e.g. __BUILTIN_VA_STRUCT) and compiler macros 976 * (__GNUC__) and processor macros (e.g. __amd64) are intended to be 977 * defined by the compilation system, not the user of the system. 978 */ 979 980 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 981 /* 982 * CDDL HEADER START 983 * 984 * The contents of this file are subject to the terms of the 985 * Common Development and Distribution License (the "License"). 986 * You may not use this file except in compliance with the License. 987 * 988 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 989 * or http://www.opensolaris.org/os/licensing. 990 * See the License for the specific language governing permissions 991 * and limitations under the License. 992 * 993 * 994 * When distributing Covered Code, include this CDDL HEADER in each 995 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 996 * If applicable, add the following below this CDDL HEADER, with the 997 * fields enclosed by brackets "[]" replaced with your own identifying 998 * information: Portions Copyright [yyyy] [name of copyright owner] 999 * 1000 * CDDL HEADER END 1001 */ 1002 1003 /* 1004 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1005 * Use is subject to license terms. 1006 * Copyright 2016 Joyent, Inc. 1007 */ 1008 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 2 1009 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1010 typedef __builtin_va_list __gnuc_va_list; 1011 /* 1012 * XX64 This seems unnecessary .. but is needed because vcmn_err is 1013 * defined with __va_list instead of plain old va_list. 1014 * Perhaps that should be fixed! 1015 */ 1016 typedef __builtin_va_list __va_list; 1017 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1018 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1 1019 /* 1020 * CDDL HEADER START 1021 * 1022 * The contents of this file are subject to the terms of the 1023 * Common Development and Distribution License, Version 1.0 only 1024 * (the "License"). You may not use this file except in compliance 1025 * with the License. 1026 * 1027 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1028 * or http://www.opensolaris.org/os/licensing. 1029 * See the License for the specific language governing permissions 1030 * and limitations under the License. 1031 * 1032 * When distributing Covered Code, include this CDDL HEADER in each 1033 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1034 * If applicable, add the following below this CDDL HEADER, with the 1035 * fields enclosed by brackets "[]" replaced with your own identifying 1036 * information: Portions Copyright [yyyy] [name of copyright owner] 1037 * 1038 * CDDL HEADER END 1039 */ 1040 /* 1041 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1042 * Use is subject to license terms. 1043 */ 1044 1045 1046 1047 1048 #pragma ident "%Z%%M% %I% %E% SMI" 1049 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_tag.h" 1050 typedef struct __FILE __FILE; 1051 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1052 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1 1053 /* 1054 * CDDL HEADER START 1055 * 1056 * The contents of this file are subject to the terms of the 1057 * Common Development and Distribution License (the "License"). 1058 * You may not use this file except in compliance with the License. 1059 * 1060 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1061 * or http://www.opensolaris.org/os/licensing. 1062 * See the License for the specific language governing permissions 1063 * and limitations under the License. 1064 * 1065 * When distributing Covered Code, include this CDDL HEADER in each 1066 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1067 * If applicable, add the following below this CDDL HEADER, with the 1068 * fields enclosed by brackets "[]" replaced with your own identifying 1069 * information: Portions Copyright [yyyy] [name of copyright owner] 1070 * 1071 * CDDL HEADER END 1072 */ 1073 1074 /* 1075 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1076 * Use is subject to license terms. 1077 */ 1078 1079 1080 1081 1082 #pragma ident "%Z%%M% %I% %E% SMI" 1083 1084 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 1085 /* 1086 * CDDL HEADER START 1087 * 1088 * The contents of this file are subject to the terms of the 1089 * Common Development and Distribution License (the "License"). 1090 * You may not use this file except in compliance with the License. 1091 * 1092 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1093 * or http://www.opensolaris.org/os/licensing. 1094 * See the License for the specific language governing permissions 1095 * and limitations under the License. 1096 * 1097 * 1098 * When distributing Covered Code, include this CDDL HEADER in each 1099 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1100 * If applicable, add the following below this CDDL HEADER, with the 1101 * fields enclosed by brackets "[]" replaced with your own identifying 1102 * information: Portions Copyright [yyyy] [name of copyright owner] 1103 * 1104 * CDDL HEADER END 1105 */ 1106 1107 /* 1108 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 1109 * Use is subject to license terms. 1110 * Copyright 2016 Joyent, Inc. 1111 */ 1112 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 2 1113 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio_impl.h" 1114 struct __FILE /* needs to be binary-compatible with old versions */ 1115 { 1116 1117 1118 1119 1120 int _cnt; /* number of available characters in buffer */ 1121 unsigned char *_ptr; /* next character from/to here in buffer */ 1122 1123 unsigned char *_base; /* the buffer */ 1124 unsigned char _flag; /* the state of the stream */ 1125 unsigned char _magic; /* Old home of the file descriptor */ 1126 /* Only fileno(3C) can retrieve the value now */ 1127 unsigned __orientation:2; /* the orientation of the stream */ 1128 unsigned __ionolock:1; /* turn off implicit locking */ 1129 unsigned __seekable:1; /* is file seekable? */ 1130 unsigned __extendedfd:1; /* enable extended FILE */ 1131 unsigned __xf_nocheck:1; /* no extended FILE runtime check */ 1132 unsigned __filler:10; 1133 }; 1134 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 2 1135 1136 /* 1137 * If feature test macros are set that enable interfaces that use types 1138 * defined in <sys/types.h>, get those types by doing the include. 1139 * 1140 * Note that in asking for the interfaces associated with this feature test 1141 * macro one also asks for definitions of the POSIX types. 1142 */ 1143 1144 1145 1146 1147 1148 1149 /* 1150 * The following typedefs are adopted from ones in <sys/types.h> (with leading 1151 * underscores added to avoid polluting the ANSI C name space). See the 1152 * commentary there for further explanation. 1153 */ 1154 1155 typedef long long __longlong_t; 1156 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1157 typedef __FILE FILE; 1158 1159 1160 1161 1162 1163 1164 1165 typedef unsigned int size_t; /* (historical version) */ 1166 1167 1168 1169 1170 1171 1172 typedef __longlong_t fpos_t; 1173 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1174 /* 1175 * The value of _NFILE is defined in the Processor Specific ABI. The value 1176 * is chosen for historical reasons rather than for truly processor related 1177 * attribute. Note that the SPARC Processor Specific ABI uses the common 1178 * UNIX historical value of 20 so it is allowed to fall through. 1179 */ 1180 # 156 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1181 extern __FILE __iob[60]; 1182 # 191 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_iso.h" 1183 extern int remove(const char *); 1184 extern int rename(const char *, const char *); 1185 extern FILE *tmpfile(void); 1186 extern char *tmpnam(char *); 1187 extern int fclose(FILE *); 1188 extern int fflush(FILE *); 1189 extern FILE *fopen(const char *, const char *); 1190 extern FILE *freopen(const char *, 1191 const char *, FILE *); 1192 extern void setbuf(FILE *, char *); 1193 extern int setvbuf(FILE *, char *, int, 1194 size_t); 1195 /* PRINTFLIKE2 */ 1196 extern int fprintf(FILE *, const char *, ...); 1197 /* SCANFLIKE2 */ 1198 extern int fscanf(FILE *, const char *, ...); 1199 /* PRINTFLIKE1 */ 1200 extern int printf(const char *, ...); 1201 /* SCANFLIKE1 */ 1202 extern int scanf(const char *, ...); 1203 /* PRINTFLIKE2 */ 1204 extern int sprintf(char *, const char *, ...); 1205 /* SCANFLIKE2 */ 1206 extern int sscanf(const char *, 1207 const char *, ...); 1208 extern int vfprintf(FILE *, const char *, 1209 __va_list); 1210 extern int vprintf(const char *, __va_list); 1211 extern int vsprintf(char *, const char *, 1212 __va_list); 1213 extern int fgetc(FILE *); 1214 extern char *fgets(char *, int, FILE *); 1215 extern int fputc(int, FILE *); 1216 extern int fputs(const char *, FILE *); 1217 1218 1219 extern int getc(FILE *); 1220 extern int putc(int, FILE *); 1221 1222 1223 1224 extern int getchar(void); 1225 extern int putchar(int); 1226 1227 1228 /* 1229 * ISO/IEC C11 removed gets from the standard library. Therefore if a strict C11 1230 * environment has been requested, we remove it. 1231 */ 1232 1233 extern char *gets(char *); 1234 1235 extern int puts(const char *); 1236 extern int ungetc(int, FILE *); 1237 extern size_t fread(void *, size_t, size_t, 1238 FILE *); 1239 extern size_t fwrite(const void *, size_t, size_t, 1240 FILE *); 1241 1242 extern int fgetpos(FILE *, fpos_t *); 1243 extern int fsetpos(FILE *, const fpos_t *); 1244 1245 extern int fseek(FILE *, long, int); 1246 extern long ftell(FILE *); 1247 extern void rewind(FILE *); 1248 1249 1250 extern void clearerr(FILE *); 1251 extern int feof(FILE *); 1252 extern int ferror(FILE *); 1253 1254 extern void perror(const char *); 1255 1256 1257 extern int __filbuf(FILE *); 1258 extern int __flsbuf(int, FILE *); 1259 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 1260 1261 /* 1262 * If feature test macros are set that enable interfaces that use types 1263 * defined in <sys/types.h>, get those types by doing the include. 1264 * 1265 * Note that in asking for the interfaces associated with this feature test 1266 * macro one also asks for definitions of the POSIX types. 1267 */ 1268 1269 /* 1270 * Allow global visibility for symbols defined in 1271 * C++ "std" namespace in <iso/stdio_iso.h>. 1272 */ 1273 # 147 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1274 /* 1275 * This header needs to be included here because it relies on the global 1276 * visibility of FILE and size_t in the C++ environment. 1277 */ 1278 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1 1279 /* 1280 * CDDL HEADER START 1281 * 1282 * The contents of this file are subject to the terms of the 1283 * Common Development and Distribution License, Version 1.0 only 1284 * (the "License"). You may not use this file except in compliance 1285 * with the License. 1286 * 1287 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1288 * or http://www.opensolaris.org/os/licensing. 1289 * See the License for the specific language governing permissions 1290 * and limitations under the License. 1291 * 1292 * When distributing Covered Code, include this CDDL HEADER in each 1293 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1294 * If applicable, add the following below this CDDL HEADER, with the 1295 * fields enclosed by brackets "[]" replaced with your own identifying 1296 * information: Portions Copyright [yyyy] [name of copyright owner] 1297 * 1298 * CDDL HEADER END 1299 */ 1300 /* 1301 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1302 * 1303 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1304 * Use is subject to license terms. 1305 */ 1306 1307 /* 1308 * An application should not include this header directly. Instead it 1309 * should be included only through the inclusion of other Sun headers. 1310 * 1311 * The contents of this header is limited to identifiers specified in 1312 * the C99 standard and in conflict with the C++ implementation of the 1313 * standard header. The C++ standard may adopt the C99 standard at 1314 * which point it is expected that the symbols included here will 1315 * become part of the C++ std namespace. 1316 */ 1317 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1318 /* 1319 * The following have been added as a result of the ISO/IEC 9899:1999 1320 * standard. For a strictly conforming C application, visibility is 1321 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 1322 * For non-strictly conforming C applications, there are no restrictions 1323 * on the C namespace. 1324 */ 1325 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdio_c99.h" 1326 extern int vfscanf(FILE *, const char *, __va_list); 1327 extern int vscanf(const char *, __va_list); 1328 extern int vsscanf(const char *, const char *, 1329 __va_list); 1330 1331 1332 1333 1334 extern int snprintf(char *, size_t, const char *, 1335 ...); 1336 extern int vsnprintf(char *, size_t, const char *, 1337 __va_list); 1338 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 2 1339 # 163 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1340 typedef __longlong_t off_t; 1341 1342 1343 1344 1345 1346 typedef __longlong_t off64_t; 1347 # 179 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1348 typedef __longlong_t fpos64_t; 1349 1350 1351 1352 /* 1353 * XPG4 requires that va_list be defined in <stdio.h> "as described in 1354 * <stdarg.h>". ANSI-C and POSIX require that the namespace of <stdio.h> 1355 * not be polluted with this name. 1356 */ 1357 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1358 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 1359 # 213 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1360 extern unsigned char _sibuf[], _sobuf[]; 1361 1362 1363 /* large file compilation environment setup */ 1364 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1365 extern unsigned char *_bufendtab[]; 1366 extern FILE *_lastbuf; 1367 1368 1369 /* In the LP64 compilation environment, all APIs are already large file */ 1370 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1371 typedef int ssize_t; /* (historical version) */ 1372 1373 1374 1375 1376 1377 1378 extern char *tmpnam_r(char *); 1379 1380 1381 1382 1383 extern int fcloseall(void); 1384 extern void setbuffer(FILE *, char *, size_t); 1385 extern int setlinebuf(FILE *); 1386 /* PRINTFLIKE2 */ 1387 extern int asprintf(char **, const char *, ...); 1388 /* PRINTFLIKE2 */ 1389 extern int vasprintf(char **, const char *, __va_list); 1390 1391 1392 1393 1394 /* || defined(_XPG7) */ 1395 extern ssize_t getdelim(char **, size_t *, 1396 int, FILE *); 1397 extern ssize_t getline(char **, size_t *, 1398 FILE *); 1399 1400 1401 /* 1402 * The following are known to POSIX and XOPEN, but not to ANSI-C. 1403 */ 1404 1405 1406 1407 extern FILE *fdopen(int, const char *); 1408 extern char *ctermid(char *); 1409 extern int fileno(FILE *); 1410 1411 1412 1413 /* 1414 * The following are known to POSIX.1c, but not to ANSI-C or XOPEN. 1415 */ 1416 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1417 /* 1418 * The following are known to XOPEN, but not to ANSI-C or POSIX. 1419 */ 1420 1421 1422 extern FILE *popen(const char *, const char *); 1423 extern char *tempnam(const char *, const char *); 1424 extern int pclose(FILE *); 1425 1426 extern int getsubopt(char **, char *const *, char **); 1427 1428 1429 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 1430 1431 extern char *cuserid(char *); 1432 extern int getopt(int, char *const *, const char *); 1433 extern char *optarg; 1434 extern int optind, opterr, optopt; 1435 extern int getw(FILE *); 1436 extern int putw(int, FILE *); 1437 1438 1439 1440 1441 /* 1442 * The following are defined as part of the Large File Summit interfaces. 1443 */ 1444 1445 extern int fseeko(FILE *, off_t, int); 1446 extern off_t ftello(FILE *); 1447 1448 1449 /* 1450 * The following are defined as part of the transitional Large File Summit 1451 * interfaces. 1452 */ 1453 1454 1455 extern FILE *fopen64(const char *, const char *); 1456 extern FILE *freopen64(const char *, const char *, FILE *); 1457 extern FILE *tmpfile64(void); 1458 extern int fgetpos64(FILE *, fpos64_t *); 1459 extern int fsetpos64(FILE *, const fpos64_t *); 1460 extern int fseeko64(FILE *, off64_t, int); 1461 extern off64_t ftello64(FILE *); 1462 1463 1464 /* 1465 * XPG7 symbols 1466 */ 1467 1468 extern FILE *fmemopen(void *, size_t, 1469 const char *); 1470 extern FILE *open_memstream(char **, size_t *); 1471 # 29 "setup_temporary_directory.c" 2 1472 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1 1473 /* 1474 * CDDL HEADER START 1475 * 1476 * The contents of this file are subject to the terms of the 1477 * Common Development and Distribution License (the "License"). 1478 * You may not use this file except in compliance with the License. 1479 * 1480 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1481 * or http://www.opensolaris.org/os/licensing. 1482 * See the License for the specific language governing permissions 1483 * and limitations under the License. 1484 * 1485 * When distributing Covered Code, include this CDDL HEADER in each 1486 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1487 * If applicable, add the following below this CDDL HEADER, with the 1488 * fields enclosed by brackets "[]" replaced with your own identifying 1489 * information: Portions Copyright [yyyy] [name of copyright owner] 1490 * 1491 * CDDL HEADER END 1492 */ 1493 1494 /* 1495 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1496 * Copyright (c) 2013 Gary Mills 1497 * 1498 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 1499 */ 1500 1501 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 1502 1503 /* Copyright (c) 1988 AT&T */ 1504 /* All Rights Reserved */ 1505 1506 1507 1508 1509 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1 1510 /* 1511 * CDDL HEADER START 1512 * 1513 * The contents of this file are subject to the terms of the 1514 * Common Development and Distribution License, Version 1.0 only 1515 * (the "License"). You may not use this file except in compliance 1516 * with the License. 1517 * 1518 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1519 * or http://www.opensolaris.org/os/licensing. 1520 * See the License for the specific language governing permissions 1521 * and limitations under the License. 1522 * 1523 * When distributing Covered Code, include this CDDL HEADER in each 1524 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1525 * If applicable, add the following below this CDDL HEADER, with the 1526 * fields enclosed by brackets "[]" replaced with your own identifying 1527 * information: Portions Copyright [yyyy] [name of copyright owner] 1528 * 1529 * CDDL HEADER END 1530 */ 1531 /* 1532 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1533 * Copyright 2014 PALO, Richard. 1534 * 1535 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 1536 * Use is subject to license terms. 1537 */ 1538 1539 /* Copyright (c) 1988 AT&T */ 1540 /* All Rights Reserved */ 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 <locale.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 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2 1588 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 1589 /* 1590 * This file and its contents are supplied under the terms of the 1591 * Common Development and Distribution License ("CDDL"), version 1.0. 1592 * You may only use this file in accordance with the terms of version 1593 * 1.0 of the CDDL. 1594 * 1595 * A full copy of the text of the CDDL should have accompanied this 1596 * source. A copy of the CDDL is also available via the Internet at 1597 * http://www.illumos.org/license/CDDL. 1598 */ 1599 1600 /* 1601 * Copyright 2014-2016 PALO, Richard. 1602 */ 1603 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 2 1604 1605 1606 1607 1608 1609 unsigned char __mb_cur_max(void); 1610 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1611 typedef struct { 1612 int quot; 1613 int rem; 1614 } div_t; 1615 1616 typedef struct { 1617 long quot; 1618 long rem; 1619 } ldiv_t; 1620 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1621 /* 1622 * wchar_t is a built-in type in standard C++ and as such is not 1623 * defined here when using standard C++. However, the GNU compiler 1624 * fixincludes utility nonetheless creates its own version of this 1625 * header for use by gcc and g++. In that version it adds a redundant 1626 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 1627 * header we need to include the following magic comment: 1628 * 1629 * we must use the C++ compiler's type 1630 * 1631 * The above comment should not be removed or changed until GNU 1632 * gcc/fixinc/inclhack.def is updated to bypass this header. 1633 */ 1634 1635 1636 1637 1638 1639 1640 typedef long wchar_t; 1641 # 120 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_iso.h" 1642 extern void abort(void) __attribute__((__noreturn__)); 1643 extern int abs(int); 1644 extern int atexit(void (*)(void)); 1645 extern double atof(const char *); 1646 extern int atoi(const char *); 1647 extern long int atol(const char *); 1648 extern void *bsearch(const void *, const void *, size_t, size_t, 1649 int (*)(const void *, const void *)); 1650 1651 1652 1653 1654 1655 1656 extern void *calloc(size_t, size_t); 1657 extern div_t div(int, int); 1658 extern void exit(int) 1659 __attribute__((__noreturn__)); 1660 extern void free(void *); 1661 extern char *getenv(const char *); 1662 extern long int labs(long); 1663 extern ldiv_t ldiv(long, long); 1664 extern void *malloc(size_t); 1665 extern int mblen(const char *, size_t); 1666 extern size_t mbstowcs(wchar_t *, const char *, 1667 size_t); 1668 extern int mbtowc(wchar_t *, const char *, size_t); 1669 extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); 1670 1671 1672 1673 1674 1675 extern int rand(void); 1676 extern void *realloc(void *, size_t); 1677 extern void srand(unsigned int); 1678 extern double strtod(const char *, char **); 1679 extern long int strtol(const char *, char **, int); 1680 extern unsigned long int strtoul(const char *, 1681 char **, int); 1682 extern int system(const char *); 1683 extern int wctomb(char *, wchar_t); 1684 extern size_t wcstombs(char *, const wchar_t *, 1685 size_t); 1686 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 1687 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1 1688 /* 1689 * CDDL HEADER START 1690 * 1691 * The contents of this file are subject to the terms of the 1692 * Common Development and Distribution License, Version 1.0 only 1693 * (the "License"). You may not use this file except in compliance 1694 * with the License. 1695 * 1696 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1697 * or http://www.opensolaris.org/os/licensing. 1698 * See the License for the specific language governing permissions 1699 * and limitations under the License. 1700 * 1701 * When distributing Covered Code, include this CDDL HEADER in each 1702 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1703 * If applicable, add the following below this CDDL HEADER, with the 1704 * fields enclosed by brackets "[]" replaced with your own identifying 1705 * information: Portions Copyright [yyyy] [name of copyright owner] 1706 * 1707 * CDDL HEADER END 1708 */ 1709 /* 1710 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 1711 * 1712 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 1713 * Use is subject to license terms. 1714 */ 1715 1716 /* 1717 * An application should not include this header directly. Instead it 1718 * should be included only through the inclusion of other Sun headers. 1719 * 1720 * The contents of this header is limited to identifiers specified in 1721 * the C99 standard and in conflict with the C++ implementation of the 1722 * standard header. The C++ standard may adopt the C99 standard at 1723 * which point it is expected that the symbols included here will 1724 * become part of the C++ std namespace. 1725 */ 1726 1727 1728 1729 1730 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1731 /* 1732 * CDDL HEADER START 1733 * 1734 * The contents of this file are subject to the terms of the 1735 * Common Development and Distribution License (the "License"). 1736 * You may not use this file except in compliance with the License. 1737 * 1738 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1739 * or http://www.opensolaris.org/os/licensing. 1740 * See the License for the specific language governing permissions 1741 * and limitations under the License. 1742 * 1743 * When distributing Covered Code, include this CDDL HEADER in each 1744 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1745 * If applicable, add the following below this CDDL HEADER, with the 1746 * fields enclosed by brackets "[]" replaced with your own identifying 1747 * information: Portions Copyright [yyyy] [name of copyright owner] 1748 * 1749 * CDDL HEADER END 1750 */ 1751 1752 /* 1753 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 1754 * Copyright 2016 Joyent, Inc. 1755 * 1756 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1757 * Use is subject to license terms. 1758 */ 1759 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 2 1760 1761 1762 1763 1764 1765 /* 1766 * The following have been added as a result of the ISO/IEC 9899:1999 1767 * standard. For a strictly conforming C application, visibility is 1768 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 1769 * For non-strictly conforming C applications, there are no restrictions 1770 * on the C namespace. 1771 */ 1772 1773 1774 typedef struct { 1775 long long quot; 1776 long long rem; 1777 } lldiv_t; 1778 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c99.h" 1779 extern void _Exit(int); 1780 extern float strtof(const char *, char **); 1781 extern long double strtold(const char *, char **); 1782 1783 1784 extern long long atoll(const char *); 1785 extern long long llabs(long long); 1786 extern lldiv_t lldiv(long long, long long); 1787 extern long long strtoll(const char *, char **, 1788 int); 1789 extern unsigned long long strtoull(const char *, 1790 char **, int); 1791 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 1792 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1 1793 /* 1794 * This file and its contents are supplied under the terms of the 1795 * Common Development and Distribution License ("CDDL"), version 1.0. 1796 * You may only use this file in accordance with the terms of version 1797 * 1.0 of the CDDL. 1798 * 1799 * A full copy of the text of the CDDL should have accompanied this 1800 * source. A copy of the CDDL is also available via the Internet at 1801 * http://www.illumos.org/license/CDDL. 1802 */ 1803 1804 /* 1805 * Copyright 2016 Joyent, Inc. 1806 */ 1807 1808 /* 1809 * An application should not include this header directly. Instead it 1810 * should be included only through the inclusion of other illumos headers. 1811 * 1812 * The contents of this header is limited to identifiers specified in 1813 * the C11 standard and in conflict with the C++ implementation of the 1814 * standard header. The C++ standard may adopt the C11 standard at 1815 * which point it is expected that the symbols included here will 1816 * become part of the C++ std namespace. 1817 */ 1818 1819 1820 1821 1822 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 1823 /* 1824 * CDDL HEADER START 1825 * 1826 * The contents of this file are subject to the terms of the 1827 * Common Development and Distribution License (the "License"). 1828 * You may not use this file except in compliance with the License. 1829 * 1830 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 1831 * or http://www.opensolaris.org/os/licensing. 1832 * See the License for the specific language governing permissions 1833 * and limitations under the License. 1834 * 1835 * When distributing Covered Code, include this CDDL HEADER in each 1836 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1837 * If applicable, add the following below this CDDL HEADER, with the 1838 * fields enclosed by brackets "[]" replaced with your own identifying 1839 * information: Portions Copyright [yyyy] [name of copyright owner] 1840 * 1841 * CDDL HEADER END 1842 */ 1843 1844 /* 1845 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 1846 * Copyright 2016 Joyent, Inc. 1847 * 1848 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 1849 * Use is subject to license terms. 1850 */ 1851 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 2 1852 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1853 /* 1854 * The following have been added as a result of the ISO/IEC 9899:2011 1855 * standard. For a strictly conforming C application, visibility is 1856 * contingent on the value of __STDC_VERSION__ (see sys/feature_tests.h). 1857 * For non-strictly conforming C applications, there are no restrictions 1858 * on the C namespace. 1859 */ 1860 1861 /* 1862 * Work around fix-includes and other bad actors with using multiple headers. 1863 */ 1864 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdlib_c11.h" 1865 extern void *aligned_alloc(size_t, size_t); 1866 extern int at_quick_exit(void (*)(void)); 1867 extern void quick_exit(int); 1868 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 1869 1870 1871 1872 1873 1874 /* 1875 * Allow global visibility for symbols defined in 1876 * C++ "std" namespace in <iso/stdlib_iso.h>. 1877 */ 1878 # 83 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1879 /* 1880 * Allow global visibility for symbols defined in 1881 * C++ "std" namespace in <iso/stdlib_c11.h>. 1882 */ 1883 # 101 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1884 typedef unsigned int uid_t; /* UID type */ 1885 1886 1887 /* large file compilation environment setup */ 1888 1889 1890 1891 1892 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1893 #pragma redefine_extname mkstemp mkstemp64 1894 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1895 1896 1897 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1898 #pragma redefine_extname mkstemps mkstemps64 1899 # 109 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1900 1901 1902 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1903 #pragma redefine_extname mkostemp mkostemp64 1904 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1905 1906 1907 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1908 #pragma redefine_extname mkostemps mkostemps64 1909 # 111 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1910 # 121 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1911 /* In the LP64 compilation environment, all APIs are already large file */ 1912 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1913 extern int rand_r(unsigned int *); 1914 1915 1916 extern void _exithandle(void); 1917 1918 1919 1920 1921 extern double drand48(void); 1922 extern double erand48(unsigned short *); 1923 extern long jrand48(unsigned short *); 1924 extern void lcong48(unsigned short *); 1925 extern long lrand48(void); 1926 extern long mrand48(void); 1927 extern long nrand48(unsigned short *); 1928 extern unsigned short *seed48(unsigned short *); 1929 extern void srand48(long); 1930 extern int putenv(char *); 1931 extern void setkey(const char *); 1932 1933 1934 /* 1935 * swab() has historically been in <stdlib.h> as delivered from AT&T 1936 * and continues to be visible in the default compilation environment. 1937 * As of Issue 4 of the X/Open Portability Guides, swab() was declared 1938 * in <unistd.h>. As a result, with respect to X/Open namespace the 1939 * swab() declaration in this header is only visible for the XPG3 1940 * environment. 1941 */ 1942 # 182 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1943 extern void swab(const char *, char *, ssize_t); 1944 1945 1946 1947 1948 1949 extern int mkstemp(char *); 1950 1951 extern int mkstemps(char *, int); 1952 1953 1954 1955 1956 1957 extern int mkstemp64(char *); 1958 1959 extern int mkstemps64(char *, int); 1960 1961 1962 1963 1964 extern char *mkdtemp(char *); 1965 1966 1967 1968 extern int mkostemp(char *, int); 1969 extern int mkostemps(char *, int, int); 1970 1971 1972 extern int mkostemp64(char *, int); 1973 extern int mkostemps64(char *, int, int); 1974 1975 1976 1977 1978 1979 1980 extern long a64l(const char *); 1981 extern char *ecvt(double, int, int *, int *); 1982 extern char *fcvt(double, int, int *, int *); 1983 extern char *gcvt(double, int, char *); 1984 extern int getsubopt(char **, char *const *, char **); 1985 extern int grantpt(int); 1986 extern char *initstate(unsigned, char *, size_t); 1987 extern char *l64a(long); 1988 extern char *mktemp(char *); 1989 extern char *ptsname(int); 1990 extern long random(void); 1991 extern char *realpath(const char *, char *); 1992 extern char *setstate(const char *); 1993 extern void srandom(unsigned); 1994 extern int unlockpt(int); 1995 /* Marked LEGACY in SUSv2 and removed in SUSv3 */ 1996 1997 extern int ttyslot(void); 1998 extern void *valloc(size_t); 1999 2000 2001 2002 2003 2004 2005 extern int posix_memalign(void **, size_t, size_t); 2006 extern int posix_openpt(int); 2007 extern int setenv(const char *, const char *, int); 2008 extern int unsetenv(const char *); 2009 2010 2011 2012 2013 extern char *canonicalize_file_name(const char *); 2014 extern int clearenv(void); 2015 extern void closefrom(int); 2016 extern int daemon(int, int); 2017 extern int dup2(int, int); 2018 extern int dup3(int, int, int); 2019 extern int fdwalk(int (*)(void *, int), void *); 2020 extern char *qecvt(long double, int, int *, int *); 2021 extern char *qfcvt(long double, int, int *, int *); 2022 extern char *qgcvt(long double, int, char *); 2023 extern char *getcwd(char *, size_t); 2024 extern const char *getexecname(void); 2025 2026 2027 2028 2029 2030 2031 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2032 #pragma redefine_extname getlogin getloginx 2033 # 269 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2034 2035 2036 2037 2038 2039 2040 extern char *getlogin(void); 2041 2042 2043 extern int getopt(int, char *const *, const char *); 2044 extern char *optarg; 2045 extern int optind, opterr, optopt; 2046 extern char *getpass(const char *); 2047 extern char *getpassphrase(const char *); 2048 extern int getpw(uid_t, char *); 2049 extern int isatty(int); 2050 extern void *memalign(size_t, size_t); 2051 extern char *ttyname(int); 2052 extern char *mkdtemp(char *); 2053 extern const char *getprogname(void); 2054 extern void setprogname(const char *); 2055 2056 2057 extern char *lltostr(long long, char *); 2058 extern char *ulltostr(unsigned long long, char *); 2059 2060 2061 2062 2063 /* OpenBSD compatibility functions */ 2064 2065 2066 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 1 2067 /* 2068 * CDDL HEADER START 2069 * 2070 * The contents of this file are subject to the terms of the 2071 * Common Development and Distribution License, Version 1.0 only 2072 * (the "License"). You may not use this file except in compliance 2073 * 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 2005 Sun Microsystems, Inc. All rights reserved. 2092 * Use is subject to license terms. 2093 */ 2094 2095 2096 2097 2098 /* 2099 * This file, <inttypes.h>, is specified by the ISO C standard, 2100 * standard, ISO/IEC 9899:1999 Programming language - C and is 2101 * also defined by SUSv3. 2102 * 2103 * ISO International Organization for Standardization. 2104 * SUSv3 Single Unix Specification, Version 3 2105 */ 2106 2107 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2108 /* 2109 * CDDL HEADER START 2110 * 2111 * The contents of this file are subject to the terms of the 2112 * Common Development and Distribution License (the "License"). 2113 * You may not use this file except in compliance with the License. 2114 * 2115 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2116 * or http://www.opensolaris.org/os/licensing. 2117 * See the License for the specific language governing permissions 2118 * and limitations under the License. 2119 * 2120 * When distributing Covered Code, include this CDDL HEADER in each 2121 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2122 * If applicable, add the following below this CDDL HEADER, with the 2123 * fields enclosed by brackets "[]" replaced with your own identifying 2124 * information: Portions Copyright [yyyy] [name of copyright owner] 2125 * 2126 * CDDL HEADER END 2127 */ 2128 2129 /* 2130 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2131 * Copyright 2016 Joyent, Inc. 2132 * 2133 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2134 * Use is subject to license terms. 2135 */ 2136 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 2137 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 1 2138 /* 2139 * CDDL HEADER START 2140 * 2141 * The contents of this file are subject to the terms of the 2142 * Common Development and Distribution License, Version 1.0 only 2143 * (the "License"). You may not use this file except in compliance 2144 * with the License. 2145 * 2146 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2147 * or http://www.opensolaris.org/os/licensing. 2148 * See the License for the specific language governing permissions 2149 * and limitations under the License. 2150 * 2151 * When distributing Covered Code, include this CDDL HEADER in each 2152 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2153 * If applicable, add the following below this CDDL HEADER, with the 2154 * fields enclosed by brackets "[]" replaced with your own identifying 2155 * information: Portions Copyright [yyyy] [name of copyright owner] 2156 * 2157 * CDDL HEADER END 2158 */ 2159 /* 2160 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 2161 * Use is subject to license terms. 2162 */ 2163 2164 2165 2166 2167 #pragma ident "%Z%%M% %I% %E% SMI" 2168 2169 /* 2170 * This header, <sys/inttypes.h>, contains (through nested inclusion) the 2171 * vast majority of the facilities specified for <inttypes.h> as defined 2172 * by the ISO C Standard, ISO/IEC 9899:1999 Programming language - C. 2173 * 2174 * Kernel/Driver developers are encouraged to include this file to access 2175 * the fixed size types, limits and utility macros. Application developers 2176 * should use the standard defined header <inttypes.h>. 2177 */ 2178 2179 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2180 /* 2181 * CDDL HEADER START 2182 * 2183 * The contents of this file are subject to the terms of the 2184 * Common Development and Distribution License (the "License"). 2185 * You may not use this file except in compliance with the License. 2186 * 2187 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2188 * or http://www.opensolaris.org/os/licensing. 2189 * See the License for the specific language governing permissions 2190 * and limitations under the License. 2191 * 2192 * When distributing Covered Code, include this CDDL HEADER in each 2193 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2194 * If applicable, add the following below this CDDL HEADER, with the 2195 * fields enclosed by brackets "[]" replaced with your own identifying 2196 * information: Portions Copyright [yyyy] [name of copyright owner] 2197 * 2198 * CDDL HEADER END 2199 */ 2200 2201 /* 2202 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2203 * Copyright 2016 Joyent, Inc. 2204 * 2205 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2206 * Use is subject to license terms. 2207 */ 2208 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 2209 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 2210 /* 2211 * CDDL HEADER START 2212 * 2213 * The contents of this file are subject to the terms of the 2214 * Common Development and Distribution License, Version 1.0 only 2215 * (the "License"). You may not use this file except in compliance 2216 * with the License. 2217 * 2218 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2219 * or http://www.opensolaris.org/os/licensing. 2220 * See the License for the specific language governing permissions 2221 * and limitations under the License. 2222 * 2223 * When distributing Covered Code, include this CDDL HEADER in each 2224 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2225 * If applicable, add the following below this CDDL HEADER, with the 2226 * fields enclosed by brackets "[]" replaced with your own identifying 2227 * information: Portions Copyright [yyyy] [name of copyright owner] 2228 * 2229 * CDDL HEADER END 2230 */ 2231 /* 2232 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2233 * 2234 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2235 * Use is subject to license terms. 2236 */ 2237 2238 2239 2240 2241 /* 2242 * This file, <sys/int_types.h>, is part of the Sun Microsystems implementation 2243 * of <inttypes.h> defined in the ISO C standard, ISO/IEC 9899:1999 2244 * Programming language - C. 2245 * 2246 * Programs/Modules should not directly include this file. Access to the 2247 * types defined in this file should be through the inclusion of one of the 2248 * following files: 2249 * 2250 * <sys/types.h> Provides only the "_t" types defined in this 2251 * file which is a subset of the contents of 2252 * <inttypes.h>. (This can be appropriate for 2253 * all programs/modules except those claiming 2254 * ANSI-C conformance.) 2255 * 2256 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 2257 * components of <inttypes.h>. 2258 * 2259 * <inttypes.h> For use by applications. 2260 * 2261 * See these files for more details. 2262 */ 2263 2264 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.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 (the "License"). 2270 * You may not use this file except in compliance with the License. 2271 * 2272 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2273 * or http://www.opensolaris.org/os/licensing. 2274 * See the License for the specific language governing permissions 2275 * and limitations under the License. 2276 * 2277 * When distributing Covered Code, include this CDDL HEADER in each 2278 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2279 * If applicable, add the following below this CDDL HEADER, with the 2280 * fields enclosed by brackets "[]" replaced with your own identifying 2281 * information: Portions Copyright [yyyy] [name of copyright owner] 2282 * 2283 * CDDL HEADER END 2284 */ 2285 2286 /* 2287 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2288 * Copyright 2016 Joyent, Inc. 2289 * 2290 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2291 * Use is subject to license terms. 2292 */ 2293 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 2 2294 2295 2296 2297 2298 2299 /* 2300 * Basic / Extended integer types 2301 * 2302 * The following defines the basic fixed-size integer types. 2303 * 2304 * Implementations are free to typedef them to Standard C integer types or 2305 * extensions that they support. If an implementation does not support one 2306 * of the particular integer data types below, then it should not define the 2307 * typedefs and macros corresponding to that data type. Note that int8_t 2308 * is not defined in -Xs mode on ISAs for which the ABI specifies "char" 2309 * as an unsigned entity because there is no way to define an eight bit 2310 * signed integral. 2311 */ 2312 2313 typedef char int8_t; 2314 2315 2316 2317 typedef short int16_t; 2318 typedef int int32_t; 2319 2320 2321 2322 2323 2324 2325 typedef long long int64_t; 2326 2327 2328 2329 typedef unsigned char uint8_t; 2330 typedef unsigned short uint16_t; 2331 typedef unsigned int uint32_t; 2332 2333 2334 2335 2336 typedef unsigned long long uint64_t; 2337 2338 2339 2340 /* 2341 * intmax_t and uintmax_t are to be the longest (in number of bits) signed 2342 * and unsigned integer types supported by the implementation. 2343 */ 2344 2345 typedef int64_t intmax_t; 2346 typedef uint64_t uintmax_t; 2347 2348 2349 2350 2351 2352 /* 2353 * intptr_t and uintptr_t are signed and unsigned integer types large enough 2354 * to hold any data pointer; that is, data pointers can be assigned into or 2355 * from these integer types without losing precision. 2356 */ 2357 2358 2359 2360 2361 typedef int intptr_t; 2362 typedef unsigned int uintptr_t; 2363 2364 2365 /* 2366 * The following define the fastest integer types that can hold the 2367 * specified number of bits. 2368 */ 2369 2370 typedef char int_fast8_t; 2371 2372 2373 2374 typedef int int_fast16_t; 2375 typedef int int_fast32_t; 2376 2377 2378 2379 2380 typedef long long int_fast64_t; 2381 2382 2383 2384 typedef unsigned char uint_fast8_t; 2385 typedef unsigned int uint_fast16_t; 2386 typedef unsigned int uint_fast32_t; 2387 2388 2389 2390 2391 typedef unsigned long long uint_fast64_t; 2392 2393 2394 2395 /* 2396 * The following define the smallest integer types that can hold the 2397 * specified number of bits. 2398 */ 2399 2400 typedef char int_least8_t; 2401 2402 2403 2404 typedef short int_least16_t; 2405 typedef int int_least32_t; 2406 2407 2408 2409 2410 typedef long long int_least64_t; 2411 2412 2413 2414 /* 2415 * If these are changed, please update char16_t and char32_t in head/uchar.h. 2416 */ 2417 typedef unsigned char uint_least8_t; 2418 typedef unsigned short uint_least16_t; 2419 typedef unsigned int uint_least32_t; 2420 2421 2422 2423 2424 typedef unsigned long long uint_least64_t; 2425 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 2426 2427 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 2428 /* 2429 * CDDL HEADER START 2430 * 2431 * The contents of this file are subject to the terms of the 2432 * Common Development and Distribution License, Version 1.0 only 2433 * (the "License"). You may not use this file except in compliance 2434 * with the License. 2435 * 2436 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2437 * or http://www.opensolaris.org/os/licensing. 2438 * See the License for the specific language governing permissions 2439 * and limitations under the License. 2440 * 2441 * When distributing Covered Code, include this CDDL HEADER in each 2442 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2443 * If applicable, add the following below this CDDL HEADER, with the 2444 * fields enclosed by brackets "[]" replaced with your own identifying 2445 * information: Portions Copyright [yyyy] [name of copyright owner] 2446 * 2447 * CDDL HEADER END 2448 */ 2449 /* 2450 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2451 * 2452 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2453 * Use is subject to license terms. 2454 */ 2455 2456 2457 2458 2459 /* 2460 * This file, <sys/int_limits.h>, is part of the Sun Microsystems implementation 2461 * of <inttypes.h> as defined in the ISO C standard, ISO/IEC 9899:1999 2462 * Programming language - C. 2463 * 2464 * Programs/Modules should not directly include this file. Access to the 2465 * types defined in this file should be through the inclusion of one of the 2466 * following files: 2467 * 2468 * <limits.h> This nested inclusion is disabled for strictly 2469 * ANSI-C conforming compilations. The *_MIN 2470 * definitions are not visible to POSIX or XPG 2471 * conforming applications (due to what may be 2472 * a bug in the specification - this is under 2473 * investigation) 2474 * 2475 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 2476 * components of <inttypes.h>. 2477 * 2478 * <inttypes.h> For use by applications. 2479 * 2480 * See these files for more details. 2481 */ 2482 2483 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2484 /* 2485 * CDDL HEADER START 2486 * 2487 * The contents of this file are subject to the terms of the 2488 * Common Development and Distribution License (the "License"). 2489 * You may not use this file except in compliance with the License. 2490 * 2491 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2492 * or http://www.opensolaris.org/os/licensing. 2493 * See the License for the specific language governing permissions 2494 * and limitations under the License. 2495 * 2496 * When distributing Covered Code, include this CDDL HEADER in each 2497 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2498 * If applicable, add the following below this CDDL HEADER, with the 2499 * fields enclosed by brackets "[]" replaced with your own identifying 2500 * information: Portions Copyright [yyyy] [name of copyright owner] 2501 * 2502 * CDDL HEADER END 2503 */ 2504 2505 /* 2506 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2507 * Copyright 2016 Joyent, Inc. 2508 * 2509 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2510 * Use is subject to license terms. 2511 */ 2512 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2 2513 2514 2515 2516 2517 2518 /* 2519 * Limits 2520 * 2521 * The following define the limits for the types defined in <sys/int_types.h>. 2522 * 2523 * INTMAX_MIN (minimum value of the largest supported signed integer type), 2524 * INTMAX_MAX (maximum value of the largest supported signed integer type), 2525 * and UINTMAX_MAX (maximum value of the largest supported unsigned integer 2526 * type) can be set to implementation defined limits. 2527 * 2528 * NOTE : A programmer can test to see whether an implementation supports 2529 * a particular size of integer by testing if the macro that gives the 2530 * maximum for that datatype is defined. For example, if #ifdef UINT64_MAX 2531 * tests false, the implementation does not support unsigned 64 bit integers. 2532 * 2533 * The type of these macros is intentionally unspecified. 2534 * 2535 * The types int8_t, int_least8_t, and int_fast8_t are not defined for ISAs 2536 * where the ABI specifies "char" as unsigned when the translation mode is 2537 * not ANSI-C. 2538 */ 2539 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2540 /* 2541 * The following 2 macros are provided for testing whether the types 2542 * intptr_t and uintptr_t (integers large enough to hold a void *) are 2543 * defined in this header. They are needed in case the architecture can't 2544 * represent a pointer in any standard integral type. 2545 */ 2546 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2547 /* Maximum limits of ptrdiff_t defined in <sys/types.h> */ 2548 2549 2550 2551 2552 2553 2554 /* 2555 * Maximum value of a "size_t". SIZE_MAX was previously defined 2556 * in <limits.h>, however, the standards specify it be defined 2557 * in <stdint.h>. The <stdint.h> headers includes this header as 2558 * does <limits.h>. The value of SIZE_MAX should not deviate 2559 * from the value of ULONG_MAX defined <sys/types.h>. 2560 */ 2561 2562 2563 2564 2565 2566 2567 /* Maximum limit of sig_atomic_t defined in <sys/types.h> */ 2568 2569 2570 2571 2572 /* 2573 * Maximum limit of wchar_t. The WCHAR_* macros are also 2574 * defined in <iso/wchar_iso.h>, but inclusion of that header 2575 * will break ISO/IEC C namespace. 2576 */ 2577 2578 2579 2580 2581 /* Maximum limit of wint_t */ 2582 2583 2584 2585 2586 /* 2587 * It is probably a bug in the POSIX specification (IEEE-1003.1-1990) that 2588 * when including <limits.h> that the suffix _MAX is reserved but not the 2589 * suffix _MIN. However, until that issue is resolved.... 2590 */ 2591 # 230 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 2592 /* Minimum value of a pointer-holding signed integer type */ 2593 2594 2595 2596 2597 2598 2599 /* Minimum limits of ptrdiff_t defined in <sys/types.h> */ 2600 2601 2602 2603 2604 2605 2606 /* Minimum limit of sig_atomic_t defined in <sys/types.h> */ 2607 2608 2609 2610 2611 /* 2612 * Minimum limit of wchar_t. The WCHAR_* macros are also 2613 * defined in <iso/wchar_iso.h>, but inclusion of that header 2614 * will break ISO/IEC C namespace. 2615 */ 2616 2617 2618 2619 2620 /* Minimum limit of wint_t */ 2621 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 2622 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1 2623 /* 2624 * CDDL HEADER START 2625 * 2626 * The contents of this file are subject to the terms of the 2627 * Common Development and Distribution License, Version 1.0 only 2628 * (the "License"). You may not use this file except in compliance 2629 * with the License. 2630 * 2631 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2632 * or http://www.opensolaris.org/os/licensing. 2633 * See the License for the specific language governing permissions 2634 * and limitations under the License. 2635 * 2636 * When distributing Covered Code, include this CDDL HEADER in each 2637 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2638 * If applicable, add the following below this CDDL HEADER, with the 2639 * fields enclosed by brackets "[]" replaced with your own identifying 2640 * information: Portions Copyright [yyyy] [name of copyright owner] 2641 * 2642 * CDDL HEADER END 2643 */ 2644 /* 2645 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2646 * 2647 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2648 * Use is subject to license terms. 2649 */ 2650 2651 2652 2653 2654 /* 2655 * This file, <sys/int_const.h>, is part of the Sun Microsystems implementation 2656 * of <inttypes.h> as proposed in the ISO/JTC1/SC22/WG14 C committee's working 2657 * draft for the revision of the current ISO C standard, ISO/IEC 9899:1990 2658 * Programming language - C. 2659 * 2660 * Programs/Modules should not directly include this file. Access to the 2661 * types defined in this file should be through the inclusion of one of the 2662 * following files: 2663 * 2664 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 2665 * components of <inttypes.h>. 2666 * 2667 * <inttypes.h> For use by applications. 2668 * 2669 * See these files for more details. 2670 * 2671 * Use at your own risk. This file will track the evolution of the revision 2672 * of the current ISO C standard. As of February 1996, the committee is 2673 * squarely behind the fixed sized types. 2674 */ 2675 2676 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2677 /* 2678 * CDDL HEADER START 2679 * 2680 * The contents of this file are subject to the terms of the 2681 * Common Development and Distribution License (the "License"). 2682 * You may not use this file except in compliance with the License. 2683 * 2684 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2685 * or http://www.opensolaris.org/os/licensing. 2686 * See the License for the specific language governing permissions 2687 * and limitations under the License. 2688 * 2689 * When distributing Covered Code, include this CDDL HEADER in each 2690 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2691 * If applicable, add the following below this CDDL HEADER, with the 2692 * fields enclosed by brackets "[]" replaced with your own identifying 2693 * information: Portions Copyright [yyyy] [name of copyright owner] 2694 * 2695 * CDDL HEADER END 2696 */ 2697 2698 /* 2699 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2700 * Copyright 2016 Joyent, Inc. 2701 * 2702 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2703 * Use is subject to license terms. 2704 */ 2705 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2 2706 2707 2708 2709 2710 2711 /* 2712 * Constants 2713 * 2714 * The following macros create constants of the types defined in 2715 * <sys/int_types.h>. The intent is that: 2716 * Constants defined using these macros have a specific size and 2717 * signedness. The suffix used for int64_t and uint64_t (ll and ull) 2718 * are for examples only. Implementations are permitted to use other 2719 * suffixes. 2720 * 2721 * The "CSTYLED" comments are flags to an internal code style analysis tool 2722 * telling it to silently accept the line which follows. This internal 2723 * standard requires a space between arguments, but the historical, 2724 * non-ANSI-C ``method'' of concatenation can't tolerate those spaces. 2725 */ 2726 /* CSTYLED */ 2727 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2728 /* CSTYLED */ 2729 2730 2731 2732 2733 /* CSTYLED */ 2734 2735 /* CSTYLED */ 2736 2737 /* CSTYLED */ 2738 2739 2740 2741 2742 2743 2744 /* CSTYLED */ 2745 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 2746 /* CSTYLED */ 2747 2748 /* CSTYLED */ 2749 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 2750 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 1 2751 /* 2752 * CDDL HEADER START 2753 * 2754 * The contents of this file are subject to the terms of the 2755 * Common Development and Distribution License, Version 1.0 only 2756 * (the "License"). You may not use this file except in compliance 2757 * with the License. 2758 * 2759 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2760 * or http://www.opensolaris.org/os/licensing. 2761 * See the License for the specific language governing permissions 2762 * and limitations under the License. 2763 * 2764 * When distributing Covered Code, include this CDDL HEADER in each 2765 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2766 * If applicable, add the following below this CDDL HEADER, with the 2767 * fields enclosed by brackets "[]" replaced with your own identifying 2768 * information: Portions Copyright [yyyy] [name of copyright owner] 2769 * 2770 * CDDL HEADER END 2771 */ 2772 /* 2773 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2774 * 2775 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2776 * Use is subject to license terms. 2777 */ 2778 2779 2780 2781 2782 /* 2783 * This file, <sys/int_fmtio.h>, is part of the Sun Microsystems implementation 2784 * of <inttypes.h> as defined by the ISO C Standard, ISO/IEC 9899:1999 2785 * Programming language - C. 2786 * 2787 * ISO International Organization for Standardization. 2788 * 2789 * Programs/Modules should not directly include this file. Access to the 2790 * types defined in this file should be through the inclusion of one of the 2791 * following files: 2792 * 2793 * <sys/inttypes.h> Provides the Kernel and Driver appropriate 2794 * components of <inttypes.h>. 2795 * 2796 * <inttypes.h> For use by applications. 2797 * 2798 * See these files for more details. 2799 */ 2800 2801 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 2802 /* 2803 * CDDL HEADER START 2804 * 2805 * The contents of this file are subject to the terms of the 2806 * Common Development and Distribution License (the "License"). 2807 * You may not use this file except in compliance with the License. 2808 * 2809 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2810 * or http://www.opensolaris.org/os/licensing. 2811 * See the License for the specific language governing permissions 2812 * and limitations under the License. 2813 * 2814 * When distributing Covered Code, include this CDDL HEADER in each 2815 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2816 * If applicable, add the following below this CDDL HEADER, with the 2817 * fields enclosed by brackets "[]" replaced with your own identifying 2818 * information: Portions Copyright [yyyy] [name of copyright owner] 2819 * 2820 * CDDL HEADER END 2821 */ 2822 2823 /* 2824 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 2825 * Copyright 2016 Joyent, Inc. 2826 * 2827 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2828 * Use is subject to license terms. 2829 */ 2830 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2 2831 2832 2833 2834 2835 2836 /* 2837 * Formatted I/O 2838 * 2839 * The following macros can be used even when an implementation has not 2840 * extended the printf/scanf family of functions. 2841 * 2842 * The form of the names of the macros is either "PRI" for printf specifiers 2843 * or "SCN" for scanf specifiers, followed by the conversion specifier letter 2844 * followed by the datatype size. For example, PRId32 is the macro for 2845 * the printf d conversion specifier with the flags for 32 bit datatype. 2846 * 2847 * An example using one of these macros: 2848 * 2849 * uint64_t u; 2850 * printf("u = %016" PRIx64 "\n", u); 2851 * 2852 * For the purpose of example, the definitions of the printf/scanf macros 2853 * below have the values appropriate for a machine with 8 bit shorts, 16 2854 * bit shorts, 32 bit ints, 32 or 64 bit longs depending on compilation 2855 * mode, and 64 bit long longs. 2856 */ 2857 2858 /* 2859 * fprintf macros for signed integers 2860 */ 2861 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2862 /* 2863 * fprintf macros for unsigned integers 2864 */ 2865 # 227 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2866 /* 2867 * fprintf macros for pointers 2868 */ 2869 # 247 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2870 /* 2871 * fscanf macros for signed integers 2872 */ 2873 # 282 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2874 /* 2875 * fscanf macros for unsigned integers 2876 */ 2877 # 349 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_fmtio.h" 2878 /* 2879 * The following macros define I/O formats for intmax_t and uintmax_t. 2880 */ 2881 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/inttypes.h" 2 2882 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 2883 2884 2885 2886 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 1 2887 /* 2888 * CDDL HEADER START 2889 * 2890 * The contents of this file are subject to the terms of the 2891 * Common Development and Distribution License, Version 1.0 only 2892 * (the "License"). You may not use this file except in compliance 2893 * with the License. 2894 * 2895 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2896 * or http://www.opensolaris.org/os/licensing. 2897 * See the License for the specific language governing permissions 2898 * and limitations under the License. 2899 * 2900 * When distributing Covered Code, include this CDDL HEADER in each 2901 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2902 * If applicable, add the following below this CDDL HEADER, with the 2903 * fields enclosed by brackets "[]" replaced with your own identifying 2904 * information: Portions Copyright [yyyy] [name of copyright owner] 2905 * 2906 * CDDL HEADER END 2907 */ 2908 /* 2909 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 2910 * Use is subject to license terms. 2911 */ 2912 2913 2914 2915 2916 #pragma ident "%Z%%M% %I% %E% SMI" 2917 2918 /* 2919 * This header is included by <stdint.h> which was introduced by 2920 * the ISO C Standard, ISO/IEC 9899:1999 Programming language - C. 2921 * The header is a subset of the <inttypes.h> header. 2922 */ 2923 2924 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 2925 /* 2926 * CDDL HEADER START 2927 * 2928 * The contents of this file are subject to the terms of the 2929 * Common Development and Distribution License, Version 1.0 only 2930 * (the "License"). You may not use this file except in compliance 2931 * with the License. 2932 * 2933 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2934 * or http://www.opensolaris.org/os/licensing. 2935 * See the License for the specific language governing permissions 2936 * and limitations under the License. 2937 * 2938 * When distributing Covered Code, include this CDDL HEADER in each 2939 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2940 * If applicable, add the following below this CDDL HEADER, with the 2941 * fields enclosed by brackets "[]" replaced with your own identifying 2942 * information: Portions Copyright [yyyy] [name of copyright owner] 2943 * 2944 * CDDL HEADER END 2945 */ 2946 /* 2947 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2948 * 2949 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2950 * Use is subject to license terms. 2951 */ 2952 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 2953 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 2954 /* 2955 * CDDL HEADER START 2956 * 2957 * The contents of this file are subject to the terms of the 2958 * Common Development and Distribution License, Version 1.0 only 2959 * (the "License"). You may not use this file except in compliance 2960 * with the License. 2961 * 2962 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2963 * or http://www.opensolaris.org/os/licensing. 2964 * See the License for the specific language governing permissions 2965 * and limitations under the License. 2966 * 2967 * When distributing Covered Code, include this CDDL HEADER in each 2968 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2969 * If applicable, add the following below this CDDL HEADER, with the 2970 * fields enclosed by brackets "[]" replaced with your own identifying 2971 * information: Portions Copyright [yyyy] [name of copyright owner] 2972 * 2973 * CDDL HEADER END 2974 */ 2975 /* 2976 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 2977 * 2978 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 2979 * Use is subject to license terms. 2980 */ 2981 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 2982 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_const.h" 1 2983 /* 2984 * CDDL HEADER START 2985 * 2986 * The contents of this file are subject to the terms of the 2987 * Common Development and Distribution License, Version 1.0 only 2988 * (the "License"). You may not use this file except in compliance 2989 * with the License. 2990 * 2991 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 2992 * or http://www.opensolaris.org/os/licensing. 2993 * See the License for the specific language governing permissions 2994 * and limitations under the License. 2995 * 2996 * When distributing Covered Code, include this CDDL HEADER in each 2997 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 2998 * If applicable, add the following below this CDDL HEADER, with the 2999 * fields enclosed by brackets "[]" replaced with your own identifying 3000 * information: Portions Copyright [yyyy] [name of copyright owner] 3001 * 3002 * CDDL HEADER END 3003 */ 3004 /* 3005 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3006 * 3007 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3008 * Use is subject to license terms. 3009 */ 3010 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stdint.h" 2 3011 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 2 3012 3013 3014 3015 3016 3017 3018 /* Inclusion of <stddef.h> breaks namespace, therefore define wchar_t */ 3019 3020 /* 3021 * wchar_t is a built-in type in standard C++ and as such is not 3022 * defined here when using standard C++. However, the GNU compiler 3023 * fixincludes utility nonetheless creates its own version of this 3024 * header for use by gcc and g++. In that version it adds a redundant 3025 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 3026 * header we need to include the following magic comment: 3027 * 3028 * we must use the C++ compiler's type 3029 * 3030 * The above comment should not be removed or changed until GNU 3031 * gcc/fixinc/inclhack.def is updated to bypass this header. 3032 */ 3033 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 3034 typedef struct { 3035 intmax_t quot; 3036 intmax_t rem; 3037 } imaxdiv_t; 3038 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/inttypes.h" 3039 extern intmax_t imaxabs(intmax_t); 3040 extern imaxdiv_t imaxdiv(intmax_t, intmax_t); 3041 extern intmax_t strtoimax(const char *, char **, 3042 int); 3043 extern uintmax_t strtoumax(const char *, char **, 3044 int); 3045 extern intmax_t wcstoimax(const wchar_t *, 3046 wchar_t **, int); 3047 extern uintmax_t wcstoumax(const wchar_t *, 3048 wchar_t **, int); 3049 # 302 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 2 3050 extern uint32_t arc4random(void); 3051 extern void arc4random_buf(void *, size_t); 3052 extern uint32_t arc4random_uniform(uint32_t); 3053 extern void freezero(void *, size_t); 3054 extern void *recallocarray(void *, size_t, size_t, size_t); 3055 # 30 "setup_temporary_directory.c" 2 3056 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 1 3057 /* 3058 * CDDL HEADER START 3059 * 3060 * The contents of this file are subject to the terms of the 3061 * Common Development and Distribution License (the "License"). 3062 * You may not use this file except in compliance with the License. 3063 * 3064 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3065 * or http://www.opensolaris.org/os/licensing. 3066 * See the License for the specific language governing permissions 3067 * and limitations under the License. 3068 * 3069 * When distributing Covered Code, include this CDDL HEADER in each 3070 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3071 * If applicable, add the following below this CDDL HEADER, with the 3072 * fields enclosed by brackets "[]" replaced with your own identifying 3073 * information: Portions Copyright [yyyy] [name of copyright owner] 3074 * 3075 * CDDL HEADER END 3076 */ 3077 3078 /* 3079 * Copyright 2014 PALO, Richard. 3080 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3081 * Copyright (c) 2013 Gary Mills 3082 * 3083 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 3084 */ 3085 3086 /* Copyright (c) 1988 AT&T */ 3087 /* All Rights Reserved */ 3088 3089 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 3090 3091 3092 3093 3094 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3095 /* 3096 * CDDL HEADER START 3097 * 3098 * The contents of this file are subject to the terms of the 3099 * Common Development and Distribution License (the "License"). 3100 * You may not use this file except in compliance with the License. 3101 * 3102 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3103 * or http://www.opensolaris.org/os/licensing. 3104 * See the License for the specific language governing permissions 3105 * and limitations under the License. 3106 * 3107 * When distributing Covered Code, include this CDDL HEADER in each 3108 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3109 * If applicable, add the following below this CDDL HEADER, with the 3110 * fields enclosed by brackets "[]" replaced with your own identifying 3111 * information: Portions Copyright [yyyy] [name of copyright owner] 3112 * 3113 * CDDL HEADER END 3114 */ 3115 3116 /* 3117 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3118 * Copyright 2016 Joyent, Inc. 3119 * 3120 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3121 * Use is subject to license terms. 3122 */ 3123 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 3124 3125 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 3126 /* 3127 * This file and its contents are supplied under the terms of the 3128 * Common Development and Distribution License ("CDDL"), version 1.0. 3129 * You may only use this file in accordance with the terms of version 3130 * 1.0 of the CDDL. 3131 * 3132 * A full copy of the text of the CDDL should have accompanied this 3133 * source. A copy of the CDDL is also available via the Internet at 3134 * http://www.illumos.org/license/CDDL. 3135 */ 3136 3137 /* 3138 * Copyright 2014-2016 PALO, Richard. 3139 */ 3140 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 3141 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 3142 /* 3143 * CDDL HEADER START 3144 * 3145 * The contents of this file are subject to the terms of the 3146 * Common Development and Distribution License (the "License"). 3147 * You may not use this file except in compliance with the License. 3148 * 3149 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3150 * or http://www.opensolaris.org/os/licensing. 3151 * See the License for the specific language governing permissions 3152 * and limitations under the License. 3153 * 3154 * When distributing Covered Code, include this CDDL HEADER in each 3155 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3156 * If applicable, add the following below this CDDL HEADER, with the 3157 * fields enclosed by brackets "[]" replaced with your own identifying 3158 * information: Portions Copyright [yyyy] [name of copyright owner] 3159 * 3160 * CDDL HEADER END 3161 */ 3162 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 3163 /* All Rights Reserved */ 3164 3165 3166 /* 3167 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3168 * Use is subject to license terms. 3169 * 3170 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 3171 * Copyright 2016 Joyent, Inc. 3172 */ 3173 3174 3175 3176 3177 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3178 /* 3179 * CDDL HEADER START 3180 * 3181 * The contents of this file are subject to the terms of the 3182 * Common Development and Distribution License (the "License"). 3183 * You may not use this file except in compliance with the License. 3184 * 3185 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3186 * or http://www.opensolaris.org/os/licensing. 3187 * See the License for the specific language governing permissions 3188 * and limitations under the License. 3189 * 3190 * When distributing Covered Code, include this CDDL HEADER in each 3191 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3192 * If applicable, add the following below this CDDL HEADER, with the 3193 * fields enclosed by brackets "[]" replaced with your own identifying 3194 * information: Portions Copyright [yyyy] [name of copyright owner] 3195 * 3196 * CDDL HEADER END 3197 */ 3198 3199 /* 3200 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3201 * Copyright 2016 Joyent, Inc. 3202 * 3203 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3204 * Use is subject to license terms. 3205 */ 3206 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3207 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3208 /* 3209 * CDDL HEADER START 3210 * 3211 * The contents of this file are subject to the terms of the 3212 * Common Development and Distribution License (the "License"). 3213 * You may not use this file except in compliance with the License. 3214 * 3215 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3216 * or http://www.opensolaris.org/os/licensing. 3217 * See the License for the specific language governing permissions 3218 * and limitations under the License. 3219 * 3220 * 3221 * When distributing Covered Code, include this CDDL HEADER in each 3222 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3223 * If applicable, add the following below this CDDL HEADER, with the 3224 * fields enclosed by brackets "[]" replaced with your own identifying 3225 * information: Portions Copyright [yyyy] [name of copyright owner] 3226 * 3227 * CDDL HEADER END 3228 */ 3229 3230 /* 3231 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 3232 * Use is subject to license terms. 3233 * Copyright 2016 Joyent, Inc. 3234 */ 3235 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3236 3237 /* 3238 * Machine dependent definitions moved to <sys/machtypes.h>. 3239 */ 3240 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 1 3241 /* 3242 * CDDL HEADER START 3243 * 3244 * The contents of this file are subject to the terms of the 3245 * Common Development and Distribution License, Version 1.0 only 3246 * (the "License"). You may not use this file except in compliance 3247 * with the License. 3248 * 3249 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3250 * or http://www.opensolaris.org/os/licensing. 3251 * See the License for the specific language governing permissions 3252 * and limitations under the License. 3253 * 3254 * When distributing Covered Code, include this CDDL HEADER in each 3255 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3256 * If applicable, add the following below this CDDL HEADER, with the 3257 * fields enclosed by brackets "[]" replaced with your own identifying 3258 * information: Portions Copyright [yyyy] [name of copyright owner] 3259 * 3260 * CDDL HEADER END 3261 */ 3262 /* 3263 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3264 * Use is subject to license terms. 3265 */ 3266 3267 3268 3269 3270 #pragma ident "%Z%%M% %I% %E% SMI" 3271 3272 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3273 /* 3274 * CDDL HEADER START 3275 * 3276 * The contents of this file are subject to the terms of the 3277 * Common Development and Distribution License (the "License"). 3278 * You may not use this file except in compliance with the License. 3279 * 3280 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3281 * or http://www.opensolaris.org/os/licensing. 3282 * See the License for the specific language governing permissions 3283 * and limitations under the License. 3284 * 3285 * When distributing Covered Code, include this CDDL HEADER in each 3286 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3287 * If applicable, add the following below this CDDL HEADER, with the 3288 * fields enclosed by brackets "[]" replaced with your own identifying 3289 * information: Portions Copyright [yyyy] [name of copyright owner] 3290 * 3291 * CDDL HEADER END 3292 */ 3293 3294 /* 3295 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3296 * Copyright 2016 Joyent, Inc. 3297 * 3298 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3299 * Use is subject to license terms. 3300 */ 3301 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2 3302 3303 3304 3305 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 1 3306 /* 3307 * CDDL HEADER START 3308 * 3309 * The contents of this file are subject to the terms of the 3310 * Common Development and Distribution License (the "License"). 3311 * You may not use this file except in compliance with the License. 3312 * 3313 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3314 * or http://www.opensolaris.org/os/licensing. 3315 * See the License for the specific language governing permissions 3316 * and limitations under the License. 3317 * 3318 * When distributing Covered Code, include this CDDL HEADER in each 3319 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3320 * If applicable, add the following below this CDDL HEADER, with the 3321 * fields enclosed by brackets "[]" replaced with your own identifying 3322 * information: Portions Copyright [yyyy] [name of copyright owner] 3323 * 3324 * CDDL HEADER END 3325 */ 3326 /* 3327 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 3328 * Use is subject to license terms. 3329 */ 3330 3331 3332 3333 3334 #pragma ident "%Z%%M% %I% %E% SMI" 3335 3336 3337 3338 3339 3340 /* 3341 * Machine dependent types: 3342 * 3343 * intel ia32 Version 3344 */ 3345 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ia32/sys/machtypes.h" 3346 typedef struct _label_t { long val[6]; } label_t; 3347 3348 3349 3350 typedef unsigned char lock_t; /* lock work for busy wait */ 3351 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machtypes.h" 2 3352 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3353 3354 /* 3355 * Include fixed width type declarations proposed by the ISO/JTC1/SC22/WG14 C 3356 * committee's working draft for the revision of the current ISO C standard, 3357 * ISO/IEC 9899:1990 Programming language - C. These are not currently 3358 * required by any standard but constitute a useful, general purpose set 3359 * of type definitions which is namespace clean with respect to all standards. 3360 */ 3361 3362 3363 3364 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 3365 /* 3366 * CDDL HEADER START 3367 * 3368 * The contents of this file are subject to the terms of the 3369 * Common Development and Distribution License, Version 1.0 only 3370 * (the "License"). You may not use this file except in compliance 3371 * with the License. 3372 * 3373 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3374 * or http://www.opensolaris.org/os/licensing. 3375 * See the License for the specific language governing permissions 3376 * and limitations under the License. 3377 * 3378 * When distributing Covered Code, include this CDDL HEADER in each 3379 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3380 * If applicable, add the following below this CDDL HEADER, with the 3381 * fields enclosed by brackets "[]" replaced with your own identifying 3382 * information: Portions Copyright [yyyy] [name of copyright owner] 3383 * 3384 * CDDL HEADER END 3385 */ 3386 /* 3387 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3388 * 3389 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3390 * Use is subject to license terms. 3391 */ 3392 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 3393 # 65 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3394 /* 3395 * Strictly conforming ANSI C environments prior to the 1999 3396 * revision of the C Standard (ISO/IEC 9899:1999) do not have 3397 * the long long data type. 3398 */ 3399 3400 typedef long long longlong_t; 3401 typedef unsigned long long u_longlong_t; 3402 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3403 /* 3404 * These types (t_{u}scalar_t) exist because the XTI/TPI/DLPI standards had 3405 * to use them instead of int32_t and uint32_t because DEC had 3406 * shipped 64-bit wide. 3407 */ 3408 3409 3410 3411 3412 typedef long t_scalar_t; /* historical versions */ 3413 typedef unsigned long t_uscalar_t; 3414 3415 3416 /* 3417 * POSIX Extensions 3418 */ 3419 typedef unsigned char uchar_t; 3420 typedef unsigned short ushort_t; 3421 typedef unsigned int uint_t; 3422 typedef unsigned long ulong_t; 3423 3424 typedef char *caddr_t; /* ?<core address> type */ 3425 typedef long daddr_t; /* <disk address> type */ 3426 typedef short cnt_t; /* ?<count> type */ 3427 3428 3429 3430 3431 3432 3433 typedef int ptrdiff_t; /* (historical version) */ 3434 3435 3436 3437 /* 3438 * VM-related types 3439 */ 3440 typedef ulong_t pfn_t; /* page frame number */ 3441 typedef ulong_t pgcnt_t; /* number of pages */ 3442 typedef long spgcnt_t; /* signed number of pages */ 3443 3444 typedef uchar_t use_t; /* use count for swap. */ 3445 typedef short sysid_t; 3446 typedef short index_t; 3447 typedef void *timeout_id_t; /* opaque handle from timeout(9F) */ 3448 typedef void *bufcall_id_t; /* opaque handle from bufcall(9F) */ 3449 3450 /* 3451 * The size of off_t and related types depends on the setting of 3452 * _FILE_OFFSET_BITS. (Note that other system headers define other types 3453 * related to those defined here.) 3454 * 3455 * If _LARGEFILE64_SOURCE is defined, variants of these types that are 3456 * explicitly 64 bits wide become available. 3457 */ 3458 # 165 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3459 typedef u_longlong_t ino_t; /* expanded inode type */ 3460 typedef longlong_t blkcnt_t; /* count of file blocks */ 3461 typedef u_longlong_t fsblkcnt_t; /* count of file system blocks */ 3462 typedef u_longlong_t fsfilcnt_t; /* count of files */ 3463 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3464 typedef u_longlong_t ino64_t; /* expanded inode type */ 3465 typedef longlong_t blkcnt64_t; /* count of file blocks */ 3466 typedef u_longlong_t fsblkcnt64_t; /* count of file system blocks */ 3467 typedef u_longlong_t fsfilcnt64_t; /* count of files */ 3468 3469 3470 3471 3472 3473 3474 typedef long blksize_t; /* used for block sizes */ 3475 3476 3477 3478 3479 3480 typedef enum { B_FALSE, B_TRUE } boolean_t; 3481 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3482 /* 3483 * The {u,}pad64_t types can be used in structures such that those structures 3484 * may be accessed by code produced by compilation environments which don't 3485 * support a 64 bit integral datatype. The intention is not to allow 3486 * use of these fields in such environments, but to maintain the alignment 3487 * and offsets of the structure. 3488 * 3489 * Similar comments for {u,}pad128_t. 3490 * 3491 * Note that these types do NOT generate any stronger alignment constraints 3492 * than those available in the underlying ABI. See <sys/isa_defs.h> 3493 */ 3494 3495 typedef int64_t pad64_t; 3496 typedef uint64_t upad64_t; 3497 # 232 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3498 typedef union { 3499 long double _q; 3500 int32_t _l[4]; 3501 } pad128_t; 3502 3503 typedef union { 3504 long double _q; 3505 uint32_t _l[4]; 3506 } upad128_t; 3507 3508 typedef longlong_t offset_t; 3509 typedef u_longlong_t u_offset_t; 3510 typedef u_longlong_t len_t; 3511 typedef u_longlong_t diskaddr_t; 3512 3513 3514 3515 3516 /* 3517 * Definitions remaining from previous partial support for 64-bit file 3518 * offsets. This partial support for devices greater than 2gb requires 3519 * compiler support for long long. 3520 */ 3521 3522 typedef union { 3523 offset_t _f; /* Full 64 bit offset value */ 3524 struct { 3525 int32_t _l; /* lower 32 bits of offset value */ 3526 int32_t _u; /* upper 32 bits of offset value */ 3527 } _p; 3528 } lloff_t; 3529 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3530 typedef union { 3531 longlong_t _f; /* Full 64 bit disk address value */ 3532 struct { 3533 int32_t _l; /* lower 32 bits of disk address value */ 3534 int32_t _u; /* upper 32 bits of disk address value */ 3535 } _p; 3536 } lldaddr_t; 3537 # 295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3538 typedef uint_t k_fltset_t; /* kernel fault set type */ 3539 3540 /* 3541 * The following type is for various kinds of identifiers. The 3542 * actual type must be the same for all since some system calls 3543 * (such as sigsend) take arguments that may be any of these 3544 * types. The enumeration type idtype_t defined in sys/procset.h 3545 * is used to indicate what type of id is being specified -- 3546 * a process id, process group id, session id, scheduling class id, 3547 * user id, group id, project id, task id or zone id. 3548 */ 3549 3550 3551 3552 typedef long id_t; /* (historical version) */ 3553 3554 3555 typedef id_t lgrp_id_t; /* lgroup ID */ 3556 3557 /* 3558 * Type useconds_t is an unsigned integral type capable of storing 3559 * values at least in the range of zero to 1,000,000. 3560 */ 3561 typedef uint_t useconds_t; /* Time, in microseconds */ 3562 3563 3564 3565 typedef long suseconds_t; /* signed # of microseconds */ 3566 3567 3568 /* 3569 * Typedefs for dev_t components. 3570 */ 3571 3572 3573 3574 3575 typedef ulong_t major_t; /* (historical version) */ 3576 typedef ulong_t minor_t; /* (historical version) */ 3577 3578 3579 /* 3580 * The data type of a thread priority. 3581 */ 3582 typedef short pri_t; 3583 3584 /* 3585 * The data type for a CPU flags field. (Can be extended to larger unsigned 3586 * types, if needed, limited by ability to update atomically.) 3587 */ 3588 typedef ushort_t cpu_flag_t; 3589 3590 /* 3591 * For compatibility reasons the following typedefs (prefixed o_) 3592 * can't grow regardless of the EFT definition. Although, 3593 * applications should not explicitly use these typedefs 3594 * they may be included via a system header definition. 3595 * WARNING: These typedefs may be removed in a future 3596 * release. 3597 * ex. the definitions in s5inode.h (now obsoleted) 3598 * remained small to preserve compatibility 3599 * in the S5 file system type. 3600 */ 3601 typedef ushort_t o_mode_t; /* old file attribute type */ 3602 typedef short o_dev_t; /* old device type */ 3603 typedef ushort_t o_uid_t; /* old UID type */ 3604 typedef o_uid_t o_gid_t; /* old GID type */ 3605 typedef short o_nlink_t; /* old file link type */ 3606 typedef short o_pid_t; /* old process id type */ 3607 typedef ushort_t o_ino_t; /* old inode type */ 3608 3609 3610 /* 3611 * POSIX and XOPEN Declarations 3612 */ 3613 typedef int key_t; /* IPC key type */ 3614 3615 3616 3617 typedef ulong_t mode_t; /* (historical version) */ 3618 3619 3620 3621 3622 3623 3624 3625 typedef uid_t gid_t; /* GID type */ 3626 3627 typedef uint32_t datalink_id_t; 3628 typedef uint32_t vrid_t; 3629 3630 typedef id_t taskid_t; 3631 typedef id_t projid_t; 3632 typedef id_t poolid_t; 3633 typedef id_t zoneid_t; 3634 typedef id_t ctid_t; 3635 3636 /* 3637 * POSIX definitions are same as defined in thread.h and synch.h. 3638 * Any changes made to here should be reflected in corresponding 3639 * files as described in comments. 3640 */ 3641 typedef uint_t pthread_t; /* = thread_t in thread.h */ 3642 typedef uint_t pthread_key_t; /* = thread_key_t in thread.h */ 3643 3644 /* "Magic numbers" tagging synchronization object types */ 3645 3646 3647 3648 3649 3650 typedef struct _pthread_mutex { /* = mutex_t in synch.h */ 3651 struct { 3652 uint16_t __pthread_mutex_flag1; 3653 uint8_t __pthread_mutex_flag2; 3654 uint8_t __pthread_mutex_ceiling; 3655 uint16_t __pthread_mutex_type; 3656 uint16_t __pthread_mutex_magic; 3657 } __pthread_mutex_flags; 3658 union { 3659 struct { 3660 uint8_t __pthread_mutex_pad[8]; 3661 } __pthread_mutex_lock64; 3662 struct { 3663 uint32_t __pthread_ownerpid; 3664 uint32_t __pthread_lockword; 3665 } __pthread_mutex_lock32; 3666 upad64_t __pthread_mutex_owner64; 3667 } __pthread_mutex_lock; 3668 upad64_t __pthread_mutex_data; 3669 } pthread_mutex_t; 3670 3671 typedef struct _pthread_cond { /* = cond_t in synch.h */ 3672 struct { 3673 uint8_t __pthread_cond_flag[4]; 3674 uint16_t __pthread_cond_type; 3675 uint16_t __pthread_cond_magic; 3676 } __pthread_cond_flags; 3677 upad64_t __pthread_cond_data; 3678 } pthread_cond_t; 3679 3680 /* 3681 * UNIX 98 Extension 3682 */ 3683 typedef struct _pthread_rwlock { /* = rwlock_t in synch.h */ 3684 int32_t __pthread_rwlock_readers; 3685 uint16_t __pthread_rwlock_type; 3686 uint16_t __pthread_rwlock_magic; 3687 pthread_mutex_t __pthread_rwlock_mutex; 3688 pthread_cond_t __pthread_rwlock_readercv; 3689 pthread_cond_t __pthread_rwlock_writercv; 3690 } pthread_rwlock_t; 3691 3692 /* 3693 * SUSV3 3694 */ 3695 typedef struct { 3696 uint32_t __pthread_barrier_count; 3697 uint32_t __pthread_barrier_current; 3698 upad64_t __pthread_barrier_cycle; 3699 upad64_t __pthread_barrier_reserved; 3700 pthread_mutex_t __pthread_barrier_lock; 3701 pthread_cond_t __pthread_barrier_cond; 3702 } pthread_barrier_t; 3703 3704 typedef pthread_mutex_t pthread_spinlock_t; 3705 3706 /* 3707 * attributes for threads, dynamically allocated by library 3708 */ 3709 typedef struct _pthread_attr { 3710 void *__pthread_attrp; 3711 } pthread_attr_t; 3712 3713 /* 3714 * attributes for mutex, dynamically allocated by library 3715 */ 3716 typedef struct _pthread_mutexattr { 3717 void *__pthread_mutexattrp; 3718 } pthread_mutexattr_t; 3719 3720 /* 3721 * attributes for cond, dynamically allocated by library 3722 */ 3723 typedef struct _pthread_condattr { 3724 void *__pthread_condattrp; 3725 } pthread_condattr_t; 3726 3727 /* 3728 * pthread_once 3729 */ 3730 typedef struct _once { 3731 upad64_t __pthread_once_pad[4]; 3732 } pthread_once_t; 3733 3734 /* 3735 * UNIX 98 Extensions 3736 * attributes for rwlock, dynamically allocated by library 3737 */ 3738 typedef struct _pthread_rwlockattr { 3739 void *__pthread_rwlockattrp; 3740 } pthread_rwlockattr_t; 3741 3742 /* 3743 * SUSV3 3744 * attributes for pthread_barrier_t, dynamically allocated by library 3745 */ 3746 typedef struct { 3747 void *__pthread_barrierattrp; 3748 } pthread_barrierattr_t; 3749 3750 typedef ulong_t dev_t; /* expanded device type */ 3751 3752 3753 3754 3755 3756 typedef ulong_t nlink_t; /* (historical version) */ 3757 typedef long pid_t; /* (historical version) */ 3758 # 537 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3759 typedef long time_t; /* time of day in seconds */ 3760 3761 3762 3763 3764 typedef long clock_t; /* relative time in a specified resolution */ 3765 3766 3767 3768 3769 typedef int clockid_t; /* clock identifier type */ 3770 3771 3772 3773 3774 typedef int timer_t; /* timer identifier type */ 3775 3776 3777 3778 3779 /* BEGIN CSTYLED */ 3780 typedef unsigned char unchar; 3781 typedef unsigned short ushort; 3782 typedef unsigned int uint; 3783 typedef unsigned long ulong; 3784 /* END CSTYLED */ 3785 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3786 /* 3787 * The following is the value of type id_t to use to indicate the 3788 * caller's current id. See procset.h for the type idtype_t 3789 * which defines which kind of id is being specified. 3790 */ 3791 # 620 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 3792 /* 3793 * The following value of type pfn_t is used to indicate 3794 * invalid page frame number. 3795 */ 3796 3797 3798 3799 /* BEGIN CSTYLED */ 3800 typedef unsigned char u_char; 3801 typedef unsigned short u_short; 3802 typedef unsigned int u_int; 3803 typedef unsigned long u_long; 3804 typedef struct _quad { int val[2]; } quad_t; /* used by UFS */ 3805 typedef quad_t quad; /* used by UFS */ 3806 /* END CSTYLED */ 3807 3808 /* 3809 * Nested include for BSD/sockets source compatibility. 3810 * (The select macros used to be defined here). 3811 */ 3812 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1 3813 /* 3814 * CDDL HEADER START 3815 * 3816 * The contents of this file are subject to the terms of the 3817 * Common Development and Distribution License (the "License"). 3818 * You may not use this file except in compliance with the License. 3819 * 3820 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3821 * or http://www.opensolaris.org/os/licensing. 3822 * See the License for the specific language governing permissions 3823 * and limitations under the License. 3824 * 3825 * When distributing Covered Code, include this CDDL HEADER in each 3826 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3827 * If applicable, add the following below this CDDL HEADER, with the 3828 * fields enclosed by brackets "[]" replaced with your own identifying 3829 * information: Portions Copyright [yyyy] [name of copyright owner] 3830 * 3831 * CDDL HEADER END 3832 */ 3833 3834 /* 3835 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 3836 * 3837 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 3838 * 3839 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 3840 * Use is subject to license terms. 3841 */ 3842 3843 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 3844 /* All Rights Reserved */ 3845 3846 /* 3847 * University Copyright- Copyright (c) 1982, 1986, 1988 3848 * The Regents of the University of California 3849 * All Rights Reserved 3850 * 3851 * University Acknowledgment- Portions of this document are derived from 3852 * software developed by the University of California, Berkeley, and its 3853 * contributors. 3854 */ 3855 3856 3857 3858 3859 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3860 /* 3861 * CDDL HEADER START 3862 * 3863 * The contents of this file are subject to the terms of the 3864 * Common Development and Distribution License (the "License"). 3865 * You may not use this file except in compliance with the License. 3866 * 3867 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3868 * or http://www.opensolaris.org/os/licensing. 3869 * See the License for the specific language governing permissions 3870 * and limitations under the License. 3871 * 3872 * When distributing Covered Code, include this CDDL HEADER in each 3873 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3874 * If applicable, add the following below this CDDL HEADER, with the 3875 * fields enclosed by brackets "[]" replaced with your own identifying 3876 * information: Portions Copyright [yyyy] [name of copyright owner] 3877 * 3878 * CDDL HEADER END 3879 */ 3880 3881 /* 3882 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3883 * Copyright 2016 Joyent, Inc. 3884 * 3885 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3886 * Use is subject to license terms. 3887 */ 3888 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 3889 3890 3891 3892 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 3893 /* 3894 * CDDL HEADER START 3895 * 3896 * The contents of this file are subject to the terms of the 3897 * Common Development and Distribution License, Version 1.0 only 3898 * (the "License"). You may not use this file except in compliance 3899 * with the License. 3900 * 3901 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3902 * or http://www.opensolaris.org/os/licensing. 3903 * See the License for the specific language governing permissions 3904 * and limitations under the License. 3905 * 3906 * When distributing Covered Code, include this CDDL HEADER in each 3907 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3908 * If applicable, add the following below this CDDL HEADER, with the 3909 * fields enclosed by brackets "[]" replaced with your own identifying 3910 * information: Portions Copyright [yyyy] [name of copyright owner] 3911 * 3912 * CDDL HEADER END 3913 */ 3914 /* 3915 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 3916 * Use is subject to license terms. 3917 */ 3918 3919 /* 3920 * Implementation-private. This header should not be included 3921 * directly by an application. The application should instead 3922 * include <time.h> which includes this header conditionally 3923 * depending on which feature test macros are defined. By default, 3924 * this header is included by <time.h>. X/Open and POSIX 3925 * standards requirements result in this header being included 3926 * by <time.h> only under a restricted set of conditions. 3927 */ 3928 3929 3930 3931 3932 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3933 /* 3934 * CDDL HEADER START 3935 * 3936 * The contents of this file are subject to the terms of the 3937 * Common Development and Distribution License (the "License"). 3938 * You may not use this file except in compliance with the License. 3939 * 3940 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 3941 * or http://www.opensolaris.org/os/licensing. 3942 * See the License for the specific language governing permissions 3943 * and limitations under the License. 3944 * 3945 * When distributing Covered Code, include this CDDL HEADER in each 3946 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 3947 * If applicable, add the following below this CDDL HEADER, with the 3948 * fields enclosed by brackets "[]" replaced with your own identifying 3949 * information: Portions Copyright [yyyy] [name of copyright owner] 3950 * 3951 * CDDL HEADER END 3952 */ 3953 3954 /* 3955 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 3956 * Copyright 2016 Joyent, Inc. 3957 * 3958 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3959 * Use is subject to license terms. 3960 */ 3961 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 2 3962 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 3963 /* 3964 * Time expressed in seconds and nanoseconds 3965 */ 3966 3967 typedef struct timespec { /* definition per POSIX.4 */ 3968 time_t tv_sec; /* seconds */ 3969 long tv_nsec; /* and nanoseconds */ 3970 } timespec_t; 3971 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 3972 typedef struct timespec timestruc_t; /* definition per SVr4 */ 3973 3974 /* 3975 * The following has been left in for backward compatibility. Portable 3976 * applications should not use the structure name timestruc. 3977 */ 3978 3979 3980 3981 3982 3983 /* 3984 * Timer specification 3985 */ 3986 typedef struct itimerspec { /* definition per POSIX.4 */ 3987 struct timespec it_interval; /* timer period */ 3988 struct timespec it_value; /* timer expiration */ 3989 } itimerspec_t; 3990 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 3991 3992 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 3993 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 3994 /* All Rights Reserved */ 3995 3996 3997 /* 3998 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 3999 * All rights reserved. The Berkeley software License Agreement 4000 * specifies the terms and conditions for redistribution. 4001 */ 4002 4003 /* 4004 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4005 * 4006 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4007 * Use is subject to license terms. 4008 * 4009 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4010 */ 4011 4012 /* 4013 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 4014 */ 4015 4016 4017 4018 4019 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4020 /* 4021 * CDDL HEADER START 4022 * 4023 * The contents of this file are subject to the terms of the 4024 * Common Development and Distribution License (the "License"). 4025 * You may not use this file except in compliance with the License. 4026 * 4027 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4028 * or http://www.opensolaris.org/os/licensing. 4029 * See the License for the specific language governing permissions 4030 * and limitations under the License. 4031 * 4032 * When distributing Covered Code, include this CDDL HEADER in each 4033 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4034 * If applicable, add the following below this CDDL HEADER, with the 4035 * fields enclosed by brackets "[]" replaced with your own identifying 4036 * information: Portions Copyright [yyyy] [name of copyright owner] 4037 * 4038 * CDDL HEADER END 4039 */ 4040 4041 /* 4042 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4043 * Copyright 2016 Joyent, Inc. 4044 * 4045 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4046 * Use is subject to license terms. 4047 */ 4048 # 28 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4049 4050 /* 4051 * Structure returned by gettimeofday(2) system call, 4052 * and used in other calls. 4053 */ 4054 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4055 struct timeval { 4056 time_t tv_sec; /* seconds */ 4057 suseconds_t tv_usec; /* and microseconds */ 4058 }; 4059 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4060 struct timezone { 4061 int tz_minuteswest; /* minutes west of Greenwich */ 4062 int tz_dsttime; /* type of dst correction */ 4063 }; 4064 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4065 /* 4066 * Needed for longlong_t type. Placement of this due to <sys/types.h> 4067 * including <sys/select.h> which relies on the presense of the itimerval 4068 * structure. 4069 */ 4070 4071 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 4072 /* 4073 * CDDL HEADER START 4074 * 4075 * The contents of this file are subject to the terms of the 4076 * Common Development and Distribution License (the "License"). 4077 * You may not use this file except in compliance with the License. 4078 * 4079 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4080 * or http://www.opensolaris.org/os/licensing. 4081 * See the License for the specific language governing permissions 4082 * and limitations under the License. 4083 * 4084 * When distributing Covered Code, include this CDDL HEADER in each 4085 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4086 * If applicable, add the following below this CDDL HEADER, with the 4087 * fields enclosed by brackets "[]" replaced with your own identifying 4088 * information: Portions Copyright [yyyy] [name of copyright owner] 4089 * 4090 * CDDL HEADER END 4091 */ 4092 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4093 /* All Rights Reserved */ 4094 4095 4096 /* 4097 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4098 * Use is subject to license terms. 4099 * 4100 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4101 * Copyright 2016 Joyent, Inc. 4102 */ 4103 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4104 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4105 /* 4106 * Operations on timevals. 4107 */ 4108 # 193 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4109 /* 4110 * Names of the interval timers, and structure 4111 * defining a timer setting. 4112 */ 4113 4114 4115 4116 /* time and when system is running on */ 4117 /* behalf of the process. */ 4118 4119 /* time profiling of multithreaded */ 4120 /* programs. */ 4121 4122 4123 struct itimerval { 4124 struct timeval it_interval; /* timer interval */ 4125 struct timeval it_value; /* current value */ 4126 }; 4127 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4128 /* 4129 * Definitions for commonly used resolutions. 4130 */ 4131 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4132 /* 4133 * Time expressed as a 64-bit nanosecond counter. 4134 */ 4135 typedef longlong_t hrtime_t; 4136 # 386 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4137 int adjtime(struct timeval *, struct timeval *); 4138 4139 4140 4141 4142 int futimesat(int, const char *, const struct timeval *); 4143 4144 4145 4146 4147 4148 int getitimer(int, struct itimerval *); 4149 int utimes(const char *, const struct timeval *); 4150 4151 4152 4153 4154 int setitimer(int, struct itimerval *, 4155 struct itimerval *); 4156 4157 4158 4159 4160 /* 4161 * gettimeofday() and settimeofday() were included in SVr4 due to their 4162 * common use in BSD based applications. They were to be included exactly 4163 * as in BSD, with two parameters. However, AT&T/USL noted that the second 4164 * parameter was unused and deleted it, thereby making a routine included 4165 * for compatibility, incompatible. 4166 * 4167 * XSH4.2 (spec 1170) defines gettimeofday and settimeofday to have two 4168 * parameters. 4169 * 4170 * This has caused general disagreement in the application community as to 4171 * the syntax of these routines. Solaris defaults to the XSH4.2 definition. 4172 * The flag _SVID_GETTOD may be used to force the SVID version. 4173 */ 4174 4175 4176 4177 4178 4179 int settimeofday(struct timeval *, void *); 4180 4181 hrtime_t gethrtime(void); 4182 hrtime_t gethrvtime(void); 4183 # 441 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 4184 int gettimeofday(struct timeval *, void *); 4185 4186 4187 4188 4189 /* 4190 * The inclusion of <time.h> is historical and was added for 4191 * backward compatibility in delta 1.2 when a number of definitions 4192 * were moved out of <sys/time.h>. More recently, the timespec and 4193 * itimerspec structure definitions, along with the _CLOCK_*, CLOCK_*, 4194 * _TIMER_*, and TIMER_* symbols were moved to <sys/time_impl.h>, 4195 * which is now included by <time.h>. This change was due to POSIX 4196 * 1003.1b-1993 and X/Open UNIX 98 requirements. For non-POSIX and 4197 * non-X/Open applications, including this header will still make 4198 * visible these definitions. 4199 */ 4200 4201 4202 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 4203 /* 4204 * CDDL HEADER START 4205 * 4206 * The contents of this file are subject to the terms of the 4207 * Common Development and Distribution License (the "License"). 4208 * You may not use this file except in compliance with the License. 4209 * 4210 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4211 * or http://www.opensolaris.org/os/licensing. 4212 * See the License for the specific language governing permissions 4213 * and limitations under the License. 4214 * 4215 * When distributing Covered Code, include this CDDL HEADER in each 4216 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4217 * If applicable, add the following below this CDDL HEADER, with the 4218 * fields enclosed by brackets "[]" replaced with your own identifying 4219 * information: Portions Copyright [yyyy] [name of copyright owner] 4220 * 4221 * CDDL HEADER END 4222 */ 4223 /* Copyright (c) 1988 AT&T */ 4224 /* All Rights Reserved */ 4225 4226 4227 /* 4228 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4229 * 4230 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 4231 * Use is subject to license terms. 4232 */ 4233 /* 4234 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 4235 * Copyright 2016 Joyent, Inc. 4236 */ 4237 4238 4239 4240 4241 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4242 /* 4243 * CDDL HEADER START 4244 * 4245 * The contents of this file are subject to the terms of the 4246 * Common Development and Distribution License (the "License"). 4247 * You may not use this file except in compliance with the License. 4248 * 4249 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4250 * or http://www.opensolaris.org/os/licensing. 4251 * See the License for the specific language governing permissions 4252 * and limitations under the License. 4253 * 4254 * When distributing Covered Code, include this CDDL HEADER in each 4255 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4256 * If applicable, add the following below this CDDL HEADER, with the 4257 * fields enclosed by brackets "[]" replaced with your own identifying 4258 * information: Portions Copyright [yyyy] [name of copyright owner] 4259 * 4260 * CDDL HEADER END 4261 */ 4262 4263 /* 4264 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4265 * Copyright 2016 Joyent, Inc. 4266 * 4267 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4268 * Use is subject to license terms. 4269 */ 4270 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4271 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 1 4272 /* 4273 * CDDL HEADER START 4274 * 4275 * The contents of this file are subject to the terms of the 4276 * Common Development and Distribution License, Version 1.0 only 4277 * (the "License"). You may not use this file except in compliance 4278 * with the License. 4279 * 4280 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4281 * or http://www.opensolaris.org/os/licensing. 4282 * See the License for the specific language governing permissions 4283 * and limitations under the License. 4284 * 4285 * When distributing Covered Code, include this CDDL HEADER in each 4286 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4287 * If applicable, add the following below this CDDL HEADER, with the 4288 * fields enclosed by brackets "[]" replaced with your own identifying 4289 * information: Portions Copyright [yyyy] [name of copyright owner] 4290 * 4291 * CDDL HEADER END 4292 */ 4293 /* Copyright (c) 1988 AT&T */ 4294 /* All Rights Reserved */ 4295 4296 /* 4297 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4298 * Copyright 2014 PALO, Richard. 4299 * 4300 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 4301 * Use is subject to license terms. 4302 */ 4303 4304 /* 4305 * An application should not include this header directly. Instead it 4306 * should be included only through the inclusion of other Sun headers. 4307 * 4308 * The contents of this header is limited to identifiers specified in the 4309 * C Standard. Any new identifiers specified in future amendments to the 4310 * C Standard must be placed in this header. If these new identifiers 4311 * are required to also be in the C++ Standard "std" namespace, then for 4312 * anything other than macro definitions, corresponding "using" directives 4313 * must also be added to <time.h.h>. 4314 */ 4315 4316 4317 4318 4319 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4320 /* 4321 * CDDL HEADER START 4322 * 4323 * The contents of this file are subject to the terms of the 4324 * Common Development and Distribution License (the "License"). 4325 * You may not use this file except in compliance with the License. 4326 * 4327 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4328 * or http://www.opensolaris.org/os/licensing. 4329 * See the License for the specific language governing permissions 4330 * and limitations under the License. 4331 * 4332 * When distributing Covered Code, include this CDDL HEADER in each 4333 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4334 * If applicable, add the following below this CDDL HEADER, with the 4335 * fields enclosed by brackets "[]" replaced with your own identifying 4336 * information: Portions Copyright [yyyy] [name of copyright owner] 4337 * 4338 * CDDL HEADER END 4339 */ 4340 4341 /* 4342 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4343 * Copyright 2016 Joyent, Inc. 4344 * 4345 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4346 * Use is subject to license terms. 4347 */ 4348 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2 4349 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 4350 /* 4351 * This file and its contents are supplied under the terms of the 4352 * Common Development and Distribution License ("CDDL"), version 1.0. 4353 * You may only use this file in accordance with the terms of version 4354 * 1.0 of the CDDL. 4355 * 4356 * A full copy of the text of the CDDL should have accompanied this 4357 * source. A copy of the CDDL is also available via the Internet at 4358 * http://www.illumos.org/license/CDDL. 4359 */ 4360 4361 /* 4362 * Copyright 2014-2016 PALO, Richard. 4363 */ 4364 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 2 4365 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/time_iso.h" 4366 struct tm { /* see ctime(3) */ 4367 int tm_sec; 4368 int tm_min; 4369 int tm_hour; 4370 int tm_mday; 4371 int tm_mon; 4372 int tm_year; 4373 int tm_wday; 4374 int tm_yday; 4375 int tm_isdst; 4376 }; 4377 4378 4379 extern char *asctime(const struct tm *); 4380 extern clock_t clock(void); 4381 extern char *ctime(const time_t *); 4382 extern double difftime(time_t, time_t); 4383 extern struct tm *gmtime(const time_t *); 4384 extern struct tm *localtime(const time_t *); 4385 extern time_t mktime(struct tm *); 4386 extern time_t time(time_t *); 4387 extern size_t strftime(char *, size_t, const char *, 4388 const struct tm *); 4389 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4390 /* 4391 * C11 requires sys/time_impl.h for the definition of the struct timespec. 4392 */ 4393 4394 4395 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 4396 /* 4397 * CDDL HEADER START 4398 * 4399 * The contents of this file are subject to the terms of the 4400 * Common Development and Distribution License (the "License"). 4401 * You may not use this file except in compliance with the License. 4402 * 4403 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4404 * or http://www.opensolaris.org/os/licensing. 4405 * See the License for the specific language governing permissions 4406 * and limitations under the License. 4407 * 4408 * When distributing Covered Code, include this CDDL HEADER in each 4409 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4410 * If applicable, add the following below this CDDL HEADER, with the 4411 * fields enclosed by brackets "[]" replaced with your own identifying 4412 * information: Portions Copyright [yyyy] [name of copyright owner] 4413 * 4414 * CDDL HEADER END 4415 */ 4416 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4417 /* All Rights Reserved */ 4418 4419 4420 /* 4421 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4422 * Use is subject to license terms. 4423 * 4424 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4425 * Copyright 2016 Joyent, Inc. 4426 */ 4427 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4428 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 4429 /* 4430 * CDDL HEADER START 4431 * 4432 * The contents of this file are subject to the terms of the 4433 * Common Development and Distribution License, Version 1.0 only 4434 * (the "License"). You may not use this file except in compliance 4435 * with the License. 4436 * 4437 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4438 * or http://www.opensolaris.org/os/licensing. 4439 * See the License for the specific language governing permissions 4440 * and limitations under the License. 4441 * 4442 * When distributing Covered Code, include this CDDL HEADER in each 4443 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4444 * If applicable, add the following below this CDDL HEADER, with the 4445 * fields enclosed by brackets "[]" replaced with your own identifying 4446 * information: Portions Copyright [yyyy] [name of copyright owner] 4447 * 4448 * CDDL HEADER END 4449 */ 4450 /* 4451 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 4452 * Use is subject to license terms. 4453 */ 4454 4455 /* 4456 * Implementation-private. This header should not be included 4457 * directly by an application. The application should instead 4458 * include <time.h> which includes this header conditionally 4459 * depending on which feature test macros are defined. By default, 4460 * this header is included by <time.h>. X/Open and POSIX 4461 * standards requirements result in this header being included 4462 * by <time.h> only under a restricted set of conditions. 4463 */ 4464 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 2 4465 4466 4467 /* 4468 * Allow global visibility for symbols defined in 4469 * C++ "std" namespace in <iso/time_iso.h>. 4470 */ 4471 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 4472 extern struct tm *gmtime_r(const time_t *, 4473 struct tm *); 4474 extern struct tm *localtime_r(const time_t *, 4475 struct tm *); 4476 # 105 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 4477 extern char *strptime(const char *, const char *, 4478 struct tm *); 4479 4480 4481 4482 4483 4484 /* 4485 * Neither X/Open nor POSIX allow the inclusion of <signal.h> for the 4486 * definition of the sigevent structure. Both require the inclusion 4487 * of <signal.h> and <time.h> when using the timer_create() function. 4488 * However, X/Open also specifies that the sigevent structure be defined 4489 * in <time.h> as described in the header <signal.h>. This prevents 4490 * compiler warnings for applications that only include <time.h> and not 4491 * also <signal.h>. The sigval union and the sigevent structure is 4492 * therefore defined both here and in <sys/siginfo.h> which gets included 4493 * via inclusion of <signal.h>. 4494 */ 4495 4496 4497 union sigval { 4498 int sival_int; /* integer value */ 4499 void *sival_ptr; /* pointer value */ 4500 }; 4501 4502 4503 4504 4505 struct sigevent { 4506 int sigev_notify; /* notification mode */ 4507 int sigev_signo; /* signal number */ 4508 union sigval sigev_value; /* signal value */ 4509 void (*sigev_notify_function)(union sigval); 4510 pthread_attr_t *sigev_notify_attributes; 4511 int __sigev_pad2; 4512 }; 4513 4514 4515 extern int clock_getres(clockid_t, struct timespec *); 4516 extern int clock_gettime(clockid_t, struct timespec *); 4517 extern int clock_settime(clockid_t, const struct timespec *); 4518 extern int timer_create(clockid_t, struct sigevent *, 4519 timer_t *); 4520 extern int timer_delete(timer_t); 4521 extern int timer_getoverrun(timer_t); 4522 extern int timer_gettime(timer_t, struct itimerspec *); 4523 extern int timer_settime(timer_t, int, const struct itimerspec *, 4524 struct itimerspec *); 4525 4526 extern int nanosleep(const struct timespec *, struct timespec *); 4527 extern int clock_nanosleep(clockid_t, int, 4528 const struct timespec *, struct timespec *); 4529 4530 4531 4532 4533 4534 4535 extern void tzset(void); 4536 extern char *tzname[2]; 4537 4538 /* CLK_TCK marked as LEGACY in SUSv2 and removed in SUSv3 */ 4539 4540 4541 extern long _sysconf(int); /* System Private interface to sysconf() */ 4542 4543 /* 3 is _SC_CLK_TCK */ 4544 4545 4546 4547 4548 4549 extern long timezone; 4550 extern int daylight; 4551 4552 4553 4554 4555 4556 4557 extern time_t timegm(struct tm *); 4558 extern int cftime(char *, char *, const time_t *); 4559 extern int ascftime(char *, const char *, const struct tm *); 4560 extern long altzone; 4561 4562 4563 4564 4565 extern struct tm *getdate(const char *); 4566 4567 4568 4569 4570 4571 extern int getdate_err; 4572 4573 4574 4575 /* 4576 * ctime_r() & asctime_r() prototypes are defined here. 4577 */ 4578 4579 /* 4580 * Previous releases of Solaris, starting at 2.3, provided definitions of 4581 * various functions as specified in POSIX.1c, Draft 6. For some of these 4582 * functions, the final POSIX 1003.1c standard had a different number of 4583 * arguments and return values. 4584 * 4585 * The following segment of this header provides support for the standard 4586 * interfaces while supporting applications written under earlier 4587 * releases. The application defines appropriate values of the feature 4588 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate 4589 * whether it was written to expect the Draft 6 or standard versions of 4590 * these interfaces, before including this header. This header then 4591 * provides a mapping from the source version of the interface to an 4592 * appropriate binary interface. Such mappings permit an application 4593 * to be built from libraries and objects which have mixed expectations 4594 * of the definitions of these functions. 4595 * 4596 * For applications using the Draft 6 definitions, the binary symbol is the 4597 * same as the source symbol, and no explicit mapping is needed. For the 4598 * standard interface, the function func() is mapped to the binary symbol 4599 * _posix_func(). The preferred mechanism for the remapping is a compiler 4600 * #pragma. If the compiler does not provide such a #pragma, the header file 4601 * defines a static function func() which calls the _posix_func() version; 4602 * this has to be done instead of #define since POSIX specifies that an 4603 * application can #undef the symbol and still be bound to the correct 4604 * implementation. Unfortunately, the statics confuse lint so we fallback to 4605 * #define in that case. 4606 * 4607 * NOTE: Support for the Draft 6 definitions is provided for compatibility 4608 * only. New applications/libraries should use the standard definitions. 4609 */ 4610 # 280 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 4611 extern char *asctime_r(const struct tm *, char *, int); 4612 extern char *ctime_r(const time_t *, char *, int); 4613 # 292 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 4614 typedef struct _locale *locale_t; 4615 4616 4617 extern size_t strftime_l(char *, size_t, 4618 const char *, const struct tm *, locale_t); 4619 4620 4621 4622 4623 4624 /* 4625 * Note, the C11 standard requires that all the various base values that are 4626 * passed into timespec_get() be non-zero. Hence why TIME_UTC starts at one. 4627 */ 4628 4629 4630 extern int timespec_get(struct timespec *, int); 4631 # 460 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4632 4633 4634 /* 4635 * The inclusion of <sys/select.h> is needed for the FD_CLR, 4636 * FD_ISSET, FD_SET, and FD_SETSIZE macros as well as the 4637 * select() prototype defined in the XOpen specifications 4638 * beginning with XSH4v2. Placement required after definition 4639 * for itimerval. 4640 */ 4641 4642 4643 4644 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 1 4645 /* 4646 * CDDL HEADER START 4647 * 4648 * The contents of this file are subject to the terms of the 4649 * Common Development and Distribution License (the "License"). 4650 * You may not use this file except in compliance with the License. 4651 * 4652 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4653 * or http://www.opensolaris.org/os/licensing. 4654 * See the License for the specific language governing permissions 4655 * and limitations under the License. 4656 * 4657 * When distributing Covered Code, include this CDDL HEADER in each 4658 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4659 * If applicable, add the following below this CDDL HEADER, with the 4660 * fields enclosed by brackets "[]" replaced with your own identifying 4661 * information: Portions Copyright [yyyy] [name of copyright owner] 4662 * 4663 * CDDL HEADER END 4664 */ 4665 4666 /* 4667 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 4668 * 4669 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 4670 * 4671 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 4672 * Use is subject to license terms. 4673 */ 4674 4675 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 4676 /* All Rights Reserved */ 4677 4678 /* 4679 * University Copyright- Copyright (c) 1982, 1986, 1988 4680 * The Regents of the University of California 4681 * All Rights Reserved 4682 * 4683 * University Acknowledgment- Portions of this document are derived from 4684 * software developed by the University of California, Berkeley, and its 4685 * contributors. 4686 */ 4687 # 473 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 2 4688 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 2 4689 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 4690 /* 4691 * The sigset_t type is defined in <sys/signal.h> and duplicated 4692 * in <sys/ucontext.h> as a result of XPG4v2 requirements. XPG6 4693 * now allows the visibility of signal.h in this header, however 4694 * an order of inclusion problem occurs as a result of inclusion 4695 * of <sys/select.h> in <signal.h> under certain conditions. 4696 * Rather than include <sys/signal.h> here, we've duplicated 4697 * the sigset_t type instead. This type is required for the XPG6 4698 * introduced pselect() function also declared in this header. 4699 */ 4700 4701 4702 typedef struct { /* signal set type */ 4703 unsigned int __sigbits[4]; 4704 } sigset_t; 4705 4706 4707 4708 4709 /* 4710 * Select uses bit masks of file descriptors in longs. 4711 * These macros manipulate such bit fields. 4712 * FD_SETSIZE may be defined by the user, but the default here 4713 * should be >= NOFILE (param.h). 4714 */ 4715 # 108 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 4716 typedef long fd_mask; 4717 4718 typedef long fds_mask; 4719 4720 /* 4721 * The value of _NBBY needs to be consistant with the value 4722 * of NBBY in <sys/param.h>. 4723 */ 4724 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 4725 typedef struct fd_set { 4726 4727 4728 4729 long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))]; 4730 } fd_set; 4731 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/select.h" 4732 extern int select(int, fd_set *, fd_set *, 4733 fd_set *, struct timeval *); 4734 4735 4736 extern int pselect(int, fd_set *, fd_set *, 4737 fd_set *, const struct timespec *, 4738 const sigset_t *); 4739 # 641 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 2 4740 4741 4742 4743 /* 4744 * _VOID was defined to be either void or char but this is not 4745 * required because previous SunOS compilers have accepted the void 4746 * type. However, because many system header and source files use the 4747 * void keyword, the volatile keyword, and ANSI C function prototypes, 4748 * non-ANSI compilers cannot compile the system anyway. The _VOID macro 4749 * should therefore not be used and remains for source compatibility 4750 * only. 4751 */ 4752 /* CSTYLED */ 4753 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 4754 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1 4755 /* 4756 * CDDL HEADER START 4757 * 4758 * The contents of this file are subject to the terms of the 4759 * Common Development and Distribution License (the "License"). 4760 * You may not use this file except in compliance with the License. 4761 * 4762 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4763 * or http://www.opensolaris.org/os/licensing. 4764 * See the License for the specific language governing permissions 4765 * and limitations under the License. 4766 * 4767 * When distributing Covered Code, include this CDDL HEADER in each 4768 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4769 * If applicable, add the following below this CDDL HEADER, with the 4770 * fields enclosed by brackets "[]" replaced with your own identifying 4771 * information: Portions Copyright [yyyy] [name of copyright owner] 4772 * 4773 * CDDL HEADER END 4774 */ 4775 4776 /* 4777 * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 4778 * All Rights Reserved 4779 * 4780 */ 4781 4782 /* 4783 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4784 * Use is subject to license terms. 4785 */ 4786 4787 /* 4788 * WARNING: This is an implementation-specific header, 4789 * its contents are not guaranteed. Applications 4790 * should include <unistd.h> and not this header. 4791 */ 4792 4793 4794 4795 4796 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 4797 /* 4798 * CDDL HEADER START 4799 * 4800 * The contents of this file are subject to the terms of the 4801 * Common Development and Distribution License (the "License"). 4802 * You may not use this file except in compliance with the License. 4803 * 4804 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 4805 * or http://www.opensolaris.org/os/licensing. 4806 * See the License for the specific language governing permissions 4807 * and limitations under the License. 4808 * 4809 * When distributing Covered Code, include this CDDL HEADER in each 4810 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 4811 * If applicable, add the following below this CDDL HEADER, with the 4812 * fields enclosed by brackets "[]" replaced with your own identifying 4813 * information: Portions Copyright [yyyy] [name of copyright owner] 4814 * 4815 * CDDL HEADER END 4816 */ 4817 4818 /* 4819 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 4820 * Copyright 2016 Joyent, Inc. 4821 * 4822 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 4823 * Use is subject to license terms. 4824 */ 4825 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 2 4826 4827 4828 4829 4830 4831 /* command names for confstr */ 4832 4833 4834 4835 /* 4836 * command names for large file configuration information 4837 */ 4838 /* large file compilation environment configuration */ 4839 4840 4841 4842 4843 /* transitional large file interface configuration */ 4844 4845 4846 4847 4848 4849 /* UNIX 98 */ 4850 # 84 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4851 /* UNIX 03 */ 4852 # 103 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4853 /* command names for POSIX sysconf */ 4854 4855 /* POSIX.1 names */ 4856 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4857 /* SVR4 names */ 4858 4859 4860 4861 4862 /* 13 reserved for SVr4-ES/MP _SC_NACLS_MAX */ 4863 4864 4865 4866 4867 /* POSIX.4 names */ 4868 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4869 /* XPG4 names */ 4870 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4871 /* additional XSH4/XCU4 command names for sysconf */ 4872 4873 4874 4875 /* additional XPG4v2 (UNIX 95) command names */ 4876 4877 4878 4879 4880 4881 /* defined for XTI (XNS Issue 5) */ 4882 4883 4884 4885 4886 4887 4888 4889 /* 4890 * Hardware specific items 4891 * Note that not all items are supported on all architectures 4892 */ 4893 # 214 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4894 /* 4895 * POSIX.1c (pthreads) names. These values are defined above 4896 * the sub-500 range. See psarc case 1995/257. 4897 */ 4898 # 235 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4899 /* UNIX 98 */ 4900 # 244 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4901 /* UNIX 03 */ 4902 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4903 /* command names for POSIX pathconf */ 4904 4905 /* POSIX.1 names */ 4906 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4907 /* POSIX.4 names */ 4908 4909 4910 4911 /* UNIX 03 names */ 4912 # 315 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4913 /* UNIX 08 names */ 4914 4915 4916 /* 4917 * Large File Summit names 4918 * 4919 * This value matches the MIPS ABI choice, but leaves a large gap in the 4920 * value space. 4921 */ 4922 4923 4924 /* 4925 * Extended attributes 4926 */ 4927 4928 4929 4930 /* 4931 * If you add a _PC define above 101, you must change _PC_LAST (and truss). 4932 */ 4933 4934 4935 /* 4936 * Case sensitivity values (related to _PC_CASE_BEHAVIOR) 4937 */ 4938 4939 4940 4941 /* 4942 * The value of 0 is returned when 4943 * ACL's are not supported 4944 */ 4945 # 366 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4946 /* 4947 * Marked LEGACY in SUSv2 and removed in SUSv3. Though SUSv3 applications 4948 * should not rely on this value, it has been aligned with the current 4949 * standard to avoid confusion if used. 4950 */ 4951 # 408 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 4952 /* UNIX 03 names */ 4953 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 2 4954 4955 4956 4957 4958 4959 /* Symbolic constants for the "access" routine: */ 4960 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 4961 /* Symbolic constants for the "lseek" routine: */ 4962 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 4963 /* Path names: */ 4964 4965 4966 4967 4968 /* 4969 * compile-time symbolic constants, 4970 * Support does not mean the feature is enabled. 4971 * Use pathconf/sysconf to obtain actual configuration value. 4972 */ 4973 4974 /* Values unchanged in UNIX 03 */ 4975 4976 4977 4978 4979 4980 /* 4981 * POSIX.1b compile-time symbolic constants. 4982 */ 4983 # 134 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 4984 /* 4985 * POSIX.1c compile-time symbolic constants. 4986 */ 4987 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 4988 /* New in UNIX 03 */ 4989 # 167 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 4990 /* 4991 * Support for the POSIX.1 mutex protocol attribute. For realtime applications 4992 * which need mutexes to support priority inheritance/ceiling. 4993 */ 4994 # 187 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 4995 /* 4996 * Large File Summit-related announcement macros. The system supports both 4997 * the additional and transitional Large File Summit interfaces. (The final 4998 * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.) 4999 */ 5000 5001 5002 5003 5004 5005 /* large file compilation environment setup */ 5006 5007 5008 5009 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5010 #pragma redefine_extname ftruncate ftruncate64 5011 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5012 5013 5014 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5015 #pragma redefine_extname lseek lseek64 5016 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5017 5018 5019 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5020 #pragma redefine_extname pread pread64 5021 # 202 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5022 5023 5024 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5025 #pragma redefine_extname pwrite pwrite64 5026 # 203 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5027 5028 5029 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5030 #pragma redefine_extname truncate truncate64 5031 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5032 5033 5034 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5035 #pragma redefine_extname lockf lockf64 5036 # 205 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5037 5038 5039 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5040 #pragma redefine_extname tell tell64 5041 # 206 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5042 # 218 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5043 /* In the LP64 compilation environment, the APIs are already large file */ 5044 # 239 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5045 extern int access(const char *, int); 5046 5047 extern int acct(const char *); 5048 5049 extern unsigned alarm(unsigned); 5050 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5051 5052 5053 extern int brk(void *); 5054 5055 extern int chdir(const char *); 5056 extern int chown(const char *, uid_t, gid_t); 5057 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5058 5059 5060 extern int chroot(const char *); 5061 5062 extern int close(int); 5063 5064 5065 5066 5067 5068 5069 extern char *ctermid(char *); 5070 5071 5072 extern char *ctermid_r(char *); 5073 5074 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5075 5076 extern char *cuserid(char *); 5077 5078 extern int dup(int); 5079 extern int dup2(int, int); 5080 extern int dup3(int, int, int); 5081 5082 5083 5084 5085 extern void endusershell(void); 5086 5087 extern int execl(const char *, const char *, ...); 5088 extern int execle(const char *, const char *, ...); 5089 extern int execlp(const char *, const char *, ...); 5090 extern int execv(const char *, char *const *); 5091 extern int execve(const char *, char *const *, char *const *); 5092 extern int execvp(const char *, char *const *); 5093 extern void _exit(int) 5094 __attribute__((__noreturn__)); 5095 /* 5096 * The following fattach prototype is duplicated in <stropts.h>. The 5097 * duplication is necessitated by XPG4.2 which requires the prototype 5098 * be defined in <stropts.h>. 5099 */ 5100 5101 extern int fattach(int, const char *); 5102 5103 5104 extern int fchdir(int); 5105 extern int fchown(int, uid_t, gid_t); 5106 5107 5108 extern int fchroot(int); 5109 5110 5111 5112 extern int fdatasync(int); 5113 5114 /* 5115 * The following fdetach prototype is duplicated in <stropts.h>. The 5116 * duplication is necessitated by XPG4.2 which requires the prototype 5117 * be defined in <stropts.h>. 5118 */ 5119 5120 extern int fdetach(const char *); 5121 5122 extern pid_t fork(void); 5123 5124 extern pid_t fork1(void); 5125 extern pid_t forkall(void); 5126 5127 extern long fpathconf(int, int); 5128 5129 5130 extern int fsync(int); 5131 5132 5133 5134 5135 extern int ftruncate(int, off_t); 5136 5137 extern char *getcwd(char *, size_t); 5138 5139 5140 extern int getdtablesize(void); 5141 5142 extern gid_t getegid(void); 5143 extern uid_t geteuid(void); 5144 extern gid_t getgid(void); 5145 extern int getgroups(int, gid_t *); 5146 5147 extern long gethostid(void); 5148 5149 5150 5151 5152 extern int gethostname(char *, int); 5153 # 372 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5154 /* Marked as LEGACY in SUSv2 and removed in SUSv3 */ 5155 5156 extern int getpagesize(void); 5157 5158 extern pid_t getpgid(pid_t); 5159 5160 extern pid_t getpid(void); 5161 extern pid_t getppid(void); 5162 extern pid_t getpgrp(void); 5163 5164 5165 char *gettxt(const char *, const char *); 5166 5167 5168 extern pid_t getsid(pid_t); 5169 5170 extern uid_t getuid(void); 5171 5172 extern char *getusershell(void); 5173 5174 /* 5175 * The following ioctl prototype is duplicated in <stropts.h>. The 5176 * duplication is necessitated by XPG4.2 which requires the prototype 5177 * be defined in <stropts.h>. 5178 */ 5179 5180 extern int ioctl(int, int, ...); 5181 extern int isaexec(const char *, char *const *, char *const *); 5182 extern int issetugid(void); 5183 5184 extern int isatty(int); 5185 5186 extern int lchown(const char *, uid_t, gid_t); 5187 5188 extern int link(const char *, const char *); 5189 5190 extern offset_t llseek(int, offset_t, int); 5191 5192 5193 5194 5195 extern int lockf(int, int, off_t); 5196 5197 extern off_t lseek(int, off_t, int); 5198 5199 5200 extern int nice(int); 5201 5202 5203 extern int mincore(caddr_t, size_t, char *); 5204 5205 extern long pathconf(const char *, int); 5206 extern int pause(void); 5207 extern int pipe(int *); 5208 extern int pipe2(int *, int); 5209 5210 5211 5212 extern ssize_t pread(int, void *, size_t, off_t); 5213 5214 5215 extern void profil(unsigned short *, size_t, unsigned long, unsigned int); 5216 5217 /* 5218 * pthread_atfork() is also declared in <pthread.h> as per SUSv3. The 5219 * declarations are identical. A change to either one may also require 5220 * appropriate namespace updates in order to avoid redeclaration 5221 * warnings in the case where both prototypes are exposed via inclusion 5222 * of both <pthread.h> and <unistd.h>. 5223 */ 5224 5225 5226 5227 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void)); 5228 5229 5230 5231 extern int ptrace(int, pid_t, int, int); 5232 5233 5234 5235 5236 extern ssize_t pwrite(int, const void *, size_t, off_t); 5237 5238 5239 /* per RFC 3542; This is also defined in netdb.h */ 5240 extern int rcmd_af(char **, unsigned short, const char *, const char *, 5241 const char *, int *, int); 5242 5243 extern ssize_t read(int, void *, size_t); 5244 5245 5246 extern ssize_t readlink(const char *, char *, 5247 size_t); 5248 5249 5250 5251 5252 5253 5254 extern int rename(const char *, const char *); 5255 5256 5257 5258 5259 5260 5261 5262 extern int resolvepath(const char *, char *, size_t); 5263 /* per RFC 3542; This is also defined in netdb.h */ 5264 extern int rexec_af(char **, unsigned short, const char *, const char *, 5265 const char *, int *, int); 5266 5267 extern int rmdir(const char *); 5268 5269 /* per RFC 3542; This is also defined in netdb.h */ 5270 extern int rresvport_af(int *, int); 5271 5272 5273 5274 5275 extern void *sbrk(intptr_t); 5276 5277 5278 extern int setegid(gid_t); 5279 extern int seteuid(uid_t); 5280 5281 extern int setgid(gid_t); 5282 5283 extern int setgroups(int, const gid_t *); 5284 extern int sethostname(char *, int); 5285 5286 extern int setpgid(pid_t, pid_t); 5287 5288 extern pid_t setpgrp(void); 5289 extern int setregid(gid_t, gid_t); 5290 extern int setreuid(uid_t, uid_t); 5291 5292 extern pid_t setsid(void); 5293 extern int setuid(uid_t); 5294 5295 extern void setusershell(void); 5296 5297 extern unsigned sleep(unsigned); 5298 5299 extern int stime(const time_t *); 5300 5301 5302 5303 5304 5305 5306 extern int symlink(const char *, const char *); 5307 extern void sync(void); 5308 # 534 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5309 extern long sysconf(int); 5310 extern pid_t tcgetpgrp(int); 5311 extern int tcsetpgrp(int, pid_t); 5312 5313 5314 5315 extern off_t tell(int); 5316 5317 5318 5319 5320 extern int truncate(const char *, off_t); 5321 5322 extern char *ttyname(int); 5323 5324 extern useconds_t ualarm(useconds_t, useconds_t); 5325 5326 extern int unlink(const char *); 5327 5328 extern char *getwd(char *); 5329 extern int usleep(useconds_t); 5330 extern pid_t vfork(void) __attribute__((__returns_twice__)); 5331 #pragma unknown_control_flow(vfork) 5332 5333 5334 extern void vhangup(void); 5335 5336 extern ssize_t write(int, const void *, size_t); 5337 5338 extern void yield(void); 5339 5340 5341 5342 5343 /* || defined(_XPG7) */ 5344 extern int faccessat(int, const char *, int, int); 5345 extern int fchownat(int, const char *, uid_t, gid_t, int); 5346 extern int linkat(int, const char *, int, const char *, int); 5347 extern ssize_t readlinkat(int, const char *, 5348 char *, size_t); 5349 extern int renameat(int, const char *, int, const char *); 5350 extern int symlinkat(const char *, int, const char *); 5351 extern int unlinkat(int, const char *, int); 5352 5353 5354 extern int get_nprocs(void); 5355 extern int get_nprocs_conf(void); 5356 5357 5358 /* transitional large file interface versions */ 5359 5360 5361 extern int ftruncate64(int, off64_t); 5362 extern off64_t lseek64(int, off64_t, int); 5363 extern ssize_t pread64(int, void *, size_t, off64_t); 5364 extern ssize_t pwrite64(int, const void *, size_t, off64_t); 5365 extern off64_t tell64(int); 5366 extern int truncate64(const char *, off64_t); 5367 extern int lockf64(int, int, off64_t); 5368 5369 5370 /* 5371 * getlogin_r() & ttyname_r() prototypes are defined here. 5372 */ 5373 5374 /* 5375 * Previous releases of Solaris, starting at 2.3, provided definitions of 5376 * various functions as specified in POSIX.1c, Draft 6. For some of these 5377 * functions, the final POSIX 1003.1c standard had a different number of 5378 * arguments and return values. 5379 * 5380 * The following segment of this header provides support for the standard 5381 * interfaces while supporting applications written under earlier 5382 * releases. The application defines appropriate values of the feature 5383 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate 5384 * whether it was written to expect the Draft 6 or standard versions of 5385 * these interfaces, before including this header. This header then 5386 * provides a mapping from the source version of the interface to an 5387 * appropriate binary interface. Such mappings permit an application 5388 * to be built from libraries and objects which have mixed expectations 5389 * of the definitions of these functions. 5390 * 5391 * For applications using the Draft 6 definitions, the binary symbol is the 5392 * same as the source symbol, and no explicit mapping is needed. For the 5393 * standard interface, the function func() is mapped to the binary symbol 5394 * _posix_func(). The preferred mechanism for the remapping is a compiler 5395 * #pragma. If the compiler does not provide such a #pragma, the header file 5396 * defines a static function func() which calls the _posix_func() version; 5397 * this has to be done instead of #define since POSIX specifies that an 5398 * application can #undef the symbol and still be bound to the correct 5399 * implementation. Unfortunately, the statics confuse lint so we fallback to 5400 * #define in that case. 5401 * 5402 * NOTE: Support for the Draft 6 definitions is provided for compatibility 5403 * only. New applications/libraries should use the standard definitions. 5404 */ 5405 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5406 5407 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5408 #pragma redefine_extname getlogin_r getloginx_r 5409 # 693 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/unistd.h" 5410 5411 5412 5413 5414 5415 5416 extern char *getlogin_r(char *, int); 5417 5418 extern char *ttyname_r(int, char *, int); 5419 5420 5421 5422 5423 5424 5425 extern int getentropy(void *, size_t); 5426 # 31 "setup_temporary_directory.c" 2 5427 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1 5428 /* 5429 * CDDL HEADER START 5430 * 5431 * The contents of this file are subject to the terms of the 5432 * Common Development and Distribution License (the "License"). 5433 * You may not use this file except in compliance with the License. 5434 * 5435 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5436 * or http://www.opensolaris.org/os/licensing. 5437 * See the License for the specific language governing permissions 5438 * and limitations under the License. 5439 * 5440 * When distributing Covered Code, include this CDDL HEADER in each 5441 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5442 * If applicable, add the following below this CDDL HEADER, with the 5443 * fields enclosed by brackets "[]" replaced with your own identifying 5444 * information: Portions Copyright [yyyy] [name of copyright owner] 5445 * 5446 * CDDL HEADER END 5447 */ 5448 5449 /* 5450 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 5451 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. 5452 */ 5453 5454 /* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */ 5455 /* Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T */ 5456 /* All Rights Reserved */ 5457 5458 5459 5460 5461 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 5462 /* 5463 * CDDL HEADER START 5464 * 5465 * The contents of this file are subject to the terms of the 5466 * Common Development and Distribution License (the "License"). 5467 * You may not use this file except in compliance with the License. 5468 * 5469 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5470 * or http://www.opensolaris.org/os/licensing. 5471 * See the License for the specific language governing permissions 5472 * and limitations under the License. 5473 * 5474 * When distributing Covered Code, include this CDDL HEADER in each 5475 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5476 * If applicable, add the following below this CDDL HEADER, with the 5477 * fields enclosed by brackets "[]" replaced with your own identifying 5478 * information: Portions Copyright [yyyy] [name of copyright owner] 5479 * 5480 * CDDL HEADER END 5481 */ 5482 5483 /* 5484 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 5485 * Copyright 2016 Joyent, Inc. 5486 * 5487 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 5488 * Use is subject to license terms. 5489 */ 5490 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 5491 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 5492 /* 5493 * CDDL HEADER START 5494 * 5495 * The contents of this file are subject to the terms of the 5496 * Common Development and Distribution License (the "License"). 5497 * You may not use this file except in compliance with the License. 5498 * 5499 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5500 * or http://www.opensolaris.org/os/licensing. 5501 * See the License for the specific language governing permissions 5502 * and limitations under the License. 5503 * 5504 * When distributing Covered Code, include this CDDL HEADER in each 5505 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5506 * If applicable, add the following below this CDDL HEADER, with the 5507 * fields enclosed by brackets "[]" replaced with your own identifying 5508 * information: Portions Copyright [yyyy] [name of copyright owner] 5509 * 5510 * CDDL HEADER END 5511 */ 5512 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 5513 /* All Rights Reserved */ 5514 5515 5516 /* 5517 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 5518 * Use is subject to license terms. 5519 * 5520 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 5521 * Copyright 2016 Joyent, Inc. 5522 */ 5523 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 5524 5525 5526 5527 5528 5529 /* 5530 * The implementation specific header <sys/time_impl.h> includes a 5531 * definition for timestruc_t needed by the stat structure. However, 5532 * including either <time.h>, which includes <sys/time_impl.h>, or 5533 * including <sys/time_impl.h> directly will break both X/Open and 5534 * POSIX namespace. Preceeding tag, structure, and structure member 5535 * names with underscores eliminates the namespace breakage and at the 5536 * same time, with unique type names, eliminates the possibility of 5537 * timespec_t or timestruct_t naming conflicts that could otherwise 5538 * result based on the order of inclusion of <sys/stat.h> and 5539 * <sys/time.h>. The header <sys/time_std_impl.h> contains the 5540 * standards namespace safe versions of these definitions. 5541 */ 5542 5543 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time_impl.h" 1 5544 /* 5545 * CDDL HEADER START 5546 * 5547 * The contents of this file are subject to the terms of the 5548 * Common Development and Distribution License, Version 1.0 only 5549 * (the "License"). You may not use this file except in compliance 5550 * with the License. 5551 * 5552 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5553 * or http://www.opensolaris.org/os/licensing. 5554 * See the License for the specific language governing permissions 5555 * and limitations under the License. 5556 * 5557 * When distributing Covered Code, include this CDDL HEADER in each 5558 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5559 * If applicable, add the following below this CDDL HEADER, with the 5560 * fields enclosed by brackets "[]" replaced with your own identifying 5561 * information: Portions Copyright [yyyy] [name of copyright owner] 5562 * 5563 * CDDL HEADER END 5564 */ 5565 /* 5566 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 5567 * Use is subject to license terms. 5568 */ 5569 5570 /* 5571 * Implementation-private. This header should not be included 5572 * directly by an application. The application should instead 5573 * include <time.h> which includes this header conditionally 5574 * depending on which feature test macros are defined. By default, 5575 * this header is included by <time.h>. X/Open and POSIX 5576 * standards requirements result in this header being included 5577 * by <time.h> only under a restricted set of conditions. 5578 */ 5579 # 56 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 5580 5581 5582 5583 5584 5585 5586 /* 5587 * stat structure, used by stat(2) and fstat(2) 5588 */ 5589 # 155 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5590 /* 5591 * large file compilation environment setup 5592 */ 5593 5594 5595 5596 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5597 #pragma redefine_extname fstat fstat64 5598 # 160 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5599 5600 5601 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5602 #pragma redefine_extname stat stat64 5603 # 161 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5604 5605 5606 5607 5608 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5609 #pragma redefine_extname fstatat fstatat64 5610 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5611 5612 5613 5614 5615 5616 # 168 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5617 #pragma redefine_extname lstat lstat64 5618 # 168 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5619 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5620 /* 5621 * In the LP64 compilation environment, map large file interfaces 5622 * back to native versions where possible. 5623 */ 5624 # 211 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5625 /* 5626 * User level stat structure definitions. 5627 */ 5628 # 242 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5629 struct stat { 5630 dev_t st_dev; 5631 long st_pad1[3]; /* reserved for network id */ 5632 ino_t st_ino; 5633 mode_t st_mode; 5634 nlink_t st_nlink; 5635 uid_t st_uid; 5636 gid_t st_gid; 5637 dev_t st_rdev; 5638 long st_pad2[2]; 5639 off_t st_size; 5640 5641 5642 5643 5644 timestruc_t st_atim; 5645 timestruc_t st_mtim; 5646 timestruc_t st_ctim; 5647 5648 5649 5650 5651 5652 blksize_t st_blksize; 5653 blkcnt_t st_blocks; 5654 char st_fstype[16]; 5655 long st_pad4[8]; /* expansion area */ 5656 }; 5657 5658 5659 5660 /* transitional large file interface version */ 5661 # 303 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5662 struct stat64 { 5663 dev_t st_dev; 5664 long st_pad1[3]; /* reserved for network id */ 5665 ino64_t st_ino; 5666 mode_t st_mode; 5667 nlink_t st_nlink; 5668 uid_t st_uid; 5669 gid_t st_gid; 5670 dev_t st_rdev; 5671 long st_pad2[2]; 5672 off64_t st_size; 5673 5674 timestruc_t st_atim; 5675 timestruc_t st_mtim; 5676 timestruc_t st_ctim; 5677 5678 5679 5680 5681 5682 blksize_t st_blksize; 5683 blkcnt64_t st_blocks; 5684 char st_fstype[16]; 5685 long st_pad4[8]; /* expansion area */ 5686 }; 5687 # 401 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5688 /* MODE MASKS */ 5689 5690 /* de facto standard definitions */ 5691 5692 5693 5694 5695 5696 5697 /* XENIX definitions are not relevant to Solaris */ 5698 # 428 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5699 /* the following macros are for POSIX conformance */ 5700 # 454 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5701 /* POSIX.4 macros */ 5702 5703 5704 5705 5706 5707 5708 /* 5709 * A version number is included in the x86 SVR4 stat and mknod interfaces 5710 * so that SVR4 binaries can be supported. An LP64 kernel that supports 5711 * the i386 ABI need to be aware of this too. 5712 */ 5713 # 476 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5714 /* || defined(_XPG7) */ 5715 /* for use with futimens() and utimensat() */ 5716 # 486 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 5717 extern int fchmod(int, mode_t); 5718 5719 5720 extern int chmod(const char *, mode_t); 5721 extern int mkdir(const char *, mode_t); 5722 extern int mkfifo(const char *, mode_t); 5723 extern mode_t umask(mode_t); 5724 5725 /* transitional large file interfaces */ 5726 5727 5728 extern int fstat64(int, struct stat64 *); 5729 extern int stat64(const char *, struct stat64 *); 5730 extern int lstat64(const char *, struct stat64 *); 5731 5732 5733 extern int fstatat64(int, const char *, struct stat64 *, int); 5734 5735 5736 5737 5738 5739 /* || defined(_XPG7) */ 5740 extern int mkdirat(int, const char *, mode_t); 5741 extern int mkfifoat(int, const char *, mode_t); 5742 extern int mknodat(int, const char *, mode_t, dev_t); 5743 extern int fchmodat(int, const char *, mode_t, int); 5744 extern int futimens(int, const struct timespec[2]); 5745 extern int utimensat(int, const char *, const struct timespec[2], int); 5746 5747 5748 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 1 5749 /* 5750 * CDDL HEADER START 5751 * 5752 * The contents of this file are subject to the terms of the 5753 * Common Development and Distribution License (the "License"). 5754 * You may not use this file except in compliance with the License. 5755 * 5756 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5757 * or http://www.opensolaris.org/os/licensing. 5758 * See the License for the specific language governing permissions 5759 * and limitations under the License. 5760 * 5761 * When distributing Covered Code, include this CDDL HEADER in each 5762 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5763 * If applicable, add the following below this CDDL HEADER, with the 5764 * fields enclosed by brackets "[]" replaced with your own identifying 5765 * information: Portions Copyright [yyyy] [name of copyright owner] 5766 * 5767 * CDDL HEADER END 5768 */ 5769 5770 /* 5771 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 5772 * Use is subject to license terms. 5773 */ 5774 5775 5776 5777 5778 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 5779 /* 5780 * CDDL HEADER START 5781 * 5782 * The contents of this file are subject to the terms of the 5783 * Common Development and Distribution License (the "License"). 5784 * You may not use this file except in compliance with the License. 5785 * 5786 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5787 * or http://www.opensolaris.org/os/licensing. 5788 * See the License for the specific language governing permissions 5789 * and limitations under the License. 5790 * 5791 * When distributing Covered Code, include this CDDL HEADER in each 5792 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5793 * If applicable, add the following below this CDDL HEADER, with the 5794 * fields enclosed by brackets "[]" replaced with your own identifying 5795 * information: Portions Copyright [yyyy] [name of copyright owner] 5796 * 5797 * CDDL HEADER END 5798 */ 5799 5800 /* 5801 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 5802 * Copyright 2016 Joyent, Inc. 5803 * 5804 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 5805 * Use is subject to license terms. 5806 */ 5807 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2 5808 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 5809 /* 5810 * CDDL HEADER START 5811 * 5812 * The contents of this file are subject to the terms of the 5813 * Common Development and Distribution License (the "License"). 5814 * You may not use this file except in compliance with the License. 5815 * 5816 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5817 * or http://www.opensolaris.org/os/licensing. 5818 * See the License for the specific language governing permissions 5819 * and limitations under the License. 5820 * 5821 * When distributing Covered Code, include this CDDL HEADER in each 5822 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5823 * If applicable, add the following below this CDDL HEADER, with the 5824 * fields enclosed by brackets "[]" replaced with your own identifying 5825 * information: Portions Copyright [yyyy] [name of copyright owner] 5826 * 5827 * CDDL HEADER END 5828 */ 5829 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 5830 /* All Rights Reserved */ 5831 5832 5833 /* 5834 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 5835 * Use is subject to license terms. 5836 * 5837 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 5838 * Copyright 2016 Joyent, Inc. 5839 */ 5840 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat_impl.h" 2 5841 5842 5843 5844 5845 5846 /* 5847 * The implementation specific header for <sys/stat.h> 5848 */ 5849 5850 5851 5852 5853 5854 extern int fstat(int, struct stat *); 5855 extern int stat(const char *, struct stat *); 5856 5857 5858 5859 extern int fstatat(int, const char *, struct stat *, int); 5860 5861 5862 5863 extern int lstat(const char *, struct stat *); 5864 extern int mknod(const char *, mode_t, dev_t); 5865 # 518 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 2 5866 # 32 "setup_temporary_directory.c" 2 5867 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h" 1 5868 /* 5869 * CDDL HEADER START 5870 * 5871 * The contents of this file are subject to the terms of the 5872 * Common Development and Distribution License, Version 1.0 only 5873 * (the "License"). You may not use this file except in compliance 5874 * with the License. 5875 * 5876 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5877 * or http://www.opensolaris.org/os/licensing. 5878 * See the License for the specific language governing permissions 5879 * and limitations under the License. 5880 * 5881 * When distributing Covered Code, include this CDDL HEADER in each 5882 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5883 * If applicable, add the following below this CDDL HEADER, with the 5884 * fields enclosed by brackets "[]" replaced with your own identifying 5885 * information: Portions Copyright [yyyy] [name of copyright owner] 5886 * 5887 * CDDL HEADER END 5888 */ 5889 /* Copyright (c) 1988 AT&T */ 5890 /* All Rights Reserved */ 5891 5892 /* 5893 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 5894 * Copyright 2016 Joyent, Inc. 5895 * Copyright 2018 OmniOS Community Edition (OmniOSce) Association. 5896 * 5897 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 5898 * Use is subject to license terms. 5899 */ 5900 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h" 5901 extern void __assert(const char *, const char *, int); 5902 5903 5904 /* 5905 * In C11 the static_assert macro is always defined, unlike the assert macro. 5906 */ 5907 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/assert.h" 5908 /* 5909 * Note that the ANSI C Standard requires all headers to be idempotent except 5910 * <assert.h> which is explicitly required not to be idempotent (section 4.1.2). 5911 * Therefore, it is by intent that the header guards (#ifndef _ASSERT_H) do 5912 * not span this entire file. 5913 */ 5914 # 33 "setup_temporary_directory.c" 2 5915 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 1 5916 /* 5917 * CDDL HEADER START 5918 * 5919 * The contents of this file are subject to the terms of the 5920 * Common Development and Distribution License (the "License"). 5921 * You may not use this file except in compliance with the License. 5922 * 5923 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5924 * or http://www.opensolaris.org/os/licensing. 5925 * See the License for the specific language governing permissions 5926 * and limitations under the License. 5927 * 5928 * When distributing Covered Code, include this CDDL HEADER in each 5929 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5930 * If applicable, add the following below this CDDL HEADER, with the 5931 * fields enclosed by brackets "[]" replaced with your own identifying 5932 * information: Portions Copyright [yyyy] [name of copyright owner] 5933 * 5934 * CDDL HEADER END 5935 */ 5936 5937 /* 5938 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 5939 * 5940 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 5941 * Use is subject to license terms. 5942 */ 5943 5944 /* Copyright (c) 1988 AT&T */ 5945 /* All Rights Reserved */ 5946 5947 5948 5949 5950 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 5951 /* 5952 * CDDL HEADER START 5953 * 5954 * The contents of this file are subject to the terms of the 5955 * Common Development and Distribution License (the "License"). 5956 * You may not use this file except in compliance with the License. 5957 * 5958 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5959 * or http://www.opensolaris.org/os/licensing. 5960 * See the License for the specific language governing permissions 5961 * and limitations under the License. 5962 * 5963 * When distributing Covered Code, include this CDDL HEADER in each 5964 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5965 * If applicable, add the following below this CDDL HEADER, with the 5966 * fields enclosed by brackets "[]" replaced with your own identifying 5967 * information: Portions Copyright [yyyy] [name of copyright owner] 5968 * 5969 * CDDL HEADER END 5970 */ 5971 5972 /* 5973 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 5974 * Copyright 2016 Joyent, Inc. 5975 * 5976 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 5977 * Use is subject to license terms. 5978 */ 5979 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2 5980 5981 5982 5983 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 5984 /* 5985 * CDDL HEADER START 5986 * 5987 * The contents of this file are subject to the terms of the 5988 * Common Development and Distribution License (the "License"). 5989 * You may not use this file except in compliance with the License. 5990 * 5991 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 5992 * or http://www.opensolaris.org/os/licensing. 5993 * See the License for the specific language governing permissions 5994 * and limitations under the License. 5995 * 5996 * When distributing Covered Code, include this CDDL HEADER in each 5997 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 5998 * If applicable, add the following below this CDDL HEADER, with the 5999 * fields enclosed by brackets "[]" replaced with your own identifying 6000 * information: Portions Copyright [yyyy] [name of copyright owner] 6001 * 6002 * CDDL HEADER END 6003 */ 6004 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6005 /* All Rights Reserved */ 6006 6007 6008 /* 6009 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6010 * Use is subject to license terms. 6011 * 6012 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 6013 * Copyright 2016 Joyent, Inc. 6014 */ 6015 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2 6016 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 1 6017 /* 6018 * CDDL HEADER START 6019 * 6020 * The contents of this file are subject to the terms of the 6021 * Common Development and Distribution License (the "License"). 6022 * You may not use this file except in compliance with the License. 6023 * 6024 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6025 * or http://www.opensolaris.org/os/licensing. 6026 * See the License for the specific language governing permissions 6027 * and limitations under the License. 6028 * 6029 * When distributing Covered Code, include this CDDL HEADER in each 6030 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6031 * If applicable, add the following below this CDDL HEADER, with the 6032 * fields enclosed by brackets "[]" replaced with your own identifying 6033 * information: Portions Copyright [yyyy] [name of copyright owner] 6034 * 6035 * CDDL HEADER END 6036 */ 6037 6038 /* 6039 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 6040 */ 6041 6042 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6043 /* All Rights Reserved */ 6044 6045 /* 6046 * University Copyright- Copyright (c) 1982, 1986, 1988 6047 * The Regents of the University of California 6048 * All Rights Reserved 6049 * 6050 * University Acknowledgment- Portions of this document are derived from 6051 * software developed by the University of California, Berkeley, and its 6052 * contributors. 6053 */ 6054 6055 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 6056 /* Copyright 2015, Joyent, Inc. */ 6057 6058 6059 6060 6061 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 6062 /* 6063 * CDDL HEADER START 6064 * 6065 * The contents of this file are subject to the terms of the 6066 * Common Development and Distribution License (the "License"). 6067 * You may not use this file except in compliance with the License. 6068 * 6069 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6070 * or http://www.opensolaris.org/os/licensing. 6071 * See the License for the specific language governing permissions 6072 * and limitations under the License. 6073 * 6074 * When distributing Covered Code, include this CDDL HEADER in each 6075 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6076 * If applicable, add the following below this CDDL HEADER, with the 6077 * fields enclosed by brackets "[]" replaced with your own identifying 6078 * information: Portions Copyright [yyyy] [name of copyright owner] 6079 * 6080 * CDDL HEADER END 6081 */ 6082 6083 /* 6084 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 6085 * Copyright 2016 Joyent, Inc. 6086 * 6087 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 6088 * Use is subject to license terms. 6089 */ 6090 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2 6091 6092 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 6093 /* 6094 * CDDL HEADER START 6095 * 6096 * The contents of this file are subject to the terms of the 6097 * Common Development and Distribution License (the "License"). 6098 * You may not use this file except in compliance with the License. 6099 * 6100 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6101 * or http://www.opensolaris.org/os/licensing. 6102 * See the License for the specific language governing permissions 6103 * and limitations under the License. 6104 * 6105 * When distributing Covered Code, include this CDDL HEADER in each 6106 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6107 * If applicable, add the following below this CDDL HEADER, with the 6108 * fields enclosed by brackets "[]" replaced with your own identifying 6109 * information: Portions Copyright [yyyy] [name of copyright owner] 6110 * 6111 * CDDL HEADER END 6112 */ 6113 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 6114 /* All Rights Reserved */ 6115 6116 6117 /* 6118 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 6119 * Use is subject to license terms. 6120 * 6121 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 6122 * Copyright 2016 Joyent, Inc. 6123 */ 6124 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 2 6125 6126 6127 6128 6129 6130 /* 6131 * Flag values accessible to open(2) and fcntl(2) 6132 * The first five can only be set (exclusively) by open(2). 6133 */ 6134 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6135 /* defines read/write file integrity */ 6136 6137 6138 6139 6140 6141 6142 /* 6143 * Flag values accessible only to open(2). 6144 */ 6145 # 93 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6146 /* 6147 * fcntl(2) requests 6148 * 6149 * N.B.: values are not necessarily assigned sequentially below. 6150 */ 6151 6152 6153 6154 6155 6156 6157 6158 /* 6159 * Applications that read /dev/mem must be built like the kernel. A 6160 * new symbol "_KMEMUSER" is defined for this purpose. 6161 */ 6162 # 128 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6163 /* EINVAL is fildes matches arg1 */ 6164 # 137 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6165 /* 6166 * Numbers 20-22 have been removed and should not be reused. 6167 */ 6168 6169 6170 6171 6172 6173 /* manager */ 6174 6175 /* 6176 * Commands that refer to flock structures. The argument types differ between 6177 * the large and small file environments; therefore, the #defined values must 6178 * as well. 6179 * The NBMAND forms are private and should not be used. 6180 * The FLOCK forms are also private and should not be used. 6181 */ 6182 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6183 /* ILP32 large file application compilation environment version */ 6184 # 190 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6185 /* 6186 * transitional large file interface version 6187 * These are only valid in a 32 bit application compiled with large files 6188 * option, for source compatibility, the 64-bit versions are mapped back 6189 * to the native versions. 6190 */ 6191 # 233 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6192 /* 6193 * File segment locking set data type - information passed to system by user. 6194 */ 6195 6196 /* regular version, for both small and large file compilation environment */ 6197 typedef struct flock { 6198 short l_type; 6199 short l_whence; 6200 off_t l_start; 6201 off_t l_len; /* len == 0 means until end of file */ 6202 int l_sysid; 6203 pid_t l_pid; 6204 long l_pad[4]; /* reserve area */ 6205 } flock_t; 6206 # 264 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6207 /* transitional large file interface version */ 6208 6209 6210 6211 typedef struct flock64 { 6212 short l_type; 6213 short l_whence; 6214 off64_t l_start; 6215 off64_t l_len; /* len == 0 means until end of file */ 6216 int l_sysid; 6217 pid_t l_pid; 6218 long l_pad[4]; /* reserve area */ 6219 } flock64_t; 6220 # 328 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6221 /* 6222 * File segment locking types. 6223 */ 6224 6225 6226 6227 6228 6229 /* 6230 * POSIX constants 6231 */ 6232 6233 /* Mask for file access modes */ 6234 6235 6236 6237 /* 6238 * DIRECTIO 6239 */ 6240 6241 6242 6243 6244 /* 6245 * File share reservation type 6246 */ 6247 typedef struct fshare { 6248 short f_access; 6249 short f_deny; 6250 int f_id; 6251 } fshare_t; 6252 6253 /* 6254 * f_access values 6255 */ 6256 6257 6258 6259 6260 6261 6262 /* 6263 * f_deny values 6264 */ 6265 # 381 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6266 /* 6267 * Special flags for functions such as openat(), fstatat().... 6268 */ 6269 6270 6271 /* || defined(_XPG7) */ 6272 # 396 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/fcntl.h" 6273 /* advice for posix_fadvise */ 6274 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 2 6275 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6276 /* large file compilation environment setup */ 6277 6278 6279 6280 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6281 #pragma redefine_extname open open64 6282 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6283 6284 6285 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6286 #pragma redefine_extname creat creat64 6287 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6288 6289 6290 6291 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6292 #pragma redefine_extname posix_fadvise posix_fadvise64 6293 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6294 6295 6296 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6297 #pragma redefine_extname posix_fallocate posix_fallocate64 6298 # 81 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6299 6300 6301 6302 6303 6304 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6305 #pragma redefine_extname openat openat64 6306 # 85 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6307 6308 6309 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6310 #pragma redefine_extname attropen attropen64 6311 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6312 # 131 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 6313 extern int fcntl(int, int, ...); 6314 extern int open(const char *, int, ...); 6315 extern int creat(const char *, mode_t); 6316 6317 extern int posix_fadvise(int, off_t, off_t, int); 6318 extern int posix_fallocate(int, off_t, off_t); 6319 6320 6321 6322 extern int openat(int, const char *, int, ...); 6323 extern int attropen(const char *, const char *, int, ...); 6324 6325 6326 extern int directio(int, int); 6327 6328 6329 /* transitional large file interface versions */ 6330 6331 6332 extern int open64(const char *, int, ...); 6333 extern int creat64(const char *, mode_t); 6334 6335 extern int posix_fadvise64(int, off64_t, off64_t, int); 6336 extern int posix_fallocate64(int, off64_t, off64_t); 6337 6338 6339 6340 extern int openat64(int, const char *, int, ...); 6341 extern int attropen64(const char *, const char *, int, ...); 6342 # 34 "setup_temporary_directory.c" 2 6343 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 1 6344 /* 6345 * CDDL HEADER START 6346 * 6347 * The contents of this file are subject to the terms of the 6348 * Common Development and Distribution License, Version 1.0 only 6349 * (the "License"). You may not use this file except in compliance 6350 * with the License. 6351 * 6352 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6353 * or http://www.opensolaris.org/os/licensing. 6354 * See the License for the specific language governing permissions 6355 * and limitations under the License. 6356 * 6357 * When distributing Covered Code, include this CDDL HEADER in each 6358 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6359 * If applicable, add the following below this CDDL HEADER, with the 6360 * fields enclosed by brackets "[]" replaced with your own identifying 6361 * information: Portions Copyright [yyyy] [name of copyright owner] 6362 * 6363 * CDDL HEADER END 6364 */ 6365 /* Copyright (c) 1988 AT&T */ 6366 /* All Rights Reserved */ 6367 6368 6369 /* 6370 * Copyright 1999-2003 Sun Microsystems, Inc. All rights reserved. 6371 * Use is subject to license terms. 6372 */ 6373 6374 6375 6376 6377 6378 #pragma ident "%Z%%M% %I% %E% SMI" 6379 6380 /* 6381 * Error codes 6382 */ 6383 6384 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1 6385 /* 6386 * CDDL HEADER START 6387 * 6388 * The contents of this file are subject to the terms of the 6389 * Common Development and Distribution License, Version 1.0 only 6390 * (the "License"). You may not use this file except in compliance 6391 * with the License. 6392 * 6393 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6394 * or http://www.opensolaris.org/os/licensing. 6395 * See the License for the specific language governing permissions 6396 * and limitations under the License. 6397 * 6398 * When distributing Covered Code, include this CDDL HEADER in each 6399 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6400 * If applicable, add the following below this CDDL HEADER, with the 6401 * fields enclosed by brackets "[]" replaced with your own identifying 6402 * information: Portions Copyright [yyyy] [name of copyright owner] 6403 * 6404 * CDDL HEADER END 6405 */ 6406 /* 6407 * Copyright 2000 Sun Microsystems, Inc. All rights reserved. 6408 * Use is subject to license terms. 6409 */ 6410 6411 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 6412 /* All Rights Reserved */ 6413 6414 /* 6415 * University Copyright- Copyright (c) 1982, 1986, 1988 6416 * The Regents of the University of California 6417 * All Rights Reserved 6418 * 6419 * University Acknowledgment- Portions of this document are derived from 6420 * software developed by the University of California, Berkeley, and its 6421 * contributors. 6422 */ 6423 6424 6425 6426 6427 #pragma ident "%Z%%M% %I% %E% SMI" 6428 6429 6430 6431 6432 6433 /* 6434 * Error codes 6435 */ 6436 # 102 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 6437 /* Filesystem Quotas */ 6438 6439 6440 /* Convergent Error Returns */ 6441 # 116 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 6442 /* Interprocess Robust Locks */ 6443 6444 6445 6446 /* stream problems */ 6447 # 136 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 6448 /* Interprocess Robust Locks */ 6449 # 148 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 6450 /* shared library problems */ 6451 # 162 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 6452 /* BSD Networking Software */ 6453 /* argument errors */ 6454 # 174 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 6455 /* protocol family */ 6456 6457 6458 /* operational errors */ 6459 6460 6461 6462 /* of reset */ 6463 6464 6465 6466 6467 6468 /* XENIX has 135 - 142 */ 6469 # 198 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 6470 /* SUN Network File System */ 6471 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 2 6472 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/errno.h" 6473 extern int *___errno(); 6474 # 35 "setup_temporary_directory.c" 2 6475 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 1 6476 /* 6477 * CDDL HEADER START 6478 * 6479 * The contents of this file are subject to the terms of the 6480 * Common Development and Distribution License, Version 1.0 only 6481 * (the "License"). You may not use this file except in compliance 6482 * with the License. 6483 * 6484 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6485 * or http://www.opensolaris.org/os/licensing. 6486 * See the License for the specific language governing permissions 6487 * and limitations under the License. 6488 * 6489 * When distributing Covered Code, include this CDDL HEADER in each 6490 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6491 * If applicable, add the following below this CDDL HEADER, with the 6492 * fields enclosed by brackets "[]" replaced with your own identifying 6493 * information: Portions Copyright [yyyy] [name of copyright owner] 6494 * 6495 * CDDL HEADER END 6496 */ 6497 /* Copyright (c) 1988 AT&T */ 6498 /* All Rights Reserved */ 6499 6500 6501 /* 6502 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6503 * 6504 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 6505 * Use is subject to license terms. 6506 */ 6507 6508 6509 6510 6511 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.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, Version 1.0 only 6517 * (the "License"). You may not use this file except in compliance 6518 * with the License. 6519 * 6520 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6521 * or http://www.opensolaris.org/os/licensing. 6522 * See the License for the specific language governing permissions 6523 * and limitations under the License. 6524 * 6525 * When distributing Covered Code, include this CDDL HEADER in each 6526 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6527 * If applicable, add the following below this CDDL HEADER, with the 6528 * fields enclosed by brackets "[]" replaced with your own identifying 6529 * information: Portions Copyright [yyyy] [name of copyright owner] 6530 * 6531 * CDDL HEADER END 6532 */ 6533 /* Copyright (c) 1988 AT&T */ 6534 /* All Rights Reserved */ 6535 6536 /* 6537 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6538 * 6539 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 6540 * Use is subject to license terms. 6541 */ 6542 6543 /* 6544 * An application should not include this header directly. Instead it 6545 * should be included only through the inclusion of other Sun headers. 6546 * 6547 * The contents of this header is limited to identifiers specified in the 6548 * C Standard. Any new identifiers specified in future amendments to the 6549 * C Standard must be placed in this header. If these new identifiers 6550 * are required to also be in the C++ Standard "std" namespace, then for 6551 * anything other than macro definitions, corresponding "using" directives 6552 * must also be added to <ctype.h>. 6553 */ 6554 6555 6556 6557 6558 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 6559 /* 6560 * CDDL HEADER START 6561 * 6562 * The contents of this file are subject to the terms of the 6563 * Common Development and Distribution License (the "License"). 6564 * You may not use this file except in compliance with the License. 6565 * 6566 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6567 * or http://www.opensolaris.org/os/licensing. 6568 * See the License for the specific language governing permissions 6569 * and limitations under the License. 6570 * 6571 * When distributing Covered Code, include this CDDL HEADER in each 6572 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6573 * If applicable, add the following below this CDDL HEADER, with the 6574 * fields enclosed by brackets "[]" replaced with your own identifying 6575 * information: Portions Copyright [yyyy] [name of copyright owner] 6576 * 6577 * CDDL HEADER END 6578 */ 6579 6580 /* 6581 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 6582 * Copyright 2016 Joyent, Inc. 6583 * 6584 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 6585 * Use is subject to license terms. 6586 */ 6587 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 2 6588 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/ctype_iso.h" 6589 extern unsigned char __ctype[]; 6590 extern unsigned int *__ctype_mask; 6591 extern int *__trans_upper; 6592 extern int *__trans_lower; 6593 6594 6595 6596 6597 6598 /* 6599 * These used to be macros, which while more efficient, precludes operation 6600 * with thread specific locales. The old macros will still work, but new 6601 * code compiles to use functions. This is specifically permitted by the 6602 * various standards. Only _tolower and _toupper were required to be 6603 * delivered in macro form. 6604 */ 6605 extern int isalnum(int); 6606 extern int isalpha(int); 6607 extern int iscntrl(int); 6608 extern int isdigit(int); 6609 extern int isgraph(int); 6610 extern int islower(int); 6611 extern int isprint(int); 6612 extern int ispunct(int); 6613 extern int isspace(int); 6614 extern int isupper(int); 6615 extern int isxdigit(int); 6616 6617 extern int isblank(int); 6618 6619 6620 extern int tolower(int); 6621 extern int toupper(int); 6622 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 2 6623 6624 /* 6625 * Allow global visibility for symbols defined in 6626 * C++ "std" namespace in <iso/ctype_iso.h>. 6627 */ 6628 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 6629 extern int isascii(int); 6630 extern int toascii(int); 6631 extern int _tolower(int); 6632 extern int _toupper(int); 6633 # 98 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/ctype.h" 6634 extern int isalnum_l(int, locale_t); 6635 extern int isalpha_l(int, locale_t); 6636 extern int isblank_l(int, locale_t); 6637 extern int iscntrl_l(int, locale_t); 6638 extern int isdigit_l(int, locale_t); 6639 extern int isgraph_l(int, locale_t); 6640 extern int islower_l(int, locale_t); 6641 extern int isprint_l(int, locale_t); 6642 extern int ispunct_l(int, locale_t); 6643 extern int isspace_l(int, locale_t); 6644 extern int isupper_l(int, locale_t); 6645 extern int isxdigit_l(int, locale_t); 6646 extern int tolower_l(int, locale_t); 6647 extern int toupper_l(int, locale_t); 6648 # 36 "setup_temporary_directory.c" 2 6649 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 1 6650 /* 6651 * CDDL HEADER START 6652 * 6653 * The contents of this file are subject to the terms of the 6654 * Common Development and Distribution License (the "License"). 6655 * You may not use this file except in compliance with the License. 6656 * 6657 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6658 * or http://www.opensolaris.org/os/licensing. 6659 * See the License for the specific language governing permissions 6660 * and limitations under the License. 6661 * 6662 * When distributing Covered Code, include this CDDL HEADER in each 6663 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6664 * If applicable, add the following below this CDDL HEADER, with the 6665 * fields enclosed by brackets "[]" replaced with your own identifying 6666 * information: Portions Copyright [yyyy] [name of copyright owner] 6667 * 6668 * CDDL HEADER END 6669 */ 6670 6671 /* 6672 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6673 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 6674 */ 6675 6676 /* Copyright (c) 1988 AT&T */ 6677 /* All Rights Reserved */ 6678 6679 6680 6681 6682 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 1 6683 /* 6684 * CDDL HEADER START 6685 * 6686 * The contents of this file are subject to the terms of the 6687 * Common Development and Distribution License, Version 1.0 only 6688 * (the "License"). You may not use this file except in compliance 6689 * with the License. 6690 * 6691 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6692 * or http://www.opensolaris.org/os/licensing. 6693 * See the License for the specific language governing permissions 6694 * and limitations under the License. 6695 * 6696 * When distributing Covered Code, include this CDDL HEADER in each 6697 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6698 * If applicable, add the following below this CDDL HEADER, with the 6699 * fields enclosed by brackets "[]" replaced with your own identifying 6700 * information: Portions Copyright [yyyy] [name of copyright owner] 6701 * 6702 * CDDL HEADER END 6703 */ 6704 /* Copyright (c) 1988 AT&T */ 6705 /* All Rights Reserved */ 6706 6707 6708 /* 6709 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6710 * Copyright 2014 PALO, Richard. 6711 * 6712 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 6713 * Use is subject to license terms. 6714 */ 6715 6716 /* 6717 * An application should not include this header directly. Instead it 6718 * should be included only through the inclusion of other Sun headers. 6719 * 6720 * The contents of this header is limited to identifiers specified in the 6721 * C Standard. Any new identifiers specified in future amendments to the 6722 * C Standard must be placed in this header. If these new identifiers 6723 * are required to also be in the C++ Standard "std" namespace, then for 6724 * anything other than macro definitions, corresponding "using" directives 6725 * must also be added to <string.h>. 6726 */ 6727 6728 6729 6730 6731 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 6732 /* 6733 * CDDL HEADER START 6734 * 6735 * The contents of this file are subject to the terms of the 6736 * Common Development and Distribution License (the "License"). 6737 * You may not use this file except in compliance with the License. 6738 * 6739 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6740 * or http://www.opensolaris.org/os/licensing. 6741 * See the License for the specific language governing permissions 6742 * and limitations under the License. 6743 * 6744 * When distributing Covered Code, include this CDDL HEADER in each 6745 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6746 * If applicable, add the following below this CDDL HEADER, with the 6747 * fields enclosed by brackets "[]" replaced with your own identifying 6748 * information: Portions Copyright [yyyy] [name of copyright owner] 6749 * 6750 * CDDL HEADER END 6751 */ 6752 6753 /* 6754 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 6755 * Copyright 2016 Joyent, Inc. 6756 * 6757 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 6758 * Use is subject to license terms. 6759 */ 6760 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2 6761 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 6762 /* 6763 * This file and its contents are supplied under the terms of the 6764 * Common Development and Distribution License ("CDDL"), version 1.0. 6765 * You may only use this file in accordance with the terms of version 6766 * 1.0 of the CDDL. 6767 * 6768 * A full copy of the text of the CDDL should have accompanied this 6769 * source. A copy of the CDDL is also available via the Internet at 6770 * http://www.illumos.org/license/CDDL. 6771 */ 6772 6773 /* 6774 * Copyright 2014-2016 PALO, Richard. 6775 */ 6776 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 2 6777 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 6778 extern int memcmp(const void *, const void *, size_t); 6779 extern void *memcpy(void *, const void *, size_t); 6780 extern void *memmove(void *, const void *, size_t); 6781 extern void *memset(void *, int, size_t); 6782 extern char *strcat(char *, const char *); 6783 extern int strcmp(const char *, const char *); 6784 extern char *strcpy(char *, const char *); 6785 extern int strcoll(const char *, const char *); 6786 extern size_t strcspn(const char *, const char *); 6787 extern char *strerror(int); 6788 extern size_t strlen(const char *); 6789 extern char *strncat(char *, const char *, size_t); 6790 extern int strncmp(const char *, const char *, size_t); 6791 extern char *strncpy(char *, const char *, size_t); 6792 extern size_t strspn(const char *, const char *); 6793 extern char *strtok(char *, const char *); 6794 extern size_t strxfrm(char *, const char *, size_t); 6795 6796 /* 6797 * The C++ Standard (ISO/IEC 14882:1998) specifies that each of the 6798 * function signatures for the following functions be replaced by 6799 * two declarations, both of which have the same behavior. 6800 */ 6801 # 139 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/string_iso.h" 6802 extern void *memchr(const void *, int, size_t); 6803 extern char *strchr(const char *, int); 6804 extern char *strpbrk(const char *, const char *); 6805 extern char *strrchr(const char *, int); 6806 extern char *strstr(const char *, const char *); 6807 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 2 6808 6809 /* 6810 * Allow global visibility for symbols defined in 6811 * C++ "std" namespace in <iso/string_iso.h>. 6812 */ 6813 # 72 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/string.h" 6814 extern int strerror_r(int, char *, size_t); 6815 6816 6817 6818 6819 6820 extern char *strtok_r(char *, const char *, 6821 char **); 6822 6823 6824 6825 6826 extern void *memccpy(void *, const void *, 6827 int, size_t); 6828 6829 6830 6831 6832 extern char *stpcpy(char *, const char *); 6833 extern char *stpncpy(char *, const char *, size_t); 6834 extern char *strndup(const char *, size_t); 6835 extern size_t strnlen(const char *, size_t); 6836 extern char *strsignal(int); 6837 6838 6839 6840 6841 6842 6843 extern int strcoll_l(const char *, const char *, locale_t); 6844 extern size_t strxfrm_l(char *, const char *, 6845 size_t, locale_t); 6846 extern int strcasecmp_l(const char *, const char *, locale_t); 6847 extern int strncasecmp_l(const char *, const char *, size_t, locale_t); 6848 extern char *strerror_l(int, locale_t); 6849 6850 6851 6852 6853 6854 /* Note that some of these are also declared in strings.h for XPG4_2+ */ 6855 extern void explicit_bzero(void *, size_t); 6856 extern int uucopy(const void *, void *, size_t); 6857 extern int uucopystr(const void *, void *, size_t); 6858 extern int ffs(int); 6859 extern int ffsl(long); 6860 extern int ffsll(long long); 6861 extern int fls(int); 6862 extern int flsl(long); 6863 extern int flsll(long long); 6864 extern void *memmem(const void *, size_t, const void *, size_t); 6865 extern char *strcasestr(const char *, const char *); 6866 extern char *strnstr(const char *, const char *, size_t); 6867 extern size_t strlcpy(char *, const char *, size_t); 6868 extern size_t strlcat(char *, const char *, size_t); 6869 extern char *strsep(char **stringp, const char *delim); 6870 extern char *strchrnul(const char *, int); 6871 extern char *strcasestr_l(const char *, const char *, locale_t); 6872 extern int strcasecmp(const char *, const char *); 6873 extern int strncasecmp(const char *, const char *, size_t); 6874 6875 6876 6877 6878 6879 extern char *strdup(const char *); 6880 6881 6882 6883 6884 6885 6886 /* 6887 * gcc provides this inlining facility but Studio C does not. 6888 * We should use it exclusively once Studio C also provides it. 6889 */ 6890 extern void *__builtin_alloca(size_t); 6891 # 37 "setup_temporary_directory.c" 2 6892 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 1 6893 /* 6894 * CDDL HEADER START 6895 * 6896 * The contents of this file are subject to the terms of the 6897 * Common Development and Distribution License, Version 1.0 only 6898 * (the "License"). You may not use this file except in compliance 6899 * with the License. 6900 * 6901 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6902 * or http://www.opensolaris.org/os/licensing. 6903 * See the License for the specific language governing permissions 6904 * and limitations under the License. 6905 * 6906 * When distributing Covered Code, include this CDDL HEADER in each 6907 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6908 * If applicable, add the following below this CDDL HEADER, with the 6909 * fields enclosed by brackets "[]" replaced with your own identifying 6910 * information: Portions Copyright [yyyy] [name of copyright owner] 6911 * 6912 * CDDL HEADER END 6913 */ 6914 /* 6915 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 6916 * Use is subject to license terms. 6917 */ 6918 6919 /* 6920 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6921 * 6922 * Portions of this file developed by Garrett D'Amore are licensed 6923 * under the terms of the Common Development and Distribution License (CDDL) 6924 * version 1.0 only. The use of subsequent versions of the License are 6925 * is specifically prohibited unless those terms are not in conflict with 6926 * version 1.0 of the License. You can find this license on-line at 6927 * http://www.illumos.org/license/CDDL 6928 */ 6929 6930 6931 6932 6933 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 1 6934 /* 6935 * CDDL HEADER START 6936 * 6937 * The contents of this file are subject to the terms of the 6938 * Common Development and Distribution License, Version 1.0 only 6939 * (the "License"). You may not use this file except in compliance 6940 * with the License. 6941 * 6942 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6943 * or http://www.opensolaris.org/os/licensing. 6944 * See the License for the specific language governing permissions 6945 * and limitations under the License. 6946 * 6947 * When distributing Covered Code, include this CDDL HEADER in each 6948 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6949 * If applicable, add the following below this CDDL HEADER, with the 6950 * fields enclosed by brackets "[]" replaced with your own identifying 6951 * information: Portions Copyright [yyyy] [name of copyright owner] 6952 * 6953 * CDDL HEADER END 6954 */ 6955 /* 6956 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 6957 * Copyright 2014 PALO, Richard. 6958 * 6959 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 6960 * Use is subject to license terms. 6961 */ 6962 6963 /* Copyright (c) 1988 AT&T */ 6964 /* All Rights Reserved */ 6965 6966 6967 /* 6968 * An application should not include this header directly. Instead it 6969 * should be included only through the inclusion of other Sun headers. 6970 * 6971 * The contents of this header is limited to identifiers specified in the 6972 * C Standard. Any new identifiers specified in future amendments to the 6973 * C Standard must be placed in this header. If these new identifiers 6974 * are required to also be in the C++ Standard "std" namespace, then for 6975 * anything other than macro definitions, corresponding "using" directives 6976 * must also be added to <locale.h>. 6977 */ 6978 6979 6980 6981 6982 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 6983 /* 6984 * CDDL HEADER START 6985 * 6986 * The contents of this file are subject to the terms of the 6987 * Common Development and Distribution License (the "License"). 6988 * You may not use this file except in compliance with the License. 6989 * 6990 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 6991 * or http://www.opensolaris.org/os/licensing. 6992 * See the License for the specific language governing permissions 6993 * and limitations under the License. 6994 * 6995 * When distributing Covered Code, include this CDDL HEADER in each 6996 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 6997 * If applicable, add the following below this CDDL HEADER, with the 6998 * fields enclosed by brackets "[]" replaced with your own identifying 6999 * information: Portions Copyright [yyyy] [name of copyright owner] 7000 * 7001 * CDDL HEADER END 7002 */ 7003 7004 /* 7005 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 7006 * Copyright 2016 Joyent, Inc. 7007 * 7008 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 7009 * Use is subject to license terms. 7010 */ 7011 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2 7012 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 7013 /* 7014 * This file and its contents are supplied under the terms of the 7015 * Common Development and Distribution License ("CDDL"), version 1.0. 7016 * You may only use this file in accordance with the terms of version 7017 * 1.0 of the CDDL. 7018 * 7019 * A full copy of the text of the CDDL should have accompanied this 7020 * source. A copy of the CDDL is also available via the Internet at 7021 * http://www.illumos.org/license/CDDL. 7022 */ 7023 7024 /* 7025 * Copyright 2014-2016 PALO, Richard. 7026 */ 7027 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 2 7028 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 7029 struct lconv { 7030 char *decimal_point; 7031 char *thousands_sep; 7032 char *grouping; 7033 char *int_curr_symbol; 7034 char *currency_symbol; 7035 char *mon_decimal_point; 7036 char *mon_thousands_sep; 7037 char *mon_grouping; 7038 char *positive_sign; 7039 char *negative_sign; 7040 char int_frac_digits; 7041 char frac_digits; 7042 char p_cs_precedes; 7043 char p_sep_by_space; 7044 char n_cs_precedes; 7045 char n_sep_by_space; 7046 char p_sign_posn; 7047 char n_sign_posn; 7048 7049 /* 7050 * New in IEEE Std 1003.1-2001 for alignment with the ISO/IEC 9899:1999 7051 * standard. Namespace and binary compatibility dictate that visibility 7052 * of these new members be limited. Visibility is limited to a strictly 7053 * conforming ANSI C environment (-Xc) or if _LCONV_C99 is defined. 7054 */ 7055 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 7056 }; 7057 # 104 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/locale_iso.h" 7058 extern char *setlocale(int, const char *); 7059 extern struct lconv *localeconv(void); 7060 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2 7061 7062 7063 7064 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1 7065 /* 7066 * CDDL HEADER START 7067 * 7068 * The contents of this file are subject to the terms of the 7069 * Common Development and Distribution License (the "License"). 7070 * You may not use this file except in compliance with the License. 7071 * 7072 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7073 * or http://www.opensolaris.org/os/licensing. 7074 * See the License for the specific language governing permissions 7075 * and limitations under the License. 7076 * 7077 * When distributing Covered Code, include this CDDL HEADER in each 7078 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7079 * If applicable, add the following below this CDDL HEADER, with the 7080 * fields enclosed by brackets "[]" replaced with your own identifying 7081 * information: Portions Copyright [yyyy] [name of copyright owner] 7082 * 7083 * CDDL HEADER END 7084 */ 7085 /* 7086 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7087 * 7088 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 7089 * Use is subject to license terms. 7090 */ 7091 7092 7093 7094 7095 7096 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 7097 /* 7098 * CDDL HEADER START 7099 * 7100 * The contents of this file are subject to the terms of the 7101 * Common Development and Distribution License (the "License"). 7102 * You may not use this file except in compliance with the License. 7103 * 7104 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7105 * or http://www.opensolaris.org/os/licensing. 7106 * See the License for the specific language governing permissions 7107 * and limitations under the License. 7108 * 7109 * 7110 * When distributing Covered Code, include this CDDL HEADER in each 7111 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7112 * If applicable, add the following below this CDDL HEADER, with the 7113 * fields enclosed by brackets "[]" replaced with your own identifying 7114 * information: Portions Copyright [yyyy] [name of copyright owner] 7115 * 7116 * CDDL HEADER END 7117 */ 7118 7119 /* 7120 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 7121 * Use is subject to license terms. 7122 * Copyright 2016 Joyent, Inc. 7123 */ 7124 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 2 7125 7126 7127 7128 7129 7130 /* 7131 * wchar_t is a built-in type in standard C++ and as such is not 7132 * defined here when using standard C++. However, the GNU compiler 7133 * fixincludes utility nonetheless creates its own version of this 7134 * header for use by gcc and g++. In that version it adds a redundant 7135 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 7136 * header we need to include the following magic comment: 7137 * 7138 * we must use the C++ compiler's type 7139 * 7140 * The above comment should not be removed or changed until GNU 7141 * gcc/fixinc/inclhack.def is updated to bypass this header. 7142 */ 7143 # 67 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 7144 extern char *dcgettext(const char *, const char *, const int); 7145 extern char *dgettext(const char *, const char *); 7146 extern char *gettext(const char *); 7147 extern char *textdomain(const char *); 7148 extern char *bindtextdomain(const char *, const char *); 7149 7150 /* 7151 * LI18NUX 2000 Globalization Specification Version 1.0 7152 * with Amendment 2 7153 */ 7154 extern char *dcngettext(const char *, const char *, 7155 const char *, unsigned long int, int); 7156 extern char *dngettext(const char *, const char *, 7157 const char *, unsigned long int); 7158 extern char *ngettext(const char *, const char *, unsigned long int); 7159 extern char *bind_textdomain_codeset(const char *, const char *); 7160 7161 /* Word handling functions --- requires dynamic linking */ 7162 /* Warning: these are experimental and subject to change. */ 7163 extern int wdinit(void); 7164 extern int wdchkind(wchar_t); 7165 extern int wdbindf(wchar_t, wchar_t, int); 7166 extern wchar_t *wddelim(wchar_t, wchar_t, int); 7167 extern wchar_t mcfiller(void); 7168 extern int mcwrap(void); 7169 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 2 7170 7171 7172 /* 7173 * Allow global visibility for symbols defined in 7174 * C++ "std" namespace in <iso/locale_iso.h>. 7175 */ 7176 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 7177 /* 7178 * These were added in POSIX 2008 as part of the newlocale() specification. 7179 */ 7180 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/locale.h" 7181 extern locale_t duplocale(locale_t); 7182 extern void freelocale(locale_t); 7183 extern locale_t newlocale(int, const char *, locale_t); 7184 extern locale_t uselocale(locale_t); 7185 7186 7187 extern locale_t __global_locale(void); 7188 # 38 "setup_temporary_directory.c" 2 7189 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/libintl.h" 1 7190 /* 7191 * CDDL HEADER START 7192 * 7193 * The contents of this file are subject to the terms of the 7194 * Common Development and Distribution License (the "License"). 7195 * You may not use this file except in compliance with the License. 7196 * 7197 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7198 * or http://www.opensolaris.org/os/licensing. 7199 * See the License for the specific language governing permissions 7200 * and limitations under the License. 7201 * 7202 * When distributing Covered Code, include this CDDL HEADER in each 7203 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7204 * If applicable, add the following below this CDDL HEADER, with the 7205 * fields enclosed by brackets "[]" replaced with your own identifying 7206 * information: Portions Copyright [yyyy] [name of copyright owner] 7207 * 7208 * CDDL HEADER END 7209 */ 7210 /* 7211 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7212 * 7213 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 7214 * Use is subject to license terms. 7215 */ 7216 # 39 "setup_temporary_directory.c" 2 7217 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 1 7218 /* 7219 * CDDL HEADER START 7220 * 7221 * The contents of this file are subject to the terms of the 7222 * Common Development and Distribution License, Version 1.0 only 7223 * (the "License"). You may not use this file except in compliance 7224 * with the License. 7225 * 7226 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7227 * or http://www.opensolaris.org/os/licensing. 7228 * See the License for the specific language governing permissions 7229 * and limitations under the License. 7230 * 7231 * When distributing Covered Code, include this CDDL HEADER in each 7232 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7233 * If applicable, add the following below this CDDL HEADER, with the 7234 * fields enclosed by brackets "[]" replaced with your own identifying 7235 * information: Portions Copyright [yyyy] [name of copyright owner] 7236 * 7237 * CDDL HEADER END 7238 */ 7239 /* Copyright (c) 1988 AT&T */ 7240 /* All Rights Reserved */ 7241 7242 7243 /* 7244 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7245 * 7246 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7247 * Use is subject to license terms. 7248 */ 7249 7250 7251 7252 7253 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 7254 /* 7255 * CDDL HEADER START 7256 * 7257 * The contents of this file are subject to the terms of the 7258 * Common Development and Distribution License (the "License"). 7259 * You may not use this file except in compliance with the License. 7260 * 7261 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7262 * or http://www.opensolaris.org/os/licensing. 7263 * See the License for the specific language governing permissions 7264 * and limitations under the License. 7265 * 7266 * When distributing Covered Code, include this CDDL HEADER in each 7267 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7268 * If applicable, add the following below this CDDL HEADER, with the 7269 * fields enclosed by brackets "[]" replaced with your own identifying 7270 * information: Portions Copyright [yyyy] [name of copyright owner] 7271 * 7272 * CDDL HEADER END 7273 */ 7274 7275 /* 7276 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 7277 * Copyright 2016 Joyent, Inc. 7278 * 7279 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 7280 * Use is subject to license terms. 7281 */ 7282 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 2 7283 7284 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 7285 /* 7286 * CDDL HEADER START 7287 * 7288 * The contents of this file are subject to the terms of the 7289 * Common Development and Distribution License (the "License"). 7290 * You may not use this file except in compliance with the License. 7291 * 7292 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7293 * or http://www.opensolaris.org/os/licensing. 7294 * See the License for the specific language governing permissions 7295 * and limitations under the License. 7296 * 7297 * When distributing Covered Code, include this CDDL HEADER in each 7298 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7299 * If applicable, add the following below this CDDL HEADER, with the 7300 * fields enclosed by brackets "[]" replaced with your own identifying 7301 * information: Portions Copyright [yyyy] [name of copyright owner] 7302 * 7303 * CDDL HEADER END 7304 */ 7305 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7306 /* All Rights Reserved */ 7307 7308 7309 /* 7310 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 7311 * Use is subject to license terms. 7312 * 7313 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 7314 * Copyright 2016 Joyent, Inc. 7315 */ 7316 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 2 7317 7318 7319 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 7320 /* 7321 * CDDL HEADER START 7322 * 7323 * The contents of this file are subject to the terms of the 7324 * Common Development and Distribution License (the "License"). 7325 * You may not use this file except in compliance with the License. 7326 * 7327 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7328 * or http://www.opensolaris.org/os/licensing. 7329 * See the License for the specific language governing permissions 7330 * and limitations under the License. 7331 * 7332 * When distributing Covered Code, include this CDDL HEADER in each 7333 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7334 * If applicable, add the following below this CDDL HEADER, with the 7335 * fields enclosed by brackets "[]" replaced with your own identifying 7336 * information: Portions Copyright [yyyy] [name of copyright owner] 7337 * 7338 * CDDL HEADER END 7339 */ 7340 7341 /* 7342 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7343 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7344 */ 7345 7346 /* Copyright (c) 1988 AT&T */ 7347 /* All Rights Reserved */ 7348 7349 /* 7350 * User-visible pieces of the ANSI C standard I/O package. 7351 */ 7352 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 2 7353 7354 7355 7356 7357 7358 7359 struct passwd { 7360 char *pw_name; 7361 char *pw_passwd; 7362 uid_t pw_uid; 7363 gid_t pw_gid; 7364 char *pw_age; 7365 char *pw_comment; 7366 char *pw_gecos; 7367 char *pw_dir; 7368 char *pw_shell; 7369 }; 7370 7371 7372 struct comment { 7373 char *c_dept; 7374 char *c_name; 7375 char *c_acct; 7376 char *c_bin; 7377 }; 7378 7379 7380 extern struct passwd *getpwuid(uid_t); /* MT-unsafe */ 7381 extern struct passwd *getpwnam(const char *); /* MT-unsafe */ 7382 7383 7384 extern struct passwd *getpwent_r(struct passwd *, char *, int); 7385 extern struct passwd *fgetpwent_r(FILE *, struct passwd *, char *, int); 7386 extern struct passwd *fgetpwent(FILE *); /* MT-unsafe */ 7387 extern int putpwent(const struct passwd *, FILE *); 7388 7389 7390 7391 7392 extern void endpwent(void); 7393 extern struct passwd *getpwent(void); /* MT-unsafe */ 7394 extern void setpwent(void); 7395 7396 7397 /* 7398 * getpwuid_r() & getpwnam_r() prototypes are defined here. 7399 */ 7400 7401 /* 7402 * Previous releases of Solaris, starting at 2.3, provided definitions of 7403 * various functions as specified in POSIX.1c, Draft 6. For some of these 7404 * functions, the final POSIX 1003.1c standard had a different number of 7405 * arguments and return values. 7406 * 7407 * The following segment of this header provides support for the standard 7408 * interfaces while supporting applications written under earlier 7409 * releases. The application defines appropriate values of the feature 7410 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate 7411 * whether it was written to expect the Draft 6 or standard versions of 7412 * these interfaces, before including this header. This header then 7413 * provides a mapping from the source version of the interface to an 7414 * appropriate binary interface. Such mappings permit an application 7415 * to be built from libraries and objects which have mixed expectations 7416 * of the definitions of these functions. 7417 * 7418 * For applications using the Draft 6 definitions, the binary symbol is the 7419 * same as the source symbol, and no explicit mapping is needed. For the 7420 * standard interface, the function func() is mapped to the binary symbol 7421 * _posix_func(). The preferred mechanism for the remapping is a compiler 7422 * #pragma. If the compiler does not provide such a #pragma, the header file 7423 * defines a static function func() which calls the _posix_func() version; 7424 * this has to be done instead of #define since POSIX specifies that an 7425 * application can #undef the symbol and still be bound to the correct 7426 * implementation. Unfortunately, the statics confuse lint so we fallback to 7427 * #define in that case. 7428 * 7429 * NOTE: Support for the Draft 6 definitions is provided for compatibility 7430 * only. New applications/libraries should use the standard definitions. 7431 */ 7432 # 166 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pwd.h" 7433 extern struct passwd *getpwuid_r(uid_t, struct passwd *, char *, int); 7434 extern struct passwd *getpwnam_r(const char *, struct passwd *, char *, int); 7435 # 40 "setup_temporary_directory.c" 2 7436 7437 /* 7438 * consolidation pkg command library includes 7439 */ 7440 7441 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 1 7442 /* 7443 * CDDL HEADER START 7444 * 7445 * The contents of this file are subject to the terms of the 7446 * Common Development and Distribution License (the "License"). 7447 * You may not use this file except in compliance with the License. 7448 * 7449 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7450 * or http://www.opensolaris.org/os/licensing. 7451 * See the License for the specific language governing permissions 7452 * and limitations under the License. 7453 * 7454 * When distributing Covered Code, include this CDDL HEADER in each 7455 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7456 * If applicable, add the following below this CDDL HEADER, with the 7457 * fields enclosed by brackets "[]" replaced with your own identifying 7458 * information: Portions Copyright [yyyy] [name of copyright owner] 7459 * 7460 * CDDL HEADER END 7461 */ 7462 7463 /* 7464 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 7465 * Use is subject to license terms. 7466 */ 7467 7468 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7469 /* All Rights Reserved */ 7470 # 38 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 7471 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 7472 /* 7473 * CDDL HEADER START 7474 * 7475 * The contents of this file are subject to the terms of the 7476 * Common Development and Distribution License (the "License"). 7477 * You may not use this file except in compliance with the License. 7478 * 7479 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7480 * or http://www.opensolaris.org/os/licensing. 7481 * See the License for the specific language governing permissions 7482 * and limitations under the License. 7483 * 7484 * When distributing Covered Code, include this CDDL HEADER in each 7485 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7486 * If applicable, add the following below this CDDL HEADER, with the 7487 * fields enclosed by brackets "[]" replaced with your own identifying 7488 * information: Portions Copyright [yyyy] [name of copyright owner] 7489 * 7490 * CDDL HEADER END 7491 */ 7492 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7493 /* All Rights Reserved */ 7494 7495 7496 /* 7497 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 7498 * Use is subject to license terms. 7499 * 7500 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 7501 * Copyright 2016 Joyent, Inc. 7502 */ 7503 # 39 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 7504 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 7505 /* 7506 * CDDL HEADER START 7507 * 7508 * The contents of this file are subject to the terms of the 7509 * Common Development and Distribution License (the "License"). 7510 * You may not use this file except in compliance with the License. 7511 * 7512 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7513 * or http://www.opensolaris.org/os/licensing. 7514 * See the License for the specific language governing permissions 7515 * and limitations under the License. 7516 * 7517 * When distributing Covered Code, include this CDDL HEADER in each 7518 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7519 * If applicable, add the following below this CDDL HEADER, with the 7520 * fields enclosed by brackets "[]" replaced with your own identifying 7521 * information: Portions Copyright [yyyy] [name of copyright owner] 7522 * 7523 * CDDL HEADER END 7524 */ 7525 7526 /* 7527 * Copyright (c) 2013 Gary Mills 7528 * 7529 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 7530 * Use is subject to license terms. 7531 */ 7532 7533 /* Copyright (c) 1988 AT&T */ 7534 /* All Rights Reserved */ 7535 7536 7537 7538 7539 7540 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 7541 /* 7542 * CDDL HEADER START 7543 * 7544 * The contents of this file are subject to the terms of the 7545 * Common Development and Distribution License (the "License"). 7546 * You may not use this file except in compliance with the License. 7547 * 7548 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7549 * or http://www.opensolaris.org/os/licensing. 7550 * See the License for the specific language governing permissions 7551 * and limitations under the License. 7552 * 7553 * When distributing Covered Code, include this CDDL HEADER in each 7554 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7555 * If applicable, add the following below this CDDL HEADER, with the 7556 * fields enclosed by brackets "[]" replaced with your own identifying 7557 * information: Portions Copyright [yyyy] [name of copyright owner] 7558 * 7559 * CDDL HEADER END 7560 */ 7561 7562 /* 7563 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 7564 * Copyright 2016 Joyent, Inc. 7565 * 7566 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 7567 * Use is subject to license terms. 7568 */ 7569 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 7570 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 7571 /* 7572 * CDDL HEADER START 7573 * 7574 * The contents of this file are subject to the terms of the 7575 * Common Development and Distribution License (the "License"). 7576 * You may not use this file except in compliance with the License. 7577 * 7578 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7579 * or http://www.opensolaris.org/os/licensing. 7580 * See the License for the specific language governing permissions 7581 * and limitations under the License. 7582 * 7583 * 7584 * When distributing Covered Code, include this CDDL HEADER in each 7585 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7586 * If applicable, add the following below this CDDL HEADER, with the 7587 * fields enclosed by brackets "[]" replaced with your own identifying 7588 * information: Portions Copyright [yyyy] [name of copyright owner] 7589 * 7590 * CDDL HEADER END 7591 */ 7592 7593 /* 7594 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 7595 * Use is subject to license terms. 7596 * Copyright 2016 Joyent, Inc. 7597 */ 7598 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 7599 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 1 7600 /* 7601 * CDDL HEADER START 7602 * 7603 * The contents of this file are subject to the terms of the 7604 * Common Development and Distribution License, Version 1.0 only 7605 * (the "License"). You may not use this file except in compliance 7606 * with the License. 7607 * 7608 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7609 * or http://www.opensolaris.org/os/licensing. 7610 * See the License for the specific language governing permissions 7611 * and limitations under the License. 7612 * 7613 * When distributing Covered Code, include this CDDL HEADER in each 7614 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7615 * If applicable, add the following below this CDDL HEADER, with the 7616 * fields enclosed by brackets "[]" replaced with your own identifying 7617 * information: Portions Copyright [yyyy] [name of copyright owner] 7618 * 7619 * CDDL HEADER END 7620 */ 7621 /* 7622 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 7623 * Use is subject to license terms. 7624 */ 7625 7626 /* Copyright (c) 1988 AT&T */ 7627 /* All Rights Reserved */ 7628 7629 7630 /* 7631 * An application should not include this header directly. Instead it 7632 * should be included only through the inclusion of other Sun headers. 7633 * 7634 * The contents of this header is limited to identifiers specified in the 7635 * C Standard. Any new identifiers specified in future amendments to the 7636 * C Standard must be placed in this header. If these new identifiers 7637 * are required to also be in the C++ Standard "std" namespace, then for 7638 * anything other than macro definitions, corresponding "using" directives 7639 * must also be added to <limits.h>. 7640 */ 7641 7642 7643 7644 7645 #pragma ident "%Z%%M% %I% %E% SMI" 7646 7647 7648 7649 7650 7651 /* 7652 * Sizes of integral types 7653 */ 7654 # 87 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/limits_iso.h" 7655 /* min value of a "long int" */ 7656 7657 7658 7659 7660 7661 /* min value of a long long */ 7662 7663 /* max value of a long long */ 7664 7665 /* max value of "unsigned long long */ 7666 # 39 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 7667 7668 /* 7669 * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C 7670 * committee's working draft for the revision of the current ISO C standard, 7671 * ISO/IEC 9899:1990 Programming language - C. These are not currently 7672 * required by any standard but constitute a useful, general purpose set 7673 * of type definitions and limits which is namespace clean with respect to 7674 * all standards. 7675 */ 7676 7677 7678 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_limits.h" 1 7679 /* 7680 * CDDL HEADER START 7681 * 7682 * The contents of this file are subject to the terms of the 7683 * Common Development and Distribution License, Version 1.0 only 7684 * (the "License"). You may not use this file except in compliance 7685 * with the License. 7686 * 7687 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7688 * or http://www.opensolaris.org/os/licensing. 7689 * See the License for the specific language governing permissions 7690 * and limitations under the License. 7691 * 7692 * When distributing Covered Code, include this CDDL HEADER in each 7693 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7694 * If applicable, add the following below this CDDL HEADER, with the 7695 * fields enclosed by brackets "[]" replaced with your own identifying 7696 * information: Portions Copyright [yyyy] [name of copyright owner] 7697 * 7698 * CDDL HEADER END 7699 */ 7700 /* 7701 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7702 * 7703 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 7704 * Use is subject to license terms. 7705 */ 7706 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 2 7707 # 62 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7708 /* 7709 * ARG_MAX is calculated as follows: 7710 * NCARGS - space for other stuff on initial stack 7711 * like aux vectors, saved registers, etc.. 7712 */ 7713 # 97 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7714 /* 7715 * POSIX conformant definitions - An implementation may define 7716 * other symbols which reflect the actual implementation. Alternate 7717 * definitions may not be as restrictive as the POSIX definitions. 7718 */ 7719 # 140 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7720 /* POSIX.1c conformant */ 7721 7722 7723 7724 7725 7726 /* UNIX 03 conformant */ 7727 7728 7729 7730 7731 7732 /* 7733 * POSIX.2 and XPG4-XSH4 conformant definitions 7734 */ 7735 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7736 /* UNIX 03 conformant */ 7737 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7738 /* 7739 * For dual definitions for PASS_MAX and sysconf.c 7740 */ 7741 # 201 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7742 /* NLS printf() and scanf() */ 7743 # 216 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7744 /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */ 7745 7746 7747 7748 /* of a double */ 7749 7750 7751 /* of a "float" */ 7752 7753 7754 /* Marked as LEGACY in SUSv1 and removed in SUSv2 */ 7755 7756 7757 /* of a double */ 7758 7759 /* of a float */ 7760 # 248 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7761 /* 7762 * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the 7763 * related text states: 7764 * 7765 * A definition of one of the values from Table 2-5 shall be omitted from the 7766 * <limits.h> on specific implementations where the corresponding value is 7767 * equal to or greater than the stated minimum, but where the value can vary 7768 * depending on the file to which it is applied. The actual value supported for 7769 * a specific pathname shall be provided by the pathconf() (5.7.1) function. 7770 * 7771 * This is clear that any machine supporting multiple file system types 7772 * and/or a network can not include this define, regardless of protection 7773 * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags. 7774 * 7775 * #define NAME_MAX 14 7776 */ 7777 # 297 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 7778 /* Increased for illumos */ 7779 # 40 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 7780 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 7781 /* 7782 * CDDL HEADER START 7783 * 7784 * The contents of this file are subject to the terms of the 7785 * Common Development and Distribution License (the "License"). 7786 * You may not use this file except in compliance with the License. 7787 * 7788 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7789 * or http://www.opensolaris.org/os/licensing. 7790 * See the License for the specific language governing permissions 7791 * and limitations under the License. 7792 * 7793 * When distributing Covered Code, include this CDDL HEADER in each 7794 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7795 * If applicable, add the following below this CDDL HEADER, with the 7796 * fields enclosed by brackets "[]" replaced with your own identifying 7797 * information: Portions Copyright [yyyy] [name of copyright owner] 7798 * 7799 * CDDL HEADER END 7800 */ 7801 7802 /* 7803 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7804 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 7805 */ 7806 7807 /* Copyright (c) 1988 AT&T */ 7808 /* All Rights Reserved */ 7809 7810 /* 7811 * User-visible pieces of the ANSI C standard I/O package. 7812 */ 7813 # 41 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 7814 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 1 7815 /* 7816 * CDDL HEADER START 7817 * 7818 * The contents of this file are subject to the terms of the 7819 * Common Development and Distribution License, Version 1.0 only 7820 * (the "License"). You may not use this file except in compliance 7821 * with the License. 7822 * 7823 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7824 * or http://www.opensolaris.org/os/licensing. 7825 * See the License for the specific language governing permissions 7826 * and limitations under the License. 7827 * 7828 * When distributing Covered Code, include this CDDL HEADER in each 7829 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7830 * If applicable, add the following below this CDDL HEADER, with the 7831 * fields enclosed by brackets "[]" replaced with your own identifying 7832 * information: Portions Copyright [yyyy] [name of copyright owner] 7833 * 7834 * CDDL HEADER END 7835 */ 7836 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7837 /* All Rights Reserved */ 7838 7839 7840 7841 7842 7843 #pragma ident "%Z%%M% %I% %E% SMI" 7844 7845 7846 7847 7848 7849 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 7850 /* 7851 * CDDL HEADER START 7852 * 7853 * The contents of this file are subject to the terms of the 7854 * Common Development and Distribution License (the "License"). 7855 * You may not use this file except in compliance with the License. 7856 * 7857 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7858 * or http://www.opensolaris.org/os/licensing. 7859 * See the License for the specific language governing permissions 7860 * and limitations under the License. 7861 * 7862 * When distributing Covered Code, include this CDDL HEADER in each 7863 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7864 * If applicable, add the following below this CDDL HEADER, with the 7865 * fields enclosed by brackets "[]" replaced with your own identifying 7866 * information: Portions Copyright [yyyy] [name of copyright owner] 7867 * 7868 * CDDL HEADER END 7869 */ 7870 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7871 /* All Rights Reserved */ 7872 7873 7874 /* 7875 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 7876 * Use is subject to license terms. 7877 * 7878 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 7879 * Copyright 2016 Joyent, Inc. 7880 */ 7881 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgdev.h" 2 7882 7883 struct pkgdev { 7884 int rdonly; 7885 int mntflg; 7886 longlong_t capacity; /* number of 512-blocks on device */ 7887 char *name; 7888 char *dirname; 7889 char *pathname; 7890 char *mount; 7891 char *fstyp; 7892 char *cdevice; 7893 char *bdevice; 7894 char *norewind; 7895 }; 7896 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 7897 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 7898 /* 7899 * CDDL HEADER START 7900 * 7901 * The contents of this file are subject to the terms of the 7902 * Common Development and Distribution License (the "License"). 7903 * You may not use this file except in compliance with the License. 7904 * 7905 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7906 * or http://www.opensolaris.org/os/licensing. 7907 * See the License for the specific language governing permissions 7908 * and limitations under the License. 7909 * 7910 * When distributing Covered Code, include this CDDL HEADER in each 7911 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7912 * If applicable, add the following below this CDDL HEADER, with the 7913 * fields enclosed by brackets "[]" replaced with your own identifying 7914 * information: Portions Copyright [yyyy] [name of copyright owner] 7915 * 7916 * CDDL HEADER END 7917 */ 7918 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 7919 /* All Rights Reserved */ 7920 7921 /* 7922 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 7923 * Use is subject to license terms. 7924 */ 7925 7926 7927 7928 7929 #pragma ident "%Z%%M% %I% %E% SMI" 7930 7931 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 7932 /* 7933 * CDDL HEADER START 7934 * 7935 * The contents of this file are subject to the terms of the 7936 * Common Development and Distribution License (the "License"). 7937 * You may not use this file except in compliance with the License. 7938 * 7939 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 7940 * or http://www.opensolaris.org/os/licensing. 7941 * See the License for the specific language governing permissions 7942 * and limitations under the License. 7943 * 7944 * When distributing Covered Code, include this CDDL HEADER in each 7945 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 7946 * If applicable, add the following below this CDDL HEADER, with the 7947 * fields enclosed by brackets "[]" replaced with your own identifying 7948 * information: Portions Copyright [yyyy] [name of copyright owner] 7949 * 7950 * CDDL HEADER END 7951 */ 7952 /* Copyright (c) 1988 AT&T */ 7953 /* All Rights Reserved */ 7954 7955 7956 /* 7957 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 7958 * 7959 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 7960 * Use is subject to license terms. 7961 */ 7962 /* 7963 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 7964 * Copyright 2016 Joyent, Inc. 7965 */ 7966 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 2 7967 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 7968 extern char *errstr; 7969 7970 struct ainfo { 7971 char *local; 7972 mode_t mode; 7973 char owner[64 +1]; 7974 char group[64 +1]; 7975 major_t major; 7976 minor_t minor; 7977 }; 7978 7979 struct cinfo { 7980 long cksum; 7981 fsblkcnt_t size; 7982 time_t modtime; 7983 }; 7984 7985 struct pinfo { 7986 char status; 7987 char pkg[64 +1]; 7988 char editflag; 7989 char aclass[64 +1]; 7990 struct pinfo 7991 *next; 7992 }; 7993 7994 struct cfent { 7995 short volno; 7996 char ftype; 7997 char pkg_class[64 +1]; 7998 int pkg_class_idx; 7999 char *path; 8000 struct ainfo ainfo; 8001 struct cinfo cinfo; 8002 short npkgs; 8003 struct pinfo 8004 *pinfo; 8005 }; 8006 8007 /* averify() & cverify() error codes */ 8008 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 8009 # 1 "/usr/include/openssl/bio.h" 1 3 4 8010 /* crypto/bio/bio.h */ 8011 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 8012 * All rights reserved. 8013 * 8014 * This package is an SSL implementation written 8015 * by Eric Young (eay@cryptsoft.com). 8016 * The implementation was written so as to conform with Netscapes SSL. 8017 * 8018 * This library is free for commercial and non-commercial use as long as 8019 * the following conditions are aheared to. The following conditions 8020 * apply to all code found in this distribution, be it the RC4, RSA, 8021 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 8022 * included with this distribution is covered by the same copyright terms 8023 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 8024 * 8025 * Copyright remains Eric Young's, and as such any Copyright notices in 8026 * the code are not to be removed. 8027 * If this package is used in a product, Eric Young should be given attribution 8028 * as the author of the parts of the library used. 8029 * This can be in the form of a textual message at program startup or 8030 * in documentation (online or textual) provided with the package. 8031 * 8032 * Redistribution and use in source and binary forms, with or without 8033 * modification, are permitted provided that the following conditions 8034 * are met: 8035 * 1. Redistributions of source code must retain the copyright 8036 * notice, this list of conditions and the following disclaimer. 8037 * 2. Redistributions in binary form must reproduce the above copyright 8038 * notice, this list of conditions and the following disclaimer in the 8039 * documentation and/or other materials provided with the distribution. 8040 * 3. All advertising materials mentioning features or use of this software 8041 * must display the following acknowledgement: 8042 * "This product includes cryptographic software written by 8043 * Eric Young (eay@cryptsoft.com)" 8044 * The word 'cryptographic' can be left out if the rouines from the library 8045 * being used are not cryptographic related :-). 8046 * 4. If you include any Windows specific code (or a derivative thereof) from 8047 * the apps directory (application code) you must include an acknowledgement: 8048 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 8049 * 8050 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 8051 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8052 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 8053 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 8054 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 8055 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 8056 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8057 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 8058 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 8059 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 8060 * SUCH DAMAGE. 8061 * 8062 * The licence and distribution terms for any publically available version or 8063 * derivative of this code cannot be changed. i.e. this code cannot simply be 8064 * copied and put under another distribution licence 8065 * [including the GNU Public Licence.] 8066 */ 8067 8068 8069 8070 8071 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 8072 /* e_os2.h */ 8073 /* ==================================================================== 8074 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 8075 * 8076 * Redistribution and use in source and binary forms, with or without 8077 * modification, are permitted provided that the following conditions 8078 * are met: 8079 * 8080 * 1. Redistributions of source code must retain the above copyright 8081 * notice, this list of conditions and the following disclaimer. 8082 * 8083 * 2. Redistributions in binary form must reproduce the above copyright 8084 * notice, this list of conditions and the following disclaimer in 8085 * the documentation and/or other materials provided with the 8086 * distribution. 8087 * 8088 * 3. All advertising materials mentioning features or use of this 8089 * software must display the following acknowledgment: 8090 * "This product includes software developed by the OpenSSL Project 8091 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8092 * 8093 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8094 * endorse or promote products derived from this software without 8095 * prior written permission. For written permission, please contact 8096 * openssl-core@openssl.org. 8097 * 8098 * 5. Products derived from this software may not be called "OpenSSL" 8099 * nor may "OpenSSL" appear in their names without prior written 8100 * permission of the OpenSSL Project. 8101 * 8102 * 6. Redistributions of any form whatsoever must retain the following 8103 * acknowledgment: 8104 * "This product includes software developed by the OpenSSL Project 8105 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8106 * 8107 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8108 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8109 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8110 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8111 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8112 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8113 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8114 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8115 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8116 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8117 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8118 * OF THE POSSIBILITY OF SUCH DAMAGE. 8119 * ==================================================================== 8120 * 8121 * This product includes cryptographic software written by Eric Young 8122 * (eay@cryptsoft.com). This product includes software written by Tim 8123 * Hudson (tjh@cryptsoft.com). 8124 * 8125 */ 8126 8127 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 8128 /* opensslconf.h */ 8129 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 8130 8131 8132 8133 8134 /* OpenSSL was configured with the following options: */ 8135 # 108 "/usr/include/openssl/opensslconf.h" 3 4 8136 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 8137 asks for it. This is a transient feature that is provided for those 8138 who haven't had the time to do the appropriate changes in their 8139 applications. */ 8140 # 204 "/usr/include/openssl/opensslconf.h" 3 4 8141 /* crypto/opensslconf.h.in */ 8142 8143 /* Generate 80386 code? */ 8144 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 8145 # 65 "/usr/include/openssl/e_os2.h" 3 4 8146 /****************************************************************************** 8147 * Detect operating systems. This probably needs completing. 8148 * The result is that at least one OPENSSL_SYS_os macro should be defined. 8149 * However, if none is defined, Unix is assumed. 8150 **/ 8151 8152 8153 8154 /* ---------------------- Macintosh, before MacOS X ----------------------- */ 8155 8156 8157 8158 8159 8160 /* ---------------------- NetWare ----------------------------------------- */ 8161 8162 8163 8164 8165 8166 /* --------------------- Microsoft operating systems ---------------------- */ 8167 8168 /* 8169 * Note that MSDOS actually denotes 32-bit environments running on top of 8170 * MS-DOS, such as DJGPP one. 8171 */ 8172 8173 8174 8175 8176 8177 /* 8178 * For 32 bit environment, there seems to be the CygWin environment and then 8179 * all the others that try to do the same thing Microsoft does... 8180 */ 8181 # 129 "/usr/include/openssl/e_os2.h" 3 4 8182 /* Anything that tries to look like Microsoft is "Windows" */ 8183 # 138 "/usr/include/openssl/e_os2.h" 3 4 8184 /* 8185 * DLL settings. This part is a bit tough, because it's up to the 8186 * application implementor how he or she will link the application, so it 8187 * requires some macro to be used. 8188 */ 8189 # 152 "/usr/include/openssl/e_os2.h" 3 4 8190 /* ------------------------------- OpenVMS -------------------------------- */ 8191 # 166 "/usr/include/openssl/e_os2.h" 3 4 8192 /* -------------------------------- OS/2 ---------------------------------- */ 8193 8194 8195 8196 8197 8198 /* -------------------------------- Unix ---------------------------------- */ 8199 # 207 "/usr/include/openssl/e_os2.h" 3 4 8200 /* -------------------------------- VOS ----------------------------------- */ 8201 # 218 "/usr/include/openssl/e_os2.h" 3 4 8202 /* ------------------------------ VxWorks --------------------------------- */ 8203 8204 8205 8206 8207 /* -------------------------------- BeOS ---------------------------------- */ 8208 # 234 "/usr/include/openssl/e_os2.h" 3 4 8209 /** 8210 * That's it for OS-specific stuff 8211 *****************************************************************************/ 8212 8213 /* Specials for I/O an exit */ 8214 # 247 "/usr/include/openssl/e_os2.h" 3 4 8215 /*- 8216 * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare 8217 * certain global symbols that, with some compilers under VMS, have to be 8218 * defined and declared explicitely with globaldef and globalref. 8219 * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare 8220 * DLL exports and imports for compilers under Win32. These are a little 8221 * more complicated to use. Basically, for any library that exports some 8222 * global variables, the following code must be present in the header file 8223 * that declares them, before OPENSSL_EXTERN is used: 8224 * 8225 * #ifdef SOME_BUILD_FLAG_MACRO 8226 * # undef OPENSSL_EXTERN 8227 * # define OPENSSL_EXTERN OPENSSL_EXPORT 8228 * #endif 8229 * 8230 * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL 8231 * have some generally sensible values, and for OPENSSL_EXTERN to have the 8232 * value OPENSSL_IMPORT. 8233 */ 8234 # 282 "/usr/include/openssl/e_os2.h" 3 4 8235 /*- 8236 * Macros to allow global variables to be reached through function calls when 8237 * required (if a shared library version requires it, for example. 8238 * The way it's done allows definitions like this: 8239 * 8240 * // in foobar.c 8241 * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) 8242 * // in foobar.h 8243 * OPENSSL_DECLARE_GLOBAL(int,foobar); 8244 * #define foobar OPENSSL_GLOBAL_REF(foobar) 8245 */ 8246 # 63 "/usr/include/openssl/bio.h" 2 3 4 8247 8248 8249 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 8250 /* 8251 * CDDL HEADER START 8252 * 8253 * The contents of this file are subject to the terms of the 8254 * Common Development and Distribution License (the "License"). 8255 * You may not use this file except in compliance with the License. 8256 * 8257 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8258 * or http://www.opensolaris.org/os/licensing. 8259 * See the License for the specific language governing permissions 8260 * and limitations under the License. 8261 * 8262 * When distributing Covered Code, include this CDDL HEADER in each 8263 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8264 * If applicable, add the following below this CDDL HEADER, with the 8265 * fields enclosed by brackets "[]" replaced with your own identifying 8266 * information: Portions Copyright [yyyy] [name of copyright owner] 8267 * 8268 * CDDL HEADER END 8269 */ 8270 8271 /* 8272 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 8273 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 8274 */ 8275 8276 /* Copyright (c) 1988 AT&T */ 8277 /* All Rights Reserved */ 8278 8279 /* 8280 * User-visible pieces of the ANSI C standard I/O package. 8281 */ 8282 # 66 "/usr/include/openssl/bio.h" 2 3 4 8283 8284 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 1 3 4 8285 /* 8286 * CDDL HEADER START 8287 * 8288 * The contents of this file are subject to the terms of the 8289 * Common Development and Distribution License, Version 1.0 only 8290 * (the "License"). You may not use this file except in compliance 8291 * with the License. 8292 * 8293 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8294 * or http://www.opensolaris.org/os/licensing. 8295 * See the License for the specific language governing permissions 8296 * and limitations under the License. 8297 * 8298 * When distributing Covered Code, include this CDDL HEADER in each 8299 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8300 * If applicable, add the following below this CDDL HEADER, with the 8301 * fields enclosed by brackets "[]" replaced with your own identifying 8302 * information: Portions Copyright [yyyy] [name of copyright owner] 8303 * 8304 * CDDL HEADER END 8305 */ 8306 /* Copyright (c) 1988 AT&T */ 8307 /* All Rights Reserved */ 8308 8309 /* 8310 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 8311 * 8312 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 8313 * Use is subject to license terms. 8314 */ 8315 8316 8317 8318 8319 /* 8320 * This header defines the ISO C 1989, ISO C++ 1998, and ISO C 1999 8321 * variable argument definitions. For legacy support, it also defines 8322 * the pre-standard variable argument definitions. 8323 * 8324 * The varargs definitions within this header are defined in terms of 8325 * implementation definitions. These implementation definitions reside 8326 * in <sys/va_list.h>. This organization enables protected use of 8327 * the implementation by other standard headers without introducing 8328 * names into the users' namespace. 8329 */ 8330 8331 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 1 3 4 8332 /* 8333 * CDDL HEADER START 8334 * 8335 * The contents of this file are subject to the terms of the 8336 * Common Development and Distribution License, Version 1.0 only 8337 * (the "License"). You may not use this file except in compliance 8338 * with the License. 8339 * 8340 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8341 * or http://www.opensolaris.org/os/licensing. 8342 * See the License for the specific language governing permissions 8343 * and limitations under the License. 8344 * 8345 * When distributing Covered Code, include this CDDL HEADER in each 8346 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8347 * If applicable, add the following below this CDDL HEADER, with the 8348 * fields enclosed by brackets "[]" replaced with your own identifying 8349 * information: Portions Copyright [yyyy] [name of copyright owner] 8350 * 8351 * CDDL HEADER END 8352 */ 8353 /* Copyright (c) 1988 AT&T */ 8354 /* All Rights Reserved */ 8355 8356 8357 /* 8358 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 8359 * Use is subject to license terms. 8360 */ 8361 8362 /* 8363 * An application should not include this header directly. Instead it 8364 * should be included only through the inclusion of other Sun headers. 8365 * 8366 * The contents of this header is limited to identifiers specified in the 8367 * C Standard. Any new identifiers specified in future amendments to the 8368 * C Standard must be placed in this header. If these new identifiers 8369 * are required to also be in the C++ Standard "std" namespace, then for 8370 * anything other than macro definitions, corresponding "using" directives 8371 * must also be added to <stdarg.h>. 8372 */ 8373 8374 8375 8376 8377 #pragma ident "%Z%%M% %I% %E% SMI" 8378 8379 /* 8380 * This header defines the ISO C 1989 and ISO C++ 1998 variable 8381 * argument definitions. 8382 * 8383 * The varargs definitions within this header are defined in terms of 8384 * implementation definitions. These implementation definitions reside 8385 * in <sys/va_impl.h>. This organization enables protected use of 8386 * the implementation by other standard headers without introducing 8387 * names into the users' namespace. 8388 */ 8389 8390 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 1 3 4 8391 /* 8392 * CDDL HEADER START 8393 * 8394 * The contents of this file are subject to the terms of the 8395 * Common Development and Distribution License, Version 1.0 only 8396 * (the "License"). You may not use this file except in compliance 8397 * with the License. 8398 * 8399 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8400 * or http://www.opensolaris.org/os/licensing. 8401 * See the License for the specific language governing permissions 8402 * and limitations under the License. 8403 * 8404 * When distributing Covered Code, include this CDDL HEADER in each 8405 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8406 * If applicable, add the following below this CDDL HEADER, with the 8407 * fields enclosed by brackets "[]" replaced with your own identifying 8408 * information: Portions Copyright [yyyy] [name of copyright owner] 8409 * 8410 * CDDL HEADER END 8411 */ 8412 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 8413 /* All Rights Reserved */ 8414 8415 8416 /* 8417 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 8418 * 8419 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 8420 * Use is subject to license terms. 8421 */ 8422 8423 8424 8425 8426 /* 8427 * An application should not include this header directly. Instead it 8428 * should be included only through the inclusion of other Sun headers, 8429 * specifically <stdarg.h> and <varargs.h>. 8430 * 8431 * This header serves two purposes. 8432 * 8433 * First, it provides a common set of definitions that implementations 8434 * of the various standards for variable argument lists may use. These 8435 * various standards are implemented in <varargs.h>, <stdarg.h>, 8436 * <iso/stdarg_iso.h>, <iso/stdarg_c99.h>, and <sys/varargs.h>. 8437 * 8438 * Second, it provides varying implementations of the common definitions, 8439 * depending upon the compiler. 8440 */ 8441 8442 /* 8443 * The common definitions exported by this header or compilers using 8444 * this header are: 8445 * 8446 * the macro __va_start(list, name) starting the list iteration 8447 * the macro __va_arg(list, type) getting the current arg and iterating 8448 * the macro __va_copy(to, from) to bookmark the list iteration 8449 * the macro __va_end(list) to end the iteration 8450 * 8451 * In addition, the following are exported via inclusion of <sys/va_list.h>: 8452 * 8453 * the identifier __builtin_va_alist for the variable list pseudo parameter 8454 * the type __va_alist_type for the variable list pseudo parameter 8455 * the type __va_list defining the type of the variable list iterator 8456 */ 8457 8458 /* 8459 * This header uses feature macros (e.g. __BUILTIN_VA_ARG_INCR and 8460 * __BUILTIN_VA_STRUCT), compiler macros (e.g. __GNUC__), and processor 8461 * macros (e.g. __sparc) to determine the protocol appropriate to the 8462 * current compilation. It is intended that the compilation system 8463 * define the feature, processor, and compiler macros, not the user of 8464 * the system. 8465 */ 8466 8467 /* 8468 * Many compilation systems depend upon the use of special functions 8469 * built into the the compilation system to handle variable argument 8470 * lists. These built-in symbols may include one or more of the 8471 * following: 8472 * 8473 * __builtin_va_alist 8474 * __builtin_va_start 8475 * __builtin_va_arg_incr 8476 * __builtin_stdarg_start 8477 * __builtin_va_end 8478 * __builtin_va_arg 8479 * __builtin_va_copy 8480 */ 8481 8482 /* 8483 * The following are defined in <sys/va_list.h>: 8484 * 8485 * __va_alist_type 8486 * __va_void() 8487 * __va_ptr_base 8488 * ISA definitions via inclusion of <sys/isa_defs.h> 8489 * 8490 * Inclusion of this header also makes visible the symbols in <sys/va_list.h>. 8491 * This header is included in <varargs.h>, <sys/varargs.h> and in <stdarg.h> 8492 * via inclusion of <iso/stdarg_iso.h>. 8493 */ 8494 8495 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_list.h" 1 3 4 8496 /* 8497 * CDDL HEADER START 8498 * 8499 * The contents of this file are subject to the terms of the 8500 * Common Development and Distribution License, Version 1.0 only 8501 * (the "License"). You may not use this file except in compliance 8502 * with the License. 8503 * 8504 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8505 * or http://www.opensolaris.org/os/licensing. 8506 * See the License for the specific language governing permissions 8507 * and limitations under the License. 8508 * 8509 * When distributing Covered Code, include this CDDL HEADER in each 8510 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8511 * If applicable, add the following below this CDDL HEADER, with the 8512 * fields enclosed by brackets "[]" replaced with your own identifying 8513 * information: Portions Copyright [yyyy] [name of copyright owner] 8514 * 8515 * CDDL HEADER END 8516 */ 8517 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 8518 /* All Rights Reserved */ 8519 8520 8521 /* 8522 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 8523 * 8524 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 8525 * Use is subject to license terms. 8526 */ 8527 # 106 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/va_impl.h" 2 3 4 8528 # 60 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 2 3 4 8529 # 71 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_iso.h" 3 4 8530 typedef __va_list va_list; 8531 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4 8532 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 1 3 4 8533 /* 8534 * CDDL HEADER START 8535 * 8536 * The contents of this file are subject to the terms of the 8537 * Common Development and Distribution License, Version 1.0 only 8538 * (the "License"). You may not use this file except in compliance 8539 * with the License. 8540 * 8541 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8542 * or http://www.opensolaris.org/os/licensing. 8543 * See the License for the specific language governing permissions 8544 * and limitations under the License. 8545 * 8546 * When distributing Covered Code, include this CDDL HEADER in each 8547 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8548 * If applicable, add the following below this CDDL HEADER, with the 8549 * fields enclosed by brackets "[]" replaced with your own identifying 8550 * information: Portions Copyright [yyyy] [name of copyright owner] 8551 * 8552 * CDDL HEADER END 8553 */ 8554 /* Copyright (c) 1988 AT&T */ 8555 /* All Rights Reserved */ 8556 8557 8558 /* 8559 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 8560 * Use is subject to license terms. 8561 */ 8562 8563 8564 8565 8566 #pragma ident "%Z%%M% %I% %E% SMI" 8567 8568 /* 8569 * An application should not include this header directly. Instead it 8570 * should be included only through the inclusion of other Sun headers. 8571 * 8572 * This header defines the va_copy variable argument macro, which is 8573 * new in ISO C 1999, and thus not present in ISO C 1989 and ISO C++ 8574 * 1998. Because this macro is a long-standing Solaris extension, it 8575 * is also permitted in other contexts. 8576 * 8577 * The varargs definitions within this header are defined in terms of 8578 * implementation definitions. These implementation definitions reside 8579 * in <sys/va_list.h>. This organization enables protected use of 8580 * the implementation by other standard headers without introducing 8581 * names into the users' namespace. 8582 */ 8583 8584 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4 8585 /* 8586 * CDDL HEADER START 8587 * 8588 * The contents of this file are subject to the terms of the 8589 * Common Development and Distribution License (the "License"). 8590 * You may not use this file except in compliance with the License. 8591 * 8592 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8593 * or http://www.opensolaris.org/os/licensing. 8594 * See the License for the specific language governing permissions 8595 * and limitations under the License. 8596 * 8597 * When distributing Covered Code, include this CDDL HEADER in each 8598 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8599 * If applicable, add the following below this CDDL HEADER, with the 8600 * fields enclosed by brackets "[]" replaced with your own identifying 8601 * information: Portions Copyright [yyyy] [name of copyright owner] 8602 * 8603 * CDDL HEADER END 8604 */ 8605 8606 /* 8607 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 8608 * Copyright 2016 Joyent, Inc. 8609 * 8610 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 8611 * Use is subject to license terms. 8612 */ 8613 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stdarg_c99.h" 2 3 4 8614 8615 8616 8617 8618 8619 /* 8620 * va_copy was initially a Solaris extension to provide a portable 8621 * way to perform a variable argument list ``bookmarking'' function. 8622 * It is now specified in the ISO/IEC 9899:1999 standard. 8623 */ 8624 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdarg.h" 2 3 4 8625 8626 /* 8627 * Allow global visibility for symbols defined in 8628 * C++ "std" namespace in <iso/stdarg_iso.h>. 8629 */ 8630 # 68 "/usr/include/openssl/bio.h" 2 3 4 8631 8632 # 1 "/usr/include/openssl/crypto.h" 1 3 4 8633 /* crypto/crypto.h */ 8634 /* ==================================================================== 8635 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 8636 * 8637 * Redistribution and use in source and binary forms, with or without 8638 * modification, are permitted provided that the following conditions 8639 * are met: 8640 * 8641 * 1. Redistributions of source code must retain the above copyright 8642 * notice, this list of conditions and the following disclaimer. 8643 * 8644 * 2. Redistributions in binary form must reproduce the above copyright 8645 * notice, this list of conditions and the following disclaimer in 8646 * the documentation and/or other materials provided with the 8647 * distribution. 8648 * 8649 * 3. All advertising materials mentioning features or use of this 8650 * software must display the following acknowledgment: 8651 * "This product includes software developed by the OpenSSL Project 8652 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8653 * 8654 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8655 * endorse or promote products derived from this software without 8656 * prior written permission. For written permission, please contact 8657 * openssl-core@openssl.org. 8658 * 8659 * 5. Products derived from this software may not be called "OpenSSL" 8660 * nor may "OpenSSL" appear in their names without prior written 8661 * permission of the OpenSSL Project. 8662 * 8663 * 6. Redistributions of any form whatsoever must retain the following 8664 * acknowledgment: 8665 * "This product includes software developed by the OpenSSL Project 8666 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8667 * 8668 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8669 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8670 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8671 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8672 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8673 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8674 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8675 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8676 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8677 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8678 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8679 * OF THE POSSIBILITY OF SUCH DAMAGE. 8680 * ==================================================================== 8681 * 8682 * This product includes cryptographic software written by Eric Young 8683 * (eay@cryptsoft.com). This product includes software written by Tim 8684 * Hudson (tjh@cryptsoft.com). 8685 * 8686 */ 8687 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 8688 * All rights reserved. 8689 * 8690 * This package is an SSL implementation written 8691 * by Eric Young (eay@cryptsoft.com). 8692 * The implementation was written so as to conform with Netscapes SSL. 8693 * 8694 * This library is free for commercial and non-commercial use as long as 8695 * the following conditions are aheared to. The following conditions 8696 * apply to all code found in this distribution, be it the RC4, RSA, 8697 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 8698 * included with this distribution is covered by the same copyright terms 8699 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 8700 * 8701 * Copyright remains Eric Young's, and as such any Copyright notices in 8702 * the code are not to be removed. 8703 * If this package is used in a product, Eric Young should be given attribution 8704 * as the author of the parts of the library used. 8705 * This can be in the form of a textual message at program startup or 8706 * in documentation (online or textual) provided with the package. 8707 * 8708 * Redistribution and use in source and binary forms, with or without 8709 * modification, are permitted provided that the following conditions 8710 * are met: 8711 * 1. Redistributions of source code must retain the copyright 8712 * notice, this list of conditions and the following disclaimer. 8713 * 2. Redistributions in binary form must reproduce the above copyright 8714 * notice, this list of conditions and the following disclaimer in the 8715 * documentation and/or other materials provided with the distribution. 8716 * 3. All advertising materials mentioning features or use of this software 8717 * must display the following acknowledgement: 8718 * "This product includes cryptographic software written by 8719 * Eric Young (eay@cryptsoft.com)" 8720 * The word 'cryptographic' can be left out if the rouines from the library 8721 * being used are not cryptographic related :-). 8722 * 4. If you include any Windows specific code (or a derivative thereof) from 8723 * the apps directory (application code) you must include an acknowledgement: 8724 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 8725 * 8726 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 8727 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8728 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 8729 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 8730 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 8731 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 8732 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8733 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 8734 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 8735 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 8736 * SUCH DAMAGE. 8737 * 8738 * The licence and distribution terms for any publically available version or 8739 * derivative of this code cannot be changed. i.e. this code cannot simply be 8740 * copied and put under another distribution licence 8741 * [including the GNU Public Licence.] 8742 */ 8743 /* ==================================================================== 8744 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 8745 * ECDH support in OpenSSL originally developed by 8746 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 8747 */ 8748 8749 8750 8751 8752 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdlib.h" 1 3 4 8753 /* 8754 * CDDL HEADER START 8755 * 8756 * The contents of this file are subject to the terms of the 8757 * Common Development and Distribution License (the "License"). 8758 * You may not use this file except in compliance with the License. 8759 * 8760 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8761 * or http://www.opensolaris.org/os/licensing. 8762 * See the License for the specific language governing permissions 8763 * and limitations under the License. 8764 * 8765 * When distributing Covered Code, include this CDDL HEADER in each 8766 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8767 * If applicable, add the following below this CDDL HEADER, with the 8768 * fields enclosed by brackets "[]" replaced with your own identifying 8769 * information: Portions Copyright [yyyy] [name of copyright owner] 8770 * 8771 * CDDL HEADER END 8772 */ 8773 8774 /* 8775 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 8776 * Copyright (c) 2013 Gary Mills 8777 * 8778 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 8779 */ 8780 8781 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 8782 8783 /* Copyright (c) 1988 AT&T */ 8784 /* All Rights Reserved */ 8785 # 121 "/usr/include/openssl/crypto.h" 2 3 4 8786 8787 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 8788 /* e_os2.h */ 8789 /* ==================================================================== 8790 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 8791 * 8792 * Redistribution and use in source and binary forms, with or without 8793 * modification, are permitted provided that the following conditions 8794 * are met: 8795 * 8796 * 1. Redistributions of source code must retain the above copyright 8797 * notice, this list of conditions and the following disclaimer. 8798 * 8799 * 2. Redistributions in binary form must reproduce the above copyright 8800 * notice, this list of conditions and the following disclaimer in 8801 * the documentation and/or other materials provided with the 8802 * distribution. 8803 * 8804 * 3. All advertising materials mentioning features or use of this 8805 * software must display the following acknowledgment: 8806 * "This product includes software developed by the OpenSSL Project 8807 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 8808 * 8809 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 8810 * endorse or promote products derived from this software without 8811 * prior written permission. For written permission, please contact 8812 * openssl-core@openssl.org. 8813 * 8814 * 5. Products derived from this software may not be called "OpenSSL" 8815 * nor may "OpenSSL" appear in their names without prior written 8816 * permission of the OpenSSL Project. 8817 * 8818 * 6. Redistributions of any form whatsoever must retain the following 8819 * acknowledgment: 8820 * "This product includes software developed by the OpenSSL Project 8821 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 8822 * 8823 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 8824 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8825 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 8826 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 8827 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8828 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 8829 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 8830 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8831 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 8832 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 8833 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 8834 * OF THE POSSIBILITY OF SUCH DAMAGE. 8835 * ==================================================================== 8836 * 8837 * This product includes cryptographic software written by Eric Young 8838 * (eay@cryptsoft.com). This product includes software written by Tim 8839 * Hudson (tjh@cryptsoft.com). 8840 * 8841 */ 8842 8843 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 8844 /* opensslconf.h */ 8845 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 8846 8847 8848 8849 8850 /* OpenSSL was configured with the following options: */ 8851 # 108 "/usr/include/openssl/opensslconf.h" 3 4 8852 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 8853 asks for it. This is a transient feature that is provided for those 8854 who haven't had the time to do the appropriate changes in their 8855 applications. */ 8856 # 204 "/usr/include/openssl/opensslconf.h" 3 4 8857 /* crypto/opensslconf.h.in */ 8858 8859 /* Generate 80386 code? */ 8860 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 8861 # 123 "/usr/include/openssl/crypto.h" 2 3 4 8862 8863 8864 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 8865 /* 8866 * CDDL HEADER START 8867 * 8868 * The contents of this file are subject to the terms of the 8869 * Common Development and Distribution License (the "License"). 8870 * You may not use this file except in compliance with the License. 8871 * 8872 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 8873 * or http://www.opensolaris.org/os/licensing. 8874 * See the License for the specific language governing permissions 8875 * and limitations under the License. 8876 * 8877 * When distributing Covered Code, include this CDDL HEADER in each 8878 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 8879 * If applicable, add the following below this CDDL HEADER, with the 8880 * fields enclosed by brackets "[]" replaced with your own identifying 8881 * information: Portions Copyright [yyyy] [name of copyright owner] 8882 * 8883 * CDDL HEADER END 8884 */ 8885 8886 /* 8887 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 8888 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 8889 */ 8890 8891 /* Copyright (c) 1988 AT&T */ 8892 /* All Rights Reserved */ 8893 8894 /* 8895 * User-visible pieces of the ANSI C standard I/O package. 8896 */ 8897 # 126 "/usr/include/openssl/crypto.h" 2 3 4 8898 8899 8900 # 1 "/usr/include/openssl/stack.h" 1 3 4 8901 /* crypto/stack/stack.h */ 8902 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 8903 * All rights reserved. 8904 * 8905 * This package is an SSL implementation written 8906 * by Eric Young (eay@cryptsoft.com). 8907 * The implementation was written so as to conform with Netscapes SSL. 8908 * 8909 * This library is free for commercial and non-commercial use as long as 8910 * the following conditions are aheared to. The following conditions 8911 * apply to all code found in this distribution, be it the RC4, RSA, 8912 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 8913 * included with this distribution is covered by the same copyright terms 8914 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 8915 * 8916 * Copyright remains Eric Young's, and as such any Copyright notices in 8917 * the code are not to be removed. 8918 * If this package is used in a product, Eric Young should be given attribution 8919 * as the author of the parts of the library used. 8920 * This can be in the form of a textual message at program startup or 8921 * in documentation (online or textual) provided with the package. 8922 * 8923 * Redistribution and use in source and binary forms, with or without 8924 * modification, are permitted provided that the following conditions 8925 * are met: 8926 * 1. Redistributions of source code must retain the copyright 8927 * notice, this list of conditions and the following disclaimer. 8928 * 2. Redistributions in binary form must reproduce the above copyright 8929 * notice, this list of conditions and the following disclaimer in the 8930 * documentation and/or other materials provided with the distribution. 8931 * 3. All advertising materials mentioning features or use of this software 8932 * must display the following acknowledgement: 8933 * "This product includes cryptographic software written by 8934 * Eric Young (eay@cryptsoft.com)" 8935 * The word 'cryptographic' can be left out if the rouines from the library 8936 * being used are not cryptographic related :-). 8937 * 4. If you include any Windows specific code (or a derivative thereof) from 8938 * the apps directory (application code) you must include an acknowledgement: 8939 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 8940 * 8941 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 8942 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 8943 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 8944 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 8945 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 8946 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 8947 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 8948 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 8949 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 8950 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 8951 * SUCH DAMAGE. 8952 * 8953 * The licence and distribution terms for any publically available version or 8954 * derivative of this code cannot be changed. i.e. this code cannot simply be 8955 * copied and put under another distribution licence 8956 * [including the GNU Public Licence.] 8957 */ 8958 # 66 "/usr/include/openssl/stack.h" 3 4 8959 typedef struct stack_st { 8960 int num; 8961 char **data; 8962 int sorted; 8963 int num_alloc; 8964 int (*comp) (const void *, const void *); 8965 } _STACK; /* Use STACK_OF(...) instead */ 8966 8967 8968 8969 8970 int sk_num(const _STACK *); 8971 void *sk_value(const _STACK *, int); 8972 8973 void *sk_set(_STACK *, int, void *); 8974 8975 _STACK *sk_new(int (*cmp) (const void *, const void *)); 8976 _STACK *sk_new_null(void); 8977 void sk_free(_STACK *); 8978 void sk_pop_free(_STACK *st, void (*func) (void *)); 8979 _STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); 8980 int sk_insert(_STACK *sk, void *data, int where); 8981 void *sk_delete(_STACK *st, int loc); 8982 void *sk_delete_ptr(_STACK *st, void *p); 8983 int sk_find(_STACK *st, void *data); 8984 int sk_find_ex(_STACK *st, void *data); 8985 int sk_push(_STACK *st, void *data); 8986 int sk_unshift(_STACK *st, void *data); 8987 void *sk_shift(_STACK *st); 8988 void *sk_pop(_STACK *st); 8989 void sk_zero(_STACK *st); 8990 int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *))) 8991 (const void *, const void *); 8992 _STACK *sk_dup(_STACK *st); 8993 void sk_sort(_STACK *st); 8994 int sk_is_sorted(const _STACK *st); 8995 # 129 "/usr/include/openssl/crypto.h" 2 3 4 8996 # 1 "/usr/include/openssl/safestack.h" 1 3 4 8997 /* ==================================================================== 8998 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 8999 * 9000 * Redistribution and use in source and binary forms, with or without 9001 * modification, are permitted provided that the following conditions 9002 * are met: 9003 * 9004 * 1. Redistributions of source code must retain the above copyright 9005 * notice, this list of conditions and the following disclaimer. 9006 * 9007 * 2. Redistributions in binary form must reproduce the above copyright 9008 * notice, this list of conditions and the following disclaimer in 9009 * the documentation and/or other materials provided with the 9010 * distribution. 9011 * 9012 * 3. All advertising materials mentioning features or use of this 9013 * software must display the following acknowledgment: 9014 * "This product includes software developed by the OpenSSL Project 9015 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9016 * 9017 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9018 * endorse or promote products derived from this software without 9019 * prior written permission. For written permission, please contact 9020 * openssl-core@openssl.org. 9021 * 9022 * 5. Products derived from this software may not be called "OpenSSL" 9023 * nor may "OpenSSL" appear in their names without prior written 9024 * permission of the OpenSSL Project. 9025 * 9026 * 6. Redistributions of any form whatsoever must retain the following 9027 * acknowledgment: 9028 * "This product includes software developed by the OpenSSL Project 9029 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9030 * 9031 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9032 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9033 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9034 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9035 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9036 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9037 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9038 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9039 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9040 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9041 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9042 * OF THE POSSIBILITY OF SUCH DAMAGE. 9043 * ==================================================================== 9044 * 9045 * This product includes cryptographic software written by Eric Young 9046 * (eay@cryptsoft.com). This product includes software written by Tim 9047 * Hudson (tjh@cryptsoft.com). 9048 * 9049 */ 9050 9051 9052 9053 9054 # 1 "/usr/include/openssl/stack.h" 1 3 4 9055 /* crypto/stack/stack.h */ 9056 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 9057 * All rights reserved. 9058 * 9059 * This package is an SSL implementation written 9060 * by Eric Young (eay@cryptsoft.com). 9061 * The implementation was written so as to conform with Netscapes SSL. 9062 * 9063 * This library is free for commercial and non-commercial use as long as 9064 * the following conditions are aheared to. The following conditions 9065 * apply to all code found in this distribution, be it the RC4, RSA, 9066 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 9067 * included with this distribution is covered by the same copyright terms 9068 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 9069 * 9070 * Copyright remains Eric Young's, and as such any Copyright notices in 9071 * the code are not to be removed. 9072 * If this package is used in a product, Eric Young should be given attribution 9073 * as the author of the parts of the library used. 9074 * This can be in the form of a textual message at program startup or 9075 * in documentation (online or textual) provided with the package. 9076 * 9077 * Redistribution and use in source and binary forms, with or without 9078 * modification, are permitted provided that the following conditions 9079 * are met: 9080 * 1. Redistributions of source code must retain the copyright 9081 * notice, this list of conditions and the following disclaimer. 9082 * 2. Redistributions in binary form must reproduce the above copyright 9083 * notice, this list of conditions and the following disclaimer in the 9084 * documentation and/or other materials provided with the distribution. 9085 * 3. All advertising materials mentioning features or use of this software 9086 * must display the following acknowledgement: 9087 * "This product includes cryptographic software written by 9088 * Eric Young (eay@cryptsoft.com)" 9089 * The word 'cryptographic' can be left out if the rouines from the library 9090 * being used are not cryptographic related :-). 9091 * 4. If you include any Windows specific code (or a derivative thereof) from 9092 * the apps directory (application code) you must include an acknowledgement: 9093 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 9094 * 9095 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 9096 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9097 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 9098 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 9099 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 9100 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 9101 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9102 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 9103 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 9104 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 9105 * SUCH DAMAGE. 9106 * 9107 * The licence and distribution terms for any publically available version or 9108 * derivative of this code cannot be changed. i.e. this code cannot simply be 9109 * copied and put under another distribution licence 9110 * [including the GNU Public Licence.] 9111 */ 9112 # 59 "/usr/include/openssl/safestack.h" 2 3 4 9113 # 69 "/usr/include/openssl/safestack.h" 3 4 9114 /* 9115 * In C++ we get problems because an explicit cast is needed from (void *) we 9116 * use CHECKED_STACK_OF to ensure the correct type is passed in the macros 9117 * below. 9118 */ 9119 # 102 "/usr/include/openssl/safestack.h" 3 4 9120 /* nada (obsolete in new safestack approach)*/ 9121 9122 9123 /*- 9124 * Strings are special: normally an lhash entry will point to a single 9125 * (somewhat) mutable object. In the case of strings: 9126 * 9127 * a) Instead of a single char, there is an array of chars, NUL-terminated. 9128 * b) The string may have be immutable. 9129 * 9130 * So, they need their own declarations. Especially important for 9131 * type-checking tools, such as Deputy. 9132 * 9133 * In practice, however, it appears to be hard to have a const 9134 * string. For now, I'm settling for dealing with the fact it is a 9135 * string at all. 9136 */ 9137 typedef char *OPENSSL_STRING; 9138 9139 typedef const char *OPENSSL_CSTRING; 9140 9141 /* 9142 * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but 9143 * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned 9144 * above, instead of a single char each entry is a NUL-terminated array of 9145 * chars. So, we have to implement STRING specially for STACK_OF. This is 9146 * dealt with in the autogenerated macros below. 9147 */ 9148 9149 struct stack_st_OPENSSL_STRING { _STACK stack; }; 9150 9151 /* 9152 * Similarly, we sometimes use a block of characters, NOT nul-terminated. 9153 * These should also be distinguished from "normal" stacks. 9154 */ 9155 typedef void *OPENSSL_BLOCK; 9156 struct stack_st_OPENSSL_BLOCK { _STACK stack; }; 9157 9158 /* 9159 * SKM_sk_... stack macros are internal to safestack.h: never use them 9160 * directly, use sk_<type>_... instead 9161 */ 9162 # 211 "/usr/include/openssl/safestack.h" 3 4 9163 /* 9164 * This block of defines is updated by util/mkstack.pl, please do not touch! 9165 */ 9166 # 130 "/usr/include/openssl/crypto.h" 2 3 4 9167 # 1 "/usr/include/openssl/opensslv.h" 1 3 4 9168 9169 9170 9171 9172 9173 9174 9175 /*- 9176 * Numeric release version identifier: 9177 * MNNFFPPS: major minor fix patch status 9178 * The status nibble has one of the values 0 for development, 1 to e for betas 9179 * 1 to 14, and f for release. The patch level is exactly that. 9180 * For example: 9181 * 0.9.3-dev 0x00903000 9182 * 0.9.3-beta1 0x00903001 9183 * 0.9.3-beta2-dev 0x00903002 9184 * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) 9185 * 0.9.3 0x0090300f 9186 * 0.9.3a 0x0090301f 9187 * 0.9.4 0x0090400f 9188 * 1.2.3z 0x102031af 9189 * 9190 * For continuity reasons (because 0.9.5 is already out, and is coded 9191 * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level 9192 * part is slightly different, by setting the highest bit. This means 9193 * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start 9194 * with 0x0090600S... 9195 * 9196 * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) 9197 * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for 9198 * major minor fix final patch/beta) 9199 */ 9200 # 41 "/usr/include/openssl/opensslv.h" 3 4 9201 /*- 9202 * The macros below are to be used for shared library (.so, .dll, ...) 9203 * versioning. That kind of versioning works a bit differently between 9204 * operating systems. The most usual scheme is to set a major and a minor 9205 * number, and have the runtime loader check that the major number is equal 9206 * to what it was at application link time, while the minor number has to 9207 * be greater or equal to what it was at application link time. With this 9208 * scheme, the version number is usually part of the file name, like this: 9209 * 9210 * libcrypto.so.0.9 9211 * 9212 * Some unixen also make a softlink with the major verson number only: 9213 * 9214 * libcrypto.so.0 9215 * 9216 * On Tru64 and IRIX 6.x it works a little bit differently. There, the 9217 * shared library version is stored in the file, and is actually a series 9218 * of versions, separated by colons. The rightmost version present in the 9219 * library when linking an application is stored in the application to be 9220 * matched at run time. When the application is run, a check is done to 9221 * see if the library version stored in the application matches any of the 9222 * versions in the version string of the library itself. 9223 * This version string can be constructed in any way, depending on what 9224 * kind of matching is desired. However, to implement the same scheme as 9225 * the one used in the other unixen, all compatible versions, from lowest 9226 * to highest, should be part of the string. Consecutive builds would 9227 * give the following versions strings: 9228 * 9229 * 3.0 9230 * 3.0:3.1 9231 * 3.0:3.1:3.2 9232 * 4.0 9233 * 4.0:4.1 9234 * 9235 * Notice how version 4 is completely incompatible with version, and 9236 * therefore give the breach you can see. 9237 * 9238 * There may be other schemes as well that I haven't yet discovered. 9239 * 9240 * So, here's the way it works here: first of all, the library version 9241 * number doesn't need at all to match the overall OpenSSL version. 9242 * However, it's nice and more understandable if it actually does. 9243 * The current library version is stored in the macro SHLIB_VERSION_NUMBER, 9244 * which is just a piece of text in the format "M.m.e" (Major, minor, edit). 9245 * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, 9246 * we need to keep a history of version numbers, which is done in the 9247 * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and 9248 * should only keep the versions that are binary compatible with the current. 9249 */ 9250 # 131 "/usr/include/openssl/crypto.h" 2 3 4 9251 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 9252 /* ==================================================================== 9253 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 9254 * 9255 * Redistribution and use in source and binary forms, with or without 9256 * modification, are permitted provided that the following conditions 9257 * are met: 9258 * 9259 * 1. Redistributions of source code must retain the above copyright 9260 * notice, this list of conditions and the following disclaimer. 9261 * 9262 * 2. Redistributions in binary form must reproduce the above copyright 9263 * notice, this list of conditions and the following disclaimer in 9264 * the documentation and/or other materials provided with the 9265 * distribution. 9266 * 9267 * 3. All advertising materials mentioning features or use of this 9268 * software must display the following acknowledgment: 9269 * "This product includes software developed by the OpenSSL Project 9270 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9271 * 9272 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9273 * endorse or promote products derived from this software without 9274 * prior written permission. For written permission, please contact 9275 * openssl-core@openssl.org. 9276 * 9277 * 5. Products derived from this software may not be called "OpenSSL" 9278 * nor may "OpenSSL" appear in their names without prior written 9279 * permission of the OpenSSL Project. 9280 * 9281 * 6. Redistributions of any form whatsoever must retain the following 9282 * acknowledgment: 9283 * "This product includes software developed by the OpenSSL Project 9284 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9285 * 9286 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9287 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9288 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9289 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9290 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9291 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9292 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9293 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9294 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9295 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9296 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9297 * OF THE POSSIBILITY OF SUCH DAMAGE. 9298 * ==================================================================== 9299 * 9300 * This product includes cryptographic software written by Eric Young 9301 * (eay@cryptsoft.com). This product includes software written by Tim 9302 * Hudson (tjh@cryptsoft.com). 9303 * 9304 */ 9305 # 62 "/usr/include/openssl/ossl_typ.h" 3 4 9306 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 9307 /* e_os2.h */ 9308 /* ==================================================================== 9309 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 9310 * 9311 * Redistribution and use in source and binary forms, with or without 9312 * modification, are permitted provided that the following conditions 9313 * are met: 9314 * 9315 * 1. Redistributions of source code must retain the above copyright 9316 * notice, this list of conditions and the following disclaimer. 9317 * 9318 * 2. Redistributions in binary form must reproduce the above copyright 9319 * notice, this list of conditions and the following disclaimer in 9320 * the documentation and/or other materials provided with the 9321 * distribution. 9322 * 9323 * 3. All advertising materials mentioning features or use of this 9324 * software must display the following acknowledgment: 9325 * "This product includes software developed by the OpenSSL Project 9326 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9327 * 9328 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9329 * endorse or promote products derived from this software without 9330 * prior written permission. For written permission, please contact 9331 * openssl-core@openssl.org. 9332 * 9333 * 5. Products derived from this software may not be called "OpenSSL" 9334 * nor may "OpenSSL" appear in their names without prior written 9335 * permission of the OpenSSL Project. 9336 * 9337 * 6. Redistributions of any form whatsoever must retain the following 9338 * acknowledgment: 9339 * "This product includes software developed by the OpenSSL Project 9340 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9341 * 9342 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9343 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9344 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9345 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9346 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9347 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9348 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9349 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9350 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9351 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9352 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9353 * OF THE POSSIBILITY OF SUCH DAMAGE. 9354 * ==================================================================== 9355 * 9356 * This product includes cryptographic software written by Eric Young 9357 * (eay@cryptsoft.com). This product includes software written by Tim 9358 * Hudson (tjh@cryptsoft.com). 9359 * 9360 */ 9361 9362 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 9363 /* opensslconf.h */ 9364 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 9365 9366 9367 9368 9369 /* OpenSSL was configured with the following options: */ 9370 # 108 "/usr/include/openssl/opensslconf.h" 3 4 9371 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 9372 asks for it. This is a transient feature that is provided for those 9373 who haven't had the time to do the appropriate changes in their 9374 applications. */ 9375 # 204 "/usr/include/openssl/opensslconf.h" 3 4 9376 /* crypto/opensslconf.h.in */ 9377 9378 /* Generate 80386 code? */ 9379 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 9380 # 63 "/usr/include/openssl/ossl_typ.h" 2 3 4 9381 # 83 "/usr/include/openssl/ossl_typ.h" 3 4 9382 typedef struct asn1_string_st ASN1_INTEGER; 9383 typedef struct asn1_string_st ASN1_ENUMERATED; 9384 typedef struct asn1_string_st ASN1_BIT_STRING; 9385 typedef struct asn1_string_st ASN1_OCTET_STRING; 9386 typedef struct asn1_string_st ASN1_PRINTABLESTRING; 9387 typedef struct asn1_string_st ASN1_T61STRING; 9388 typedef struct asn1_string_st ASN1_IA5STRING; 9389 typedef struct asn1_string_st ASN1_GENERALSTRING; 9390 typedef struct asn1_string_st ASN1_UNIVERSALSTRING; 9391 typedef struct asn1_string_st ASN1_BMPSTRING; 9392 typedef struct asn1_string_st ASN1_UTCTIME; 9393 typedef struct asn1_string_st ASN1_TIME; 9394 typedef struct asn1_string_st ASN1_GENERALIZEDTIME; 9395 typedef struct asn1_string_st ASN1_VISIBLESTRING; 9396 typedef struct asn1_string_st ASN1_UTF8STRING; 9397 typedef struct asn1_string_st ASN1_STRING; 9398 typedef int ASN1_BOOLEAN; 9399 typedef int ASN1_NULL; 9400 9401 9402 typedef struct asn1_object_st ASN1_OBJECT; 9403 9404 typedef struct ASN1_ITEM_st ASN1_ITEM; 9405 typedef struct asn1_pctx_st ASN1_PCTX; 9406 # 120 "/usr/include/openssl/ossl_typ.h" 3 4 9407 typedef struct bignum_st BIGNUM; 9408 typedef struct bignum_ctx BN_CTX; 9409 typedef struct bn_blinding_st BN_BLINDING; 9410 typedef struct bn_mont_ctx_st BN_MONT_CTX; 9411 typedef struct bn_recp_ctx_st BN_RECP_CTX; 9412 typedef struct bn_gencb_st BN_GENCB; 9413 9414 typedef struct buf_mem_st BUF_MEM; 9415 9416 typedef struct evp_cipher_st EVP_CIPHER; 9417 typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; 9418 typedef struct env_md_st EVP_MD; 9419 typedef struct env_md_ctx_st EVP_MD_CTX; 9420 typedef struct evp_pkey_st EVP_PKEY; 9421 9422 typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; 9423 9424 typedef struct evp_pkey_method_st EVP_PKEY_METHOD; 9425 typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; 9426 9427 typedef struct dh_st DH; 9428 typedef struct dh_method DH_METHOD; 9429 9430 typedef struct dsa_st DSA; 9431 typedef struct dsa_method DSA_METHOD; 9432 9433 typedef struct rsa_st RSA; 9434 typedef struct rsa_meth_st RSA_METHOD; 9435 9436 typedef struct rand_meth_st RAND_METHOD; 9437 9438 typedef struct ecdh_method ECDH_METHOD; 9439 typedef struct ecdsa_method ECDSA_METHOD; 9440 9441 typedef struct x509_st X509; 9442 typedef struct X509_algor_st X509_ALGOR; 9443 typedef struct X509_crl_st X509_CRL; 9444 typedef struct x509_crl_method_st X509_CRL_METHOD; 9445 typedef struct x509_revoked_st X509_REVOKED; 9446 typedef struct X509_name_st X509_NAME; 9447 typedef struct X509_pubkey_st X509_PUBKEY; 9448 typedef struct x509_store_st X509_STORE; 9449 typedef struct x509_store_ctx_st X509_STORE_CTX; 9450 9451 typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; 9452 9453 typedef struct v3_ext_ctx X509V3_CTX; 9454 typedef struct conf_st CONF; 9455 9456 typedef struct store_st STORE; 9457 typedef struct store_method_st STORE_METHOD; 9458 9459 typedef struct ui_st UI; 9460 typedef struct ui_method_st UI_METHOD; 9461 9462 typedef struct st_ERR_FNS ERR_FNS; 9463 9464 typedef struct engine_st ENGINE; 9465 typedef struct ssl_st SSL; 9466 typedef struct ssl_ctx_st SSL_CTX; 9467 9468 typedef struct comp_method_st COMP_METHOD; 9469 9470 typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; 9471 typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; 9472 typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; 9473 typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; 9474 9475 typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; 9476 typedef struct DIST_POINT_st DIST_POINT; 9477 typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; 9478 typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; 9479 9480 /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ 9481 9482 9483 9484 typedef struct crypto_ex_data_st CRYPTO_EX_DATA; 9485 /* Callback types for crypto.h */ 9486 typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 9487 int idx, long argl, void *argp); 9488 typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, 9489 int idx, long argl, void *argp); 9490 typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, 9491 void *from_d, int idx, long argl, void *argp); 9492 9493 typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; 9494 typedef struct ocsp_response_st OCSP_RESPONSE; 9495 typedef struct ocsp_responder_id_st OCSP_RESPID; 9496 # 132 "/usr/include/openssl/crypto.h" 2 3 4 9497 9498 9499 9500 9501 9502 /* 9503 * Resolve problems on some operating systems with symbol names that clash 9504 * one way or another 9505 */ 9506 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 9507 /* ==================================================================== 9508 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 9509 * 9510 * Redistribution and use in source and binary forms, with or without 9511 * modification, are permitted provided that the following conditions 9512 * are met: 9513 * 9514 * 1. Redistributions of source code must retain the above copyright 9515 * notice, this list of conditions and the following disclaimer. 9516 * 9517 * 2. Redistributions in binary form must reproduce the above copyright 9518 * notice, this list of conditions and the following disclaimer in 9519 * the documentation and/or other materials provided with the 9520 * distribution. 9521 * 9522 * 3. All advertising materials mentioning features or use of this 9523 * software must display the following acknowledgment: 9524 * "This product includes software developed by the OpenSSL Project 9525 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9526 * 9527 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9528 * endorse or promote products derived from this software without 9529 * prior written permission. For written permission, please contact 9530 * openssl-core@openssl.org. 9531 * 9532 * 5. Products derived from this software may not be called "OpenSSL" 9533 * nor may "OpenSSL" appear in their names without prior written 9534 * permission of the OpenSSL Project. 9535 * 9536 * 6. Redistributions of any form whatsoever must retain the following 9537 * acknowledgment: 9538 * "This product includes software developed by the OpenSSL Project 9539 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9540 * 9541 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9542 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9543 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9544 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9545 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9546 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9547 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9548 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9549 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9550 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9551 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9552 * OF THE POSSIBILITY OF SUCH DAMAGE. 9553 * ==================================================================== 9554 * 9555 * This product includes cryptographic software written by Eric Young 9556 * (eay@cryptsoft.com). This product includes software written by Tim 9557 * Hudson (tjh@cryptsoft.com). 9558 * 9559 */ 9560 9561 9562 9563 9564 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 9565 /* e_os2.h */ 9566 /* ==================================================================== 9567 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 9568 * 9569 * Redistribution and use in source and binary forms, with or without 9570 * modification, are permitted provided that the following conditions 9571 * are met: 9572 * 9573 * 1. Redistributions of source code must retain the above copyright 9574 * notice, this list of conditions and the following disclaimer. 9575 * 9576 * 2. Redistributions in binary form must reproduce the above copyright 9577 * notice, this list of conditions and the following disclaimer in 9578 * the documentation and/or other materials provided with the 9579 * distribution. 9580 * 9581 * 3. All advertising materials mentioning features or use of this 9582 * software must display the following acknowledgment: 9583 * "This product includes software developed by the OpenSSL Project 9584 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 9585 * 9586 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 9587 * endorse or promote products derived from this software without 9588 * prior written permission. For written permission, please contact 9589 * openssl-core@openssl.org. 9590 * 9591 * 5. Products derived from this software may not be called "OpenSSL" 9592 * nor may "OpenSSL" appear in their names without prior written 9593 * permission of the OpenSSL Project. 9594 * 9595 * 6. Redistributions of any form whatsoever must retain the following 9596 * acknowledgment: 9597 * "This product includes software developed by the OpenSSL Project 9598 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 9599 * 9600 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 9601 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 9602 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 9603 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 9604 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 9605 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 9606 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9607 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 9608 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 9609 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 9610 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 9611 * OF THE POSSIBILITY OF SUCH DAMAGE. 9612 * ==================================================================== 9613 * 9614 * This product includes cryptographic software written by Eric Young 9615 * (eay@cryptsoft.com). This product includes software written by Tim 9616 * Hudson (tjh@cryptsoft.com). 9617 * 9618 */ 9619 9620 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 9621 /* opensslconf.h */ 9622 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 9623 9624 9625 9626 9627 /* OpenSSL was configured with the following options: */ 9628 # 108 "/usr/include/openssl/opensslconf.h" 3 4 9629 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 9630 asks for it. This is a transient feature that is provided for those 9631 who haven't had the time to do the appropriate changes in their 9632 applications. */ 9633 # 204 "/usr/include/openssl/opensslconf.h" 3 4 9634 /* crypto/opensslconf.h.in */ 9635 9636 /* Generate 80386 code? */ 9637 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 9638 # 59 "/usr/include/openssl/symhacks.h" 2 3 4 9639 9640 /* 9641 * Hacks to solve the problem with linkers incapable of handling very long 9642 * symbol names. In the case of VMS, the limit is 31 characters on VMS for 9643 * VAX. 9644 */ 9645 /* 9646 * Note that this affects util/libeay.num and util/ssleay.num... you may 9647 * change those manually, but that's not recommended, as those files are 9648 * controlled centrally and updated on Unix, and the central definition may 9649 * disagree with yours, which in turn may come with shareable library 9650 * incompatibilities. 9651 */ 9652 # 481 "/usr/include/openssl/symhacks.h" 3 4 9653 /* Case insensitive linking causes problems.... */ 9654 # 142 "/usr/include/openssl/crypto.h" 2 3 4 9655 9656 9657 9658 9659 9660 /* Backward compatibility to SSLeay */ 9661 /* 9662 * This is more to be used to check the correct DLL is being used in the MS 9663 * world. 9664 */ 9665 9666 9667 /* #define SSLEAY_OPTIONS 1 no longer supported */ 9668 9669 9670 9671 9672 9673 /* Already declared in ossl_typ.h */ 9674 # 174 "/usr/include/openssl/crypto.h" 3 4 9675 /* A generic structure to pass assorted data in a expandable way */ 9676 typedef struct openssl_item_st { 9677 int code; 9678 void *value; /* Not used for flag attributes */ 9679 size_t value_size; /* Max size of value for output, length for 9680 * input */ 9681 size_t *value_length; /* Returned length of value for output */ 9682 } OPENSSL_ITEM; 9683 9684 /* 9685 * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock 9686 * names in cryptlib.c 9687 */ 9688 # 256 "/usr/include/openssl/crypto.h" 3 4 9689 /* 9690 * Some applications as well as some parts of OpenSSL need to allocate and 9691 * deallocate locks in a dynamic fashion. The following typedef makes this 9692 * possible in a type-safe manner. 9693 */ 9694 /* struct CRYPTO_dynlock_value has to be defined by the application. */ 9695 typedef struct { 9696 int references; 9697 struct CRYPTO_dynlock_value *data; 9698 } CRYPTO_dynlock; 9699 9700 /* 9701 * The following can be used to detect memory leaks in the SSLeay library. It 9702 * used, it turns on malloc checking 9703 */ 9704 9705 9706 9707 9708 9709 9710 /* 9711 * The following are bit values to turn on or off options connected to the 9712 * malloc checking functionality 9713 */ 9714 9715 /* Adds time to the memory checking information */ 9716 9717 /* Adds thread number to the memory checking information */ 9718 9719 9720 9721 9722 /* predec of the BIO type */ 9723 typedef struct bio_st BIO_dummy; 9724 9725 struct crypto_ex_data_st { 9726 struct stack_st_void *sk; 9727 /* gcc is screwing up this data structure :-( */ 9728 int dummy; 9729 }; 9730 struct stack_st_void { _STACK stack; }; 9731 9732 /* 9733 * This stuff is basically class callback functions The current classes are 9734 * SSL_CTX, SSL, SSL_SESSION, and a few more 9735 */ 9736 9737 typedef struct crypto_ex_data_func_st { 9738 long argl; /* Arbitary long */ 9739 void *argp; /* Arbitary void * */ 9740 CRYPTO_EX_new *new_func; 9741 CRYPTO_EX_free *free_func; 9742 CRYPTO_EX_dup *dup_func; 9743 } CRYPTO_EX_DATA_FUNCS; 9744 9745 struct stack_st_CRYPTO_EX_DATA_FUNCS { _STACK stack; }; 9746 9747 /* 9748 * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA 9749 * entry. 9750 */ 9751 # 336 "/usr/include/openssl/crypto.h" 3 4 9752 /* 9753 * Dynamically assigned indexes start from this value (don't use directly, 9754 * use via CRYPTO_ex_data_new_class). 9755 */ 9756 9757 9758 /* 9759 * This is the default callbacks, but we can have others as well: this is 9760 * needed in Win32 where the application malloc and the library malloc may 9761 * not be the same. 9762 */ 9763 # 356 "/usr/include/openssl/crypto.h" 3 4 9764 /* 9765 * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG 9766 * is defined) 9767 */ 9768 # 369 "/usr/include/openssl/crypto.h" 3 4 9769 int CRYPTO_mem_ctrl(int mode); 9770 int CRYPTO_is_mem_check_on(void); 9771 9772 /* for applications */ 9773 9774 9775 9776 /* for library-internal use */ 9777 # 396 "/usr/include/openssl/crypto.h" 3 4 9778 const char *SSLeay_version(int type); 9779 unsigned long SSLeay(void); 9780 9781 int OPENSSL_issetugid(void); 9782 9783 /* An opaque type representing an implementation of "ex_data" support */ 9784 typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; 9785 /* Return an opaque pointer to the current "ex_data" implementation */ 9786 const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); 9787 /* Sets the "ex_data" implementation to be used (if it's not too late) */ 9788 int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); 9789 /* Get a new "ex_data" class, and return the corresponding "class_index" */ 9790 int CRYPTO_ex_data_new_class(void); 9791 /* Within a given class, get/register a new index */ 9792 int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, 9793 CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, 9794 CRYPTO_EX_free *free_func); 9795 /* 9796 * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a 9797 * given class (invokes whatever per-class callbacks are applicable) 9798 */ 9799 int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 9800 int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, 9801 CRYPTO_EX_DATA *from); 9802 void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); 9803 /* 9804 * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular 9805 * index (relative to the class type involved) 9806 */ 9807 int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); 9808 void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); 9809 /* 9810 * This function cleans up all "ex_data" state. It mustn't be called under 9811 * potential race-conditions. 9812 */ 9813 void CRYPTO_cleanup_all_ex_data(void); 9814 9815 int CRYPTO_get_new_lockid(char *name); 9816 9817 int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */ 9818 void CRYPTO_lock(int mode, int type, const char *file, int line); 9819 void CRYPTO_set_locking_callback(void (*func) (int mode, int type, 9820 const char *file, int line)); 9821 void (*CRYPTO_get_locking_callback(void)) (int mode, int type, 9822 const char *file, int line); 9823 void CRYPTO_set_add_lock_callback(int (*func) 9824 (int *num, int mount, int type, 9825 const char *file, int line)); 9826 int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type, 9827 const char *file, int line); 9828 9829 /* Don't use this structure directly. */ 9830 typedef struct crypto_threadid_st { 9831 void *ptr; 9832 unsigned long val; 9833 } CRYPTO_THREADID; 9834 /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ 9835 void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); 9836 void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); 9837 int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *)); 9838 void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *); 9839 void CRYPTO_THREADID_current(CRYPTO_THREADID *id); 9840 int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); 9841 void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); 9842 unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); 9843 9844 void CRYPTO_set_id_callback(unsigned long (*func) (void)); 9845 unsigned long (*CRYPTO_get_id_callback(void)) (void); 9846 unsigned long CRYPTO_thread_id(void); 9847 9848 9849 const char *CRYPTO_get_lock_name(int type); 9850 int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, 9851 int line); 9852 9853 int CRYPTO_get_new_dynlockid(void); 9854 void CRYPTO_destroy_dynlockid(int i); 9855 struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); 9856 void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value 9857 *(*dyn_create_function) (const char 9858 *file, 9859 int line)); 9860 void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) 9861 (int mode, 9862 struct CRYPTO_dynlock_value *l, 9863 const char *file, int line)); 9864 void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) 9865 (struct CRYPTO_dynlock_value *l, 9866 const char *file, int line)); 9867 struct CRYPTO_dynlock_value 9868 *(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line); 9869 void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode, 9870 struct CRYPTO_dynlock_value 9871 *l, const char *file, 9872 int line); 9873 void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value 9874 *l, const char *file, 9875 int line); 9876 9877 /* 9878 * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call 9879 * the latter last if you need different functions 9880 */ 9881 int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), 9882 void (*f) (void *)); 9883 int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), 9884 void (*free_func) (void *)); 9885 int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), 9886 void *(*r) (void *, size_t, const char *, 9887 int), void (*f) (void *)); 9888 int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), 9889 void (*free_func) (void *)); 9890 int CRYPTO_set_mem_debug_functions(void (*m) 9891 (void *, int, const char *, int, int), 9892 void (*r) (void *, void *, int, 9893 const char *, int, int), 9894 void (*f) (void *, int), void (*so) (long), 9895 long (*go) (void)); 9896 void CRYPTO_get_mem_functions(void *(**m) (size_t), 9897 void *(**r) (void *, size_t), 9898 void (**f) (void *)); 9899 void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), 9900 void (**f) (void *)); 9901 void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), 9902 void *(**r) (void *, size_t, const char *, 9903 int), void (**f) (void *)); 9904 void CRYPTO_get_locked_mem_ex_functions(void 9905 *(**m) (size_t, const char *, int), 9906 void (**f) (void *)); 9907 void CRYPTO_get_mem_debug_functions(void (**m) 9908 (void *, int, const char *, int, int), 9909 void (**r) (void *, void *, int, 9910 const char *, int, int), 9911 void (**f) (void *, int), 9912 void (**so) (long), long (**go) (void)); 9913 9914 void *CRYPTO_malloc_locked(int num, const char *file, int line); 9915 void CRYPTO_free_locked(void *ptr); 9916 void *CRYPTO_malloc(int num, const char *file, int line); 9917 char *CRYPTO_strdup(const char *str, const char *file, int line); 9918 void CRYPTO_free(void *ptr); 9919 void *CRYPTO_realloc(void *addr, int num, const char *file, int line); 9920 void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file, 9921 int line); 9922 void *CRYPTO_remalloc(void *addr, int num, const char *file, int line); 9923 9924 void OPENSSL_cleanse(void *ptr, size_t len); 9925 9926 void CRYPTO_set_mem_debug_options(long bits); 9927 long CRYPTO_get_mem_debug_options(void); 9928 9929 9930 9931 int CRYPTO_push_info_(const char *info, const char *file, int line); 9932 int CRYPTO_pop_info(void); 9933 int CRYPTO_remove_all_info(void); 9934 9935 /* 9936 * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro; 9937 * used as default in CRYPTO_MDEBUG compilations): 9938 */ 9939 /*- 9940 * The last argument has the following significance: 9941 * 9942 * 0: called before the actual memory allocation has taken place 9943 * 1: called after the actual memory allocation has taken place 9944 */ 9945 void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, 9946 int before_p); 9947 void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file, 9948 int line, int before_p); 9949 void CRYPTO_dbg_free(void *addr, int before_p); 9950 /*- 9951 * Tell the debugging code about options. By default, the following values 9952 * apply: 9953 * 9954 * 0: Clear all options. 9955 * V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option. 9956 * V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option. 9957 * V_CRYPTO_MDEBUG_ALL (3): 1 + 2 9958 */ 9959 void CRYPTO_dbg_set_options(long bits); 9960 long CRYPTO_dbg_get_options(void); 9961 9962 9963 void CRYPTO_mem_leaks_fp(FILE *); 9964 9965 void CRYPTO_mem_leaks(struct bio_st *bio); 9966 /* unsigned long order, char *file, int line, int num_bytes, char *addr */ 9967 typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int, 9968 void *); 9969 void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); 9970 9971 /* die if we have to */ 9972 void OpenSSLDie(const char *file, int line, const char *assertion); 9973 9974 9975 unsigned long *OPENSSL_ia32cap_loc(void); 9976 9977 int OPENSSL_isservice(void); 9978 9979 int FIPS_mode(void); 9980 int FIPS_mode_set(int r); 9981 9982 void OPENSSL_init(void); 9983 # 624 "/usr/include/openssl/crypto.h" 3 4 9984 /* 9985 * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. 9986 * It takes an amount of time dependent on |len|, but independent of the 9987 * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements 9988 * into a defined order as the return value when a != b is undefined, other 9989 * than to be non-zero. 9990 */ 9991 int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); 9992 9993 /* BEGIN ERROR CODES */ 9994 /* 9995 * The following lines are auto generated by the script mkerr.pl. Any changes 9996 * made after this point may be overwritten when the script is next run. 9997 */ 9998 void ERR_load_CRYPTO_strings(void); 9999 10000 /* Error codes for the CRYPTO functions. */ 10001 10002 /* Function codes. */ 10003 # 654 "/usr/include/openssl/crypto.h" 3 4 10004 /* Reason codes. */ 10005 # 70 "/usr/include/openssl/bio.h" 2 3 4 10006 # 83 "/usr/include/openssl/bio.h" 3 4 10007 /* These are the 'types' of BIOs */ 10008 # 116 "/usr/include/openssl/bio.h" 3 4 10009 /* 10010 * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. 10011 * BIO_set_fp(in,stdin,BIO_NOCLOSE); 10012 */ 10013 10014 10015 10016 /* 10017 * These are used in the following macros and are passed to BIO_ctrl() 10018 */ 10019 # 139 "/usr/include/openssl/bio.h" 3 4 10020 /* callback is int cb(BIO *bio,state,ret); */ 10021 10022 10023 10024 10025 10026 /* dgram BIO stuff */ 10027 # 157 "/usr/include/openssl/bio.h" 3 4 10028 /* #ifdef IP_MTU_DISCOVER */ 10029 10030 /* #endif */ 10031 # 196 "/usr/include/openssl/bio.h" 3 4 10032 /* modifiers */ 10033 # 208 "/usr/include/openssl/bio.h" 3 4 10034 /* 10035 * "UPLINK" flag denotes file descriptors provided by application. It 10036 * defaults to 0, as most platforms don't require UPLINK interface. 10037 */ 10038 10039 10040 10041 /* Used in BIO_gethostbyname() */ 10042 10043 10044 10045 10046 10047 10048 /* Mostly used in the SSL BIO */ 10049 /*- 10050 * Not used anymore 10051 * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10 10052 * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20 10053 * #define BIO_FLAGS_PROTOCOL_STARTUP 0x40 10054 */ 10055 10056 10057 10058 /* 10059 * This is used with memory BIOs: it means we shouldn't free up or change the 10060 * data in any way. 10061 */ 10062 10063 10064 typedef struct bio_st BIO; 10065 10066 void BIO_set_flags(BIO *b, int flags); 10067 int BIO_test_flags(const BIO *b, int flags); 10068 void BIO_clear_flags(BIO *b, int flags); 10069 # 252 "/usr/include/openssl/bio.h" 3 4 10070 /* These are normally used internally in BIOs */ 10071 10072 10073 10074 10075 10076 /* These should be used by the application to tell why we should retry */ 10077 10078 10079 10080 10081 10082 10083 /* 10084 * The next three are used in conjunction with the BIO_should_io_special() 10085 * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int 10086 * *reason); will walk the BIO stack and return the 'reason' for the special 10087 * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return 10088 * the code. 10089 */ 10090 /* 10091 * Returned from the SSL bio when the certificate retrieval code had an error 10092 */ 10093 10094 /* Returned from the connect BIO when a connect would have blocked */ 10095 10096 /* Returned from the accept BIO when an accept would have blocked */ 10097 10098 10099 /* These are passed by the BIO callback */ 10100 10101 10102 10103 10104 10105 10106 10107 /* 10108 * The callback is called before and after the underling operation, The 10109 * BIO_CB_RETURN flag indicates if it is after the call 10110 */ 10111 10112 10113 10114 10115 10116 long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *, 10117 int, long, long); 10118 void BIO_set_callback(BIO *b, 10119 long (*callback) (struct bio_st *, int, const char *, 10120 int, long, long)); 10121 char *BIO_get_callback_arg(const BIO *b); 10122 void BIO_set_callback_arg(BIO *b, char *arg); 10123 10124 const char *BIO_method_name(const BIO *b); 10125 int BIO_method_type(const BIO *b); 10126 10127 typedef void bio_info_cb (struct bio_st *, int, const char *, int, long, 10128 long); 10129 10130 typedef struct bio_method_st { 10131 int type; 10132 const char *name; 10133 int (*bwrite) (BIO *, const char *, int); 10134 int (*bread) (BIO *, char *, int); 10135 int (*bputs) (BIO *, const char *); 10136 int (*bgets) (BIO *, char *, int); 10137 long (*ctrl) (BIO *, int, long, void *); 10138 int (*create) (BIO *); 10139 int (*destroy) (BIO *); 10140 long (*callback_ctrl) (BIO *, int, bio_info_cb *); 10141 } BIO_METHOD; 10142 10143 struct bio_st { 10144 BIO_METHOD *method; 10145 /* bio, mode, argp, argi, argl, ret */ 10146 long (*callback) (struct bio_st *, int, const char *, int, long, long); 10147 char *cb_arg; /* first argument for the callback */ 10148 int init; 10149 int shutdown; 10150 int flags; /* extra storage */ 10151 int retry_reason; 10152 int num; 10153 void *ptr; 10154 struct bio_st *next_bio; /* used by filter BIOs */ 10155 struct bio_st *prev_bio; /* used by filter BIOs */ 10156 int references; 10157 unsigned long num_read; 10158 unsigned long num_write; 10159 CRYPTO_EX_DATA ex_data; 10160 }; 10161 10162 struct stack_st_BIO { _STACK stack; }; 10163 10164 typedef struct bio_f_buffer_ctx_struct { 10165 /*- 10166 * Buffers are setup like this: 10167 * 10168 * <---------------------- size -----------------------> 10169 * +---------------------------------------------------+ 10170 * | consumed | remaining | free space | 10171 * +---------------------------------------------------+ 10172 * <-- off --><------- len -------> 10173 */ 10174 /*- BIO *bio; *//* 10175 * this is now in the BIO struct 10176 */ 10177 int ibuf_size; /* how big is the input buffer */ 10178 int obuf_size; /* how big is the output buffer */ 10179 char *ibuf; /* the char array */ 10180 int ibuf_len; /* how many bytes are in it */ 10181 int ibuf_off; /* write/read offset */ 10182 char *obuf; /* the char array */ 10183 int obuf_len; /* how many bytes are in it */ 10184 int obuf_off; /* write/read offset */ 10185 } BIO_F_BUFFER_CTX; 10186 10187 /* Prefix and suffix callback in ASN1 BIO */ 10188 typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, 10189 void *parg); 10190 # 398 "/usr/include/openssl/bio.h" 3 4 10191 /* connect BIO stuff */ 10192 # 407 "/usr/include/openssl/bio.h" 3 4 10193 /* 10194 * #define BIO_CONN_get_param_hostname BIO_ctrl 10195 */ 10196 # 474 "/usr/include/openssl/bio.h" 3 4 10197 /* BIO_s_connect() and BIO_s_socks4a_connect() */ 10198 # 486 "/usr/include/openssl/bio.h" 3 4 10199 /* BIO_s_accept() */ 10200 10201 10202 /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ 10203 # 499 "/usr/include/openssl/bio.h" 3 4 10204 /* BIO_s_accept() and BIO_s_connect() */ 10205 10206 10207 10208 10209 /* BIO_s_proxy_client() */ 10210 10211 10212 /* BIO_set_nbio(b,n) */ 10213 10214 /* BIO *BIO_get_filter_bio(BIO *bio); */ 10215 # 519 "/usr/include/openssl/bio.h" 3 4 10216 /* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ 10217 10218 10219 10220 /* BIO_s_file() */ 10221 10222 10223 10224 /* BIO_s_fd() and BIO_s_file() */ 10225 10226 10227 10228 /* 10229 * name is cast to lose const, but might be better to route through a 10230 * function so we can do it safely 10231 */ 10232 # 552 "/usr/include/openssl/bio.h" 3 4 10233 /* 10234 * WARNING WARNING, this ups the reference count on the read bio of the SSL 10235 * structure. This is because the ssl read BIO is now pointed to by the 10236 * next_bio field in the bio. So when you free the BIO, make sure you are 10237 * doing a BIO_free_all() to catch the underlying BIO. 10238 */ 10239 # 568 "/usr/include/openssl/bio.h" 3 4 10240 /* defined in evp.h */ 10241 /* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ 10242 10243 10244 10245 10246 10247 10248 10249 /* For the BIO_f_buffer() type */ 10250 10251 10252 10253 10254 10255 10256 /* Don't use the next one unless you know what you are doing :-) */ 10257 # 593 "/usr/include/openssl/bio.h" 3 4 10258 /* ...pending macros have inappropriate return type */ 10259 size_t BIO_ctrl_pending(BIO *b); 10260 size_t BIO_ctrl_wpending(BIO *b); 10261 10262 10263 10264 10265 10266 /* For the BIO_f_buffer() type */ 10267 10268 10269 /* For BIO_s_bio() */ 10270 10271 10272 10273 10274 10275 /* macros with inappropriate type -- but ...pending macros use int too: */ 10276 10277 10278 size_t BIO_ctrl_get_write_guarantee(BIO *b); 10279 size_t BIO_ctrl_get_read_request(BIO *b); 10280 int BIO_ctrl_reset_read_request(BIO *b); 10281 10282 /* ctrl macros for dgram */ 10283 # 633 "/usr/include/openssl/bio.h" 3 4 10284 /* These two aren't currently implemented */ 10285 /* int BIO_get_ex_num(BIO *bio); */ 10286 /* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */ 10287 int BIO_set_ex_data(BIO *bio, int idx, void *data); 10288 void *BIO_get_ex_data(BIO *bio, int idx); 10289 int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 10290 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 10291 unsigned long BIO_number_read(BIO *bio); 10292 unsigned long BIO_number_written(BIO *bio); 10293 10294 /* For BIO_f_asn1() */ 10295 int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, 10296 asn1_ps_func *prefix_free); 10297 int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, 10298 asn1_ps_func **pprefix_free); 10299 int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, 10300 asn1_ps_func *suffix_free); 10301 int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, 10302 asn1_ps_func **psuffix_free); 10303 10304 10305 BIO_METHOD *BIO_s_file(void); 10306 BIO *BIO_new_file(const char *filename, const char *mode); 10307 BIO *BIO_new_fp(FILE *stream, int close_flag); 10308 10309 10310 BIO *BIO_new(BIO_METHOD *type); 10311 int BIO_set(BIO *a, BIO_METHOD *type); 10312 int BIO_free(BIO *a); 10313 void BIO_vfree(BIO *a); 10314 int BIO_read(BIO *b, void *data, int len); 10315 int BIO_gets(BIO *bp, char *buf, int size); 10316 int BIO_write(BIO *b, const void *data, int len); 10317 int BIO_puts(BIO *bp, const char *buf); 10318 int BIO_indent(BIO *b, int indent, int max); 10319 long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); 10320 long BIO_callback_ctrl(BIO *b, int cmd, 10321 void (*fp) (struct bio_st *, int, const char *, int, 10322 long, long)); 10323 char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); 10324 long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); 10325 BIO *BIO_push(BIO *b, BIO *append); 10326 BIO *BIO_pop(BIO *b); 10327 void BIO_free_all(BIO *a); 10328 BIO *BIO_find_type(BIO *b, int bio_type); 10329 BIO *BIO_next(BIO *b); 10330 BIO *BIO_get_retry_BIO(BIO *bio, int *reason); 10331 int BIO_get_retry_reason(BIO *bio); 10332 BIO *BIO_dup_chain(BIO *in); 10333 10334 int BIO_nread0(BIO *bio, char **buf); 10335 int BIO_nread(BIO *bio, char **buf, int num); 10336 int BIO_nwrite0(BIO *bio, char **buf); 10337 int BIO_nwrite(BIO *bio, char **buf, int num); 10338 10339 long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, 10340 long argl, long ret); 10341 10342 BIO_METHOD *BIO_s_mem(void); 10343 BIO *BIO_new_mem_buf(const void *buf, int len); 10344 BIO_METHOD *BIO_s_socket(void); 10345 BIO_METHOD *BIO_s_connect(void); 10346 BIO_METHOD *BIO_s_accept(void); 10347 BIO_METHOD *BIO_s_fd(void); 10348 10349 BIO_METHOD *BIO_s_log(void); 10350 10351 BIO_METHOD *BIO_s_bio(void); 10352 BIO_METHOD *BIO_s_null(void); 10353 BIO_METHOD *BIO_f_null(void); 10354 BIO_METHOD *BIO_f_buffer(void); 10355 10356 10357 10358 BIO_METHOD *BIO_f_nbio_test(void); 10359 10360 BIO_METHOD *BIO_s_datagram(void); 10361 10362 10363 10364 10365 10366 /* BIO_METHOD *BIO_f_ber(void); */ 10367 10368 int BIO_sock_should_retry(int i); 10369 int BIO_sock_non_fatal_error(int error); 10370 int BIO_dgram_non_fatal_error(int error); 10371 10372 int BIO_fd_should_retry(int i); 10373 int BIO_fd_non_fatal_error(int error); 10374 int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), 10375 void *u, const char *s, int len); 10376 int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), 10377 void *u, const char *s, int len, int indent); 10378 int BIO_dump(BIO *b, const char *bytes, int len); 10379 int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); 10380 10381 int BIO_dump_fp(FILE *fp, const char *s, int len); 10382 int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); 10383 10384 int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, 10385 int datalen); 10386 10387 struct hostent *BIO_gethostbyname(const char *name); 10388 /*- 10389 * We might want a thread-safe interface too: 10390 * struct hostent *BIO_gethostbyname_r(const char *name, 10391 * struct hostent *result, void *buffer, size_t buflen); 10392 * or something similar (caller allocates a struct hostent, 10393 * pointed to by "result", and additional buffer space for the various 10394 * substructures; if the buffer does not suffice, NULL is returned 10395 * and an appropriate error code is set). 10396 */ 10397 int BIO_sock_error(int sock); 10398 int BIO_socket_ioctl(int fd, long type, void *arg); 10399 int BIO_socket_nbio(int fd, int mode); 10400 int BIO_get_port(const char *str, unsigned short *port_ptr); 10401 int BIO_get_host_ip(const char *str, unsigned char *ip); 10402 int BIO_get_accept_socket(char *host_port, int mode); 10403 int BIO_accept(int sock, char **ip_port); 10404 int BIO_sock_init(void); 10405 void BIO_sock_cleanup(void); 10406 int BIO_set_tcp_ndelay(int sock, int turn_on); 10407 10408 BIO *BIO_new_socket(int sock, int close_flag); 10409 BIO *BIO_new_dgram(int fd, int close_flag); 10410 # 771 "/usr/include/openssl/bio.h" 3 4 10411 BIO *BIO_new_fd(int fd, int close_flag); 10412 BIO *BIO_new_connect(const char *host_port); 10413 BIO *BIO_new_accept(const char *host_port); 10414 10415 int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, 10416 BIO **bio2, size_t writebuf2); 10417 /* 10418 * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. 10419 * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default 10420 * value. 10421 */ 10422 10423 void BIO_copy_next_retry(BIO *b); 10424 10425 /* 10426 * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); 10427 */ 10428 10429 10430 10431 10432 10433 10434 int BIO_printf(BIO *bio, const char *format, ...) 10435 __attribute__((__format__(__printf__, 2, 3))); 10436 int BIO_vprintf(BIO *bio, const char *format, va_list args) 10437 __attribute__((__format__(__printf__, 2, 0))); 10438 int BIO_snprintf(char *buf, size_t n, const char *format, ...) 10439 __attribute__((__format__(__printf__, 3, 4))); 10440 int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) 10441 __attribute__((__format__(__printf__, 3, 0))); 10442 10443 10444 /* BEGIN ERROR CODES */ 10445 /* 10446 * The following lines are auto generated by the script mkerr.pl. Any changes 10447 * made after this point may be overwritten when the script is next run. 10448 */ 10449 void ERR_load_BIO_strings(void); 10450 10451 /* Error codes for the BIO functions. */ 10452 10453 /* Function codes. */ 10454 # 849 "/usr/include/openssl/bio.h" 3 4 10455 /* Reason codes. */ 10456 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 10457 # 1 "/usr/include/openssl/x509.h" 1 3 4 10458 /* crypto/x509/x509.h */ 10459 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10460 * All rights reserved. 10461 * 10462 * This package is an SSL implementation written 10463 * by Eric Young (eay@cryptsoft.com). 10464 * The implementation was written so as to conform with Netscapes SSL. 10465 * 10466 * This library is free for commercial and non-commercial use as long as 10467 * the following conditions are aheared to. The following conditions 10468 * apply to all code found in this distribution, be it the RC4, RSA, 10469 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10470 * included with this distribution is covered by the same copyright terms 10471 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10472 * 10473 * Copyright remains Eric Young's, and as such any Copyright notices in 10474 * the code are not to be removed. 10475 * If this package is used in a product, Eric Young should be given attribution 10476 * as the author of the parts of the library used. 10477 * This can be in the form of a textual message at program startup or 10478 * in documentation (online or textual) provided with the package. 10479 * 10480 * Redistribution and use in source and binary forms, with or without 10481 * modification, are permitted provided that the following conditions 10482 * are met: 10483 * 1. Redistributions of source code must retain the copyright 10484 * notice, this list of conditions and the following disclaimer. 10485 * 2. Redistributions in binary form must reproduce the above copyright 10486 * notice, this list of conditions and the following disclaimer in the 10487 * documentation and/or other materials provided with the distribution. 10488 * 3. All advertising materials mentioning features or use of this software 10489 * must display the following acknowledgement: 10490 * "This product includes cryptographic software written by 10491 * Eric Young (eay@cryptsoft.com)" 10492 * The word 'cryptographic' can be left out if the rouines from the library 10493 * being used are not cryptographic related :-). 10494 * 4. If you include any Windows specific code (or a derivative thereof) from 10495 * the apps directory (application code) you must include an acknowledgement: 10496 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10497 * 10498 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10499 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10500 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10501 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10502 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10503 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10504 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10505 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10506 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10507 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10508 * SUCH DAMAGE. 10509 * 10510 * The licence and distribution terms for any publically available version or 10511 * derivative of this code cannot be changed. i.e. this code cannot simply be 10512 * copied and put under another distribution licence 10513 * [including the GNU Public Licence.] 10514 */ 10515 /* ==================================================================== 10516 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 10517 * ECDH support in OpenSSL originally developed by 10518 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 10519 */ 10520 10521 10522 10523 10524 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 10525 /* e_os2.h */ 10526 /* ==================================================================== 10527 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 10528 * 10529 * Redistribution and use in source and binary forms, with or without 10530 * modification, are permitted provided that the following conditions 10531 * are met: 10532 * 10533 * 1. Redistributions of source code must retain the above copyright 10534 * notice, this list of conditions and the following disclaimer. 10535 * 10536 * 2. Redistributions in binary form must reproduce the above copyright 10537 * notice, this list of conditions and the following disclaimer in 10538 * the documentation and/or other materials provided with the 10539 * distribution. 10540 * 10541 * 3. All advertising materials mentioning features or use of this 10542 * software must display the following acknowledgment: 10543 * "This product includes software developed by the OpenSSL Project 10544 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10545 * 10546 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10547 * endorse or promote products derived from this software without 10548 * prior written permission. For written permission, please contact 10549 * openssl-core@openssl.org. 10550 * 10551 * 5. Products derived from this software may not be called "OpenSSL" 10552 * nor may "OpenSSL" appear in their names without prior written 10553 * permission of the OpenSSL Project. 10554 * 10555 * 6. Redistributions of any form whatsoever must retain the following 10556 * acknowledgment: 10557 * "This product includes software developed by the OpenSSL Project 10558 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10559 * 10560 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10561 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10562 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10563 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10564 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10565 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10566 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10567 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10568 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10569 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10570 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10571 * OF THE POSSIBILITY OF SUCH DAMAGE. 10572 * ==================================================================== 10573 * 10574 * This product includes cryptographic software written by Eric Young 10575 * (eay@cryptsoft.com). This product includes software written by Tim 10576 * Hudson (tjh@cryptsoft.com). 10577 * 10578 */ 10579 10580 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 10581 /* opensslconf.h */ 10582 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 10583 10584 10585 10586 10587 /* OpenSSL was configured with the following options: */ 10588 # 108 "/usr/include/openssl/opensslconf.h" 3 4 10589 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 10590 asks for it. This is a transient feature that is provided for those 10591 who haven't had the time to do the appropriate changes in their 10592 applications. */ 10593 # 204 "/usr/include/openssl/opensslconf.h" 3 4 10594 /* crypto/opensslconf.h.in */ 10595 10596 /* Generate 80386 code? */ 10597 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 10598 # 68 "/usr/include/openssl/x509.h" 2 3 4 10599 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 10600 /* ==================================================================== 10601 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 10602 * 10603 * Redistribution and use in source and binary forms, with or without 10604 * modification, are permitted provided that the following conditions 10605 * are met: 10606 * 10607 * 1. Redistributions of source code must retain the above copyright 10608 * notice, this list of conditions and the following disclaimer. 10609 * 10610 * 2. Redistributions in binary form must reproduce the above copyright 10611 * notice, this list of conditions and the following disclaimer in 10612 * the documentation and/or other materials provided with the 10613 * distribution. 10614 * 10615 * 3. All advertising materials mentioning features or use of this 10616 * software must display the following acknowledgment: 10617 * "This product includes software developed by the OpenSSL Project 10618 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10619 * 10620 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10621 * endorse or promote products derived from this software without 10622 * prior written permission. For written permission, please contact 10623 * openssl-core@openssl.org. 10624 * 10625 * 5. Products derived from this software may not be called "OpenSSL" 10626 * nor may "OpenSSL" appear in their names without prior written 10627 * permission of the OpenSSL Project. 10628 * 10629 * 6. Redistributions of any form whatsoever must retain the following 10630 * acknowledgment: 10631 * "This product includes software developed by the OpenSSL Project 10632 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10633 * 10634 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10635 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10636 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10637 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10638 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10639 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10640 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10641 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10642 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10643 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10644 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10645 * OF THE POSSIBILITY OF SUCH DAMAGE. 10646 * ==================================================================== 10647 * 10648 * This product includes cryptographic software written by Eric Young 10649 * (eay@cryptsoft.com). This product includes software written by Tim 10650 * Hudson (tjh@cryptsoft.com). 10651 * 10652 */ 10653 # 69 "/usr/include/openssl/x509.h" 2 3 4 10654 10655 # 1 "/usr/include/openssl/buffer.h" 1 3 4 10656 /* crypto/buffer/buffer.h */ 10657 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 10658 * All rights reserved. 10659 * 10660 * This package is an SSL implementation written 10661 * by Eric Young (eay@cryptsoft.com). 10662 * The implementation was written so as to conform with Netscapes SSL. 10663 * 10664 * This library is free for commercial and non-commercial use as long as 10665 * the following conditions are aheared to. The following conditions 10666 * apply to all code found in this distribution, be it the RC4, RSA, 10667 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 10668 * included with this distribution is covered by the same copyright terms 10669 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 10670 * 10671 * Copyright remains Eric Young's, and as such any Copyright notices in 10672 * the code are not to be removed. 10673 * If this package is used in a product, Eric Young should be given attribution 10674 * as the author of the parts of the library used. 10675 * This can be in the form of a textual message at program startup or 10676 * in documentation (online or textual) provided with the package. 10677 * 10678 * Redistribution and use in source and binary forms, with or without 10679 * modification, are permitted provided that the following conditions 10680 * are met: 10681 * 1. Redistributions of source code must retain the copyright 10682 * notice, this list of conditions and the following disclaimer. 10683 * 2. Redistributions in binary form must reproduce the above copyright 10684 * notice, this list of conditions and the following disclaimer in the 10685 * documentation and/or other materials provided with the distribution. 10686 * 3. All advertising materials mentioning features or use of this software 10687 * must display the following acknowledgement: 10688 * "This product includes cryptographic software written by 10689 * Eric Young (eay@cryptsoft.com)" 10690 * The word 'cryptographic' can be left out if the rouines from the library 10691 * being used are not cryptographic related :-). 10692 * 4. If you include any Windows specific code (or a derivative thereof) from 10693 * the apps directory (application code) you must include an acknowledgement: 10694 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 10695 * 10696 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 10697 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10698 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 10699 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 10700 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 10701 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 10702 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10703 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 10704 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 10705 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 10706 * SUCH DAMAGE. 10707 * 10708 * The licence and distribution terms for any publically available version or 10709 * derivative of this code cannot be changed. i.e. this code cannot simply be 10710 * copied and put under another distribution licence 10711 * [including the GNU Public Licence.] 10712 */ 10713 10714 10715 10716 10717 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 10718 /* ==================================================================== 10719 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 10720 * 10721 * Redistribution and use in source and binary forms, with or without 10722 * modification, are permitted provided that the following conditions 10723 * are met: 10724 * 10725 * 1. Redistributions of source code must retain the above copyright 10726 * notice, this list of conditions and the following disclaimer. 10727 * 10728 * 2. Redistributions in binary form must reproduce the above copyright 10729 * notice, this list of conditions and the following disclaimer in 10730 * the documentation and/or other materials provided with the 10731 * distribution. 10732 * 10733 * 3. All advertising materials mentioning features or use of this 10734 * software must display the following acknowledgment: 10735 * "This product includes software developed by the OpenSSL Project 10736 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 10737 * 10738 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 10739 * endorse or promote products derived from this software without 10740 * prior written permission. For written permission, please contact 10741 * openssl-core@openssl.org. 10742 * 10743 * 5. Products derived from this software may not be called "OpenSSL" 10744 * nor may "OpenSSL" appear in their names without prior written 10745 * permission of the OpenSSL Project. 10746 * 10747 * 6. Redistributions of any form whatsoever must retain the following 10748 * acknowledgment: 10749 * "This product includes software developed by the OpenSSL Project 10750 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 10751 * 10752 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 10753 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 10754 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 10755 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 10756 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 10757 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 10758 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 10759 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 10760 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 10761 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 10762 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 10763 * OF THE POSSIBILITY OF SUCH DAMAGE. 10764 * ==================================================================== 10765 * 10766 * This product includes cryptographic software written by Eric Young 10767 * (eay@cryptsoft.com). This product includes software written by Tim 10768 * Hudson (tjh@cryptsoft.com). 10769 * 10770 */ 10771 # 63 "/usr/include/openssl/buffer.h" 2 3 4 10772 10773 10774 10775 10776 10777 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4 10778 /* 10779 * CDDL HEADER START 10780 * 10781 * The contents of this file are subject to the terms of the 10782 * Common Development and Distribution License, Version 1.0 only 10783 * (the "License"). You may not use this file except in compliance 10784 * with the License. 10785 * 10786 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10787 * or http://www.opensolaris.org/os/licensing. 10788 * See the License for the specific language governing permissions 10789 * and limitations under the License. 10790 * 10791 * When distributing Covered Code, include this CDDL HEADER in each 10792 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10793 * If applicable, add the following below this CDDL HEADER, with the 10794 * fields enclosed by brackets "[]" replaced with your own identifying 10795 * information: Portions Copyright [yyyy] [name of copyright owner] 10796 * 10797 * CDDL HEADER END 10798 */ 10799 /* Copyright (c) 1988 AT&T */ 10800 /* All Rights Reserved */ 10801 10802 10803 /* 10804 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 10805 * Use is subject to license terms. 10806 */ 10807 10808 10809 10810 10811 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4 10812 /* 10813 * CDDL HEADER START 10814 * 10815 * The contents of this file are subject to the terms of the 10816 * Common Development and Distribution License (the "License"). 10817 * You may not use this file except in compliance with the License. 10818 * 10819 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10820 * or http://www.opensolaris.org/os/licensing. 10821 * See the License for the specific language governing permissions 10822 * and limitations under the License. 10823 * 10824 * 10825 * When distributing Covered Code, include this CDDL HEADER in each 10826 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10827 * If applicable, add the following below this CDDL HEADER, with the 10828 * fields enclosed by brackets "[]" replaced with your own identifying 10829 * information: Portions Copyright [yyyy] [name of copyright owner] 10830 * 10831 * CDDL HEADER END 10832 */ 10833 10834 /* 10835 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 10836 * Use is subject to license terms. 10837 * Copyright 2016 Joyent, Inc. 10838 */ 10839 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 10840 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 1 3 4 10841 /* 10842 * CDDL HEADER START 10843 * 10844 * The contents of this file are subject to the terms of the 10845 * Common Development and Distribution License, Version 1.0 only 10846 * (the "License"). You may not use this file except in compliance 10847 * with the License. 10848 * 10849 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10850 * or http://www.opensolaris.org/os/licensing. 10851 * See the License for the specific language governing permissions 10852 * and limitations under the License. 10853 * 10854 * When distributing Covered Code, include this CDDL HEADER in each 10855 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10856 * If applicable, add the following below this CDDL HEADER, with the 10857 * fields enclosed by brackets "[]" replaced with your own identifying 10858 * information: Portions Copyright [yyyy] [name of copyright owner] 10859 * 10860 * CDDL HEADER END 10861 */ 10862 /* Copyright (c) 1988 AT&T */ 10863 /* All Rights Reserved */ 10864 10865 10866 /* 10867 * Copyright 1999-2003 Sun Microsystems, Inc. All rights reserved. 10868 * Use is subject to license terms. 10869 */ 10870 10871 /* 10872 * Copyright 2014 PALO, Richard. 10873 * Copyright 2016 Joyent, Inc. 10874 */ 10875 10876 /* 10877 * An application should not include this header directly. Instead it 10878 * should be included only through the inclusion of other Sun headers. 10879 * 10880 * The contents of this header is limited to identifiers specified in the 10881 * C Standard. Any new identifiers specified in future amendments to the 10882 * C Standard must be placed in this header. If these new identifiers 10883 * are required to also be in the C++ Standard "std" namespace, then for 10884 * anything other than macro definitions, corresponding "using" directives 10885 * must also be added to <stddef.h.h>. 10886 */ 10887 10888 10889 10890 10891 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 3 4 10892 /* 10893 * CDDL HEADER START 10894 * 10895 * The contents of this file are subject to the terms of the 10896 * Common Development and Distribution License (the "License"). 10897 * You may not use this file except in compliance with the License. 10898 * 10899 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10900 * or http://www.opensolaris.org/os/licensing. 10901 * See the License for the specific language governing permissions 10902 * and limitations under the License. 10903 * 10904 * 10905 * When distributing Covered Code, include this CDDL HEADER in each 10906 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10907 * If applicable, add the following below this CDDL HEADER, with the 10908 * fields enclosed by brackets "[]" replaced with your own identifying 10909 * information: Portions Copyright [yyyy] [name of copyright owner] 10910 * 10911 * CDDL HEADER END 10912 */ 10913 10914 /* 10915 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 10916 * Use is subject to license terms. 10917 * Copyright 2016 Joyent, Inc. 10918 */ 10919 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 10920 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 3 4 10921 /* 10922 * CDDL HEADER START 10923 * 10924 * The contents of this file are subject to the terms of the 10925 * Common Development and Distribution License (the "License"). 10926 * You may not use this file except in compliance with the License. 10927 * 10928 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10929 * or http://www.opensolaris.org/os/licensing. 10930 * See the License for the specific language governing permissions 10931 * and limitations under the License. 10932 * 10933 * When distributing Covered Code, include this CDDL HEADER in each 10934 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 10935 * If applicable, add the following below this CDDL HEADER, with the 10936 * fields enclosed by brackets "[]" replaced with your own identifying 10937 * information: Portions Copyright [yyyy] [name of copyright owner] 10938 * 10939 * CDDL HEADER END 10940 */ 10941 10942 /* 10943 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 10944 * Copyright 2016 Joyent, Inc. 10945 * 10946 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 10947 * Use is subject to license terms. 10948 */ 10949 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 10950 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 3 4 10951 /* 10952 * This file and its contents are supplied under the terms of the 10953 * Common Development and Distribution License ("CDDL"), version 1.0. 10954 * You may only use this file in accordance with the terms of version 10955 * 1.0 of the CDDL. 10956 * 10957 * A full copy of the text of the CDDL should have accompanied this 10958 * source. A copy of the CDDL is also available via the Internet at 10959 * http://www.illumos.org/license/CDDL. 10960 */ 10961 10962 /* 10963 * Copyright 2014-2016 PALO, Richard. 10964 */ 10965 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 2 3 4 10966 # 88 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/iso/stddef_iso.h" 3 4 10967 typedef long max_align_t; 10968 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 10969 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 1 3 4 10970 /* 10971 * This file and its contents are supplied under the terms of the 10972 * Common Development and Distribution License ("CDDL"), version 1.0. 10973 * You may only use this file in accordance with the terms of version 10974 * 1.0 of the CDDL. 10975 * 10976 * A full copy of the text of the CDDL should have accompanied this 10977 * source. A copy of the CDDL is also available via the Internet at 10978 * http://www.illumos.org/license/CDDL. 10979 */ 10980 10981 /* 10982 * Copyright 2017 Toomas Soome <tsoome@me.com> 10983 */ 10984 10985 10986 10987 10988 /* 10989 * Commonly used macros and definitions. 10990 */ 10991 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stddef.h" 3 4 10992 /* 10993 * We must not expose container_of() to userland, but we want it 10994 * to be available for early boot and for the kernel. 10995 */ 10996 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 2 3 4 10997 10998 /* 10999 * Allow global visibility for symbols defined in 11000 * C++ "std" namespace in <iso/stddef_iso.h>. 11001 */ 11002 # 51 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 3 4 11003 /* 11004 * wchar_t is a built-in type in standard C++ and as such is not 11005 * defined here when using standard C++. However, the GNU compiler 11006 * fixincludes utility nonetheless creates its own version of this 11007 * header for use by gcc and g++. In that version it adds a redundant 11008 * guard for __cplusplus. To avoid the creation of a gcc/g++ specific 11009 * header we need to include the following magic comment: 11010 * 11011 * we must use the C++ compiler's type 11012 * 11013 * The above comment should not be removed or changed until GNU 11014 * gcc/fixinc/inclhack.def is updated to bypass this header. 11015 */ 11016 # 69 "/usr/include/openssl/buffer.h" 2 3 4 11017 11018 11019 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 3 4 11020 /* 11021 * CDDL HEADER START 11022 * 11023 * The contents of this file are subject to the terms of the 11024 * Common Development and Distribution License (the "License"). 11025 * You may not use this file except in compliance with the License. 11026 * 11027 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11028 * or http://www.opensolaris.org/os/licensing. 11029 * See the License for the specific language governing permissions 11030 * and limitations under the License. 11031 * 11032 * When distributing Covered Code, include this CDDL HEADER in each 11033 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 11034 * If applicable, add the following below this CDDL HEADER, with the 11035 * fields enclosed by brackets "[]" replaced with your own identifying 11036 * information: Portions Copyright [yyyy] [name of copyright owner] 11037 * 11038 * CDDL HEADER END 11039 */ 11040 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 11041 /* All Rights Reserved */ 11042 11043 11044 /* 11045 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 11046 * Use is subject to license terms. 11047 * 11048 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 11049 * Copyright 2016 Joyent, Inc. 11050 */ 11051 # 72 "/usr/include/openssl/buffer.h" 2 3 4 11052 11053 11054 /* Already declared in ossl_typ.h */ 11055 /* typedef struct buf_mem_st BUF_MEM; */ 11056 11057 struct buf_mem_st { 11058 size_t length; /* current number of bytes */ 11059 char *data; 11060 size_t max; /* size of buffer */ 11061 }; 11062 11063 BUF_MEM *BUF_MEM_new(void); 11064 void BUF_MEM_free(BUF_MEM *a); 11065 int BUF_MEM_grow(BUF_MEM *str, size_t len); 11066 int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); 11067 size_t BUF_strnlen(const char *str, size_t maxlen); 11068 char *BUF_strdup(const char *str); 11069 11070 /* 11071 * Like strndup, but in addition, explicitly guarantees to never read past the 11072 * first |siz| bytes of |str|. 11073 */ 11074 char *BUF_strndup(const char *str, size_t siz); 11075 11076 void *BUF_memdup(const void *data, size_t siz); 11077 void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); 11078 11079 /* safe string functions */ 11080 size_t BUF_strlcpy(char *dst, const char *src, size_t siz); 11081 size_t BUF_strlcat(char *dst, const char *src, size_t siz); 11082 11083 /* BEGIN ERROR CODES */ 11084 /* 11085 * The following lines are auto generated by the script mkerr.pl. Any changes 11086 * made after this point may be overwritten when the script is next run. 11087 */ 11088 void ERR_load_BUF_strings(void); 11089 11090 /* Error codes for the BUF functions. */ 11091 11092 /* Function codes. */ 11093 11094 11095 11096 11097 11098 11099 11100 /* Reason codes. */ 11101 # 71 "/usr/include/openssl/x509.h" 2 3 4 11102 11103 11104 # 1 "/usr/include/openssl/evp.h" 1 3 4 11105 /* crypto/evp/evp.h */ 11106 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11107 * All rights reserved. 11108 * 11109 * This package is an SSL implementation written 11110 * by Eric Young (eay@cryptsoft.com). 11111 * The implementation was written so as to conform with Netscapes SSL. 11112 * 11113 * This library is free for commercial and non-commercial use as long as 11114 * the following conditions are aheared to. The following conditions 11115 * apply to all code found in this distribution, be it the RC4, RSA, 11116 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11117 * included with this distribution is covered by the same copyright terms 11118 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11119 * 11120 * Copyright remains Eric Young's, and as such any Copyright notices in 11121 * the code are not to be removed. 11122 * If this package is used in a product, Eric Young should be given attribution 11123 * as the author of the parts of the library used. 11124 * This can be in the form of a textual message at program startup or 11125 * in documentation (online or textual) provided with the package. 11126 * 11127 * Redistribution and use in source and binary forms, with or without 11128 * modification, are permitted provided that the following conditions 11129 * are met: 11130 * 1. Redistributions of source code must retain the copyright 11131 * notice, this list of conditions and the following disclaimer. 11132 * 2. Redistributions in binary form must reproduce the above copyright 11133 * notice, this list of conditions and the following disclaimer in the 11134 * documentation and/or other materials provided with the distribution. 11135 * 3. All advertising materials mentioning features or use of this software 11136 * must display the following acknowledgement: 11137 * "This product includes cryptographic software written by 11138 * Eric Young (eay@cryptsoft.com)" 11139 * The word 'cryptographic' can be left out if the rouines from the library 11140 * being used are not cryptographic related :-). 11141 * 4. If you include any Windows specific code (or a derivative thereof) from 11142 * the apps directory (application code) you must include an acknowledgement: 11143 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11144 * 11145 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11146 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11147 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11148 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11149 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11150 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11151 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11152 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11153 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11154 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11155 * SUCH DAMAGE. 11156 * 11157 * The licence and distribution terms for any publically available version or 11158 * derivative of this code cannot be changed. i.e. this code cannot simply be 11159 * copied and put under another distribution licence 11160 * [including the GNU Public Licence.] 11161 */ 11162 # 66 "/usr/include/openssl/evp.h" 3 4 11163 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 11164 /* opensslconf.h */ 11165 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 11166 11167 11168 11169 11170 /* OpenSSL was configured with the following options: */ 11171 # 108 "/usr/include/openssl/opensslconf.h" 3 4 11172 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 11173 asks for it. This is a transient feature that is provided for those 11174 who haven't had the time to do the appropriate changes in their 11175 applications. */ 11176 # 204 "/usr/include/openssl/opensslconf.h" 3 4 11177 /* crypto/opensslconf.h.in */ 11178 11179 /* Generate 80386 code? */ 11180 # 67 "/usr/include/openssl/evp.h" 2 3 4 11181 11182 11183 11184 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 11185 /* ==================================================================== 11186 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 11187 * 11188 * Redistribution and use in source and binary forms, with or without 11189 * modification, are permitted provided that the following conditions 11190 * are met: 11191 * 11192 * 1. Redistributions of source code must retain the above copyright 11193 * notice, this list of conditions and the following disclaimer. 11194 * 11195 * 2. Redistributions in binary form must reproduce the above copyright 11196 * notice, this list of conditions and the following disclaimer in 11197 * the documentation and/or other materials provided with the 11198 * distribution. 11199 * 11200 * 3. All advertising materials mentioning features or use of this 11201 * software must display the following acknowledgment: 11202 * "This product includes software developed by the OpenSSL Project 11203 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11204 * 11205 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11206 * endorse or promote products derived from this software without 11207 * prior written permission. For written permission, please contact 11208 * openssl-core@openssl.org. 11209 * 11210 * 5. Products derived from this software may not be called "OpenSSL" 11211 * nor may "OpenSSL" appear in their names without prior written 11212 * permission of the OpenSSL Project. 11213 * 11214 * 6. Redistributions of any form whatsoever must retain the following 11215 * acknowledgment: 11216 * "This product includes software developed by the OpenSSL Project 11217 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11218 * 11219 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11220 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11221 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11222 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11223 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11224 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11225 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11226 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11227 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11228 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11229 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11230 * OF THE POSSIBILITY OF SUCH DAMAGE. 11231 * ==================================================================== 11232 * 11233 * This product includes cryptographic software written by Eric Young 11234 * (eay@cryptsoft.com). This product includes software written by Tim 11235 * Hudson (tjh@cryptsoft.com). 11236 * 11237 */ 11238 # 71 "/usr/include/openssl/evp.h" 2 3 4 11239 11240 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 11241 /* ==================================================================== 11242 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 11243 * 11244 * Redistribution and use in source and binary forms, with or without 11245 * modification, are permitted provided that the following conditions 11246 * are met: 11247 * 11248 * 1. Redistributions of source code must retain the above copyright 11249 * notice, this list of conditions and the following disclaimer. 11250 * 11251 * 2. Redistributions in binary form must reproduce the above copyright 11252 * notice, this list of conditions and the following disclaimer in 11253 * the documentation and/or other materials provided with the 11254 * distribution. 11255 * 11256 * 3. All advertising materials mentioning features or use of this 11257 * software must display the following acknowledgment: 11258 * "This product includes software developed by the OpenSSL Project 11259 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11260 * 11261 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11262 * endorse or promote products derived from this software without 11263 * prior written permission. For written permission, please contact 11264 * openssl-core@openssl.org. 11265 * 11266 * 5. Products derived from this software may not be called "OpenSSL" 11267 * nor may "OpenSSL" appear in their names without prior written 11268 * permission of the OpenSSL Project. 11269 * 11270 * 6. Redistributions of any form whatsoever must retain the following 11271 * acknowledgment: 11272 * "This product includes software developed by the OpenSSL Project 11273 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11274 * 11275 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11276 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11277 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11278 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11279 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11280 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11281 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11282 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11283 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11284 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11285 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11286 * OF THE POSSIBILITY OF SUCH DAMAGE. 11287 * ==================================================================== 11288 * 11289 * This product includes cryptographic software written by Eric Young 11290 * (eay@cryptsoft.com). This product includes software written by Tim 11291 * Hudson (tjh@cryptsoft.com). 11292 * 11293 */ 11294 # 73 "/usr/include/openssl/evp.h" 2 3 4 11295 11296 11297 # 1 "/usr/include/openssl/bio.h" 1 3 4 11298 /* crypto/bio/bio.h */ 11299 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11300 * All rights reserved. 11301 * 11302 * This package is an SSL implementation written 11303 * by Eric Young (eay@cryptsoft.com). 11304 * The implementation was written so as to conform with Netscapes SSL. 11305 * 11306 * This library is free for commercial and non-commercial use as long as 11307 * the following conditions are aheared to. The following conditions 11308 * apply to all code found in this distribution, be it the RC4, RSA, 11309 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11310 * included with this distribution is covered by the same copyright terms 11311 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11312 * 11313 * Copyright remains Eric Young's, and as such any Copyright notices in 11314 * the code are not to be removed. 11315 * If this package is used in a product, Eric Young should be given attribution 11316 * as the author of the parts of the library used. 11317 * This can be in the form of a textual message at program startup or 11318 * in documentation (online or textual) provided with the package. 11319 * 11320 * Redistribution and use in source and binary forms, with or without 11321 * modification, are permitted provided that the following conditions 11322 * are met: 11323 * 1. Redistributions of source code must retain the copyright 11324 * notice, this list of conditions and the following disclaimer. 11325 * 2. Redistributions in binary form must reproduce the above copyright 11326 * notice, this list of conditions and the following disclaimer in the 11327 * documentation and/or other materials provided with the distribution. 11328 * 3. All advertising materials mentioning features or use of this software 11329 * must display the following acknowledgement: 11330 * "This product includes cryptographic software written by 11331 * Eric Young (eay@cryptsoft.com)" 11332 * The word 'cryptographic' can be left out if the rouines from the library 11333 * being used are not cryptographic related :-). 11334 * 4. If you include any Windows specific code (or a derivative thereof) from 11335 * the apps directory (application code) you must include an acknowledgement: 11336 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11337 * 11338 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11339 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11340 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11341 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11342 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11343 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11344 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11345 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11346 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11347 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11348 * SUCH DAMAGE. 11349 * 11350 * The licence and distribution terms for any publically available version or 11351 * derivative of this code cannot be changed. i.e. this code cannot simply be 11352 * copied and put under another distribution licence 11353 * [including the GNU Public Licence.] 11354 */ 11355 # 76 "/usr/include/openssl/evp.h" 2 3 4 11356 11357 11358 /*- 11359 #define EVP_RC2_KEY_SIZE 16 11360 #define EVP_RC4_KEY_SIZE 16 11361 #define EVP_BLOWFISH_KEY_SIZE 16 11362 #define EVP_CAST5_KEY_SIZE 16 11363 #define EVP_RC5_32_12_16_KEY_SIZE 16 11364 */ 11365 11366 11367 11368 11369 11370 11371 /* Default PKCS#5 iteration count */ 11372 11373 11374 # 1 "/usr/include/openssl/objects.h" 1 3 4 11375 /* crypto/objects/objects.h */ 11376 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11377 * All rights reserved. 11378 * 11379 * This package is an SSL implementation written 11380 * by Eric Young (eay@cryptsoft.com). 11381 * The implementation was written so as to conform with Netscapes SSL. 11382 * 11383 * This library is free for commercial and non-commercial use as long as 11384 * the following conditions are aheared to. The following conditions 11385 * apply to all code found in this distribution, be it the RC4, RSA, 11386 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11387 * included with this distribution is covered by the same copyright terms 11388 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11389 * 11390 * Copyright remains Eric Young's, and as such any Copyright notices in 11391 * the code are not to be removed. 11392 * If this package is used in a product, Eric Young should be given attribution 11393 * as the author of the parts of the library used. 11394 * This can be in the form of a textual message at program startup or 11395 * in documentation (online or textual) provided with the package. 11396 * 11397 * Redistribution and use in source and binary forms, with or without 11398 * modification, are permitted provided that the following conditions 11399 * are met: 11400 * 1. Redistributions of source code must retain the copyright 11401 * notice, this list of conditions and the following disclaimer. 11402 * 2. Redistributions in binary form must reproduce the above copyright 11403 * notice, this list of conditions and the following disclaimer in the 11404 * documentation and/or other materials provided with the distribution. 11405 * 3. All advertising materials mentioning features or use of this software 11406 * must display the following acknowledgement: 11407 * "This product includes cryptographic software written by 11408 * Eric Young (eay@cryptsoft.com)" 11409 * The word 'cryptographic' can be left out if the rouines from the library 11410 * being used are not cryptographic related :-). 11411 * 4. If you include any Windows specific code (or a derivative thereof) from 11412 * the apps directory (application code) you must include an acknowledgement: 11413 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11414 * 11415 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11416 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11417 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11418 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11419 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11420 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11421 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11422 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11423 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11424 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11425 * SUCH DAMAGE. 11426 * 11427 * The licence and distribution terms for any publically available version or 11428 * derivative of this code cannot be changed. i.e. this code cannot simply be 11429 * copied and put under another distribution licence 11430 * [including the GNU Public Licence.] 11431 */ 11432 11433 11434 11435 11436 11437 11438 11439 # 1 "/usr/include/openssl/obj_mac.h" 1 3 4 11440 /* crypto/objects/obj_mac.h */ 11441 11442 /* 11443 * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following 11444 * command: perl objects.pl objects.txt obj_mac.num obj_mac.h 11445 */ 11446 11447 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 11448 * All rights reserved. 11449 * 11450 * This package is an SSL implementation written 11451 * by Eric Young (eay@cryptsoft.com). 11452 * The implementation was written so as to conform with Netscapes SSL. 11453 * 11454 * This library is free for commercial and non-commercial use as long as 11455 * the following conditions are aheared to. The following conditions 11456 * apply to all code found in this distribution, be it the RC4, RSA, 11457 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11458 * included with this distribution is covered by the same copyright terms 11459 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11460 * 11461 * Copyright remains Eric Young's, and as such any Copyright notices in 11462 * the code are not to be removed. 11463 * If this package is used in a product, Eric Young should be given attribution 11464 * as the author of the parts of the library used. 11465 * This can be in the form of a textual message at program startup or 11466 * in documentation (online or textual) provided with the package. 11467 * 11468 * Redistribution and use in source and binary forms, with or without 11469 * modification, are permitted provided that the following conditions 11470 * are met: 11471 * 1. Redistributions of source code must retain the copyright 11472 * notice, this list of conditions and the following disclaimer. 11473 * 2. Redistributions in binary form must reproduce the above copyright 11474 * notice, this list of conditions and the following disclaimer in the 11475 * documentation and/or other materials provided with the distribution. 11476 * 3. All advertising materials mentioning features or use of this software 11477 * must display the following acknowledgement: 11478 * "This product includes cryptographic software written by 11479 * Eric Young (eay@cryptsoft.com)" 11480 * The word 'cryptographic' can be left out if the rouines from the library 11481 * being used are not cryptographic related :-). 11482 * 4. If you include any Windows specific code (or a derivative thereof) from 11483 * the apps directory (application code) you must include an acknowledgement: 11484 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11485 * 11486 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11487 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11488 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11489 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11490 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11491 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11492 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11493 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11494 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11495 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11496 * SUCH DAMAGE. 11497 * 11498 * The licence and distribution terms for any publically available version or 11499 * derivative of this code cannot be changed. i.e. this code cannot simply be 11500 * copied and put under another distribution licence 11501 * [including the GNU Public Licence.] 11502 */ 11503 # 66 "/usr/include/openssl/objects.h" 2 3 4 11504 # 964 "/usr/include/openssl/objects.h" 3 4 11505 # 1 "/usr/include/openssl/bio.h" 1 3 4 11506 /* crypto/bio/bio.h */ 11507 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11508 * All rights reserved. 11509 * 11510 * This package is an SSL implementation written 11511 * by Eric Young (eay@cryptsoft.com). 11512 * The implementation was written so as to conform with Netscapes SSL. 11513 * 11514 * This library is free for commercial and non-commercial use as long as 11515 * the following conditions are aheared to. The following conditions 11516 * apply to all code found in this distribution, be it the RC4, RSA, 11517 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11518 * included with this distribution is covered by the same copyright terms 11519 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11520 * 11521 * Copyright remains Eric Young's, and as such any Copyright notices in 11522 * the code are not to be removed. 11523 * If this package is used in a product, Eric Young should be given attribution 11524 * as the author of the parts of the library used. 11525 * This can be in the form of a textual message at program startup or 11526 * in documentation (online or textual) provided with the package. 11527 * 11528 * Redistribution and use in source and binary forms, with or without 11529 * modification, are permitted provided that the following conditions 11530 * are met: 11531 * 1. Redistributions of source code must retain the copyright 11532 * notice, this list of conditions and the following disclaimer. 11533 * 2. Redistributions in binary form must reproduce the above copyright 11534 * notice, this list of conditions and the following disclaimer in the 11535 * documentation and/or other materials provided with the distribution. 11536 * 3. All advertising materials mentioning features or use of this software 11537 * must display the following acknowledgement: 11538 * "This product includes cryptographic software written by 11539 * Eric Young (eay@cryptsoft.com)" 11540 * The word 'cryptographic' can be left out if the rouines from the library 11541 * being used are not cryptographic related :-). 11542 * 4. If you include any Windows specific code (or a derivative thereof) from 11543 * the apps directory (application code) you must include an acknowledgement: 11544 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11545 * 11546 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11547 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11548 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11549 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11550 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11551 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11552 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11553 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11554 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11555 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11556 * SUCH DAMAGE. 11557 * 11558 * The licence and distribution terms for any publically available version or 11559 * derivative of this code cannot be changed. i.e. this code cannot simply be 11560 * copied and put under another distribution licence 11561 * [including the GNU Public Licence.] 11562 */ 11563 # 965 "/usr/include/openssl/objects.h" 2 3 4 11564 # 1 "/usr/include/openssl/asn1.h" 1 3 4 11565 /* crypto/asn1/asn1.h */ 11566 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11567 * All rights reserved. 11568 * 11569 * This package is an SSL implementation written 11570 * by Eric Young (eay@cryptsoft.com). 11571 * The implementation was written so as to conform with Netscapes SSL. 11572 * 11573 * This library is free for commercial and non-commercial use as long as 11574 * the following conditions are aheared to. The following conditions 11575 * apply to all code found in this distribution, be it the RC4, RSA, 11576 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11577 * included with this distribution is covered by the same copyright terms 11578 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11579 * 11580 * Copyright remains Eric Young's, and as such any Copyright notices in 11581 * the code are not to be removed. 11582 * If this package is used in a product, Eric Young should be given attribution 11583 * as the author of the parts of the library used. 11584 * This can be in the form of a textual message at program startup or 11585 * in documentation (online or textual) provided with the package. 11586 * 11587 * Redistribution and use in source and binary forms, with or without 11588 * modification, are permitted provided that the following conditions 11589 * are met: 11590 * 1. Redistributions of source code must retain the copyright 11591 * notice, this list of conditions and the following disclaimer. 11592 * 2. Redistributions in binary form must reproduce the above copyright 11593 * notice, this list of conditions and the following disclaimer in the 11594 * documentation and/or other materials provided with the distribution. 11595 * 3. All advertising materials mentioning features or use of this software 11596 * must display the following acknowledgement: 11597 * "This product includes cryptographic software written by 11598 * Eric Young (eay@cryptsoft.com)" 11599 * The word 'cryptographic' can be left out if the rouines from the library 11600 * being used are not cryptographic related :-). 11601 * 4. If you include any Windows specific code (or a derivative thereof) from 11602 * the apps directory (application code) you must include an acknowledgement: 11603 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11604 * 11605 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11606 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11607 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11608 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11609 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11610 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11611 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11612 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11613 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11614 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11615 * SUCH DAMAGE. 11616 * 11617 * The licence and distribution terms for any publically available version or 11618 * derivative of this code cannot be changed. i.e. this code cannot simply be 11619 * copied and put under another distribution licence 11620 * [including the GNU Public Licence.] 11621 */ 11622 11623 11624 11625 11626 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/time.h" 1 3 4 11627 /* 11628 * CDDL HEADER START 11629 * 11630 * The contents of this file are subject to the terms of the 11631 * Common Development and Distribution License (the "License"). 11632 * You may not use this file except in compliance with the License. 11633 * 11634 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11635 * or http://www.opensolaris.org/os/licensing. 11636 * See the License for the specific language governing permissions 11637 * and limitations under the License. 11638 * 11639 * When distributing Covered Code, include this CDDL HEADER in each 11640 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 11641 * If applicable, add the following below this CDDL HEADER, with the 11642 * fields enclosed by brackets "[]" replaced with your own identifying 11643 * information: Portions Copyright [yyyy] [name of copyright owner] 11644 * 11645 * CDDL HEADER END 11646 */ 11647 /* Copyright (c) 1988 AT&T */ 11648 /* All Rights Reserved */ 11649 11650 11651 /* 11652 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 11653 * 11654 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 11655 * Use is subject to license terms. 11656 */ 11657 /* 11658 * Copyright 2010 Nexenta Systems, Inc. Al rights reserved. 11659 * Copyright 2016 Joyent, Inc. 11660 */ 11661 # 63 "/usr/include/openssl/asn1.h" 2 3 4 11662 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 11663 /* e_os2.h */ 11664 /* ==================================================================== 11665 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 11666 * 11667 * Redistribution and use in source and binary forms, with or without 11668 * modification, are permitted provided that the following conditions 11669 * are met: 11670 * 11671 * 1. Redistributions of source code must retain the above copyright 11672 * notice, this list of conditions and the following disclaimer. 11673 * 11674 * 2. Redistributions in binary form must reproduce the above copyright 11675 * notice, this list of conditions and the following disclaimer in 11676 * the documentation and/or other materials provided with the 11677 * distribution. 11678 * 11679 * 3. All advertising materials mentioning features or use of this 11680 * software must display the following acknowledgment: 11681 * "This product includes software developed by the OpenSSL Project 11682 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11683 * 11684 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11685 * endorse or promote products derived from this software without 11686 * prior written permission. For written permission, please contact 11687 * openssl-core@openssl.org. 11688 * 11689 * 5. Products derived from this software may not be called "OpenSSL" 11690 * nor may "OpenSSL" appear in their names without prior written 11691 * permission of the OpenSSL Project. 11692 * 11693 * 6. Redistributions of any form whatsoever must retain the following 11694 * acknowledgment: 11695 * "This product includes software developed by the OpenSSL Project 11696 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11697 * 11698 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11699 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11700 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11701 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11702 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11703 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11704 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11705 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11706 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11707 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11708 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11709 * OF THE POSSIBILITY OF SUCH DAMAGE. 11710 * ==================================================================== 11711 * 11712 * This product includes cryptographic software written by Eric Young 11713 * (eay@cryptsoft.com). This product includes software written by Tim 11714 * Hudson (tjh@cryptsoft.com). 11715 * 11716 */ 11717 11718 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 11719 /* opensslconf.h */ 11720 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 11721 11722 11723 11724 11725 /* OpenSSL was configured with the following options: */ 11726 # 108 "/usr/include/openssl/opensslconf.h" 3 4 11727 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 11728 asks for it. This is a transient feature that is provided for those 11729 who haven't had the time to do the appropriate changes in their 11730 applications. */ 11731 # 204 "/usr/include/openssl/opensslconf.h" 3 4 11732 /* crypto/opensslconf.h.in */ 11733 11734 /* Generate 80386 code? */ 11735 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 11736 # 64 "/usr/include/openssl/asn1.h" 2 3 4 11737 11738 # 1 "/usr/include/openssl/bio.h" 1 3 4 11739 /* crypto/bio/bio.h */ 11740 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11741 * All rights reserved. 11742 * 11743 * This package is an SSL implementation written 11744 * by Eric Young (eay@cryptsoft.com). 11745 * The implementation was written so as to conform with Netscapes SSL. 11746 * 11747 * This library is free for commercial and non-commercial use as long as 11748 * the following conditions are aheared to. The following conditions 11749 * apply to all code found in this distribution, be it the RC4, RSA, 11750 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11751 * included with this distribution is covered by the same copyright terms 11752 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11753 * 11754 * Copyright remains Eric Young's, and as such any Copyright notices in 11755 * the code are not to be removed. 11756 * If this package is used in a product, Eric Young should be given attribution 11757 * as the author of the parts of the library used. 11758 * This can be in the form of a textual message at program startup or 11759 * in documentation (online or textual) provided with the package. 11760 * 11761 * Redistribution and use in source and binary forms, with or without 11762 * modification, are permitted provided that the following conditions 11763 * are met: 11764 * 1. Redistributions of source code must retain the copyright 11765 * notice, this list of conditions and the following disclaimer. 11766 * 2. Redistributions in binary form must reproduce the above copyright 11767 * notice, this list of conditions and the following disclaimer in the 11768 * documentation and/or other materials provided with the distribution. 11769 * 3. All advertising materials mentioning features or use of this software 11770 * must display the following acknowledgement: 11771 * "This product includes cryptographic software written by 11772 * Eric Young (eay@cryptsoft.com)" 11773 * The word 'cryptographic' can be left out if the rouines from the library 11774 * being used are not cryptographic related :-). 11775 * 4. If you include any Windows specific code (or a derivative thereof) from 11776 * the apps directory (application code) you must include an acknowledgement: 11777 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11778 * 11779 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11780 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11781 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11782 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11783 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11784 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11785 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11786 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11787 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11788 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11789 * SUCH DAMAGE. 11790 * 11791 * The licence and distribution terms for any publically available version or 11792 * derivative of this code cannot be changed. i.e. this code cannot simply be 11793 * copied and put under another distribution licence 11794 * [including the GNU Public Licence.] 11795 */ 11796 # 66 "/usr/include/openssl/asn1.h" 2 3 4 11797 11798 # 1 "/usr/include/openssl/stack.h" 1 3 4 11799 /* crypto/stack/stack.h */ 11800 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 11801 * All rights reserved. 11802 * 11803 * This package is an SSL implementation written 11804 * by Eric Young (eay@cryptsoft.com). 11805 * The implementation was written so as to conform with Netscapes SSL. 11806 * 11807 * This library is free for commercial and non-commercial use as long as 11808 * the following conditions are aheared to. The following conditions 11809 * apply to all code found in this distribution, be it the RC4, RSA, 11810 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 11811 * included with this distribution is covered by the same copyright terms 11812 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 11813 * 11814 * Copyright remains Eric Young's, and as such any Copyright notices in 11815 * the code are not to be removed. 11816 * If this package is used in a product, Eric Young should be given attribution 11817 * as the author of the parts of the library used. 11818 * This can be in the form of a textual message at program startup or 11819 * in documentation (online or textual) provided with the package. 11820 * 11821 * Redistribution and use in source and binary forms, with or without 11822 * modification, are permitted provided that the following conditions 11823 * are met: 11824 * 1. Redistributions of source code must retain the copyright 11825 * notice, this list of conditions and the following disclaimer. 11826 * 2. Redistributions in binary form must reproduce the above copyright 11827 * notice, this list of conditions and the following disclaimer in the 11828 * documentation and/or other materials provided with the distribution. 11829 * 3. All advertising materials mentioning features or use of this software 11830 * must display the following acknowledgement: 11831 * "This product includes cryptographic software written by 11832 * Eric Young (eay@cryptsoft.com)" 11833 * The word 'cryptographic' can be left out if the rouines from the library 11834 * being used are not cryptographic related :-). 11835 * 4. If you include any Windows specific code (or a derivative thereof) from 11836 * the apps directory (application code) you must include an acknowledgement: 11837 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 11838 * 11839 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 11840 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11841 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 11842 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 11843 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 11844 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 11845 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11846 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 11847 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 11848 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 11849 * SUCH DAMAGE. 11850 * 11851 * The licence and distribution terms for any publically available version or 11852 * derivative of this code cannot be changed. i.e. this code cannot simply be 11853 * copied and put under another distribution licence 11854 * [including the GNU Public Licence.] 11855 */ 11856 # 68 "/usr/include/openssl/asn1.h" 2 3 4 11857 # 1 "/usr/include/openssl/safestack.h" 1 3 4 11858 /* ==================================================================== 11859 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 11860 * 11861 * Redistribution and use in source and binary forms, with or without 11862 * modification, are permitted provided that the following conditions 11863 * are met: 11864 * 11865 * 1. Redistributions of source code must retain the above copyright 11866 * notice, this list of conditions and the following disclaimer. 11867 * 11868 * 2. Redistributions in binary form must reproduce the above copyright 11869 * notice, this list of conditions and the following disclaimer in 11870 * the documentation and/or other materials provided with the 11871 * distribution. 11872 * 11873 * 3. All advertising materials mentioning features or use of this 11874 * software must display the following acknowledgment: 11875 * "This product includes software developed by the OpenSSL Project 11876 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11877 * 11878 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11879 * endorse or promote products derived from this software without 11880 * prior written permission. For written permission, please contact 11881 * openssl-core@openssl.org. 11882 * 11883 * 5. Products derived from this software may not be called "OpenSSL" 11884 * nor may "OpenSSL" appear in their names without prior written 11885 * permission of the OpenSSL Project. 11886 * 11887 * 6. Redistributions of any form whatsoever must retain the following 11888 * acknowledgment: 11889 * "This product includes software developed by the OpenSSL Project 11890 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11891 * 11892 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11893 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11894 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11895 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11896 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11897 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11898 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11899 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11900 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11901 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11902 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11903 * OF THE POSSIBILITY OF SUCH DAMAGE. 11904 * ==================================================================== 11905 * 11906 * This product includes cryptographic software written by Eric Young 11907 * (eay@cryptsoft.com). This product includes software written by Tim 11908 * Hudson (tjh@cryptsoft.com). 11909 * 11910 */ 11911 # 69 "/usr/include/openssl/asn1.h" 2 3 4 11912 11913 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 11914 /* ==================================================================== 11915 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 11916 * 11917 * Redistribution and use in source and binary forms, with or without 11918 * modification, are permitted provided that the following conditions 11919 * are met: 11920 * 11921 * 1. Redistributions of source code must retain the above copyright 11922 * notice, this list of conditions and the following disclaimer. 11923 * 11924 * 2. Redistributions in binary form must reproduce the above copyright 11925 * notice, this list of conditions and the following disclaimer in 11926 * the documentation and/or other materials provided with the 11927 * distribution. 11928 * 11929 * 3. All advertising materials mentioning features or use of this 11930 * software must display the following acknowledgment: 11931 * "This product includes software developed by the OpenSSL Project 11932 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11933 * 11934 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11935 * endorse or promote products derived from this software without 11936 * prior written permission. For written permission, please contact 11937 * openssl-core@openssl.org. 11938 * 11939 * 5. Products derived from this software may not be called "OpenSSL" 11940 * nor may "OpenSSL" appear in their names without prior written 11941 * permission of the OpenSSL Project. 11942 * 11943 * 6. Redistributions of any form whatsoever must retain the following 11944 * acknowledgment: 11945 * "This product includes software developed by the OpenSSL Project 11946 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 11947 * 11948 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 11949 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 11950 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 11951 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 11952 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 11953 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 11954 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 11955 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 11956 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 11957 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 11958 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 11959 * OF THE POSSIBILITY OF SUCH DAMAGE. 11960 * ==================================================================== 11961 * 11962 * This product includes cryptographic software written by Eric Young 11963 * (eay@cryptsoft.com). This product includes software written by Tim 11964 * Hudson (tjh@cryptsoft.com). 11965 * 11966 */ 11967 # 71 "/usr/include/openssl/asn1.h" 2 3 4 11968 11969 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 11970 /* ==================================================================== 11971 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 11972 * 11973 * Redistribution and use in source and binary forms, with or without 11974 * modification, are permitted provided that the following conditions 11975 * are met: 11976 * 11977 * 1. Redistributions of source code must retain the above copyright 11978 * notice, this list of conditions and the following disclaimer. 11979 * 11980 * 2. Redistributions in binary form must reproduce the above copyright 11981 * notice, this list of conditions and the following disclaimer in 11982 * the documentation and/or other materials provided with the 11983 * distribution. 11984 * 11985 * 3. All advertising materials mentioning features or use of this 11986 * software must display the following acknowledgment: 11987 * "This product includes software developed by the OpenSSL Project 11988 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 11989 * 11990 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 11991 * endorse or promote products derived from this software without 11992 * prior written permission. For written permission, please contact 11993 * openssl-core@openssl.org. 11994 * 11995 * 5. Products derived from this software may not be called "OpenSSL" 11996 * nor may "OpenSSL" appear in their names without prior written 11997 * permission of the OpenSSL Project. 11998 * 11999 * 6. Redistributions of any form whatsoever must retain the following 12000 * acknowledgment: 12001 * "This product includes software developed by the OpenSSL Project 12002 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 12003 * 12004 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 12005 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 12006 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12007 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 12008 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 12009 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 12010 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 12011 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 12012 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 12013 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 12014 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 12015 * OF THE POSSIBILITY OF SUCH DAMAGE. 12016 * ==================================================================== 12017 * 12018 * This product includes cryptographic software written by Eric Young 12019 * (eay@cryptsoft.com). This product includes software written by Tim 12020 * Hudson (tjh@cryptsoft.com). 12021 * 12022 */ 12023 # 73 "/usr/include/openssl/asn1.h" 2 3 4 12024 12025 # 1 "/usr/include/openssl/bn.h" 1 3 4 12026 /* crypto/bn/bn.h */ 12027 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 12028 * All rights reserved. 12029 * 12030 * This package is an SSL implementation written 12031 * by Eric Young (eay@cryptsoft.com). 12032 * The implementation was written so as to conform with Netscapes SSL. 12033 * 12034 * This library is free for commercial and non-commercial use as long as 12035 * the following conditions are aheared to. The following conditions 12036 * apply to all code found in this distribution, be it the RC4, RSA, 12037 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 12038 * included with this distribution is covered by the same copyright terms 12039 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 12040 * 12041 * Copyright remains Eric Young's, and as such any Copyright notices in 12042 * the code are not to be removed. 12043 * If this package is used in a product, Eric Young should be given attribution 12044 * as the author of the parts of the library used. 12045 * This can be in the form of a textual message at program startup or 12046 * in documentation (online or textual) provided with the package. 12047 * 12048 * Redistribution and use in source and binary forms, with or without 12049 * modification, are permitted provided that the following conditions 12050 * are met: 12051 * 1. Redistributions of source code must retain the copyright 12052 * notice, this list of conditions and the following disclaimer. 12053 * 2. Redistributions in binary form must reproduce the above copyright 12054 * notice, this list of conditions and the following disclaimer in the 12055 * documentation and/or other materials provided with the distribution. 12056 * 3. All advertising materials mentioning features or use of this software 12057 * must display the following acknowledgement: 12058 * "This product includes cryptographic software written by 12059 * Eric Young (eay@cryptsoft.com)" 12060 * The word 'cryptographic' can be left out if the rouines from the library 12061 * being used are not cryptographic related :-). 12062 * 4. If you include any Windows specific code (or a derivative thereof) from 12063 * the apps directory (application code) you must include an acknowledgement: 12064 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 12065 * 12066 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 12067 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 12068 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 12069 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 12070 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 12071 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 12072 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 12073 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 12074 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 12075 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 12076 * SUCH DAMAGE. 12077 * 12078 * The licence and distribution terms for any publically available version or 12079 * derivative of this code cannot be changed. i.e. this code cannot simply be 12080 * copied and put under another distribution licence 12081 * [including the GNU Public Licence.] 12082 */ 12083 /* ==================================================================== 12084 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 12085 * 12086 * Redistribution and use in source and binary forms, with or without 12087 * modification, are permitted provided that the following conditions 12088 * are met: 12089 * 12090 * 1. Redistributions of source code must retain the above copyright 12091 * notice, this list of conditions and the following disclaimer. 12092 * 12093 * 2. Redistributions in binary form must reproduce the above copyright 12094 * notice, this list of conditions and the following disclaimer in 12095 * the documentation and/or other materials provided with the 12096 * distribution. 12097 * 12098 * 3. All advertising materials mentioning features or use of this 12099 * software must display the following acknowledgment: 12100 * "This product includes software developed by the OpenSSL Project 12101 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 12102 * 12103 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 12104 * endorse or promote products derived from this software without 12105 * prior written permission. For written permission, please contact 12106 * openssl-core@openssl.org. 12107 * 12108 * 5. Products derived from this software may not be called "OpenSSL" 12109 * nor may "OpenSSL" appear in their names without prior written 12110 * permission of the OpenSSL Project. 12111 * 12112 * 6. Redistributions of any form whatsoever must retain the following 12113 * acknowledgment: 12114 * "This product includes software developed by the OpenSSL Project 12115 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 12116 * 12117 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 12118 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 12119 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12120 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 12121 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 12122 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 12123 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 12124 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 12125 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 12126 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 12127 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 12128 * OF THE POSSIBILITY OF SUCH DAMAGE. 12129 * ==================================================================== 12130 * 12131 * This product includes cryptographic software written by Eric Young 12132 * (eay@cryptsoft.com). This product includes software written by Tim 12133 * Hudson (tjh@cryptsoft.com). 12134 * 12135 */ 12136 /* ==================================================================== 12137 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 12138 * 12139 * Portions of the attached software ("Contribution") are developed by 12140 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 12141 * 12142 * The Contribution is licensed pursuant to the Eric Young open source 12143 * license provided above. 12144 * 12145 * The binary polynomial arithmetic software is originally written by 12146 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 12147 * 12148 */ 12149 12150 12151 12152 12153 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 3 4 12154 /* 12155 * CDDL HEADER START 12156 * 12157 * The contents of this file are subject to the terms of the 12158 * Common Development and Distribution License (the "License"). 12159 * You may not use this file except in compliance with the License. 12160 * 12161 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 12162 * or http://www.opensolaris.org/os/licensing. 12163 * See the License for the specific language governing permissions 12164 * and limitations under the License. 12165 * 12166 * When distributing Covered Code, include this CDDL HEADER in each 12167 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 12168 * If applicable, add the following below this CDDL HEADER, with the 12169 * fields enclosed by brackets "[]" replaced with your own identifying 12170 * information: Portions Copyright [yyyy] [name of copyright owner] 12171 * 12172 * CDDL HEADER END 12173 */ 12174 12175 /* 12176 * Copyright (c) 2013 Gary Mills 12177 * 12178 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 12179 * Use is subject to license terms. 12180 */ 12181 12182 /* Copyright (c) 1988 AT&T */ 12183 /* All Rights Reserved */ 12184 # 129 "/usr/include/openssl/bn.h" 2 3 4 12185 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 12186 /* e_os2.h */ 12187 /* ==================================================================== 12188 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 12189 * 12190 * Redistribution and use in source and binary forms, with or without 12191 * modification, are permitted provided that the following conditions 12192 * are met: 12193 * 12194 * 1. Redistributions of source code must retain the above copyright 12195 * notice, this list of conditions and the following disclaimer. 12196 * 12197 * 2. Redistributions in binary form must reproduce the above copyright 12198 * notice, this list of conditions and the following disclaimer in 12199 * the documentation and/or other materials provided with the 12200 * distribution. 12201 * 12202 * 3. All advertising materials mentioning features or use of this 12203 * software must display the following acknowledgment: 12204 * "This product includes software developed by the OpenSSL Project 12205 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 12206 * 12207 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 12208 * endorse or promote products derived from this software without 12209 * prior written permission. For written permission, please contact 12210 * openssl-core@openssl.org. 12211 * 12212 * 5. Products derived from this software may not be called "OpenSSL" 12213 * nor may "OpenSSL" appear in their names without prior written 12214 * permission of the OpenSSL Project. 12215 * 12216 * 6. Redistributions of any form whatsoever must retain the following 12217 * acknowledgment: 12218 * "This product includes software developed by the OpenSSL Project 12219 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 12220 * 12221 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 12222 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 12223 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12224 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 12225 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 12226 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 12227 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 12228 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 12229 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 12230 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 12231 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 12232 * OF THE POSSIBILITY OF SUCH DAMAGE. 12233 * ==================================================================== 12234 * 12235 * This product includes cryptographic software written by Eric Young 12236 * (eay@cryptsoft.com). This product includes software written by Tim 12237 * Hudson (tjh@cryptsoft.com). 12238 * 12239 */ 12240 12241 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 12242 /* opensslconf.h */ 12243 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 12244 12245 12246 12247 12248 /* OpenSSL was configured with the following options: */ 12249 # 108 "/usr/include/openssl/opensslconf.h" 3 4 12250 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 12251 asks for it. This is a transient feature that is provided for those 12252 who haven't had the time to do the appropriate changes in their 12253 applications. */ 12254 # 204 "/usr/include/openssl/opensslconf.h" 3 4 12255 /* crypto/opensslconf.h.in */ 12256 12257 /* Generate 80386 code? */ 12258 # 272 "/usr/include/openssl/opensslconf.h" 3 4 12259 /* 12260 * OpenSSL revision 1.521 from 2005-12-15 in OpenSSL_1_0_0-stable branch changed 12261 * 64 bit sparcv9 configuration from SIXTY_FOUR_BIT_LONG to BN_LLONG. 12262 */ 12263 12264 12265 12266 12267 12268 12269 /* Should we define BN_DIV2W here? */ 12270 12271 /* Only one for the following should be defined */ 12272 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 12273 # 130 "/usr/include/openssl/bn.h" 2 3 4 12274 12275 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 12276 /* 12277 * CDDL HEADER START 12278 * 12279 * The contents of this file are subject to the terms of the 12280 * Common Development and Distribution License (the "License"). 12281 * You may not use this file except in compliance with the License. 12282 * 12283 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 12284 * or http://www.opensolaris.org/os/licensing. 12285 * See the License for the specific language governing permissions 12286 * and limitations under the License. 12287 * 12288 * When distributing Covered Code, include this CDDL HEADER in each 12289 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 12290 * If applicable, add the following below this CDDL HEADER, with the 12291 * fields enclosed by brackets "[]" replaced with your own identifying 12292 * information: Portions Copyright [yyyy] [name of copyright owner] 12293 * 12294 * CDDL HEADER END 12295 */ 12296 12297 /* 12298 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 12299 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 12300 */ 12301 12302 /* Copyright (c) 1988 AT&T */ 12303 /* All Rights Reserved */ 12304 12305 /* 12306 * User-visible pieces of the ANSI C standard I/O package. 12307 */ 12308 # 132 "/usr/include/openssl/bn.h" 2 3 4 12309 12310 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 12311 /* ==================================================================== 12312 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 12313 * 12314 * Redistribution and use in source and binary forms, with or without 12315 * modification, are permitted provided that the following conditions 12316 * are met: 12317 * 12318 * 1. Redistributions of source code must retain the above copyright 12319 * notice, this list of conditions and the following disclaimer. 12320 * 12321 * 2. Redistributions in binary form must reproduce the above copyright 12322 * notice, this list of conditions and the following disclaimer in 12323 * the documentation and/or other materials provided with the 12324 * distribution. 12325 * 12326 * 3. All advertising materials mentioning features or use of this 12327 * software must display the following acknowledgment: 12328 * "This product includes software developed by the OpenSSL Project 12329 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 12330 * 12331 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 12332 * endorse or promote products derived from this software without 12333 * prior written permission. For written permission, please contact 12334 * openssl-core@openssl.org. 12335 * 12336 * 5. Products derived from this software may not be called "OpenSSL" 12337 * nor may "OpenSSL" appear in their names without prior written 12338 * permission of the OpenSSL Project. 12339 * 12340 * 6. Redistributions of any form whatsoever must retain the following 12341 * acknowledgment: 12342 * "This product includes software developed by the OpenSSL Project 12343 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 12344 * 12345 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 12346 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 12347 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12348 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 12349 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 12350 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 12351 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 12352 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 12353 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 12354 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 12355 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 12356 * OF THE POSSIBILITY OF SUCH DAMAGE. 12357 * ==================================================================== 12358 * 12359 * This product includes cryptographic software written by Eric Young 12360 * (eay@cryptsoft.com). This product includes software written by Tim 12361 * Hudson (tjh@cryptsoft.com). 12362 * 12363 */ 12364 # 134 "/usr/include/openssl/bn.h" 2 3 4 12365 # 1 "/usr/include/openssl/crypto.h" 1 3 4 12366 /* crypto/crypto.h */ 12367 /* ==================================================================== 12368 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 12369 * 12370 * Redistribution and use in source and binary forms, with or without 12371 * modification, are permitted provided that the following conditions 12372 * are met: 12373 * 12374 * 1. Redistributions of source code must retain the above copyright 12375 * notice, this list of conditions and the following disclaimer. 12376 * 12377 * 2. Redistributions in binary form must reproduce the above copyright 12378 * notice, this list of conditions and the following disclaimer in 12379 * the documentation and/or other materials provided with the 12380 * distribution. 12381 * 12382 * 3. All advertising materials mentioning features or use of this 12383 * software must display the following acknowledgment: 12384 * "This product includes software developed by the OpenSSL Project 12385 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 12386 * 12387 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 12388 * endorse or promote products derived from this software without 12389 * prior written permission. For written permission, please contact 12390 * openssl-core@openssl.org. 12391 * 12392 * 5. Products derived from this software may not be called "OpenSSL" 12393 * nor may "OpenSSL" appear in their names without prior written 12394 * permission of the OpenSSL Project. 12395 * 12396 * 6. Redistributions of any form whatsoever must retain the following 12397 * acknowledgment: 12398 * "This product includes software developed by the OpenSSL Project 12399 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 12400 * 12401 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 12402 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 12403 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12404 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 12405 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 12406 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 12407 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 12408 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 12409 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 12410 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 12411 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 12412 * OF THE POSSIBILITY OF SUCH DAMAGE. 12413 * ==================================================================== 12414 * 12415 * This product includes cryptographic software written by Eric Young 12416 * (eay@cryptsoft.com). This product includes software written by Tim 12417 * Hudson (tjh@cryptsoft.com). 12418 * 12419 */ 12420 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 12421 * All rights reserved. 12422 * 12423 * This package is an SSL implementation written 12424 * by Eric Young (eay@cryptsoft.com). 12425 * The implementation was written so as to conform with Netscapes SSL. 12426 * 12427 * This library is free for commercial and non-commercial use as long as 12428 * the following conditions are aheared to. The following conditions 12429 * apply to all code found in this distribution, be it the RC4, RSA, 12430 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 12431 * included with this distribution is covered by the same copyright terms 12432 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 12433 * 12434 * Copyright remains Eric Young's, and as such any Copyright notices in 12435 * the code are not to be removed. 12436 * If this package is used in a product, Eric Young should be given attribution 12437 * as the author of the parts of the library used. 12438 * This can be in the form of a textual message at program startup or 12439 * in documentation (online or textual) provided with the package. 12440 * 12441 * Redistribution and use in source and binary forms, with or without 12442 * modification, are permitted provided that the following conditions 12443 * are met: 12444 * 1. Redistributions of source code must retain the copyright 12445 * notice, this list of conditions and the following disclaimer. 12446 * 2. Redistributions in binary form must reproduce the above copyright 12447 * notice, this list of conditions and the following disclaimer in the 12448 * documentation and/or other materials provided with the distribution. 12449 * 3. All advertising materials mentioning features or use of this software 12450 * must display the following acknowledgement: 12451 * "This product includes cryptographic software written by 12452 * Eric Young (eay@cryptsoft.com)" 12453 * The word 'cryptographic' can be left out if the rouines from the library 12454 * being used are not cryptographic related :-). 12455 * 4. If you include any Windows specific code (or a derivative thereof) from 12456 * the apps directory (application code) you must include an acknowledgement: 12457 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 12458 * 12459 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 12460 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 12461 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 12462 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 12463 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 12464 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 12465 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 12466 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 12467 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 12468 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 12469 * SUCH DAMAGE. 12470 * 12471 * The licence and distribution terms for any publically available version or 12472 * derivative of this code cannot be changed. i.e. this code cannot simply be 12473 * copied and put under another distribution licence 12474 * [including the GNU Public Licence.] 12475 */ 12476 /* ==================================================================== 12477 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 12478 * ECDH support in OpenSSL originally developed by 12479 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 12480 */ 12481 # 135 "/usr/include/openssl/bn.h" 2 3 4 12482 12483 12484 12485 12486 12487 /* 12488 * These preprocessor symbols control various aspects of the bignum headers 12489 * and library code. They're not defined by any "normal" configuration, as 12490 * they are intended for development and testing purposes. NB: defining all 12491 * three can be useful for debugging application code as well as openssl 12492 * itself. BN_DEBUG - turn on various debugging alterations to the bignum 12493 * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up 12494 * mismanagement of bignum internals. You must also define BN_DEBUG. 12495 */ 12496 /* #define BN_DEBUG */ 12497 /* #define BN_DEBUG_RAND */ 12498 12499 12500 12501 12502 12503 12504 12505 /* 12506 * This next option uses the C libraries (2 word)/(1 word) function. If it is 12507 * not defined, I use my C version (which is slower). The reason for this 12508 * flag is that when the particular C compiler library routine is used, and 12509 * the library is linked with a different compiler, the library is missing. 12510 * This mostly happens when the library is built with gcc and then linked 12511 * using normal cc. This would be a common occurrence because gcc normally 12512 * produces code that is 2 times faster than system compilers for the big 12513 * number stuff. For machines with only one compiler (or shared libraries), 12514 * this should be on. Again this in only really a problem on machines using 12515 * "long long's", are 32bit, and are not using my assembler code. 12516 */ 12517 12518 12519 12520 12521 12522 12523 12524 /* 12525 * assuming long is 64bit - this is the DEC Alpha unsigned long long is only 12526 * 64 bits :-(, don't define BN_LLONG for the DEC Alpha 12527 */ 12528 # 203 "/usr/include/openssl/bn.h" 3 4 12529 /* 12530 * This is where the long long data type is 64 bits, but long is 32. For 12531 * machines where there are 64bit registers, this is the mode to use. IRIX, 12532 * on R4000 and above should use this mode, along with the relevant assembler 12533 * code :-). Do NOT define BN_LLONG. 12534 */ 12535 # 265 "/usr/include/openssl/bn.h" 3 4 12536 /* 12537 * avoid leaking exponent information through timing, 12538 * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, 12539 * BN_div() will call BN_div_no_branch, 12540 * BN_mod_inverse() will call BN_mod_inverse_no_branch. 12541 */ 12542 # 284 "/usr/include/openssl/bn.h" 3 4 12543 /* used for debuging */ 12544 12545 12546 12547 12548 /* 12549 * get a clone of a BIGNUM with changed flags, for *temporary* use only (the 12550 * two BIGNUMs cannot not be used in parallel!) 12551 */ 12552 # 302 "/usr/include/openssl/bn.h" 3 4 12553 /* Already declared in ossl_typ.h */ 12554 # 313 "/usr/include/openssl/bn.h" 3 4 12555 struct bignum_st { 12556 unsigned int *d; /* Pointer to an array of 'BN_BITS2' bit 12557 * chunks. */ 12558 int top; /* Index of last used d +1. */ 12559 /* The next are internal book keeping for bn_expand. */ 12560 int dmax; /* Size of the d array. */ 12561 int neg; /* one if the number is negative */ 12562 int flags; 12563 }; 12564 12565 /* Used for montgomery multiplication */ 12566 struct bn_mont_ctx_st { 12567 int ri; /* number of bits in R */ 12568 BIGNUM RR; /* used to convert to montgomery form */ 12569 BIGNUM N; /* The modulus */ 12570 BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only 12571 * stored for bignum algorithm) */ 12572 unsigned int n0[2]; /* least significant word(s) of Ni; (type 12573 * changed with 0.9.9, was "BN_ULONG n0;" 12574 * before) */ 12575 int flags; 12576 }; 12577 12578 /* 12579 * Used for reciprocal division/mod functions It cannot be shared between 12580 * threads 12581 */ 12582 struct bn_recp_ctx_st { 12583 BIGNUM N; /* the divisor */ 12584 BIGNUM Nr; /* the reciprocal */ 12585 int num_bits; 12586 int shift; 12587 int flags; 12588 }; 12589 12590 /* Used for slow "generation" functions. */ 12591 struct bn_gencb_st { 12592 unsigned int ver; /* To handle binary (in)compatibility */ 12593 void *arg; /* callback-specific data */ 12594 union { 12595 /* if(ver==1) - handles old style callbacks */ 12596 void (*cb_1) (int, int, void *); 12597 /* if(ver==2) - new callback style */ 12598 int (*cb_2) (int, int, BN_GENCB *); 12599 } cb; 12600 }; 12601 /* Wrapper function to make using BN_GENCB easier, */ 12602 int BN_GENCB_call(BN_GENCB *cb, int a, int b); 12603 /* Macro to populate a BN_GENCB structure with an "old"-style callback */ 12604 12605 12606 12607 12608 12609 /* Macro to populate a BN_GENCB structure with a "new"-style callback */ 12610 # 377 "/usr/include/openssl/bn.h" 3 4 12611 /* 12612 * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations 12613 * that will be done for checking that a random number is probably prime. The 12614 * error rate for accepting a composite number as prime depends on the size of 12615 * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, 12616 * and so the level is what you would expect for a key of double the size of the 12617 * prime. 12618 * 12619 * This table is generated using the algorithm of FIPS PUB 186-4 12620 * Digital Signature Standard (DSS), section F.1, page 117. 12621 * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) 12622 * 12623 * The following magma script was used to generate the output: 12624 * securitybits:=125; 12625 * k:=1024; 12626 * for t:=1 to 65 do 12627 * for M:=3 to Floor(2*Sqrt(k-1)-1) do 12628 * S:=0; 12629 * // Sum over m 12630 * for m:=3 to M do 12631 * s:=0; 12632 * // Sum over j 12633 * for j:=2 to m do 12634 * s+:=(RealField(32)!2)^-(j+(k-1)/j); 12635 * end for; 12636 * S+:=2^(m-(m-1)*t)*s; 12637 * end for; 12638 * A:=2^(k-2-M*t); 12639 * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; 12640 * pkt:=2.00743*Log(2)*k*2^-k*(A+B); 12641 * seclevel:=Floor(-Log(2,pkt)); 12642 * if seclevel ge securitybits then 12643 * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; 12644 * break; 12645 * end if; 12646 * end for; 12647 * if seclevel ge securitybits then break; end if; 12648 * end for; 12649 * 12650 * It can be run online at: 12651 * http://magma.maths.usyd.edu.au/calc 12652 * 12653 * And will output: 12654 * k: 1024, security: 129 bits (t: 6, M: 23) 12655 * 12656 * k is the number of bits of the prime, securitybits is the level we want to 12657 * reach. 12658 * 12659 * prime length | RSA key size | # MR tests | security level 12660 * -------------+--------------|------------+--------------- 12661 * (b) >= 6394 | >= 12788 | 3 | 256 bit 12662 * (b) >= 3747 | >= 7494 | 3 | 192 bit 12663 * (b) >= 1345 | >= 2690 | 4 | 128 bit 12664 * (b) >= 1080 | >= 2160 | 5 | 128 bit 12665 * (b) >= 852 | >= 1704 | 5 | 112 bit 12666 * (b) >= 476 | >= 952 | 5 | 80 bit 12667 * (b) >= 400 | >= 800 | 6 | 80 bit 12668 * (b) >= 347 | >= 694 | 7 | 80 bit 12669 * (b) >= 308 | >= 616 | 8 | 80 bit 12670 * (b) >= 55 | >= 110 | 27 | 64 bit 12671 * (b) >= 6 | >= 12 | 34 | 64 bit 12672 */ 12673 # 451 "/usr/include/openssl/bn.h" 3 4 12674 /* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */ 12675 # 472 "/usr/include/openssl/bn.h" 3 4 12676 const BIGNUM *BN_value_one(void); 12677 char *BN_options(void); 12678 BN_CTX *BN_CTX_new(void); 12679 12680 void BN_CTX_init(BN_CTX *c); 12681 12682 void BN_CTX_free(BN_CTX *c); 12683 void BN_CTX_start(BN_CTX *ctx); 12684 BIGNUM *BN_CTX_get(BN_CTX *ctx); 12685 void BN_CTX_end(BN_CTX *ctx); 12686 int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); 12687 int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); 12688 int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); 12689 int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); 12690 int BN_num_bits(const BIGNUM *a); 12691 int BN_num_bits_word(unsigned int); 12692 BIGNUM *BN_new(void); 12693 void BN_init(BIGNUM *); 12694 void BN_clear_free(BIGNUM *a); 12695 BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); 12696 void BN_swap(BIGNUM *a, BIGNUM *b); 12697 BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); 12698 int BN_bn2bin(const BIGNUM *a, unsigned char *to); 12699 BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); 12700 int BN_bn2mpi(const BIGNUM *a, unsigned char *to); 12701 int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 12702 int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 12703 int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 12704 int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 12705 int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 12706 int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); 12707 /** BN_set_negative sets sign of a BIGNUM 12708 * \param b pointer to the BIGNUM object 12709 * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise 12710 */ 12711 void BN_set_negative(BIGNUM *b, int n); 12712 /** BN_is_negative returns 1 if the BIGNUM is negative 12713 * \param a pointer to the BIGNUM object 12714 * \return 1 if a < 0 and 0 otherwise 12715 */ 12716 12717 12718 int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, 12719 BN_CTX *ctx); 12720 12721 int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); 12722 int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 12723 BN_CTX *ctx); 12724 int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12725 const BIGNUM *m); 12726 int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 12727 BN_CTX *ctx); 12728 int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12729 const BIGNUM *m); 12730 int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, 12731 BN_CTX *ctx); 12732 int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 12733 int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); 12734 int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); 12735 int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, 12736 BN_CTX *ctx); 12737 int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); 12738 12739 unsigned int BN_mod_word(const BIGNUM *a, unsigned int w); 12740 unsigned int BN_div_word(BIGNUM *a, unsigned int w); 12741 int BN_mul_word(BIGNUM *a, unsigned int w); 12742 int BN_add_word(BIGNUM *a, unsigned int w); 12743 int BN_sub_word(BIGNUM *a, unsigned int w); 12744 int BN_set_word(BIGNUM *a, unsigned int w); 12745 unsigned int BN_get_word(const BIGNUM *a); 12746 12747 int BN_cmp(const BIGNUM *a, const BIGNUM *b); 12748 void BN_free(BIGNUM *a); 12749 int BN_is_bit_set(const BIGNUM *a, int n); 12750 int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); 12751 int BN_lshift1(BIGNUM *r, const BIGNUM *a); 12752 int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 12753 12754 int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 12755 const BIGNUM *m, BN_CTX *ctx); 12756 int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 12757 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 12758 int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, 12759 const BIGNUM *m, BN_CTX *ctx, 12760 BN_MONT_CTX *in_mont); 12761 int BN_mod_exp_mont_word(BIGNUM *r, unsigned int a, const BIGNUM *p, 12762 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 12763 int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, 12764 const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, 12765 BN_CTX *ctx, BN_MONT_CTX *m_ctx); 12766 int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 12767 const BIGNUM *m, BN_CTX *ctx); 12768 12769 int BN_mask_bits(BIGNUM *a, int n); 12770 12771 int BN_print_fp(FILE *fp, const BIGNUM *a); 12772 12773 12774 int BN_print(BIO *fp, const BIGNUM *a); 12775 12776 12777 12778 int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); 12779 int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); 12780 int BN_rshift1(BIGNUM *r, const BIGNUM *a); 12781 void BN_clear(BIGNUM *a); 12782 BIGNUM *BN_dup(const BIGNUM *a); 12783 int BN_ucmp(const BIGNUM *a, const BIGNUM *b); 12784 int BN_set_bit(BIGNUM *a, int n); 12785 int BN_clear_bit(BIGNUM *a, int n); 12786 char *BN_bn2hex(const BIGNUM *a); 12787 char *BN_bn2dec(const BIGNUM *a); 12788 int BN_hex2bn(BIGNUM **a, const char *str); 12789 int BN_dec2bn(BIGNUM **a, const char *str); 12790 int BN_asc2bn(BIGNUM **a, const char *str); 12791 int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); 12792 int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns 12793 * -2 for 12794 * error */ 12795 BIGNUM *BN_mod_inverse(BIGNUM *ret, 12796 const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 12797 BIGNUM *BN_mod_sqrt(BIGNUM *ret, 12798 const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); 12799 12800 void BN_consttime_swap(unsigned int swap, BIGNUM *a, BIGNUM *b, int nwords); 12801 12802 /* Deprecated versions */ 12803 12804 BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, 12805 const BIGNUM *add, const BIGNUM *rem, 12806 void (*callback) (int, int, void *), void *cb_arg); 12807 int BN_is_prime(const BIGNUM *p, int nchecks, 12808 void (*callback) (int, int, void *), 12809 BN_CTX *ctx, void *cb_arg); 12810 int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, 12811 void (*callback) (int, int, void *), BN_CTX *ctx, 12812 void *cb_arg, int do_trial_division); 12813 12814 12815 /* Newer versions */ 12816 int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, 12817 const BIGNUM *rem, BN_GENCB *cb); 12818 int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); 12819 int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, 12820 int do_trial_division, BN_GENCB *cb); 12821 12822 int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); 12823 12824 int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, 12825 const BIGNUM *Xp, const BIGNUM *Xp1, 12826 const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, 12827 BN_GENCB *cb); 12828 int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, 12829 BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, 12830 BN_CTX *ctx, BN_GENCB *cb); 12831 12832 BN_MONT_CTX *BN_MONT_CTX_new(void); 12833 void BN_MONT_CTX_init(BN_MONT_CTX *ctx); 12834 int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12835 BN_MONT_CTX *mont, BN_CTX *ctx); 12836 12837 12838 int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, 12839 BN_MONT_CTX *mont, BN_CTX *ctx); 12840 void BN_MONT_CTX_free(BN_MONT_CTX *mont); 12841 int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); 12842 BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); 12843 BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, 12844 const BIGNUM *mod, BN_CTX *ctx); 12845 12846 /* BN_BLINDING flags */ 12847 12848 12849 12850 BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); 12851 void BN_BLINDING_free(BN_BLINDING *b); 12852 int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); 12853 int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 12854 int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); 12855 int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); 12856 int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, 12857 BN_CTX *); 12858 12859 unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); 12860 void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); 12861 12862 CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); 12863 unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); 12864 void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); 12865 BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, 12866 const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, 12867 int (*bn_mod_exp) (BIGNUM *r, 12868 const BIGNUM *a, 12869 const BIGNUM *p, 12870 const BIGNUM *m, 12871 BN_CTX *ctx, 12872 BN_MONT_CTX *m_ctx), 12873 BN_MONT_CTX *m_ctx); 12874 12875 12876 void BN_set_params(int mul, int high, int low, int mont); 12877 int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ 12878 12879 12880 void BN_RECP_CTX_init(BN_RECP_CTX *recp); 12881 BN_RECP_CTX *BN_RECP_CTX_new(void); 12882 void BN_RECP_CTX_free(BN_RECP_CTX *recp); 12883 int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); 12884 int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, 12885 BN_RECP_CTX *recp, BN_CTX *ctx); 12886 int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 12887 const BIGNUM *m, BN_CTX *ctx); 12888 int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, 12889 BN_RECP_CTX *recp, BN_CTX *ctx); 12890 12891 12892 12893 /* 12894 * Functions for arithmetic over binary polynomials represented by BIGNUMs. 12895 * The BIGNUM::neg property of BIGNUMs representing binary polynomials is 12896 * ignored. Note that input arguments are not const so that their bit arrays 12897 * can be expanded to the appropriate size if needed. 12898 */ 12899 12900 /* 12901 * r = a + b 12902 */ 12903 int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); 12904 12905 /* 12906 * r=a mod p 12907 */ 12908 int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); 12909 /* r = (a * b) mod p */ 12910 int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12911 const BIGNUM *p, BN_CTX *ctx); 12912 /* r = (a * a) mod p */ 12913 int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 12914 /* r = (1 / b) mod p */ 12915 int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); 12916 /* r = (a / b) mod p */ 12917 int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12918 const BIGNUM *p, BN_CTX *ctx); 12919 /* r = (a ^ b) mod p */ 12920 int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12921 const BIGNUM *p, BN_CTX *ctx); 12922 /* r = sqrt(a) mod p */ 12923 int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 12924 BN_CTX *ctx); 12925 /* r^2 + r = a mod p */ 12926 int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 12927 BN_CTX *ctx); 12928 12929 /*- 12930 * Some functions allow for representation of the irreducible polynomials 12931 * as an unsigned int[], say p. The irreducible f(t) is then of the form: 12932 * t^p[0] + t^p[1] + ... + t^p[k] 12933 * where m = p[0] > p[1] > ... > p[k] = 0. 12934 */ 12935 /* r = a mod p */ 12936 int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); 12937 /* r = (a * b) mod p */ 12938 int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12939 const int p[], BN_CTX *ctx); 12940 /* r = (a * a) mod p */ 12941 int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], 12942 BN_CTX *ctx); 12943 /* r = (1 / b) mod p */ 12944 int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], 12945 BN_CTX *ctx); 12946 /* r = (a / b) mod p */ 12947 int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12948 const int p[], BN_CTX *ctx); 12949 /* r = (a ^ b) mod p */ 12950 int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, 12951 const int p[], BN_CTX *ctx); 12952 /* r = sqrt(a) mod p */ 12953 int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, 12954 const int p[], BN_CTX *ctx); 12955 /* r^2 + r = a mod p */ 12956 int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, 12957 const int p[], BN_CTX *ctx); 12958 int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); 12959 int BN_GF2m_arr2poly(const int p[], BIGNUM *a); 12960 12961 12962 12963 /* 12964 * faster mod functions for the 'NIST primes' 0 <= a < p^2 12965 */ 12966 int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 12967 int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 12968 int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 12969 int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 12970 int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); 12971 12972 const BIGNUM *BN_get0_nist_prime_192(void); 12973 const BIGNUM *BN_get0_nist_prime_224(void); 12974 const BIGNUM *BN_get0_nist_prime_256(void); 12975 const BIGNUM *BN_get0_nist_prime_384(void); 12976 const BIGNUM *BN_get0_nist_prime_521(void); 12977 12978 /* library internal functions */ 12979 # 788 "/usr/include/openssl/bn.h" 3 4 12980 BIGNUM *bn_expand2(BIGNUM *a, int words); 12981 12982 BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ 12983 12984 12985 /*- 12986 * Bignum consistency macros 12987 * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from 12988 * bignum data after direct manipulations on the data. There is also an 12989 * "internal" macro, bn_check_top(), for verifying that there are no leading 12990 * zeroes. Unfortunately, some auditing is required due to the fact that 12991 * bn_fix_top() has become an overabused duct-tape because bignum data is 12992 * occasionally passed around in an inconsistent state. So the following 12993 * changes have been made to sort this out; 12994 * - bn_fix_top()s implementation has been moved to bn_correct_top() 12995 * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and 12996 * bn_check_top() is as before. 12997 * - if BN_DEBUG *is* defined; 12998 * - bn_check_top() tries to pollute unused words even if the bignum 'top' is 12999 * consistent. (ed: only if BN_DEBUG_RAND is defined) 13000 * - bn_fix_top() maps to bn_check_top() rather than "fixing" anything. 13001 * The idea is to have debug builds flag up inconsistent bignums when they 13002 * occur. If that occurs in a bn_fix_top(), we examine the code in question; if 13003 * the use of bn_fix_top() was appropriate (ie. it follows directly after code 13004 * that manipulates the bignum) it is converted to bn_correct_top(), and if it 13005 * was not appropriate, we convert it permanently to bn_check_top() and track 13006 * down the cause of the bug. Eventually, no internal code should be using the 13007 * bn_fix_top() macro. External applications and libraries should try this with 13008 * their own code too, both in terms of building against the openssl headers 13009 * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it 13010 * defined. This not only improves external code, it provides more test 13011 * coverage for openssl's own code. 13012 */ 13013 # 914 "/usr/include/openssl/bn.h" 3 4 13014 unsigned int bn_mul_add_words(unsigned int *rp, const unsigned int *ap, int num, 13015 unsigned int w); 13016 unsigned int bn_mul_words(unsigned int *rp, const unsigned int *ap, int num, unsigned int w); 13017 void bn_sqr_words(unsigned int *rp, const unsigned int *ap, int num); 13018 unsigned int bn_div_words(unsigned int h, unsigned int l, unsigned int d); 13019 unsigned int bn_add_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp, 13020 int num); 13021 unsigned int bn_sub_words(unsigned int *rp, const unsigned int *ap, const unsigned int *bp, 13022 int num); 13023 13024 /* Primes from RFC 2409 */ 13025 BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); 13026 BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); 13027 13028 /* Primes from RFC 3526 */ 13029 BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); 13030 BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); 13031 BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); 13032 BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); 13033 BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); 13034 BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); 13035 13036 int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); 13037 13038 /* BEGIN ERROR CODES */ 13039 /* 13040 * The following lines are auto generated by the script mkerr.pl. Any changes 13041 * made after this point may be overwritten when the script is next run. 13042 */ 13043 void ERR_load_BN_strings(void); 13044 13045 /* Error codes for the BN functions. */ 13046 13047 /* Function codes. */ 13048 # 991 "/usr/include/openssl/bn.h" 3 4 13049 /* Reason codes. */ 13050 # 75 "/usr/include/openssl/asn1.h" 2 3 4 13051 # 132 "/usr/include/openssl/asn1.h" 3 4 13052 /* For use with d2i_ASN1_type_bytes() */ 13053 # 152 "/usr/include/openssl/asn1.h" 3 4 13054 /* For use with ASN1_mbstring_copy() */ 13055 # 161 "/usr/include/openssl/asn1.h" 3 4 13056 struct X509_algor_st; 13057 struct stack_st_X509_ALGOR { _STACK stack; }; 13058 13059 13060 13061 13062 /* 13063 * We MUST make sure that, except for constness, asn1_ctx_st and 13064 * asn1_const_ctx are exactly the same. Fortunately, as soon as the old ASN1 13065 * parsing macros are gone, we can throw this away as well... 13066 */ 13067 typedef struct asn1_ctx_st { 13068 unsigned char *p; /* work char pointer */ 13069 int eos; /* end of sequence read for indefinite 13070 * encoding */ 13071 int error; /* error code to use when returning an error */ 13072 int inf; /* constructed if 0x20, indefinite is 0x21 */ 13073 int tag; /* tag from last 'get object' */ 13074 int xclass; /* class from last 'get object' */ 13075 long slen; /* length of last 'get object' */ 13076 unsigned char *max; /* largest value of p allowed */ 13077 unsigned char *q; /* temporary variable */ 13078 unsigned char **pp; /* variable */ 13079 int line; /* used in error processing */ 13080 } ASN1_CTX; 13081 13082 typedef struct asn1_const_ctx_st { 13083 const unsigned char *p; /* work char pointer */ 13084 int eos; /* end of sequence read for indefinite 13085 * encoding */ 13086 int error; /* error code to use when returning an error */ 13087 int inf; /* constructed if 0x20, indefinite is 0x21 */ 13088 int tag; /* tag from last 'get object' */ 13089 int xclass; /* class from last 'get object' */ 13090 long slen; /* length of last 'get object' */ 13091 const unsigned char *max; /* largest value of p allowed */ 13092 const unsigned char *q; /* temporary variable */ 13093 const unsigned char **pp; /* variable */ 13094 int line; /* used in error processing */ 13095 } ASN1_const_CTX; 13096 13097 /* 13098 * These are used internally in the ASN1_OBJECT to keep track of whether the 13099 * names and data need to be free()ed 13100 */ 13101 13102 13103 13104 13105 struct asn1_object_st { 13106 const char *sn, *ln; 13107 int nid; 13108 int length; 13109 const unsigned char *data; /* data remains const after init */ 13110 int flags; /* Should we free this one */ 13111 }; 13112 13113 13114 /* 13115 * This indicates that the ASN1_STRING is not a real value but just a place 13116 * holder for the location where indefinite length constructed data should be 13117 * inserted in the memory buffer 13118 */ 13119 13120 13121 /* 13122 * This flag is used by the CMS code to indicate that a string is not 13123 * complete and is a place holder for content when it had all been accessed. 13124 * The flag will be reset when content has been written to it. 13125 */ 13126 13127 13128 /* 13129 * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING 13130 * type. 13131 */ 13132 13133 /* This is the base type that holds just about everything :-) */ 13134 struct asn1_string_st { 13135 int length; 13136 int type; 13137 unsigned char *data; 13138 /* 13139 * The value of the following field depends on the type being held. It 13140 * is mostly being used for BIT_STRING so if the input data has a 13141 * non-zero 'unused bits' value, it will be handled correctly 13142 */ 13143 long flags; 13144 }; 13145 13146 /* 13147 * ASN1_ENCODING structure: this is used to save the received encoding of an 13148 * ASN1 type. This is useful to get round problems with invalid encodings 13149 * which can break signatures. 13150 */ 13151 13152 typedef struct ASN1_ENCODING_st { 13153 unsigned char *enc; /* DER encoding */ 13154 long len; /* Length of encoding */ 13155 int modified; /* set to 1 if 'enc' is invalid */ 13156 } ASN1_ENCODING; 13157 13158 /* Used with ASN1 LONG type: if a long is set to this it is omitted */ 13159 # 272 "/usr/include/openssl/asn1.h" 3 4 13160 typedef struct asn1_string_table_st { 13161 int nid; 13162 long minsize; 13163 long maxsize; 13164 unsigned long mask; 13165 unsigned long flags; 13166 } ASN1_STRING_TABLE; 13167 13168 struct stack_st_ASN1_STRING_TABLE { _STACK stack; }; 13169 13170 /* size limits: this stuff is taken straight from RFC2459 */ 13171 # 293 "/usr/include/openssl/asn1.h" 3 4 13172 /* 13173 * Declarations for template structures: for full definitions see asn1t.h 13174 */ 13175 typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; 13176 typedef struct ASN1_TLC_st ASN1_TLC; 13177 /* This is just an opaque pointer */ 13178 typedef struct ASN1_VALUE_st ASN1_VALUE; 13179 13180 /* Declare ASN1 functions: the implement macro in in asn1t.h */ 13181 # 363 "/usr/include/openssl/asn1.h" 3 4 13182 typedef void *d2i_of_void(void **,const unsigned char **,long); typedef int i2d_of_void(void *,unsigned char **); 13183 13184 /*- 13185 * The following macros and typedefs allow an ASN1_ITEM 13186 * to be embedded in a structure and referenced. Since 13187 * the ASN1_ITEM pointers need to be globally accessible 13188 * (possibly from shared libraries) they may exist in 13189 * different forms. On platforms that support it the 13190 * ASN1_ITEM structure itself will be globally exported. 13191 * Other platforms will export a function that returns 13192 * an ASN1_ITEM pointer. 13193 * 13194 * To handle both cases transparently the macros below 13195 * should be used instead of hard coding an ASN1_ITEM 13196 * pointer in a structure. 13197 * 13198 * The structure will look like this: 13199 * 13200 * typedef struct SOMETHING_st { 13201 * ... 13202 * ASN1_ITEM_EXP *iptr; 13203 * ... 13204 * } SOMETHING; 13205 * 13206 * It would be initialised as e.g.: 13207 * 13208 * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; 13209 * 13210 * and the actual pointer extracted with: 13211 * 13212 * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); 13213 * 13214 * Finally an ASN1_ITEM pointer can be extracted from an 13215 * appropriate reference with: ASN1_ITEM_rptr(X509). This 13216 * would be used when a function takes an ASN1_ITEM * argument. 13217 * 13218 */ 13219 13220 13221 13222 /* ASN1_ITEM pointer exported type */ 13223 typedef const ASN1_ITEM ASN1_ITEM_EXP; 13224 13225 /* Macro to obtain ASN1_ITEM pointer from exported type */ 13226 13227 13228 /* Macro to include ASN1_ITEM pointer from base type */ 13229 # 440 "/usr/include/openssl/asn1.h" 3 4 13230 /* Parameters used by ASN1_STRING_print_ex() */ 13231 13232 /* 13233 * These determine which characters to escape: RFC2253 special characters, 13234 * control characters and MSB set characters 13235 */ 13236 13237 13238 13239 13240 13241 /* 13242 * This flag determines how we do escaping: normally RC2253 backslash only, 13243 * set this to use backslash and quote. 13244 */ 13245 13246 13247 13248 /* These three flags are internal use only. */ 13249 13250 /* Character is a valid PrintableString character */ 13251 13252 /* Character needs escaping if it is the first character */ 13253 13254 /* Character needs escaping if it is the last character */ 13255 13256 13257 /* 13258 * NB the internal flags are safely reused below by flags handled at the top 13259 * level. 13260 */ 13261 13262 /* 13263 * If this is set we convert all character strings to UTF8 first 13264 */ 13265 13266 13267 13268 /* 13269 * If this is set we don't attempt to interpret content: just assume all 13270 * strings are 1 byte per character. This will produce some pretty odd 13271 * looking output! 13272 */ 13273 13274 13275 13276 /* If this is set we include the string type in the output */ 13277 13278 13279 /* 13280 * This determines which strings to display and which to 'dump' (hex dump of 13281 * content octets or DER encoding). We can only dump non character strings or 13282 * everything. If we don't dump 'unknown' they are interpreted as character 13283 * strings with 1 octet per character and are subject to the usual escaping 13284 * options. 13285 */ 13286 13287 13288 13289 13290 /* 13291 * These determine what 'dumping' does, we can dump the content octets or the 13292 * DER encoding: both use the RFC2253 #XXXXX notation. 13293 */ 13294 13295 13296 13297 /* 13298 * All the string flags consistent with RFC2253, escaping control characters 13299 * isn't essential in RFC2253 but it is advisable anyway. 13300 */ 13301 # 519 "/usr/include/openssl/asn1.h" 3 4 13302 struct stack_st_ASN1_INTEGER { _STACK stack; }; 13303 13304 13305 struct stack_st_ASN1_GENERALSTRING { _STACK stack; }; 13306 13307 typedef struct asn1_type_st { 13308 int type; 13309 union { 13310 char *ptr; 13311 ASN1_BOOLEAN boolean; 13312 ASN1_STRING *asn1_string; 13313 ASN1_OBJECT *object; 13314 ASN1_INTEGER *integer; 13315 ASN1_ENUMERATED *enumerated; 13316 ASN1_BIT_STRING *bit_string; 13317 ASN1_OCTET_STRING *octet_string; 13318 ASN1_PRINTABLESTRING *printablestring; 13319 ASN1_T61STRING *t61string; 13320 ASN1_IA5STRING *ia5string; 13321 ASN1_GENERALSTRING *generalstring; 13322 ASN1_BMPSTRING *bmpstring; 13323 ASN1_UNIVERSALSTRING *universalstring; 13324 ASN1_UTCTIME *utctime; 13325 ASN1_GENERALIZEDTIME *generalizedtime; 13326 ASN1_VISIBLESTRING *visiblestring; 13327 ASN1_UTF8STRING *utf8string; 13328 /* 13329 * set and sequence are left complete and still contain the set or 13330 * sequence bytes 13331 */ 13332 ASN1_STRING *set; 13333 ASN1_STRING *sequence; 13334 ASN1_VALUE *asn1_value; 13335 } value; 13336 } ASN1_TYPE; 13337 13338 struct stack_st_ASN1_TYPE { _STACK stack; }; 13339 13340 13341 typedef struct stack_st_ASN1_TYPE ASN1_SEQUENCE_ANY; 13342 13343 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; 13344 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; 13345 13346 typedef struct NETSCAPE_X509_st { 13347 ASN1_OCTET_STRING *header; 13348 X509 *cert; 13349 } NETSCAPE_X509; 13350 13351 /* This is used to contain a list of bit names */ 13352 typedef struct BIT_STRING_BITNAME_st { 13353 int bitnum; 13354 const char *lname; 13355 const char *sname; 13356 } BIT_STRING_BITNAME; 13357 13358 13359 13360 13361 13362 13363 /* Macros for string operations */ 13364 # 772 "/usr/include/openssl/asn1.h" 3 4 13365 /* for the is_set parameter to i2d_ASN1_SET */ 13366 13367 13368 13369 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; 13370 13371 int ASN1_TYPE_get(ASN1_TYPE *a); 13372 void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); 13373 int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); 13374 int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); 13375 13376 ASN1_OBJECT *ASN1_OBJECT_new(void); 13377 void ASN1_OBJECT_free(ASN1_OBJECT *a); 13378 int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); 13379 ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, 13380 long length); 13381 ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, 13382 long length); 13383 13384 extern const ASN1_ITEM ASN1_OBJECT_it; 13385 13386 struct stack_st_ASN1_OBJECT { _STACK stack; }; 13387 13388 13389 ASN1_STRING *ASN1_STRING_new(void); 13390 void ASN1_STRING_free(ASN1_STRING *a); 13391 void ASN1_STRING_clear_free(ASN1_STRING *a); 13392 int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); 13393 ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); 13394 ASN1_STRING *ASN1_STRING_type_new(int type); 13395 int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); 13396 /* 13397 * Since this is used to store all sorts of things, via macros, for now, 13398 * make its data void * 13399 */ 13400 int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); 13401 void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); 13402 int ASN1_STRING_length(const ASN1_STRING *x); 13403 void ASN1_STRING_length_set(ASN1_STRING *x, int n); 13404 int ASN1_STRING_type(ASN1_STRING *x); 13405 unsigned char *ASN1_STRING_data(ASN1_STRING *x); 13406 13407 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; 13408 int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp); 13409 ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, 13410 const unsigned char **pp, long length); 13411 int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); 13412 int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); 13413 int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); 13414 int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a, 13415 unsigned char *flags, int flags_len); 13416 13417 13418 int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, 13419 BIT_STRING_BITNAME *tbl, int indent); 13420 13421 int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); 13422 int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, 13423 BIT_STRING_BITNAME *tbl); 13424 13425 int i2d_ASN1_BOOLEAN(int a, unsigned char **pp); 13426 int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length); 13427 13428 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; 13429 int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp); 13430 ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, 13431 long length); 13432 ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, 13433 long length); 13434 ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); 13435 int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); 13436 13437 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; 13438 13439 int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); 13440 ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); 13441 ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, 13442 int offset_day, long offset_sec); 13443 int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); 13444 int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); 13445 13446 13447 13448 13449 int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); 13450 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, 13451 time_t t); 13452 ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, 13453 time_t t, int offset_day, 13454 long offset_sec); 13455 int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); 13456 int ASN1_TIME_diff(int *pday, int *psec, 13457 const ASN1_TIME *from, const ASN1_TIME *to); 13458 13459 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; 13460 ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); 13461 int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, 13462 const ASN1_OCTET_STRING *b); 13463 int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, 13464 int len); 13465 13466 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; 13467 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; 13468 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; 13469 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; 13470 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; 13471 13472 int UTF8_getc(const unsigned char *str, int len, unsigned long *val); 13473 int UTF8_putc(unsigned char *str, int len, unsigned long value); 13474 13475 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; 13476 13477 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; 13478 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; 13479 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; 13480 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; 13481 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; 13482 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; 13483 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; 13484 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; 13485 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; 13486 13487 extern const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it; 13488 13489 ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); 13490 ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, 13491 int offset_day, long offset_sec); 13492 int ASN1_TIME_check(ASN1_TIME *t); 13493 ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME 13494 **out); 13495 int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); 13496 13497 int i2d_ASN1_SET(struct stack_st_OPENSSL_BLOCK *a, unsigned char **pp, 13498 i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); 13499 struct stack_st_OPENSSL_BLOCK *d2i_ASN1_SET(struct stack_st_OPENSSL_BLOCK **a, 13500 const unsigned char **pp, 13501 long length, d2i_of_void *d2i, 13502 void (*free_func) (OPENSSL_BLOCK), 13503 int ex_tag, int ex_class); 13504 13505 13506 int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); 13507 int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); 13508 int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); 13509 int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); 13510 int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a); 13511 int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); 13512 int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); 13513 13514 int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a); 13515 13516 int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); 13517 ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, 13518 const char *sn, const char *ln); 13519 13520 int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); 13521 long ASN1_INTEGER_get(const ASN1_INTEGER *a); 13522 ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); 13523 BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); 13524 13525 int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); 13526 long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); 13527 ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); 13528 BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn); 13529 13530 /* General */ 13531 /* given a string, return the correct type, max is the maximum length */ 13532 int ASN1_PRINTABLE_type(const unsigned char *s, int max); 13533 13534 int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); 13535 ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, 13536 long length, int Ptag, int Pclass); 13537 unsigned long ASN1_tag2bit(int tag); 13538 /* type is one or more of the B_ASN1_ values. */ 13539 ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp, 13540 long length, int type); 13541 13542 /* PARSING */ 13543 int asn1_Finish(ASN1_CTX *c); 13544 int asn1_const_Finish(ASN1_const_CTX *c); 13545 13546 /* SPECIALS */ 13547 int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, 13548 int *pclass, long omax); 13549 int ASN1_check_infinite_end(unsigned char **p, long len); 13550 int ASN1_const_check_infinite_end(const unsigned char **p, long len); 13551 void ASN1_put_object(unsigned char **pp, int constructed, int length, 13552 int tag, int xclass); 13553 int ASN1_put_eoc(unsigned char **pp); 13554 int ASN1_object_size(int constructed, int length, int tag); 13555 13556 /* Used to implement other functions */ 13557 void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); 13558 # 976 "/usr/include/openssl/asn1.h" 3 4 13559 void *ASN1_item_dup(const ASN1_ITEM *it, void *x); 13560 13561 /* ASN1 alloc/free macros for when a type is only used internally */ 13562 13563 13564 13565 13566 13567 13568 void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); 13569 13570 13571 13572 13573 13574 13575 13576 void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); 13577 int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); 13578 # 1006 "/usr/include/openssl/asn1.h" 3 4 13579 int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); 13580 int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); 13581 13582 13583 int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); 13584 13585 13586 void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); 13587 13588 13589 13590 13591 13592 13593 13594 void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); 13595 int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); 13596 # 1034 "/usr/include/openssl/asn1.h" 3 4 13597 int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); 13598 int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); 13599 int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); 13600 int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); 13601 int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); 13602 int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); 13603 int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, 13604 unsigned char *buf, int off); 13605 int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); 13606 int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, 13607 int dump); 13608 13609 const char *ASN1_tag2str(int tag); 13610 13611 /* Used to load and write netscape format cert */ 13612 13613 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; 13614 13615 int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); 13616 13617 int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); 13618 int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len); 13619 int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, 13620 unsigned char *data, int len); 13621 int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, 13622 unsigned char *data, int max_len); 13623 13624 struct stack_st_OPENSSL_BLOCK *ASN1_seq_unpack(const unsigned char *buf, int len, 13625 d2i_of_void *d2i, 13626 void (*free_func) (OPENSSL_BLOCK)); 13627 unsigned char *ASN1_seq_pack(struct stack_st_OPENSSL_BLOCK *safes, i2d_of_void *i2d, 13628 unsigned char **buf, int *len); 13629 void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); 13630 void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); 13631 ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, 13632 ASN1_OCTET_STRING **oct); 13633 13634 13635 13636 13637 13638 13639 ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, 13640 ASN1_OCTET_STRING **oct); 13641 13642 void ASN1_STRING_set_default_mask(unsigned long mask); 13643 int ASN1_STRING_set_default_mask_asc(const char *p); 13644 unsigned long ASN1_STRING_get_default_mask(void); 13645 int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, 13646 int inform, unsigned long mask); 13647 int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, 13648 int inform, unsigned long mask, 13649 long minsize, long maxsize); 13650 13651 ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, 13652 const unsigned char *in, int inlen, 13653 int inform, int nid); 13654 ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); 13655 int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); 13656 void ASN1_STRING_TABLE_cleanup(void); 13657 13658 /* ASN1 template functions */ 13659 13660 /* Old API compatible functions */ 13661 ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); 13662 void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); 13663 ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, 13664 long len, const ASN1_ITEM *it); 13665 int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); 13666 int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, 13667 const ASN1_ITEM *it); 13668 13669 void ASN1_add_oid_module(void); 13670 13671 ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); 13672 ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); 13673 13674 /* ASN1 Print flags */ 13675 13676 /* Indicate missing OPTIONAL fields */ 13677 13678 /* Mark start and end of SEQUENCE */ 13679 13680 /* Mark start and end of SEQUENCE/SET OF */ 13681 13682 /* Show the ASN1 type of primitives */ 13683 13684 /* Don't show ASN1 type of ANY */ 13685 13686 /* Don't show ASN1 type of MSTRINGs */ 13687 13688 /* Don't show field names in SEQUENCE */ 13689 13690 /* Show structure names of each SEQUENCE field */ 13691 13692 /* Don't show structure name even at top level */ 13693 13694 13695 int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, 13696 const ASN1_ITEM *it, const ASN1_PCTX *pctx); 13697 ASN1_PCTX *ASN1_PCTX_new(void); 13698 void ASN1_PCTX_free(ASN1_PCTX *p); 13699 unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p); 13700 void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); 13701 unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p); 13702 void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); 13703 unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p); 13704 void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); 13705 unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p); 13706 void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); 13707 unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p); 13708 void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); 13709 13710 BIO_METHOD *BIO_f_asn1(void); 13711 13712 BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); 13713 13714 int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 13715 const ASN1_ITEM *it); 13716 int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, 13717 const char *hdr, const ASN1_ITEM *it); 13718 int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, 13719 int ctype_nid, int econt_nid, 13720 struct stack_st_X509_ALGOR *mdalgs, const ASN1_ITEM *it); 13721 ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); 13722 int SMIME_crlf_copy(BIO *in, BIO *out, int flags); 13723 int SMIME_text(BIO *in, BIO *out); 13724 13725 /* BEGIN ERROR CODES */ 13726 /* 13727 * The following lines are auto generated by the script mkerr.pl. Any changes 13728 * made after this point may be overwritten when the script is next run. 13729 */ 13730 13731 void ERR_load_ASN1_strings(void); 13732 13733 /* Error codes for the ASN1 functions. */ 13734 13735 /* Function codes. */ 13736 # 1298 "/usr/include/openssl/asn1.h" 3 4 13737 /* Reason codes. */ 13738 # 966 "/usr/include/openssl/objects.h" 2 3 4 13739 # 984 "/usr/include/openssl/objects.h" 3 4 13740 typedef struct obj_name_st { 13741 int type; 13742 int alias; 13743 const char *name; 13744 const char *data; 13745 } OBJ_NAME; 13746 13747 13748 13749 int OBJ_NAME_init(void); 13750 int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), 13751 int (*cmp_func) (const char *, const char *), 13752 void (*free_func) (const char *, int, const char *)); 13753 const char *OBJ_NAME_get(const char *name, int type); 13754 int OBJ_NAME_add(const char *name, int type, const char *data); 13755 int OBJ_NAME_remove(const char *name, int type); 13756 void OBJ_NAME_cleanup(int type); /* -1 for everything */ 13757 void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), 13758 void *arg); 13759 void OBJ_NAME_do_all_sorted(int type, 13760 void (*fn) (const OBJ_NAME *, void *arg), 13761 void *arg); 13762 13763 ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); 13764 ASN1_OBJECT *OBJ_nid2obj(int n); 13765 const char *OBJ_nid2ln(int n); 13766 const char *OBJ_nid2sn(int n); 13767 int OBJ_obj2nid(const ASN1_OBJECT *o); 13768 ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); 13769 int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); 13770 int OBJ_txt2nid(const char *s); 13771 int OBJ_ln2nid(const char *s); 13772 int OBJ_sn2nid(const char *s); 13773 int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); 13774 const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, 13775 int (*cmp) (const void *, const void *)); 13776 const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, 13777 int size, 13778 int (*cmp) (const void *, const void *), 13779 int flags); 13780 # 1035 "/usr/include/openssl/objects.h" 3 4 13781 /*- 13782 * Unsolved problem: if a type is actually a pointer type, like 13783 * nid_triple is, then its impossible to get a const where you need 13784 * it. Consider: 13785 * 13786 * typedef int nid_triple[3]; 13787 * const void *a_; 13788 * const nid_triple const *a = a_; 13789 * 13790 * The assignement discards a const because what you really want is: 13791 * 13792 * const int const * const *a = a_; 13793 * 13794 * But if you do that, you lose the fact that a is an array of 3 ints, 13795 * which breaks comparison functions. 13796 * 13797 * Thus we end up having to cast, sadly, or unpack the 13798 * declarations. Or, as I finally did in this case, delcare nid_triple 13799 * to be a struct, which it should have been in the first place. 13800 * 13801 * Ben, August 2008. 13802 * 13803 * Also, strictly speaking not all types need be const, but handling 13804 * the non-constness means a lot of complication, and in practice 13805 * comparison routines do always not touch their arguments. 13806 */ 13807 # 1104 "/usr/include/openssl/objects.h" 3 4 13808 int OBJ_new_nid(int num); 13809 int OBJ_add_object(const ASN1_OBJECT *obj); 13810 int OBJ_create(const char *oid, const char *sn, const char *ln); 13811 void OBJ_cleanup(void); 13812 int OBJ_create_objects(BIO *in); 13813 13814 int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); 13815 int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); 13816 int OBJ_add_sigid(int signid, int dig_id, int pkey_id); 13817 void OBJ_sigid_free(void); 13818 13819 extern int obj_cleanup_defer; 13820 void check_defer(int nid); 13821 13822 /* BEGIN ERROR CODES */ 13823 /* 13824 * The following lines are auto generated by the script mkerr.pl. Any changes 13825 * made after this point may be overwritten when the script is next run. 13826 */ 13827 void ERR_load_OBJ_strings(void); 13828 13829 /* Error codes for the OBJ functions. */ 13830 13831 /* Function codes. */ 13832 # 1136 "/usr/include/openssl/objects.h" 3 4 13833 /* Reason codes. */ 13834 # 95 "/usr/include/openssl/evp.h" 2 3 4 13835 # 125 "/usr/include/openssl/evp.h" 3 4 13836 /* 13837 * Type needs to be a bit field Sub-type needs to be for variations on the 13838 * method, as in, can it do arbitrary encryption.... 13839 */ 13840 struct evp_pkey_st { 13841 int type; 13842 int save_type; 13843 int references; 13844 const EVP_PKEY_ASN1_METHOD *ameth; 13845 ENGINE *engine; 13846 union { 13847 char *ptr; 13848 13849 struct rsa_st *rsa; /* RSA */ 13850 13851 13852 struct dsa_st *dsa; /* DSA */ 13853 13854 13855 struct dh_st *dh; /* DH */ 13856 13857 13858 struct ec_key_st *ec; /* ECC */ 13859 13860 } pkey; 13861 int save_parameters; 13862 struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */ 13863 } /* EVP_PKEY */ ; 13864 13865 13866 13867 13868 13869 13870 13871 struct env_md_st { 13872 int type; 13873 int pkey_type; 13874 int md_size; 13875 unsigned long flags; 13876 int (*init) (EVP_MD_CTX *ctx); 13877 int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); 13878 int (*final) (EVP_MD_CTX *ctx, unsigned char *md); 13879 int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from); 13880 int (*cleanup) (EVP_MD_CTX *ctx); 13881 /* FIXME: prototype these some day */ 13882 int (*sign) (int type, const unsigned char *m, unsigned int m_length, 13883 unsigned char *sigret, unsigned int *siglen, void *key); 13884 int (*verify) (int type, const unsigned char *m, unsigned int m_length, 13885 const unsigned char *sigbuf, unsigned int siglen, 13886 void *key); 13887 int required_pkey_type[5]; /* EVP_PKEY_xxx */ 13888 int block_size; 13889 int ctx_size; /* how big does the ctx->md_data need to be */ 13890 /* control function */ 13891 int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2); 13892 } /* EVP_MD */ ; 13893 13894 typedef int evp_sign_method(int type, const unsigned char *m, 13895 unsigned int m_length, unsigned char *sigret, 13896 unsigned int *siglen, void *key); 13897 typedef int evp_verify_method(int type, const unsigned char *m, 13898 unsigned int m_length, 13899 const unsigned char *sigbuf, 13900 unsigned int siglen, void *key); 13901 13902 /* digest can only handle a single block */ 13903 13904 13905 /* 13906 * digest is a "clone" digest used 13907 * which is a copy of an existing 13908 * one for a specific public key type. 13909 * EVP_dss1() etc 13910 */ 13911 13912 13913 /* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */ 13914 13915 13916 13917 /* DigestAlgorithmIdentifier flags... */ 13918 13919 13920 13921 /* NULL or absent parameter accepted. Use NULL */ 13922 13923 13924 13925 /* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ 13926 13927 13928 13929 /* Custom handling via ctrl */ 13930 13931 13932 13933 /* Note if suitable for use in FIPS mode */ 13934 13935 13936 /* Digest ctrls */ 13937 13938 13939 13940 13941 /* Minimum Algorithm specific ctrl value */ 13942 # 268 "/usr/include/openssl/evp.h" 3 4 13943 struct env_md_ctx_st { 13944 const EVP_MD *digest; 13945 ENGINE *engine; /* functional reference if 'digest' is 13946 * ENGINE-provided */ 13947 unsigned long flags; 13948 void *md_data; 13949 /* Public key context for sign/verify */ 13950 EVP_PKEY_CTX *pctx; 13951 /* Update function: usually copied from EVP_MD */ 13952 int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); 13953 } /* EVP_MD_CTX */ ; 13954 13955 /* values for EVP_MD_CTX flags */ 13956 13957 13958 13959 13960 13961 13962 13963 /* 13964 * FIPS and pad options are ignored in 1.0.0, definitions are here so we 13965 * don't accidentally reuse the values for other purposes. 13966 */ 13967 13968 13969 13970 13971 /* 13972 * The following PAD options are also currently ignored in 1.0.0, digest 13973 * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() 13974 * instead. 13975 */ 13976 13977 13978 13979 13980 13981 13982 13983 struct evp_cipher_st { 13984 int nid; 13985 int block_size; 13986 /* Default value for variable length ciphers */ 13987 int key_len; 13988 int iv_len; 13989 /* Various flags */ 13990 unsigned long flags; 13991 /* init key */ 13992 int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key, 13993 const unsigned char *iv, int enc); 13994 /* encrypt/decrypt data */ 13995 int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out, 13996 const unsigned char *in, size_t inl); 13997 /* cleanup ctx */ 13998 int (*cleanup) (EVP_CIPHER_CTX *); 13999 /* how big ctx->cipher_data needs to be */ 14000 int ctx_size; 14001 /* Populate a ASN1_TYPE with parameters */ 14002 int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); 14003 /* Get parameters from a ASN1_TYPE */ 14004 int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); 14005 /* Miscellaneous operations */ 14006 int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr); 14007 /* Application data */ 14008 void *app_data; 14009 } /* EVP_CIPHER */ ; 14010 14011 /* Values for cipher flags */ 14012 14013 /* Modes for ciphers */ 14014 # 351 "/usr/include/openssl/evp.h" 3 4 14015 /* Set if variable length cipher */ 14016 14017 /* Set if the iv handling should be done by the cipher itself */ 14018 14019 /* Set if the cipher's init() function should be called if key is NULL */ 14020 14021 /* Call ctrl() to init cipher parameters */ 14022 14023 /* Don't use standard key length function */ 14024 14025 /* Don't use standard block padding */ 14026 14027 /* cipher handles random key generation */ 14028 14029 /* cipher has its own additional copying logic */ 14030 14031 /* Allow use default ASN1 get/set iv */ 14032 14033 /* Buffer length in bits not bytes: CFB1 mode only */ 14034 14035 /* Note if suitable for use in FIPS mode */ 14036 14037 /* Allow non FIPS cipher in FIPS mode */ 14038 14039 /* 14040 * Cipher handles any and all padding logic as well as finalisation. 14041 */ 14042 14043 14044 14045 14046 /* 14047 * Cipher context flag to indicate we can handle wrap mode: if allowed in 14048 * older applications it could overflow buffers. 14049 */ 14050 14051 14052 14053 /* ctrl() values */ 14054 # 410 "/usr/include/openssl/evp.h" 3 4 14055 /* 14056 * AEAD cipher deduces payload length and returns number of bytes required to 14057 * store MAC and eventual padding. Subsequent call to EVP_Cipher even 14058 * appends/verifies MAC. 14059 */ 14060 14061 /* Used by composite AEAD ciphers, no-op in GCM, CCM... */ 14062 14063 /* Set the GCM invocation field, decrypt only */ 14064 14065 14066 14067 14068 14069 14070 14071 /* RFC 5246 defines additional data to be 13 bytes in length */ 14072 14073 14074 typedef struct { 14075 unsigned char *out; 14076 const unsigned char *inp; 14077 size_t len; 14078 unsigned int interleave; 14079 } EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; 14080 14081 /* GCM TLS constants */ 14082 /* Length of fixed part of IV derived from PRF */ 14083 14084 /* Length of explicit part of IV part of TLS records */ 14085 14086 /* Length of tag for TLS */ 14087 14088 14089 typedef struct evp_cipher_info_st { 14090 const EVP_CIPHER *cipher; 14091 unsigned char iv[16]; 14092 } EVP_CIPHER_INFO; 14093 14094 struct evp_cipher_ctx_st { 14095 const EVP_CIPHER *cipher; 14096 ENGINE *engine; /* functional reference if 'cipher' is 14097 * ENGINE-provided */ 14098 int encrypt; /* encrypt or decrypt */ 14099 int buf_len; /* number we have left */ 14100 unsigned char oiv[16]; /* original iv */ 14101 unsigned char iv[16]; /* working iv */ 14102 unsigned char buf[32]; /* saved partial block */ 14103 int num; /* used by cfb/ofb/ctr mode */ 14104 void *app_data; /* application stuff */ 14105 int key_len; /* May change for variable length cipher */ 14106 unsigned long flags; /* Various flags */ 14107 void *cipher_data; /* per EVP data */ 14108 int final_used; 14109 int block_mask; 14110 unsigned char final[32]; /* possible final block */ 14111 } /* EVP_CIPHER_CTX */ ; 14112 14113 typedef struct evp_Encode_Ctx_st { 14114 /* number saved in a partial encode/decode */ 14115 int num; 14116 /* 14117 * The length is either the output line length (in input bytes) or the 14118 * shortest input line length that is ok. Once decoding begins, the 14119 * length is adjusted up each time a longer line is decoded 14120 */ 14121 int length; 14122 /* data to encode */ 14123 unsigned char enc_data[80]; 14124 /* number read on current line */ 14125 int line_num; 14126 int expect_nl; 14127 } EVP_ENCODE_CTX; 14128 14129 /* Password based encryption function */ 14130 typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, 14131 int passlen, ASN1_TYPE *param, 14132 const EVP_CIPHER *cipher, const EVP_MD *md, 14133 int en_de); 14134 # 510 "/usr/include/openssl/evp.h" 3 4 14135 /* Add some extra combinations */ 14136 14137 14138 14139 14140 14141 int EVP_MD_type(const EVP_MD *md); 14142 14143 14144 int EVP_MD_pkey_type(const EVP_MD *md); 14145 int EVP_MD_size(const EVP_MD *md); 14146 int EVP_MD_block_size(const EVP_MD *md); 14147 unsigned long EVP_MD_flags(const EVP_MD *md); 14148 14149 const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); 14150 14151 14152 14153 14154 int EVP_CIPHER_nid(const EVP_CIPHER *cipher); 14155 14156 int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); 14157 int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); 14158 int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); 14159 unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); 14160 14161 14162 const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); 14163 int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); 14164 int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); 14165 int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); 14166 int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); 14167 int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); 14168 void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); 14169 void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); 14170 14171 unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); 14172 # 574 "/usr/include/openssl/evp.h" 3 4 14173 int EVP_Cipher(EVP_CIPHER_CTX *c, 14174 unsigned char *out, const unsigned char *in, unsigned int inl); 14175 # 586 "/usr/include/openssl/evp.h" 3 4 14176 void EVP_MD_CTX_init(EVP_MD_CTX *ctx); 14177 int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); 14178 EVP_MD_CTX *EVP_MD_CTX_create(void); 14179 void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); 14180 int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); 14181 void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); 14182 void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); 14183 int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); 14184 int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); 14185 int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); 14186 int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); 14187 int EVP_Digest(const void *data, size_t count, 14188 unsigned char *md, unsigned int *size, const EVP_MD *type, 14189 ENGINE *impl); 14190 14191 int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); 14192 int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); 14193 int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); 14194 14195 int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); 14196 int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, 14197 const char *prompt, int verify); 14198 void EVP_set_pw_prompt(const char *prompt); 14199 char *EVP_get_pw_prompt(void); 14200 14201 int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, 14202 const unsigned char *salt, const unsigned char *data, 14203 int datal, int count, unsigned char *key, 14204 unsigned char *iv); 14205 14206 void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); 14207 void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); 14208 int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); 14209 14210 int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 14211 const unsigned char *key, const unsigned char *iv); 14212 int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 14213 ENGINE *impl, const unsigned char *key, 14214 const unsigned char *iv); 14215 int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 14216 const unsigned char *in, int inl); 14217 int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 14218 int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 14219 14220 int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 14221 const unsigned char *key, const unsigned char *iv); 14222 int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 14223 ENGINE *impl, const unsigned char *key, 14224 const unsigned char *iv); 14225 int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 14226 const unsigned char *in, int inl); 14227 int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 14228 int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 14229 14230 int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 14231 const unsigned char *key, const unsigned char *iv, 14232 int enc); 14233 int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, 14234 ENGINE *impl, const unsigned char *key, 14235 const unsigned char *iv, int enc); 14236 int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, 14237 const unsigned char *in, int inl); 14238 int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 14239 int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); 14240 14241 int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, 14242 EVP_PKEY *pkey); 14243 14244 int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, 14245 unsigned int siglen, EVP_PKEY *pkey); 14246 14247 int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 14248 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 14249 int EVP_DigestSignFinal(EVP_MD_CTX *ctx, 14250 unsigned char *sigret, size_t *siglen); 14251 14252 int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, 14253 const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); 14254 int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, 14255 const unsigned char *sig, size_t siglen); 14256 14257 int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 14258 const unsigned char *ek, int ekl, const unsigned char *iv, 14259 EVP_PKEY *priv); 14260 int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 14261 14262 int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, 14263 unsigned char **ek, int *ekl, unsigned char *iv, 14264 EVP_PKEY **pubk, int npubk); 14265 int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); 14266 14267 void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); 14268 void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 14269 const unsigned char *in, int inl); 14270 void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); 14271 int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); 14272 14273 void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); 14274 int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, 14275 const unsigned char *in, int inl); 14276 int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned 14277 char *out, int *outl); 14278 int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); 14279 14280 void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); 14281 int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); 14282 EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); 14283 void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); 14284 int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); 14285 int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); 14286 int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); 14287 int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); 14288 14289 14290 BIO_METHOD *BIO_f_md(void); 14291 BIO_METHOD *BIO_f_base64(void); 14292 BIO_METHOD *BIO_f_cipher(void); 14293 BIO_METHOD *BIO_f_reliable(void); 14294 void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, 14295 const unsigned char *i, int enc); 14296 14297 14298 const EVP_MD *EVP_md_null(void); 14299 14300 const EVP_MD *EVP_md2(void); 14301 14302 14303 const EVP_MD *EVP_md4(void); 14304 14305 14306 const EVP_MD *EVP_md5(void); 14307 14308 14309 const EVP_MD *EVP_sha(void); 14310 const EVP_MD *EVP_sha1(void); 14311 const EVP_MD *EVP_dss(void); 14312 const EVP_MD *EVP_dss1(void); 14313 const EVP_MD *EVP_ecdsa(void); 14314 14315 14316 const EVP_MD *EVP_sha224(void); 14317 const EVP_MD *EVP_sha256(void); 14318 14319 14320 const EVP_MD *EVP_sha384(void); 14321 const EVP_MD *EVP_sha512(void); 14322 14323 14324 14325 14326 14327 const EVP_MD *EVP_ripemd160(void); 14328 14329 14330 14331 14332 const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ 14333 14334 const EVP_CIPHER *EVP_des_ecb(void); 14335 const EVP_CIPHER *EVP_des_ede(void); 14336 const EVP_CIPHER *EVP_des_ede3(void); 14337 const EVP_CIPHER *EVP_des_ede_ecb(void); 14338 const EVP_CIPHER *EVP_des_ede3_ecb(void); 14339 const EVP_CIPHER *EVP_des_cfb64(void); 14340 14341 const EVP_CIPHER *EVP_des_cfb1(void); 14342 const EVP_CIPHER *EVP_des_cfb8(void); 14343 const EVP_CIPHER *EVP_des_ede_cfb64(void); 14344 14345 14346 14347 14348 14349 const EVP_CIPHER *EVP_des_ede3_cfb64(void); 14350 14351 const EVP_CIPHER *EVP_des_ede3_cfb1(void); 14352 const EVP_CIPHER *EVP_des_ede3_cfb8(void); 14353 const EVP_CIPHER *EVP_des_ofb(void); 14354 const EVP_CIPHER *EVP_des_ede_ofb(void); 14355 const EVP_CIPHER *EVP_des_ede3_ofb(void); 14356 const EVP_CIPHER *EVP_des_cbc(void); 14357 const EVP_CIPHER *EVP_des_ede_cbc(void); 14358 const EVP_CIPHER *EVP_des_ede3_cbc(void); 14359 const EVP_CIPHER *EVP_desx_cbc(void); 14360 const EVP_CIPHER *EVP_des_ede3_wrap(void); 14361 /* 14362 * This should now be supported through the dev_crypto ENGINE. But also, why 14363 * are rc4 and md5 declarations made here inside a "NO_DES" precompiler 14364 * branch? 14365 */ 14366 # 785 "/usr/include/openssl/evp.h" 3 4 14367 const EVP_CIPHER *EVP_rc4(void); 14368 const EVP_CIPHER *EVP_rc4_40(void); 14369 14370 const EVP_CIPHER *EVP_rc4_hmac_md5(void); 14371 # 799 "/usr/include/openssl/evp.h" 3 4 14372 const EVP_CIPHER *EVP_rc2_ecb(void); 14373 const EVP_CIPHER *EVP_rc2_cbc(void); 14374 const EVP_CIPHER *EVP_rc2_40_cbc(void); 14375 const EVP_CIPHER *EVP_rc2_64_cbc(void); 14376 const EVP_CIPHER *EVP_rc2_cfb64(void); 14377 14378 const EVP_CIPHER *EVP_rc2_ofb(void); 14379 14380 14381 const EVP_CIPHER *EVP_bf_ecb(void); 14382 const EVP_CIPHER *EVP_bf_cbc(void); 14383 const EVP_CIPHER *EVP_bf_cfb64(void); 14384 14385 const EVP_CIPHER *EVP_bf_ofb(void); 14386 14387 14388 const EVP_CIPHER *EVP_cast5_ecb(void); 14389 const EVP_CIPHER *EVP_cast5_cbc(void); 14390 const EVP_CIPHER *EVP_cast5_cfb64(void); 14391 14392 const EVP_CIPHER *EVP_cast5_ofb(void); 14393 # 829 "/usr/include/openssl/evp.h" 3 4 14394 const EVP_CIPHER *EVP_aes_128_ecb(void); 14395 const EVP_CIPHER *EVP_aes_128_cbc(void); 14396 const EVP_CIPHER *EVP_aes_128_cfb1(void); 14397 const EVP_CIPHER *EVP_aes_128_cfb8(void); 14398 const EVP_CIPHER *EVP_aes_128_cfb128(void); 14399 14400 const EVP_CIPHER *EVP_aes_128_ofb(void); 14401 const EVP_CIPHER *EVP_aes_128_ctr(void); 14402 const EVP_CIPHER *EVP_aes_128_ccm(void); 14403 const EVP_CIPHER *EVP_aes_128_gcm(void); 14404 const EVP_CIPHER *EVP_aes_128_xts(void); 14405 const EVP_CIPHER *EVP_aes_128_wrap(void); 14406 const EVP_CIPHER *EVP_aes_192_ecb(void); 14407 const EVP_CIPHER *EVP_aes_192_cbc(void); 14408 const EVP_CIPHER *EVP_aes_192_cfb1(void); 14409 const EVP_CIPHER *EVP_aes_192_cfb8(void); 14410 const EVP_CIPHER *EVP_aes_192_cfb128(void); 14411 14412 const EVP_CIPHER *EVP_aes_192_ofb(void); 14413 const EVP_CIPHER *EVP_aes_192_ctr(void); 14414 const EVP_CIPHER *EVP_aes_192_ccm(void); 14415 const EVP_CIPHER *EVP_aes_192_gcm(void); 14416 const EVP_CIPHER *EVP_aes_192_wrap(void); 14417 const EVP_CIPHER *EVP_aes_256_ecb(void); 14418 const EVP_CIPHER *EVP_aes_256_cbc(void); 14419 const EVP_CIPHER *EVP_aes_256_cfb1(void); 14420 const EVP_CIPHER *EVP_aes_256_cfb8(void); 14421 const EVP_CIPHER *EVP_aes_256_cfb128(void); 14422 14423 const EVP_CIPHER *EVP_aes_256_ofb(void); 14424 const EVP_CIPHER *EVP_aes_256_ctr(void); 14425 const EVP_CIPHER *EVP_aes_256_ccm(void); 14426 const EVP_CIPHER *EVP_aes_256_gcm(void); 14427 const EVP_CIPHER *EVP_aes_256_xts(void); 14428 const EVP_CIPHER *EVP_aes_256_wrap(void); 14429 14430 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); 14431 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); 14432 14433 14434 const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); 14435 const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); 14436 14437 14438 14439 const EVP_CIPHER *EVP_camellia_128_ecb(void); 14440 const EVP_CIPHER *EVP_camellia_128_cbc(void); 14441 const EVP_CIPHER *EVP_camellia_128_cfb1(void); 14442 const EVP_CIPHER *EVP_camellia_128_cfb8(void); 14443 const EVP_CIPHER *EVP_camellia_128_cfb128(void); 14444 14445 const EVP_CIPHER *EVP_camellia_128_ofb(void); 14446 const EVP_CIPHER *EVP_camellia_192_ecb(void); 14447 const EVP_CIPHER *EVP_camellia_192_cbc(void); 14448 const EVP_CIPHER *EVP_camellia_192_cfb1(void); 14449 const EVP_CIPHER *EVP_camellia_192_cfb8(void); 14450 const EVP_CIPHER *EVP_camellia_192_cfb128(void); 14451 14452 const EVP_CIPHER *EVP_camellia_192_ofb(void); 14453 const EVP_CIPHER *EVP_camellia_256_ecb(void); 14454 const EVP_CIPHER *EVP_camellia_256_cbc(void); 14455 const EVP_CIPHER *EVP_camellia_256_cfb1(void); 14456 const EVP_CIPHER *EVP_camellia_256_cfb8(void); 14457 const EVP_CIPHER *EVP_camellia_256_cfb128(void); 14458 14459 const EVP_CIPHER *EVP_camellia_256_ofb(void); 14460 # 905 "/usr/include/openssl/evp.h" 3 4 14461 void OPENSSL_add_all_algorithms_noconf(void); 14462 void OPENSSL_add_all_algorithms_conf(void); 14463 # 916 "/usr/include/openssl/evp.h" 3 4 14464 void OpenSSL_add_all_ciphers(void); 14465 void OpenSSL_add_all_digests(void); 14466 14467 14468 14469 14470 int EVP_add_cipher(const EVP_CIPHER *cipher); 14471 int EVP_add_digest(const EVP_MD *digest); 14472 14473 const EVP_CIPHER *EVP_get_cipherbyname(const char *name); 14474 const EVP_MD *EVP_get_digestbyname(const char *name); 14475 void EVP_cleanup(void); 14476 14477 void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, 14478 const char *from, const char *to, void *x), 14479 void *arg); 14480 void EVP_CIPHER_do_all_sorted(void (*fn) 14481 (const EVP_CIPHER *ciph, const char *from, 14482 const char *to, void *x), void *arg); 14483 14484 void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, 14485 const char *from, const char *to, void *x), 14486 void *arg); 14487 void EVP_MD_do_all_sorted(void (*fn) 14488 (const EVP_MD *ciph, const char *from, 14489 const char *to, void *x), void *arg); 14490 14491 int EVP_PKEY_decrypt_old(unsigned char *dec_key, 14492 const unsigned char *enc_key, int enc_key_len, 14493 EVP_PKEY *private_key); 14494 int EVP_PKEY_encrypt_old(unsigned char *enc_key, 14495 const unsigned char *key, int key_len, 14496 EVP_PKEY *pub_key); 14497 int EVP_PKEY_type(int type); 14498 int EVP_PKEY_id(const EVP_PKEY *pkey); 14499 int EVP_PKEY_base_id(const EVP_PKEY *pkey); 14500 int EVP_PKEY_bits(EVP_PKEY *pkey); 14501 int EVP_PKEY_size(EVP_PKEY *pkey); 14502 int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); 14503 int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); 14504 int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); 14505 void *EVP_PKEY_get0(EVP_PKEY *pkey); 14506 14507 14508 struct rsa_st; 14509 int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); 14510 struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); 14511 14512 14513 struct dsa_st; 14514 int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); 14515 struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); 14516 14517 14518 struct dh_st; 14519 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); 14520 struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); 14521 14522 14523 struct ec_key_st; 14524 int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); 14525 struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); 14526 14527 14528 EVP_PKEY *EVP_PKEY_new(void); 14529 void EVP_PKEY_free(EVP_PKEY *pkey); 14530 14531 EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, 14532 long length); 14533 int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); 14534 14535 EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, 14536 long length); 14537 EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, 14538 long length); 14539 int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); 14540 14541 int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); 14542 int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); 14543 int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); 14544 int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); 14545 14546 int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); 14547 14548 int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, 14549 int indent, ASN1_PCTX *pctx); 14550 int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, 14551 int indent, ASN1_PCTX *pctx); 14552 int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, 14553 int indent, ASN1_PCTX *pctx); 14554 14555 int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); 14556 14557 int EVP_CIPHER_type(const EVP_CIPHER *ctx); 14558 14559 /* calls methods */ 14560 int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 14561 int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 14562 14563 /* These are used by EVP_CIPHER methods */ 14564 int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 14565 int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); 14566 14567 /* PKCS5 password based encryption */ 14568 int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 14569 ASN1_TYPE *param, const EVP_CIPHER *cipher, 14570 const EVP_MD *md, int en_de); 14571 int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, 14572 const unsigned char *salt, int saltlen, int iter, 14573 int keylen, unsigned char *out); 14574 int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, 14575 const unsigned char *salt, int saltlen, int iter, 14576 const EVP_MD *digest, int keylen, unsigned char *out); 14577 int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, 14578 ASN1_TYPE *param, const EVP_CIPHER *cipher, 14579 const EVP_MD *md, int en_de); 14580 14581 void PKCS5_PBE_add(void); 14582 14583 int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, 14584 ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); 14585 14586 /* PBE type */ 14587 14588 /* Can appear as the outermost AlgorithmIdentifier */ 14589 14590 /* Is an PRF type OID */ 14591 14592 14593 int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, 14594 int md_nid, EVP_PBE_KEYGEN *keygen); 14595 int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, 14596 EVP_PBE_KEYGEN *keygen); 14597 int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, 14598 EVP_PBE_KEYGEN **pkeygen); 14599 void EVP_PBE_cleanup(void); 14600 # 1064 "/usr/include/openssl/evp.h" 3 4 14601 int EVP_PKEY_asn1_get_count(void); 14602 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); 14603 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); 14604 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, 14605 const char *str, int len); 14606 int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); 14607 int EVP_PKEY_asn1_add_alias(int to, int from); 14608 int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, 14609 int *ppkey_flags, const char **pinfo, 14610 const char **ppem_str, 14611 const EVP_PKEY_ASN1_METHOD *ameth); 14612 14613 const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey); 14614 EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, 14615 const char *pem_str, 14616 const char *info); 14617 void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, 14618 const EVP_PKEY_ASN1_METHOD *src); 14619 void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); 14620 void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, 14621 int (*pub_decode) (EVP_PKEY *pk, 14622 X509_PUBKEY *pub), 14623 int (*pub_encode) (X509_PUBKEY *pub, 14624 const EVP_PKEY *pk), 14625 int (*pub_cmp) (const EVP_PKEY *a, 14626 const EVP_PKEY *b), 14627 int (*pub_print) (BIO *out, 14628 const EVP_PKEY *pkey, 14629 int indent, ASN1_PCTX *pctx), 14630 int (*pkey_size) (const EVP_PKEY *pk), 14631 int (*pkey_bits) (const EVP_PKEY *pk)); 14632 void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, 14633 int (*priv_decode) (EVP_PKEY *pk, 14634 PKCS8_PRIV_KEY_INFO 14635 *p8inf), 14636 int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, 14637 const EVP_PKEY *pk), 14638 int (*priv_print) (BIO *out, 14639 const EVP_PKEY *pkey, 14640 int indent, 14641 ASN1_PCTX *pctx)); 14642 void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, 14643 int (*param_decode) (EVP_PKEY *pkey, 14644 const unsigned char **pder, 14645 int derlen), 14646 int (*param_encode) (const EVP_PKEY *pkey, 14647 unsigned char **pder), 14648 int (*param_missing) (const EVP_PKEY *pk), 14649 int (*param_copy) (EVP_PKEY *to, 14650 const EVP_PKEY *from), 14651 int (*param_cmp) (const EVP_PKEY *a, 14652 const EVP_PKEY *b), 14653 int (*param_print) (BIO *out, 14654 const EVP_PKEY *pkey, 14655 int indent, 14656 ASN1_PCTX *pctx)); 14657 14658 void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, 14659 void (*pkey_free) (EVP_PKEY *pkey)); 14660 void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, 14661 int (*pkey_ctrl) (EVP_PKEY *pkey, int op, 14662 long arg1, void *arg2)); 14663 void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, 14664 int (*item_verify) (EVP_MD_CTX *ctx, 14665 const ASN1_ITEM *it, 14666 void *asn, 14667 X509_ALGOR *a, 14668 ASN1_BIT_STRING *sig, 14669 EVP_PKEY *pkey), 14670 int (*item_sign) (EVP_MD_CTX *ctx, 14671 const ASN1_ITEM *it, 14672 void *asn, 14673 X509_ALGOR *alg1, 14674 X509_ALGOR *alg2, 14675 ASN1_BIT_STRING *sig)); 14676 # 1185 "/usr/include/openssl/evp.h" 3 4 14677 /* Used by GOST key encryption in TLS */ 14678 # 1199 "/usr/include/openssl/evp.h" 3 4 14679 /* 14680 * Method handles all operations: don't assume any digest related defaults. 14681 */ 14682 14683 14684 const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); 14685 EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); 14686 void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, 14687 const EVP_PKEY_METHOD *meth); 14688 void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); 14689 void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); 14690 int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); 14691 14692 EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); 14693 EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); 14694 EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); 14695 void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); 14696 14697 int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, 14698 int cmd, int p1, void *p2); 14699 int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, 14700 const char *value); 14701 14702 int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); 14703 void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); 14704 14705 EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, 14706 const unsigned char *key, int keylen); 14707 14708 void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); 14709 void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); 14710 EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); 14711 14712 EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); 14713 14714 void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); 14715 void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); 14716 14717 int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); 14718 int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, 14719 unsigned char *sig, size_t *siglen, 14720 const unsigned char *tbs, size_t tbslen); 14721 int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); 14722 int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, 14723 const unsigned char *sig, size_t siglen, 14724 const unsigned char *tbs, size_t tbslen); 14725 int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); 14726 int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, 14727 unsigned char *rout, size_t *routlen, 14728 const unsigned char *sig, size_t siglen); 14729 int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); 14730 int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, 14731 unsigned char *out, size_t *outlen, 14732 const unsigned char *in, size_t inlen); 14733 int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); 14734 int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, 14735 unsigned char *out, size_t *outlen, 14736 const unsigned char *in, size_t inlen); 14737 14738 int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); 14739 int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); 14740 int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); 14741 14742 typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx); 14743 14744 int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); 14745 int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 14746 int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); 14747 int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); 14748 14749 void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); 14750 EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); 14751 14752 int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); 14753 14754 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, 14755 int (*init) (EVP_PKEY_CTX *ctx)); 14756 14757 void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, 14758 int (*copy) (EVP_PKEY_CTX *dst, 14759 EVP_PKEY_CTX *src)); 14760 14761 void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, 14762 void (*cleanup) (EVP_PKEY_CTX *ctx)); 14763 14764 void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, 14765 int (*paramgen_init) (EVP_PKEY_CTX *ctx), 14766 int (*paramgen) (EVP_PKEY_CTX *ctx, 14767 EVP_PKEY *pkey)); 14768 14769 void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, 14770 int (*keygen_init) (EVP_PKEY_CTX *ctx), 14771 int (*keygen) (EVP_PKEY_CTX *ctx, 14772 EVP_PKEY *pkey)); 14773 14774 void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, 14775 int (*sign_init) (EVP_PKEY_CTX *ctx), 14776 int (*sign) (EVP_PKEY_CTX *ctx, 14777 unsigned char *sig, size_t *siglen, 14778 const unsigned char *tbs, 14779 size_t tbslen)); 14780 14781 void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, 14782 int (*verify_init) (EVP_PKEY_CTX *ctx), 14783 int (*verify) (EVP_PKEY_CTX *ctx, 14784 const unsigned char *sig, 14785 size_t siglen, 14786 const unsigned char *tbs, 14787 size_t tbslen)); 14788 14789 void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, 14790 int (*verify_recover_init) (EVP_PKEY_CTX 14791 *ctx), 14792 int (*verify_recover) (EVP_PKEY_CTX 14793 *ctx, 14794 unsigned char 14795 *sig, 14796 size_t *siglen, 14797 const unsigned 14798 char *tbs, 14799 size_t tbslen)); 14800 14801 void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, 14802 int (*signctx_init) (EVP_PKEY_CTX *ctx, 14803 EVP_MD_CTX *mctx), 14804 int (*signctx) (EVP_PKEY_CTX *ctx, 14805 unsigned char *sig, 14806 size_t *siglen, 14807 EVP_MD_CTX *mctx)); 14808 14809 void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, 14810 int (*verifyctx_init) (EVP_PKEY_CTX *ctx, 14811 EVP_MD_CTX *mctx), 14812 int (*verifyctx) (EVP_PKEY_CTX *ctx, 14813 const unsigned char *sig, 14814 int siglen, 14815 EVP_MD_CTX *mctx)); 14816 14817 void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, 14818 int (*encrypt_init) (EVP_PKEY_CTX *ctx), 14819 int (*encryptfn) (EVP_PKEY_CTX *ctx, 14820 unsigned char *out, 14821 size_t *outlen, 14822 const unsigned char *in, 14823 size_t inlen)); 14824 14825 void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, 14826 int (*decrypt_init) (EVP_PKEY_CTX *ctx), 14827 int (*decrypt) (EVP_PKEY_CTX *ctx, 14828 unsigned char *out, 14829 size_t *outlen, 14830 const unsigned char *in, 14831 size_t inlen)); 14832 14833 void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, 14834 int (*derive_init) (EVP_PKEY_CTX *ctx), 14835 int (*derive) (EVP_PKEY_CTX *ctx, 14836 unsigned char *key, 14837 size_t *keylen)); 14838 14839 void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, 14840 int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, 14841 void *p2), 14842 int (*ctrl_str) (EVP_PKEY_CTX *ctx, 14843 const char *type, 14844 const char *value)); 14845 14846 void EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth, 14847 int (**pinit) (EVP_PKEY_CTX *ctx)); 14848 14849 void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, 14850 int (**pcopy) (EVP_PKEY_CTX *dst, 14851 EVP_PKEY_CTX *src)); 14852 14853 void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, 14854 void (**pcleanup) (EVP_PKEY_CTX *ctx)); 14855 14856 void EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth, 14857 int (**pparamgen_init) (EVP_PKEY_CTX *ctx), 14858 int (**pparamgen) (EVP_PKEY_CTX *ctx, 14859 EVP_PKEY *pkey)); 14860 14861 void EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth, 14862 int (**pkeygen_init) (EVP_PKEY_CTX *ctx), 14863 int (**pkeygen) (EVP_PKEY_CTX *ctx, 14864 EVP_PKEY *pkey)); 14865 14866 void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth, 14867 int (**psign_init) (EVP_PKEY_CTX *ctx), 14868 int (**psign) (EVP_PKEY_CTX *ctx, 14869 unsigned char *sig, size_t *siglen, 14870 const unsigned char *tbs, 14871 size_t tbslen)); 14872 14873 void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth, 14874 int (**pverify_init) (EVP_PKEY_CTX *ctx), 14875 int (**pverify) (EVP_PKEY_CTX *ctx, 14876 const unsigned char *sig, 14877 size_t siglen, 14878 const unsigned char *tbs, 14879 size_t tbslen)); 14880 14881 void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth, 14882 int (**pverify_recover_init) (EVP_PKEY_CTX 14883 *ctx), 14884 int (**pverify_recover) (EVP_PKEY_CTX 14885 *ctx, 14886 unsigned char 14887 *sig, 14888 size_t *siglen, 14889 const unsigned 14890 char *tbs, 14891 size_t tbslen)); 14892 14893 void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth, 14894 int (**psignctx_init) (EVP_PKEY_CTX *ctx, 14895 EVP_MD_CTX *mctx), 14896 int (**psignctx) (EVP_PKEY_CTX *ctx, 14897 unsigned char *sig, 14898 size_t *siglen, 14899 EVP_MD_CTX *mctx)); 14900 14901 void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth, 14902 int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, 14903 EVP_MD_CTX *mctx), 14904 int (**pverifyctx) (EVP_PKEY_CTX *ctx, 14905 const unsigned char *sig, 14906 int siglen, 14907 EVP_MD_CTX *mctx)); 14908 14909 void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth, 14910 int (**pencrypt_init) (EVP_PKEY_CTX *ctx), 14911 int (**pencryptfn) (EVP_PKEY_CTX *ctx, 14912 unsigned char *out, 14913 size_t *outlen, 14914 const unsigned char *in, 14915 size_t inlen)); 14916 14917 void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth, 14918 int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), 14919 int (**pdecrypt) (EVP_PKEY_CTX *ctx, 14920 unsigned char *out, 14921 size_t *outlen, 14922 const unsigned char *in, 14923 size_t inlen)); 14924 14925 void EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth, 14926 int (**pderive_init) (EVP_PKEY_CTX *ctx), 14927 int (**pderive) (EVP_PKEY_CTX *ctx, 14928 unsigned char *key, 14929 size_t *keylen)); 14930 14931 void EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth, 14932 int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, 14933 void *p2), 14934 int (**pctrl_str) (EVP_PKEY_CTX *ctx, 14935 const char *type, 14936 const char *value)); 14937 14938 void EVP_add_alg_module(void); 14939 14940 /* BEGIN ERROR CODES */ 14941 /* 14942 * The following lines are auto generated by the script mkerr.pl. Any changes 14943 * made after this point may be overwritten when the script is next run. 14944 */ 14945 14946 void ERR_load_EVP_strings(void); 14947 14948 /* Error codes for the EVP functions. */ 14949 14950 /* Function codes. */ 14951 # 1554 "/usr/include/openssl/evp.h" 3 4 14952 /* Reason codes. */ 14953 # 74 "/usr/include/openssl/x509.h" 2 3 4 14954 14955 14956 # 1 "/usr/include/openssl/bio.h" 1 3 4 14957 /* crypto/bio/bio.h */ 14958 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 14959 * All rights reserved. 14960 * 14961 * This package is an SSL implementation written 14962 * by Eric Young (eay@cryptsoft.com). 14963 * The implementation was written so as to conform with Netscapes SSL. 14964 * 14965 * This library is free for commercial and non-commercial use as long as 14966 * the following conditions are aheared to. The following conditions 14967 * apply to all code found in this distribution, be it the RC4, RSA, 14968 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 14969 * included with this distribution is covered by the same copyright terms 14970 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14971 * 14972 * Copyright remains Eric Young's, and as such any Copyright notices in 14973 * the code are not to be removed. 14974 * If this package is used in a product, Eric Young should be given attribution 14975 * as the author of the parts of the library used. 14976 * This can be in the form of a textual message at program startup or 14977 * in documentation (online or textual) provided with the package. 14978 * 14979 * Redistribution and use in source and binary forms, with or without 14980 * modification, are permitted provided that the following conditions 14981 * are met: 14982 * 1. Redistributions of source code must retain the copyright 14983 * notice, this list of conditions and the following disclaimer. 14984 * 2. Redistributions in binary form must reproduce the above copyright 14985 * notice, this list of conditions and the following disclaimer in the 14986 * documentation and/or other materials provided with the distribution. 14987 * 3. All advertising materials mentioning features or use of this software 14988 * must display the following acknowledgement: 14989 * "This product includes cryptographic software written by 14990 * Eric Young (eay@cryptsoft.com)" 14991 * The word 'cryptographic' can be left out if the rouines from the library 14992 * being used are not cryptographic related :-). 14993 * 4. If you include any Windows specific code (or a derivative thereof) from 14994 * the apps directory (application code) you must include an acknowledgement: 14995 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 14996 * 14997 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 14998 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14999 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15000 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15001 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 15002 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 15003 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15004 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 15005 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 15006 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 15007 * SUCH DAMAGE. 15008 * 15009 * The licence and distribution terms for any publically available version or 15010 * derivative of this code cannot be changed. i.e. this code cannot simply be 15011 * copied and put under another distribution licence 15012 * [including the GNU Public Licence.] 15013 */ 15014 # 77 "/usr/include/openssl/x509.h" 2 3 4 15015 15016 # 1 "/usr/include/openssl/stack.h" 1 3 4 15017 /* crypto/stack/stack.h */ 15018 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 15019 * All rights reserved. 15020 * 15021 * This package is an SSL implementation written 15022 * by Eric Young (eay@cryptsoft.com). 15023 * The implementation was written so as to conform with Netscapes SSL. 15024 * 15025 * This library is free for commercial and non-commercial use as long as 15026 * the following conditions are aheared to. The following conditions 15027 * apply to all code found in this distribution, be it the RC4, RSA, 15028 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15029 * included with this distribution is covered by the same copyright terms 15030 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15031 * 15032 * Copyright remains Eric Young's, and as such any Copyright notices in 15033 * the code are not to be removed. 15034 * If this package is used in a product, Eric Young should be given attribution 15035 * as the author of the parts of the library used. 15036 * This can be in the form of a textual message at program startup or 15037 * in documentation (online or textual) provided with the package. 15038 * 15039 * Redistribution and use in source and binary forms, with or without 15040 * modification, are permitted provided that the following conditions 15041 * are met: 15042 * 1. Redistributions of source code must retain the copyright 15043 * notice, this list of conditions and the following disclaimer. 15044 * 2. Redistributions in binary form must reproduce the above copyright 15045 * notice, this list of conditions and the following disclaimer in the 15046 * documentation and/or other materials provided with the distribution. 15047 * 3. All advertising materials mentioning features or use of this software 15048 * must display the following acknowledgement: 15049 * "This product includes cryptographic software written by 15050 * Eric Young (eay@cryptsoft.com)" 15051 * The word 'cryptographic' can be left out if the rouines from the library 15052 * being used are not cryptographic related :-). 15053 * 4. If you include any Windows specific code (or a derivative thereof) from 15054 * the apps directory (application code) you must include an acknowledgement: 15055 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 15056 * 15057 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 15058 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15059 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15060 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15061 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 15062 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 15063 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15064 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 15065 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 15066 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 15067 * SUCH DAMAGE. 15068 * 15069 * The licence and distribution terms for any publically available version or 15070 * derivative of this code cannot be changed. i.e. this code cannot simply be 15071 * copied and put under another distribution licence 15072 * [including the GNU Public Licence.] 15073 */ 15074 # 79 "/usr/include/openssl/x509.h" 2 3 4 15075 # 1 "/usr/include/openssl/asn1.h" 1 3 4 15076 /* crypto/asn1/asn1.h */ 15077 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 15078 * All rights reserved. 15079 * 15080 * This package is an SSL implementation written 15081 * by Eric Young (eay@cryptsoft.com). 15082 * The implementation was written so as to conform with Netscapes SSL. 15083 * 15084 * This library is free for commercial and non-commercial use as long as 15085 * the following conditions are aheared to. The following conditions 15086 * apply to all code found in this distribution, be it the RC4, RSA, 15087 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15088 * included with this distribution is covered by the same copyright terms 15089 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15090 * 15091 * Copyright remains Eric Young's, and as such any Copyright notices in 15092 * the code are not to be removed. 15093 * If this package is used in a product, Eric Young should be given attribution 15094 * as the author of the parts of the library used. 15095 * This can be in the form of a textual message at program startup or 15096 * in documentation (online or textual) provided with the package. 15097 * 15098 * Redistribution and use in source and binary forms, with or without 15099 * modification, are permitted provided that the following conditions 15100 * are met: 15101 * 1. Redistributions of source code must retain the copyright 15102 * notice, this list of conditions and the following disclaimer. 15103 * 2. Redistributions in binary form must reproduce the above copyright 15104 * notice, this list of conditions and the following disclaimer in the 15105 * documentation and/or other materials provided with the distribution. 15106 * 3. All advertising materials mentioning features or use of this software 15107 * must display the following acknowledgement: 15108 * "This product includes cryptographic software written by 15109 * Eric Young (eay@cryptsoft.com)" 15110 * The word 'cryptographic' can be left out if the rouines from the library 15111 * being used are not cryptographic related :-). 15112 * 4. If you include any Windows specific code (or a derivative thereof) from 15113 * the apps directory (application code) you must include an acknowledgement: 15114 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 15115 * 15116 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 15117 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15118 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15119 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15120 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 15121 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 15122 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15123 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 15124 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 15125 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 15126 * SUCH DAMAGE. 15127 * 15128 * The licence and distribution terms for any publically available version or 15129 * derivative of this code cannot be changed. i.e. this code cannot simply be 15130 * copied and put under another distribution licence 15131 * [including the GNU Public Licence.] 15132 */ 15133 # 80 "/usr/include/openssl/x509.h" 2 3 4 15134 # 1 "/usr/include/openssl/safestack.h" 1 3 4 15135 /* ==================================================================== 15136 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 15137 * 15138 * Redistribution and use in source and binary forms, with or without 15139 * modification, are permitted provided that the following conditions 15140 * are met: 15141 * 15142 * 1. Redistributions of source code must retain the above copyright 15143 * notice, this list of conditions and the following disclaimer. 15144 * 15145 * 2. Redistributions in binary form must reproduce the above copyright 15146 * notice, this list of conditions and the following disclaimer in 15147 * the documentation and/or other materials provided with the 15148 * distribution. 15149 * 15150 * 3. All advertising materials mentioning features or use of this 15151 * software must display the following acknowledgment: 15152 * "This product includes software developed by the OpenSSL Project 15153 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15154 * 15155 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15156 * endorse or promote products derived from this software without 15157 * prior written permission. For written permission, please contact 15158 * openssl-core@openssl.org. 15159 * 15160 * 5. Products derived from this software may not be called "OpenSSL" 15161 * nor may "OpenSSL" appear in their names without prior written 15162 * permission of the OpenSSL Project. 15163 * 15164 * 6. Redistributions of any form whatsoever must retain the following 15165 * acknowledgment: 15166 * "This product includes software developed by the OpenSSL Project 15167 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15168 * 15169 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15170 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15171 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15172 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15173 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15174 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15175 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15176 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15177 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15178 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15179 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15180 * OF THE POSSIBILITY OF SUCH DAMAGE. 15181 * ==================================================================== 15182 * 15183 * This product includes cryptographic software written by Eric Young 15184 * (eay@cryptsoft.com). This product includes software written by Tim 15185 * Hudson (tjh@cryptsoft.com). 15186 * 15187 */ 15188 # 81 "/usr/include/openssl/x509.h" 2 3 4 15189 15190 15191 # 1 "/usr/include/openssl/ec.h" 1 3 4 15192 /* crypto/ec/ec.h */ 15193 /* 15194 * Originally written by Bodo Moeller for the OpenSSL project. 15195 */ 15196 /** 15197 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 15198 * \author Originally written by Bodo Moeller for the OpenSSL project 15199 */ 15200 /* ==================================================================== 15201 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 15202 * 15203 * Redistribution and use in source and binary forms, with or without 15204 * modification, are permitted provided that the following conditions 15205 * are met: 15206 * 15207 * 1. Redistributions of source code must retain the above copyright 15208 * notice, this list of conditions and the following disclaimer. 15209 * 15210 * 2. Redistributions in binary form must reproduce the above copyright 15211 * notice, this list of conditions and the following disclaimer in 15212 * the documentation and/or other materials provided with the 15213 * distribution. 15214 * 15215 * 3. All advertising materials mentioning features or use of this 15216 * software must display the following acknowledgment: 15217 * "This product includes software developed by the OpenSSL Project 15218 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15219 * 15220 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15221 * endorse or promote products derived from this software without 15222 * prior written permission. For written permission, please contact 15223 * openssl-core@openssl.org. 15224 * 15225 * 5. Products derived from this software may not be called "OpenSSL" 15226 * nor may "OpenSSL" appear in their names without prior written 15227 * permission of the OpenSSL Project. 15228 * 15229 * 6. Redistributions of any form whatsoever must retain the following 15230 * acknowledgment: 15231 * "This product includes software developed by the OpenSSL Project 15232 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15233 * 15234 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15235 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15236 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15237 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15238 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15239 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15240 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15241 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15242 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15243 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15244 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15245 * OF THE POSSIBILITY OF SUCH DAMAGE. 15246 * ==================================================================== 15247 * 15248 * This product includes cryptographic software written by Eric Young 15249 * (eay@cryptsoft.com). This product includes software written by Tim 15250 * Hudson (tjh@cryptsoft.com). 15251 * 15252 */ 15253 /* ==================================================================== 15254 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15255 * 15256 * Portions of the attached software ("Contribution") are developed by 15257 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 15258 * 15259 * The Contribution is licensed pursuant to the OpenSSL open source 15260 * license provided above. 15261 * 15262 * The elliptic curve binary polynomial software is originally written by 15263 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 15264 * 15265 */ 15266 15267 15268 15269 15270 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 15271 /* opensslconf.h */ 15272 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 15273 15274 15275 15276 15277 /* OpenSSL was configured with the following options: */ 15278 # 108 "/usr/include/openssl/opensslconf.h" 3 4 15279 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 15280 asks for it. This is a transient feature that is provided for those 15281 who haven't had the time to do the appropriate changes in their 15282 applications. */ 15283 # 204 "/usr/include/openssl/opensslconf.h" 3 4 15284 /* crypto/opensslconf.h.in */ 15285 15286 /* Generate 80386 code? */ 15287 # 80 "/usr/include/openssl/ec.h" 2 3 4 15288 15289 15290 15291 15292 15293 # 1 "/usr/include/openssl/asn1.h" 1 3 4 15294 /* crypto/asn1/asn1.h */ 15295 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 15296 * All rights reserved. 15297 * 15298 * This package is an SSL implementation written 15299 * by Eric Young (eay@cryptsoft.com). 15300 * The implementation was written so as to conform with Netscapes SSL. 15301 * 15302 * This library is free for commercial and non-commercial use as long as 15303 * the following conditions are aheared to. The following conditions 15304 * apply to all code found in this distribution, be it the RC4, RSA, 15305 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15306 * included with this distribution is covered by the same copyright terms 15307 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15308 * 15309 * Copyright remains Eric Young's, and as such any Copyright notices in 15310 * the code are not to be removed. 15311 * If this package is used in a product, Eric Young should be given attribution 15312 * as the author of the parts of the library used. 15313 * This can be in the form of a textual message at program startup or 15314 * in documentation (online or textual) provided with the package. 15315 * 15316 * Redistribution and use in source and binary forms, with or without 15317 * modification, are permitted provided that the following conditions 15318 * are met: 15319 * 1. Redistributions of source code must retain the copyright 15320 * notice, this list of conditions and the following disclaimer. 15321 * 2. Redistributions in binary form must reproduce the above copyright 15322 * notice, this list of conditions and the following disclaimer in the 15323 * documentation and/or other materials provided with the distribution. 15324 * 3. All advertising materials mentioning features or use of this software 15325 * must display the following acknowledgement: 15326 * "This product includes cryptographic software written by 15327 * Eric Young (eay@cryptsoft.com)" 15328 * The word 'cryptographic' can be left out if the rouines from the library 15329 * being used are not cryptographic related :-). 15330 * 4. If you include any Windows specific code (or a derivative thereof) from 15331 * the apps directory (application code) you must include an acknowledgement: 15332 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 15333 * 15334 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 15335 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15336 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15337 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15338 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 15339 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 15340 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15341 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 15342 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 15343 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 15344 * SUCH DAMAGE. 15345 * 15346 * The licence and distribution terms for any publically available version or 15347 * derivative of this code cannot be changed. i.e. this code cannot simply be 15348 * copied and put under another distribution licence 15349 * [including the GNU Public Licence.] 15350 */ 15351 # 86 "/usr/include/openssl/ec.h" 2 3 4 15352 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 15353 /* ==================================================================== 15354 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 15355 * 15356 * Redistribution and use in source and binary forms, with or without 15357 * modification, are permitted provided that the following conditions 15358 * are met: 15359 * 15360 * 1. Redistributions of source code must retain the above copyright 15361 * notice, this list of conditions and the following disclaimer. 15362 * 15363 * 2. Redistributions in binary form must reproduce the above copyright 15364 * notice, this list of conditions and the following disclaimer in 15365 * the documentation and/or other materials provided with the 15366 * distribution. 15367 * 15368 * 3. All advertising materials mentioning features or use of this 15369 * software must display the following acknowledgment: 15370 * "This product includes software developed by the OpenSSL Project 15371 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15372 * 15373 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15374 * endorse or promote products derived from this software without 15375 * prior written permission. For written permission, please contact 15376 * openssl-core@openssl.org. 15377 * 15378 * 5. Products derived from this software may not be called "OpenSSL" 15379 * nor may "OpenSSL" appear in their names without prior written 15380 * permission of the OpenSSL Project. 15381 * 15382 * 6. Redistributions of any form whatsoever must retain the following 15383 * acknowledgment: 15384 * "This product includes software developed by the OpenSSL Project 15385 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15386 * 15387 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15388 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15389 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15390 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15391 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15392 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15393 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15394 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15395 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15396 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15397 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15398 * OF THE POSSIBILITY OF SUCH DAMAGE. 15399 * ==================================================================== 15400 * 15401 * This product includes cryptographic software written by Eric Young 15402 * (eay@cryptsoft.com). This product includes software written by Tim 15403 * Hudson (tjh@cryptsoft.com). 15404 * 15405 */ 15406 # 87 "/usr/include/openssl/ec.h" 2 3 4 15407 15408 # 1 "/usr/include/openssl/bn.h" 1 3 4 15409 /* crypto/bn/bn.h */ 15410 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 15411 * All rights reserved. 15412 * 15413 * This package is an SSL implementation written 15414 * by Eric Young (eay@cryptsoft.com). 15415 * The implementation was written so as to conform with Netscapes SSL. 15416 * 15417 * This library is free for commercial and non-commercial use as long as 15418 * the following conditions are aheared to. The following conditions 15419 * apply to all code found in this distribution, be it the RC4, RSA, 15420 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15421 * included with this distribution is covered by the same copyright terms 15422 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15423 * 15424 * Copyright remains Eric Young's, and as such any Copyright notices in 15425 * the code are not to be removed. 15426 * If this package is used in a product, Eric Young should be given attribution 15427 * as the author of the parts of the library used. 15428 * This can be in the form of a textual message at program startup or 15429 * in documentation (online or textual) provided with the package. 15430 * 15431 * Redistribution and use in source and binary forms, with or without 15432 * modification, are permitted provided that the following conditions 15433 * are met: 15434 * 1. Redistributions of source code must retain the copyright 15435 * notice, this list of conditions and the following disclaimer. 15436 * 2. Redistributions in binary form must reproduce the above copyright 15437 * notice, this list of conditions and the following disclaimer in the 15438 * documentation and/or other materials provided with the distribution. 15439 * 3. All advertising materials mentioning features or use of this software 15440 * must display the following acknowledgement: 15441 * "This product includes cryptographic software written by 15442 * Eric Young (eay@cryptsoft.com)" 15443 * The word 'cryptographic' can be left out if the rouines from the library 15444 * being used are not cryptographic related :-). 15445 * 4. If you include any Windows specific code (or a derivative thereof) from 15446 * the apps directory (application code) you must include an acknowledgement: 15447 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 15448 * 15449 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 15450 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15451 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 15452 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 15453 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 15454 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 15455 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15456 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 15457 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 15458 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 15459 * SUCH DAMAGE. 15460 * 15461 * The licence and distribution terms for any publically available version or 15462 * derivative of this code cannot be changed. i.e. this code cannot simply be 15463 * copied and put under another distribution licence 15464 * [including the GNU Public Licence.] 15465 */ 15466 /* ==================================================================== 15467 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 15468 * 15469 * Redistribution and use in source and binary forms, with or without 15470 * modification, are permitted provided that the following conditions 15471 * are met: 15472 * 15473 * 1. Redistributions of source code must retain the above copyright 15474 * notice, this list of conditions and the following disclaimer. 15475 * 15476 * 2. Redistributions in binary form must reproduce the above copyright 15477 * notice, this list of conditions and the following disclaimer in 15478 * the documentation and/or other materials provided with the 15479 * distribution. 15480 * 15481 * 3. All advertising materials mentioning features or use of this 15482 * software must display the following acknowledgment: 15483 * "This product includes software developed by the OpenSSL Project 15484 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 15485 * 15486 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 15487 * endorse or promote products derived from this software without 15488 * prior written permission. For written permission, please contact 15489 * openssl-core@openssl.org. 15490 * 15491 * 5. Products derived from this software may not be called "OpenSSL" 15492 * nor may "OpenSSL" appear in their names without prior written 15493 * permission of the OpenSSL Project. 15494 * 15495 * 6. Redistributions of any form whatsoever must retain the following 15496 * acknowledgment: 15497 * "This product includes software developed by the OpenSSL Project 15498 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 15499 * 15500 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 15501 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15502 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15503 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 15504 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 15505 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 15506 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 15507 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 15508 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 15509 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 15510 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 15511 * OF THE POSSIBILITY OF SUCH DAMAGE. 15512 * ==================================================================== 15513 * 15514 * This product includes cryptographic software written by Eric Young 15515 * (eay@cryptsoft.com). This product includes software written by Tim 15516 * Hudson (tjh@cryptsoft.com). 15517 * 15518 */ 15519 /* ==================================================================== 15520 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 15521 * 15522 * Portions of the attached software ("Contribution") are developed by 15523 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 15524 * 15525 * The Contribution is licensed pursuant to the Eric Young open source 15526 * license provided above. 15527 * 15528 * The binary polynomial arithmetic software is originally written by 15529 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 15530 * 15531 */ 15532 # 89 "/usr/include/openssl/ec.h" 2 3 4 15533 # 103 "/usr/include/openssl/ec.h" 3 4 15534 /** Enum for the point conversion form as defined in X9.62 (ECDSA) 15535 * for the encoding of a elliptic curve point (x,y) */ 15536 typedef enum { 15537 /** the point is encoded as z||x, where the octet z specifies 15538 * which solution of the quadratic equation y is */ 15539 POINT_CONVERSION_COMPRESSED = 2, 15540 /** the point is encoded as z||x||y, where z is the octet 0x04 */ 15541 POINT_CONVERSION_UNCOMPRESSED = 4, 15542 /** the point is encoded as z||x||y, where the octet z specifies 15543 * which solution of the quadratic equation y is */ 15544 POINT_CONVERSION_HYBRID = 6 15545 } point_conversion_form_t; 15546 15547 typedef struct ec_method_st EC_METHOD; 15548 15549 typedef struct ec_group_st 15550 /*- 15551 EC_METHOD *meth; 15552 -- field definition 15553 -- curve coefficients 15554 -- optional generator with associated information (order, cofactor) 15555 -- optional extra data (precomputed table for fast computation of multiples of generator) 15556 -- ASN1 stuff 15557 */ 15558 EC_GROUP; 15559 15560 typedef struct ec_point_st EC_POINT; 15561 15562 /********************************************************************/ 15563 /* EC_METHODs for curves over GF(p) */ 15564 /********************************************************************/ 15565 15566 /** Returns the basic GFp ec methods which provides the basis for the 15567 * optimized methods. 15568 * \return EC_METHOD object 15569 */ 15570 const EC_METHOD *EC_GFp_simple_method(void); 15571 15572 /** Returns GFp methods using montgomery multiplication. 15573 * \return EC_METHOD object 15574 */ 15575 const EC_METHOD *EC_GFp_mont_method(void); 15576 15577 /** Returns GFp methods using optimized methods for NIST recommended curves 15578 * \return EC_METHOD object 15579 */ 15580 const EC_METHOD *EC_GFp_nist_method(void); 15581 # 169 "/usr/include/openssl/ec.h" 3 4 15582 /********************************************************************/ 15583 /* EC_METHOD for curves over GF(2^m) */ 15584 /********************************************************************/ 15585 15586 /** Returns the basic GF2m ec method 15587 * \return EC_METHOD object 15588 */ 15589 const EC_METHOD *EC_GF2m_simple_method(void); 15590 15591 15592 15593 /********************************************************************/ 15594 /* EC_GROUP functions */ 15595 /********************************************************************/ 15596 15597 /** Creates a new EC_GROUP object 15598 * \param meth EC_METHOD to use 15599 * \return newly created EC_GROUP object or NULL in case of an error. 15600 */ 15601 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); 15602 15603 /** Frees a EC_GROUP object 15604 * \param group EC_GROUP object to be freed. 15605 */ 15606 void EC_GROUP_free(EC_GROUP *group); 15607 15608 /** Clears and frees a EC_GROUP object 15609 * \param group EC_GROUP object to be cleared and freed. 15610 */ 15611 void EC_GROUP_clear_free(EC_GROUP *group); 15612 15613 /** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. 15614 * \param dst destination EC_GROUP object 15615 * \param src source EC_GROUP object 15616 * \return 1 on success and 0 if an error occurred. 15617 */ 15618 int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); 15619 15620 /** Creates a new EC_GROUP object and copies the copies the content 15621 * form src to the newly created EC_KEY object 15622 * \param src source EC_GROUP object 15623 * \return newly created EC_GROUP object or NULL in case of an error. 15624 */ 15625 EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); 15626 15627 /** Returns the EC_METHOD of the EC_GROUP object. 15628 * \param group EC_GROUP object 15629 * \return EC_METHOD used in this EC_GROUP object. 15630 */ 15631 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); 15632 15633 /** Returns the field type of the EC_METHOD. 15634 * \param meth EC_METHOD object 15635 * \return NID of the underlying field type OID. 15636 */ 15637 int EC_METHOD_get_field_type(const EC_METHOD *meth); 15638 15639 /** Sets the generator and it's order/cofactor of a EC_GROUP object. 15640 * \param group EC_GROUP object 15641 * \param generator EC_POINT object with the generator. 15642 * \param order the order of the group generated by the generator. 15643 * \param cofactor the index of the sub-group generated by the generator 15644 * in the group of all points on the elliptic curve. 15645 * \return 1 on success and 0 if an error occured 15646 */ 15647 int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, 15648 const BIGNUM *order, const BIGNUM *cofactor); 15649 15650 /** Returns the generator of a EC_GROUP object. 15651 * \param group EC_GROUP object 15652 * \return the currently used generator (possibly NULL). 15653 */ 15654 const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); 15655 15656 /** Returns the montgomery data for order(Generator) 15657 * \param group EC_GROUP object 15658 * \return the currently used generator (possibly NULL). 15659 */ 15660 BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); 15661 15662 /** Gets the order of a EC_GROUP 15663 * \param group EC_GROUP object 15664 * \param order BIGNUM to which the order is copied 15665 * \param ctx BN_CTX object (optional) 15666 * \return 1 on success and 0 if an error occured 15667 */ 15668 int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); 15669 15670 /** Gets the cofactor of a EC_GROUP 15671 * \param group EC_GROUP object 15672 * \param cofactor BIGNUM to which the cofactor is copied 15673 * \param ctx BN_CTX object (optional) 15674 * \return 1 on success and 0 if an error occured 15675 */ 15676 int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, 15677 BN_CTX *ctx); 15678 15679 /** Sets the name of a EC_GROUP object 15680 * \param group EC_GROUP object 15681 * \param nid NID of the curve name OID 15682 */ 15683 void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); 15684 15685 /** Returns the curve name of a EC_GROUP object 15686 * \param group EC_GROUP object 15687 * \return NID of the curve name OID or 0 if not set. 15688 */ 15689 int EC_GROUP_get_curve_name(const EC_GROUP *group); 15690 15691 void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); 15692 int EC_GROUP_get_asn1_flag(const EC_GROUP *group); 15693 15694 void EC_GROUP_set_point_conversion_form(EC_GROUP *group, 15695 point_conversion_form_t form); 15696 point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); 15697 15698 unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); 15699 size_t EC_GROUP_get_seed_len(const EC_GROUP *); 15700 size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); 15701 15702 /** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b 15703 * \param group EC_GROUP object 15704 * \param p BIGNUM with the prime number 15705 * \param a BIGNUM with parameter a of the equation 15706 * \param b BIGNUM with parameter b of the equation 15707 * \param ctx BN_CTX object (optional) 15708 * \return 1 on success and 0 if an error occured 15709 */ 15710 int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, 15711 const BIGNUM *b, BN_CTX *ctx); 15712 15713 /** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b 15714 * \param group EC_GROUP object 15715 * \param p BIGNUM for the prime number 15716 * \param a BIGNUM for parameter a of the equation 15717 * \param b BIGNUM for parameter b of the equation 15718 * \param ctx BN_CTX object (optional) 15719 * \return 1 on success and 0 if an error occured 15720 */ 15721 int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, 15722 BIGNUM *b, BN_CTX *ctx); 15723 15724 15725 /** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b 15726 * \param group EC_GROUP object 15727 * \param p BIGNUM with the polynomial defining the underlying field 15728 * \param a BIGNUM with parameter a of the equation 15729 * \param b BIGNUM with parameter b of the equation 15730 * \param ctx BN_CTX object (optional) 15731 * \return 1 on success and 0 if an error occured 15732 */ 15733 int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, 15734 const BIGNUM *b, BN_CTX *ctx); 15735 15736 /** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b 15737 * \param group EC_GROUP object 15738 * \param p BIGNUM for the polynomial defining the underlying field 15739 * \param a BIGNUM for parameter a of the equation 15740 * \param b BIGNUM for parameter b of the equation 15741 * \param ctx BN_CTX object (optional) 15742 * \return 1 on success and 0 if an error occured 15743 */ 15744 int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, 15745 BIGNUM *b, BN_CTX *ctx); 15746 15747 /** Returns the number of bits needed to represent a field element 15748 * \param group EC_GROUP object 15749 * \return number of bits needed to represent a field element 15750 */ 15751 int EC_GROUP_get_degree(const EC_GROUP *group); 15752 15753 /** Checks whether the parameter in the EC_GROUP define a valid ec group 15754 * \param group EC_GROUP object 15755 * \param ctx BN_CTX object (optional) 15756 * \return 1 if group is a valid ec group and 0 otherwise 15757 */ 15758 int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); 15759 15760 /** Checks whether the discriminant of the elliptic curve is zero or not 15761 * \param group EC_GROUP object 15762 * \param ctx BN_CTX object (optional) 15763 * \return 1 if the discriminant is not zero and 0 otherwise 15764 */ 15765 int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); 15766 15767 /** Compares two EC_GROUP objects 15768 * \param a first EC_GROUP object 15769 * \param b second EC_GROUP object 15770 * \param ctx BN_CTX object (optional) 15771 * \return 0 if both groups are equal and 1 otherwise 15772 */ 15773 int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); 15774 15775 /* 15776 * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after 15777 * choosing an appropriate EC_METHOD 15778 */ 15779 15780 /** Creates a new EC_GROUP object with the specified parameters defined 15781 * over GFp (defined by the equation y^2 = x^3 + a*x + b) 15782 * \param p BIGNUM with the prime number 15783 * \param a BIGNUM with the parameter a of the equation 15784 * \param b BIGNUM with the parameter b of the equation 15785 * \param ctx BN_CTX object (optional) 15786 * \return newly created EC_GROUP object with the specified parameters 15787 */ 15788 EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, 15789 const BIGNUM *b, BN_CTX *ctx); 15790 15791 /** Creates a new EC_GROUP object with the specified parameters defined 15792 * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) 15793 * \param p BIGNUM with the polynomial defining the underlying field 15794 * \param a BIGNUM with the parameter a of the equation 15795 * \param b BIGNUM with the parameter b of the equation 15796 * \param ctx BN_CTX object (optional) 15797 * \return newly created EC_GROUP object with the specified parameters 15798 */ 15799 EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, 15800 const BIGNUM *b, BN_CTX *ctx); 15801 15802 /** Creates a EC_GROUP object with a curve specified by a NID 15803 * \param nid NID of the OID of the curve name 15804 * \return newly created EC_GROUP object with specified curve or NULL 15805 * if an error occurred 15806 */ 15807 EC_GROUP *EC_GROUP_new_by_curve_name(int nid); 15808 15809 /********************************************************************/ 15810 /* handling of internal curves */ 15811 /********************************************************************/ 15812 15813 typedef struct { 15814 int nid; 15815 const char *comment; 15816 } EC_builtin_curve; 15817 15818 /* 15819 * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all 15820 * available curves or zero if a error occurred. In case r ist not zero 15821 * nitems EC_builtin_curve structures are filled with the data of the first 15822 * nitems internal groups 15823 */ 15824 size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); 15825 15826 const char *EC_curve_nid2nist(int nid); 15827 int EC_curve_nist2nid(const char *name); 15828 15829 /********************************************************************/ 15830 /* EC_POINT functions */ 15831 /********************************************************************/ 15832 15833 /** Creates a new EC_POINT object for the specified EC_GROUP 15834 * \param group EC_GROUP the underlying EC_GROUP object 15835 * \return newly created EC_POINT object or NULL if an error occurred 15836 */ 15837 EC_POINT *EC_POINT_new(const EC_GROUP *group); 15838 15839 /** Frees a EC_POINT object 15840 * \param point EC_POINT object to be freed 15841 */ 15842 void EC_POINT_free(EC_POINT *point); 15843 15844 /** Clears and frees a EC_POINT object 15845 * \param point EC_POINT object to be cleared and freed 15846 */ 15847 void EC_POINT_clear_free(EC_POINT *point); 15848 15849 /** Copies EC_POINT object 15850 * \param dst destination EC_POINT object 15851 * \param src source EC_POINT object 15852 * \return 1 on success and 0 if an error occured 15853 */ 15854 int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); 15855 15856 /** Creates a new EC_POINT object and copies the content of the supplied 15857 * EC_POINT 15858 * \param src source EC_POINT object 15859 * \param group underlying the EC_GROUP object 15860 * \return newly created EC_POINT object or NULL if an error occurred 15861 */ 15862 EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); 15863 15864 /** Returns the EC_METHOD used in EC_POINT object 15865 * \param point EC_POINT object 15866 * \return the EC_METHOD used 15867 */ 15868 const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); 15869 15870 /** Sets a point to infinity (neutral element) 15871 * \param group underlying EC_GROUP object 15872 * \param point EC_POINT to set to infinity 15873 * \return 1 on success and 0 if an error occured 15874 */ 15875 int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); 15876 15877 /** Sets the jacobian projective coordinates of a EC_POINT over GFp 15878 * \param group underlying EC_GROUP object 15879 * \param p EC_POINT object 15880 * \param x BIGNUM with the x-coordinate 15881 * \param y BIGNUM with the y-coordinate 15882 * \param z BIGNUM with the z-coordinate 15883 * \param ctx BN_CTX object (optional) 15884 * \return 1 on success and 0 if an error occured 15885 */ 15886 int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, 15887 EC_POINT *p, const BIGNUM *x, 15888 const BIGNUM *y, const BIGNUM *z, 15889 BN_CTX *ctx); 15890 15891 /** Gets the jacobian projective coordinates of a EC_POINT over GFp 15892 * \param group underlying EC_GROUP object 15893 * \param p EC_POINT object 15894 * \param x BIGNUM for the x-coordinate 15895 * \param y BIGNUM for the y-coordinate 15896 * \param z BIGNUM for the z-coordinate 15897 * \param ctx BN_CTX object (optional) 15898 * \return 1 on success and 0 if an error occured 15899 */ 15900 int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, 15901 const EC_POINT *p, BIGNUM *x, 15902 BIGNUM *y, BIGNUM *z, 15903 BN_CTX *ctx); 15904 15905 /** Sets the affine coordinates of a EC_POINT over GFp 15906 * \param group underlying EC_GROUP object 15907 * \param p EC_POINT object 15908 * \param x BIGNUM with the x-coordinate 15909 * \param y BIGNUM with the y-coordinate 15910 * \param ctx BN_CTX object (optional) 15911 * \return 1 on success and 0 if an error occured 15912 */ 15913 int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, 15914 const BIGNUM *x, const BIGNUM *y, 15915 BN_CTX *ctx); 15916 15917 /** Gets the affine coordinates of a EC_POINT over GFp 15918 * \param group underlying EC_GROUP object 15919 * \param p EC_POINT object 15920 * \param x BIGNUM for the x-coordinate 15921 * \param y BIGNUM for the y-coordinate 15922 * \param ctx BN_CTX object (optional) 15923 * \return 1 on success and 0 if an error occured 15924 */ 15925 int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, 15926 const EC_POINT *p, BIGNUM *x, 15927 BIGNUM *y, BN_CTX *ctx); 15928 15929 /** Sets the x9.62 compressed coordinates of a EC_POINT over GFp 15930 * \param group underlying EC_GROUP object 15931 * \param p EC_POINT object 15932 * \param x BIGNUM with x-coordinate 15933 * \param y_bit integer with the y-Bit (either 0 or 1) 15934 * \param ctx BN_CTX object (optional) 15935 * \return 1 on success and 0 if an error occured 15936 */ 15937 int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, 15938 EC_POINT *p, const BIGNUM *x, 15939 int y_bit, BN_CTX *ctx); 15940 15941 /** Sets the affine coordinates of a EC_POINT over GF2m 15942 * \param group underlying EC_GROUP object 15943 * \param p EC_POINT object 15944 * \param x BIGNUM with the x-coordinate 15945 * \param y BIGNUM with the y-coordinate 15946 * \param ctx BN_CTX object (optional) 15947 * \return 1 on success and 0 if an error occured 15948 */ 15949 int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, 15950 const BIGNUM *x, const BIGNUM *y, 15951 BN_CTX *ctx); 15952 15953 /** Gets the affine coordinates of a EC_POINT over GF2m 15954 * \param group underlying EC_GROUP object 15955 * \param p EC_POINT object 15956 * \param x BIGNUM for the x-coordinate 15957 * \param y BIGNUM for the y-coordinate 15958 * \param ctx BN_CTX object (optional) 15959 * \return 1 on success and 0 if an error occured 15960 */ 15961 int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, 15962 const EC_POINT *p, BIGNUM *x, 15963 BIGNUM *y, BN_CTX *ctx); 15964 15965 /** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m 15966 * \param group underlying EC_GROUP object 15967 * \param p EC_POINT object 15968 * \param x BIGNUM with x-coordinate 15969 * \param y_bit integer with the y-Bit (either 0 or 1) 15970 * \param ctx BN_CTX object (optional) 15971 * \return 1 on success and 0 if an error occured 15972 */ 15973 int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, 15974 EC_POINT *p, const BIGNUM *x, 15975 int y_bit, BN_CTX *ctx); 15976 15977 /** Encodes a EC_POINT object to a octet string 15978 * \param group underlying EC_GROUP object 15979 * \param p EC_POINT object 15980 * \param form point conversion form 15981 * \param buf memory buffer for the result. If NULL the function returns 15982 * required buffer size. 15983 * \param len length of the memory buffer 15984 * \param ctx BN_CTX object (optional) 15985 * \return the length of the encoded octet string or 0 if an error occurred 15986 */ 15987 size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, 15988 point_conversion_form_t form, 15989 unsigned char *buf, size_t len, BN_CTX *ctx); 15990 15991 /** Decodes a EC_POINT from a octet string 15992 * \param group underlying EC_GROUP object 15993 * \param p EC_POINT object 15994 * \param buf memory buffer with the encoded ec point 15995 * \param len length of the encoded ec point 15996 * \param ctx BN_CTX object (optional) 15997 * \return 1 on success and 0 if an error occured 15998 */ 15999 int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, 16000 const unsigned char *buf, size_t len, BN_CTX *ctx); 16001 16002 /* other interfaces to point2oct/oct2point: */ 16003 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, 16004 point_conversion_form_t form, BIGNUM *, BN_CTX *); 16005 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, 16006 EC_POINT *, BN_CTX *); 16007 char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, 16008 point_conversion_form_t form, BN_CTX *); 16009 EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, 16010 EC_POINT *, BN_CTX *); 16011 16012 /********************************************************************/ 16013 /* functions for doing EC_POINT arithmetic */ 16014 /********************************************************************/ 16015 16016 /** Computes the sum of two EC_POINT 16017 * \param group underlying EC_GROUP object 16018 * \param r EC_POINT object for the result (r = a + b) 16019 * \param a EC_POINT object with the first summand 16020 * \param b EC_POINT object with the second summand 16021 * \param ctx BN_CTX object (optional) 16022 * \return 1 on success and 0 if an error occured 16023 */ 16024 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 16025 const EC_POINT *b, BN_CTX *ctx); 16026 16027 /** Computes the double of a EC_POINT 16028 * \param group underlying EC_GROUP object 16029 * \param r EC_POINT object for the result (r = 2 * a) 16030 * \param a EC_POINT object 16031 * \param ctx BN_CTX object (optional) 16032 * \return 1 on success and 0 if an error occured 16033 */ 16034 int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, 16035 BN_CTX *ctx); 16036 16037 /** Computes the inverse of a EC_POINT 16038 * \param group underlying EC_GROUP object 16039 * \param a EC_POINT object to be inverted (it's used for the result as well) 16040 * \param ctx BN_CTX object (optional) 16041 * \return 1 on success and 0 if an error occured 16042 */ 16043 int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); 16044 16045 /** Checks whether the point is the neutral element of the group 16046 * \param group the underlying EC_GROUP object 16047 * \param p EC_POINT object 16048 * \return 1 if the point is the neutral element and 0 otherwise 16049 */ 16050 int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); 16051 16052 /** Checks whether the point is on the curve 16053 * \param group underlying EC_GROUP object 16054 * \param point EC_POINT object to check 16055 * \param ctx BN_CTX object (optional) 16056 * \return 1 if point if on the curve and 0 otherwise 16057 */ 16058 int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, 16059 BN_CTX *ctx); 16060 16061 /** Compares two EC_POINTs 16062 * \param group underlying EC_GROUP object 16063 * \param a first EC_POINT object 16064 * \param b second EC_POINT object 16065 * \param ctx BN_CTX object (optional) 16066 * \return 0 if both points are equal and a value != 0 otherwise 16067 */ 16068 int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, 16069 BN_CTX *ctx); 16070 16071 int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); 16072 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, 16073 EC_POINT *points[], BN_CTX *ctx); 16074 16075 /** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i] 16076 * \param group underlying EC_GROUP object 16077 * \param r EC_POINT object for the result 16078 * \param n BIGNUM with the multiplier for the group generator (optional) 16079 * \param num number futher summands 16080 * \param p array of size num of EC_POINT objects 16081 * \param m array of size num of BIGNUM objects 16082 * \param ctx BN_CTX object (optional) 16083 * \return 1 on success and 0 if an error occured 16084 */ 16085 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, 16086 size_t num, const EC_POINT *p[], const BIGNUM *m[], 16087 BN_CTX *ctx); 16088 16089 /** Computes r = generator * n + q * m 16090 * \param group underlying EC_GROUP object 16091 * \param r EC_POINT object for the result 16092 * \param n BIGNUM with the multiplier for the group generator (optional) 16093 * \param q EC_POINT object with the first factor of the second summand 16094 * \param m BIGNUM with the second factor of the second summand 16095 * \param ctx BN_CTX object (optional) 16096 * \return 1 on success and 0 if an error occured 16097 */ 16098 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, 16099 const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); 16100 16101 /** Stores multiples of generator for faster point multiplication 16102 * \param group EC_GROUP object 16103 * \param ctx BN_CTX object (optional) 16104 * \return 1 on success and 0 if an error occured 16105 */ 16106 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); 16107 16108 /** Reports whether a precomputation has been done 16109 * \param group EC_GROUP object 16110 * \return 1 if a pre-computation has been done and 0 otherwise 16111 */ 16112 int EC_GROUP_have_precompute_mult(const EC_GROUP *group); 16113 16114 /********************************************************************/ 16115 /* ASN1 stuff */ 16116 /********************************************************************/ 16117 16118 /* 16119 * EC_GROUP_get_basis_type() returns the NID of the basis type used to 16120 * represent the field elements 16121 */ 16122 int EC_GROUP_get_basis_type(const EC_GROUP *); 16123 16124 int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); 16125 int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, 16126 unsigned int *k2, unsigned int *k3); 16127 16128 16129 16130 16131 typedef struct ecpk_parameters_st ECPKPARAMETERS; 16132 16133 EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); 16134 int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); 16135 # 731 "/usr/include/openssl/ec.h" 3 4 16136 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); 16137 16138 16139 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); 16140 16141 16142 /********************************************************************/ 16143 /* EC_KEY functions */ 16144 /********************************************************************/ 16145 16146 typedef struct ec_key_st EC_KEY; 16147 16148 /* some values for the encoding_flag */ 16149 16150 16151 16152 /* some values for the flags field */ 16153 16154 16155 16156 /** Creates a new EC_KEY object. 16157 * \return EC_KEY object or NULL if an error occurred. 16158 */ 16159 EC_KEY *EC_KEY_new(void); 16160 16161 int EC_KEY_get_flags(const EC_KEY *key); 16162 16163 void EC_KEY_set_flags(EC_KEY *key, int flags); 16164 16165 void EC_KEY_clear_flags(EC_KEY *key, int flags); 16166 16167 /** Creates a new EC_KEY object using a named curve as underlying 16168 * EC_GROUP object. 16169 * \param nid NID of the named curve. 16170 * \return EC_KEY object or NULL if an error occurred. 16171 */ 16172 EC_KEY *EC_KEY_new_by_curve_name(int nid); 16173 16174 /** Frees a EC_KEY object. 16175 * \param key EC_KEY object to be freed. 16176 */ 16177 void EC_KEY_free(EC_KEY *key); 16178 16179 /** Copies a EC_KEY object. 16180 * \param dst destination EC_KEY object 16181 * \param src src EC_KEY object 16182 * \return dst or NULL if an error occurred. 16183 */ 16184 EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); 16185 16186 /** Creates a new EC_KEY object and copies the content from src to it. 16187 * \param src the source EC_KEY object 16188 * \return newly created EC_KEY object or NULL if an error occurred. 16189 */ 16190 EC_KEY *EC_KEY_dup(const EC_KEY *src); 16191 16192 /** Increases the internal reference count of a EC_KEY object. 16193 * \param key EC_KEY object 16194 * \return 1 on success and 0 if an error occurred. 16195 */ 16196 int EC_KEY_up_ref(EC_KEY *key); 16197 16198 /** Returns the EC_GROUP object of a EC_KEY object 16199 * \param key EC_KEY object 16200 * \return the EC_GROUP object (possibly NULL). 16201 */ 16202 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); 16203 16204 /** Sets the EC_GROUP of a EC_KEY object. 16205 * \param key EC_KEY object 16206 * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY 16207 * object will use an own copy of the EC_GROUP). 16208 * \return 1 on success and 0 if an error occurred. 16209 */ 16210 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); 16211 16212 /** Returns the private key of a EC_KEY object. 16213 * \param key EC_KEY object 16214 * \return a BIGNUM with the private key (possibly NULL). 16215 */ 16216 const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); 16217 16218 /** Sets the private key of a EC_KEY object. 16219 * \param key EC_KEY object 16220 * \param prv BIGNUM with the private key (note: the EC_KEY object 16221 * will use an own copy of the BIGNUM). 16222 * \return 1 on success and 0 if an error occurred. 16223 */ 16224 int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); 16225 16226 /** Returns the public key of a EC_KEY object. 16227 * \param key the EC_KEY object 16228 * \return a EC_POINT object with the public key (possibly NULL) 16229 */ 16230 const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); 16231 16232 /** Sets the public key of a EC_KEY object. 16233 * \param key EC_KEY object 16234 * \param pub EC_POINT object with the public key (note: the EC_KEY object 16235 * will use an own copy of the EC_POINT object). 16236 * \return 1 on success and 0 if an error occurred. 16237 */ 16238 int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); 16239 16240 unsigned EC_KEY_get_enc_flags(const EC_KEY *key); 16241 void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); 16242 point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); 16243 void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); 16244 /* functions to set/get method specific data */ 16245 void *EC_KEY_get_key_method_data(EC_KEY *key, 16246 void *(*dup_func) (void *), 16247 void (*free_func) (void *), 16248 void (*clear_free_func) (void *)); 16249 /** Sets the key method data of an EC_KEY object, if none has yet been set. 16250 * \param key EC_KEY object 16251 * \param data opaque data to install. 16252 * \param dup_func a function that duplicates |data|. 16253 * \param free_func a function that frees |data|. 16254 * \param clear_free_func a function that wipes and frees |data|. 16255 * \return the previously set data pointer, or NULL if |data| was inserted. 16256 */ 16257 void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, 16258 void *(*dup_func) (void *), 16259 void (*free_func) (void *), 16260 void (*clear_free_func) (void *)); 16261 /* wrapper functions for the underlying EC_GROUP object */ 16262 void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); 16263 16264 /** Creates a table of pre-computed multiples of the generator to 16265 * accelerate further EC_KEY operations. 16266 * \param key EC_KEY object 16267 * \param ctx BN_CTX object (optional) 16268 * \return 1 on success and 0 if an error occurred. 16269 */ 16270 int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); 16271 16272 /** Creates a new ec private (and optional a new public) key. 16273 * \param key EC_KEY object 16274 * \return 1 on success and 0 if an error occurred. 16275 */ 16276 int EC_KEY_generate_key(EC_KEY *key); 16277 16278 /** Verifies that a private and/or public key is valid. 16279 * \param key the EC_KEY object 16280 * \return 1 on success and 0 otherwise. 16281 */ 16282 int EC_KEY_check_key(const EC_KEY *key); 16283 16284 /** Sets a public key from affine coordindates performing 16285 * neccessary NIST PKV tests. 16286 * \param key the EC_KEY object 16287 * \param x public key x coordinate 16288 * \param y public key y coordinate 16289 * \return 1 on success and 0 otherwise. 16290 */ 16291 int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, 16292 BIGNUM *y); 16293 16294 /********************************************************************/ 16295 /* de- and encoding functions for SEC1 ECPrivateKey */ 16296 /********************************************************************/ 16297 16298 /** Decodes a private key from a memory buffer. 16299 * \param key a pointer to a EC_KEY object which should be used (or NULL) 16300 * \param in pointer to memory with the DER encoded private key 16301 * \param len length of the DER encoded private key 16302 * \return the decoded private key or NULL if an error occurred. 16303 */ 16304 EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); 16305 16306 /** Encodes a private key object and stores the result in a buffer. 16307 * \param key the EC_KEY object to encode 16308 * \param out the buffer for the result (if NULL the function returns number 16309 * of bytes needed). 16310 * \return 1 on success and 0 if an error occurred. 16311 */ 16312 int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); 16313 16314 /********************************************************************/ 16315 /* de- and encoding functions for EC parameters */ 16316 /********************************************************************/ 16317 16318 /** Decodes ec parameter from a memory buffer. 16319 * \param key a pointer to a EC_KEY object which should be used (or NULL) 16320 * \param in pointer to memory with the DER encoded ec parameters 16321 * \param len length of the DER encoded ec parameters 16322 * \return a EC_KEY object with the decoded parameters or NULL if an error 16323 * occurred. 16324 */ 16325 EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); 16326 16327 /** Encodes ec parameter and stores the result in a buffer. 16328 * \param key the EC_KEY object with ec paramters to encode 16329 * \param out the buffer for the result (if NULL the function returns number 16330 * of bytes needed). 16331 * \return 1 on success and 0 if an error occurred. 16332 */ 16333 int i2d_ECParameters(EC_KEY *key, unsigned char **out); 16334 16335 /********************************************************************/ 16336 /* de- and encoding functions for EC public key */ 16337 /* (octet string, not DER -- hence 'o2i' and 'i2o') */ 16338 /********************************************************************/ 16339 16340 /** Decodes a ec public key from a octet string. 16341 * \param key a pointer to a EC_KEY object which should be used 16342 * \param in memory buffer with the encoded public key 16343 * \param len length of the encoded public key 16344 * \return EC_KEY object with decoded public key or NULL if an error 16345 * occurred. 16346 */ 16347 EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); 16348 16349 /** Encodes a ec public key in an octet string. 16350 * \param key the EC_KEY object with the public key 16351 * \param out the buffer for the result (if NULL the function returns number 16352 * of bytes needed). 16353 * \return 1 on success and 0 if an error occurred 16354 */ 16355 int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); 16356 16357 16358 /** Prints out the ec parameters on human readable form. 16359 * \param bp BIO object to which the information is printed 16360 * \param key EC_KEY object 16361 * \return 1 on success and 0 if an error occurred 16362 */ 16363 int ECParameters_print(BIO *bp, const EC_KEY *key); 16364 16365 /** Prints out the contents of a EC_KEY object 16366 * \param bp BIO object to which the information is printed 16367 * \param key EC_KEY object 16368 * \param off line offset 16369 * \return 1 on success and 0 if an error occurred 16370 */ 16371 int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); 16372 16373 16374 16375 /** Prints out the ec parameters on human readable form. 16376 * \param fp file descriptor to which the information is printed 16377 * \param key EC_KEY object 16378 * \return 1 on success and 0 if an error occurred 16379 */ 16380 int ECParameters_print_fp(FILE *fp, const EC_KEY *key); 16381 16382 /** Prints out the contents of a EC_KEY object 16383 * \param fp file descriptor to which the information is printed 16384 * \param key EC_KEY object 16385 * \param off line offset 16386 * \return 1 on success and 0 if an error occurred 16387 */ 16388 int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); 16389 # 1067 "/usr/include/openssl/ec.h" 3 4 16390 /* KDF types */ 16391 16392 16393 16394 /* BEGIN ERROR CODES */ 16395 /* 16396 * The following lines are auto generated by the script mkerr.pl. Any changes 16397 * made after this point may be overwritten when the script is next run. 16398 */ 16399 16400 void ERR_load_EC_strings(void); 16401 16402 /* Error codes for the EC functions. */ 16403 16404 /* Function codes. */ 16405 # 1227 "/usr/include/openssl/ec.h" 3 4 16406 /* Reason codes. */ 16407 # 84 "/usr/include/openssl/x509.h" 2 3 4 16408 16409 16410 16411 # 1 "/usr/include/openssl/ecdsa.h" 1 3 4 16412 /* crypto/ecdsa/ecdsa.h */ 16413 /** 16414 * \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions 16415 * \author Written by Nils Larsch for the OpenSSL project 16416 */ 16417 /* ==================================================================== 16418 * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. 16419 * 16420 * Redistribution and use in source and binary forms, with or without 16421 * modification, are permitted provided that the following conditions 16422 * are met: 16423 * 16424 * 1. Redistributions of source code must retain the above copyright 16425 * notice, this list of conditions and the following disclaimer. 16426 * 16427 * 2. Redistributions in binary form must reproduce the above copyright 16428 * notice, this list of conditions and the following disclaimer in 16429 * the documentation and/or other materials provided with the 16430 * distribution. 16431 * 16432 * 3. All advertising materials mentioning features or use of this 16433 * software must display the following acknowledgment: 16434 * "This product includes software developed by the OpenSSL Project 16435 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 16436 * 16437 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16438 * endorse or promote products derived from this software without 16439 * prior written permission. For written permission, please contact 16440 * licensing@OpenSSL.org. 16441 * 16442 * 5. Products derived from this software may not be called "OpenSSL" 16443 * nor may "OpenSSL" appear in their names without prior written 16444 * permission of the OpenSSL Project. 16445 * 16446 * 6. Redistributions of any form whatsoever must retain the following 16447 * acknowledgment: 16448 * "This product includes software developed by the OpenSSL Project 16449 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 16450 * 16451 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16452 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16453 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16454 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16455 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16456 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16457 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16458 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16459 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16460 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16461 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16462 * OF THE POSSIBILITY OF SUCH DAMAGE. 16463 * ==================================================================== 16464 * 16465 * This product includes cryptographic software written by Eric Young 16466 * (eay@cryptsoft.com). This product includes software written by Tim 16467 * Hudson (tjh@cryptsoft.com). 16468 * 16469 */ 16470 16471 16472 16473 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 16474 /* opensslconf.h */ 16475 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 16476 16477 16478 16479 16480 /* OpenSSL was configured with the following options: */ 16481 # 108 "/usr/include/openssl/opensslconf.h" 3 4 16482 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 16483 asks for it. This is a transient feature that is provided for those 16484 who haven't had the time to do the appropriate changes in their 16485 applications. */ 16486 # 204 "/usr/include/openssl/opensslconf.h" 3 4 16487 /* crypto/opensslconf.h.in */ 16488 16489 /* Generate 80386 code? */ 16490 # 63 "/usr/include/openssl/ecdsa.h" 2 3 4 16491 16492 16493 16494 16495 16496 # 1 "/usr/include/openssl/ec.h" 1 3 4 16497 /* crypto/ec/ec.h */ 16498 /* 16499 * Originally written by Bodo Moeller for the OpenSSL project. 16500 */ 16501 /** 16502 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 16503 * \author Originally written by Bodo Moeller for the OpenSSL project 16504 */ 16505 /* ==================================================================== 16506 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 16507 * 16508 * Redistribution and use in source and binary forms, with or without 16509 * modification, are permitted provided that the following conditions 16510 * are met: 16511 * 16512 * 1. Redistributions of source code must retain the above copyright 16513 * notice, this list of conditions and the following disclaimer. 16514 * 16515 * 2. Redistributions in binary form must reproduce the above copyright 16516 * notice, this list of conditions and the following disclaimer in 16517 * the documentation and/or other materials provided with the 16518 * distribution. 16519 * 16520 * 3. All advertising materials mentioning features or use of this 16521 * software must display the following acknowledgment: 16522 * "This product includes software developed by the OpenSSL Project 16523 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16524 * 16525 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16526 * endorse or promote products derived from this software without 16527 * prior written permission. For written permission, please contact 16528 * openssl-core@openssl.org. 16529 * 16530 * 5. Products derived from this software may not be called "OpenSSL" 16531 * nor may "OpenSSL" appear in their names without prior written 16532 * permission of the OpenSSL Project. 16533 * 16534 * 6. Redistributions of any form whatsoever must retain the following 16535 * acknowledgment: 16536 * "This product includes software developed by the OpenSSL Project 16537 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16538 * 16539 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16540 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16541 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16542 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16543 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16544 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16545 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16546 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16547 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16548 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16549 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16550 * OF THE POSSIBILITY OF SUCH DAMAGE. 16551 * ==================================================================== 16552 * 16553 * This product includes cryptographic software written by Eric Young 16554 * (eay@cryptsoft.com). This product includes software written by Tim 16555 * Hudson (tjh@cryptsoft.com). 16556 * 16557 */ 16558 /* ==================================================================== 16559 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16560 * 16561 * Portions of the attached software ("Contribution") are developed by 16562 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 16563 * 16564 * The Contribution is licensed pursuant to the OpenSSL open source 16565 * license provided above. 16566 * 16567 * The elliptic curve binary polynomial software is originally written by 16568 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 16569 * 16570 */ 16571 # 69 "/usr/include/openssl/ecdsa.h" 2 3 4 16572 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 16573 /* ==================================================================== 16574 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 16575 * 16576 * Redistribution and use in source and binary forms, with or without 16577 * modification, are permitted provided that the following conditions 16578 * are met: 16579 * 16580 * 1. Redistributions of source code must retain the above copyright 16581 * notice, this list of conditions and the following disclaimer. 16582 * 16583 * 2. Redistributions in binary form must reproduce the above copyright 16584 * notice, this list of conditions and the following disclaimer in 16585 * the documentation and/or other materials provided with the 16586 * distribution. 16587 * 16588 * 3. All advertising materials mentioning features or use of this 16589 * software must display the following acknowledgment: 16590 * "This product includes software developed by the OpenSSL Project 16591 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16592 * 16593 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16594 * endorse or promote products derived from this software without 16595 * prior written permission. For written permission, please contact 16596 * openssl-core@openssl.org. 16597 * 16598 * 5. Products derived from this software may not be called "OpenSSL" 16599 * nor may "OpenSSL" appear in their names without prior written 16600 * permission of the OpenSSL Project. 16601 * 16602 * 6. Redistributions of any form whatsoever must retain the following 16603 * acknowledgment: 16604 * "This product includes software developed by the OpenSSL Project 16605 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16606 * 16607 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16608 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16609 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16610 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16611 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16612 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16613 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16614 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16615 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16616 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16617 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16618 * OF THE POSSIBILITY OF SUCH DAMAGE. 16619 * ==================================================================== 16620 * 16621 * This product includes cryptographic software written by Eric Young 16622 * (eay@cryptsoft.com). This product includes software written by Tim 16623 * Hudson (tjh@cryptsoft.com). 16624 * 16625 */ 16626 # 70 "/usr/include/openssl/ecdsa.h" 2 3 4 16627 16628 # 1 "/usr/include/openssl/bn.h" 1 3 4 16629 /* crypto/bn/bn.h */ 16630 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 16631 * All rights reserved. 16632 * 16633 * This package is an SSL implementation written 16634 * by Eric Young (eay@cryptsoft.com). 16635 * The implementation was written so as to conform with Netscapes SSL. 16636 * 16637 * This library is free for commercial and non-commercial use as long as 16638 * the following conditions are aheared to. The following conditions 16639 * apply to all code found in this distribution, be it the RC4, RSA, 16640 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 16641 * included with this distribution is covered by the same copyright terms 16642 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 16643 * 16644 * Copyright remains Eric Young's, and as such any Copyright notices in 16645 * the code are not to be removed. 16646 * If this package is used in a product, Eric Young should be given attribution 16647 * as the author of the parts of the library used. 16648 * This can be in the form of a textual message at program startup or 16649 * in documentation (online or textual) provided with the package. 16650 * 16651 * Redistribution and use in source and binary forms, with or without 16652 * modification, are permitted provided that the following conditions 16653 * are met: 16654 * 1. Redistributions of source code must retain the copyright 16655 * notice, this list of conditions and the following disclaimer. 16656 * 2. Redistributions in binary form must reproduce the above copyright 16657 * notice, this list of conditions and the following disclaimer in the 16658 * documentation and/or other materials provided with the distribution. 16659 * 3. All advertising materials mentioning features or use of this software 16660 * must display the following acknowledgement: 16661 * "This product includes cryptographic software written by 16662 * Eric Young (eay@cryptsoft.com)" 16663 * The word 'cryptographic' can be left out if the rouines from the library 16664 * being used are not cryptographic related :-). 16665 * 4. If you include any Windows specific code (or a derivative thereof) from 16666 * the apps directory (application code) you must include an acknowledgement: 16667 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 16668 * 16669 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 16670 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16671 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16672 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 16673 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 16674 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 16675 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16676 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 16677 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 16678 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 16679 * SUCH DAMAGE. 16680 * 16681 * The licence and distribution terms for any publically available version or 16682 * derivative of this code cannot be changed. i.e. this code cannot simply be 16683 * copied and put under another distribution licence 16684 * [including the GNU Public Licence.] 16685 */ 16686 /* ==================================================================== 16687 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 16688 * 16689 * Redistribution and use in source and binary forms, with or without 16690 * modification, are permitted provided that the following conditions 16691 * are met: 16692 * 16693 * 1. Redistributions of source code must retain the above copyright 16694 * notice, this list of conditions and the following disclaimer. 16695 * 16696 * 2. Redistributions in binary form must reproduce the above copyright 16697 * notice, this list of conditions and the following disclaimer in 16698 * the documentation and/or other materials provided with the 16699 * distribution. 16700 * 16701 * 3. All advertising materials mentioning features or use of this 16702 * software must display the following acknowledgment: 16703 * "This product includes software developed by the OpenSSL Project 16704 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 16705 * 16706 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 16707 * endorse or promote products derived from this software without 16708 * prior written permission. For written permission, please contact 16709 * openssl-core@openssl.org. 16710 * 16711 * 5. Products derived from this software may not be called "OpenSSL" 16712 * nor may "OpenSSL" appear in their names without prior written 16713 * permission of the OpenSSL Project. 16714 * 16715 * 6. Redistributions of any form whatsoever must retain the following 16716 * acknowledgment: 16717 * "This product includes software developed by the OpenSSL Project 16718 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 16719 * 16720 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 16721 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16722 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16723 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 16724 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 16725 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16726 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 16727 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 16728 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 16729 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 16730 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 16731 * OF THE POSSIBILITY OF SUCH DAMAGE. 16732 * ==================================================================== 16733 * 16734 * This product includes cryptographic software written by Eric Young 16735 * (eay@cryptsoft.com). This product includes software written by Tim 16736 * Hudson (tjh@cryptsoft.com). 16737 * 16738 */ 16739 /* ==================================================================== 16740 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 16741 * 16742 * Portions of the attached software ("Contribution") are developed by 16743 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 16744 * 16745 * The Contribution is licensed pursuant to the Eric Young open source 16746 * license provided above. 16747 * 16748 * The binary polynomial arithmetic software is originally written by 16749 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 16750 * 16751 */ 16752 # 72 "/usr/include/openssl/ecdsa.h" 2 3 4 16753 16754 16755 16756 16757 16758 16759 typedef struct ECDSA_SIG_st { 16760 BIGNUM *r; 16761 BIGNUM *s; 16762 } ECDSA_SIG; 16763 16764 /** Allocates and initialize a ECDSA_SIG structure 16765 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 16766 */ 16767 ECDSA_SIG *ECDSA_SIG_new(void); 16768 16769 /** frees a ECDSA_SIG structure 16770 * \param sig pointer to the ECDSA_SIG structure 16771 */ 16772 void ECDSA_SIG_free(ECDSA_SIG *sig); 16773 16774 /** DER encode content of ECDSA_SIG object (note: this function modifies *pp 16775 * (*pp += length of the DER encoded signature)). 16776 * \param sig pointer to the ECDSA_SIG object 16777 * \param pp pointer to a unsigned char pointer for the output or NULL 16778 * \return the length of the DER encoded ECDSA_SIG object or 0 16779 */ 16780 int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); 16781 16782 /** Decodes a DER encoded ECDSA signature (note: this function changes *pp 16783 * (*pp += len)). 16784 * \param sig pointer to ECDSA_SIG pointer (may be NULL) 16785 * \param pp memory buffer with the DER encoded signature 16786 * \param len length of the buffer 16787 * \return pointer to the decoded ECDSA_SIG structure (or NULL) 16788 */ 16789 ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); 16790 16791 /** Computes the ECDSA signature of the given hash value using 16792 * the supplied private key and returns the created signature. 16793 * \param dgst pointer to the hash value 16794 * \param dgst_len length of the hash value 16795 * \param eckey EC_KEY object containing a private EC key 16796 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 16797 */ 16798 ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, 16799 EC_KEY *eckey); 16800 16801 /** Computes ECDSA signature of a given hash value using the supplied 16802 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 16803 * \param dgst pointer to the hash value to sign 16804 * \param dgstlen length of the hash value 16805 * \param kinv BIGNUM with a pre-computed inverse k (optional) 16806 * \param rp BIGNUM with a pre-computed rp value (optioanl), 16807 * see ECDSA_sign_setup 16808 * \param eckey EC_KEY object containing a private EC key 16809 * \return pointer to a ECDSA_SIG structure or NULL if an error occurred 16810 */ 16811 ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, 16812 const BIGNUM *kinv, const BIGNUM *rp, 16813 EC_KEY *eckey); 16814 16815 /** Verifies that the supplied signature is a valid ECDSA 16816 * signature of the supplied hash value using the supplied public key. 16817 * \param dgst pointer to the hash value 16818 * \param dgst_len length of the hash value 16819 * \param sig ECDSA_SIG structure 16820 * \param eckey EC_KEY object containing a public EC key 16821 * \return 1 if the signature is valid, 0 if the signature is invalid 16822 * and -1 on error 16823 */ 16824 int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, 16825 const ECDSA_SIG *sig, EC_KEY *eckey); 16826 16827 const ECDSA_METHOD *ECDSA_OpenSSL(void); 16828 16829 /** Sets the default ECDSA method 16830 * \param meth new default ECDSA_METHOD 16831 */ 16832 void ECDSA_set_default_method(const ECDSA_METHOD *meth); 16833 16834 /** Returns the default ECDSA method 16835 * \return pointer to ECDSA_METHOD structure containing the default method 16836 */ 16837 const ECDSA_METHOD *ECDSA_get_default_method(void); 16838 16839 /** Sets method to be used for the ECDSA operations 16840 * \param eckey EC_KEY object 16841 * \param meth new method 16842 * \return 1 on success and 0 otherwise 16843 */ 16844 int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth); 16845 16846 /** Returns the maximum length of the DER encoded signature 16847 * \param eckey EC_KEY object 16848 * \return numbers of bytes required for the DER encoded signature 16849 */ 16850 int ECDSA_size(const EC_KEY *eckey); 16851 16852 /** Precompute parts of the signing operation 16853 * \param eckey EC_KEY object containing a private EC key 16854 * \param ctx BN_CTX object (optional) 16855 * \param kinv BIGNUM pointer for the inverse of k 16856 * \param rp BIGNUM pointer for x coordinate of k * generator 16857 * \return 1 on success and 0 otherwise 16858 */ 16859 int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); 16860 16861 /** Computes ECDSA signature of a given hash value using the supplied 16862 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 16863 * \param type this parameter is ignored 16864 * \param dgst pointer to the hash value to sign 16865 * \param dgstlen length of the hash value 16866 * \param sig memory for the DER encoded created signature 16867 * \param siglen pointer to the length of the returned signature 16868 * \param eckey EC_KEY object containing a private EC key 16869 * \return 1 on success and 0 otherwise 16870 */ 16871 int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, 16872 unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); 16873 16874 /** Computes ECDSA signature of a given hash value using the supplied 16875 * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). 16876 * \param type this parameter is ignored 16877 * \param dgst pointer to the hash value to sign 16878 * \param dgstlen length of the hash value 16879 * \param sig buffer to hold the DER encoded signature 16880 * \param siglen pointer to the length of the returned signature 16881 * \param kinv BIGNUM with a pre-computed inverse k (optional) 16882 * \param rp BIGNUM with a pre-computed rp value (optioanl), 16883 * see ECDSA_sign_setup 16884 * \param eckey EC_KEY object containing a private EC key 16885 * \return 1 on success and 0 otherwise 16886 */ 16887 int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, 16888 unsigned char *sig, unsigned int *siglen, 16889 const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); 16890 16891 /** Verifies that the given signature is valid ECDSA signature 16892 * of the supplied hash value using the specified public key. 16893 * \param type this parameter is ignored 16894 * \param dgst pointer to the hash value 16895 * \param dgstlen length of the hash value 16896 * \param sig pointer to the DER encoded signature 16897 * \param siglen length of the DER encoded signature 16898 * \param eckey EC_KEY object containing a public EC key 16899 * \return 1 if the signature is valid, 0 if the signature is invalid 16900 * and -1 on error 16901 */ 16902 int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, 16903 const unsigned char *sig, int siglen, EC_KEY *eckey); 16904 16905 /* the standard ex_data functions */ 16906 int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new 16907 *new_func, CRYPTO_EX_dup *dup_func, 16908 CRYPTO_EX_free *free_func); 16909 int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); 16910 void *ECDSA_get_ex_data(EC_KEY *d, int idx); 16911 16912 /** Allocates and initialize a ECDSA_METHOD structure 16913 * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) 16914 * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred 16915 */ 16916 16917 ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); 16918 16919 /** frees a ECDSA_METHOD structure 16920 * \param ecdsa_method pointer to the ECDSA_METHOD structure 16921 */ 16922 void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); 16923 16924 /** Sets application specific data in the ECDSA_METHOD 16925 * \param ecdsa_method pointer to existing ECDSA_METHOD 16926 * \param app application specific data to set 16927 */ 16928 16929 void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); 16930 16931 /** Returns application specific data from a ECDSA_METHOD structure 16932 * \param ecdsa_method pointer to ECDSA_METHOD structure 16933 * \return pointer to application specific data. 16934 */ 16935 16936 void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); 16937 16938 /** Set the ECDSA_do_sign function in the ECDSA_METHOD 16939 * \param ecdsa_method pointer to existing ECDSA_METHOD 16940 * \param ecdsa_do_sign a funtion of type ECDSA_do_sign 16941 */ 16942 16943 void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, 16944 ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char 16945 *dgst, int dgst_len, 16946 const BIGNUM *inv, 16947 const BIGNUM *rp, 16948 EC_KEY *eckey)); 16949 16950 /** Set the ECDSA_sign_setup function in the ECDSA_METHOD 16951 * \param ecdsa_method pointer to existing ECDSA_METHOD 16952 * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup 16953 */ 16954 16955 void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, 16956 int (*ecdsa_sign_setup) (EC_KEY *eckey, 16957 BN_CTX *ctx, 16958 BIGNUM **kinv, 16959 BIGNUM **r)); 16960 16961 /** Set the ECDSA_do_verify function in the ECDSA_METHOD 16962 * \param ecdsa_method pointer to existing ECDSA_METHOD 16963 * \param ecdsa_do_verify a funtion of type ECDSA_do_verify 16964 */ 16965 16966 void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, 16967 int (*ecdsa_do_verify) (const unsigned char 16968 *dgst, int dgst_len, 16969 const ECDSA_SIG *sig, 16970 EC_KEY *eckey)); 16971 16972 void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); 16973 16974 /** Set the flags field in the ECDSA_METHOD 16975 * \param ecdsa_method pointer to existing ECDSA_METHOD 16976 * \param flags flags value to set 16977 */ 16978 16979 void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); 16980 16981 /** Set the name field in the ECDSA_METHOD 16982 * \param ecdsa_method pointer to existing ECDSA_METHOD 16983 * \param name name to set 16984 */ 16985 16986 /* BEGIN ERROR CODES */ 16987 /* 16988 * The following lines are auto generated by the script mkerr.pl. Any changes 16989 * made after this point may be overwritten when the script is next run. 16990 */ 16991 void ERR_load_ECDSA_strings(void); 16992 16993 /* Error codes for the ECDSA functions. */ 16994 16995 /* Function codes. */ 16996 16997 16998 16999 17000 17001 17002 17003 /* Reason codes. */ 17004 # 88 "/usr/include/openssl/x509.h" 2 3 4 17005 17006 17007 17008 # 1 "/usr/include/openssl/ecdh.h" 1 3 4 17009 /* crypto/ecdh/ecdh.h */ 17010 /* ==================================================================== 17011 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17012 * 17013 * The Elliptic Curve Public-Key Crypto Library (ECC Code) included 17014 * herein is developed by SUN MICROSYSTEMS, INC., and is contributed 17015 * to the OpenSSL project. 17016 * 17017 * The ECC Code is licensed pursuant to the OpenSSL open source 17018 * license provided below. 17019 * 17020 * The ECDH software is originally written by Douglas Stebila of 17021 * Sun Microsystems Laboratories. 17022 * 17023 */ 17024 /* ==================================================================== 17025 * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. 17026 * 17027 * Redistribution and use in source and binary forms, with or without 17028 * modification, are permitted provided that the following conditions 17029 * are met: 17030 * 17031 * 1. Redistributions of source code must retain the above copyright 17032 * notice, this list of conditions and the following disclaimer. 17033 * 17034 * 2. Redistributions in binary form must reproduce the above copyright 17035 * notice, this list of conditions and the following disclaimer in 17036 * the documentation and/or other materials provided with the 17037 * distribution. 17038 * 17039 * 3. All advertising materials mentioning features or use of this 17040 * software must display the following acknowledgment: 17041 * "This product includes software developed by the OpenSSL Project 17042 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 17043 * 17044 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17045 * endorse or promote products derived from this software without 17046 * prior written permission. For written permission, please contact 17047 * licensing@OpenSSL.org. 17048 * 17049 * 5. Products derived from this software may not be called "OpenSSL" 17050 * nor may "OpenSSL" appear in their names without prior written 17051 * permission of the OpenSSL Project. 17052 * 17053 * 6. Redistributions of any form whatsoever must retain the following 17054 * acknowledgment: 17055 * "This product includes software developed by the OpenSSL Project 17056 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 17057 * 17058 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17059 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17060 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17061 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17062 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17063 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17064 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17065 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17066 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17067 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17068 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17069 * OF THE POSSIBILITY OF SUCH DAMAGE. 17070 * ==================================================================== 17071 * 17072 * This product includes cryptographic software written by Eric Young 17073 * (eay@cryptsoft.com). This product includes software written by Tim 17074 * Hudson (tjh@cryptsoft.com). 17075 * 17076 */ 17077 17078 17079 17080 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 17081 /* opensslconf.h */ 17082 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 17083 17084 17085 17086 17087 /* OpenSSL was configured with the following options: */ 17088 # 108 "/usr/include/openssl/opensslconf.h" 3 4 17089 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 17090 asks for it. This is a transient feature that is provided for those 17091 who haven't had the time to do the appropriate changes in their 17092 applications. */ 17093 # 204 "/usr/include/openssl/opensslconf.h" 3 4 17094 /* crypto/opensslconf.h.in */ 17095 17096 /* Generate 80386 code? */ 17097 # 73 "/usr/include/openssl/ecdh.h" 2 3 4 17098 17099 17100 17101 17102 17103 # 1 "/usr/include/openssl/ec.h" 1 3 4 17104 /* crypto/ec/ec.h */ 17105 /* 17106 * Originally written by Bodo Moeller for the OpenSSL project. 17107 */ 17108 /** 17109 * \file crypto/ec/ec.h Include file for the OpenSSL EC functions 17110 * \author Originally written by Bodo Moeller for the OpenSSL project 17111 */ 17112 /* ==================================================================== 17113 * Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. 17114 * 17115 * Redistribution and use in source and binary forms, with or without 17116 * modification, are permitted provided that the following conditions 17117 * are met: 17118 * 17119 * 1. Redistributions of source code must retain the above copyright 17120 * notice, this list of conditions and the following disclaimer. 17121 * 17122 * 2. Redistributions in binary form must reproduce the above copyright 17123 * notice, this list of conditions and the following disclaimer in 17124 * the documentation and/or other materials provided with the 17125 * distribution. 17126 * 17127 * 3. All advertising materials mentioning features or use of this 17128 * software must display the following acknowledgment: 17129 * "This product includes software developed by the OpenSSL Project 17130 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17131 * 17132 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17133 * endorse or promote products derived from this software without 17134 * prior written permission. For written permission, please contact 17135 * openssl-core@openssl.org. 17136 * 17137 * 5. Products derived from this software may not be called "OpenSSL" 17138 * nor may "OpenSSL" appear in their names without prior written 17139 * permission of the OpenSSL Project. 17140 * 17141 * 6. Redistributions of any form whatsoever must retain the following 17142 * acknowledgment: 17143 * "This product includes software developed by the OpenSSL Project 17144 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17145 * 17146 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17147 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17148 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17149 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17150 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17151 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17152 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17153 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17154 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17155 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17156 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17157 * OF THE POSSIBILITY OF SUCH DAMAGE. 17158 * ==================================================================== 17159 * 17160 * This product includes cryptographic software written by Eric Young 17161 * (eay@cryptsoft.com). This product includes software written by Tim 17162 * Hudson (tjh@cryptsoft.com). 17163 * 17164 */ 17165 /* ==================================================================== 17166 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17167 * 17168 * Portions of the attached software ("Contribution") are developed by 17169 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 17170 * 17171 * The Contribution is licensed pursuant to the OpenSSL open source 17172 * license provided above. 17173 * 17174 * The elliptic curve binary polynomial software is originally written by 17175 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 17176 * 17177 */ 17178 # 79 "/usr/include/openssl/ecdh.h" 2 3 4 17179 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 17180 /* ==================================================================== 17181 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 17182 * 17183 * Redistribution and use in source and binary forms, with or without 17184 * modification, are permitted provided that the following conditions 17185 * are met: 17186 * 17187 * 1. Redistributions of source code must retain the above copyright 17188 * notice, this list of conditions and the following disclaimer. 17189 * 17190 * 2. Redistributions in binary form must reproduce the above copyright 17191 * notice, this list of conditions and the following disclaimer in 17192 * the documentation and/or other materials provided with the 17193 * distribution. 17194 * 17195 * 3. All advertising materials mentioning features or use of this 17196 * software must display the following acknowledgment: 17197 * "This product includes software developed by the OpenSSL Project 17198 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17199 * 17200 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17201 * endorse or promote products derived from this software without 17202 * prior written permission. For written permission, please contact 17203 * openssl-core@openssl.org. 17204 * 17205 * 5. Products derived from this software may not be called "OpenSSL" 17206 * nor may "OpenSSL" appear in their names without prior written 17207 * permission of the OpenSSL Project. 17208 * 17209 * 6. Redistributions of any form whatsoever must retain the following 17210 * acknowledgment: 17211 * "This product includes software developed by the OpenSSL Project 17212 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17213 * 17214 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17215 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17216 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17217 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17218 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17219 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17220 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17221 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17222 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17223 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17224 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17225 * OF THE POSSIBILITY OF SUCH DAMAGE. 17226 * ==================================================================== 17227 * 17228 * This product includes cryptographic software written by Eric Young 17229 * (eay@cryptsoft.com). This product includes software written by Tim 17230 * Hudson (tjh@cryptsoft.com). 17231 * 17232 */ 17233 # 80 "/usr/include/openssl/ecdh.h" 2 3 4 17234 17235 # 1 "/usr/include/openssl/bn.h" 1 3 4 17236 /* crypto/bn/bn.h */ 17237 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 17238 * All rights reserved. 17239 * 17240 * This package is an SSL implementation written 17241 * by Eric Young (eay@cryptsoft.com). 17242 * The implementation was written so as to conform with Netscapes SSL. 17243 * 17244 * This library is free for commercial and non-commercial use as long as 17245 * the following conditions are aheared to. The following conditions 17246 * apply to all code found in this distribution, be it the RC4, RSA, 17247 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17248 * included with this distribution is covered by the same copyright terms 17249 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17250 * 17251 * Copyright remains Eric Young's, and as such any Copyright notices in 17252 * the code are not to be removed. 17253 * If this package is used in a product, Eric Young should be given attribution 17254 * as the author of the parts of the library used. 17255 * This can be in the form of a textual message at program startup or 17256 * in documentation (online or textual) provided with the package. 17257 * 17258 * Redistribution and use in source and binary forms, with or without 17259 * modification, are permitted provided that the following conditions 17260 * are met: 17261 * 1. Redistributions of source code must retain the copyright 17262 * notice, this list of conditions and the following disclaimer. 17263 * 2. Redistributions in binary form must reproduce the above copyright 17264 * notice, this list of conditions and the following disclaimer in the 17265 * documentation and/or other materials provided with the distribution. 17266 * 3. All advertising materials mentioning features or use of this software 17267 * must display the following acknowledgement: 17268 * "This product includes cryptographic software written by 17269 * Eric Young (eay@cryptsoft.com)" 17270 * The word 'cryptographic' can be left out if the rouines from the library 17271 * being used are not cryptographic related :-). 17272 * 4. If you include any Windows specific code (or a derivative thereof) from 17273 * the apps directory (application code) you must include an acknowledgement: 17274 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17275 * 17276 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17277 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17278 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17279 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17280 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17281 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17282 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17283 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17284 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17285 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17286 * SUCH DAMAGE. 17287 * 17288 * The licence and distribution terms for any publically available version or 17289 * derivative of this code cannot be changed. i.e. this code cannot simply be 17290 * copied and put under another distribution licence 17291 * [including the GNU Public Licence.] 17292 */ 17293 /* ==================================================================== 17294 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 17295 * 17296 * Redistribution and use in source and binary forms, with or without 17297 * modification, are permitted provided that the following conditions 17298 * are met: 17299 * 17300 * 1. Redistributions of source code must retain the above copyright 17301 * notice, this list of conditions and the following disclaimer. 17302 * 17303 * 2. Redistributions in binary form must reproduce the above copyright 17304 * notice, this list of conditions and the following disclaimer in 17305 * the documentation and/or other materials provided with the 17306 * distribution. 17307 * 17308 * 3. All advertising materials mentioning features or use of this 17309 * software must display the following acknowledgment: 17310 * "This product includes software developed by the OpenSSL Project 17311 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17312 * 17313 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17314 * endorse or promote products derived from this software without 17315 * prior written permission. For written permission, please contact 17316 * openssl-core@openssl.org. 17317 * 17318 * 5. Products derived from this software may not be called "OpenSSL" 17319 * nor may "OpenSSL" appear in their names without prior written 17320 * permission of the OpenSSL Project. 17321 * 17322 * 6. Redistributions of any form whatsoever must retain the following 17323 * acknowledgment: 17324 * "This product includes software developed by the OpenSSL Project 17325 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17326 * 17327 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17328 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17329 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17330 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17331 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17332 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17333 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17334 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17335 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17336 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17337 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17338 * OF THE POSSIBILITY OF SUCH DAMAGE. 17339 * ==================================================================== 17340 * 17341 * This product includes cryptographic software written by Eric Young 17342 * (eay@cryptsoft.com). This product includes software written by Tim 17343 * Hudson (tjh@cryptsoft.com). 17344 * 17345 */ 17346 /* ==================================================================== 17347 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17348 * 17349 * Portions of the attached software ("Contribution") are developed by 17350 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 17351 * 17352 * The Contribution is licensed pursuant to the Eric Young open source 17353 * license provided above. 17354 * 17355 * The binary polynomial arithmetic software is originally written by 17356 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 17357 * 17358 */ 17359 # 82 "/usr/include/openssl/ecdh.h" 2 3 4 17360 # 90 "/usr/include/openssl/ecdh.h" 3 4 17361 const ECDH_METHOD *ECDH_OpenSSL(void); 17362 17363 void ECDH_set_default_method(const ECDH_METHOD *); 17364 const ECDH_METHOD *ECDH_get_default_method(void); 17365 int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); 17366 17367 int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, 17368 EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, 17369 void *out, size_t *outlen)); 17370 17371 int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new 17372 *new_func, CRYPTO_EX_dup *dup_func, 17373 CRYPTO_EX_free *free_func); 17374 int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); 17375 void *ECDH_get_ex_data(EC_KEY *d, int idx); 17376 17377 int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, 17378 const unsigned char *Z, size_t Zlen, 17379 const unsigned char *sinfo, size_t sinfolen, 17380 const EVP_MD *md); 17381 17382 /* BEGIN ERROR CODES */ 17383 /* 17384 * The following lines are auto generated by the script mkerr.pl. Any changes 17385 * made after this point may be overwritten when the script is next run. 17386 */ 17387 void ERR_load_ECDH_strings(void); 17388 17389 /* Error codes for the ECDH functions. */ 17390 17391 /* Function codes. */ 17392 17393 17394 17395 17396 /* Reason codes. */ 17397 # 92 "/usr/include/openssl/x509.h" 2 3 4 17398 17399 17400 17401 17402 # 1 "/usr/include/openssl/rsa.h" 1 3 4 17403 /* crypto/rsa/rsa.h */ 17404 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17405 * All rights reserved. 17406 * 17407 * This package is an SSL implementation written 17408 * by Eric Young (eay@cryptsoft.com). 17409 * The implementation was written so as to conform with Netscapes SSL. 17410 * 17411 * This library is free for commercial and non-commercial use as long as 17412 * the following conditions are aheared to. The following conditions 17413 * apply to all code found in this distribution, be it the RC4, RSA, 17414 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17415 * included with this distribution is covered by the same copyright terms 17416 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17417 * 17418 * Copyright remains Eric Young's, and as such any Copyright notices in 17419 * the code are not to be removed. 17420 * If this package is used in a product, Eric Young should be given attribution 17421 * as the author of the parts of the library used. 17422 * This can be in the form of a textual message at program startup or 17423 * in documentation (online or textual) provided with the package. 17424 * 17425 * Redistribution and use in source and binary forms, with or without 17426 * modification, are permitted provided that the following conditions 17427 * are met: 17428 * 1. Redistributions of source code must retain the copyright 17429 * notice, this list of conditions and the following disclaimer. 17430 * 2. Redistributions in binary form must reproduce the above copyright 17431 * notice, this list of conditions and the following disclaimer in the 17432 * documentation and/or other materials provided with the distribution. 17433 * 3. All advertising materials mentioning features or use of this software 17434 * must display the following acknowledgement: 17435 * "This product includes cryptographic software written by 17436 * Eric Young (eay@cryptsoft.com)" 17437 * The word 'cryptographic' can be left out if the rouines from the library 17438 * being used are not cryptographic related :-). 17439 * 4. If you include any Windows specific code (or a derivative thereof) from 17440 * the apps directory (application code) you must include an acknowledgement: 17441 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17442 * 17443 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17444 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17445 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17446 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17447 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17448 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17449 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17450 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17451 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17452 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17453 * SUCH DAMAGE. 17454 * 17455 * The licence and distribution terms for any publically available version or 17456 * derivative of this code cannot be changed. i.e. this code cannot simply be 17457 * copied and put under another distribution licence 17458 * [including the GNU Public Licence.] 17459 */ 17460 17461 17462 17463 17464 # 1 "/usr/include/openssl/asn1.h" 1 3 4 17465 /* crypto/asn1/asn1.h */ 17466 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17467 * All rights reserved. 17468 * 17469 * This package is an SSL implementation written 17470 * by Eric Young (eay@cryptsoft.com). 17471 * The implementation was written so as to conform with Netscapes SSL. 17472 * 17473 * This library is free for commercial and non-commercial use as long as 17474 * the following conditions are aheared to. The following conditions 17475 * apply to all code found in this distribution, be it the RC4, RSA, 17476 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17477 * included with this distribution is covered by the same copyright terms 17478 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17479 * 17480 * Copyright remains Eric Young's, and as such any Copyright notices in 17481 * the code are not to be removed. 17482 * If this package is used in a product, Eric Young should be given attribution 17483 * as the author of the parts of the library used. 17484 * This can be in the form of a textual message at program startup or 17485 * in documentation (online or textual) provided with the package. 17486 * 17487 * Redistribution and use in source and binary forms, with or without 17488 * modification, are permitted provided that the following conditions 17489 * are met: 17490 * 1. Redistributions of source code must retain the copyright 17491 * notice, this list of conditions and the following disclaimer. 17492 * 2. Redistributions in binary form must reproduce the above copyright 17493 * notice, this list of conditions and the following disclaimer in the 17494 * documentation and/or other materials provided with the distribution. 17495 * 3. All advertising materials mentioning features or use of this software 17496 * must display the following acknowledgement: 17497 * "This product includes cryptographic software written by 17498 * Eric Young (eay@cryptsoft.com)" 17499 * The word 'cryptographic' can be left out if the rouines from the library 17500 * being used are not cryptographic related :-). 17501 * 4. If you include any Windows specific code (or a derivative thereof) from 17502 * the apps directory (application code) you must include an acknowledgement: 17503 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17504 * 17505 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17506 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17507 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17508 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17509 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17510 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17511 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17512 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17513 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17514 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17515 * SUCH DAMAGE. 17516 * 17517 * The licence and distribution terms for any publically available version or 17518 * derivative of this code cannot be changed. i.e. this code cannot simply be 17519 * copied and put under another distribution licence 17520 * [including the GNU Public Licence.] 17521 */ 17522 # 63 "/usr/include/openssl/rsa.h" 2 3 4 17523 17524 17525 # 1 "/usr/include/openssl/bio.h" 1 3 4 17526 /* crypto/bio/bio.h */ 17527 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17528 * All rights reserved. 17529 * 17530 * This package is an SSL implementation written 17531 * by Eric Young (eay@cryptsoft.com). 17532 * The implementation was written so as to conform with Netscapes SSL. 17533 * 17534 * This library is free for commercial and non-commercial use as long as 17535 * the following conditions are aheared to. The following conditions 17536 * apply to all code found in this distribution, be it the RC4, RSA, 17537 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17538 * included with this distribution is covered by the same copyright terms 17539 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17540 * 17541 * Copyright remains Eric Young's, and as such any Copyright notices in 17542 * the code are not to be removed. 17543 * If this package is used in a product, Eric Young should be given attribution 17544 * as the author of the parts of the library used. 17545 * This can be in the form of a textual message at program startup or 17546 * in documentation (online or textual) provided with the package. 17547 * 17548 * Redistribution and use in source and binary forms, with or without 17549 * modification, are permitted provided that the following conditions 17550 * are met: 17551 * 1. Redistributions of source code must retain the copyright 17552 * notice, this list of conditions and the following disclaimer. 17553 * 2. Redistributions in binary form must reproduce the above copyright 17554 * notice, this list of conditions and the following disclaimer in the 17555 * documentation and/or other materials provided with the distribution. 17556 * 3. All advertising materials mentioning features or use of this software 17557 * must display the following acknowledgement: 17558 * "This product includes cryptographic software written by 17559 * Eric Young (eay@cryptsoft.com)" 17560 * The word 'cryptographic' can be left out if the rouines from the library 17561 * being used are not cryptographic related :-). 17562 * 4. If you include any Windows specific code (or a derivative thereof) from 17563 * the apps directory (application code) you must include an acknowledgement: 17564 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17565 * 17566 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17567 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17568 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17569 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17570 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17571 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17572 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17573 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17574 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17575 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17576 * SUCH DAMAGE. 17577 * 17578 * The licence and distribution terms for any publically available version or 17579 * derivative of this code cannot be changed. i.e. this code cannot simply be 17580 * copied and put under another distribution licence 17581 * [including the GNU Public Licence.] 17582 */ 17583 # 66 "/usr/include/openssl/rsa.h" 2 3 4 17584 17585 # 1 "/usr/include/openssl/crypto.h" 1 3 4 17586 /* crypto/crypto.h */ 17587 /* ==================================================================== 17588 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 17589 * 17590 * Redistribution and use in source and binary forms, with or without 17591 * modification, are permitted provided that the following conditions 17592 * are met: 17593 * 17594 * 1. Redistributions of source code must retain the above copyright 17595 * notice, this list of conditions and the following disclaimer. 17596 * 17597 * 2. Redistributions in binary form must reproduce the above copyright 17598 * notice, this list of conditions and the following disclaimer in 17599 * the documentation and/or other materials provided with the 17600 * distribution. 17601 * 17602 * 3. All advertising materials mentioning features or use of this 17603 * software must display the following acknowledgment: 17604 * "This product includes software developed by the OpenSSL Project 17605 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17606 * 17607 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17608 * endorse or promote products derived from this software without 17609 * prior written permission. For written permission, please contact 17610 * openssl-core@openssl.org. 17611 * 17612 * 5. Products derived from this software may not be called "OpenSSL" 17613 * nor may "OpenSSL" appear in their names without prior written 17614 * permission of the OpenSSL Project. 17615 * 17616 * 6. Redistributions of any form whatsoever must retain the following 17617 * acknowledgment: 17618 * "This product includes software developed by the OpenSSL Project 17619 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17620 * 17621 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17622 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17623 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17624 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17625 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17626 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17627 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17628 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17629 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17630 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17631 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17632 * OF THE POSSIBILITY OF SUCH DAMAGE. 17633 * ==================================================================== 17634 * 17635 * This product includes cryptographic software written by Eric Young 17636 * (eay@cryptsoft.com). This product includes software written by Tim 17637 * Hudson (tjh@cryptsoft.com). 17638 * 17639 */ 17640 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 17641 * All rights reserved. 17642 * 17643 * This package is an SSL implementation written 17644 * by Eric Young (eay@cryptsoft.com). 17645 * The implementation was written so as to conform with Netscapes SSL. 17646 * 17647 * This library is free for commercial and non-commercial use as long as 17648 * the following conditions are aheared to. The following conditions 17649 * apply to all code found in this distribution, be it the RC4, RSA, 17650 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17651 * included with this distribution is covered by the same copyright terms 17652 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17653 * 17654 * Copyright remains Eric Young's, and as such any Copyright notices in 17655 * the code are not to be removed. 17656 * If this package is used in a product, Eric Young should be given attribution 17657 * as the author of the parts of the library used. 17658 * This can be in the form of a textual message at program startup or 17659 * in documentation (online or textual) provided with the package. 17660 * 17661 * Redistribution and use in source and binary forms, with or without 17662 * modification, are permitted provided that the following conditions 17663 * are met: 17664 * 1. Redistributions of source code must retain the copyright 17665 * notice, this list of conditions and the following disclaimer. 17666 * 2. Redistributions in binary form must reproduce the above copyright 17667 * notice, this list of conditions and the following disclaimer in the 17668 * documentation and/or other materials provided with the distribution. 17669 * 3. All advertising materials mentioning features or use of this software 17670 * must display the following acknowledgement: 17671 * "This product includes cryptographic software written by 17672 * Eric Young (eay@cryptsoft.com)" 17673 * The word 'cryptographic' can be left out if the rouines from the library 17674 * being used are not cryptographic related :-). 17675 * 4. If you include any Windows specific code (or a derivative thereof) from 17676 * the apps directory (application code) you must include an acknowledgement: 17677 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17678 * 17679 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17680 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17681 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17682 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17683 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17684 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17685 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17686 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17687 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17688 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17689 * SUCH DAMAGE. 17690 * 17691 * The licence and distribution terms for any publically available version or 17692 * derivative of this code cannot be changed. i.e. this code cannot simply be 17693 * copied and put under another distribution licence 17694 * [including the GNU Public Licence.] 17695 */ 17696 /* ==================================================================== 17697 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17698 * ECDH support in OpenSSL originally developed by 17699 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 17700 */ 17701 # 68 "/usr/include/openssl/rsa.h" 2 3 4 17702 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 17703 /* ==================================================================== 17704 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 17705 * 17706 * Redistribution and use in source and binary forms, with or without 17707 * modification, are permitted provided that the following conditions 17708 * are met: 17709 * 17710 * 1. Redistributions of source code must retain the above copyright 17711 * notice, this list of conditions and the following disclaimer. 17712 * 17713 * 2. Redistributions in binary form must reproduce the above copyright 17714 * notice, this list of conditions and the following disclaimer in 17715 * the documentation and/or other materials provided with the 17716 * distribution. 17717 * 17718 * 3. All advertising materials mentioning features or use of this 17719 * software must display the following acknowledgment: 17720 * "This product includes software developed by the OpenSSL Project 17721 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17722 * 17723 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17724 * endorse or promote products derived from this software without 17725 * prior written permission. For written permission, please contact 17726 * openssl-core@openssl.org. 17727 * 17728 * 5. Products derived from this software may not be called "OpenSSL" 17729 * nor may "OpenSSL" appear in their names without prior written 17730 * permission of the OpenSSL Project. 17731 * 17732 * 6. Redistributions of any form whatsoever must retain the following 17733 * acknowledgment: 17734 * "This product includes software developed by the OpenSSL Project 17735 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17736 * 17737 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17738 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17739 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17740 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17741 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17742 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17743 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17744 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17745 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17746 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17747 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17748 * OF THE POSSIBILITY OF SUCH DAMAGE. 17749 * ==================================================================== 17750 * 17751 * This product includes cryptographic software written by Eric Young 17752 * (eay@cryptsoft.com). This product includes software written by Tim 17753 * Hudson (tjh@cryptsoft.com). 17754 * 17755 */ 17756 # 69 "/usr/include/openssl/rsa.h" 2 3 4 17757 17758 # 1 "/usr/include/openssl/bn.h" 1 3 4 17759 /* crypto/bn/bn.h */ 17760 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 17761 * All rights reserved. 17762 * 17763 * This package is an SSL implementation written 17764 * by Eric Young (eay@cryptsoft.com). 17765 * The implementation was written so as to conform with Netscapes SSL. 17766 * 17767 * This library is free for commercial and non-commercial use as long as 17768 * the following conditions are aheared to. The following conditions 17769 * apply to all code found in this distribution, be it the RC4, RSA, 17770 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 17771 * included with this distribution is covered by the same copyright terms 17772 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17773 * 17774 * Copyright remains Eric Young's, and as such any Copyright notices in 17775 * the code are not to be removed. 17776 * If this package is used in a product, Eric Young should be given attribution 17777 * as the author of the parts of the library used. 17778 * This can be in the form of a textual message at program startup or 17779 * in documentation (online or textual) provided with the package. 17780 * 17781 * Redistribution and use in source and binary forms, with or without 17782 * modification, are permitted provided that the following conditions 17783 * are met: 17784 * 1. Redistributions of source code must retain the copyright 17785 * notice, this list of conditions and the following disclaimer. 17786 * 2. Redistributions in binary form must reproduce the above copyright 17787 * notice, this list of conditions and the following disclaimer in the 17788 * documentation and/or other materials provided with the distribution. 17789 * 3. All advertising materials mentioning features or use of this software 17790 * must display the following acknowledgement: 17791 * "This product includes cryptographic software written by 17792 * Eric Young (eay@cryptsoft.com)" 17793 * The word 'cryptographic' can be left out if the rouines from the library 17794 * being used are not cryptographic related :-). 17795 * 4. If you include any Windows specific code (or a derivative thereof) from 17796 * the apps directory (application code) you must include an acknowledgement: 17797 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 17798 * 17799 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 17800 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17801 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17802 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17803 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 17804 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 17805 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17806 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 17807 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 17808 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 17809 * SUCH DAMAGE. 17810 * 17811 * The licence and distribution terms for any publically available version or 17812 * derivative of this code cannot be changed. i.e. this code cannot simply be 17813 * copied and put under another distribution licence 17814 * [including the GNU Public Licence.] 17815 */ 17816 /* ==================================================================== 17817 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 17818 * 17819 * Redistribution and use in source and binary forms, with or without 17820 * modification, are permitted provided that the following conditions 17821 * are met: 17822 * 17823 * 1. Redistributions of source code must retain the above copyright 17824 * notice, this list of conditions and the following disclaimer. 17825 * 17826 * 2. Redistributions in binary form must reproduce the above copyright 17827 * notice, this list of conditions and the following disclaimer in 17828 * the documentation and/or other materials provided with the 17829 * distribution. 17830 * 17831 * 3. All advertising materials mentioning features or use of this 17832 * software must display the following acknowledgment: 17833 * "This product includes software developed by the OpenSSL Project 17834 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 17835 * 17836 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 17837 * endorse or promote products derived from this software without 17838 * prior written permission. For written permission, please contact 17839 * openssl-core@openssl.org. 17840 * 17841 * 5. Products derived from this software may not be called "OpenSSL" 17842 * nor may "OpenSSL" appear in their names without prior written 17843 * permission of the OpenSSL Project. 17844 * 17845 * 6. Redistributions of any form whatsoever must retain the following 17846 * acknowledgment: 17847 * "This product includes software developed by the OpenSSL Project 17848 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 17849 * 17850 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 17851 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17852 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 17853 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 17854 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 17855 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 17856 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 17857 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 17858 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 17859 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 17860 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 17861 * OF THE POSSIBILITY OF SUCH DAMAGE. 17862 * ==================================================================== 17863 * 17864 * This product includes cryptographic software written by Eric Young 17865 * (eay@cryptsoft.com). This product includes software written by Tim 17866 * Hudson (tjh@cryptsoft.com). 17867 * 17868 */ 17869 /* ==================================================================== 17870 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 17871 * 17872 * Portions of the attached software ("Contribution") are developed by 17873 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 17874 * 17875 * The Contribution is licensed pursuant to the Eric Young open source 17876 * license provided above. 17877 * 17878 * The binary polynomial arithmetic software is originally written by 17879 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 17880 * 17881 */ 17882 # 71 "/usr/include/openssl/rsa.h" 2 3 4 17883 # 81 "/usr/include/openssl/rsa.h" 3 4 17884 /* Declared already in ossl_typ.h */ 17885 /* typedef struct rsa_st RSA; */ 17886 /* typedef struct rsa_meth_st RSA_METHOD; */ 17887 17888 struct rsa_meth_st { 17889 const char *name; 17890 int (*rsa_pub_enc) (int flen, const unsigned char *from, 17891 unsigned char *to, RSA *rsa, int padding); 17892 int (*rsa_pub_dec) (int flen, const unsigned char *from, 17893 unsigned char *to, RSA *rsa, int padding); 17894 int (*rsa_priv_enc) (int flen, const unsigned char *from, 17895 unsigned char *to, RSA *rsa, int padding); 17896 int (*rsa_priv_dec) (int flen, const unsigned char *from, 17897 unsigned char *to, RSA *rsa, int padding); 17898 /* Can be null */ 17899 int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); 17900 /* Can be null */ 17901 int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, 17902 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 17903 /* called at new */ 17904 int (*init) (RSA *rsa); 17905 /* called at free */ 17906 int (*finish) (RSA *rsa); 17907 /* RSA_METHOD_FLAG_* things */ 17908 int flags; 17909 /* may be needed! */ 17910 char *app_data; 17911 /* 17912 * New sign and verify functions: some libraries don't allow arbitrary 17913 * data to be signed/verified: this allows them to be used. Note: for 17914 * this to work the RSA_public_decrypt() and RSA_private_encrypt() should 17915 * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note: 17916 * for backwards compatibility this functionality is only enabled if the 17917 * RSA_FLAG_SIGN_VER option is set in 'flags'. 17918 */ 17919 int (*rsa_sign) (int type, 17920 const unsigned char *m, unsigned int m_length, 17921 unsigned char *sigret, unsigned int *siglen, 17922 const RSA *rsa); 17923 int (*rsa_verify) (int dtype, const unsigned char *m, 17924 unsigned int m_length, const unsigned char *sigbuf, 17925 unsigned int siglen, const RSA *rsa); 17926 /* 17927 * If this callback is NULL, the builtin software RSA key-gen will be 17928 * used. This is for behavioural compatibility whilst the code gets 17929 * rewired, but one day it would be nice to assume there are no such 17930 * things as "builtin software" implementations. 17931 */ 17932 int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); 17933 }; 17934 17935 struct rsa_st { 17936 /* 17937 * The first parameter is used to pickup errors where this is passed 17938 * instead of aEVP_PKEY, it is set to 0 17939 */ 17940 int pad; 17941 long version; 17942 const RSA_METHOD *meth; 17943 /* functional reference if 'meth' is ENGINE-provided */ 17944 ENGINE *engine; 17945 BIGNUM *n; 17946 BIGNUM *e; 17947 BIGNUM *d; 17948 BIGNUM *p; 17949 BIGNUM *q; 17950 BIGNUM *dmp1; 17951 BIGNUM *dmq1; 17952 BIGNUM *iqmp; 17953 /* be careful using this if the RSA structure is shared */ 17954 CRYPTO_EX_DATA ex_data; 17955 int references; 17956 int flags; 17957 /* Used to cache montgomery values */ 17958 BN_MONT_CTX *_method_mod_n; 17959 BN_MONT_CTX *_method_mod_p; 17960 BN_MONT_CTX *_method_mod_q; 17961 /* 17962 * all BIGNUM values are actually in the following data, if it is not 17963 * NULL 17964 */ 17965 char *bignum_data; 17966 BN_BLINDING *blinding; 17967 BN_BLINDING *mt_blinding; 17968 }; 17969 # 176 "/usr/include/openssl/rsa.h" 3 4 17970 /* exponent limit enforced for "large" modulus only */ 17971 # 190 "/usr/include/openssl/rsa.h" 3 4 17972 /* 17973 * This flag means the private key operations will be handled by rsa_mod_exp 17974 * and that they do not depend on the private key components being present: 17975 * for example a key stored in external hardware. Without this flag 17976 * bn_mod_exp gets called when private key components are absent. 17977 */ 17978 17979 17980 /* 17981 * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify 17982 * functions. 17983 */ 17984 17985 17986 /* 17987 * new with 0.9.6j and 0.9.7b; the built-in 17988 * RSA implementation now uses blinding by 17989 * default (ignoring RSA_FLAG_BLINDING), 17990 * but other engines might not need it 17991 */ 17992 17993 /* 17994 * new with 0.9.8f; the built-in RSA 17995 * implementation now uses constant time 17996 * operations by default in private key operations, 17997 * e.g., constant time modular exponentiation, 17998 * modular inverse without leaking branches, 17999 * division without leaking branches. This 18000 * flag disables these constant time 18001 * operations and results in faster RSA 18002 * private key operations. 18003 */ 18004 # 312 "/usr/include/openssl/rsa.h" 3 4 18005 /* EVP_PKEY_ only */ 18006 18007 18008 18009 18010 18011 18012 18013 RSA *RSA_new(void); 18014 RSA *RSA_new_method(ENGINE *engine); 18015 int RSA_size(const RSA *rsa); 18016 18017 /* Deprecated version */ 18018 18019 RSA *RSA_generate_key(int bits, unsigned long e, void 18020 (*callback) (int, int, void *), void *cb_arg); 18021 18022 18023 /* New version */ 18024 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); 18025 18026 int RSA_check_key(const RSA *); 18027 /* next 4 return -1 on error */ 18028 int RSA_public_encrypt(int flen, const unsigned char *from, 18029 unsigned char *to, RSA *rsa, int padding); 18030 int RSA_private_encrypt(int flen, const unsigned char *from, 18031 unsigned char *to, RSA *rsa, int padding); 18032 int RSA_public_decrypt(int flen, const unsigned char *from, 18033 unsigned char *to, RSA *rsa, int padding); 18034 int RSA_private_decrypt(int flen, const unsigned char *from, 18035 unsigned char *to, RSA *rsa, int padding); 18036 void RSA_free(RSA *r); 18037 /* "up" the RSA object's reference count */ 18038 int RSA_up_ref(RSA *r); 18039 18040 int RSA_flags(const RSA *r); 18041 18042 void RSA_set_default_method(const RSA_METHOD *meth); 18043 const RSA_METHOD *RSA_get_default_method(void); 18044 const RSA_METHOD *RSA_get_method(const RSA *rsa); 18045 int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); 18046 18047 /* This function needs the memory locking malloc callbacks to be installed */ 18048 int RSA_memory_lock(RSA *r); 18049 18050 /* these are the actual SSLeay RSA functions */ 18051 const RSA_METHOD *RSA_PKCS1_SSLeay(void); 18052 18053 const RSA_METHOD *RSA_null_method(void); 18054 18055 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; 18056 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; 18057 18058 typedef struct rsa_pss_params_st { 18059 X509_ALGOR *hashAlgorithm; 18060 X509_ALGOR *maskGenAlgorithm; 18061 ASN1_INTEGER *saltLength; 18062 ASN1_INTEGER *trailerField; 18063 } RSA_PSS_PARAMS; 18064 18065 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; 18066 18067 typedef struct rsa_oaep_params_st { 18068 X509_ALGOR *hashFunc; 18069 X509_ALGOR *maskGenFunc; 18070 X509_ALGOR *pSourceFunc; 18071 } RSA_OAEP_PARAMS; 18072 18073 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; 18074 18075 18076 int RSA_print_fp(FILE *fp, const RSA *r, int offset); 18077 18078 18079 18080 int RSA_print(BIO *bp, const RSA *r, int offset); 18081 18082 18083 18084 int i2d_RSA_NET(const RSA *a, unsigned char **pp, 18085 int (*cb) (char *buf, int len, const char *prompt, 18086 int verify), int sgckey); 18087 RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, 18088 int (*cb) (char *buf, int len, const char *prompt, 18089 int verify), int sgckey); 18090 18091 int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, 18092 int (*cb) (char *buf, int len, const char *prompt, 18093 int verify)); 18094 RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, 18095 int (*cb) (char *buf, int len, const char *prompt, 18096 int verify)); 18097 18098 18099 /* 18100 * The following 2 functions sign and verify a X509_SIG ASN1 object inside 18101 * PKCS#1 padded RSA encryption 18102 */ 18103 int RSA_sign(int type, const unsigned char *m, unsigned int m_length, 18104 unsigned char *sigret, unsigned int *siglen, RSA *rsa); 18105 int RSA_verify(int type, const unsigned char *m, unsigned int m_length, 18106 const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); 18107 18108 /* 18109 * The following 2 function sign and verify a ASN1_OCTET_STRING object inside 18110 * PKCS#1 padded RSA encryption 18111 */ 18112 int RSA_sign_ASN1_OCTET_STRING(int type, 18113 const unsigned char *m, unsigned int m_length, 18114 unsigned char *sigret, unsigned int *siglen, 18115 RSA *rsa); 18116 int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, 18117 unsigned int m_length, unsigned char *sigbuf, 18118 unsigned int siglen, RSA *rsa); 18119 18120 int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); 18121 void RSA_blinding_off(RSA *rsa); 18122 BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); 18123 18124 int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, 18125 const unsigned char *f, int fl); 18126 int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, 18127 const unsigned char *f, int fl, 18128 int rsa_len); 18129 int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, 18130 const unsigned char *f, int fl); 18131 int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, 18132 const unsigned char *f, int fl, 18133 int rsa_len); 18134 int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, 18135 long seedlen, const EVP_MD *dgst); 18136 int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, 18137 const unsigned char *f, int fl, 18138 const unsigned char *p, int pl); 18139 int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, 18140 const unsigned char *f, int fl, int rsa_len, 18141 const unsigned char *p, int pl); 18142 int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 18143 const unsigned char *from, int flen, 18144 const unsigned char *param, int plen, 18145 const EVP_MD *md, const EVP_MD *mgf1md); 18146 int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, 18147 const unsigned char *from, int flen, 18148 int num, const unsigned char *param, 18149 int plen, const EVP_MD *md, 18150 const EVP_MD *mgf1md); 18151 int RSA_padding_add_SSLv23(unsigned char *to, int tlen, 18152 const unsigned char *f, int fl); 18153 int RSA_padding_check_SSLv23(unsigned char *to, int tlen, 18154 const unsigned char *f, int fl, int rsa_len); 18155 int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, 18156 int fl); 18157 int RSA_padding_check_none(unsigned char *to, int tlen, 18158 const unsigned char *f, int fl, int rsa_len); 18159 int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, 18160 int fl); 18161 int RSA_padding_check_X931(unsigned char *to, int tlen, 18162 const unsigned char *f, int fl, int rsa_len); 18163 int RSA_X931_hash_id(int nid); 18164 18165 int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, 18166 const EVP_MD *Hash, const unsigned char *EM, 18167 int sLen); 18168 int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, 18169 const unsigned char *mHash, const EVP_MD *Hash, 18170 int sLen); 18171 18172 int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, 18173 const EVP_MD *Hash, const EVP_MD *mgf1Hash, 18174 const unsigned char *EM, int sLen); 18175 18176 int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, 18177 const unsigned char *mHash, 18178 const EVP_MD *Hash, const EVP_MD *mgf1Hash, 18179 int sLen); 18180 18181 int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 18182 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 18183 int RSA_set_ex_data(RSA *r, int idx, void *arg); 18184 void *RSA_get_ex_data(const RSA *r, int idx); 18185 18186 RSA *RSAPublicKey_dup(RSA *rsa); 18187 RSA *RSAPrivateKey_dup(RSA *rsa); 18188 18189 /* 18190 * If this flag is set the RSA method is FIPS compliant and can be used in 18191 * FIPS mode. This is set in the validated module method. If an application 18192 * sets this flag in its own methods it is its responsibility to ensure the 18193 * result is compliant. 18194 */ 18195 18196 18197 18198 /* 18199 * If this flag is set the operations normally disabled in FIPS mode are 18200 * permitted it is then the applications responsibility to ensure that the 18201 * usage is compliant. 18202 */ 18203 18204 18205 /* 18206 * Application has decided PRNG is good enough to generate a key: don't 18207 * check. 18208 */ 18209 18210 18211 /* BEGIN ERROR CODES */ 18212 /* 18213 * The following lines are auto generated by the script mkerr.pl. Any changes 18214 * made after this point may be overwritten when the script is next run. 18215 */ 18216 void ERR_load_RSA_strings(void); 18217 18218 /* Error codes for the RSA functions. */ 18219 18220 /* Function codes. */ 18221 # 592 "/usr/include/openssl/rsa.h" 3 4 18222 /* Reason codes. */ 18223 # 97 "/usr/include/openssl/x509.h" 2 3 4 18224 18225 18226 # 1 "/usr/include/openssl/dsa.h" 1 3 4 18227 /* crypto/dsa/dsa.h */ 18228 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18229 * All rights reserved. 18230 * 18231 * This package is an SSL implementation written 18232 * by Eric Young (eay@cryptsoft.com). 18233 * The implementation was written so as to conform with Netscapes SSL. 18234 * 18235 * This library is free for commercial and non-commercial use as long as 18236 * the following conditions are aheared to. The following conditions 18237 * apply to all code found in this distribution, be it the RC4, RSA, 18238 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18239 * included with this distribution is covered by the same copyright terms 18240 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18241 * 18242 * Copyright remains Eric Young's, and as such any Copyright notices in 18243 * the code are not to be removed. 18244 * If this package is used in a product, Eric Young should be given attribution 18245 * as the author of the parts of the library used. 18246 * This can be in the form of a textual message at program startup or 18247 * in documentation (online or textual) provided with the package. 18248 * 18249 * Redistribution and use in source and binary forms, with or without 18250 * modification, are permitted provided that the following conditions 18251 * are met: 18252 * 1. Redistributions of source code must retain the copyright 18253 * notice, this list of conditions and the following disclaimer. 18254 * 2. Redistributions in binary form must reproduce the above copyright 18255 * notice, this list of conditions and the following disclaimer in the 18256 * documentation and/or other materials provided with the distribution. 18257 * 3. All advertising materials mentioning features or use of this software 18258 * must display the following acknowledgement: 18259 * "This product includes cryptographic software written by 18260 * Eric Young (eay@cryptsoft.com)" 18261 * The word 'cryptographic' can be left out if the rouines from the library 18262 * being used are not cryptographic related :-). 18263 * 4. If you include any Windows specific code (or a derivative thereof) from 18264 * the apps directory (application code) you must include an acknowledgement: 18265 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18266 * 18267 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18268 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18269 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18270 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18271 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18272 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18273 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18274 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18275 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18276 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18277 * SUCH DAMAGE. 18278 * 18279 * The licence and distribution terms for any publically available version or 18280 * derivative of this code cannot be changed. i.e. this code cannot simply be 18281 * copied and put under another distribution licence 18282 * [including the GNU Public Licence.] 18283 */ 18284 18285 /* 18286 * The DSS routines are based on patches supplied by 18287 * Steven Schoch <schoch@sheba.arc.nasa.gov>. He basically did the 18288 * work and I have just tweaked them a little to fit into my 18289 * stylistic vision for SSLeay :-) */ 18290 18291 18292 18293 18294 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 18295 /* e_os2.h */ 18296 /* ==================================================================== 18297 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 18298 * 18299 * Redistribution and use in source and binary forms, with or without 18300 * modification, are permitted provided that the following conditions 18301 * are met: 18302 * 18303 * 1. Redistributions of source code must retain the above copyright 18304 * notice, this list of conditions and the following disclaimer. 18305 * 18306 * 2. Redistributions in binary form must reproduce the above copyright 18307 * notice, this list of conditions and the following disclaimer in 18308 * the documentation and/or other materials provided with the 18309 * distribution. 18310 * 18311 * 3. All advertising materials mentioning features or use of this 18312 * software must display the following acknowledgment: 18313 * "This product includes software developed by the OpenSSL Project 18314 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18315 * 18316 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18317 * endorse or promote products derived from this software without 18318 * prior written permission. For written permission, please contact 18319 * openssl-core@openssl.org. 18320 * 18321 * 5. Products derived from this software may not be called "OpenSSL" 18322 * nor may "OpenSSL" appear in their names without prior written 18323 * permission of the OpenSSL Project. 18324 * 18325 * 6. Redistributions of any form whatsoever must retain the following 18326 * acknowledgment: 18327 * "This product includes software developed by the OpenSSL Project 18328 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18329 * 18330 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18331 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18332 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18333 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18334 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18335 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18336 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18337 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18338 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18339 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18340 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18341 * OF THE POSSIBILITY OF SUCH DAMAGE. 18342 * ==================================================================== 18343 * 18344 * This product includes cryptographic software written by Eric Young 18345 * (eay@cryptsoft.com). This product includes software written by Tim 18346 * Hudson (tjh@cryptsoft.com). 18347 * 18348 */ 18349 18350 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 18351 /* opensslconf.h */ 18352 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 18353 18354 18355 18356 18357 /* OpenSSL was configured with the following options: */ 18358 # 108 "/usr/include/openssl/opensslconf.h" 3 4 18359 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 18360 asks for it. This is a transient feature that is provided for those 18361 who haven't had the time to do the appropriate changes in their 18362 applications. */ 18363 # 204 "/usr/include/openssl/opensslconf.h" 3 4 18364 /* crypto/opensslconf.h.in */ 18365 18366 /* Generate 80386 code? */ 18367 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 18368 # 69 "/usr/include/openssl/dsa.h" 2 3 4 18369 18370 18371 18372 18373 18374 18375 # 1 "/usr/include/openssl/bio.h" 1 3 4 18376 /* crypto/bio/bio.h */ 18377 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18378 * All rights reserved. 18379 * 18380 * This package is an SSL implementation written 18381 * by Eric Young (eay@cryptsoft.com). 18382 * The implementation was written so as to conform with Netscapes SSL. 18383 * 18384 * This library is free for commercial and non-commercial use as long as 18385 * the following conditions are aheared to. The following conditions 18386 * apply to all code found in this distribution, be it the RC4, RSA, 18387 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18388 * included with this distribution is covered by the same copyright terms 18389 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18390 * 18391 * Copyright remains Eric Young's, and as such any Copyright notices in 18392 * the code are not to be removed. 18393 * If this package is used in a product, Eric Young should be given attribution 18394 * as the author of the parts of the library used. 18395 * This can be in the form of a textual message at program startup or 18396 * in documentation (online or textual) provided with the package. 18397 * 18398 * Redistribution and use in source and binary forms, with or without 18399 * modification, are permitted provided that the following conditions 18400 * are met: 18401 * 1. Redistributions of source code must retain the copyright 18402 * notice, this list of conditions and the following disclaimer. 18403 * 2. Redistributions in binary form must reproduce the above copyright 18404 * notice, this list of conditions and the following disclaimer in the 18405 * documentation and/or other materials provided with the distribution. 18406 * 3. All advertising materials mentioning features or use of this software 18407 * must display the following acknowledgement: 18408 * "This product includes cryptographic software written by 18409 * Eric Young (eay@cryptsoft.com)" 18410 * The word 'cryptographic' can be left out if the rouines from the library 18411 * being used are not cryptographic related :-). 18412 * 4. If you include any Windows specific code (or a derivative thereof) from 18413 * the apps directory (application code) you must include an acknowledgement: 18414 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18415 * 18416 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18417 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18418 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18419 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18420 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18421 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18422 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18423 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18424 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18425 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18426 * SUCH DAMAGE. 18427 * 18428 * The licence and distribution terms for any publically available version or 18429 * derivative of this code cannot be changed. i.e. this code cannot simply be 18430 * copied and put under another distribution licence 18431 * [including the GNU Public Licence.] 18432 */ 18433 # 76 "/usr/include/openssl/dsa.h" 2 3 4 18434 18435 # 1 "/usr/include/openssl/crypto.h" 1 3 4 18436 /* crypto/crypto.h */ 18437 /* ==================================================================== 18438 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 18439 * 18440 * Redistribution and use in source and binary forms, with or without 18441 * modification, are permitted provided that the following conditions 18442 * are met: 18443 * 18444 * 1. Redistributions of source code must retain the above copyright 18445 * notice, this list of conditions and the following disclaimer. 18446 * 18447 * 2. Redistributions in binary form must reproduce the above copyright 18448 * notice, this list of conditions and the following disclaimer in 18449 * the documentation and/or other materials provided with the 18450 * distribution. 18451 * 18452 * 3. All advertising materials mentioning features or use of this 18453 * software must display the following acknowledgment: 18454 * "This product includes software developed by the OpenSSL Project 18455 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18456 * 18457 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18458 * endorse or promote products derived from this software without 18459 * prior written permission. For written permission, please contact 18460 * openssl-core@openssl.org. 18461 * 18462 * 5. Products derived from this software may not be called "OpenSSL" 18463 * nor may "OpenSSL" appear in their names without prior written 18464 * permission of the OpenSSL Project. 18465 * 18466 * 6. Redistributions of any form whatsoever must retain the following 18467 * acknowledgment: 18468 * "This product includes software developed by the OpenSSL Project 18469 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18470 * 18471 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18472 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18473 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18474 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18475 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18476 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18477 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18478 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18479 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18480 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18481 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18482 * OF THE POSSIBILITY OF SUCH DAMAGE. 18483 * ==================================================================== 18484 * 18485 * This product includes cryptographic software written by Eric Young 18486 * (eay@cryptsoft.com). This product includes software written by Tim 18487 * Hudson (tjh@cryptsoft.com). 18488 * 18489 */ 18490 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18491 * All rights reserved. 18492 * 18493 * This package is an SSL implementation written 18494 * by Eric Young (eay@cryptsoft.com). 18495 * The implementation was written so as to conform with Netscapes SSL. 18496 * 18497 * This library is free for commercial and non-commercial use as long as 18498 * the following conditions are aheared to. The following conditions 18499 * apply to all code found in this distribution, be it the RC4, RSA, 18500 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18501 * included with this distribution is covered by the same copyright terms 18502 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18503 * 18504 * Copyright remains Eric Young's, and as such any Copyright notices in 18505 * the code are not to be removed. 18506 * If this package is used in a product, Eric Young should be given attribution 18507 * as the author of the parts of the library used. 18508 * This can be in the form of a textual message at program startup or 18509 * in documentation (online or textual) provided with the package. 18510 * 18511 * Redistribution and use in source and binary forms, with or without 18512 * modification, are permitted provided that the following conditions 18513 * are met: 18514 * 1. Redistributions of source code must retain the copyright 18515 * notice, this list of conditions and the following disclaimer. 18516 * 2. Redistributions in binary form must reproduce the above copyright 18517 * notice, this list of conditions and the following disclaimer in the 18518 * documentation and/or other materials provided with the distribution. 18519 * 3. All advertising materials mentioning features or use of this software 18520 * must display the following acknowledgement: 18521 * "This product includes cryptographic software written by 18522 * Eric Young (eay@cryptsoft.com)" 18523 * The word 'cryptographic' can be left out if the rouines from the library 18524 * being used are not cryptographic related :-). 18525 * 4. If you include any Windows specific code (or a derivative thereof) from 18526 * the apps directory (application code) you must include an acknowledgement: 18527 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18528 * 18529 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18530 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18531 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18532 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18533 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18534 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18535 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18536 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18537 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18538 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18539 * SUCH DAMAGE. 18540 * 18541 * The licence and distribution terms for any publically available version or 18542 * derivative of this code cannot be changed. i.e. this code cannot simply be 18543 * copied and put under another distribution licence 18544 * [including the GNU Public Licence.] 18545 */ 18546 /* ==================================================================== 18547 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 18548 * ECDH support in OpenSSL originally developed by 18549 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 18550 */ 18551 # 78 "/usr/include/openssl/dsa.h" 2 3 4 18552 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 18553 /* ==================================================================== 18554 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 18555 * 18556 * Redistribution and use in source and binary forms, with or without 18557 * modification, are permitted provided that the following conditions 18558 * are met: 18559 * 18560 * 1. Redistributions of source code must retain the above copyright 18561 * notice, this list of conditions and the following disclaimer. 18562 * 18563 * 2. Redistributions in binary form must reproduce the above copyright 18564 * notice, this list of conditions and the following disclaimer in 18565 * the documentation and/or other materials provided with the 18566 * distribution. 18567 * 18568 * 3. All advertising materials mentioning features or use of this 18569 * software must display the following acknowledgment: 18570 * "This product includes software developed by the OpenSSL Project 18571 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18572 * 18573 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18574 * endorse or promote products derived from this software without 18575 * prior written permission. For written permission, please contact 18576 * openssl-core@openssl.org. 18577 * 18578 * 5. Products derived from this software may not be called "OpenSSL" 18579 * nor may "OpenSSL" appear in their names without prior written 18580 * permission of the OpenSSL Project. 18581 * 18582 * 6. Redistributions of any form whatsoever must retain the following 18583 * acknowledgment: 18584 * "This product includes software developed by the OpenSSL Project 18585 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18586 * 18587 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18588 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18589 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18590 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18591 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18592 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18593 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18594 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18595 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18596 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18597 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18598 * OF THE POSSIBILITY OF SUCH DAMAGE. 18599 * ==================================================================== 18600 * 18601 * This product includes cryptographic software written by Eric Young 18602 * (eay@cryptsoft.com). This product includes software written by Tim 18603 * Hudson (tjh@cryptsoft.com). 18604 * 18605 */ 18606 # 79 "/usr/include/openssl/dsa.h" 2 3 4 18607 18608 18609 # 1 "/usr/include/openssl/bn.h" 1 3 4 18610 /* crypto/bn/bn.h */ 18611 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 18612 * All rights reserved. 18613 * 18614 * This package is an SSL implementation written 18615 * by Eric Young (eay@cryptsoft.com). 18616 * The implementation was written so as to conform with Netscapes SSL. 18617 * 18618 * This library is free for commercial and non-commercial use as long as 18619 * the following conditions are aheared to. The following conditions 18620 * apply to all code found in this distribution, be it the RC4, RSA, 18621 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18622 * included with this distribution is covered by the same copyright terms 18623 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18624 * 18625 * Copyright remains Eric Young's, and as such any Copyright notices in 18626 * the code are not to be removed. 18627 * If this package is used in a product, Eric Young should be given attribution 18628 * as the author of the parts of the library used. 18629 * This can be in the form of a textual message at program startup or 18630 * in documentation (online or textual) provided with the package. 18631 * 18632 * Redistribution and use in source and binary forms, with or without 18633 * modification, are permitted provided that the following conditions 18634 * are met: 18635 * 1. Redistributions of source code must retain the copyright 18636 * notice, this list of conditions and the following disclaimer. 18637 * 2. Redistributions in binary form must reproduce the above copyright 18638 * notice, this list of conditions and the following disclaimer in the 18639 * documentation and/or other materials provided with the distribution. 18640 * 3. All advertising materials mentioning features or use of this software 18641 * must display the following acknowledgement: 18642 * "This product includes cryptographic software written by 18643 * Eric Young (eay@cryptsoft.com)" 18644 * The word 'cryptographic' can be left out if the rouines from the library 18645 * being used are not cryptographic related :-). 18646 * 4. If you include any Windows specific code (or a derivative thereof) from 18647 * the apps directory (application code) you must include an acknowledgement: 18648 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18649 * 18650 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18651 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18652 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18653 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18654 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18655 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18656 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18657 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18658 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18659 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18660 * SUCH DAMAGE. 18661 * 18662 * The licence and distribution terms for any publically available version or 18663 * derivative of this code cannot be changed. i.e. this code cannot simply be 18664 * copied and put under another distribution licence 18665 * [including the GNU Public Licence.] 18666 */ 18667 /* ==================================================================== 18668 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 18669 * 18670 * Redistribution and use in source and binary forms, with or without 18671 * modification, are permitted provided that the following conditions 18672 * are met: 18673 * 18674 * 1. Redistributions of source code must retain the above copyright 18675 * notice, this list of conditions and the following disclaimer. 18676 * 18677 * 2. Redistributions in binary form must reproduce the above copyright 18678 * notice, this list of conditions and the following disclaimer in 18679 * the documentation and/or other materials provided with the 18680 * distribution. 18681 * 18682 * 3. All advertising materials mentioning features or use of this 18683 * software must display the following acknowledgment: 18684 * "This product includes software developed by the OpenSSL Project 18685 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18686 * 18687 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18688 * endorse or promote products derived from this software without 18689 * prior written permission. For written permission, please contact 18690 * openssl-core@openssl.org. 18691 * 18692 * 5. Products derived from this software may not be called "OpenSSL" 18693 * nor may "OpenSSL" appear in their names without prior written 18694 * permission of the OpenSSL Project. 18695 * 18696 * 6. Redistributions of any form whatsoever must retain the following 18697 * acknowledgment: 18698 * "This product includes software developed by the OpenSSL Project 18699 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18700 * 18701 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18702 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18703 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18704 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18705 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18706 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18707 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18708 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18709 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18710 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18711 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18712 * OF THE POSSIBILITY OF SUCH DAMAGE. 18713 * ==================================================================== 18714 * 18715 * This product includes cryptographic software written by Eric Young 18716 * (eay@cryptsoft.com). This product includes software written by Tim 18717 * Hudson (tjh@cryptsoft.com). 18718 * 18719 */ 18720 /* ==================================================================== 18721 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 18722 * 18723 * Portions of the attached software ("Contribution") are developed by 18724 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 18725 * 18726 * The Contribution is licensed pursuant to the Eric Young open source 18727 * license provided above. 18728 * 18729 * The binary polynomial arithmetic software is originally written by 18730 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 18731 * 18732 */ 18733 # 82 "/usr/include/openssl/dsa.h" 2 3 4 18734 18735 # 1 "/usr/include/openssl/dh.h" 1 3 4 18736 /* crypto/dh/dh.h */ 18737 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18738 * All rights reserved. 18739 * 18740 * This package is an SSL implementation written 18741 * by Eric Young (eay@cryptsoft.com). 18742 * The implementation was written so as to conform with Netscapes SSL. 18743 * 18744 * This library is free for commercial and non-commercial use as long as 18745 * the following conditions are aheared to. The following conditions 18746 * apply to all code found in this distribution, be it the RC4, RSA, 18747 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18748 * included with this distribution is covered by the same copyright terms 18749 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18750 * 18751 * Copyright remains Eric Young's, and as such any Copyright notices in 18752 * the code are not to be removed. 18753 * If this package is used in a product, Eric Young should be given attribution 18754 * as the author of the parts of the library used. 18755 * This can be in the form of a textual message at program startup or 18756 * in documentation (online or textual) provided with the package. 18757 * 18758 * Redistribution and use in source and binary forms, with or without 18759 * modification, are permitted provided that the following conditions 18760 * are met: 18761 * 1. Redistributions of source code must retain the copyright 18762 * notice, this list of conditions and the following disclaimer. 18763 * 2. Redistributions in binary form must reproduce the above copyright 18764 * notice, this list of conditions and the following disclaimer in the 18765 * documentation and/or other materials provided with the distribution. 18766 * 3. All advertising materials mentioning features or use of this software 18767 * must display the following acknowledgement: 18768 * "This product includes cryptographic software written by 18769 * Eric Young (eay@cryptsoft.com)" 18770 * The word 'cryptographic' can be left out if the rouines from the library 18771 * being used are not cryptographic related :-). 18772 * 4. If you include any Windows specific code (or a derivative thereof) from 18773 * the apps directory (application code) you must include an acknowledgement: 18774 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18775 * 18776 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18777 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18778 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18779 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18780 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18781 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18782 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18783 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18784 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18785 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18786 * SUCH DAMAGE. 18787 * 18788 * The licence and distribution terms for any publically available version or 18789 * derivative of this code cannot be changed. i.e. this code cannot simply be 18790 * copied and put under another distribution licence 18791 * [including the GNU Public Licence.] 18792 */ 18793 18794 18795 18796 18797 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 18798 /* e_os2.h */ 18799 /* ==================================================================== 18800 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 18801 * 18802 * Redistribution and use in source and binary forms, with or without 18803 * modification, are permitted provided that the following conditions 18804 * are met: 18805 * 18806 * 1. Redistributions of source code must retain the above copyright 18807 * notice, this list of conditions and the following disclaimer. 18808 * 18809 * 2. Redistributions in binary form must reproduce the above copyright 18810 * notice, this list of conditions and the following disclaimer in 18811 * the documentation and/or other materials provided with the 18812 * distribution. 18813 * 18814 * 3. All advertising materials mentioning features or use of this 18815 * software must display the following acknowledgment: 18816 * "This product includes software developed by the OpenSSL Project 18817 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18818 * 18819 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18820 * endorse or promote products derived from this software without 18821 * prior written permission. For written permission, please contact 18822 * openssl-core@openssl.org. 18823 * 18824 * 5. Products derived from this software may not be called "OpenSSL" 18825 * nor may "OpenSSL" appear in their names without prior written 18826 * permission of the OpenSSL Project. 18827 * 18828 * 6. Redistributions of any form whatsoever must retain the following 18829 * acknowledgment: 18830 * "This product includes software developed by the OpenSSL Project 18831 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18832 * 18833 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18834 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18835 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18836 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18837 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18838 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18839 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18840 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18841 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18842 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18843 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18844 * OF THE POSSIBILITY OF SUCH DAMAGE. 18845 * ==================================================================== 18846 * 18847 * This product includes cryptographic software written by Eric Young 18848 * (eay@cryptsoft.com). This product includes software written by Tim 18849 * Hudson (tjh@cryptsoft.com). 18850 * 18851 */ 18852 18853 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 18854 /* opensslconf.h */ 18855 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 18856 18857 18858 18859 18860 /* OpenSSL was configured with the following options: */ 18861 # 108 "/usr/include/openssl/opensslconf.h" 3 4 18862 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 18863 asks for it. This is a transient feature that is provided for those 18864 who haven't had the time to do the appropriate changes in their 18865 applications. */ 18866 # 204 "/usr/include/openssl/opensslconf.h" 3 4 18867 /* crypto/opensslconf.h.in */ 18868 18869 /* Generate 80386 code? */ 18870 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 18871 # 63 "/usr/include/openssl/dh.h" 2 3 4 18872 18873 18874 18875 18876 18877 18878 # 1 "/usr/include/openssl/bio.h" 1 3 4 18879 /* crypto/bio/bio.h */ 18880 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 18881 * All rights reserved. 18882 * 18883 * This package is an SSL implementation written 18884 * by Eric Young (eay@cryptsoft.com). 18885 * The implementation was written so as to conform with Netscapes SSL. 18886 * 18887 * This library is free for commercial and non-commercial use as long as 18888 * the following conditions are aheared to. The following conditions 18889 * apply to all code found in this distribution, be it the RC4, RSA, 18890 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 18891 * included with this distribution is covered by the same copyright terms 18892 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 18893 * 18894 * Copyright remains Eric Young's, and as such any Copyright notices in 18895 * the code are not to be removed. 18896 * If this package is used in a product, Eric Young should be given attribution 18897 * as the author of the parts of the library used. 18898 * This can be in the form of a textual message at program startup or 18899 * in documentation (online or textual) provided with the package. 18900 * 18901 * Redistribution and use in source and binary forms, with or without 18902 * modification, are permitted provided that the following conditions 18903 * are met: 18904 * 1. Redistributions of source code must retain the copyright 18905 * notice, this list of conditions and the following disclaimer. 18906 * 2. Redistributions in binary form must reproduce the above copyright 18907 * notice, this list of conditions and the following disclaimer in the 18908 * documentation and/or other materials provided with the distribution. 18909 * 3. All advertising materials mentioning features or use of this software 18910 * must display the following acknowledgement: 18911 * "This product includes cryptographic software written by 18912 * Eric Young (eay@cryptsoft.com)" 18913 * The word 'cryptographic' can be left out if the rouines from the library 18914 * being used are not cryptographic related :-). 18915 * 4. If you include any Windows specific code (or a derivative thereof) from 18916 * the apps directory (application code) you must include an acknowledgement: 18917 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 18918 * 18919 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 18920 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18921 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18922 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18923 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18924 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 18925 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18926 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 18927 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 18928 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 18929 * SUCH DAMAGE. 18930 * 18931 * The licence and distribution terms for any publically available version or 18932 * derivative of this code cannot be changed. i.e. this code cannot simply be 18933 * copied and put under another distribution licence 18934 * [including the GNU Public Licence.] 18935 */ 18936 # 70 "/usr/include/openssl/dh.h" 2 3 4 18937 18938 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 18939 /* ==================================================================== 18940 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 18941 * 18942 * Redistribution and use in source and binary forms, with or without 18943 * modification, are permitted provided that the following conditions 18944 * are met: 18945 * 18946 * 1. Redistributions of source code must retain the above copyright 18947 * notice, this list of conditions and the following disclaimer. 18948 * 18949 * 2. Redistributions in binary form must reproduce the above copyright 18950 * notice, this list of conditions and the following disclaimer in 18951 * the documentation and/or other materials provided with the 18952 * distribution. 18953 * 18954 * 3. All advertising materials mentioning features or use of this 18955 * software must display the following acknowledgment: 18956 * "This product includes software developed by the OpenSSL Project 18957 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 18958 * 18959 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 18960 * endorse or promote products derived from this software without 18961 * prior written permission. For written permission, please contact 18962 * openssl-core@openssl.org. 18963 * 18964 * 5. Products derived from this software may not be called "OpenSSL" 18965 * nor may "OpenSSL" appear in their names without prior written 18966 * permission of the OpenSSL Project. 18967 * 18968 * 6. Redistributions of any form whatsoever must retain the following 18969 * acknowledgment: 18970 * "This product includes software developed by the OpenSSL Project 18971 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 18972 * 18973 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 18974 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18975 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18976 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 18977 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 18978 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18979 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18980 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 18981 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 18982 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 18983 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 18984 * OF THE POSSIBILITY OF SUCH DAMAGE. 18985 * ==================================================================== 18986 * 18987 * This product includes cryptographic software written by Eric Young 18988 * (eay@cryptsoft.com). This product includes software written by Tim 18989 * Hudson (tjh@cryptsoft.com). 18990 * 18991 */ 18992 # 72 "/usr/include/openssl/dh.h" 2 3 4 18993 18994 # 1 "/usr/include/openssl/bn.h" 1 3 4 18995 /* crypto/bn/bn.h */ 18996 /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 18997 * All rights reserved. 18998 * 18999 * This package is an SSL implementation written 19000 * by Eric Young (eay@cryptsoft.com). 19001 * The implementation was written so as to conform with Netscapes SSL. 19002 * 19003 * This library is free for commercial and non-commercial use as long as 19004 * the following conditions are aheared to. The following conditions 19005 * apply to all code found in this distribution, be it the RC4, RSA, 19006 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19007 * included with this distribution is covered by the same copyright terms 19008 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19009 * 19010 * Copyright remains Eric Young's, and as such any Copyright notices in 19011 * the code are not to be removed. 19012 * If this package is used in a product, Eric Young should be given attribution 19013 * as the author of the parts of the library used. 19014 * This can be in the form of a textual message at program startup or 19015 * in documentation (online or textual) provided with the package. 19016 * 19017 * Redistribution and use in source and binary forms, with or without 19018 * modification, are permitted provided that the following conditions 19019 * are met: 19020 * 1. Redistributions of source code must retain the copyright 19021 * notice, this list of conditions and the following disclaimer. 19022 * 2. Redistributions in binary form must reproduce the above copyright 19023 * notice, this list of conditions and the following disclaimer in the 19024 * documentation and/or other materials provided with the distribution. 19025 * 3. All advertising materials mentioning features or use of this software 19026 * must display the following acknowledgement: 19027 * "This product includes cryptographic software written by 19028 * Eric Young (eay@cryptsoft.com)" 19029 * The word 'cryptographic' can be left out if the rouines from the library 19030 * being used are not cryptographic related :-). 19031 * 4. If you include any Windows specific code (or a derivative thereof) from 19032 * the apps directory (application code) you must include an acknowledgement: 19033 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19034 * 19035 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19036 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19037 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19038 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19039 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19040 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19041 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19042 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19043 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19044 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19045 * SUCH DAMAGE. 19046 * 19047 * The licence and distribution terms for any publically available version or 19048 * derivative of this code cannot be changed. i.e. this code cannot simply be 19049 * copied and put under another distribution licence 19050 * [including the GNU Public Licence.] 19051 */ 19052 /* ==================================================================== 19053 * Copyright (c) 1998-2018 The OpenSSL Project. All rights reserved. 19054 * 19055 * Redistribution and use in source and binary forms, with or without 19056 * modification, are permitted provided that the following conditions 19057 * are met: 19058 * 19059 * 1. Redistributions of source code must retain the above copyright 19060 * notice, this list of conditions and the following disclaimer. 19061 * 19062 * 2. Redistributions in binary form must reproduce the above copyright 19063 * notice, this list of conditions and the following disclaimer in 19064 * the documentation and/or other materials provided with the 19065 * distribution. 19066 * 19067 * 3. All advertising materials mentioning features or use of this 19068 * software must display the following acknowledgment: 19069 * "This product includes software developed by the OpenSSL Project 19070 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19071 * 19072 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19073 * endorse or promote products derived from this software without 19074 * prior written permission. For written permission, please contact 19075 * openssl-core@openssl.org. 19076 * 19077 * 5. Products derived from this software may not be called "OpenSSL" 19078 * nor may "OpenSSL" appear in their names without prior written 19079 * permission of the OpenSSL Project. 19080 * 19081 * 6. Redistributions of any form whatsoever must retain the following 19082 * acknowledgment: 19083 * "This product includes software developed by the OpenSSL Project 19084 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19085 * 19086 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19087 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19088 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19089 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19090 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19091 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19092 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19093 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19094 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19095 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19096 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19097 * OF THE POSSIBILITY OF SUCH DAMAGE. 19098 * ==================================================================== 19099 * 19100 * This product includes cryptographic software written by Eric Young 19101 * (eay@cryptsoft.com). This product includes software written by Tim 19102 * Hudson (tjh@cryptsoft.com). 19103 * 19104 */ 19105 /* ==================================================================== 19106 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 19107 * 19108 * Portions of the attached software ("Contribution") are developed by 19109 * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. 19110 * 19111 * The Contribution is licensed pursuant to the Eric Young open source 19112 * license provided above. 19113 * 19114 * The binary polynomial arithmetic software is originally written by 19115 * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. 19116 * 19117 */ 19118 # 74 "/usr/include/openssl/dh.h" 2 3 4 19119 # 82 "/usr/include/openssl/dh.h" 3 4 19120 /* 19121 * new with 0.9.7h; the built-in DH 19122 * implementation now uses constant time 19123 * modular exponentiation for secret exponents 19124 * by default. This flag causes the 19125 * faster variable sliding window method to 19126 * be used for all exponents. 19127 */ 19128 19129 19130 /* 19131 * If this flag is set the DH method is FIPS compliant and can be used in 19132 * FIPS mode. This is set in the validated module method. If an application 19133 * sets this flag in its own methods it is its reposibility to ensure the 19134 * result is compliant. 19135 */ 19136 19137 19138 19139 /* 19140 * If this flag is set the operations normally disabled in FIPS mode are 19141 * permitted it is then the applications responsibility to ensure that the 19142 * usage is compliant. 19143 */ 19144 19145 19146 19147 19148 19149 19150 19151 /* Already defined in ossl_typ.h */ 19152 /* typedef struct dh_st DH; */ 19153 /* typedef struct dh_method DH_METHOD; */ 19154 19155 struct dh_method { 19156 const char *name; 19157 /* Methods here */ 19158 int (*generate_key) (DH *dh); 19159 int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh); 19160 /* Can be null */ 19161 int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a, 19162 const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, 19163 BN_MONT_CTX *m_ctx); 19164 int (*init) (DH *dh); 19165 int (*finish) (DH *dh); 19166 int flags; 19167 char *app_data; 19168 /* If this is non-NULL, it will be used to generate parameters */ 19169 int (*generate_params) (DH *dh, int prime_len, int generator, 19170 BN_GENCB *cb); 19171 }; 19172 19173 struct dh_st { 19174 /* 19175 * This first argument is used to pick up errors when a DH is passed 19176 * instead of a EVP_PKEY 19177 */ 19178 int pad; 19179 int version; 19180 BIGNUM *p; 19181 BIGNUM *g; 19182 long length; /* optional */ 19183 BIGNUM *pub_key; /* g^x % p */ 19184 BIGNUM *priv_key; /* x */ 19185 int flags; 19186 BN_MONT_CTX *method_mont_p; 19187 /* Place holders if we want to do X9.42 DH */ 19188 BIGNUM *q; 19189 BIGNUM *j; 19190 unsigned char *seed; 19191 int seedlen; 19192 BIGNUM *counter; 19193 int references; 19194 CRYPTO_EX_DATA ex_data; 19195 const DH_METHOD *meth; 19196 ENGINE *engine; 19197 }; 19198 19199 19200 /* #define DH_GENERATOR_3 3 */ 19201 19202 19203 /* DH_check error codes */ 19204 # 174 "/usr/include/openssl/dh.h" 3 4 19205 /* DH_check_pub_key error codes */ 19206 19207 19208 19209 19210 /* 19211 * primes p where (p-1)/2 is prime too are called "safe"; we define this for 19212 * backward compatibility: 19213 */ 19214 # 209 "/usr/include/openssl/dh.h" 3 4 19215 DH *DHparams_dup(DH *); 19216 19217 const DH_METHOD *DH_OpenSSL(void); 19218 19219 void DH_set_default_method(const DH_METHOD *meth); 19220 const DH_METHOD *DH_get_default_method(void); 19221 int DH_set_method(DH *dh, const DH_METHOD *meth); 19222 DH *DH_new_method(ENGINE *engine); 19223 19224 DH *DH_new(void); 19225 void DH_free(DH *dh); 19226 int DH_up_ref(DH *dh); 19227 int DH_size(const DH *dh); 19228 int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 19229 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 19230 int DH_set_ex_data(DH *d, int idx, void *arg); 19231 void *DH_get_ex_data(DH *d, int idx); 19232 19233 /* Deprecated version */ 19234 19235 DH *DH_generate_parameters(int prime_len, int generator, 19236 void (*callback) (int, int, void *), void *cb_arg); 19237 19238 19239 /* New version */ 19240 int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, 19241 BN_GENCB *cb); 19242 19243 int DH_check(const DH *dh, int *codes); 19244 int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); 19245 int DH_generate_key(DH *dh); 19246 int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); 19247 int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); 19248 DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); 19249 int i2d_DHparams(const DH *a, unsigned char **pp); 19250 DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); 19251 int i2d_DHxparams(const DH *a, unsigned char **pp); 19252 19253 int DHparams_print_fp(FILE *fp, const DH *x); 19254 19255 19256 int DHparams_print(BIO *bp, const DH *x); 19257 19258 19259 19260 19261 /* RFC 5114 parameters */ 19262 DH *DH_get_1024_160(void); 19263 DH *DH_get_2048_224(void); 19264 DH *DH_get_2048_256(void); 19265 19266 19267 /* RFC2631 KDF */ 19268 int DH_KDF_X9_42(unsigned char *out, size_t outlen, 19269 const unsigned char *Z, size_t Zlen, 19270 ASN1_OBJECT *key_oid, 19271 const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); 19272 # 357 "/usr/include/openssl/dh.h" 3 4 19273 /* KDF types */ 19274 19275 19276 19277 /* BEGIN ERROR CODES */ 19278 /* 19279 * The following lines are auto generated by the script mkerr.pl. Any changes 19280 * made after this point may be overwritten when the script is next run. 19281 */ 19282 void ERR_load_DH_strings(void); 19283 19284 /* Error codes for the DH functions. */ 19285 19286 /* Function codes. */ 19287 # 392 "/usr/include/openssl/dh.h" 3 4 19288 /* Reason codes. */ 19289 # 84 "/usr/include/openssl/dsa.h" 2 3 4 19290 # 92 "/usr/include/openssl/dsa.h" 3 4 19291 /* 19292 * new with 0.9.7h; the built-in DSA implementation now uses constant time 19293 * modular exponentiation for secret exponents by default. This flag causes 19294 * the faster variable sliding window method to be used for all exponents. 19295 */ 19296 19297 19298 /* 19299 * If this flag is set the DSA method is FIPS compliant and can be used in 19300 * FIPS mode. This is set in the validated module method. If an application 19301 * sets this flag in its own methods it is its reposibility to ensure the 19302 * result is compliant. 19303 */ 19304 19305 19306 19307 /* 19308 * If this flag is set the operations normally disabled in FIPS mode are 19309 * permitted it is then the applications responsibility to ensure that the 19310 * usage is compliant. 19311 */ 19312 19313 19314 19315 19316 19317 19318 19319 /* Already defined in ossl_typ.h */ 19320 /* typedef struct dsa_st DSA; */ 19321 /* typedef struct dsa_method DSA_METHOD; */ 19322 19323 typedef struct DSA_SIG_st { 19324 BIGNUM *r; 19325 BIGNUM *s; 19326 } DSA_SIG; 19327 19328 struct dsa_method { 19329 const char *name; 19330 DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa); 19331 int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, 19332 BIGNUM **rp); 19333 int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len, 19334 DSA_SIG *sig, DSA *dsa); 19335 int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, 19336 BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, 19337 BN_MONT_CTX *in_mont); 19338 /* Can be null */ 19339 int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, 19340 const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); 19341 int (*init) (DSA *dsa); 19342 int (*finish) (DSA *dsa); 19343 int flags; 19344 char *app_data; 19345 /* If this is non-NULL, it is used to generate DSA parameters */ 19346 int (*dsa_paramgen) (DSA *dsa, int bits, 19347 const unsigned char *seed, int seed_len, 19348 int *counter_ret, unsigned long *h_ret, 19349 BN_GENCB *cb); 19350 /* If this is non-NULL, it is used to generate DSA keys */ 19351 int (*dsa_keygen) (DSA *dsa); 19352 }; 19353 19354 struct dsa_st { 19355 /* 19356 * This first variable is used to pick up errors where a DSA is passed 19357 * instead of of a EVP_PKEY 19358 */ 19359 int pad; 19360 long version; 19361 int write_params; 19362 BIGNUM *p; 19363 BIGNUM *q; /* == 20 */ 19364 BIGNUM *g; 19365 BIGNUM *pub_key; /* y public key */ 19366 BIGNUM *priv_key; /* x private key */ 19367 BIGNUM *kinv; /* Signing pre-calc */ 19368 BIGNUM *r; /* Signing pre-calc */ 19369 int flags; 19370 /* Normally used to cache montgomery values */ 19371 BN_MONT_CTX *method_mont_p; 19372 int references; 19373 CRYPTO_EX_DATA ex_data; 19374 const DSA_METHOD *meth; 19375 /* functional reference if 'meth' is ENGINE-provided */ 19376 ENGINE *engine; 19377 }; 19378 # 187 "/usr/include/openssl/dsa.h" 3 4 19379 DSA *DSAparams_dup(DSA *x); 19380 DSA_SIG *DSA_SIG_new(void); 19381 void DSA_SIG_free(DSA_SIG *a); 19382 int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); 19383 DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); 19384 19385 DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); 19386 int DSA_do_verify(const unsigned char *dgst, int dgst_len, 19387 DSA_SIG *sig, DSA *dsa); 19388 19389 const DSA_METHOD *DSA_OpenSSL(void); 19390 19391 void DSA_set_default_method(const DSA_METHOD *); 19392 const DSA_METHOD *DSA_get_default_method(void); 19393 int DSA_set_method(DSA *dsa, const DSA_METHOD *); 19394 19395 DSA *DSA_new(void); 19396 DSA *DSA_new_method(ENGINE *engine); 19397 void DSA_free(DSA *r); 19398 /* "up" the DSA object's reference count */ 19399 int DSA_up_ref(DSA *r); 19400 int DSA_size(const DSA *); 19401 /* next 4 return -1 on error */ 19402 int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); 19403 int DSA_sign(int type, const unsigned char *dgst, int dlen, 19404 unsigned char *sig, unsigned int *siglen, DSA *dsa); 19405 int DSA_verify(int type, const unsigned char *dgst, int dgst_len, 19406 const unsigned char *sigbuf, int siglen, DSA *dsa); 19407 int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 19408 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 19409 int DSA_set_ex_data(DSA *d, int idx, void *arg); 19410 void *DSA_get_ex_data(DSA *d, int idx); 19411 19412 DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); 19413 DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); 19414 DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); 19415 19416 /* Deprecated version */ 19417 19418 DSA *DSA_generate_parameters(int bits, 19419 unsigned char *seed, int seed_len, 19420 int *counter_ret, unsigned long *h_ret, void 19421 (*callback) (int, int, void *), void *cb_arg); 19422 19423 19424 /* New version */ 19425 int DSA_generate_parameters_ex(DSA *dsa, int bits, 19426 const unsigned char *seed, int seed_len, 19427 int *counter_ret, unsigned long *h_ret, 19428 BN_GENCB *cb); 19429 19430 int DSA_generate_key(DSA *a); 19431 int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); 19432 int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); 19433 int i2d_DSAparams(const DSA *a, unsigned char **pp); 19434 19435 19436 int DSAparams_print(BIO *bp, const DSA *x); 19437 int DSA_print(BIO *bp, const DSA *x, int off); 19438 19439 19440 int DSAparams_print_fp(FILE *fp, const DSA *x); 19441 int DSA_print_fp(FILE *bp, const DSA *x, int off); 19442 19443 19444 19445 /* 19446 * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only 19447 * have one value here we set the number of checks to 64 which is the 128 bit 19448 * security level that is the highest level and valid for creating a 3072 bit 19449 * DSA key. 19450 */ 19451 19452 19453 19454 19455 /* 19456 * Convert DSA structure (key or just parameters) into DH structure (be 19457 * careful to avoid small subgroup attacks when using this!) 19458 */ 19459 DH *DSA_dup_DH(const DSA *r); 19460 # 278 "/usr/include/openssl/dsa.h" 3 4 19461 /* BEGIN ERROR CODES */ 19462 /* 19463 * The following lines are auto generated by the script mkerr.pl. Any changes 19464 * made after this point may be overwritten when the script is next run. 19465 */ 19466 void ERR_load_DSA_strings(void); 19467 19468 /* Error codes for the DSA functions. */ 19469 19470 /* Function codes. */ 19471 # 316 "/usr/include/openssl/dsa.h" 3 4 19472 /* Reason codes. */ 19473 # 100 "/usr/include/openssl/x509.h" 2 3 4 19474 19475 19476 # 1 "/usr/include/openssl/dh.h" 1 3 4 19477 /* crypto/dh/dh.h */ 19478 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19479 * All rights reserved. 19480 * 19481 * This package is an SSL implementation written 19482 * by Eric Young (eay@cryptsoft.com). 19483 * The implementation was written so as to conform with Netscapes SSL. 19484 * 19485 * This library is free for commercial and non-commercial use as long as 19486 * the following conditions are aheared to. The following conditions 19487 * apply to all code found in this distribution, be it the RC4, RSA, 19488 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19489 * included with this distribution is covered by the same copyright terms 19490 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19491 * 19492 * Copyright remains Eric Young's, and as such any Copyright notices in 19493 * the code are not to be removed. 19494 * If this package is used in a product, Eric Young should be given attribution 19495 * as the author of the parts of the library used. 19496 * This can be in the form of a textual message at program startup or 19497 * in documentation (online or textual) provided with the package. 19498 * 19499 * Redistribution and use in source and binary forms, with or without 19500 * modification, are permitted provided that the following conditions 19501 * are met: 19502 * 1. Redistributions of source code must retain the copyright 19503 * notice, this list of conditions and the following disclaimer. 19504 * 2. Redistributions in binary form must reproduce the above copyright 19505 * notice, this list of conditions and the following disclaimer in the 19506 * documentation and/or other materials provided with the distribution. 19507 * 3. All advertising materials mentioning features or use of this software 19508 * must display the following acknowledgement: 19509 * "This product includes cryptographic software written by 19510 * Eric Young (eay@cryptsoft.com)" 19511 * The word 'cryptographic' can be left out if the rouines from the library 19512 * being used are not cryptographic related :-). 19513 * 4. If you include any Windows specific code (or a derivative thereof) from 19514 * the apps directory (application code) you must include an acknowledgement: 19515 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19516 * 19517 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19518 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19519 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19520 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19521 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19522 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19523 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19524 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19525 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19526 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19527 * SUCH DAMAGE. 19528 * 19529 * The licence and distribution terms for any publically available version or 19530 * derivative of this code cannot be changed. i.e. this code cannot simply be 19531 * copied and put under another distribution licence 19532 * [including the GNU Public Licence.] 19533 */ 19534 # 103 "/usr/include/openssl/x509.h" 2 3 4 19535 19536 19537 19538 19539 # 1 "/usr/include/openssl/sha.h" 1 3 4 19540 /* crypto/sha/sha.h */ 19541 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 19542 * All rights reserved. 19543 * 19544 * This package is an SSL implementation written 19545 * by Eric Young (eay@cryptsoft.com). 19546 * The implementation was written so as to conform with Netscapes SSL. 19547 * 19548 * This library is free for commercial and non-commercial use as long as 19549 * the following conditions are aheared to. The following conditions 19550 * apply to all code found in this distribution, be it the RC4, RSA, 19551 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 19552 * included with this distribution is covered by the same copyright terms 19553 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 19554 * 19555 * Copyright remains Eric Young's, and as such any Copyright notices in 19556 * the code are not to be removed. 19557 * If this package is used in a product, Eric Young should be given attribution 19558 * as the author of the parts of the library used. 19559 * This can be in the form of a textual message at program startup or 19560 * in documentation (online or textual) provided with the package. 19561 * 19562 * Redistribution and use in source and binary forms, with or without 19563 * modification, are permitted provided that the following conditions 19564 * are met: 19565 * 1. Redistributions of source code must retain the copyright 19566 * notice, this list of conditions and the following disclaimer. 19567 * 2. Redistributions in binary form must reproduce the above copyright 19568 * notice, this list of conditions and the following disclaimer in the 19569 * documentation and/or other materials provided with the distribution. 19570 * 3. All advertising materials mentioning features or use of this software 19571 * must display the following acknowledgement: 19572 * "This product includes cryptographic software written by 19573 * Eric Young (eay@cryptsoft.com)" 19574 * The word 'cryptographic' can be left out if the rouines from the library 19575 * being used are not cryptographic related :-). 19576 * 4. If you include any Windows specific code (or a derivative thereof) from 19577 * the apps directory (application code) you must include an acknowledgement: 19578 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 19579 * 19580 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 19581 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19582 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19583 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19584 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19585 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19586 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19587 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 19588 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 19589 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 19590 * SUCH DAMAGE. 19591 * 19592 * The licence and distribution terms for any publically available version or 19593 * derivative of this code cannot be changed. i.e. this code cannot simply be 19594 * copied and put under another distribution licence 19595 * [including the GNU Public Licence.] 19596 */ 19597 19598 19599 19600 19601 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 19602 /* e_os2.h */ 19603 /* ==================================================================== 19604 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 19605 * 19606 * Redistribution and use in source and binary forms, with or without 19607 * modification, are permitted provided that the following conditions 19608 * are met: 19609 * 19610 * 1. Redistributions of source code must retain the above copyright 19611 * notice, this list of conditions and the following disclaimer. 19612 * 19613 * 2. Redistributions in binary form must reproduce the above copyright 19614 * notice, this list of conditions and the following disclaimer in 19615 * the documentation and/or other materials provided with the 19616 * distribution. 19617 * 19618 * 3. All advertising materials mentioning features or use of this 19619 * software must display the following acknowledgment: 19620 * "This product includes software developed by the OpenSSL Project 19621 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19622 * 19623 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19624 * endorse or promote products derived from this software without 19625 * prior written permission. For written permission, please contact 19626 * openssl-core@openssl.org. 19627 * 19628 * 5. Products derived from this software may not be called "OpenSSL" 19629 * nor may "OpenSSL" appear in their names without prior written 19630 * permission of the OpenSSL Project. 19631 * 19632 * 6. Redistributions of any form whatsoever must retain the following 19633 * acknowledgment: 19634 * "This product includes software developed by the OpenSSL Project 19635 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19636 * 19637 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19638 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19639 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19640 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19641 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19642 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19643 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19644 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19645 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19646 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19647 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19648 * OF THE POSSIBILITY OF SUCH DAMAGE. 19649 * ==================================================================== 19650 * 19651 * This product includes cryptographic software written by Eric Young 19652 * (eay@cryptsoft.com). This product includes software written by Tim 19653 * Hudson (tjh@cryptsoft.com). 19654 * 19655 */ 19656 19657 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 19658 /* opensslconf.h */ 19659 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 19660 19661 19662 19663 19664 /* OpenSSL was configured with the following options: */ 19665 # 108 "/usr/include/openssl/opensslconf.h" 3 4 19666 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 19667 asks for it. This is a transient feature that is provided for those 19668 who haven't had the time to do the appropriate changes in their 19669 applications. */ 19670 # 204 "/usr/include/openssl/opensslconf.h" 3 4 19671 /* crypto/opensslconf.h.in */ 19672 19673 /* Generate 80386 code? */ 19674 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 19675 # 63 "/usr/include/openssl/sha.h" 2 3 4 19676 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stddef.h" 1 3 4 19677 /* 19678 * CDDL HEADER START 19679 * 19680 * The contents of this file are subject to the terms of the 19681 * Common Development and Distribution License, Version 1.0 only 19682 * (the "License"). You may not use this file except in compliance 19683 * with the License. 19684 * 19685 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 19686 * or http://www.opensolaris.org/os/licensing. 19687 * See the License for the specific language governing permissions 19688 * and limitations under the License. 19689 * 19690 * When distributing Covered Code, include this CDDL HEADER in each 19691 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 19692 * If applicable, add the following below this CDDL HEADER, with the 19693 * fields enclosed by brackets "[]" replaced with your own identifying 19694 * information: Portions Copyright [yyyy] [name of copyright owner] 19695 * 19696 * CDDL HEADER END 19697 */ 19698 /* Copyright (c) 1988 AT&T */ 19699 /* All Rights Reserved */ 19700 19701 19702 /* 19703 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 19704 * Use is subject to license terms. 19705 */ 19706 # 64 "/usr/include/openssl/sha.h" 2 3 4 19707 # 77 "/usr/include/openssl/sha.h" 3 4 19708 /*- 19709 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 19710 * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! 19711 * ! SHA_LONG_LOG2 has to be defined along. ! 19712 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 19713 */ 19714 # 100 "/usr/include/openssl/sha.h" 3 4 19715 typedef struct SHAstate_st { 19716 unsigned int h0, h1, h2, h3, h4; 19717 unsigned int Nl, Nh; 19718 unsigned int data[16]; 19719 unsigned int num; 19720 } SHA_CTX; 19721 19722 19723 19724 19725 19726 int SHA_Init(SHA_CTX *c); 19727 int SHA_Update(SHA_CTX *c, const void *data, size_t len); 19728 int SHA_Final(unsigned char *md, SHA_CTX *c); 19729 unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); 19730 void SHA_Transform(SHA_CTX *c, const unsigned char *data); 19731 19732 19733 19734 19735 19736 int SHA1_Init(SHA_CTX *c); 19737 int SHA1_Update(SHA_CTX *c, const void *data, size_t len); 19738 int SHA1_Final(unsigned char *md, SHA_CTX *c); 19739 unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); 19740 void SHA1_Transform(SHA_CTX *c, const unsigned char *data); 19741 # 134 "/usr/include/openssl/sha.h" 3 4 19742 typedef struct SHA256state_st { 19743 unsigned int h[8]; 19744 unsigned int Nl, Nh; 19745 unsigned int data[16]; 19746 unsigned int num, md_len; 19747 } SHA256_CTX; 19748 19749 19750 19751 19752 19753 19754 int SHA224_Init(SHA256_CTX *c); 19755 int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); 19756 int SHA224_Final(unsigned char *md, SHA256_CTX *c); 19757 unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); 19758 int SHA256_Init(SHA256_CTX *c); 19759 int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); 19760 int SHA256_Final(unsigned char *md, SHA256_CTX *c); 19761 unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); 19762 void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); 19763 19764 19765 19766 19767 19768 19769 /* 19770 * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 19771 * being exactly 64-bit wide. See Implementation Notes in sha512.c 19772 * for further details. 19773 */ 19774 /* 19775 * SHA-512 treats input data as a 19776 * contiguous array of 64 bit 19777 * wide big-endian values. 19778 */ 19779 # 183 "/usr/include/openssl/sha.h" 3 4 19780 typedef struct SHA512state_st { 19781 unsigned long long h[8]; 19782 unsigned long long Nl, Nh; 19783 union { 19784 unsigned long long d[16]; 19785 unsigned char p[(16*8)]; 19786 } u; 19787 unsigned int num, md_len; 19788 } SHA512_CTX; 19789 19790 19791 19792 19793 19794 19795 19796 int SHA384_Init(SHA512_CTX *c); 19797 int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); 19798 int SHA384_Final(unsigned char *md, SHA512_CTX *c); 19799 unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); 19800 int SHA512_Init(SHA512_CTX *c); 19801 int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); 19802 int SHA512_Final(unsigned char *md, SHA512_CTX *c); 19803 unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); 19804 void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); 19805 # 108 "/usr/include/openssl/x509.h" 2 3 4 19806 19807 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 19808 /* ==================================================================== 19809 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 19810 * 19811 * Redistribution and use in source and binary forms, with or without 19812 * modification, are permitted provided that the following conditions 19813 * are met: 19814 * 19815 * 1. Redistributions of source code must retain the above copyright 19816 * notice, this list of conditions and the following disclaimer. 19817 * 19818 * 2. Redistributions in binary form must reproduce the above copyright 19819 * notice, this list of conditions and the following disclaimer in 19820 * the documentation and/or other materials provided with the 19821 * distribution. 19822 * 19823 * 3. All advertising materials mentioning features or use of this 19824 * software must display the following acknowledgment: 19825 * "This product includes software developed by the OpenSSL Project 19826 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 19827 * 19828 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 19829 * endorse or promote products derived from this software without 19830 * prior written permission. For written permission, please contact 19831 * openssl-core@openssl.org. 19832 * 19833 * 5. Products derived from this software may not be called "OpenSSL" 19834 * nor may "OpenSSL" appear in their names without prior written 19835 * permission of the OpenSSL Project. 19836 * 19837 * 6. Redistributions of any form whatsoever must retain the following 19838 * acknowledgment: 19839 * "This product includes software developed by the OpenSSL Project 19840 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 19841 * 19842 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 19843 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19844 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 19845 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 19846 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19847 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19848 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 19849 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 19850 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 19851 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 19852 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 19853 * OF THE POSSIBILITY OF SUCH DAMAGE. 19854 * ==================================================================== 19855 * 19856 * This product includes cryptographic software written by Eric Young 19857 * (eay@cryptsoft.com). This product includes software written by Tim 19858 * Hudson (tjh@cryptsoft.com). 19859 * 19860 */ 19861 # 110 "/usr/include/openssl/x509.h" 2 3 4 19862 # 137 "/usr/include/openssl/x509.h" 3 4 19863 typedef struct X509_objects_st { 19864 int nid; 19865 int (*a2i) (void); 19866 int (*i2a) (void); 19867 } X509_OBJECTS; 19868 19869 struct X509_algor_st { 19870 ASN1_OBJECT *algorithm; 19871 ASN1_TYPE *parameter; 19872 } /* X509_ALGOR */ ; 19873 19874 19875 19876 typedef struct stack_st_X509_ALGOR X509_ALGORS; 19877 19878 typedef struct X509_val_st { 19879 ASN1_TIME *notBefore; 19880 ASN1_TIME *notAfter; 19881 } X509_VAL; 19882 19883 struct X509_pubkey_st { 19884 X509_ALGOR *algor; 19885 ASN1_BIT_STRING *public_key; 19886 EVP_PKEY *pkey; 19887 }; 19888 19889 typedef struct X509_sig_st { 19890 X509_ALGOR *algor; 19891 ASN1_OCTET_STRING *digest; 19892 } X509_SIG; 19893 19894 typedef struct X509_name_entry_st { 19895 ASN1_OBJECT *object; 19896 ASN1_STRING *value; 19897 int set; 19898 int size; /* temp variable */ 19899 } X509_NAME_ENTRY; 19900 19901 struct stack_st_X509_NAME_ENTRY { _STACK stack; }; 19902 19903 19904 /* we always keep X509_NAMEs in 2 forms. */ 19905 struct X509_name_st { 19906 struct stack_st_X509_NAME_ENTRY *entries; 19907 int modified; /* true if 'bytes' needs to be built */ 19908 19909 BUF_MEM *bytes; 19910 19911 19912 19913 /* unsigned long hash; Keep the hash around for lookups */ 19914 unsigned char *canon_enc; 19915 int canon_enclen; 19916 } /* X509_NAME */ ; 19917 19918 struct stack_st_X509_NAME { _STACK stack; }; 19919 19920 19921 19922 typedef struct X509_extension_st { 19923 ASN1_OBJECT *object; 19924 ASN1_BOOLEAN critical; 19925 ASN1_OCTET_STRING *value; 19926 } X509_EXTENSION; 19927 19928 typedef struct stack_st_X509_EXTENSION X509_EXTENSIONS; 19929 19930 struct stack_st_X509_EXTENSION { _STACK stack; }; 19931 19932 19933 /* a sequence of these are used */ 19934 typedef struct x509_attributes_st { 19935 ASN1_OBJECT *object; 19936 int single; /* 0 for a set, 1 for a single item (which is 19937 * wrong) */ 19938 union { 19939 char *ptr; 19940 /* 19941 * 0 19942 */ struct stack_st_ASN1_TYPE *set; 19943 /* 19944 * 1 19945 */ ASN1_TYPE *single; 19946 } value; 19947 } X509_ATTRIBUTE; 19948 19949 struct stack_st_X509_ATTRIBUTE { _STACK stack; }; 19950 19951 19952 typedef struct X509_req_info_st { 19953 ASN1_ENCODING enc; 19954 ASN1_INTEGER *version; 19955 X509_NAME *subject; 19956 X509_PUBKEY *pubkey; 19957 /* d=2 hl=2 l= 0 cons: cont: 00 */ 19958 struct stack_st_X509_ATTRIBUTE *attributes; /* [ 0 ] */ 19959 } X509_REQ_INFO; 19960 19961 typedef struct X509_req_st { 19962 X509_REQ_INFO *req_info; 19963 X509_ALGOR *sig_alg; 19964 ASN1_BIT_STRING *signature; 19965 int references; 19966 } X509_REQ; 19967 19968 typedef struct x509_cinf_st { 19969 ASN1_INTEGER *version; /* [ 0 ] default of v1 */ 19970 ASN1_INTEGER *serialNumber; 19971 X509_ALGOR *signature; 19972 X509_NAME *issuer; 19973 X509_VAL *validity; 19974 X509_NAME *subject; 19975 X509_PUBKEY *key; 19976 ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */ 19977 ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */ 19978 struct stack_st_X509_EXTENSION *extensions; /* [ 3 ] optional in v3 */ 19979 ASN1_ENCODING enc; 19980 } X509_CINF; 19981 19982 /* 19983 * This stuff is certificate "auxiliary info" it contains details which are 19984 * useful in certificate stores and databases. When used this is tagged onto 19985 * the end of the certificate itself 19986 */ 19987 19988 typedef struct x509_cert_aux_st { 19989 struct stack_st_ASN1_OBJECT *trust; /* trusted uses */ 19990 struct stack_st_ASN1_OBJECT *reject; /* rejected uses */ 19991 ASN1_UTF8STRING *alias; /* "friendly name" */ 19992 ASN1_OCTET_STRING *keyid; /* key id of private key */ 19993 struct stack_st_X509_ALGOR *other; /* other unspecified info */ 19994 } X509_CERT_AUX; 19995 19996 struct x509_st { 19997 X509_CINF *cert_info; 19998 X509_ALGOR *sig_alg; 19999 ASN1_BIT_STRING *signature; 20000 int valid; 20001 int references; 20002 char *name; 20003 CRYPTO_EX_DATA ex_data; 20004 /* These contain copies of various extension values */ 20005 long ex_pathlen; 20006 long ex_pcpathlen; 20007 unsigned long ex_flags; 20008 unsigned long ex_kusage; 20009 unsigned long ex_xkusage; 20010 unsigned long ex_nscert; 20011 ASN1_OCTET_STRING *skid; 20012 AUTHORITY_KEYID *akid; 20013 X509_POLICY_CACHE *policy_cache; 20014 struct stack_st_DIST_POINT *crldp; 20015 struct stack_st_GENERAL_NAME *altname; 20016 NAME_CONSTRAINTS *nc; 20017 20018 20019 20020 20021 20022 unsigned char sha1_hash[20]; 20023 20024 X509_CERT_AUX *aux; 20025 } /* X509 */ ; 20026 20027 struct stack_st_X509 { _STACK stack; }; 20028 20029 20030 /* This is used for a table of trust checking functions */ 20031 20032 typedef struct x509_trust_st { 20033 int trust; 20034 int flags; 20035 int (*check_trust) (struct x509_trust_st *, X509 *, int); 20036 char *name; 20037 int arg1; 20038 void *arg2; 20039 } X509_TRUST; 20040 20041 struct stack_st_X509_TRUST { _STACK stack; }; 20042 20043 typedef struct x509_cert_pair_st { 20044 X509 *forward; 20045 X509 *reverse; 20046 } X509_CERT_PAIR; 20047 20048 /* standard trust ids */ 20049 # 335 "/usr/include/openssl/x509.h" 3 4 20050 /* Keep these up to date! */ 20051 20052 20053 20054 /* trust_flags values */ 20055 20056 20057 20058 /* check_trust return codes */ 20059 20060 20061 20062 20063 20064 /* Flags for X509_print_ex() */ 20065 # 366 "/usr/include/openssl/x509.h" 3 4 20066 /* Flags specific to X509_NAME_print_ex() */ 20067 20068 /* The field separator information */ 20069 # 381 "/usr/include/openssl/x509.h" 3 4 20070 /* How the field name is shown */ 20071 # 392 "/usr/include/openssl/x509.h" 3 4 20072 /* 20073 * This determines if we dump fields we don't recognise: RFC2253 requires 20074 * this. 20075 */ 20076 20077 20078 20079 20080 20081 20082 /* Complete set of RFC2253 flags */ 20083 20084 20085 20086 20087 20088 20089 20090 /* readable oneline form */ 20091 20092 20093 20094 20095 20096 20097 20098 /* readable multiline form */ 20099 # 427 "/usr/include/openssl/x509.h" 3 4 20100 struct x509_revoked_st { 20101 ASN1_INTEGER *serialNumber; 20102 ASN1_TIME *revocationDate; 20103 struct stack_st_X509_EXTENSION /* optional */ *extensions; 20104 /* Set up if indirect CRL */ 20105 struct stack_st_GENERAL_NAME *issuer; 20106 /* Revocation reason */ 20107 int reason; 20108 int sequence; /* load sequence */ 20109 }; 20110 20111 struct stack_st_X509_REVOKED { _STACK stack; }; 20112 20113 20114 typedef struct X509_crl_info_st { 20115 ASN1_INTEGER *version; 20116 X509_ALGOR *sig_alg; 20117 X509_NAME *issuer; 20118 ASN1_TIME *lastUpdate; 20119 ASN1_TIME *nextUpdate; 20120 struct stack_st_X509_REVOKED *revoked; 20121 struct stack_st_X509_EXTENSION /* [0] */ *extensions; 20122 ASN1_ENCODING enc; 20123 } X509_CRL_INFO; 20124 20125 struct X509_crl_st { 20126 /* actual signature */ 20127 X509_CRL_INFO *crl; 20128 X509_ALGOR *sig_alg; 20129 ASN1_BIT_STRING *signature; 20130 int references; 20131 int flags; 20132 /* Copies of various extensions */ 20133 AUTHORITY_KEYID *akid; 20134 ISSUING_DIST_POINT *idp; 20135 /* Convenient breakdown of IDP */ 20136 int idp_flags; 20137 int idp_reasons; 20138 /* CRL and base CRL numbers for delta processing */ 20139 ASN1_INTEGER *crl_number; 20140 ASN1_INTEGER *base_crl_number; 20141 20142 unsigned char sha1_hash[20]; 20143 20144 struct stack_st_GENERAL_NAMES *issuers; 20145 const X509_CRL_METHOD *meth; 20146 void *meth_data; 20147 } /* X509_CRL */ ; 20148 20149 struct stack_st_X509_CRL { _STACK stack; }; 20150 20151 20152 typedef struct private_key_st { 20153 int version; 20154 /* The PKCS#8 data types */ 20155 X509_ALGOR *enc_algor; 20156 ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ 20157 /* When decrypted, the following will not be NULL */ 20158 EVP_PKEY *dec_pkey; 20159 /* used to encrypt and decrypt */ 20160 int key_length; 20161 char *key_data; 20162 int key_free; /* true if we should auto free key_data */ 20163 /* expanded version of 'enc_algor' */ 20164 EVP_CIPHER_INFO cipher; 20165 int references; 20166 } X509_PKEY; 20167 20168 20169 typedef struct X509_info_st { 20170 X509 *x509; 20171 X509_CRL *crl; 20172 X509_PKEY *x_pkey; 20173 EVP_CIPHER_INFO enc_cipher; 20174 int enc_len; 20175 char *enc_data; 20176 int references; 20177 } X509_INFO; 20178 20179 struct stack_st_X509_INFO { _STACK stack; }; 20180 20181 20182 /* 20183 * The next 2 structures and their 8 routines were sent to me by Pat Richard 20184 * <patr@x509.com> and are used to manipulate Netscapes spki structures - 20185 * useful if you are writing a CA web page 20186 */ 20187 typedef struct Netscape_spkac_st { 20188 X509_PUBKEY *pubkey; 20189 ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ 20190 } NETSCAPE_SPKAC; 20191 20192 typedef struct Netscape_spki_st { 20193 NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ 20194 X509_ALGOR *sig_algor; 20195 ASN1_BIT_STRING *signature; 20196 } NETSCAPE_SPKI; 20197 20198 /* Netscape certificate sequence structure */ 20199 typedef struct Netscape_certificate_sequence { 20200 ASN1_OBJECT *type; 20201 struct stack_st_X509 *certs; 20202 } NETSCAPE_CERT_SEQUENCE; 20203 20204 /*- Unused (and iv length is wrong) 20205 typedef struct CBCParameter_st 20206 { 20207 unsigned char iv[8]; 20208 } CBC_PARAM; 20209 */ 20210 20211 /* Password based encryption structure */ 20212 20213 typedef struct PBEPARAM_st { 20214 ASN1_OCTET_STRING *salt; 20215 ASN1_INTEGER *iter; 20216 } PBEPARAM; 20217 20218 /* Password based encryption V2 structures */ 20219 20220 typedef struct PBE2PARAM_st { 20221 X509_ALGOR *keyfunc; 20222 X509_ALGOR *encryption; 20223 } PBE2PARAM; 20224 20225 typedef struct PBKDF2PARAM_st { 20226 /* Usually OCTET STRING but could be anything */ 20227 ASN1_TYPE *salt; 20228 ASN1_INTEGER *iter; 20229 ASN1_INTEGER *keylength; 20230 X509_ALGOR *prf; 20231 } PBKDF2PARAM; 20232 20233 /* PKCS#8 private key info structure */ 20234 20235 struct pkcs8_priv_key_info_st { 20236 /* Flag for various broken formats */ 20237 int broken; 20238 20239 20240 20241 20242 20243 ASN1_INTEGER *version; 20244 X509_ALGOR *pkeyalg; 20245 /* Should be OCTET STRING but some are broken */ 20246 ASN1_TYPE *pkey; 20247 struct stack_st_X509_ATTRIBUTE *attributes; 20248 }; 20249 20250 20251 20252 20253 20254 # 1 "/usr/include/openssl/x509_vfy.h" 1 3 4 20255 /* crypto/x509/x509_vfy.h */ 20256 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20257 * All rights reserved. 20258 * 20259 * This package is an SSL implementation written 20260 * by Eric Young (eay@cryptsoft.com). 20261 * The implementation was written so as to conform with Netscapes SSL. 20262 * 20263 * This library is free for commercial and non-commercial use as long as 20264 * the following conditions are aheared to. The following conditions 20265 * apply to all code found in this distribution, be it the RC4, RSA, 20266 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20267 * included with this distribution is covered by the same copyright terms 20268 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20269 * 20270 * Copyright remains Eric Young's, and as such any Copyright notices in 20271 * the code are not to be removed. 20272 * If this package is used in a product, Eric Young should be given attribution 20273 * as the author of the parts of the library used. 20274 * This can be in the form of a textual message at program startup or 20275 * in documentation (online or textual) provided with the package. 20276 * 20277 * Redistribution and use in source and binary forms, with or without 20278 * modification, are permitted provided that the following conditions 20279 * are met: 20280 * 1. Redistributions of source code must retain the copyright 20281 * notice, this list of conditions and the following disclaimer. 20282 * 2. Redistributions in binary form must reproduce the above copyright 20283 * notice, this list of conditions and the following disclaimer in the 20284 * documentation and/or other materials provided with the distribution. 20285 * 3. All advertising materials mentioning features or use of this software 20286 * must display the following acknowledgement: 20287 * "This product includes cryptographic software written by 20288 * Eric Young (eay@cryptsoft.com)" 20289 * The word 'cryptographic' can be left out if the rouines from the library 20290 * being used are not cryptographic related :-). 20291 * 4. If you include any Windows specific code (or a derivative thereof) from 20292 * the apps directory (application code) you must include an acknowledgement: 20293 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20294 * 20295 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20296 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20297 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20298 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20299 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20300 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20301 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20302 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20303 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20304 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20305 * SUCH DAMAGE. 20306 * 20307 * The licence and distribution terms for any publically available version or 20308 * derivative of this code cannot be changed. i.e. this code cannot simply be 20309 * copied and put under another distribution licence 20310 * [including the GNU Public Licence.] 20311 */ 20312 # 70 "/usr/include/openssl/x509_vfy.h" 3 4 20313 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 20314 /* opensslconf.h */ 20315 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 20316 20317 20318 20319 20320 /* OpenSSL was configured with the following options: */ 20321 # 108 "/usr/include/openssl/opensslconf.h" 3 4 20322 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 20323 asks for it. This is a transient feature that is provided for those 20324 who haven't had the time to do the appropriate changes in their 20325 applications. */ 20326 # 204 "/usr/include/openssl/opensslconf.h" 3 4 20327 /* crypto/opensslconf.h.in */ 20328 20329 /* Generate 80386 code? */ 20330 # 71 "/usr/include/openssl/x509_vfy.h" 2 3 4 20331 20332 # 1 "/usr/include/openssl/lhash.h" 1 3 4 20333 /* crypto/lhash/lhash.h */ 20334 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20335 * All rights reserved. 20336 * 20337 * This package is an SSL implementation written 20338 * by Eric Young (eay@cryptsoft.com). 20339 * The implementation was written so as to conform with Netscapes SSL. 20340 * 20341 * This library is free for commercial and non-commercial use as long as 20342 * the following conditions are aheared to. The following conditions 20343 * apply to all code found in this distribution, be it the RC4, RSA, 20344 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20345 * included with this distribution is covered by the same copyright terms 20346 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20347 * 20348 * Copyright remains Eric Young's, and as such any Copyright notices in 20349 * the code are not to be removed. 20350 * If this package is used in a product, Eric Young should be given attribution 20351 * as the author of the parts of the library used. 20352 * This can be in the form of a textual message at program startup or 20353 * in documentation (online or textual) provided with the package. 20354 * 20355 * Redistribution and use in source and binary forms, with or without 20356 * modification, are permitted provided that the following conditions 20357 * are met: 20358 * 1. Redistributions of source code must retain the copyright 20359 * notice, this list of conditions and the following disclaimer. 20360 * 2. Redistributions in binary form must reproduce the above copyright 20361 * notice, this list of conditions and the following disclaimer in the 20362 * documentation and/or other materials provided with the distribution. 20363 * 3. All advertising materials mentioning features or use of this software 20364 * must display the following acknowledgement: 20365 * "This product includes cryptographic software written by 20366 * Eric Young (eay@cryptsoft.com)" 20367 * The word 'cryptographic' can be left out if the rouines from the library 20368 * being used are not cryptographic related :-). 20369 * 4. If you include any Windows specific code (or a derivative thereof) from 20370 * the apps directory (application code) you must include an acknowledgement: 20371 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20372 * 20373 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20374 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20375 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20376 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20377 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20378 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20379 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20380 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20381 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20382 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20383 * SUCH DAMAGE. 20384 * 20385 * The licence and distribution terms for any publically available version or 20386 * derivative of this code cannot be changed. i.e. this code cannot simply be 20387 * copied and put under another distribution licence 20388 * [including the GNU Public Licence.] 20389 */ 20390 20391 /* 20392 * Header for dynamic hash table routines Author - Eric Young 20393 */ 20394 20395 20396 20397 20398 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 20399 /* e_os2.h */ 20400 /* ==================================================================== 20401 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 20402 * 20403 * Redistribution and use in source and binary forms, with or without 20404 * modification, are permitted provided that the following conditions 20405 * are met: 20406 * 20407 * 1. Redistributions of source code must retain the above copyright 20408 * notice, this list of conditions and the following disclaimer. 20409 * 20410 * 2. Redistributions in binary form must reproduce the above copyright 20411 * notice, this list of conditions and the following disclaimer in 20412 * the documentation and/or other materials provided with the 20413 * distribution. 20414 * 20415 * 3. All advertising materials mentioning features or use of this 20416 * software must display the following acknowledgment: 20417 * "This product includes software developed by the OpenSSL Project 20418 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20419 * 20420 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20421 * endorse or promote products derived from this software without 20422 * prior written permission. For written permission, please contact 20423 * openssl-core@openssl.org. 20424 * 20425 * 5. Products derived from this software may not be called "OpenSSL" 20426 * nor may "OpenSSL" appear in their names without prior written 20427 * permission of the OpenSSL Project. 20428 * 20429 * 6. Redistributions of any form whatsoever must retain the following 20430 * acknowledgment: 20431 * "This product includes software developed by the OpenSSL Project 20432 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20433 * 20434 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20435 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20436 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20437 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20438 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20439 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20440 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20441 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20442 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20443 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20444 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20445 * OF THE POSSIBILITY OF SUCH DAMAGE. 20446 * ==================================================================== 20447 * 20448 * This product includes cryptographic software written by Eric Young 20449 * (eay@cryptsoft.com). This product includes software written by Tim 20450 * Hudson (tjh@cryptsoft.com). 20451 * 20452 */ 20453 20454 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 20455 /* opensslconf.h */ 20456 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 20457 20458 20459 20460 20461 /* OpenSSL was configured with the following options: */ 20462 # 108 "/usr/include/openssl/opensslconf.h" 3 4 20463 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 20464 asks for it. This is a transient feature that is provided for those 20465 who haven't had the time to do the appropriate changes in their 20466 applications. */ 20467 # 204 "/usr/include/openssl/opensslconf.h" 3 4 20468 /* crypto/opensslconf.h.in */ 20469 20470 /* Generate 80386 code? */ 20471 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 20472 # 67 "/usr/include/openssl/lhash.h" 2 3 4 20473 20474 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 3 4 20475 /* 20476 * CDDL HEADER START 20477 * 20478 * The contents of this file are subject to the terms of the 20479 * Common Development and Distribution License (the "License"). 20480 * You may not use this file except in compliance with the License. 20481 * 20482 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 20483 * or http://www.opensolaris.org/os/licensing. 20484 * See the License for the specific language governing permissions 20485 * and limitations under the License. 20486 * 20487 * When distributing Covered Code, include this CDDL HEADER in each 20488 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 20489 * If applicable, add the following below this CDDL HEADER, with the 20490 * fields enclosed by brackets "[]" replaced with your own identifying 20491 * information: Portions Copyright [yyyy] [name of copyright owner] 20492 * 20493 * CDDL HEADER END 20494 */ 20495 20496 /* 20497 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 20498 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 20499 */ 20500 20501 /* Copyright (c) 1988 AT&T */ 20502 /* All Rights Reserved */ 20503 20504 /* 20505 * User-visible pieces of the ANSI C standard I/O package. 20506 */ 20507 # 69 "/usr/include/openssl/lhash.h" 2 3 4 20508 20509 20510 20511 # 1 "/usr/include/openssl/bio.h" 1 3 4 20512 /* crypto/bio/bio.h */ 20513 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20514 * All rights reserved. 20515 * 20516 * This package is an SSL implementation written 20517 * by Eric Young (eay@cryptsoft.com). 20518 * The implementation was written so as to conform with Netscapes SSL. 20519 * 20520 * This library is free for commercial and non-commercial use as long as 20521 * the following conditions are aheared to. The following conditions 20522 * apply to all code found in this distribution, be it the RC4, RSA, 20523 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20524 * included with this distribution is covered by the same copyright terms 20525 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20526 * 20527 * Copyright remains Eric Young's, and as such any Copyright notices in 20528 * the code are not to be removed. 20529 * If this package is used in a product, Eric Young should be given attribution 20530 * as the author of the parts of the library used. 20531 * This can be in the form of a textual message at program startup or 20532 * in documentation (online or textual) provided with the package. 20533 * 20534 * Redistribution and use in source and binary forms, with or without 20535 * modification, are permitted provided that the following conditions 20536 * are met: 20537 * 1. Redistributions of source code must retain the copyright 20538 * notice, this list of conditions and the following disclaimer. 20539 * 2. Redistributions in binary form must reproduce the above copyright 20540 * notice, this list of conditions and the following disclaimer in the 20541 * documentation and/or other materials provided with the distribution. 20542 * 3. All advertising materials mentioning features or use of this software 20543 * must display the following acknowledgement: 20544 * "This product includes cryptographic software written by 20545 * Eric Young (eay@cryptsoft.com)" 20546 * The word 'cryptographic' can be left out if the rouines from the library 20547 * being used are not cryptographic related :-). 20548 * 4. If you include any Windows specific code (or a derivative thereof) from 20549 * the apps directory (application code) you must include an acknowledgement: 20550 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20551 * 20552 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20553 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20554 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20555 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20556 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20557 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20558 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20559 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20560 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20561 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20562 * SUCH DAMAGE. 20563 * 20564 * The licence and distribution terms for any publically available version or 20565 * derivative of this code cannot be changed. i.e. this code cannot simply be 20566 * copied and put under another distribution licence 20567 * [including the GNU Public Licence.] 20568 */ 20569 # 73 "/usr/include/openssl/lhash.h" 2 3 4 20570 20571 20572 20573 20574 20575 20576 typedef struct lhash_node_st { 20577 void *data; 20578 struct lhash_node_st *next; 20579 20580 unsigned long hash; 20581 20582 } LHASH_NODE; 20583 20584 typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *); 20585 typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *); 20586 typedef void (*LHASH_DOALL_FN_TYPE) (void *); 20587 typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); 20588 20589 /* 20590 * Macros for declaring and implementing type-safe wrappers for LHASH 20591 * callbacks. This way, callbacks can be provided to LHASH structures without 20592 * function pointer casting and the macro-defined callbacks provide 20593 * per-variable casting before deferring to the underlying type-specific 20594 * callbacks. NB: It is possible to place a "static" in front of both the 20595 * DECLARE and IMPLEMENT macros if the functions are strictly internal. 20596 */ 20597 20598 /* First: "hash" functions */ 20599 # 110 "/usr/include/openssl/lhash.h" 3 4 20600 /* Second: "compare" functions */ 20601 # 120 "/usr/include/openssl/lhash.h" 3 4 20602 /* Third: "doall" functions */ 20603 # 129 "/usr/include/openssl/lhash.h" 3 4 20604 /* Fourth: "doall_arg" functions */ 20605 # 139 "/usr/include/openssl/lhash.h" 3 4 20606 typedef struct lhash_st { 20607 LHASH_NODE **b; 20608 LHASH_COMP_FN_TYPE comp; 20609 LHASH_HASH_FN_TYPE hash; 20610 unsigned int num_nodes; 20611 unsigned int num_alloc_nodes; 20612 unsigned int p; 20613 unsigned int pmax; 20614 unsigned long up_load; /* load times 256 */ 20615 unsigned long down_load; /* load times 256 */ 20616 unsigned long num_items; 20617 unsigned long num_expands; 20618 unsigned long num_expand_reallocs; 20619 unsigned long num_contracts; 20620 unsigned long num_contract_reallocs; 20621 unsigned long num_hash_calls; 20622 unsigned long num_comp_calls; 20623 unsigned long num_insert; 20624 unsigned long num_replace; 20625 unsigned long num_delete; 20626 unsigned long num_no_delete; 20627 unsigned long num_retrieve; 20628 unsigned long num_retrieve_miss; 20629 unsigned long num_hash_comps; 20630 int error; 20631 } _LHASH; /* Do not use _LHASH directly, use LHASH_OF 20632 * and friends */ 20633 20634 20635 20636 /* 20637 * Indicates a malloc() error in the last call, this is only bad in 20638 * lh_insert(). 20639 */ 20640 20641 20642 _LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); 20643 void lh_free(_LHASH *lh); 20644 void *lh_insert(_LHASH *lh, void *data); 20645 void *lh_delete(_LHASH *lh, const void *data); 20646 void *lh_retrieve(_LHASH *lh, const void *data); 20647 void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); 20648 void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); 20649 unsigned long lh_strhash(const char *c); 20650 unsigned long lh_num_items(const _LHASH *lh); 20651 20652 20653 void lh_stats(const _LHASH *lh, FILE *out); 20654 void lh_node_stats(const _LHASH *lh, FILE *out); 20655 void lh_node_usage_stats(const _LHASH *lh, FILE *out); 20656 20657 20658 20659 void lh_stats_bio(const _LHASH *lh, BIO *out); 20660 void lh_node_stats_bio(const _LHASH *lh, BIO *out); 20661 void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); 20662 20663 20664 /* Type checking... */ 20665 # 206 "/usr/include/openssl/lhash.h" 3 4 20666 /* Define wrapper functions. */ 20667 # 233 "/usr/include/openssl/lhash.h" 3 4 20668 struct lhash_st_OPENSSL_STRING { int dummy; }; 20669 struct lhash_st_OPENSSL_CSTRING { int dummy; }; 20670 # 73 "/usr/include/openssl/x509_vfy.h" 2 3 4 20671 20672 # 1 "/usr/include/openssl/bio.h" 1 3 4 20673 /* crypto/bio/bio.h */ 20674 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20675 * All rights reserved. 20676 * 20677 * This package is an SSL implementation written 20678 * by Eric Young (eay@cryptsoft.com). 20679 * The implementation was written so as to conform with Netscapes SSL. 20680 * 20681 * This library is free for commercial and non-commercial use as long as 20682 * the following conditions are aheared to. The following conditions 20683 * apply to all code found in this distribution, be it the RC4, RSA, 20684 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20685 * included with this distribution is covered by the same copyright terms 20686 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20687 * 20688 * Copyright remains Eric Young's, and as such any Copyright notices in 20689 * the code are not to be removed. 20690 * If this package is used in a product, Eric Young should be given attribution 20691 * as the author of the parts of the library used. 20692 * This can be in the form of a textual message at program startup or 20693 * in documentation (online or textual) provided with the package. 20694 * 20695 * Redistribution and use in source and binary forms, with or without 20696 * modification, are permitted provided that the following conditions 20697 * are met: 20698 * 1. Redistributions of source code must retain the copyright 20699 * notice, this list of conditions and the following disclaimer. 20700 * 2. Redistributions in binary form must reproduce the above copyright 20701 * notice, this list of conditions and the following disclaimer in the 20702 * documentation and/or other materials provided with the distribution. 20703 * 3. All advertising materials mentioning features or use of this software 20704 * must display the following acknowledgement: 20705 * "This product includes cryptographic software written by 20706 * Eric Young (eay@cryptsoft.com)" 20707 * The word 'cryptographic' can be left out if the rouines from the library 20708 * being used are not cryptographic related :-). 20709 * 4. If you include any Windows specific code (or a derivative thereof) from 20710 * the apps directory (application code) you must include an acknowledgement: 20711 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20712 * 20713 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20714 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20715 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20716 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20717 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20718 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20719 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20720 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20721 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20722 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20723 * SUCH DAMAGE. 20724 * 20725 * The licence and distribution terms for any publically available version or 20726 * derivative of this code cannot be changed. i.e. this code cannot simply be 20727 * copied and put under another distribution licence 20728 * [including the GNU Public Licence.] 20729 */ 20730 # 75 "/usr/include/openssl/x509_vfy.h" 2 3 4 20731 # 1 "/usr/include/openssl/crypto.h" 1 3 4 20732 /* crypto/crypto.h */ 20733 /* ==================================================================== 20734 * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. 20735 * 20736 * Redistribution and use in source and binary forms, with or without 20737 * modification, are permitted provided that the following conditions 20738 * are met: 20739 * 20740 * 1. Redistributions of source code must retain the above copyright 20741 * notice, this list of conditions and the following disclaimer. 20742 * 20743 * 2. Redistributions in binary form must reproduce the above copyright 20744 * notice, this list of conditions and the following disclaimer in 20745 * the documentation and/or other materials provided with the 20746 * distribution. 20747 * 20748 * 3. All advertising materials mentioning features or use of this 20749 * software must display the following acknowledgment: 20750 * "This product includes software developed by the OpenSSL Project 20751 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20752 * 20753 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20754 * endorse or promote products derived from this software without 20755 * prior written permission. For written permission, please contact 20756 * openssl-core@openssl.org. 20757 * 20758 * 5. Products derived from this software may not be called "OpenSSL" 20759 * nor may "OpenSSL" appear in their names without prior written 20760 * permission of the OpenSSL Project. 20761 * 20762 * 6. Redistributions of any form whatsoever must retain the following 20763 * acknowledgment: 20764 * "This product includes software developed by the OpenSSL Project 20765 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20766 * 20767 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20768 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20769 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20770 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20771 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20772 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20773 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20774 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20775 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20776 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20777 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20778 * OF THE POSSIBILITY OF SUCH DAMAGE. 20779 * ==================================================================== 20780 * 20781 * This product includes cryptographic software written by Eric Young 20782 * (eay@cryptsoft.com). This product includes software written by Tim 20783 * Hudson (tjh@cryptsoft.com). 20784 * 20785 */ 20786 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 20787 * All rights reserved. 20788 * 20789 * This package is an SSL implementation written 20790 * by Eric Young (eay@cryptsoft.com). 20791 * The implementation was written so as to conform with Netscapes SSL. 20792 * 20793 * This library is free for commercial and non-commercial use as long as 20794 * the following conditions are aheared to. The following conditions 20795 * apply to all code found in this distribution, be it the RC4, RSA, 20796 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 20797 * included with this distribution is covered by the same copyright terms 20798 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 20799 * 20800 * Copyright remains Eric Young's, and as such any Copyright notices in 20801 * the code are not to be removed. 20802 * If this package is used in a product, Eric Young should be given attribution 20803 * as the author of the parts of the library used. 20804 * This can be in the form of a textual message at program startup or 20805 * in documentation (online or textual) provided with the package. 20806 * 20807 * Redistribution and use in source and binary forms, with or without 20808 * modification, are permitted provided that the following conditions 20809 * are met: 20810 * 1. Redistributions of source code must retain the copyright 20811 * notice, this list of conditions and the following disclaimer. 20812 * 2. Redistributions in binary form must reproduce the above copyright 20813 * notice, this list of conditions and the following disclaimer in the 20814 * documentation and/or other materials provided with the distribution. 20815 * 3. All advertising materials mentioning features or use of this software 20816 * must display the following acknowledgement: 20817 * "This product includes cryptographic software written by 20818 * Eric Young (eay@cryptsoft.com)" 20819 * The word 'cryptographic' can be left out if the rouines from the library 20820 * being used are not cryptographic related :-). 20821 * 4. If you include any Windows specific code (or a derivative thereof) from 20822 * the apps directory (application code) you must include an acknowledgement: 20823 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 20824 * 20825 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 20826 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20827 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20828 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20829 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20830 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20831 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20832 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 20833 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 20834 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 20835 * SUCH DAMAGE. 20836 * 20837 * The licence and distribution terms for any publically available version or 20838 * derivative of this code cannot be changed. i.e. this code cannot simply be 20839 * copied and put under another distribution licence 20840 * [including the GNU Public Licence.] 20841 */ 20842 /* ==================================================================== 20843 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 20844 * ECDH support in OpenSSL originally developed by 20845 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 20846 */ 20847 # 76 "/usr/include/openssl/x509_vfy.h" 2 3 4 20848 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 20849 /* ==================================================================== 20850 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 20851 * 20852 * Redistribution and use in source and binary forms, with or without 20853 * modification, are permitted provided that the following conditions 20854 * are met: 20855 * 20856 * 1. Redistributions of source code must retain the above copyright 20857 * notice, this list of conditions and the following disclaimer. 20858 * 20859 * 2. Redistributions in binary form must reproduce the above copyright 20860 * notice, this list of conditions and the following disclaimer in 20861 * the documentation and/or other materials provided with the 20862 * distribution. 20863 * 20864 * 3. All advertising materials mentioning features or use of this 20865 * software must display the following acknowledgment: 20866 * "This product includes software developed by the OpenSSL Project 20867 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 20868 * 20869 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 20870 * endorse or promote products derived from this software without 20871 * prior written permission. For written permission, please contact 20872 * openssl-core@openssl.org. 20873 * 20874 * 5. Products derived from this software may not be called "OpenSSL" 20875 * nor may "OpenSSL" appear in their names without prior written 20876 * permission of the OpenSSL Project. 20877 * 20878 * 6. Redistributions of any form whatsoever must retain the following 20879 * acknowledgment: 20880 * "This product includes software developed by the OpenSSL Project 20881 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 20882 * 20883 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 20884 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20885 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20886 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 20887 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20888 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20889 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 20890 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20891 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 20892 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 20893 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 20894 * OF THE POSSIBILITY OF SUCH DAMAGE. 20895 * ==================================================================== 20896 * 20897 * This product includes cryptographic software written by Eric Young 20898 * (eay@cryptsoft.com). This product includes software written by Tim 20899 * Hudson (tjh@cryptsoft.com). 20900 * 20901 */ 20902 # 77 "/usr/include/openssl/x509_vfy.h" 2 3 4 20903 # 92 "/usr/include/openssl/x509_vfy.h" 3 4 20904 typedef struct x509_file_st { 20905 int num_paths; /* number of paths to files or directories */ 20906 int num_alloced; 20907 char **paths; /* the list of paths or directories */ 20908 int *path_type; 20909 } X509_CERT_FILE_CTX; 20910 20911 /*******************************/ 20912 /*- 20913 SSL_CTX -> X509_STORE 20914 -> X509_LOOKUP 20915 ->X509_LOOKUP_METHOD 20916 -> X509_LOOKUP 20917 ->X509_LOOKUP_METHOD 20918 20919 SSL -> X509_STORE_CTX 20920 ->X509_STORE 20921 20922 The X509_STORE holds the tables etc for verification stuff. 20923 A X509_STORE_CTX is used while validating a single certificate. 20924 The X509_STORE has X509_LOOKUPs for looking up certs. 20925 The X509_STORE then calls a function to actually verify the 20926 certificate chain. 20927 */ 20928 20929 20930 20931 20932 20933 20934 20935 typedef struct x509_object_st { 20936 /* one of the above types */ 20937 int type; 20938 union { 20939 char *ptr; 20940 X509 *x509; 20941 X509_CRL *crl; 20942 EVP_PKEY *pkey; 20943 } data; 20944 } X509_OBJECT; 20945 20946 typedef struct x509_lookup_st X509_LOOKUP; 20947 20948 struct stack_st_X509_LOOKUP { _STACK stack; }; 20949 struct stack_st_X509_OBJECT { _STACK stack; }; 20950 20951 /* This is a static that defines the function interface */ 20952 typedef struct x509_lookup_method_st { 20953 const char *name; 20954 int (*new_item) (X509_LOOKUP *ctx); 20955 void (*free) (X509_LOOKUP *ctx); 20956 int (*init) (X509_LOOKUP *ctx); 20957 int (*shutdown) (X509_LOOKUP *ctx); 20958 int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl, 20959 char **ret); 20960 int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name, 20961 X509_OBJECT *ret); 20962 int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name, 20963 ASN1_INTEGER *serial, X509_OBJECT *ret); 20964 int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type, 20965 unsigned char *bytes, int len, 20966 X509_OBJECT *ret); 20967 int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len, 20968 X509_OBJECT *ret); 20969 } X509_LOOKUP_METHOD; 20970 20971 typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; 20972 20973 /* 20974 * This structure hold all parameters associated with a verify operation by 20975 * including an X509_VERIFY_PARAM structure in related structures the 20976 * parameters used can be customized 20977 */ 20978 20979 typedef struct X509_VERIFY_PARAM_st { 20980 char *name; 20981 time_t check_time; /* Time to use */ 20982 unsigned long inh_flags; /* Inheritance flags */ 20983 unsigned long flags; /* Various verify flags */ 20984 int purpose; /* purpose to check untrusted certificates */ 20985 int trust; /* trust setting to check */ 20986 int depth; /* Verify depth */ 20987 struct stack_st_ASN1_OBJECT *policies; /* Permissible policies */ 20988 X509_VERIFY_PARAM_ID *id; /* opaque ID data */ 20989 } X509_VERIFY_PARAM; 20990 20991 struct stack_st_X509_VERIFY_PARAM { _STACK stack; }; 20992 20993 /* 20994 * This is used to hold everything. It is used for all certificate 20995 * validation. Once we have a certificate chain, the 'verify' function is 20996 * then called to actually check the cert chain. 20997 */ 20998 struct x509_store_st { 20999 /* The following is a cache of trusted certs */ 21000 int cache; /* if true, stash any hits */ 21001 struct stack_st_X509_OBJECT *objs; /* Cache of all objects */ 21002 /* These are external lookup methods */ 21003 struct stack_st_X509_LOOKUP *get_cert_methods; 21004 X509_VERIFY_PARAM *param; 21005 /* Callbacks for various operations */ 21006 /* called to verify a certificate */ 21007 int (*verify) (X509_STORE_CTX *ctx); 21008 /* error callback */ 21009 int (*verify_cb) (int ok, X509_STORE_CTX *ctx); 21010 /* get issuers cert from ctx */ 21011 int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 21012 /* check issued */ 21013 int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); 21014 /* Check revocation status of chain */ 21015 int (*check_revocation) (X509_STORE_CTX *ctx); 21016 /* retrieve CRL */ 21017 int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); 21018 /* Check CRL validity */ 21019 int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); 21020 /* Check certificate against CRL */ 21021 int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); 21022 struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); 21023 struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); 21024 int (*cleanup) (X509_STORE_CTX *ctx); 21025 CRYPTO_EX_DATA ex_data; 21026 int references; 21027 } /* X509_STORE */ ; 21028 21029 int X509_STORE_set_depth(X509_STORE *store, int depth); 21030 21031 21032 21033 21034 /* This is the functions plus an instance of the local variables. */ 21035 struct x509_lookup_st { 21036 int init; /* have we been started */ 21037 int skip; /* don't use us. */ 21038 X509_LOOKUP_METHOD *method; /* the functions */ 21039 char *method_data; /* method data */ 21040 X509_STORE *store_ctx; /* who owns us */ 21041 } /* X509_LOOKUP */ ; 21042 21043 /* 21044 * This is a used when verifying cert chains. Since the gathering of the 21045 * cert chain can take some time (and have to be 'retried', this needs to be 21046 * kept and passed around. 21047 */ 21048 struct x509_store_ctx_st { /* X509_STORE_CTX */ 21049 X509_STORE *ctx; 21050 /* used when looking up certs */ 21051 int current_method; 21052 /* The following are set by the caller */ 21053 /* The cert to check */ 21054 X509 *cert; 21055 /* chain of X509s - untrusted - passed in */ 21056 struct stack_st_X509 *untrusted; 21057 /* set of CRLs passed in */ 21058 struct stack_st_X509_CRL *crls; 21059 X509_VERIFY_PARAM *param; 21060 /* Other info for use with get_issuer() */ 21061 void *other_ctx; 21062 /* Callbacks for various operations */ 21063 /* called to verify a certificate */ 21064 int (*verify) (X509_STORE_CTX *ctx); 21065 /* error callback */ 21066 int (*verify_cb) (int ok, X509_STORE_CTX *ctx); 21067 /* get issuers cert from ctx */ 21068 int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 21069 /* check issued */ 21070 int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); 21071 /* Check revocation status of chain */ 21072 int (*check_revocation) (X509_STORE_CTX *ctx); 21073 /* retrieve CRL */ 21074 int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); 21075 /* Check CRL validity */ 21076 int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); 21077 /* Check certificate against CRL */ 21078 int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); 21079 int (*check_policy) (X509_STORE_CTX *ctx); 21080 struct stack_st_X509 *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); 21081 struct stack_st_X509_CRL *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); 21082 int (*cleanup) (X509_STORE_CTX *ctx); 21083 /* The following is built up */ 21084 /* if 0, rebuild chain */ 21085 int valid; 21086 /* index of last untrusted cert */ 21087 int last_untrusted; 21088 /* chain of X509s - built up and trusted */ 21089 struct stack_st_X509 *chain; 21090 /* Valid policy tree */ 21091 X509_POLICY_TREE *tree; 21092 /* Require explicit policy value */ 21093 int explicit_policy; 21094 /* When something goes wrong, this is why */ 21095 int error_depth; 21096 int error; 21097 X509 *current_cert; 21098 /* cert currently being tested as valid issuer */ 21099 X509 *current_issuer; 21100 /* current CRL */ 21101 X509_CRL *current_crl; 21102 /* score of current CRL */ 21103 int current_crl_score; 21104 /* Reason mask */ 21105 unsigned int current_reasons; 21106 /* For CRL path validation: parent context */ 21107 X509_STORE_CTX *parent; 21108 CRYPTO_EX_DATA ex_data; 21109 } /* X509_STORE_CTX */ ; 21110 21111 void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); 21112 # 345 "/usr/include/openssl/x509_vfy.h" 3 4 21113 /* These are 'informational' when looking for issuer cert */ 21114 # 377 "/usr/include/openssl/x509_vfy.h" 3 4 21115 /* Suite B mode algorithm violation */ 21116 21117 21118 21119 21120 21121 21122 21123 /* Host, email and IP check errors */ 21124 21125 21126 21127 21128 /* Caller error */ 21129 21130 /* Issuer lookup error */ 21131 21132 21133 21134 21135 /* Certificate verify flags */ 21136 21137 /* Send issuer+subject checks to verify_cb */ 21138 21139 /* Use check time instead of current time */ 21140 21141 /* Lookup CRLs */ 21142 21143 /* Lookup CRLs for whole chain */ 21144 21145 /* Ignore unhandled critical extensions */ 21146 21147 /* Disable workarounds for broken certificates */ 21148 21149 /* Enable proxy certificate validation */ 21150 21151 /* Enable policy checking */ 21152 21153 /* Policy variable require-explicit-policy */ 21154 21155 /* Policy variable inhibit-any-policy */ 21156 21157 /* Policy variable inhibit-policy-mapping */ 21158 21159 /* Notify callback that policy is OK */ 21160 21161 /* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ 21162 21163 /* Delta CRL support */ 21164 21165 /* Check selfsigned CA signature */ 21166 21167 /* Use trusted store first */ 21168 21169 /* Suite B 128 bit only mode: not normally used */ 21170 21171 /* Suite B 192 bit only mode */ 21172 21173 /* Suite B 128 bit mode allowing 192 bit algorithms */ 21174 21175 21176 /* Allow partial chains if at least one certificate is in trusted store */ 21177 21178 /* 21179 * If the initial chain is not trusted, do not attempt to build an alternative 21180 * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag 21181 * will force the behaviour to match that of previous versions. 21182 */ 21183 # 453 "/usr/include/openssl/x509_vfy.h" 3 4 21184 /* Internal use: mask of policy related options */ 21185 21186 21187 21188 21189 21190 int X509_OBJECT_idx_by_subject(struct stack_st_X509_OBJECT *h, int type, 21191 X509_NAME *name); 21192 X509_OBJECT *X509_OBJECT_retrieve_by_subject(struct stack_st_X509_OBJECT *h, 21193 int type, X509_NAME *name); 21194 X509_OBJECT *X509_OBJECT_retrieve_match(struct stack_st_X509_OBJECT *h, 21195 X509_OBJECT *x); 21196 void X509_OBJECT_up_ref_count(X509_OBJECT *a); 21197 void X509_OBJECT_free_contents(X509_OBJECT *a); 21198 X509_STORE *X509_STORE_new(void); 21199 void X509_STORE_free(X509_STORE *v); 21200 21201 struct stack_st_X509 *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); 21202 struct stack_st_X509_CRL *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); 21203 int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); 21204 int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); 21205 int X509_STORE_set_trust(X509_STORE *ctx, int trust); 21206 int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); 21207 21208 void X509_STORE_set_verify_cb(X509_STORE *ctx, 21209 int (*verify_cb) (int, X509_STORE_CTX *)); 21210 21211 void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, 21212 struct stack_st_X509_CRL *(*cb) (X509_STORE_CTX 21213 *ctx, 21214 X509_NAME *nm)); 21215 21216 X509_STORE_CTX *X509_STORE_CTX_new(void); 21217 21218 int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); 21219 21220 void X509_STORE_CTX_free(X509_STORE_CTX *ctx); 21221 int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, 21222 X509 *x509, struct stack_st_X509 *chain); 21223 void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, struct stack_st_X509 *sk); 21224 void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); 21225 21226 X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); 21227 21228 X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); 21229 21230 X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); 21231 X509_LOOKUP_METHOD *X509_LOOKUP_file(void); 21232 21233 int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); 21234 int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); 21235 21236 int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name, 21237 X509_OBJECT *ret); 21238 21239 int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, 21240 long argl, char **ret); 21241 21242 21243 int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); 21244 int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); 21245 int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); 21246 21247 21248 X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); 21249 void X509_LOOKUP_free(X509_LOOKUP *ctx); 21250 int X509_LOOKUP_init(X509_LOOKUP *ctx); 21251 int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, 21252 X509_OBJECT *ret); 21253 int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, 21254 ASN1_INTEGER *serial, X509_OBJECT *ret); 21255 int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, 21256 unsigned char *bytes, int len, 21257 X509_OBJECT *ret); 21258 int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, 21259 X509_OBJECT *ret); 21260 int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); 21261 21262 21263 int X509_STORE_load_locations(X509_STORE *ctx, 21264 const char *file, const char *dir); 21265 int X509_STORE_set_default_paths(X509_STORE *ctx); 21266 21267 21268 int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, 21269 CRYPTO_EX_new *new_func, 21270 CRYPTO_EX_dup *dup_func, 21271 CRYPTO_EX_free *free_func); 21272 int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); 21273 void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); 21274 int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); 21275 void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); 21276 int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); 21277 X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); 21278 X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); 21279 X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); 21280 X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); 21281 struct stack_st_X509 *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); 21282 struct stack_st_X509 *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); 21283 void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); 21284 void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, struct stack_st_X509 *sk); 21285 void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, struct stack_st_X509_CRL *sk); 21286 int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); 21287 int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); 21288 int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, 21289 int purpose, int trust); 21290 void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); 21291 void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, 21292 time_t t); 21293 void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, 21294 int (*verify_cb) (int, X509_STORE_CTX *)); 21295 21296 X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); 21297 int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); 21298 21299 X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); 21300 void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); 21301 int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); 21302 21303 /* X509_VERIFY_PARAM functions */ 21304 21305 X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); 21306 void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); 21307 int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, 21308 const X509_VERIFY_PARAM *from); 21309 int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, 21310 const X509_VERIFY_PARAM *from); 21311 int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); 21312 int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, 21313 unsigned long flags); 21314 int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, 21315 unsigned long flags); 21316 unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); 21317 int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); 21318 int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); 21319 void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); 21320 void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); 21321 int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, 21322 ASN1_OBJECT *policy); 21323 int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, 21324 struct stack_st_ASN1_OBJECT *policies); 21325 21326 int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, 21327 const char *name, size_t namelen); 21328 int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, 21329 const char *name, size_t namelen); 21330 void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, 21331 unsigned int flags); 21332 char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); 21333 int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, 21334 const char *email, size_t emaillen); 21335 int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, 21336 const unsigned char *ip, size_t iplen); 21337 int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, 21338 const char *ipasc); 21339 21340 int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); 21341 const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); 21342 21343 int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); 21344 int X509_VERIFY_PARAM_get_count(void); 21345 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); 21346 const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); 21347 void X509_VERIFY_PARAM_table_cleanup(void); 21348 21349 int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, 21350 struct stack_st_X509 *certs, 21351 struct stack_st_ASN1_OBJECT *policy_oids, unsigned int flags); 21352 21353 void X509_policy_tree_free(X509_POLICY_TREE *tree); 21354 21355 int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); 21356 X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, 21357 int i); 21358 21359 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_policies(const 21360 X509_POLICY_TREE 21361 *tree); 21362 21363 struct stack_st_X509_POLICY_NODE *X509_policy_tree_get0_user_policies(const 21364 X509_POLICY_TREE 21365 *tree); 21366 21367 int X509_policy_level_node_count(X509_POLICY_LEVEL *level); 21368 21369 X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, 21370 int i); 21371 21372 const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); 21373 21374 struct stack_st_POLICYQUALINFO *X509_policy_node_get0_qualifiers(const 21375 X509_POLICY_NODE 21376 *node); 21377 const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE 21378 *node); 21379 # 582 "/usr/include/openssl/x509.h" 2 3 4 21380 # 1 "/usr/include/openssl/pkcs7.h" 1 3 4 21381 /* crypto/pkcs7/pkcs7.h */ 21382 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 21383 * All rights reserved. 21384 * 21385 * This package is an SSL implementation written 21386 * by Eric Young (eay@cryptsoft.com). 21387 * The implementation was written so as to conform with Netscapes SSL. 21388 * 21389 * This library is free for commercial and non-commercial use as long as 21390 * the following conditions are aheared to. The following conditions 21391 * apply to all code found in this distribution, be it the RC4, RSA, 21392 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 21393 * included with this distribution is covered by the same copyright terms 21394 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 21395 * 21396 * Copyright remains Eric Young's, and as such any Copyright notices in 21397 * the code are not to be removed. 21398 * If this package is used in a product, Eric Young should be given attribution 21399 * as the author of the parts of the library used. 21400 * This can be in the form of a textual message at program startup or 21401 * in documentation (online or textual) provided with the package. 21402 * 21403 * Redistribution and use in source and binary forms, with or without 21404 * modification, are permitted provided that the following conditions 21405 * are met: 21406 * 1. Redistributions of source code must retain the copyright 21407 * notice, this list of conditions and the following disclaimer. 21408 * 2. Redistributions in binary form must reproduce the above copyright 21409 * notice, this list of conditions and the following disclaimer in the 21410 * documentation and/or other materials provided with the distribution. 21411 * 3. All advertising materials mentioning features or use of this software 21412 * must display the following acknowledgement: 21413 * "This product includes cryptographic software written by 21414 * Eric Young (eay@cryptsoft.com)" 21415 * The word 'cryptographic' can be left out if the rouines from the library 21416 * being used are not cryptographic related :-). 21417 * 4. If you include any Windows specific code (or a derivative thereof) from 21418 * the apps directory (application code) you must include an acknowledgement: 21419 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 21420 * 21421 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 21422 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21423 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21424 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21425 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21426 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21427 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21428 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21429 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21430 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 21431 * SUCH DAMAGE. 21432 * 21433 * The licence and distribution terms for any publically available version or 21434 * derivative of this code cannot be changed. i.e. this code cannot simply be 21435 * copied and put under another distribution licence 21436 * [including the GNU Public Licence.] 21437 */ 21438 21439 21440 21441 21442 # 1 "/usr/include/openssl/asn1.h" 1 3 4 21443 /* crypto/asn1/asn1.h */ 21444 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 21445 * All rights reserved. 21446 * 21447 * This package is an SSL implementation written 21448 * by Eric Young (eay@cryptsoft.com). 21449 * The implementation was written so as to conform with Netscapes SSL. 21450 * 21451 * This library is free for commercial and non-commercial use as long as 21452 * the following conditions are aheared to. The following conditions 21453 * apply to all code found in this distribution, be it the RC4, RSA, 21454 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 21455 * included with this distribution is covered by the same copyright terms 21456 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 21457 * 21458 * Copyright remains Eric Young's, and as such any Copyright notices in 21459 * the code are not to be removed. 21460 * If this package is used in a product, Eric Young should be given attribution 21461 * as the author of the parts of the library used. 21462 * This can be in the form of a textual message at program startup or 21463 * in documentation (online or textual) provided with the package. 21464 * 21465 * Redistribution and use in source and binary forms, with or without 21466 * modification, are permitted provided that the following conditions 21467 * are met: 21468 * 1. Redistributions of source code must retain the copyright 21469 * notice, this list of conditions and the following disclaimer. 21470 * 2. Redistributions in binary form must reproduce the above copyright 21471 * notice, this list of conditions and the following disclaimer in the 21472 * documentation and/or other materials provided with the distribution. 21473 * 3. All advertising materials mentioning features or use of this software 21474 * must display the following acknowledgement: 21475 * "This product includes cryptographic software written by 21476 * Eric Young (eay@cryptsoft.com)" 21477 * The word 'cryptographic' can be left out if the rouines from the library 21478 * being used are not cryptographic related :-). 21479 * 4. If you include any Windows specific code (or a derivative thereof) from 21480 * the apps directory (application code) you must include an acknowledgement: 21481 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 21482 * 21483 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 21484 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21485 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21486 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21487 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21488 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21489 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21490 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21491 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21492 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 21493 * SUCH DAMAGE. 21494 * 21495 * The licence and distribution terms for any publically available version or 21496 * derivative of this code cannot be changed. i.e. this code cannot simply be 21497 * copied and put under another distribution licence 21498 * [including the GNU Public Licence.] 21499 */ 21500 # 63 "/usr/include/openssl/pkcs7.h" 2 3 4 21501 # 1 "/usr/include/openssl/bio.h" 1 3 4 21502 /* crypto/bio/bio.h */ 21503 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 21504 * All rights reserved. 21505 * 21506 * This package is an SSL implementation written 21507 * by Eric Young (eay@cryptsoft.com). 21508 * The implementation was written so as to conform with Netscapes SSL. 21509 * 21510 * This library is free for commercial and non-commercial use as long as 21511 * the following conditions are aheared to. The following conditions 21512 * apply to all code found in this distribution, be it the RC4, RSA, 21513 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 21514 * included with this distribution is covered by the same copyright terms 21515 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 21516 * 21517 * Copyright remains Eric Young's, and as such any Copyright notices in 21518 * the code are not to be removed. 21519 * If this package is used in a product, Eric Young should be given attribution 21520 * as the author of the parts of the library used. 21521 * This can be in the form of a textual message at program startup or 21522 * in documentation (online or textual) provided with the package. 21523 * 21524 * Redistribution and use in source and binary forms, with or without 21525 * modification, are permitted provided that the following conditions 21526 * are met: 21527 * 1. Redistributions of source code must retain the copyright 21528 * notice, this list of conditions and the following disclaimer. 21529 * 2. Redistributions in binary form must reproduce the above copyright 21530 * notice, this list of conditions and the following disclaimer in the 21531 * documentation and/or other materials provided with the distribution. 21532 * 3. All advertising materials mentioning features or use of this software 21533 * must display the following acknowledgement: 21534 * "This product includes cryptographic software written by 21535 * Eric Young (eay@cryptsoft.com)" 21536 * The word 'cryptographic' can be left out if the rouines from the library 21537 * being used are not cryptographic related :-). 21538 * 4. If you include any Windows specific code (or a derivative thereof) from 21539 * the apps directory (application code) you must include an acknowledgement: 21540 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 21541 * 21542 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 21543 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21544 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21545 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21546 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21547 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21548 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21549 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21550 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 21551 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 21552 * SUCH DAMAGE. 21553 * 21554 * The licence and distribution terms for any publically available version or 21555 * derivative of this code cannot be changed. i.e. this code cannot simply be 21556 * copied and put under another distribution licence 21557 * [including the GNU Public Licence.] 21558 */ 21559 # 64 "/usr/include/openssl/pkcs7.h" 2 3 4 21560 # 1 "/usr/include/openssl/e_os2.h" 1 3 4 21561 /* e_os2.h */ 21562 /* ==================================================================== 21563 * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. 21564 * 21565 * Redistribution and use in source and binary forms, with or without 21566 * modification, are permitted provided that the following conditions 21567 * are met: 21568 * 21569 * 1. Redistributions of source code must retain the above copyright 21570 * notice, this list of conditions and the following disclaimer. 21571 * 21572 * 2. Redistributions in binary form must reproduce the above copyright 21573 * notice, this list of conditions and the following disclaimer in 21574 * the documentation and/or other materials provided with the 21575 * distribution. 21576 * 21577 * 3. All advertising materials mentioning features or use of this 21578 * software must display the following acknowledgment: 21579 * "This product includes software developed by the OpenSSL Project 21580 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 21581 * 21582 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 21583 * endorse or promote products derived from this software without 21584 * prior written permission. For written permission, please contact 21585 * openssl-core@openssl.org. 21586 * 21587 * 5. Products derived from this software may not be called "OpenSSL" 21588 * nor may "OpenSSL" appear in their names without prior written 21589 * permission of the OpenSSL Project. 21590 * 21591 * 6. Redistributions of any form whatsoever must retain the following 21592 * acknowledgment: 21593 * "This product includes software developed by the OpenSSL Project 21594 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 21595 * 21596 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 21597 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21598 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21599 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 21600 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21601 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21602 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21603 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21604 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 21605 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 21606 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 21607 * OF THE POSSIBILITY OF SUCH DAMAGE. 21608 * ==================================================================== 21609 * 21610 * This product includes cryptographic software written by Eric Young 21611 * (eay@cryptsoft.com). This product includes software written by Tim 21612 * Hudson (tjh@cryptsoft.com). 21613 * 21614 */ 21615 21616 # 1 "/usr/include/openssl/opensslconf.h" 1 3 4 21617 /* opensslconf.h */ 21618 /* WARNING: Generated automatically from opensslconf.h.in by Configure. */ 21619 21620 21621 21622 21623 /* OpenSSL was configured with the following options: */ 21624 # 108 "/usr/include/openssl/opensslconf.h" 3 4 21625 /* The OPENSSL_NO_* macros are also defined as NO_* if the application 21626 asks for it. This is a transient feature that is provided for those 21627 who haven't had the time to do the appropriate changes in their 21628 applications. */ 21629 # 204 "/usr/include/openssl/opensslconf.h" 3 4 21630 /* crypto/opensslconf.h.in */ 21631 21632 /* Generate 80386 code? */ 21633 # 57 "/usr/include/openssl/e_os2.h" 2 3 4 21634 # 65 "/usr/include/openssl/pkcs7.h" 2 3 4 21635 21636 # 1 "/usr/include/openssl/symhacks.h" 1 3 4 21637 /* ==================================================================== 21638 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 21639 * 21640 * Redistribution and use in source and binary forms, with or without 21641 * modification, are permitted provided that the following conditions 21642 * are met: 21643 * 21644 * 1. Redistributions of source code must retain the above copyright 21645 * notice, this list of conditions and the following disclaimer. 21646 * 21647 * 2. Redistributions in binary form must reproduce the above copyright 21648 * notice, this list of conditions and the following disclaimer in 21649 * the documentation and/or other materials provided with the 21650 * distribution. 21651 * 21652 * 3. All advertising materials mentioning features or use of this 21653 * software must display the following acknowledgment: 21654 * "This product includes software developed by the OpenSSL Project 21655 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 21656 * 21657 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 21658 * endorse or promote products derived from this software without 21659 * prior written permission. For written permission, please contact 21660 * openssl-core@openssl.org. 21661 * 21662 * 5. Products derived from this software may not be called "OpenSSL" 21663 * nor may "OpenSSL" appear in their names without prior written 21664 * permission of the OpenSSL Project. 21665 * 21666 * 6. Redistributions of any form whatsoever must retain the following 21667 * acknowledgment: 21668 * "This product includes software developed by the OpenSSL Project 21669 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 21670 * 21671 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 21672 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21673 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21674 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 21675 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21676 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21677 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21678 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21679 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 21680 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 21681 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 21682 * OF THE POSSIBILITY OF SUCH DAMAGE. 21683 * ==================================================================== 21684 * 21685 * This product includes cryptographic software written by Eric Young 21686 * (eay@cryptsoft.com). This product includes software written by Tim 21687 * Hudson (tjh@cryptsoft.com). 21688 * 21689 */ 21690 # 67 "/usr/include/openssl/pkcs7.h" 2 3 4 21691 # 1 "/usr/include/openssl/ossl_typ.h" 1 3 4 21692 /* ==================================================================== 21693 * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 21694 * 21695 * Redistribution and use in source and binary forms, with or without 21696 * modification, are permitted provided that the following conditions 21697 * are met: 21698 * 21699 * 1. Redistributions of source code must retain the above copyright 21700 * notice, this list of conditions and the following disclaimer. 21701 * 21702 * 2. Redistributions in binary form must reproduce the above copyright 21703 * notice, this list of conditions and the following disclaimer in 21704 * the documentation and/or other materials provided with the 21705 * distribution. 21706 * 21707 * 3. All advertising materials mentioning features or use of this 21708 * software must display the following acknowledgment: 21709 * "This product includes software developed by the OpenSSL Project 21710 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 21711 * 21712 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 21713 * endorse or promote products derived from this software without 21714 * prior written permission. For written permission, please contact 21715 * openssl-core@openssl.org. 21716 * 21717 * 5. Products derived from this software may not be called "OpenSSL" 21718 * nor may "OpenSSL" appear in their names without prior written 21719 * permission of the OpenSSL Project. 21720 * 21721 * 6. Redistributions of any form whatsoever must retain the following 21722 * acknowledgment: 21723 * "This product includes software developed by the OpenSSL Project 21724 * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 21725 * 21726 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 21727 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21728 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21729 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 21730 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21731 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21732 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21733 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21734 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 21735 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 21736 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 21737 * OF THE POSSIBILITY OF SUCH DAMAGE. 21738 * ==================================================================== 21739 * 21740 * This product includes cryptographic software written by Eric Young 21741 * (eay@cryptsoft.com). This product includes software written by Tim 21742 * Hudson (tjh@cryptsoft.com). 21743 * 21744 */ 21745 # 68 "/usr/include/openssl/pkcs7.h" 2 3 4 21746 # 79 "/usr/include/openssl/pkcs7.h" 3 4 21747 /*- 21748 Encryption_ID DES-CBC 21749 Digest_ID MD5 21750 Digest_Encryption_ID rsaEncryption 21751 Key_Encryption_ID rsaEncryption 21752 */ 21753 21754 typedef struct pkcs7_issuer_and_serial_st { 21755 X509_NAME *issuer; 21756 ASN1_INTEGER *serial; 21757 } PKCS7_ISSUER_AND_SERIAL; 21758 21759 typedef struct pkcs7_signer_info_st { 21760 ASN1_INTEGER *version; /* version 1 */ 21761 PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 21762 X509_ALGOR *digest_alg; 21763 struct stack_st_X509_ATTRIBUTE *auth_attr; /* [ 0 ] */ 21764 X509_ALGOR *digest_enc_alg; 21765 ASN1_OCTET_STRING *enc_digest; 21766 struct stack_st_X509_ATTRIBUTE *unauth_attr; /* [ 1 ] */ 21767 /* The private key to sign with */ 21768 EVP_PKEY *pkey; 21769 } PKCS7_SIGNER_INFO; 21770 21771 struct stack_st_PKCS7_SIGNER_INFO { _STACK stack; }; 21772 21773 21774 typedef struct pkcs7_recip_info_st { 21775 ASN1_INTEGER *version; /* version 0 */ 21776 PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; 21777 X509_ALGOR *key_enc_algor; 21778 ASN1_OCTET_STRING *enc_key; 21779 X509 *cert; /* get the pub-key from this */ 21780 } PKCS7_RECIP_INFO; 21781 21782 struct stack_st_PKCS7_RECIP_INFO { _STACK stack; }; 21783 21784 21785 typedef struct pkcs7_signed_st { 21786 ASN1_INTEGER *version; /* version 1 */ 21787 struct stack_st_X509_ALGOR *md_algs; /* md used */ 21788 struct stack_st_X509 *cert; /* [ 0 ] */ 21789 struct stack_st_X509_CRL *crl; /* [ 1 ] */ 21790 struct stack_st_PKCS7_SIGNER_INFO *signer_info; 21791 struct pkcs7_st *contents; 21792 } PKCS7_SIGNED; 21793 /* 21794 * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about 21795 * merging the two 21796 */ 21797 21798 typedef struct pkcs7_enc_content_st { 21799 ASN1_OBJECT *content_type; 21800 X509_ALGOR *algorithm; 21801 ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ 21802 const EVP_CIPHER *cipher; 21803 } PKCS7_ENC_CONTENT; 21804 21805 typedef struct pkcs7_enveloped_st { 21806 ASN1_INTEGER *version; /* version 0 */ 21807 struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 21808 PKCS7_ENC_CONTENT *enc_data; 21809 } PKCS7_ENVELOPE; 21810 21811 typedef struct pkcs7_signedandenveloped_st { 21812 ASN1_INTEGER *version; /* version 1 */ 21813 struct stack_st_X509_ALGOR *md_algs; /* md used */ 21814 struct stack_st_X509 *cert; /* [ 0 ] */ 21815 struct stack_st_X509_CRL *crl; /* [ 1 ] */ 21816 struct stack_st_PKCS7_SIGNER_INFO *signer_info; 21817 PKCS7_ENC_CONTENT *enc_data; 21818 struct stack_st_PKCS7_RECIP_INFO *recipientinfo; 21819 } PKCS7_SIGN_ENVELOPE; 21820 21821 typedef struct pkcs7_digest_st { 21822 ASN1_INTEGER *version; /* version 0 */ 21823 X509_ALGOR *md; /* md used */ 21824 struct pkcs7_st *contents; 21825 ASN1_OCTET_STRING *digest; 21826 } PKCS7_DIGEST; 21827 21828 typedef struct pkcs7_encrypted_st { 21829 ASN1_INTEGER *version; /* version 0 */ 21830 PKCS7_ENC_CONTENT *enc_data; 21831 } PKCS7_ENCRYPT; 21832 21833 typedef struct pkcs7_st { 21834 /* 21835 * The following is non NULL if it contains ASN1 encoding of this 21836 * structure 21837 */ 21838 unsigned char *asn1; 21839 long length; 21840 21841 21842 21843 int state; /* used during processing */ 21844 int detached; 21845 ASN1_OBJECT *type; 21846 /* content as defined by the type */ 21847 /* 21848 * all encryption/message digests are applied to the 'contents', leaving 21849 * out the 'type' field. 21850 */ 21851 union { 21852 char *ptr; 21853 /* NID_pkcs7_data */ 21854 ASN1_OCTET_STRING *data; 21855 /* NID_pkcs7_signed */ 21856 PKCS7_SIGNED *sign; 21857 /* NID_pkcs7_enveloped */ 21858 PKCS7_ENVELOPE *enveloped; 21859 /* NID_pkcs7_signedAndEnveloped */ 21860 PKCS7_SIGN_ENVELOPE *signed_and_enveloped; 21861 /* NID_pkcs7_digest */ 21862 PKCS7_DIGEST *digest; 21863 /* NID_pkcs7_encrypted */ 21864 PKCS7_ENCRYPT *encrypted; 21865 /* Anything else */ 21866 ASN1_TYPE *other; 21867 } d; 21868 } PKCS7; 21869 21870 struct stack_st_PKCS7 { _STACK stack; }; 21871 21872 21873 # 227 "/usr/include/openssl/pkcs7.h" 3 4 21874 /* S/MIME related flags */ 21875 # 246 "/usr/include/openssl/pkcs7.h" 3 4 21876 /* Flags: for compatibility with older code */ 21877 # 258 "/usr/include/openssl/pkcs7.h" 3 4 21878 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; 21879 21880 int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, 21881 const EVP_MD *type, unsigned char *md, 21882 unsigned int *len); 21883 21884 PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); 21885 int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); 21886 21887 PKCS7 *PKCS7_dup(PKCS7 *p7); 21888 PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); 21889 int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); 21890 int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 21891 int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); 21892 21893 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; 21894 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; 21895 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; 21896 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; 21897 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; 21898 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; 21899 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; 21900 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; 21901 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; 21902 21903 extern const ASN1_ITEM PKCS7_ATTR_SIGN_it; 21904 extern const ASN1_ITEM PKCS7_ATTR_VERIFY_it; 21905 21906 int i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out); 21907 int PKCS7_print_ctx(BIO *out, PKCS7 *x, int indent, const ASN1_PCTX *pctx); 21908 21909 long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); 21910 21911 int PKCS7_set_type(PKCS7 *p7, int type); 21912 int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); 21913 int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); 21914 int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, 21915 const EVP_MD *dgst); 21916 int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); 21917 int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); 21918 int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); 21919 int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); 21920 int PKCS7_content_new(PKCS7 *p7, int nid); 21921 int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, 21922 BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); 21923 int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, 21924 X509 *x509); 21925 21926 BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); 21927 int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); 21928 BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); 21929 21930 PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, 21931 EVP_PKEY *pkey, const EVP_MD *dgst); 21932 X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); 21933 int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); 21934 struct stack_st_PKCS7_SIGNER_INFO *PKCS7_get_signer_info(PKCS7 *p7); 21935 21936 PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); 21937 void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, 21938 X509_ALGOR **pdig, X509_ALGOR **psig); 21939 void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); 21940 int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); 21941 int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); 21942 int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); 21943 int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); 21944 21945 PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); 21946 ASN1_OCTET_STRING *PKCS7_digest_from_attributes(struct stack_st_X509_ATTRIBUTE *sk); 21947 int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, 21948 void *data); 21949 int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, 21950 void *value); 21951 ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); 21952 ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); 21953 int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, 21954 struct stack_st_X509_ATTRIBUTE *sk); 21955 int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, 21956 struct stack_st_X509_ATTRIBUTE *sk); 21957 21958 PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, struct stack_st_X509 *certs, 21959 BIO *data, int flags); 21960 21961 PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, 21962 X509 *signcert, EVP_PKEY *pkey, 21963 const EVP_MD *md, int flags); 21964 21965 int PKCS7_final(PKCS7 *p7, BIO *data, int flags); 21966 int PKCS7_verify(PKCS7 *p7, struct stack_st_X509 *certs, X509_STORE *store, 21967 BIO *indata, BIO *out, int flags); 21968 struct stack_st_X509 *PKCS7_get0_signers(PKCS7 *p7, struct stack_st_X509 *certs, 21969 int flags); 21970 PKCS7 *PKCS7_encrypt(struct stack_st_X509 *certs, BIO *in, const EVP_CIPHER *cipher, 21971 int flags); 21972 int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, 21973 int flags); 21974 21975 int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, 21976 struct stack_st_X509_ALGOR *cap); 21977 struct stack_st_X509_ALGOR *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); 21978 int PKCS7_simple_smimecap(struct stack_st_X509_ALGOR *sk, int nid, int arg); 21979 21980 int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); 21981 int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); 21982 int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, 21983 const unsigned char *md, int mdlen); 21984 21985 int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); 21986 PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); 21987 21988 BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); 21989 21990 /* BEGIN ERROR CODES */ 21991 /* 21992 * The following lines are auto generated by the script mkerr.pl. Any changes 21993 * made after this point may be overwritten when the script is next run. 21994 */ 21995 void ERR_load_PKCS7_strings(void); 21996 21997 /* Error codes for the PKCS7 functions. */ 21998 21999 /* Function codes. */ 22000 # 421 "/usr/include/openssl/pkcs7.h" 3 4 22001 /* Reason codes. */ 22002 # 583 "/usr/include/openssl/x509.h" 2 3 4 22003 # 592 "/usr/include/openssl/x509.h" 3 4 22004 /* #define X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */ 22005 # 608 "/usr/include/openssl/x509.h" 3 4 22006 void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); 22007 X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), 22008 int (*crl_free) (X509_CRL *crl), 22009 int (*crl_lookup) (X509_CRL *crl, 22010 X509_REVOKED **ret, 22011 ASN1_INTEGER *ser, 22012 X509_NAME *issuer), 22013 int (*crl_verify) (X509_CRL *crl, 22014 EVP_PKEY *pk)); 22015 void X509_CRL_METHOD_free(X509_CRL_METHOD *m); 22016 22017 void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); 22018 void *X509_CRL_get_meth_data(X509_CRL *crl); 22019 22020 /* 22021 * This one is only used so that a binary form can output, as in 22022 * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) 22023 */ 22024 22025 22026 const char *X509_verify_cert_error_string(long n); 22027 22028 22029 int X509_verify(X509 *a, EVP_PKEY *r); 22030 22031 int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); 22032 int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); 22033 int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); 22034 22035 NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); 22036 char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); 22037 EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); 22038 int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); 22039 22040 int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); 22041 22042 int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); 22043 int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); 22044 22045 int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 22046 int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); 22047 int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); 22048 int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); 22049 int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); 22050 int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); 22051 int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); 22052 int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); 22053 int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); 22054 22055 int X509_pubkey_digest(const X509 *data, const EVP_MD *type, 22056 unsigned char *md, unsigned int *len); 22057 int X509_digest(const X509 *data, const EVP_MD *type, 22058 unsigned char *md, unsigned int *len); 22059 int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, 22060 unsigned char *md, unsigned int *len); 22061 int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, 22062 unsigned char *md, unsigned int *len); 22063 int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, 22064 unsigned char *md, unsigned int *len); 22065 22066 22067 22068 X509 *d2i_X509_fp(FILE *fp, X509 **x509); 22069 int i2d_X509_fp(FILE *fp, X509 *x509); 22070 X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); 22071 int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); 22072 X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); 22073 int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); 22074 22075 RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); 22076 int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); 22077 RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); 22078 int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); 22079 RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); 22080 int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); 22081 22082 22083 DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); 22084 int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); 22085 DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); 22086 int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); 22087 22088 22089 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); 22090 int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); 22091 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); 22092 int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); 22093 22094 X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); 22095 int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); 22096 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, 22097 PKCS8_PRIV_KEY_INFO **p8inf); 22098 int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); 22099 int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); 22100 int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); 22101 EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); 22102 int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); 22103 EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); 22104 22105 22106 22107 X509 *d2i_X509_bio(BIO *bp, X509 **x509); 22108 int i2d_X509_bio(BIO *bp, X509 *x509); 22109 X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); 22110 int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); 22111 X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); 22112 int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); 22113 22114 RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); 22115 int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); 22116 RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); 22117 int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); 22118 RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); 22119 int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); 22120 22121 22122 DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); 22123 int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); 22124 DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); 22125 int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); 22126 22127 22128 EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); 22129 int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); 22130 EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); 22131 int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); 22132 22133 X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); 22134 int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); 22135 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, 22136 PKCS8_PRIV_KEY_INFO **p8inf); 22137 int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); 22138 int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); 22139 int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); 22140 EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); 22141 int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); 22142 EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); 22143 22144 22145 X509 *X509_dup(X509 *x509); 22146 X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); 22147 X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); 22148 X509_CRL *X509_CRL_dup(X509_CRL *crl); 22149 X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); 22150 X509_REQ *X509_REQ_dup(X509_REQ *req); 22151 X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); 22152 int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, 22153 void *pval); 22154 void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, 22155 X509_ALGOR *algor); 22156 void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); 22157 int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); 22158 22159 X509_NAME *X509_NAME_dup(X509_NAME *xn); 22160 X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); 22161 22162 int X509_cmp_time(const ASN1_TIME *s, time_t *t); 22163 int X509_cmp_current_time(const ASN1_TIME *s); 22164 ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); 22165 ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, 22166 int offset_day, long offset_sec, time_t *t); 22167 ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); 22168 22169 const char *X509_get_default_cert_area(void); 22170 const char *X509_get_default_cert_dir(void); 22171 const char *X509_get_default_cert_file(void); 22172 const char *X509_get_default_cert_dir_env(void); 22173 const char *X509_get_default_cert_file_env(void); 22174 const char *X509_get_default_private_dir(void); 22175 22176 X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); 22177 X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); 22178 22179 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; 22180 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; 22181 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; 22182 22183 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; 22184 22185 int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); 22186 EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); 22187 int X509_get_pubkey_parameters(EVP_PKEY *pkey, struct stack_st_X509 *chain); 22188 int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); 22189 EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); 22190 22191 int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); 22192 RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); 22193 22194 22195 int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); 22196 DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); 22197 22198 22199 int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); 22200 EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); 22201 22202 22203 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; 22204 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; 22205 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; 22206 22207 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; 22208 X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); 22209 22210 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; 22211 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; 22212 22213 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; 22214 22215 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; 22216 22217 int X509_NAME_set(X509_NAME **xn, X509_NAME *name); 22218 22219 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; 22220 22221 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; 22222 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; 22223 22224 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; 22225 22226 int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, 22227 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); 22228 int X509_set_ex_data(X509 *r, int idx, void *arg); 22229 void *X509_get_ex_data(X509 *r, int idx); 22230 int i2d_X509_AUX(X509 *a, unsigned char **pp); 22231 X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); 22232 22233 int i2d_re_X509_tbs(X509 *x, unsigned char **pp); 22234 22235 void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, 22236 const X509 *x); 22237 int X509_get_signature_nid(const X509 *x); 22238 22239 int X509_alias_set1(X509 *x, unsigned char *name, int len); 22240 int X509_keyid_set1(X509 *x, unsigned char *id, int len); 22241 unsigned char *X509_alias_get0(X509 *x, int *len); 22242 unsigned char *X509_keyid_get0(X509 *x, int *len); 22243 int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, 22244 int); 22245 int X509_TRUST_set(int *t, int trust); 22246 int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); 22247 int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); 22248 void X509_trust_clear(X509 *x); 22249 void X509_reject_clear(X509 *x); 22250 22251 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; 22252 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; 22253 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; 22254 22255 int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); 22256 int X509_CRL_get0_by_serial(X509_CRL *crl, 22257 X509_REVOKED **ret, ASN1_INTEGER *serial); 22258 int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); 22259 22260 X509_PKEY *X509_PKEY_new(void); 22261 void X509_PKEY_free(X509_PKEY *a); 22262 int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp); 22263 X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, 22264 long length); 22265 22266 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; 22267 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; 22268 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; 22269 22270 22271 X509_INFO *X509_INFO_new(void); 22272 void X509_INFO_free(X509_INFO *a); 22273 char *X509_NAME_oneline(X509_NAME *a, char *buf, int size); 22274 22275 int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, 22276 ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); 22277 22278 int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, 22279 unsigned char *md, unsigned int *len); 22280 22281 int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, 22282 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 22283 char *data, EVP_PKEY *pkey, const EVP_MD *type); 22284 22285 int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, 22286 unsigned char *md, unsigned int *len); 22287 22288 int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, 22289 ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); 22290 22291 int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, 22292 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, 22293 EVP_PKEY *pkey, const EVP_MD *type); 22294 int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, 22295 X509_ALGOR *algor2, ASN1_BIT_STRING *signature, 22296 void *asn, EVP_MD_CTX *ctx); 22297 22298 22299 int X509_set_version(X509 *x, long version); 22300 int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); 22301 ASN1_INTEGER *X509_get_serialNumber(X509 *x); 22302 int X509_set_issuer_name(X509 *x, X509_NAME *name); 22303 X509_NAME *X509_get_issuer_name(X509 *a); 22304 int X509_set_subject_name(X509 *x, X509_NAME *name); 22305 X509_NAME *X509_get_subject_name(X509 *a); 22306 int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); 22307 int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); 22308 int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); 22309 EVP_PKEY *X509_get_pubkey(X509 *x); 22310 ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); 22311 int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ ); 22312 22313 int X509_REQ_set_version(X509_REQ *x, long version); 22314 int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); 22315 int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); 22316 EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); 22317 int X509_REQ_extension_nid(int nid); 22318 int *X509_REQ_get_extension_nids(void); 22319 void X509_REQ_set_extension_nids(int *nids); 22320 struct stack_st_X509_EXTENSION *X509_REQ_get_extensions(X509_REQ *req); 22321 int X509_REQ_add_extensions_nid(X509_REQ *req, struct stack_st_X509_EXTENSION *exts, 22322 int nid); 22323 int X509_REQ_add_extensions(X509_REQ *req, struct stack_st_X509_EXTENSION *exts); 22324 int X509_REQ_get_attr_count(const X509_REQ *req); 22325 int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); 22326 int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, 22327 int lastpos); 22328 X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); 22329 X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); 22330 int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); 22331 int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, 22332 const ASN1_OBJECT *obj, int type, 22333 const unsigned char *bytes, int len); 22334 int X509_REQ_add1_attr_by_NID(X509_REQ *req, 22335 int nid, int type, 22336 const unsigned char *bytes, int len); 22337 int X509_REQ_add1_attr_by_txt(X509_REQ *req, 22338 const char *attrname, int type, 22339 const unsigned char *bytes, int len); 22340 22341 int X509_CRL_set_version(X509_CRL *x, long version); 22342 int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); 22343 int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); 22344 int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); 22345 int X509_CRL_sort(X509_CRL *crl); 22346 22347 int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); 22348 int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); 22349 22350 X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, 22351 EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); 22352 22353 int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); 22354 22355 int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); 22356 int X509_chain_check_suiteb(int *perror_depth, 22357 X509 *x, struct stack_st_X509 *chain, 22358 unsigned long flags); 22359 int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); 22360 struct stack_st_X509 *X509_chain_up_ref(struct stack_st_X509 *chain); 22361 22362 int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); 22363 unsigned long X509_issuer_and_serial_hash(X509 *a); 22364 22365 int X509_issuer_name_cmp(const X509 *a, const X509 *b); 22366 unsigned long X509_issuer_name_hash(X509 *a); 22367 22368 int X509_subject_name_cmp(const X509 *a, const X509 *b); 22369 unsigned long X509_subject_name_hash(X509 *x); 22370 22371 22372 unsigned long X509_issuer_name_hash_old(X509 *a); 22373 unsigned long X509_subject_name_hash_old(X509 *x); 22374 22375 22376 int X509_cmp(const X509 *a, const X509 *b); 22377 int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); 22378 unsigned long X509_NAME_hash(X509_NAME *x); 22379 unsigned long X509_NAME_hash_old(X509_NAME *x); 22380 22381 int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); 22382 int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); 22383 22384 int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, 22385 unsigned long cflag); 22386 int X509_print_fp(FILE *bp, X509 *x); 22387 int X509_CRL_print_fp(FILE *bp, X509_CRL *x); 22388 int X509_REQ_print_fp(FILE *bp, X509_REQ *req); 22389 int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, 22390 unsigned long flags); 22391 22392 22393 22394 int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); 22395 int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, 22396 unsigned long flags); 22397 int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, 22398 unsigned long cflag); 22399 int X509_print(BIO *bp, X509 *x); 22400 int X509_ocspid_print(BIO *bp, X509 *x); 22401 int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent); 22402 int X509_CRL_print(BIO *bp, X509_CRL *x); 22403 int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, 22404 unsigned long cflag); 22405 int X509_REQ_print(BIO *bp, X509_REQ *req); 22406 22407 22408 int X509_NAME_entry_count(X509_NAME *name); 22409 int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); 22410 int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, 22411 char *buf, int len); 22412 22413 /* 22414 * NOTE: you should be passsing -1, not 0 as lastpos. The functions that use 22415 * lastpos, search after that position on. 22416 */ 22417 int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); 22418 int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, 22419 int lastpos); 22420 X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); 22421 X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); 22422 int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, 22423 int loc, int set); 22424 int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, 22425 unsigned char *bytes, int len, int loc, 22426 int set); 22427 int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, 22428 unsigned char *bytes, int len, int loc, 22429 int set); 22430 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, 22431 const char *field, int type, 22432 const unsigned char *bytes, 22433 int len); 22434 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, 22435 int type, unsigned char *bytes, 22436 int len); 22437 int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, 22438 const unsigned char *bytes, int len, int loc, 22439 int set); 22440 X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, 22441 ASN1_OBJECT *obj, int type, 22442 const unsigned char *bytes, 22443 int len); 22444 int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); 22445 int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, 22446 const unsigned char *bytes, int len); 22447 ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); 22448 ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); 22449 22450 int X509v3_get_ext_count(const struct stack_st_X509_EXTENSION *x); 22451 int X509v3_get_ext_by_NID(const struct stack_st_X509_EXTENSION *x, 22452 int nid, int lastpos); 22453 int X509v3_get_ext_by_OBJ(const struct stack_st_X509_EXTENSION *x, 22454 ASN1_OBJECT *obj, int lastpos); 22455 int X509v3_get_ext_by_critical(const struct stack_st_X509_EXTENSION *x, 22456 int crit, int lastpos); 22457 X509_EXTENSION *X509v3_get_ext(const struct stack_st_X509_EXTENSION *x, int loc); 22458 X509_EXTENSION *X509v3_delete_ext(struct stack_st_X509_EXTENSION *x, int loc); 22459 struct stack_st_X509_EXTENSION *X509v3_add_ext(struct stack_st_X509_EXTENSION **x, 22460 X509_EXTENSION *ex, int loc); 22461 22462 int X509_get_ext_count(X509 *x); 22463 int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); 22464 int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos); 22465 int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); 22466 X509_EXTENSION *X509_get_ext(X509 *x, int loc); 22467 X509_EXTENSION *X509_delete_ext(X509 *x, int loc); 22468 int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); 22469 void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); 22470 int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, 22471 unsigned long flags); 22472 22473 int X509_CRL_get_ext_count(X509_CRL *x); 22474 int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); 22475 int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos); 22476 int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); 22477 X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); 22478 X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); 22479 int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); 22480 void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); 22481 int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, 22482 unsigned long flags); 22483 22484 int X509_REVOKED_get_ext_count(X509_REVOKED *x); 22485 int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); 22486 int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj, 22487 int lastpos); 22488 int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); 22489 X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); 22490 X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); 22491 int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); 22492 void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); 22493 int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, 22494 unsigned long flags); 22495 22496 X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, 22497 int nid, int crit, 22498 ASN1_OCTET_STRING *data); 22499 X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, 22500 ASN1_OBJECT *obj, int crit, 22501 ASN1_OCTET_STRING *data); 22502 int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj); 22503 int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); 22504 int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); 22505 ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); 22506 ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); 22507 int X509_EXTENSION_get_critical(X509_EXTENSION *ex); 22508 22509 int X509at_get_attr_count(const struct stack_st_X509_ATTRIBUTE *x); 22510 int X509at_get_attr_by_NID(const struct stack_st_X509_ATTRIBUTE *x, int nid, 22511 int lastpos); 22512 int X509at_get_attr_by_OBJ(const struct stack_st_X509_ATTRIBUTE *sk, 22513 ASN1_OBJECT *obj, int lastpos); 22514 X509_ATTRIBUTE *X509at_get_attr(const struct stack_st_X509_ATTRIBUTE *x, int loc); 22515 X509_ATTRIBUTE *X509at_delete_attr(struct stack_st_X509_ATTRIBUTE *x, int loc); 22516 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr(struct stack_st_X509_ATTRIBUTE **x, 22517 X509_ATTRIBUTE *attr); 22518 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_OBJ(struct stack_st_X509_ATTRIBUTE 22519 **x, const ASN1_OBJECT *obj, 22520 int type, 22521 const unsigned char *bytes, 22522 int len); 22523 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_NID(struct stack_st_X509_ATTRIBUTE 22524 **x, int nid, int type, 22525 const unsigned char *bytes, 22526 int len); 22527 struct stack_st_X509_ATTRIBUTE *X509at_add1_attr_by_txt(struct stack_st_X509_ATTRIBUTE 22528 **x, const char *attrname, 22529 int type, 22530 const unsigned char *bytes, 22531 int len); 22532 void *X509at_get0_data_by_OBJ(struct stack_st_X509_ATTRIBUTE *x, ASN1_OBJECT *obj, 22533 int lastpos, int type); 22534 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, 22535 int atrtype, const void *data, 22536 int len); 22537 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, 22538 const ASN1_OBJECT *obj, 22539 int atrtype, const void *data, 22540 int len); 22541 X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, 22542 const char *atrname, int type, 22543 const unsigned char *bytes, 22544 int len); 22545 int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); 22546 int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, 22547 const void *data, int len); 22548 void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, 22549 void *data); 22550 int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); 22551 ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); 22552 ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); 22553 22554 int EVP_PKEY_get_attr_count(const EVP_PKEY *key); 22555 int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); 22556 int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, 22557 int lastpos); 22558 X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); 22559 X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); 22560 int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); 22561 int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, 22562 const ASN1_OBJECT *obj, int type, 22563 const unsigned char *bytes, int len); 22564 int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, 22565 int nid, int type, 22566 const unsigned char *bytes, int len); 22567 int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, 22568 const char *attrname, int type, 22569 const unsigned char *bytes, int len); 22570 22571 int X509_verify_cert(X509_STORE_CTX *ctx); 22572 22573 /* lookup a cert from a X509 STACK */ 22574 X509 *X509_find_by_issuer_and_serial(struct stack_st_X509 *sk, X509_NAME *name, 22575 ASN1_INTEGER *serial); 22576 X509 *X509_find_by_subject(struct stack_st_X509 *sk, X509_NAME *name); 22577 22578 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; 22579 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; 22580 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; 22581 22582 int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, 22583 const unsigned char *salt, int saltlen); 22584 22585 X509_ALGOR *PKCS5_pbe_set(int alg, int iter, 22586 const unsigned char *salt, int saltlen); 22587 X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, 22588 unsigned char *salt, int saltlen); 22589 X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, 22590 unsigned char *salt, int saltlen, 22591 unsigned char *aiv, int prf_nid); 22592 22593 X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, 22594 int prf_nid, int keylen); 22595 22596 /* PKCS#8 utilities */ 22597 22598 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; 22599 22600 EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); 22601 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); 22602 PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); 22603 PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); 22604 22605 int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, 22606 int version, int ptype, void *pval, 22607 unsigned char *penc, int penclen); 22608 int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, 22609 const unsigned char **pk, int *ppklen, 22610 X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); 22611 22612 int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, 22613 int ptype, void *pval, 22614 unsigned char *penc, int penclen); 22615 int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, 22616 const unsigned char **pk, int *ppklen, 22617 X509_ALGOR **pa, X509_PUBKEY *pub); 22618 22619 int X509_check_trust(X509 *x, int id, int flags); 22620 int X509_TRUST_get_count(void); 22621 X509_TRUST *X509_TRUST_get0(int idx); 22622 int X509_TRUST_get_by_id(int id); 22623 int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), 22624 char *name, int arg1, void *arg2); 22625 void X509_TRUST_cleanup(void); 22626 int X509_TRUST_get_flags(X509_TRUST *xp); 22627 char *X509_TRUST_get0_name(X509_TRUST *xp); 22628 int X509_TRUST_get_trust(X509_TRUST *xp); 22629 22630 /* BEGIN ERROR CODES */ 22631 /* 22632 * The following lines are auto generated by the script mkerr.pl. Any changes 22633 * made after this point may be overwritten when the script is next run. 22634 */ 22635 22636 void ERR_load_X509_strings(void); 22637 22638 /* Error codes for the X509 functions. */ 22639 22640 /* Function codes. */ 22641 # 1291 "/usr/include/openssl/x509.h" 3 4 22642 /* Reason codes. */ 22643 # 45 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 22644 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 1 22645 /* 22646 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 22647 * 22648 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22649 * Use is subject to license terms. 22650 */ 22651 22652 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 22653 /* All Rights Reserved */ 22654 22655 /* 22656 * BIND 4.9.3: 22657 * 22658 * Copyright (c) 1980, 1983, 1988, 1993 22659 * The Regents of the University of California. All rights reserved. 22660 * 22661 * Redistribution and use in source and binary forms, with or without 22662 * modification, are permitted provided that the following conditions 22663 * are met: 22664 * 1. Redistributions of source code must retain the above copyright 22665 * notice, this list of conditions and the following disclaimer. 22666 * 2. Redistributions in binary form must reproduce the above copyright 22667 * notice, this list of conditions and the following disclaimer in the 22668 * documentation and/or other materials provided with the distribution. 22669 * 3. All advertising materials mentioning features or use of this software 22670 * must display the following acknowledgement: 22671 * This product includes software developed by the University of 22672 * California, Berkeley and its contributors. 22673 * 4. Neither the name of the University nor the names of its contributors 22674 * may be used to endorse or promote products derived from this software 22675 * without specific prior written permission. 22676 * 22677 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22678 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22679 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22680 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 22681 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22682 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22683 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22684 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22685 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22686 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 22687 * SUCH DAMAGE. 22688 * - 22689 * Portions Copyright (c) 1993 by Digital Equipment Corporation. 22690 * 22691 * Permission to use, copy, modify, and distribute this software for any 22692 * purpose with or without fee is hereby granted, provided that the above 22693 * copyright notice and this permission notice appear in all copies, and that 22694 * the name of Digital Equipment Corporation not be used in advertising or 22695 * publicity pertaining to distribution of the document or software without 22696 * specific, written prior permission. 22697 * 22698 * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL 22699 * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES 22700 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT 22701 * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 22702 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 22703 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 22704 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 22705 * SOFTWARE. 22706 * --Copyright-- 22707 * 22708 * End BIND 4.9.3 22709 */ 22710 22711 /* 22712 * Structures returned by network data base library. 22713 * All addresses are supplied in host order, and 22714 * returned in network order (suitable for use in system calls). 22715 */ 22716 22717 22718 22719 22720 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22721 /* 22722 * CDDL HEADER START 22723 * 22724 * The contents of this file are subject to the terms of the 22725 * Common Development and Distribution License (the "License"). 22726 * You may not use this file except in compliance with the License. 22727 * 22728 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22729 * or http://www.opensolaris.org/os/licensing. 22730 * See the License for the specific language governing permissions 22731 * and limitations under the License. 22732 * 22733 * When distributing Covered Code, include this CDDL HEADER in each 22734 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22735 * If applicable, add the following below this CDDL HEADER, with the 22736 * fields enclosed by brackets "[]" replaced with your own identifying 22737 * information: Portions Copyright [yyyy] [name of copyright owner] 22738 * 22739 * CDDL HEADER END 22740 */ 22741 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22742 /* All Rights Reserved */ 22743 22744 22745 /* 22746 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22747 * Use is subject to license terms. 22748 * 22749 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22750 * Copyright 2016 Joyent, Inc. 22751 */ 22752 # 77 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 22753 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1 22754 /* 22755 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22756 * Use is subject to license terms. 22757 * 22758 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 22759 */ 22760 /* 22761 * Copyright (c) 1982, 1986 Regents of the University of California. 22762 * All rights reserved. 22763 * 22764 * Redistribution and use in source and binary forms are permitted 22765 * provided that this notice is preserved and that due credit is given 22766 * to the University of California at Berkeley. The name of the University 22767 * may not be used to endorse or promote products derived from this 22768 * software without specific prior written permission. This software 22769 * is provided ``as is'' without express or implied warranty. 22770 */ 22771 22772 /* 22773 * Constants and structures defined by the internet system, 22774 * according to following documents 22775 * 22776 * Internet ASSIGNED NUMBERS (RFC1700) and its successors: 22777 * http://www.iana.org/assignments/protocol-numbers 22778 * http://www.iana.org/assignments/port-numbers 22779 * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors) 22780 * 22781 */ 22782 22783 22784 22785 22786 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 22787 /* 22788 * CDDL HEADER START 22789 * 22790 * The contents of this file are subject to the terms of the 22791 * Common Development and Distribution License (the "License"). 22792 * You may not use this file except in compliance with the License. 22793 * 22794 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22795 * or http://www.opensolaris.org/os/licensing. 22796 * See the License for the specific language governing permissions 22797 * and limitations under the License. 22798 * 22799 * When distributing Covered Code, include this CDDL HEADER in each 22800 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22801 * If applicable, add the following below this CDDL HEADER, with the 22802 * fields enclosed by brackets "[]" replaced with your own identifying 22803 * information: Portions Copyright [yyyy] [name of copyright owner] 22804 * 22805 * CDDL HEADER END 22806 */ 22807 22808 /* 22809 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 22810 * Copyright 2016 Joyent, Inc. 22811 * 22812 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 22813 * Use is subject to license terms. 22814 */ 22815 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 22816 22817 22818 22819 22820 22821 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 22822 /* 22823 * CDDL HEADER START 22824 * 22825 * The contents of this file are subject to the terms of the 22826 * Common Development and Distribution License (the "License"). 22827 * You may not use this file except in compliance with the License. 22828 * 22829 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22830 * or http://www.opensolaris.org/os/licensing. 22831 * See the License for the specific language governing permissions 22832 * and limitations under the License. 22833 * 22834 * When distributing Covered Code, include this CDDL HEADER in each 22835 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22836 * If applicable, add the following below this CDDL HEADER, with the 22837 * fields enclosed by brackets "[]" replaced with your own identifying 22838 * information: Portions Copyright [yyyy] [name of copyright owner] 22839 * 22840 * CDDL HEADER END 22841 */ 22842 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 22843 /* All Rights Reserved */ 22844 22845 22846 /* 22847 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22848 * Use is subject to license terms. 22849 * 22850 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 22851 * Copyright 2016 Joyent, Inc. 22852 */ 22853 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 22854 22855 22856 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1 22857 /* 22858 * CDDL HEADER START 22859 * 22860 * The contents of this file are subject to the terms of the 22861 * Common Development and Distribution License (the "License"). 22862 * You may not use this file except in compliance with the License. 22863 * 22864 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22865 * or http://www.opensolaris.org/os/licensing. 22866 * See the License for the specific language governing permissions 22867 * and limitations under the License. 22868 * 22869 * When distributing Covered Code, include this CDDL HEADER in each 22870 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22871 * If applicable, add the following below this CDDL HEADER, with the 22872 * fields enclosed by brackets "[]" replaced with your own identifying 22873 * information: Portions Copyright [yyyy] [name of copyright owner] 22874 * 22875 * CDDL HEADER END 22876 */ 22877 /* 22878 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22879 * Use is subject to license terms. 22880 */ 22881 22882 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 22883 /* All Rights Reserved */ 22884 22885 /* 22886 * Portions of this source code were derived from Berkeley 4.3 BSD 22887 * under license from the Regents of the University of California. 22888 */ 22889 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 22890 typedef uint16_t sa_family_t; 22891 22892 22893 /* 22894 * Structure used by kernel to store most 22895 * addresses. 22896 */ 22897 struct sockaddr { 22898 sa_family_t sa_family; /* address family */ 22899 char sa_data[14]; /* up to 14 bytes of direct address */ 22900 }; 22901 22902 22903 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 1 22904 /* 22905 * CDDL HEADER START 22906 * 22907 * The contents of this file are subject to the terms of the 22908 * Common Development and Distribution License (the "License"). 22909 * You may not use this file except in compliance with the License. 22910 * 22911 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 22912 * or http://www.opensolaris.org/os/licensing. 22913 * See the License for the specific language governing permissions 22914 * and limitations under the License. 22915 * 22916 * When distributing Covered Code, include this CDDL HEADER in each 22917 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 22918 * If applicable, add the following below this CDDL HEADER, with the 22919 * fields enclosed by brackets "[]" replaced with your own identifying 22920 * information: Portions Copyright [yyyy] [name of copyright owner] 22921 * 22922 * CDDL HEADER END 22923 */ 22924 /* 22925 * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. 22926 */ 22927 22928 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 22929 /* All Rights Reserved */ 22930 22931 /* 22932 * University Copyright- Copyright (c) 1982, 1986, 1988 22933 * The Regents of the University of California 22934 * All Rights Reserved 22935 * 22936 * University Acknowledgment- Portions of this document are derived from 22937 * software developed by the University of California, Berkeley, and its 22938 * contributors. 22939 */ 22940 # 50 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 22941 /* 22942 * Definitions for UNIX IPC domain. 22943 */ 22944 struct sockaddr_un { 22945 sa_family_t sun_family; /* AF_UNIX */ 22946 char sun_path[108]; /* path name (gag) */ 22947 }; 22948 22949 22950 22951 /* 22952 * NOTE: If we ever go to BSD-style sun_len + sun_family, this macro needs to 22953 * change. 22954 * 22955 * Also, include a strlen() prototype, and we have to protect it w.r.t. 22956 * UNIX{98,03}. And because there's strlen, we need size_t as well. 22957 */ 22958 # 76 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/un.h" 22959 extern size_t strlen(const char *); 22960 # 57 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2 22961 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/net/if_dl.h" 1 22962 /* 22963 * Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. 22964 * Use is subject to license terms. 22965 */ 22966 /* 22967 * Copyright (c) 1990, 1993 22968 * The Regents of the University of California. All rights reserved. 22969 * 22970 * Redistribution and use in source and binary forms, with or without 22971 * modification, are permitted provided that the following conditions 22972 * are met: 22973 * 1. Redistributions of source code must retain the above copyright 22974 * notice, this list of conditions and the following disclaimer. 22975 * 2. Redistributions in binary form must reproduce the above copyright 22976 * notice, this list of conditions and the following disclaimer in the 22977 * documentation and/or other materials provided with the distribution. 22978 * 3. All advertising materials mentioning features or use of this software 22979 * must display the following acknowledgement: 22980 * This product includes software developed by the University of 22981 * California, Berkeley and its contributors. 22982 * 4. Neither the name of the University nor the names of its contributors 22983 * may be used to endorse or promote products derived from this software 22984 * without specific prior written permission. 22985 * 22986 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22987 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22988 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22989 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 22990 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22991 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22992 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22993 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22994 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22995 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 22996 * SUCH DAMAGE. 22997 */ 22998 22999 23000 23001 23002 #pragma ident "%Z%%M% %I% %E% SMI" 23003 /* from UCB 8.1 (Berkeley) 6/10/93 */ 23004 23005 23006 23007 23008 23009 /* 23010 * A Link-Level Sockaddr may specify the interface in one of two 23011 * ways: either by means of a system-provided index number (computed 23012 * anew and possibly differently on every reboot), or by a human-readable 23013 * string such as "il0" (for managerial convenience). 23014 * 23015 * Census taking actions, such as something akin to SIOCGCONF would return 23016 * both the index and the human name. 23017 * 23018 * High volume transactions (such as giving a link-level ``from'' address 23019 * in a recvfrom or recvmsg call) may be likely only to provide the indexed 23020 * form, (which requires fewer copy operations and less space). 23021 * 23022 * The form and interpretation of the link-level address is purely a matter 23023 * of convention between the device driver and its consumers; however, it is 23024 * expected that all drivers for an interface of a given if_type will agree. 23025 */ 23026 23027 /* 23028 * Structure of a Link-Level sockaddr: 23029 */ 23030 struct sockaddr_dl { 23031 ushort_t sdl_family; /* AF_LINK */ 23032 ushort_t sdl_index; /* if != 0, system given index for interface */ 23033 uchar_t sdl_type; /* interface type */ 23034 uchar_t sdl_nlen; /* interface name length, no trailing 0 reqd. */ 23035 uchar_t sdl_alen; /* link level address length */ 23036 uchar_t sdl_slen; /* link layer selector length */ 23037 char sdl_data[244]; /* contains both if name and ll address */ 23038 }; 23039 23040 23041 23042 23043 extern char *_link_ntoa(const unsigned char *, char *, int, int); 23044 extern unsigned char *_link_aton(const char *, int *); 23045 # 58 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 2 23046 23047 23048 23049 /* 23050 * sockaddr_storage: 23051 * Common superset of at least AF_INET, AF_INET6 and AF_LINK sockaddr 23052 * structures. Has sufficient size and alignment for those sockaddrs. 23053 */ 23054 23055 /* 23056 * Desired maximum size, alignment size and related types. 23057 */ 23058 23059 23060 /* 23061 * To represent desired sockaddr max alignment for platform, a 23062 * type is chosen which may depend on implementation platform architecture. 23063 * Type chosen based on alignment size restrictions from <sys/isa_defs.h>. 23064 * We desire to force up to (but no more than) 64-bit (8 byte) alignment, 23065 * on platforms where it is possible to do so. (e.g not possible on ia32). 23066 * For all currently supported platforms by our implementation 23067 * in <sys/isa_defs.h>, (i.e. sparc, sparcv9, ia32, ia64) 23068 * type "double" is suitable for that intent. 23069 * 23070 * Note: Type "double" is chosen over the more obvious integer type int64_t. 23071 * int64_t is not a valid type for strict ANSI/ISO C compilation on ILP32. 23072 */ 23073 typedef double sockaddr_maxalign_t; 23074 23075 23076 23077 /* 23078 * Definitions used for sockaddr_storage structure paddings design. 23079 */ 23080 23081 23082 23083 23084 struct sockaddr_storage { 23085 sa_family_t ss_family; /* Address family */ 23086 /* Following fields are implementation specific */ 23087 char _ss_pad1[((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t))]; 23088 sockaddr_maxalign_t _ss_align; 23089 char _ss_pad2[(256 - (sizeof (sa_family_t)+ ((sizeof (sockaddr_maxalign_t)) - sizeof (sa_family_t)) + (sizeof (sockaddr_maxalign_t))))]; 23090 }; 23091 23092 23093 /* 23094 * To be compatible with the Linux interfaces used, this structure is 23095 * placed in socket_impl.h so that an include for <sys/socket.h> will 23096 * pickup this structure. This structure is for use with PF_PACKET 23097 * sockets. 23098 */ 23099 struct sockaddr_ll { 23100 uint16_t sll_family; 23101 uint16_t sll_protocol; 23102 int32_t sll_ifindex; 23103 uint16_t sll_hatype; 23104 uint8_t sll_pkttype; 23105 uint8_t sll_halen; 23106 uint8_t sll_addr[8]; 23107 }; 23108 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 23109 23110 23111 23112 23113 23114 /* 23115 * The socklen definitions are reproduced here from sys/socket.h so as to 23116 * not introduce that namespace into existing users of netinet/in.h. 23117 */ 23118 23119 23120 23121 typedef uint32_t socklen_t; 23122 23123 23124 23125 23126 23127 typedef void *Psocklen_t; 23128 23129 23130 23131 23132 23133 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 1 23134 /* 23135 * CDDL HEADER START 23136 * 23137 * The contents of this file are subject to the terms of the 23138 * Common Development and Distribution License (the "License"). 23139 * You may not use this file except in compliance with the License. 23140 * 23141 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23142 * or http://www.opensolaris.org/os/licensing. 23143 * See the License for the specific language governing permissions 23144 * and limitations under the License. 23145 * 23146 * When distributing Covered Code, include this CDDL HEADER in each 23147 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23148 * If applicable, add the following below this CDDL HEADER, with the 23149 * fields enclosed by brackets "[]" replaced with your own identifying 23150 * information: Portions Copyright [yyyy] [name of copyright owner] 23151 * 23152 * CDDL HEADER END 23153 */ 23154 /* 23155 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23156 * Use is subject to license terms. 23157 */ 23158 23159 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23160 /* All Rights Reserved */ 23161 23162 23163 23164 23165 23166 /* 23167 * For source compatibility 23168 */ 23169 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 23170 /* 23171 * CDDL HEADER START 23172 * 23173 * The contents of this file are subject to the terms of the 23174 * Common Development and Distribution License (the "License"). 23175 * You may not use this file except in compliance with the License. 23176 * 23177 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23178 * or http://www.opensolaris.org/os/licensing. 23179 * See the License for the specific language governing permissions 23180 * and limitations under the License. 23181 * 23182 * 23183 * When distributing Covered Code, include this CDDL HEADER in each 23184 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23185 * If applicable, add the following below this CDDL HEADER, with the 23186 * fields enclosed by brackets "[]" replaced with your own identifying 23187 * information: Portions Copyright [yyyy] [name of copyright owner] 23188 * 23189 * CDDL HEADER END 23190 */ 23191 23192 /* 23193 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23194 * Use is subject to license terms. 23195 * Copyright 2016 Joyent, Inc. 23196 */ 23197 # 37 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23198 23199 23200 23201 23202 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 1 23203 /* 23204 * CDDL HEADER START 23205 * 23206 * The contents of this file are subject to the terms of the 23207 * Common Development and Distribution License, Version 1.0 only 23208 * (the "License"). You may not use this file except in compliance 23209 * with the License. 23210 * 23211 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23212 * or http://www.opensolaris.org/os/licensing. 23213 * See the License for the specific language governing permissions 23214 * and limitations under the License. 23215 * 23216 * When distributing Covered Code, include this CDDL HEADER in each 23217 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23218 * If applicable, add the following below this CDDL HEADER, with the 23219 * fields enclosed by brackets "[]" replaced with your own identifying 23220 * information: Portions Copyright [yyyy] [name of copyright owner] 23221 * 23222 * CDDL HEADER END 23223 */ 23224 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23225 /* All Rights Reserved */ 23226 23227 23228 /* 23229 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 23230 * 23231 * Copyright (c) 1995, 1998 by Sun Microsystems, Inc. 23232 * All rights reserved. 23233 */ 23234 23235 /* 23236 * Copyright 2015, Joyent, Inc. 23237 */ 23238 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 23239 /* 23240 * Structure of file descriptor/event pairs supplied in 23241 * the poll arrays. 23242 */ 23243 typedef struct pollfd { 23244 int fd; /* file desc to poll */ 23245 short events; /* events of interest on fd */ 23246 short revents; /* events that occurred on fd */ 23247 } pollfd_t; 23248 23249 typedef unsigned long nfds_t; 23250 23251 /* 23252 * Testable select events 23253 */ 23254 # 70 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 23255 /* 23256 * Non-testable poll events (may not be specified in events field, 23257 * but may be returned in revents field). 23258 */ 23259 23260 23261 23262 23263 /* 23264 * These events will never be specified in revents, but may be specified in 23265 * events to control /dev/poll behavior. 23266 */ 23267 # 152 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/poll.h" 23268 int poll(struct pollfd *, nfds_t, int); 23269 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23270 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/strmdep.h" 1 23271 /* 23272 * CDDL HEADER START 23273 * 23274 * The contents of this file are subject to the terms of the 23275 * Common Development and Distribution License, Version 1.0 only 23276 * (the "License"). You may not use this file except in compliance 23277 * with the License. 23278 * 23279 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23280 * or http://www.opensolaris.org/os/licensing. 23281 * See the License for the specific language governing permissions 23282 * and limitations under the License. 23283 * 23284 * When distributing Covered Code, include this CDDL HEADER in each 23285 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23286 * If applicable, add the following below this CDDL HEADER, with the 23287 * fields enclosed by brackets "[]" replaced with your own identifying 23288 * information: Portions Copyright [yyyy] [name of copyright owner] 23289 * 23290 * CDDL HEADER END 23291 */ 23292 /* 23293 * Copyright (c) 1997-1998 by Sun Microsystems, Inc. 23294 * All rights reserved. 23295 */ 23296 23297 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23298 /* All Rights Reserved */ 23299 23300 23301 23302 23303 23304 #pragma ident "%Z%%M% %I% %E% SMI" 23305 23306 23307 23308 23309 23310 /* 23311 * This file contains all machine-dependent declarations 23312 * in STREAMS. 23313 */ 23314 23315 /* 23316 * Copy data from one data buffer to another. 23317 * The addresses must be word aligned - if not, use bcopy! 23318 */ 23319 23320 23321 /* 23322 * save the address of the calling function on the 3b2 to 23323 * enable tracking of who is allocating message blocks 23324 */ 23325 23326 23327 /* 23328 * macro to check pointer alignment 23329 * (true if alignment is sufficient for worst case) 23330 */ 23331 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23332 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 1 23333 /* 23334 * CDDL HEADER START 23335 * 23336 * The contents of this file are subject to the terms of the 23337 * Common Development and Distribution License (the "License"). 23338 * You may not use this file except in compliance with the License. 23339 * 23340 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23341 * or http://www.opensolaris.org/os/licensing. 23342 * See the License for the specific language governing permissions 23343 * and limitations under the License. 23344 * 23345 * When distributing Covered Code, include this CDDL HEADER in each 23346 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23347 * If applicable, add the following below this CDDL HEADER, with the 23348 * fields enclosed by brackets "[]" replaced with your own identifying 23349 * information: Portions Copyright [yyyy] [name of copyright owner] 23350 * 23351 * CDDL HEADER END 23352 */ 23353 /* 23354 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23355 * Use is subject to license terms. 23356 */ 23357 23358 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 23359 /* All Rights Reserved */ 23360 23361 /* 23362 * Portions of this source code were derived from Berkeley 4.3 BSD 23363 * under license from the Regents of the University of California. 23364 */ 23365 23366 23367 23368 23369 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 23370 /* 23371 * CDDL HEADER START 23372 * 23373 * The contents of this file are subject to the terms of the 23374 * Common Development and Distribution License (the "License"). 23375 * You may not use this file except in compliance with the License. 23376 * 23377 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23378 * or http://www.opensolaris.org/os/licensing. 23379 * See the License for the specific language governing permissions 23380 * and limitations under the License. 23381 * 23382 * When distributing Covered Code, include this CDDL HEADER in each 23383 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23384 * If applicable, add the following below this CDDL HEADER, with the 23385 * fields enclosed by brackets "[]" replaced with your own identifying 23386 * information: Portions Copyright [yyyy] [name of copyright owner] 23387 * 23388 * CDDL HEADER END 23389 */ 23390 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23391 /* All Rights Reserved */ 23392 23393 23394 /* 23395 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23396 * Use is subject to license terms. 23397 * 23398 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 23399 * Copyright 2016 Joyent, Inc. 23400 */ 23401 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/cred.h" 2 23402 23403 23404 23405 23406 23407 /* 23408 * The credential is an opaque kernel private data structure defined in 23409 * <sys/cred_impl.h>. 23410 */ 23411 23412 typedef struct cred cred_t; 23413 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 23414 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 1 23415 /* 23416 * CDDL HEADER START 23417 * 23418 * The contents of this file are subject to the terms of the 23419 * Common Development and Distribution License, Version 1.0 only 23420 * (the "License"). You may not use this file except in compliance 23421 * with the License. 23422 * 23423 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23424 * or http://www.opensolaris.org/os/licensing. 23425 * See the License for the specific language governing permissions 23426 * and limitations under the License. 23427 * 23428 * When distributing Covered Code, include this CDDL HEADER in each 23429 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23430 * If applicable, add the following below this CDDL HEADER, with the 23431 * fields enclosed by brackets "[]" replaced with your own identifying 23432 * information: Portions Copyright [yyyy] [name of copyright owner] 23433 * 23434 * CDDL HEADER END 23435 */ 23436 /* 23437 * Copyright (c) 1991-1998 by Sun Microsystems, Inc. 23438 * All rights reserved. 23439 */ 23440 23441 /* 23442 * t_lock.h: Prototypes for disp_locks, plus include files 23443 * that describe the interfaces to kernel synch. 23444 * objects. 23445 */ 23446 23447 23448 23449 23450 #pragma ident "%Z%%M% %I% %E% SMI" 23451 23452 23453 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 1 23454 /* 23455 * CDDL HEADER START 23456 * 23457 * The contents of this file are subject to the terms of the 23458 * Common Development and Distribution License (the "License"). 23459 * You may not use this file except in compliance with the License. 23460 * 23461 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23462 * or http://www.opensolaris.org/os/licensing. 23463 * See the License for the specific language governing permissions 23464 * and limitations under the License. 23465 * 23466 * When distributing Covered Code, include this CDDL HEADER in each 23467 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23468 * If applicable, add the following below this CDDL HEADER, with the 23469 * fields enclosed by brackets "[]" replaced with your own identifying 23470 * information: Portions Copyright [yyyy] [name of copyright owner] 23471 * 23472 * CDDL HEADER END 23473 */ 23474 /* 23475 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 23476 * Use is subject to license terms. 23477 * Copyright 2016 Joyent, Inc. 23478 */ 23479 23480 23481 23482 23483 #pragma ident "%Z%%M% %I% %E% SMI" 23484 23485 23486 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 23487 /* 23488 * CDDL HEADER START 23489 * 23490 * The contents of this file are subject to the terms of the 23491 * Common Development and Distribution License (the "License"). 23492 * You may not use this file except in compliance with the License. 23493 * 23494 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23495 * or http://www.opensolaris.org/os/licensing. 23496 * See the License for the specific language governing permissions 23497 * and limitations under the License. 23498 * 23499 * When distributing Covered Code, include this CDDL HEADER in each 23500 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23501 * If applicable, add the following below this CDDL HEADER, with the 23502 * fields enclosed by brackets "[]" replaced with your own identifying 23503 * information: Portions Copyright [yyyy] [name of copyright owner] 23504 * 23505 * CDDL HEADER END 23506 */ 23507 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23508 /* All Rights Reserved */ 23509 23510 23511 /* 23512 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23513 * Use is subject to license terms. 23514 * 23515 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 23516 * Copyright 2016 Joyent, Inc. 23517 */ 23518 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2 23519 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 23520 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23521 /* All Rights Reserved */ 23522 23523 23524 /* 23525 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 23526 * All rights reserved. The Berkeley software License Agreement 23527 * specifies the terms and conditions for redistribution. 23528 */ 23529 23530 /* 23531 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 23532 * 23533 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23534 * Use is subject to license terms. 23535 * 23536 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 23537 */ 23538 23539 /* 23540 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 23541 */ 23542 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 2 23543 # 61 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 23544 typedef lock_t disp_lock_t; /* dispatcher lock type */ 23545 23546 /* 23547 * SPIN_LOCK() macro indicates whether lock is implemented as a spin lock or 23548 * an adaptive mutex, depending on what interrupt levels use it. 23549 */ 23550 23551 23552 /* 23553 * Macro to control loops which spin on a lock and then check state 23554 * periodically. Its passed an integer, and returns a boolean value 23555 * that if true indicates its a good time to get the scheduler lock and 23556 * check the state of the current owner of the lock. 23557 */ 23558 23559 23560 /* 23561 * Externs for CLOCK_LOCK and clock resolution 23562 */ 23563 extern volatile uint32_t hres_lock; 23564 extern hrtime_t hrtime_base; 23565 extern int clock_res; 23566 23567 23568 23569 /* 23570 * The definitions of the symbolic interrupt levels: 23571 * 23572 * CLOCK_LEVEL => The level at which one must be to block the clock. 23573 * 23574 * LOCK_LEVEL => The highest level at which one may block (and thus the 23575 * highest level at which one may acquire adaptive locks) 23576 * Also the highest level at which one may be preempted. 23577 * 23578 * DISP_LEVEL => The level at which one must be to perform dispatcher 23579 * operations. 23580 * 23581 * The constraints on the platform: 23582 * 23583 * - CLOCK_LEVEL must be less than or equal to LOCK_LEVEL 23584 * - LOCK_LEVEL must be less than DISP_LEVEL 23585 * - DISP_LEVEL should be as close to LOCK_LEVEL as possible 23586 * 23587 * Note that LOCK_LEVEL and CLOCK_LEVEL have historically always been equal; 23588 * changing this relationship is probably possible but not advised. 23589 * 23590 */ 23591 # 117 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/machlock.h" 23592 /* 23593 * The following mask is for the cpu_intr_actv bits corresponding to 23594 * high-level PILs. It should equal: 23595 * ((((1 << PIL_MAX + 1) - 1) >> LOCK_LEVEL + 1) << LOCK_LEVEL + 1) 23596 */ 23597 23598 23599 /* 23600 * The semaphore code depends on being able to represent a lock plus 23601 * owner in a single 32-bit word. (Mutexes used to have a similar 23602 * dependency, but no longer.) Thus the owner must contain at most 23603 * 24 significant bits. At present only threads and semaphores 23604 * must be aware of this vile constraint. Different ISAs may handle this 23605 * differently depending on their capabilities (e.g. compare-and-swap) 23606 * and limitations (e.g. constraints on alignment and/or KERNELBASE). 23607 */ 23608 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 23609 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1 23610 /* 23611 * CDDL HEADER START 23612 * 23613 * The contents of this file are subject to the terms of the 23614 * Common Development and Distribution License (the "License"). 23615 * You may not use this file except in compliance with the License. 23616 * 23617 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23618 * or http://www.opensolaris.org/os/licensing. 23619 * See the License for the specific language governing permissions 23620 * and limitations under the License. 23621 * 23622 * When distributing Covered Code, include this CDDL HEADER in each 23623 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23624 * If applicable, add the following below this CDDL HEADER, with the 23625 * fields enclosed by brackets "[]" replaced with your own identifying 23626 * information: Portions Copyright [yyyy] [name of copyright owner] 23627 * 23628 * CDDL HEADER END 23629 */ 23630 23631 /* 23632 * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 23633 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. 23634 */ 23635 23636 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 23637 /* All Rights Reserved */ 23638 23639 /* 23640 * University Copyright- Copyright (c) 1982, 1986, 1988 23641 * The Regents of the University of California 23642 * All Rights Reserved 23643 * 23644 * University Acknowledgment- Portions of this document are derived from 23645 * software developed by the University of California, Berkeley, and its 23646 * contributors. 23647 */ 23648 23649 23650 23651 23652 23653 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 23654 /* 23655 * CDDL HEADER START 23656 * 23657 * The contents of this file are subject to the terms of the 23658 * Common Development and Distribution License (the "License"). 23659 * You may not use this file except in compliance with the License. 23660 * 23661 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23662 * or http://www.opensolaris.org/os/licensing. 23663 * See the License for the specific language governing permissions 23664 * and limitations under the License. 23665 * 23666 * When distributing Covered Code, include this CDDL HEADER in each 23667 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23668 * If applicable, add the following below this CDDL HEADER, with the 23669 * fields enclosed by brackets "[]" replaced with your own identifying 23670 * information: Portions Copyright [yyyy] [name of copyright owner] 23671 * 23672 * CDDL HEADER END 23673 */ 23674 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23675 /* All Rights Reserved */ 23676 23677 23678 /* 23679 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23680 * Use is subject to license terms. 23681 * 23682 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 23683 * Copyright 2016 Joyent, Inc. 23684 */ 23685 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 23686 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 23687 /* 23688 * CDDL HEADER START 23689 * 23690 * The contents of this file are subject to the terms of the 23691 * Common Development and Distribution License (the "License"). 23692 * You may not use this file except in compliance with the License. 23693 * 23694 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23695 * or http://www.opensolaris.org/os/licensing. 23696 * See the License for the specific language governing permissions 23697 * and limitations under the License. 23698 * 23699 * 23700 * When distributing Covered Code, include this CDDL HEADER in each 23701 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23702 * If applicable, add the following below this CDDL HEADER, with the 23703 * fields enclosed by brackets "[]" replaced with your own identifying 23704 * information: Portions Copyright [yyyy] [name of copyright owner] 23705 * 23706 * CDDL HEADER END 23707 */ 23708 23709 /* 23710 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23711 * Use is subject to license terms. 23712 * Copyright 2016 Joyent, Inc. 23713 */ 23714 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 23715 23716 23717 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/null.h" 1 23718 /* 23719 * This file and its contents are supplied under the terms of the 23720 * Common Development and Distribution License ("CDDL"), version 1.0. 23721 * You may only use this file in accordance with the terms of version 23722 * 1.0 of the CDDL. 23723 * 23724 * A full copy of the text of the CDDL should have accompanied this 23725 * source. A copy of the CDDL is also available via the Internet at 23726 * http://www.illumos.org/license/CDDL. 23727 */ 23728 23729 /* 23730 * Copyright 2014-2016 PALO, Richard. 23731 */ 23732 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 23733 23734 23735 23736 23737 23738 /* 23739 * Fundamental variables; don't change too often. 23740 */ 23741 23742 /* 23743 * _POSIX_VDISABLE has historically been defined in <sys/param.h> since 23744 * an early merge with AT&T source. It has also historically been defined 23745 * in <sys/termios.h>. The POSIX standard, IEEE Std. 1003.1-1988 initially 23746 * required the existence of _POSIX_VDISABLE in <sys/termios.h>. 23747 * Subsequent versions of the IEEE Standard as well as the X/Open 23748 * specifications required that _POSIX_VDISABLE be defined in <unistd.h> 23749 * while still allowing for it's existence in other headers. With the 23750 * introduction of XPG6, _POSIX_VDISABLE can only be defined in <unistd.h>. 23751 */ 23752 # 123 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23753 /* compatibility purposes only */ 23754 /* and will be removed in a */ 23755 /* later release */ 23756 23757 /* 23758 * These define the maximum and minimum allowable values of the 23759 * configurable parameter NGROUPS_MAX. 23760 */ 23761 23762 23763 23764 23765 /* 23766 * NGROUPS_MAX_DEFAULT: *MUST* match NGROUPS_MAX value in limits.h. 23767 */ 23768 23769 23770 /* 23771 * Default process priority. Keep it in sync with limits.h. 23772 */ 23773 23774 23775 /* 23776 * Fundamental constants of the implementation--cannot be changed easily. 23777 */ 23778 # 171 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23779 /* REMOTE -- whether machine is primary, secondary, or regular */ 23780 23781 23782 23783 /* 23784 * MAXPATHLEN defines the longest permissible path length, 23785 * including the terminating null, after expanding symbolic links. 23786 * TYPICALMAXPATHLEN is used in a few places as an optimization 23787 * with a local buffer on the stack to avoid kmem_alloc(). 23788 * MAXSYMLINKS defines the maximum number of symbolic links 23789 * that may be expanded in a path name. It should be set high 23790 * enough to allow all legitimate uses, but halt infinite loops 23791 * reasonably quickly. 23792 * MAXNAMELEN is the length (including the terminating null) of 23793 * the longest permissible file (component) name. 23794 */ 23795 23796 23797 23798 23799 23800 /* 23801 * MAXLINKNAMELEN defines the longest possible permitted datalink name, 23802 * including the terminating NUL. Note that this must not be larger 23803 * than related networking constants such as LIFNAMSIZ. 23804 */ 23805 23806 23807 23808 23809 23810 23811 /* 23812 * The following are defined to be the same as 23813 * defined in /usr/include/limits.h. They are 23814 * needed for pipe and FIFO compatibility. 23815 */ 23816 # 220 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23817 /* macros replacing interleaving functions */ 23818 23819 23820 23821 /* 23822 * File system parameters and macros. 23823 * 23824 * The file system is made out of blocks of at most MAXBSIZE units, 23825 * with smaller units (fragments) only in the last direct block. 23826 * MAXBSIZE primarily determines the size of buffers in the buffer 23827 * pool. It may be made larger without any effect on existing 23828 * file systems; however making it smaller make make some file 23829 * systems unmountable. 23830 * 23831 * Note that the blocked devices are assumed to have DEV_BSIZE 23832 * "sectors" and that fragments must be some multiple of this size. 23833 */ 23834 # 261 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23835 /* 64 bit versions of btodb and dbtob */ 23836 # 276 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23837 /* 23838 * Size of arg list passed in by user. 23839 */ 23840 # 287 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23841 /* 23842 * Scale factor for scaled integers used to count 23843 * %cpu time and load averages. 23844 */ 23845 23846 23847 23848 /* 23849 * Delay units are in microseconds. 23850 * 23851 * XXX These macros are not part of the DDI! 23852 */ 23853 # 317 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23854 /* 23855 * The following is to free utilities from machine dependencies within 23856 * an architecture. Must be included after definition of DEV_BSIZE. 23857 */ 23858 # 471 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 23859 /* 23860 * The following are assorted machine dependent values which can be 23861 * obtained in a machine independent manner through sysconf(2) or 23862 * sysinfo(2). In order to guarantee that these provide the expected 23863 * value at all times, the System Private interface (leading underscore) 23864 * is used. 23865 */ 23866 23867 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/unistd.h" 1 23868 /* 23869 * CDDL HEADER START 23870 * 23871 * The contents of this file are subject to the terms of the 23872 * Common Development and Distribution License (the "License"). 23873 * You may not use this file except in compliance with the License. 23874 * 23875 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23876 * or http://www.opensolaris.org/os/licensing. 23877 * See the License for the specific language governing permissions 23878 * and limitations under the License. 23879 * 23880 * When distributing Covered Code, include this CDDL HEADER in each 23881 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23882 * If applicable, add the following below this CDDL HEADER, with the 23883 * fields enclosed by brackets "[]" replaced with your own identifying 23884 * information: Portions Copyright [yyyy] [name of copyright owner] 23885 * 23886 * CDDL HEADER END 23887 */ 23888 23889 /* 23890 * Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T 23891 * All Rights Reserved 23892 * 23893 */ 23894 23895 /* 23896 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23897 * Use is subject to license terms. 23898 */ 23899 23900 /* 23901 * WARNING: This is an implementation-specific header, 23902 * its contents are not guaranteed. Applications 23903 * should include <unistd.h> and not this header. 23904 */ 23905 # 480 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 2 23906 23907 23908 23909 23910 23911 23912 extern long _sysconf(int); /* System Private interface to sysconf() */ 23913 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 23914 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 1 23915 /* 23916 * CDDL HEADER START 23917 * 23918 * The contents of this file are subject to the terms of the 23919 * Common Development and Distribution License (the "License"). 23920 * You may not use this file except in compliance with the License. 23921 * 23922 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23923 * or http://www.opensolaris.org/os/licensing. 23924 * See the License for the specific language governing permissions 23925 * and limitations under the License. 23926 * 23927 * When distributing Covered Code, include this CDDL HEADER in each 23928 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23929 * If applicable, add the following below this CDDL HEADER, with the 23930 * fields enclosed by brackets "[]" replaced with your own identifying 23931 * information: Portions Copyright [yyyy] [name of copyright owner] 23932 * 23933 * CDDL HEADER END 23934 */ 23935 /* 23936 * Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved. 23937 */ 23938 23939 23940 23941 23942 23943 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 23944 /* 23945 * CDDL HEADER START 23946 * 23947 * The contents of this file are subject to the terms of the 23948 * Common Development and Distribution License (the "License"). 23949 * You may not use this file except in compliance with the License. 23950 * 23951 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 23952 * or http://www.opensolaris.org/os/licensing. 23953 * See the License for the specific language governing permissions 23954 * and limitations under the License. 23955 * 23956 * When distributing Covered Code, include this CDDL HEADER in each 23957 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 23958 * If applicable, add the following below this CDDL HEADER, with the 23959 * fields enclosed by brackets "[]" replaced with your own identifying 23960 * information: Portions Copyright [yyyy] [name of copyright owner] 23961 * 23962 * CDDL HEADER END 23963 */ 23964 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 23965 /* All Rights Reserved */ 23966 23967 23968 /* 23969 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23970 * Use is subject to license terms. 23971 * 23972 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 23973 * Copyright 2016 Joyent, Inc. 23974 */ 23975 # 30 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 2 23976 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/mutex.h" 23977 /* 23978 * Public interface to mutual exclusion locks. See mutex(9F) for details. 23979 * 23980 * The basic mutex type is MUTEX_ADAPTIVE, which is expected to be used 23981 * in almost all of the kernel. MUTEX_SPIN provides interrupt blocking 23982 * and must be used in interrupt handlers above LOCK_LEVEL. The iblock 23983 * cookie argument to mutex_init() encodes the interrupt level to block. 23984 * The iblock cookie must be NULL for adaptive locks. 23985 * 23986 * MUTEX_DEFAULT is the type usually specified (except in drivers) to 23987 * mutex_init(). It is identical to MUTEX_ADAPTIVE. 23988 * 23989 * MUTEX_DRIVER is always used by drivers. mutex_init() converts this to 23990 * either MUTEX_ADAPTIVE or MUTEX_SPIN depending on the iblock cookie. 23991 * 23992 * Mutex statistics can be gathered on the fly, without rebooting or 23993 * recompiling the kernel, via the lockstat driver (lockstat(7D)). 23994 */ 23995 typedef enum { 23996 MUTEX_ADAPTIVE = 0, /* spin if owner is running, otherwise block */ 23997 MUTEX_SPIN = 1, /* block interrupts and spin */ 23998 MUTEX_DRIVER = 4, /* driver (DDI) mutex */ 23999 MUTEX_DEFAULT = 6 /* kernel default mutex */ 24000 } kmutex_type_t; 24001 24002 typedef struct mutex { 24003 24004 24005 24006 void *_opaque[2]; 24007 24008 } kmutex_t; 24009 # 42 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 24010 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 1 24011 /* 24012 * CDDL HEADER START 24013 * 24014 * The contents of this file are subject to the terms of the 24015 * Common Development and Distribution License (the "License"). 24016 * You may not use this file except in compliance with the License. 24017 * 24018 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24019 * or http://www.opensolaris.org/os/licensing. 24020 * See the License for the specific language governing permissions 24021 * and limitations under the License. 24022 * 24023 * When distributing Covered Code, include this CDDL HEADER in each 24024 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24025 * If applicable, add the following below this CDDL HEADER, with the 24026 * fields enclosed by brackets "[]" replaced with your own identifying 24027 * information: Portions Copyright [yyyy] [name of copyright owner] 24028 * 24029 * CDDL HEADER END 24030 */ 24031 /* 24032 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24033 * Use is subject to license terms. 24034 */ 24035 24036 /* 24037 * Copyright (c) 2013, Joyent, Inc. All rights reserved. 24038 */ 24039 24040 24041 24042 24043 /* 24044 * Public interface to readers/writer locks. See rwlock(9F) for details. 24045 */ 24046 24047 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 24048 /* 24049 * CDDL HEADER START 24050 * 24051 * The contents of this file are subject to the terms of the 24052 * Common Development and Distribution License (the "License"). 24053 * You may not use this file except in compliance with the License. 24054 * 24055 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24056 * or http://www.opensolaris.org/os/licensing. 24057 * See the License for the specific language governing permissions 24058 * and limitations under the License. 24059 * 24060 * When distributing Covered Code, include this CDDL HEADER in each 24061 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24062 * If applicable, add the following below this CDDL HEADER, with the 24063 * fields enclosed by brackets "[]" replaced with your own identifying 24064 * information: Portions Copyright [yyyy] [name of copyright owner] 24065 * 24066 * CDDL HEADER END 24067 */ 24068 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24069 /* All Rights Reserved */ 24070 24071 24072 /* 24073 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24074 * Use is subject to license terms. 24075 * 24076 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24077 * Copyright 2016 Joyent, Inc. 24078 */ 24079 # 38 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/rwlock.h" 2 24080 24081 24082 24083 24084 24085 24086 24087 typedef enum { 24088 RW_DRIVER = 2, /* driver (DDI) rwlock */ 24089 RW_DEFAULT = 4 /* kernel default rwlock */ 24090 } krw_type_t; 24091 24092 typedef enum { 24093 RW_WRITER, 24094 RW_READER, 24095 RW_READER_STARVEWRITER 24096 } krw_t; 24097 24098 typedef struct _krwlock { 24099 void *_opaque[1]; 24100 } krwlock_t; 24101 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 24102 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 1 24103 /* 24104 * CDDL HEADER START 24105 * 24106 * The contents of this file are subject to the terms of the 24107 * Common Development and Distribution License, Version 1.0 only 24108 * (the "License"). You may not use this file except in compliance 24109 * with the License. 24110 * 24111 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24112 * or http://www.opensolaris.org/os/licensing. 24113 * See the License for the specific language governing permissions 24114 * and limitations under the License. 24115 * 24116 * When distributing Covered Code, include this CDDL HEADER in each 24117 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24118 * If applicable, add the following below this CDDL HEADER, with the 24119 * fields enclosed by brackets "[]" replaced with your own identifying 24120 * information: Portions Copyright [yyyy] [name of copyright owner] 24121 * 24122 * CDDL HEADER END 24123 */ 24124 /* 24125 * Copyright (c) 1993-1998 by Sun Microsystems, Inc. 24126 * All rights reserved. 24127 */ 24128 24129 24130 24131 24132 #pragma ident "%Z%%M% %I% %E% SMI" 24133 24134 /* 24135 * Public interface to semaphores. See semaphore(9F) for details. 24136 */ 24137 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/semaphore.h" 24138 typedef enum { 24139 SEMA_DEFAULT, 24140 SEMA_DRIVER 24141 } ksema_type_t; 24142 24143 typedef struct _ksema { 24144 void * _opaque[2]; /* 2 words on 4 byte alignment */ 24145 } ksema_t; 24146 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 24147 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 1 24148 /* 24149 * CDDL HEADER START 24150 * 24151 * The contents of this file are subject to the terms of the 24152 * Common Development and Distribution License (the "License"). 24153 * You may not use this file except in compliance with the License. 24154 * 24155 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24156 * or http://www.opensolaris.org/os/licensing. 24157 * See the License for the specific language governing permissions 24158 * and limitations under the License. 24159 * 24160 * When distributing Covered Code, include this CDDL HEADER in each 24161 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24162 * If applicable, add the following below this CDDL HEADER, with the 24163 * fields enclosed by brackets "[]" replaced with your own identifying 24164 * information: Portions Copyright [yyyy] [name of copyright owner] 24165 * 24166 * CDDL HEADER END 24167 */ 24168 /* 24169 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24170 * Use is subject to license terms. 24171 */ 24172 24173 /* 24174 * Copyright (c) 2012 by Delphix. All rights reserved. 24175 */ 24176 24177 /* 24178 * condvar.h: 24179 * 24180 * definitions for thread synchronization primitives: condition variables 24181 * This is the public part of the interface to condition variables. The 24182 * private (implementation-specific) part is in <arch>/sys/condvar_impl.h. 24183 */ 24184 24185 24186 24187 24188 24189 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 24190 /* 24191 * CDDL HEADER START 24192 * 24193 * The contents of this file are subject to the terms of the 24194 * Common Development and Distribution License (the "License"). 24195 * You may not use this file except in compliance with the License. 24196 * 24197 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24198 * or http://www.opensolaris.org/os/licensing. 24199 * See the License for the specific language governing permissions 24200 * and limitations under the License. 24201 * 24202 * When distributing Covered Code, include this CDDL HEADER in each 24203 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24204 * If applicable, add the following below this CDDL HEADER, with the 24205 * fields enclosed by brackets "[]" replaced with your own identifying 24206 * information: Portions Copyright [yyyy] [name of copyright owner] 24207 * 24208 * CDDL HEADER END 24209 */ 24210 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24211 /* All Rights Reserved */ 24212 24213 24214 /* 24215 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24216 * Use is subject to license terms. 24217 * 24218 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24219 * Copyright 2016 Joyent, Inc. 24220 */ 24221 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2 24222 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/time.h" 1 24223 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 24224 /* All Rights Reserved */ 24225 24226 24227 /* 24228 * Copyright (c) 1982, 1986, 1993 Regents of the University of California. 24229 * All rights reserved. The Berkeley software License Agreement 24230 * specifies the terms and conditions for redistribution. 24231 */ 24232 24233 /* 24234 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 24235 * 24236 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24237 * Use is subject to license terms. 24238 * 24239 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 24240 */ 24241 24242 /* 24243 * Copyright (c) 2013, 2015 by Delphix. All rights reserved. 24244 */ 24245 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 2 24246 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/condvar.h" 24247 /* 24248 * Condtion variables. 24249 */ 24250 24251 typedef struct _kcondvar { 24252 ushort_t _opaque; 24253 } kcondvar_t; 24254 24255 typedef enum { 24256 CV_DEFAULT, 24257 CV_DRIVER 24258 } kcv_type_t; 24259 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 2 24260 # 53 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/t_lock.h" 24261 /* 24262 * Mutual exclusion locks described in common/sys/mutex.h. 24263 * 24264 * Semaphores described in common/sys/semaphore.h. 24265 * 24266 * Readers/Writer locks described in common/sys/rwlock.h. 24267 * 24268 * Condition variables described in common/sys/condvar.h 24269 */ 24270 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 24271 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 1 24272 /* 24273 * CDDL HEADER START 24274 * 24275 * The contents of this file are subject to the terms of the 24276 * Common Development and Distribution License, Version 1.0 only 24277 * (the "License"). You may not use this file except in compliance 24278 * with the License. 24279 * 24280 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24281 * or http://www.opensolaris.org/os/licensing. 24282 * See the License for the specific language governing permissions 24283 * and limitations under the License. 24284 * 24285 * When distributing Covered Code, include this CDDL HEADER in each 24286 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24287 * If applicable, add the following below this CDDL HEADER, with the 24288 * fields enclosed by brackets "[]" replaced with your own identifying 24289 * information: Portions Copyright [yyyy] [name of copyright owner] 24290 * 24291 * CDDL HEADER END 24292 */ 24293 /* 24294 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 24295 * Use is subject to license terms. 24296 */ 24297 24298 24299 24300 24301 #pragma ident "%Z%%M% %I% %E% SMI" 24302 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 24303 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 24304 /* 24305 * CDDL HEADER START 24306 * 24307 * The contents of this file are subject to the terms of the 24308 * Common Development and Distribution License (the "License"). 24309 * You may not use this file except in compliance with the License. 24310 * 24311 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24312 * or http://www.opensolaris.org/os/licensing. 24313 * See the License for the specific language governing permissions 24314 * and limitations under the License. 24315 * 24316 * 24317 * When distributing Covered Code, include this CDDL HEADER in each 24318 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24319 * If applicable, add the following below this CDDL HEADER, with the 24320 * fields enclosed by brackets "[]" replaced with your own identifying 24321 * information: Portions Copyright [yyyy] [name of copyright owner] 24322 * 24323 * CDDL HEADER END 24324 */ 24325 24326 /* 24327 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24328 * Use is subject to license terms. 24329 * Copyright 2016 Joyent, Inc. 24330 */ 24331 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 2 24332 # 69 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/model.h" 24333 /* 24334 * XXX Ick. This type needs to be visible outside the above guard because 24335 * the proc structure is visible outside the _KERNEL | _KMEMUSER guard. 24336 * If we can make proc internals less visible, (which we obviously should) 24337 * then this can be invisible too. 24338 */ 24339 typedef unsigned int model_t; 24340 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 2 24341 24342 24343 24344 24345 24346 /* 24347 * Data queue. 24348 * 24349 * NOTE: The *only* public fields are documented in queue(9S). 24350 * Everything else is implementation-private. 24351 * 24352 * The locking rules for the queue_t structure are extremely subtle and vary 24353 * widely depending on the field in question. As such, each field is 24354 * annotated according to the following legend: 24355 * 24356 * Q9S: The field is documented in queue(9S) and may be accessed without 24357 * locks by a STREAMS module when inside an entry point (e.g., put(9E)). 24358 * However, no fields can be directly modified unless q_lock is held 24359 * (which is not possible in a DDI compliant STREAMS module), with the 24360 * following exceptions: 24361 * 24362 * - q_ptr: can be modified as per the rules of the STREAMS module. 24363 * The STREAMS framework ignores q_ptr and thus imposes *no* 24364 * locking rules on it. 24365 * - q_qinfo: can be modified before qprocson(). 24366 * 24367 * - q_minpsz, q_maxpsz, q_hiwat, q_lowat: can be modified as per the 24368 * rules of the STREAMS module. The STREAMS framework never 24369 * modifies these fields, and is tolerant of temporarily 24370 * stale field values. 24371 * 24372 * In general, the STREAMS framework employs one of the following 24373 * techniques to ensure STREAMS modules can safely access Q9S fields: 24374 * 24375 * - The field is only modified by the framework when the stream is 24376 * locked with strlock() (q_next). 24377 * 24378 * - The field is modified by the framework, but the modifies are 24379 * atomic, and temporarily stale values are harmless (q_count, 24380 * q_first, q_last). 24381 * 24382 * - The field is modified by the framework, but the field's visible 24383 * values are either constant or directly under the control 24384 * of the STREAMS module itself (q_flag). 24385 * 24386 * QLK: The field must be accessed or modified under q_lock, except when 24387 * the stream has been locked with strlock(). If multiple q_locks must 24388 * be acquired, q_locks at higher addresses must be taken first. 24389 * 24390 * STR: The field can be accessed without a lock, but must be modified under 24391 * strlock(). 24392 * 24393 * SQLK: The field must be accessed or modified under SQLOCK(). 24394 * 24395 * NOLK: The field can be accessed without a lock, but can only be modified 24396 * when the queue_t is not known to any other threads. 24397 * 24398 * SVLK: The field must be accessed or modified under the service_queue lock. 24399 * Note that service_lock must be taken after any needed q_locks, 24400 * and that no other lock should be taken while service_lock is held. 24401 * 24402 * In addition, it is always acceptable to modify a field that is not yet 24403 * known to any other threads -- and other special case exceptions exist in 24404 * the code. Also, q_lock is used with q_wait to implement a stream head 24405 * monitor for reads and writes. 24406 */ 24407 typedef struct queue { 24408 struct qinit *q_qinfo; /* Q9S: Q processing procedure */ 24409 struct msgb *q_first; /* Q9S: first message in Q */ 24410 struct msgb *q_last; /* Q9S: last message in Q */ 24411 struct queue *q_next; /* Q9S: next Q in stream */ 24412 struct queue *q_link; /* SVLK: next Q for scheduling */ 24413 void *q_ptr; /* Q9S: module-specific data */ 24414 size_t q_count; /* Q9S: number of bytes on Q */ 24415 uint_t q_flag; /* Q9S: Q state */ 24416 ssize_t q_minpsz; /* Q9S: smallest packet OK on Q */ 24417 ssize_t q_maxpsz; /* Q9S: largest packet OK on Q */ 24418 size_t q_hiwat; /* Q9S: Q high water mark */ 24419 size_t q_lowat; /* Q9S: Q low water mark */ 24420 struct qband *q_bandp; /* QLK: band flow information */ 24421 kmutex_t q_lock; /* NOLK: structure lock */ 24422 struct stdata *q_stream; /* NOLK: stream backpointer */ 24423 struct syncq *q_syncq; /* NOLK: associated syncq */ 24424 unsigned char q_nband; /* QLK: number of bands */ 24425 kcondvar_t q_wait; /* NOLK: read/write sleep CV */ 24426 struct queue *q_nfsrv; /* STR: next Q with svc routine */ 24427 ushort_t q_draining; /* QLK: Q is draining */ 24428 short q_struiot; /* QLK: sync streams Q UIO mode */ 24429 clock_t q_qtstamp; /* QLK: when Q was enabled */ 24430 size_t q_mblkcnt; /* QLK: mblk count */ 24431 uint_t q_syncqmsgs; /* QLK: syncq message count */ 24432 size_t q_rwcnt; /* QLK: # threads in rwnext() */ 24433 pri_t q_spri; /* QLK: Q scheduling priority */ 24434 24435 /* 24436 * Syncq scheduling 24437 */ 24438 struct msgb *q_sqhead; /* QLK: first syncq message */ 24439 struct msgb *q_sqtail; /* QLK: last syncq message */ 24440 struct queue *q_sqnext; /* SQLK: next Q on syncq list */ 24441 struct queue *q_sqprev; /* SQLK: prev Q on syncq list */ 24442 uint_t q_sqflags; /* SQLK: syncq flags */ 24443 clock_t q_sqtstamp; /* SQLK: when Q was scheduled for sq */ 24444 24445 /* 24446 * NOLK: Reference to the queue's module's implementation 24447 * structure. This will be NULL for queues associated with drivers. 24448 */ 24449 struct fmodsw_impl *q_fp; 24450 } queue_t; 24451 24452 /* 24453 * Queue flags; unused flags not documented in queue(9S) can be recycled. 24454 */ 24455 # 169 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 24456 /* UNUSED 0x00000200 was QHLIST */ 24457 /* UNUSED 0x00000400 was QUNSAFE */ 24458 24459 24460 24461 24462 24463 24464 /* all MT type flags */ 24465 24466 24467 24468 24469 24470 24471 /* UNUSED 0x00400000 was QHOT */ 24472 /* UNUSED 0x00800000 was QNEXTHOT */ 24473 /* UNUSED 0x01000000 was _QNEXTLESS */ 24474 24475 24476 24477 24478 /* direct interface to/from sockfs */ 24479 24480 /* queue sqflags (protected by SQLOCK). */ 24481 24482 24483 /* This is also noted by the */ 24484 /* q_draining field, but this one is */ 24485 /* protected by SQLOCK */ 24486 24487 /* 24488 * Structure that describes the separate information 24489 * for each priority band in the queue. 24490 */ 24491 typedef struct qband { 24492 struct qband *qb_next; /* next band's info */ 24493 size_t qb_count; /* number of bytes in band */ 24494 struct msgb *qb_first; /* beginning of band's data */ 24495 struct msgb *qb_last; /* end of band's data */ 24496 size_t qb_hiwat; /* high water mark for band */ 24497 size_t qb_lowat; /* low water mark for band */ 24498 uint_t qb_flag; /* see below */ 24499 size_t qb_mblkcnt; /* mblk counter for runaway msgs */ 24500 } qband_t; 24501 24502 /* 24503 * qband flags 24504 */ 24505 24506 24507 24508 24509 /* 24510 * Maximum number of bands. 24511 */ 24512 24513 24514 /* 24515 * Fields that can be manipulated through strqset() and strqget(). 24516 */ 24517 typedef enum qfields { 24518 QHIWAT = 0, /* q_hiwat or qb_hiwat */ 24519 QLOWAT = 1, /* q_lowat or qb_lowat */ 24520 QMAXPSZ = 2, /* q_maxpsz */ 24521 QMINPSZ = 3, /* q_minpsz */ 24522 QCOUNT = 4, /* q_count or qb_count */ 24523 QFIRST = 5, /* q_first or qb_first */ 24524 QLAST = 6, /* q_last or qb_last */ 24525 QFLAG = 7, /* q_flag or qb_flag */ 24526 QSTRUIOT = 8, /* q_struiot */ 24527 QBAD = 9 24528 } qfields_t; 24529 24530 /* 24531 * Module information structure 24532 */ 24533 struct module_info { 24534 ushort_t mi_idnum; /* module id number */ 24535 char *mi_idname; /* module name */ 24536 ssize_t mi_minpsz; /* min packet size accepted */ 24537 ssize_t mi_maxpsz; /* max packet size accepted */ 24538 size_t mi_hiwat; /* hi-water mark */ 24539 size_t mi_lowat; /* lo-water mark */ 24540 }; 24541 24542 /* 24543 * queue information structure (with Synchronous STREAMS extensions) 24544 */ 24545 struct qinit { 24546 int (*qi_putp)(); /* put procedure */ 24547 int (*qi_srvp)(); /* service procedure */ 24548 int (*qi_qopen)(); /* called on startup */ 24549 int (*qi_qclose)(); /* called on finish */ 24550 int (*qi_qadmin)(); /* for future use */ 24551 struct module_info *qi_minfo; /* module information structure */ 24552 struct module_stat *qi_mstat; /* module statistics structure */ 24553 int (*qi_rwp)(); /* r/w procedure */ 24554 int (*qi_infop)(); /* information procedure */ 24555 int qi_struiot; /* stream uio type for struio() */ 24556 }; 24557 24558 /* 24559 * Values for qi_struiot and q_struiot: 24560 */ 24561 24562 24563 24564 24565 /* 24566 * Streamtab (used in cdevsw and fmodsw to point to module or driver) 24567 */ 24568 struct streamtab { 24569 struct qinit *st_rdinit; 24570 struct qinit *st_wrinit; 24571 struct qinit *st_muxrinit; 24572 struct qinit *st_muxwinit; 24573 }; 24574 24575 /* 24576 * Structure sent to mux drivers to indicate a link. 24577 */ 24578 struct linkblk { 24579 queue_t *l_qtop; /* lowest level write queue of upper stream */ 24580 /* (set to NULL for persistent links) */ 24581 queue_t *l_qbot; /* highest level write queue of lower stream */ 24582 int l_index; /* index for lower stream. */ 24583 }; 24584 24585 /* 24586 * Esballoc data buffer freeing routine 24587 */ 24588 typedef struct free_rtn { 24589 void (*free_func)(); 24590 caddr_t free_arg; 24591 } frtn_t; 24592 24593 /* 24594 * Data block descriptor 24595 * 24596 * NOTE: db_base, db_lim, db_ref and db_type are the *only* public fields, 24597 * as described in datab(9S). Everything else is implementation-private. 24598 */ 24599 24600 24601 24602 typedef struct datab { 24603 frtn_t *db_frtnp; 24604 unsigned char *db_base; 24605 unsigned char *db_lim; 24606 unsigned char db_ref; 24607 unsigned char db_type; 24608 unsigned char db_flags; 24609 unsigned char db_struioflag; 24610 pid_t db_cpid; /* cached pid, needs verification */ 24611 void *db_cache; /* kmem cache descriptor */ 24612 struct msgb *db_mblk; 24613 void (*db_free)(struct msgb *, struct datab *); 24614 void (*db_lastfree)(struct msgb *, struct datab *); 24615 intptr_t db_cksumstart; 24616 intptr_t db_cksumend; 24617 intptr_t db_cksumstuff; 24618 union { 24619 double enforce_alignment; 24620 unsigned char data[8]; 24621 struct { 24622 union { 24623 uint32_t u32; 24624 uint16_t u16; 24625 } cksum_val; /* used to store calculated cksum */ 24626 uint16_t flags; 24627 uint16_t pad; 24628 } cksum; 24629 /* 24630 * Union used for future extensions (pointer to data ?). 24631 */ 24632 } db_struioun; 24633 struct fthdr *db_fthdr; 24634 cred_t *db_credp; /* credential */ 24635 } dblk_t; 24636 24637 24638 24639 24640 /* 24641 * Accessor macros for private dblk_t fields (the rest are in <sys/strsun.h>). 24642 */ 24643 24644 24645 24646 /* 24647 * Used by GLDv2 to store the TCI information. 24648 */ 24649 24650 24651 /* 24652 * Message block descriptor 24653 */ 24654 typedef struct msgb { 24655 struct msgb *b_next; 24656 struct msgb *b_prev; 24657 struct msgb *b_cont; 24658 unsigned char *b_rptr; 24659 unsigned char *b_wptr; 24660 struct datab *b_datap; 24661 unsigned char b_band; 24662 unsigned char b_tag; 24663 unsigned short b_flag; 24664 queue_t *b_queue; /* for sync queues */ 24665 } mblk_t; 24666 24667 /* 24668 * bcache descriptor 24669 */ 24670 typedef struct bcache { 24671 kmutex_t mutex; 24672 struct kmem_cache *buffer_cache; 24673 struct kmem_cache *dblk_cache; 24674 int alloc; 24675 int destroy; 24676 size_t size; 24677 uint_t align; 24678 } bcache_t; 24679 24680 /* 24681 * db_flags values (all implementation private!) 24682 */ 24683 24684 24685 24686 24687 /* 24688 * db_struioflag values: 24689 */ 24690 24691 24692 24693 24694 24695 24696 /* 24697 * Message flags. These are interpreted by the stream head. 24698 */ 24699 24700 24701 /* write side of stream */ 24702 24703 /* UNUSED 0x08 was MSGNOGET (can be recycled) */ 24704 24705 24706 24707 24708 /* 24709 * Streams message types. 24710 */ 24711 24712 /* 24713 * Data and protocol messages (regular and priority) 24714 */ 24715 24716 24717 24718 24719 /* 24720 * Control messages (regular and priority) 24721 */ 24722 # 445 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 24723 /* 24724 * Control messages (high priority; go to head of queue) 24725 */ 24726 # 468 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 24727 /* 24728 * Queue message class definitions. 24729 */ 24730 24731 24732 24733 /* 24734 * IOCTL structure - this structure is the format of the M_IOCTL message type. 24735 */ 24736 # 488 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 24737 struct iocblk { 24738 int ioc_cmd; /* ioctl command type */ 24739 cred_t *ioc_cr; /* full credentials */ 24740 uint_t ioc_id; /* ioctl id */ 24741 size_t ioc_count; /* count of bytes in data field */ 24742 int ioc_error; /* error code */ 24743 int ioc_rval; /* return value */ 24744 int ioc_fill1; 24745 uint_t ioc_flag; /* see below */ 24746 int ioc_filler[2]; /* reserved for future use */ 24747 }; 24748 24749 24750 typedef struct iocblk *IOCP; 24751 24752 /* {ioc,cp}_flags values */ 24753 24754 24755 24756 24757 24758 24759 24760 /* 24761 * Is the ioctl data formatted for our native model? 24762 */ 24763 24764 24765 24766 /* 24767 * structure for the M_COPYIN and M_COPYOUT message types. 24768 */ 24769 # 531 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 24770 struct copyreq { 24771 int cq_cmd; /* ioctl command (from ioc_cmd) */ 24772 cred_t *cq_cr; /* full credentials */ 24773 uint_t cq_id; /* ioctl id (from ioc_id) */ 24774 caddr_t cq_addr; /* address to copy data to/from */ 24775 size_t cq_size; /* number of bytes to copy */ 24776 uint_t cq_flag; /* must be zero */ 24777 mblk_t *cq_private; /* private state information */ 24778 int cq_filler[4]; /* reserved for future use */ 24779 }; 24780 24781 24782 /* 24783 * structure for the M_IOCDATA message type. 24784 */ 24785 # 557 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 24786 struct copyresp { 24787 int cp_cmd; /* ioctl command (from ioc_cmd) */ 24788 cred_t *cp_cr; /* full credentials */ 24789 uint_t cp_id; /* ioctl id (from ioc_id) */ 24790 caddr_t cp_rval; /* status of request: 0 -> success */ 24791 /* non-zero -> failure */ 24792 size_t cp_pad1; 24793 uint_t cp_pad2; 24794 mblk_t *cp_private; /* private state information */ 24795 uint_t cp_flag; /* datamodel IOC_ flags; see above */ 24796 int cp_filler[3]; 24797 }; 24798 24799 24800 /* 24801 * Since these structures are all intended to travel in the same message 24802 * at different stages of a STREAMS ioctl, this union is used to determine 24803 * the message size in strdoioctl(). 24804 */ 24805 union ioctypes { 24806 struct iocblk iocblk; 24807 struct copyreq copyreq; 24808 struct copyresp copyresp; 24809 }; 24810 24811 /* 24812 * Options structure for M_SETOPTS message. This is sent upstream 24813 * by a module or driver to set stream head options. 24814 */ 24815 struct stroptions { 24816 uint_t so_flags; /* options to set */ 24817 short so_readopt; /* read option */ 24818 ushort_t so_wroff; /* write offset */ 24819 ssize_t so_minpsz; /* minimum read packet size */ 24820 ssize_t so_maxpsz; /* maximum read packet size */ 24821 size_t so_hiwat; /* read queue high water mark */ 24822 size_t so_lowat; /* read queue low water mark */ 24823 unsigned char so_band; /* band for water marks */ 24824 ushort_t so_erropt; /* error option */ 24825 ssize_t so_maxblk; /* maximum message block size */ 24826 ushort_t so_copyopt; /* copy options (see stropts.h) */ 24827 ushort_t so_tail; /* space available at the end */ 24828 }; 24829 24830 /* flags for stream options set message */ 24831 # 673 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stream.h" 24832 /* 24833 * Miscellaneous parameters and flags. 24834 */ 24835 24836 /* 24837 * Values for stream flag in open to indicate module open, clone open, 24838 * and the return value for failure. 24839 */ 24840 24841 24842 24843 24844 /* 24845 * Priority definitions for block allocation. 24846 */ 24847 24848 24849 24850 24851 /* 24852 * Value for packet size that denotes infinity 24853 */ 24854 24855 24856 /* 24857 * Flags for flushq() 24858 */ 24859 24860 24861 24862 /* 24863 * Flag for transparent ioctls 24864 */ 24865 24866 24867 /* 24868 * Stream head default high/low water marks 24869 */ 24870 24871 24872 24873 /* 24874 * qwriter perimeter types 24875 */ 24876 24877 24878 24879 /* 24880 * Definitions of Streams macros and function interfaces. 24881 */ 24882 24883 /* 24884 * canenable - check if queue can be enabled by putq(). 24885 */ 24886 24887 24888 /* 24889 * Test if data block type is one of the data messages (i.e. not a control 24890 * message). 24891 */ 24892 24893 24894 24895 24896 24897 24898 24899 /* 24900 * Extract queue class of message block. 24901 */ 24902 24903 24904 /* 24905 * Align address on next lower word boundary. 24906 */ 24907 24908 24909 /* 24910 * Find the max size of data block. 24911 */ 24912 # 68 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 24913 24914 /* 24915 * Symbols such as htonl() are required to be exposed through this file, 24916 * per XNS Issue 5. This is achieved by inclusion of <sys/byteorder.h> 24917 */ 24918 24919 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 1 24920 /* 24921 * CDDL HEADER START 24922 * 24923 * The contents of this file are subject to the terms of the 24924 * Common Development and Distribution License (the "License"). 24925 * You may not use this file except in compliance with the License. 24926 * 24927 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24928 * or http://www.opensolaris.org/os/licensing. 24929 * See the License for the specific language governing permissions 24930 * and limitations under the License. 24931 * 24932 * When distributing Covered Code, include this CDDL HEADER in each 24933 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24934 * If applicable, add the following below this CDDL HEADER, with the 24935 * fields enclosed by brackets "[]" replaced with your own identifying 24936 * information: Portions Copyright [yyyy] [name of copyright owner] 24937 * 24938 * CDDL HEADER END 24939 */ 24940 24941 /* 24942 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24943 * Use is subject to license terms. 24944 */ 24945 24946 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 24947 /* All Rights Reserved */ 24948 24949 /* 24950 * University Copyright- Copyright (c) 1982, 1986, 1988 24951 * The Regents of the University of California 24952 * All Rights Reserved 24953 * 24954 * University Acknowledgment- Portions of this document are derived from 24955 * software developed by the University of California, Berkeley, and its 24956 * contributors. 24957 */ 24958 24959 24960 24961 24962 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 24963 /* 24964 * CDDL HEADER START 24965 * 24966 * The contents of this file are subject to the terms of the 24967 * Common Development and Distribution License (the "License"). 24968 * You may not use this file except in compliance with the License. 24969 * 24970 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 24971 * or http://www.opensolaris.org/os/licensing. 24972 * See the License for the specific language governing permissions 24973 * and limitations under the License. 24974 * 24975 * 24976 * When distributing Covered Code, include this CDDL HEADER in each 24977 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 24978 * If applicable, add the following below this CDDL HEADER, with the 24979 * fields enclosed by brackets "[]" replaced with your own identifying 24980 * information: Portions Copyright [yyyy] [name of copyright owner] 24981 * 24982 * CDDL HEADER END 24983 */ 24984 24985 /* 24986 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24987 * Use is subject to license terms. 24988 * Copyright 2016 Joyent, Inc. 24989 */ 24990 # 44 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2 24991 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 24992 /* 24993 * CDDL HEADER START 24994 * 24995 * The contents of this file are subject to the terms of the 24996 * Common Development and Distribution License, Version 1.0 only 24997 * (the "License"). You may not use this file except in compliance 24998 * with the License. 24999 * 25000 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25001 * or http://www.opensolaris.org/os/licensing. 25002 * See the License for the specific language governing permissions 25003 * and limitations under the License. 25004 * 25005 * When distributing Covered Code, include this CDDL HEADER in each 25006 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25007 * If applicable, add the following below this CDDL HEADER, with the 25008 * fields enclosed by brackets "[]" replaced with your own identifying 25009 * information: Portions Copyright [yyyy] [name of copyright owner] 25010 * 25011 * CDDL HEADER END 25012 */ 25013 /* 25014 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 25015 * 25016 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 25017 * Use is subject to license terms. 25018 */ 25019 # 45 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 2 25020 # 55 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 25021 /* 25022 * macros for conversion between host and (internet) network byte order 25023 */ 25024 # 74 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 25025 typedef uint16_t in_port_t; 25026 25027 25028 25029 25030 typedef uint32_t in_addr_t; 25031 25032 25033 25034 extern uint32_t htonl(uint32_t); 25035 extern uint16_t htons(uint16_t); 25036 extern uint32_t ntohl(uint32_t); 25037 extern uint16_t ntohs(uint16_t); 25038 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 25039 extern uint64_t htonll(uint64_t); 25040 extern uint64_t ntohll(uint64_t); 25041 25042 25043 25044 25045 25046 25047 /* 25048 * Macros to reverse byte order 25049 */ 25050 # 141 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 25051 /* 25052 * Macros to convert from a specific byte order to/from native byte order 25053 */ 25054 # 164 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 25055 /* 25056 * Macros to read unaligned values from a specific byte order to 25057 * native byte order 25058 */ 25059 # 204 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/byteorder.h" 25060 /* 25061 * Macros to write unaligned values from native byte order to a specific byte 25062 * order. 25063 */ 25064 # 75 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 2 25065 25066 25067 25068 25069 25070 25071 25072 /* 25073 * Note: IPv4 address data structures usage conventions. 25074 * The "in_addr_t" type below (required by Unix standards) 25075 * is NOT a typedef of "struct in_addr" and violates the usual 25076 * conventions where "struct <name>" and <name>_t are corresponding 25077 * typedefs. 25078 * To minimize confusion, kernel data structures/usage prefers use 25079 * of "ipaddr_t" as atomic uint32_t type and avoid using "in_addr_t" 25080 * The user level APIs continue to follow the historic popular 25081 * practice of using "struct in_addr". 25082 */ 25083 25084 25085 25086 25087 25088 25089 25090 typedef uint32_t ipaddr_t; 25091 25092 25093 25094 25095 struct in6_addr { 25096 union { 25097 /* 25098 * Note: Static initalizers of "union" type assume 25099 * the constant on the RHS is the type of the first member 25100 * of union. 25101 * To make static initializers (and efficient usage) work, 25102 * the order of members exposed to user and kernel view of 25103 * this data structure is different. 25104 * User environment sees specified uint8_t type as first 25105 * member whereas kernel sees most efficient type as 25106 * first member. 25107 */ 25108 25109 25110 25111 25112 uint8_t _S6_u8[16]; /* IPv6 address */ 25113 uint32_t _S6_u32[4]; /* IPv6 address */ 25114 25115 uint32_t __S6_align; /* Align on 32 bit boundary */ 25116 } _S6_un; 25117 }; 25118 25119 25120 25121 25122 25123 25124 25125 typedef struct in6_addr in6_addr_t; 25126 # 144 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25127 /* 25128 * Protocols 25129 * 25130 * Some of these constant names are copied for the DTrace IP provider in 25131 * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept 25132 * in sync. 25133 */ 25134 # 177 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25135 /* Transmission Protocol */ 25136 # 186 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25137 /* 25138 * Port/socket numbers: network standard functions 25139 * 25140 * Entries should exist here for each port number compiled into an ON 25141 * component, such as snoop. 25142 */ 25143 # 208 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25144 /* 25145 * Port/socket numbers: host specific functions 25146 */ 25147 # 229 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25148 /* 25149 * Internet Key Exchange (IKE) ports 25150 */ 25151 25152 25153 25154 /* 25155 * UNIX TCP sockets 25156 */ 25157 25158 25159 25160 25161 25162 25163 /* 25164 * UNIX UDP sockets 25165 */ 25166 25167 25168 25169 25170 25171 25172 25173 /* 25174 * DHCPv6 UDP ports 25175 */ 25176 25177 25178 25179 25180 25181 /* 25182 * Ports < IPPORT_RESERVED are reserved for 25183 * privileged processes (e.g. root). 25184 * Ports > IPPORT_USERRESERVED are reserved 25185 * for servers, not necessarily privileged. 25186 */ 25187 25188 25189 25190 /* 25191 * Link numbers 25192 */ 25193 25194 25195 25196 25197 /* 25198 * IPv4 Internet address 25199 * This definition contains obsolete fields for compatibility 25200 * with SunOS 3.x and 4.2bsd. The presence of subnets renders 25201 * divisions into fixed fields misleading at best. New code 25202 * should use only the s_addr field. 25203 */ 25204 # 293 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25205 struct in_addr { 25206 union { 25207 struct { uint8_t s_b1, s_b2, s_b3, s_b4; } S_un_b; 25208 struct { uint16_t s_w1, s_w2; } S_un_w; 25209 25210 uint32_t S_addr; 25211 25212 25213 25214 } S_un; 25215 25216 25217 25218 25219 25220 25221 }; 25222 25223 /* 25224 * Definitions of bits in internet address integers. 25225 * On subnets, the decomposition of addresses to host and net parts 25226 * is done according to subnet mask, not the masks here. 25227 * 25228 * Note that with the introduction of CIDR, IN_CLASSA, IN_CLASSB, 25229 * IN_CLASSC, IN_CLASSD and IN_CLASSE macros have become "de-facto 25230 * obsolete". IN_MULTICAST macro should be used to test if a address 25231 * is a multicast address. 25232 */ 25233 # 348 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25234 /* 25235 * We have removed CLASS E checks from the kernel 25236 * But we preserve these defines for userland in order 25237 * to avoid compile breakage of some 3rd party piece of software 25238 */ 25239 # 369 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25240 /* Scoped IPv4 prefixes (in host byte-order) */ 25241 # 379 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25242 /* RFC 3927 IPv4 link local address (i in host byte-order) */ 25243 25244 25245 /* Well known 6to4 Relay Router Anycast address defined in RFC 3068 */ 25246 25247 25248 25249 25250 25251 25252 /* 25253 * Define a macro to stuff the loopback address into an Internet address 25254 */ 25255 25256 25257 25258 25259 25260 25261 /* 25262 * IPv4 Socket address. 25263 */ 25264 struct sockaddr_in { 25265 sa_family_t sin_family; 25266 in_port_t sin_port; 25267 struct in_addr sin_addr; 25268 25269 char sin_zero[8]; 25270 25271 25272 25273 }; 25274 25275 25276 /* 25277 * IPv6 socket address. 25278 */ 25279 struct sockaddr_in6 { 25280 sa_family_t sin6_family; 25281 in_port_t sin6_port; 25282 uint32_t sin6_flowinfo; 25283 struct in6_addr sin6_addr; 25284 uint32_t sin6_scope_id; /* Depends on scope of sin6_addr */ 25285 uint32_t __sin6_src_id; /* Impl. specific - UDP replies */ 25286 }; 25287 25288 /* 25289 * Macros for accessing the traffic class and flow label fields from 25290 * sin6_flowinfo. 25291 * These are designed to be applied to a 32-bit value. 25292 */ 25293 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25294 /* masks */ 25295 25296 25297 25298 25299 25300 /* 25301 * Note: Macros IN6ADDR_ANY_INIT and IN6ADDR_LOOPBACK_INIT are for 25302 * use as RHS of Static initializers of "struct in6_addr" (or in6_addr_t) 25303 * only. They need to be different for User/Kernel versions because union 25304 * component data structure is defined differently (it is identical at 25305 * binary representation level). 25306 * 25307 * const struct in6_addr IN6ADDR_ANY_INIT; 25308 * const struct in6_addr IN6ADDR_LOOPBACK_INIT; 25309 */ 25310 # 478 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25311 /* 25312 * RFC 2553 specifies the following macros. Their type is defined 25313 * as "int" in the RFC but they only have boolean significance 25314 * (zero or non-zero). For the purposes of our comment notation, 25315 * we assume a hypothetical type "bool" defined as follows to 25316 * write the prototypes assumed for macros in our comments better. 25317 * 25318 * typedef int bool; 25319 */ 25320 25321 /* 25322 * IN6 macros used to test for special IPv6 addresses 25323 * (Mostly from spec) 25324 * 25325 * bool IN6_IS_ADDR_UNSPECIFIED (const struct in6_addr *); 25326 * bool IN6_IS_ADDR_LOOPBACK (const struct in6_addr *); 25327 * bool IN6_IS_ADDR_MULTICAST (const struct in6_addr *); 25328 * bool IN6_IS_ADDR_LINKLOCAL (const struct in6_addr *); 25329 * bool IN6_IS_ADDR_SITELOCAL (const struct in6_addr *); 25330 * bool IN6_IS_ADDR_V4MAPPED (const struct in6_addr *); 25331 * bool IN6_IS_ADDR_V4MAPPED_ANY(const struct in6_addr *); -- Not from RFC2553 25332 * bool IN6_IS_ADDR_V4COMPAT (const struct in6_addr *); 25333 * bool IN6_IS_ADDR_MC_RESERVED (const struct in6_addr *); -- Not from RFC2553 25334 * bool IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *); 25335 * bool IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *); 25336 * bool IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *); 25337 * bool IN6_IS_ADDR_MC_ORGLOCAL (const struct in6_addr *); 25338 * bool IN6_IS_ADDR_MC_GLOBAL (const struct in6_addr *); 25339 * bool IN6_IS_ADDR_6TO4 (const struct in6_addr *); -- Not from RFC2553 25340 * bool IN6_ARE_6TO4_PREFIX_EQUAL(const struct in6_addr *, 25341 * const struct in6_addr *); -- Not from RFC2553 25342 * bool IN6_IS_ADDR_LINKSCOPE (const struct in6addr *); -- Not from RFC2553 25343 */ 25344 # 568 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25345 /* 25346 * IN6_IS_ADDR_V4MAPPED - A IPv4 mapped INADDR_ANY 25347 * Note: This macro is currently NOT defined in RFC2553 specification 25348 * and not a standard macro that portable applications should use. 25349 */ 25350 # 587 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25351 /* Exclude loopback and unspecified address */ 25352 # 605 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25353 /* 25354 * Note: 25355 * IN6_IS_ADDR_MC_RESERVED macro is currently NOT defined in RFC2553 25356 * specification and not a standard macro that portable applications 25357 * should use. 25358 */ 25359 # 660 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25360 /* 25361 * The IN6_IS_ADDR_MC_SOLICITEDNODE macro is not defined in any standard or 25362 * RFC, and shouldn't be used by portable applications. It is used to see 25363 * if an address is a solicited-node multicast address, which is prefixed 25364 * with ff02:0:0:0:0:1:ff00::/104. 25365 */ 25366 # 680 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25367 /* 25368 * Macros to a) test for 6to4 IPv6 address, and b) to test if two 25369 * 6to4 addresses have the same /48 prefix, and, hence, are from the 25370 * same 6to4 site. 25371 */ 25372 # 699 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25373 /* 25374 * IN6_IS_ADDR_LINKSCOPE 25375 * Identifies an address as being either link-local, link-local multicast or 25376 * node-local multicast. All types of addresses are considered to be unique 25377 * within the scope of a given link. 25378 */ 25379 25380 25381 25382 25383 /* 25384 * Useful utility macros for operations with IPv6 addresses 25385 * Note: These macros are NOT defined in the RFC2553 or any other 25386 * standard specification and are not standard macros that portable 25387 * applications should use. 25388 */ 25389 25390 /* 25391 * IN6_V4MAPPED_TO_INADDR 25392 * IN6_V4MAPPED_TO_IPADDR 25393 * Assign a IPv4-Mapped IPv6 address to an IPv4 address. 25394 * Note: These macros are NOT defined in RFC2553 or any other standard 25395 * specification and are not macros that portable applications should 25396 * use. 25397 * 25398 * void IN6_V4MAPPED_TO_INADDR(const in6_addr_t *v6, struct in_addr *v4); 25399 * void IN6_V4MAPPED_TO_IPADDR(const in6_addr_t *v6, ipaddr_t v4); 25400 * 25401 */ 25402 25403 25404 25405 25406 25407 /* 25408 * IN6_INADDR_TO_V4MAPPED 25409 * IN6_IPADDR_TO_V4MAPPED 25410 * Assign a IPv4 address address to an IPv6 address as a IPv4-mapped 25411 * address. 25412 * Note: These macros are NOT defined in RFC2553 or any other standard 25413 * specification and are not macros that portable applications should 25414 * use. 25415 * 25416 * void IN6_INADDR_TO_V4MAPPED(const struct in_addr *v4, in6_addr_t *v6); 25417 * void IN6_IPADDR_TO_V4MAPPED(const ipaddr_t v4, in6_addr_t *v6); 25418 * 25419 */ 25420 # 770 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25421 /* 25422 * IN6_6TO4_TO_V4ADDR 25423 * Extract the embedded IPv4 address from the prefix to a 6to4 IPv6 25424 * address. 25425 * Note: This macro is NOT defined in RFC2553 or any other standard 25426 * specification and is not a macro that portable applications should 25427 * use. 25428 * Note: we don't use the IPADDR form of the macro because we need 25429 * to do a bytewise copy; the V4ADDR in the 6to4 address is not 25430 * 32-bit aligned. 25431 * 25432 * void IN6_6TO4_TO_V4ADDR(const in6_addr_t *v6, struct in_addr *v4); 25433 * 25434 */ 25435 25436 25437 25438 25439 25440 25441 /* 25442 * IN6_V4ADDR_TO_6TO4 25443 * Given an IPv4 address and an IPv6 address for output, a 6to4 address 25444 * will be created from the IPv4 Address. 25445 * Note: This method for creating 6to4 addresses is not standardized 25446 * outside of Solaris. The newly created 6to4 address will be of the form 25447 * 2002:<V4ADDR>:<SUBNETID>::<HOSTID>, where SUBNETID will equal 0 and 25448 * HOSTID will equal 1. 25449 * 25450 * void IN6_V4ADDR_TO_6TO4(const struct in_addr *v4, in6_addr_t *v6) 25451 * 25452 */ 25453 # 828 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25454 /* 25455 * IN6_ARE_ADDR_EQUAL (defined in RFC2292) 25456 * Compares if IPv6 addresses are equal. 25457 * Note: Compares in order of high likelyhood of a miss so we minimize 25458 * compares. (Current heuristic order, compare in reverse order of 25459 * uint32_t units) 25460 * 25461 * bool IN6_ARE_ADDR_EQUAL(const struct in6_addr *, 25462 * const struct in6_addr *); 25463 */ 25464 25465 25466 25467 25468 25469 25470 /* 25471 * IN6_ARE_PREFIXEDADDR_EQUAL (not defined in RFCs) 25472 * Compares if prefixed parts of IPv6 addresses are equal. 25473 * 25474 * uint32_t IN6_MASK_FROM_PREFIX(int, int); 25475 * bool IN6_ARE_PREFIXEDADDR_EQUAL(const struct in6_addr *, 25476 * const struct in6_addr *, 25477 * int); 25478 */ 25479 # 879 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25480 /* 25481 * Options for use with [gs]etsockopt at the IP level. 25482 * 25483 * Note: Some of the IP_ namespace has conflict with and 25484 * and is exposed through <xti.h>. (It also requires exposing 25485 * options not implemented). The options with potential 25486 * for conflicts use #ifndef guards. 25487 */ 25488 # 919 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25489 /* 25490 * IP_PKTINFO and IP_RECVPKTINFO have same value. Size of argument passed in 25491 * is used to differentiate b/w the two. 25492 */ 25493 25494 25495 25496 25497 25498 /* 25499 * Different preferences that can be requested from IPSEC protocols. 25500 */ 25501 25502 25503 25504 25505 /* 25506 * This can be used with the setsockopt() call to set per socket security 25507 * options. When the application uses per-socket API, we will reflect 25508 * the request on both outbound and inbound packets. 25509 */ 25510 25511 typedef struct ipsec_req { 25512 uint_t ipsr_ah_req; /* AH request */ 25513 uint_t ipsr_esp_req; /* ESP request */ 25514 uint_t ipsr_self_encap_req; /* Self-Encap request */ 25515 uint8_t ipsr_auth_alg; /* Auth algs for AH */ 25516 uint8_t ipsr_esp_alg; /* Encr algs for ESP */ 25517 uint8_t ipsr_esp_auth_alg; /* Auth algs for ESP */ 25518 } ipsec_req_t; 25519 25520 /* 25521 * MCAST_* options are protocol-independent. The actual definitions 25522 * are with the v6 options below; this comment is here to note the 25523 * namespace usage. 25524 * 25525 * #define MCAST_JOIN_GROUP 0x29 25526 * #define MCAST_LEAVE_GROUP 0x2a 25527 * #define MCAST_BLOCK_SOURCE 0x2b 25528 * #define MCAST_UNBLOCK_SOURCE 0x2c 25529 * #define MCAST_JOIN_SOURCE_GROUP 0x2d 25530 * #define MCAST_LEAVE_SOURCE_GROUP 0x2e 25531 */ 25532 25533 25534 /* 25535 * SunOS private (potentially not portable) IP_ option names 25536 */ 25537 25538 25539 25540 /* can be reused 0x44 */ 25541 25542 25543 /* 25544 * Option values and names (when !_XPG5) shared with <xti_inet.h> 25545 */ 25546 # 988 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25547 /* 25548 * The following option values are reserved by <xti_inet.h> 25549 * 25550 * T_IP_OPTIONS 0x107 - IP per-packet options 25551 * T_IP_TOS 0x108 - IP per packet type of service 25552 */ 25553 25554 /* 25555 * Default value constants for multicast attributes controlled by 25556 * IP*_MULTICAST_LOOP and IP*_MULTICAST_{TTL,HOPS} options. 25557 */ 25558 25559 25560 25561 25562 /* 25563 * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. 25564 */ 25565 struct ip_mreq { 25566 struct in_addr imr_multiaddr; /* IP multicast address of group */ 25567 struct in_addr imr_interface; /* local IP address of interface */ 25568 }; 25569 25570 /* 25571 * Argument structure for IP_BLOCK_SOURCE, IP_UNBLOCK_SOURCE, 25572 * IP_ADD_SOURCE_MEMBERSHIP, and IP_DROP_SOURCE_MEMBERSHIP. 25573 */ 25574 struct ip_mreq_source { 25575 struct in_addr imr_multiaddr; /* IP address of group */ 25576 struct in_addr imr_sourceaddr; /* IP address of source */ 25577 struct in_addr imr_interface; /* IP address of interface */ 25578 }; 25579 25580 /* 25581 * Argument structure for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP on 25582 * IPv6 addresses. 25583 */ 25584 struct ipv6_mreq { 25585 struct in6_addr ipv6mr_multiaddr; /* IPv6 multicast addr */ 25586 unsigned int ipv6mr_interface; /* interface index */ 25587 }; 25588 25589 /* 25590 * Use #pragma pack() construct to force 32-bit alignment on amd64. 25591 * This is needed to keep the structure size and offsets consistent 25592 * between a 32-bit app and the 64-bit amd64 kernel in structures 25593 * where 64-bit alignment would create gaps (in this case, structures 25594 * which have a uint32_t followed by a struct sockaddr_storage). 25595 */ 25596 25597 25598 25599 25600 /* 25601 * Argument structure for MCAST_JOIN_GROUP and MCAST_LEAVE_GROUP. 25602 */ 25603 struct group_req { 25604 uint32_t gr_interface; /* interface index */ 25605 struct sockaddr_storage gr_group; /* group address */ 25606 }; 25607 25608 /* 25609 * Argument structure for MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, 25610 * MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP. 25611 */ 25612 struct group_source_req { 25613 uint32_t gsr_interface; /* interface index */ 25614 struct sockaddr_storage gsr_group; /* group address */ 25615 struct sockaddr_storage gsr_source; /* source address */ 25616 }; 25617 25618 /* 25619 * Argument for SIOC[GS]MSFILTER ioctls 25620 */ 25621 struct group_filter { 25622 uint32_t gf_interface; /* interface index */ 25623 struct sockaddr_storage gf_group; /* multicast address */ 25624 uint32_t gf_fmode; /* filter mode */ 25625 uint32_t gf_numsrc; /* number of sources */ 25626 struct sockaddr_storage gf_slist[1]; /* source address */ 25627 }; 25628 # 1078 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25629 /* 25630 * Argument for SIOC[GS]IPMSFILTER ioctls (IPv4-specific) 25631 */ 25632 struct ip_msfilter { 25633 struct in_addr imsf_multiaddr; /* IP multicast address of group */ 25634 struct in_addr imsf_interface; /* local IP address of interface */ 25635 uint32_t imsf_fmode; /* filter mode */ 25636 uint32_t imsf_numsrc; /* number of sources in src_list */ 25637 struct in_addr imsf_slist[1]; /* start of source list */ 25638 }; 25639 25640 25641 25642 25643 25644 /* 25645 * Multicast source filter manipulation functions in libsocket; 25646 * defined in RFC 3678. 25647 */ 25648 int setsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t, 25649 uint_t, struct sockaddr_storage *); 25650 25651 int getsourcefilter(int, uint32_t, struct sockaddr *, socklen_t, uint32_t *, 25652 uint_t *, struct sockaddr_storage *); 25653 25654 int setipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t, 25655 uint32_t, struct in_addr *); 25656 25657 int getipv4sourcefilter(int, struct in_addr, struct in_addr, uint32_t *, 25658 uint32_t *, struct in_addr *); 25659 25660 /* 25661 * Definitions needed for [gs]etsourcefilter(), [gs]etipv4sourcefilter() 25662 */ 25663 25664 25665 25666 /* 25667 * Argument struct for IP_PKTINFO option 25668 */ 25669 typedef struct in_pktinfo { 25670 unsigned int ipi_ifindex; /* send/recv interface index */ 25671 struct in_addr ipi_spec_dst; /* matched source address */ 25672 struct in_addr ipi_addr; /* src/dst address in IP hdr */ 25673 } in_pktinfo_t; 25674 25675 /* 25676 * Argument struct for IPV6_PKTINFO option 25677 */ 25678 struct in6_pktinfo { 25679 struct in6_addr ipi6_addr; /* src/dst IPv6 address */ 25680 unsigned int ipi6_ifindex; /* send/recv interface index */ 25681 }; 25682 25683 /* 25684 * Argument struct for IPV6_MTUINFO option 25685 */ 25686 struct ip6_mtuinfo { 25687 struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */ 25688 uint32_t ip6m_mtu; /* path MTU in host byte order */ 25689 }; 25690 25691 /* 25692 * IPv6 routing header types 25693 */ 25694 25695 25696 extern socklen_t inet6_rth_space(int type, int segments); 25697 extern void *inet6_rth_init(void *bp, socklen_t bp_len, int type, int segments); 25698 extern int inet6_rth_add(void *bp, const struct in6_addr *addr); 25699 extern int inet6_rth_reverse(const void *in, void *out); 25700 extern int inet6_rth_segments(const void *bp); 25701 extern struct in6_addr *inet6_rth_getaddr(const void *bp, int index); 25702 25703 extern int inet6_opt_init(void *extbuf, socklen_t extlen); 25704 extern int inet6_opt_append(void *extbuf, socklen_t extlen, int offset, 25705 uint8_t type, socklen_t len, uint_t align, void **databufp); 25706 extern int inet6_opt_finish(void *extbuf, socklen_t extlen, int offset); 25707 extern int inet6_opt_set_val(void *databuf, int offset, void *val, 25708 socklen_t vallen); 25709 extern int inet6_opt_next(void *extbuf, socklen_t extlen, int offset, 25710 uint8_t *typep, socklen_t *lenp, void **databufp); 25711 extern int inet6_opt_find(void *extbufp, socklen_t extlen, int offset, 25712 uint8_t type, socklen_t *lenp, void **databufp); 25713 extern int inet6_opt_get_val(void *databuf, int offset, void *val, 25714 socklen_t vallen); 25715 25716 25717 /* 25718 * Argument structure for IP_ADD_PROXY_ADDR. 25719 * Note that this is an unstable, experimental interface. It may change 25720 * later. Don't use it unless you know what it is. 25721 */ 25722 typedef struct { 25723 struct in_addr in_prefix_addr; 25724 unsigned int in_prefix_len; 25725 } in_prefix_t; 25726 25727 25728 25729 /* 25730 * IPv6 options 25731 */ 25732 25733 /* packets. */ 25734 /* argument type: uint_t */ 25735 25736 /* multicast packets. */ 25737 /* argument type: struct in6_addr */ 25738 25739 /* multicast packets. */ 25740 /* argument type: uint_t */ 25741 25742 /* multicast packets on same socket. */ 25743 /* argument type: uint_t */ 25744 25745 /* argument type: struct ipv6_mreq */ 25746 25747 /* argument type: struct ipv6_mreq */ 25748 25749 /* 25750 * Other XPG6 constants. 25751 */ 25752 25753 /* decimal notation. */ 25754 25755 /* standard colon-hex notation. */ 25756 25757 25758 25759 25760 25761 /* 25762 * IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are being kept 25763 * for backward compatibility. They have the same meaning as IPV6_JOIN_GROUP 25764 * and IPV6_LEAVE_GROUP respectively. 25765 */ 25766 25767 /* argument type: struct ipv6_mreq */ 25768 25769 /* argument type: struct ipv6_mreq */ 25770 25771 25772 /* arg type: "struct in6_pktingo" - */ 25773 25774 25775 25776 25777 /* the routing header */ 25778 25779 25780 /* the routing header */ 25781 25782 25783 25784 25785 /* 25786 * This options exists for backwards compatability and should no longer be 25787 * used. Use IPV6_RECVDSTOPTS instead. 25788 */ 25789 25790 25791 25792 25793 /* 25794 * enable/disable IPV6_RTHDRDSTOPTS. Now obsolete. IPV6_RECVDSTOPTS enables 25795 * the receipt of both headers. 25796 */ 25797 # 1259 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25798 /* 25799 * enable/disable receipt of both both IPV6_DSTOPTS headers. 25800 */ 25801 25802 25803 /* 25804 * protocol-independent multicast membership options. 25805 */ 25806 25807 25808 25809 25810 25811 25812 25813 /* 32Bit field for IPV6_SRC_PREFERENCES */ 25814 # 1295 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 25815 /* 25816 * SunOS private (potentially not portable) IPV6_ option names 25817 */ 25818 25819 25820 /* unspecified (all zeros) */ 25821 25822 /* 25823 * Miscellaneous IPv6 constants. 25824 */ 25825 25826 25827 25828 25829 /* 25830 * Extern declarations for pre-defined global const variables 25831 */ 25832 25833 25834 25835 extern const struct in6_addr in6addr_any; 25836 extern const struct in6_addr in6addr_loopback; 25837 # 78 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 25838 25839 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 1 25840 /* 25841 * CDDL HEADER START 25842 * 25843 * The contents of this file are subject to the terms of the 25844 * Common Development and Distribution License (the "License"). 25845 * You may not use this file except in compliance with the License. 25846 * 25847 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25848 * or http://www.opensolaris.org/os/licensing. 25849 * See the License for the specific language governing permissions 25850 * and limitations under the License. 25851 * 25852 * When distributing Covered Code, include this CDDL HEADER in each 25853 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25854 * If applicable, add the following below this CDDL HEADER, with the 25855 * fields enclosed by brackets "[]" replaced with your own identifying 25856 * information: Portions Copyright [yyyy] [name of copyright owner] 25857 * 25858 * CDDL HEADER END 25859 */ 25860 /* 25861 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 25862 * 25863 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 25864 */ 25865 25866 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 25867 /* All Rights Reserved */ 25868 25869 /* 25870 * University Copyright- Copyright (c) 1982, 1986, 1988 25871 * The Regents of the University of California 25872 * All Rights Reserved 25873 * 25874 * University Acknowledgment- Portions of this document are derived from 25875 * software developed by the University of California, Berkeley, and its 25876 * contributors. 25877 */ 25878 25879 /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ 25880 25881 25882 25883 25884 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 25885 /* 25886 * CDDL HEADER START 25887 * 25888 * The contents of this file are subject to the terms of the 25889 * Common Development and Distribution License (the "License"). 25890 * You may not use this file except in compliance with the License. 25891 * 25892 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25893 * or http://www.opensolaris.org/os/licensing. 25894 * See the License for the specific language governing permissions 25895 * and limitations under the License. 25896 * 25897 * When distributing Covered Code, include this CDDL HEADER in each 25898 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25899 * If applicable, add the following below this CDDL HEADER, with the 25900 * fields enclosed by brackets "[]" replaced with your own identifying 25901 * information: Portions Copyright [yyyy] [name of copyright owner] 25902 * 25903 * CDDL HEADER END 25904 */ 25905 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 25906 /* All Rights Reserved */ 25907 25908 25909 /* 25910 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25911 * Use is subject to license terms. 25912 * 25913 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 25914 * Copyright 2016 Joyent, Inc. 25915 */ 25916 # 46 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 25917 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 1 25918 /* 25919 * CDDL HEADER START 25920 * 25921 * The contents of this file are subject to the terms of the 25922 * Common Development and Distribution License (the "License"). 25923 * You may not use this file except in compliance with the License. 25924 * 25925 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25926 * or http://www.opensolaris.org/os/licensing. 25927 * See the License for the specific language governing permissions 25928 * and limitations under the License. 25929 * 25930 * When distributing Covered Code, include this CDDL HEADER in each 25931 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25932 * If applicable, add the following below this CDDL HEADER, with the 25933 * fields enclosed by brackets "[]" replaced with your own identifying 25934 * information: Portions Copyright [yyyy] [name of copyright owner] 25935 * 25936 * CDDL HEADER END 25937 */ 25938 /* 25939 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 25940 * 25941 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 25942 * Use is subject to license terms. 25943 * 25944 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 25945 * Copyright (c) 2015, Joyent, Inc. All rights reserved. 25946 */ 25947 25948 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 25949 /* All Rights Reserved */ 25950 25951 /* 25952 * University Copyright- Copyright (c) 1982, 1986, 1988 25953 * The Regents of the University of California 25954 * All Rights Reserved 25955 * 25956 * University Acknowledgment- Portions of this document are derived from 25957 * software developed by the University of California, Berkeley, and its 25958 * contributors. 25959 */ 25960 25961 25962 25963 25964 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 25965 /* 25966 * CDDL HEADER START 25967 * 25968 * The contents of this file are subject to the terms of the 25969 * Common Development and Distribution License (the "License"). 25970 * You may not use this file except in compliance with the License. 25971 * 25972 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 25973 * or http://www.opensolaris.org/os/licensing. 25974 * See the License for the specific language governing permissions 25975 * and limitations under the License. 25976 * 25977 * When distributing Covered Code, include this CDDL HEADER in each 25978 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 25979 * If applicable, add the following below this CDDL HEADER, with the 25980 * fields enclosed by brackets "[]" replaced with your own identifying 25981 * information: Portions Copyright [yyyy] [name of copyright owner] 25982 * 25983 * CDDL HEADER END 25984 */ 25985 25986 /* 25987 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 25988 * Copyright 2016 Joyent, Inc. 25989 * 25990 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 25991 * Use is subject to license terms. 25992 */ 25993 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2 25994 25995 25996 25997 25998 25999 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 26000 /* 26001 * CDDL HEADER START 26002 * 26003 * The contents of this file are subject to the terms of the 26004 * Common Development and Distribution License (the "License"). 26005 * You may not use this file except in compliance with the License. 26006 * 26007 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26008 * or http://www.opensolaris.org/os/licensing. 26009 * See the License for the specific language governing permissions 26010 * and limitations under the License. 26011 * 26012 * When distributing Covered Code, include this CDDL HEADER in each 26013 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26014 * If applicable, add the following below this CDDL HEADER, with the 26015 * fields enclosed by brackets "[]" replaced with your own identifying 26016 * information: Portions Copyright [yyyy] [name of copyright owner] 26017 * 26018 * CDDL HEADER END 26019 */ 26020 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 26021 /* All Rights Reserved */ 26022 26023 26024 /* 26025 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 26026 * Use is subject to license terms. 26027 * 26028 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 26029 * Copyright 2016 Joyent, Inc. 26030 */ 26031 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 2 26032 26033 /* 26034 * I/O parameter information. A uio structure describes the I/O which 26035 * is to be performed by an operation. Typically the data movement will 26036 * be performed by a routine such as uiomove(), which updates the uio 26037 * structure to reflect what was done. 26038 */ 26039 26040 26041 26042 26043 26044 26045 26046 typedef struct iovec { 26047 caddr_t iov_base; 26048 26049 26050 26051 long iov_len; 26052 26053 } iovec_t; 26054 # 90 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26055 /* 26056 * Segment flag values. 26057 */ 26058 typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t; 26059 26060 typedef struct uio { 26061 iovec_t *uio_iov; /* pointer to array of iovecs */ 26062 int uio_iovcnt; /* number of iovecs */ 26063 lloff_t _uio_offset; /* file offset */ 26064 uio_seg_t uio_segflg; /* address space (kernel or user) */ 26065 uint16_t uio_fmode; /* file mode flags */ 26066 uint16_t uio_extflg; /* extended flags */ 26067 lloff_t _uio_limit; /* u-limit (maximum byte offset) */ 26068 ssize_t uio_resid; /* residual count */ 26069 } uio_t; 26070 26071 /* 26072 * Extended uio_t uioa_t used for asynchronous uio. 26073 * 26074 * Note: UIOA_IOV_MAX is defined and used as it is in "fs/vncalls.c" 26075 * as there isn't a formal definition of IOV_MAX for the kernel. 26076 */ 26077 26078 26079 typedef struct uioa_page_s { /* locked uio_iov state */ 26080 int uioa_pfncnt; /* count of pfn_t(s) in *uioa_ppp */ 26081 void **uioa_ppp; /* page_t or pfn_t arrary */ 26082 caddr_t uioa_base; /* address base */ 26083 size_t uioa_len; /* span length */ 26084 } uioa_page_t; 26085 26086 typedef struct uioa_s { 26087 iovec_t *uio_iov; /* pointer to array of iovecs */ 26088 int uio_iovcnt; /* number of iovecs */ 26089 lloff_t _uio_offset; /* file offset */ 26090 uio_seg_t uio_segflg; /* address space (kernel or user) */ 26091 uint16_t uio_fmode; /* file mode flags */ 26092 uint16_t uio_extflg; /* extended flags */ 26093 lloff_t _uio_limit; /* u-limit (maximum byte offset) */ 26094 ssize_t uio_resid; /* residual count */ 26095 /* 26096 * uioa extended members. 26097 */ 26098 uint32_t uioa_state; /* state of asynch i/o */ 26099 ssize_t uioa_mbytes; /* bytes that have been uioamove()ed */ 26100 uioa_page_t *uioa_lcur; /* pointer into uioa_locked[] */ 26101 void **uioa_lppp; /* pointer into lcur->uioa_ppp[] */ 26102 void *uioa_hwst[4]; /* opaque hardware state */ 26103 uioa_page_t uioa_locked[16]; /* Per iov locked pages */ 26104 } uioa_t; 26105 26106 /* 26107 * uio extensions 26108 * 26109 * PSARC 2009/478: Copy Reduction Interfaces 26110 */ 26111 typedef enum xuio_type { 26112 UIOTYPE_ASYNCIO, 26113 UIOTYPE_ZEROCOPY 26114 } xuio_type_t; 26115 26116 typedef struct xuio { 26117 uio_t xu_uio; /* Embedded UIO structure */ 26118 26119 /* Extended uio fields */ 26120 enum xuio_type xu_type; /* What kind of uio structure? */ 26121 union { 26122 /* Async I/O Support, intend to replace uioa_t. */ 26123 struct { 26124 uint32_t xu_a_state; /* state of async i/o */ 26125 /* bytes that have been uioamove()ed */ 26126 ssize_t xu_a_mbytes; 26127 uioa_page_t *xu_a_lcur; /* pointer into uioa_locked[] */ 26128 /* pointer into lcur->uioa_ppp[] */ 26129 void **xu_a_lppp; 26130 void *xu_a_hwst[4]; /* opaque hardware state */ 26131 /* Per iov locked pages */ 26132 uioa_page_t xu_a_locked[16]; 26133 } xu_aio; 26134 26135 /* 26136 * Copy Reduction Support -- facilate loaning / returning of 26137 * filesystem cache buffers. 26138 */ 26139 struct { 26140 int xu_zc_rw; /* read or write buffer */ 26141 void *xu_zc_priv; /* fs specific */ 26142 } xu_zc; 26143 } xu_ext; 26144 } xuio_t; 26145 # 207 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26146 /* 26147 * I/O direction. 26148 */ 26149 typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t; 26150 26151 /* 26152 * uio_extflg: extended flags 26153 * 26154 * NOTE: This flag will be used in uiomove to determine if non-temporal 26155 * access, ie, access bypassing caches, should be used. Filesystems that 26156 * don't initialize this field could experience suboptimal performance due to 26157 * the random data the field contains. 26158 * 26159 * NOTE: This flag is also used by uioasync callers to pass an extended 26160 * uio_t (uioa_t), to uioasync enabled consumers. Unlike above all 26161 * consumers of a uioa_t require the uio_extflg to be initialized. 26162 */ 26163 26164 26165 26166 26167 26168 26169 /* 26170 * Global uioasync capability shadow state. 26171 */ 26172 typedef struct uioasync_s { 26173 boolean_t enabled; /* Is uioasync enabled? */ 26174 size_t mincnt; /* Minimum byte count for use of */ 26175 } uioasync_t; 26176 # 257 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26177 extern ssize_t readv(int, const struct iovec *, int); 26178 extern ssize_t writev(int, const struct iovec *, int); 26179 26180 /* 26181 * When in the large file compilation environment, 26182 * map preadv/pwritev to their 64 bit offset versions 26183 */ 26184 26185 26186 26187 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26188 #pragma redefine_extname preadv preadv64 26189 # 266 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26190 26191 26192 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26193 #pragma redefine_extname pwritev pwritev64 26194 # 267 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26195 26196 26197 26198 26199 26200 26201 26202 /* In the LP64 compilation environment, the APIs are already large file */ 26203 # 285 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/uio.h" 26204 extern ssize_t preadv(int, const struct iovec *, int, off_t); 26205 extern ssize_t pwritev(int, const struct iovec *, int, off_t); 26206 26207 /* 26208 * preadv64 and pwritev64 should be defined when: 26209 * - Using the transitional compilation environment, and not 26210 * the large file compilation environment. 26211 */ 26212 26213 26214 extern ssize_t preadv64(int, const struct iovec *, int, off64_t); 26215 extern ssize_t pwritev64(int, const struct iovec *, int, off64_t); 26216 # 47 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 26217 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 26218 /* 26219 * CDDL HEADER START 26220 * 26221 * The contents of this file are subject to the terms of the 26222 * Common Development and Distribution License (the "License"). 26223 * You may not use this file except in compliance with the License. 26224 * 26225 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26226 * or http://www.opensolaris.org/os/licensing. 26227 * See the License for the specific language governing permissions 26228 * and limitations under the License. 26229 * 26230 * When distributing Covered Code, include this CDDL HEADER in each 26231 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26232 * If applicable, add the following below this CDDL HEADER, with the 26233 * fields enclosed by brackets "[]" replaced with your own identifying 26234 * information: Portions Copyright [yyyy] [name of copyright owner] 26235 * 26236 * CDDL HEADER END 26237 */ 26238 26239 /* 26240 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 26241 * Copyright 2016 Joyent, Inc. 26242 * 26243 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 26244 * Use is subject to license terms. 26245 */ 26246 # 48 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 26247 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket_impl.h" 1 26248 /* 26249 * CDDL HEADER START 26250 * 26251 * The contents of this file are subject to the terms of the 26252 * Common Development and Distribution License (the "License"). 26253 * You may not use this file except in compliance with the License. 26254 * 26255 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26256 * or http://www.opensolaris.org/os/licensing. 26257 * See the License for the specific language governing permissions 26258 * and limitations under the License. 26259 * 26260 * When distributing Covered Code, include this CDDL HEADER in each 26261 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26262 * If applicable, add the following below this CDDL HEADER, with the 26263 * fields enclosed by brackets "[]" replaced with your own identifying 26264 * information: Portions Copyright [yyyy] [name of copyright owner] 26265 * 26266 * CDDL HEADER END 26267 */ 26268 /* 26269 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 26270 * Use is subject to license terms. 26271 */ 26272 26273 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 26274 /* All Rights Reserved */ 26275 26276 /* 26277 * Portions of this source code were derived from Berkeley 4.3 BSD 26278 * under license from the Regents of the University of California. 26279 */ 26280 # 49 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 26281 26282 26283 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 1 26284 /* 26285 * CDDL HEADER START 26286 * 26287 * The contents of this file are subject to the terms of the 26288 * Common Development and Distribution License, Version 1.0 only 26289 * (the "License"). You may not use this file except in compliance 26290 * with the License. 26291 * 26292 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26293 * or http://www.opensolaris.org/os/licensing. 26294 * See the License for the specific language governing permissions 26295 * and limitations under the License. 26296 * 26297 * When distributing Covered Code, include this CDDL HEADER in each 26298 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26299 * If applicable, add the following below this CDDL HEADER, with the 26300 * fields enclosed by brackets "[]" replaced with your own identifying 26301 * information: Portions Copyright [yyyy] [name of copyright owner] 26302 * 26303 * CDDL HEADER END 26304 */ 26305 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 26306 /* All Rights Reserved */ 26307 26308 26309 /* 26310 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 26311 * 26312 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 26313 * Use is subject to license terms. 26314 */ 26315 # 43 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 26316 struct netconfig { 26317 char *nc_netid; /* network identifier */ 26318 unsigned int nc_semantics; /* defined below */ 26319 unsigned int nc_flag; /* defined below */ 26320 char *nc_protofmly; /* protocol family name */ 26321 char *nc_proto; /* protocol name */ 26322 char *nc_device; /* device name for network id */ 26323 unsigned int nc_nlookups; /* # of entries in nc_lookups */ 26324 char **nc_lookups; /* list of lookup directories */ 26325 unsigned int nc_unused[8]; /* borrowed for lockd etc. */ 26326 }; 26327 26328 typedef struct { 26329 struct netconfig **nc_head; 26330 struct netconfig **nc_curr; 26331 } NCONF_HANDLE; 26332 26333 /* 26334 * Values of nc_semantics 26335 */ 26336 26337 26338 26339 26340 26341 /* 26342 * NOT FOR PUBLIC USE, Solaris internal only. 26343 * This value of nc_semantics is strictly for use of Remote Direct 26344 * Memory Access provider interfaces in Solaris only and not for 26345 * general use. Do not use this value for general purpose user or 26346 * kernel programming. If used the behavior is undefined. 26347 * This is a PRIVATE interface to be used by Solaris kRPC only. 26348 */ 26349 26350 26351 /* 26352 * Values of nc_flag 26353 */ 26354 26355 26356 26357 26358 26359 /* 26360 * Values of nc_protofmly 26361 */ 26362 # 114 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/netconfig.h" 26363 /* 26364 * NOT FOR PUBLIC USE, Solaris internal only. 26365 * This value of nc_semantics is strictly for use of Remote Direct 26366 * Memory Access provider interfaces in Solaris only and not for 26367 * general use. Do not use this value for general purpose user or 26368 * kernel programming. If used the behavior is undefined. 26369 * This is a PRIVATE interface to be used by Solaris kRPC only. 26370 */ 26371 26372 26373 /* 26374 * Values for nc_proto 26375 */ 26376 26377 26378 26379 26380 26381 26382 /* 26383 * Values for nc_proto for "rdma" protofmly 26384 */ 26385 26386 26387 26388 26389 extern void *setnetconfig(void); 26390 extern int endnetconfig(void *); 26391 extern struct netconfig *getnetconfig(void *); 26392 extern struct netconfig *getnetconfigent(const char *); 26393 extern void freenetconfigent(struct netconfig *); 26394 extern void *setnetpath(void); 26395 extern int endnetpath(void *); 26396 extern struct netconfig *getnetpath(void *); 26397 extern void nc_perror(const char *); 26398 extern char *nc_sperror(void); 26399 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 26400 26401 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netinet/in.h" 1 26402 /* 26403 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 26404 * Use is subject to license terms. 26405 * 26406 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. 26407 */ 26408 /* 26409 * Copyright (c) 1982, 1986 Regents of the University of California. 26410 * All rights reserved. 26411 * 26412 * Redistribution and use in source and binary forms are permitted 26413 * provided that this notice is preserved and that due credit is given 26414 * to the University of California at Berkeley. The name of the University 26415 * may not be used to endorse or promote products derived from this 26416 * software without specific prior written permission. This software 26417 * is provided ``as is'' without express or implied warranty. 26418 */ 26419 26420 /* 26421 * Constants and structures defined by the internet system, 26422 * according to following documents 26423 * 26424 * Internet ASSIGNED NUMBERS (RFC1700) and its successors: 26425 * http://www.iana.org/assignments/protocol-numbers 26426 * http://www.iana.org/assignments/port-numbers 26427 * Basic Socket Interface Extensions for IPv6 (RFC2133 and its successors) 26428 * 26429 */ 26430 # 54 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 2 26431 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26432 /* 26433 * Definitions related to sockets: types, address families, options. 26434 */ 26435 # 94 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26436 /* 26437 * Types 26438 */ 26439 # 110 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26440 /* 26441 * Flags for socket() and accept4() 26442 */ 26443 26444 26445 26446 26447 /* 26448 * Option flags per-socket. 26449 */ 26450 # 132 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26451 /* 26452 * Socket options are passed using a signed integer, but it is also rare 26453 * for more than one to ever be passed at the same time with setsockopt 26454 * and only one at a time can be retrieved with getsockopt. 26455 * 26456 * Since the lower numbers cannot be renumbered for compatibility reasons, 26457 * it would seem that we need to start a new number space (0x40000000 - 26458 * 0x7fffffff) for those that don't need to be stored as a bit flag 26459 * somewhere. This limits the flag options to 30 but that seems to be 26460 * plenty, anyway. 0x40000000 is reserved for future use. 26461 */ 26462 # 159 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26463 /* 26464 * N.B.: The following definition is present only for compatibility 26465 * with release 3.0. It will disappear in later releases. 26466 */ 26467 26468 26469 /* 26470 * Additional options, not kept in so_options. 26471 */ 26472 # 183 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26473 /* "Socket"-level control message types: */ 26474 # 200 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26475 /* 26476 * Socket filter options 26477 */ 26478 26479 26480 26481 26482 26483 /* 26484 * Structure returned by FIL_LIST 26485 */ 26486 struct fil_info { 26487 int fi_flags; /* see below (FILF_*) */ 26488 int fi_pos; /* position (0 is bottom) */ 26489 char fi_name[32]; /* filter name */ 26490 }; 26491 # 237 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26492 /* 26493 * Structure used for manipulating linger option. 26494 */ 26495 struct linger { 26496 int l_onoff; /* option on/off */ 26497 int l_linger; /* linger time */ 26498 }; 26499 26500 /* 26501 * Levels for (get/set)sockopt() that don't apply to a specific protocol. 26502 */ 26503 26504 26505 26506 26507 26508 26509 26510 /* 26511 * Address families. 26512 * 26513 * Some of these constant names are copied for the DTrace IP provider in 26514 * usr/src/lib/libdtrace/common/{ip.d.in, ip.sed.in}, which should be kept 26515 * in sync. 26516 */ 26517 # 300 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26518 /* 26519 * Protocol families, same as address families for now. 26520 */ 26521 # 341 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26522 /* 26523 * Maximum queue length specifiable by listen. 26524 */ 26525 26526 26527 /* 26528 * Message header for recvmsg and sendmsg calls. 26529 */ 26530 struct msghdr { 26531 void *msg_name; /* optional address */ 26532 socklen_t msg_namelen; /* size of address */ 26533 struct iovec *msg_iov; /* scatter/gather array */ 26534 int msg_iovlen; /* # elements in msg_iov */ 26535 26536 26537 26538 26539 26540 26541 caddr_t msg_accrights; /* access rights sent/received */ 26542 int msg_accrightslen; 26543 26544 }; 26545 # 412 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26546 /* Added for XPGv2 compliance */ 26547 26548 26549 26550 26551 26552 /* with left over data */ 26553 /* End of XPGv2 compliance */ 26554 # 438 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26555 /* Added for XPGv2 compliance */ 26556 26557 26558 26559 26560 struct cmsghdr { 26561 socklen_t cmsg_len; /* data byte count, including hdr */ 26562 int cmsg_level; /* originating protocol */ 26563 int cmsg_type; /* protocol-specific type */ 26564 }; 26565 # 528 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/socket.h" 26566 extern int accept(int, struct sockaddr *, Psocklen_t); 26567 extern int accept4(int, struct sockaddr *, Psocklen_t, int); 26568 extern int bind(int, const struct sockaddr *, socklen_t); 26569 extern int connect(int, const struct sockaddr *, socklen_t); 26570 extern int getpeername(int, struct sockaddr *, Psocklen_t); 26571 extern int getsockname(int, struct sockaddr *, Psocklen_t); 26572 extern int getsockopt(int, int, int, void *, Psocklen_t); 26573 extern int listen(int, int); /* XXX - fixme??? where do I go */ 26574 extern int socketpair(int, int, int, int *); 26575 extern ssize_t recv(int, void *, size_t, int); 26576 extern ssize_t recvfrom(int, void *, size_t, int, 26577 struct sockaddr *, Psocklen_t); 26578 extern ssize_t recvmsg(int, struct msghdr *, int); 26579 extern ssize_t send(int, const void *, size_t, int); 26580 extern ssize_t sendmsg(int, const struct msghdr *, int); 26581 extern ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *, 26582 socklen_t); 26583 extern int setsockopt(int, int, int, const void *, socklen_t); 26584 extern int shutdown(int, int); 26585 extern int socket(int, int, int); 26586 26587 26588 extern int sockatmark(int); 26589 # 80 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 26590 26591 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/feature_tests.h" 1 26592 /* 26593 * CDDL HEADER START 26594 * 26595 * The contents of this file are subject to the terms of the 26596 * Common Development and Distribution License (the "License"). 26597 * You may not use this file except in compliance with the License. 26598 * 26599 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26600 * or http://www.opensolaris.org/os/licensing. 26601 * See the License for the specific language governing permissions 26602 * and limitations under the License. 26603 * 26604 * When distributing Covered Code, include this CDDL HEADER in each 26605 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26606 * If applicable, add the following below this CDDL HEADER, with the 26607 * fields enclosed by brackets "[]" replaced with your own identifying 26608 * information: Portions Copyright [yyyy] [name of copyright owner] 26609 * 26610 * CDDL HEADER END 26611 */ 26612 26613 /* 26614 * Copyright 2013 Garrett D'Amore <garrett@damore.org> 26615 * Copyright 2016 Joyent, Inc. 26616 * 26617 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 26618 * Use is subject to license terms. 26619 */ 26620 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 2 26621 # 96 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 26622 struct hostent { 26623 char *h_name; /* official name of host */ 26624 char **h_aliases; /* alias list */ 26625 int h_addrtype; /* host address type */ 26626 int h_length; /* length of address */ 26627 char **h_addr_list; /* list of addresses from name server */ 26628 26629 }; 26630 26631 26632 /* 26633 * addrinfo introduced with IPv6 for Protocol-Independent Hostname 26634 * and Service Name Translation. 26635 */ 26636 26637 26638 struct addrinfo { 26639 int ai_flags; /* AI_PASSIVE, AI_CANONNAME, ... */ 26640 int ai_family; /* PF_xxx */ 26641 int ai_socktype; /* SOCK_xxx */ 26642 int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ 26643 26644 26645 26646 socklen_t ai_addrlen; 26647 char *ai_canonname; /* canonical name for hostname */ 26648 struct sockaddr *ai_addr; /* binary address */ 26649 struct addrinfo *ai_next; /* next structure in linked list */ 26650 }; 26651 26652 /* 26653 * The flag 0x8000 is currently reserved for private use between libnsl and 26654 * libsocket. See lib/libsocket/inet/getaddrinfo.c for more information. 26655 */ 26656 /* addrinfo flags */ 26657 26658 26659 26660 26661 26662 /* getipnodebyname() flags */ 26663 26664 26665 26666 26667 26668 /* 26669 * These were defined in RFC 2553 but not SUSv3 26670 * or RFC 3493 which obsoleted 2553. 26671 */ 26672 26673 26674 26675 /* addrinfo errors */ 26676 # 166 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 26677 /* getnameinfo flags */ 26678 26679 26680 26681 26682 26683 26684 26685 /* Not listed in any standards document */ 26686 26687 26688 26689 /* getnameinfo max sizes as defined in RFC 2553 obsoleted in RFC 3493 */ 26690 26691 26692 26693 26694 26695 /* 26696 * Scope delimit character 26697 */ 26698 26699 26700 26701 /* 26702 * Algorithm entry for /etc/inet/ipsecalgs which defines IPsec protocols 26703 * and algorithms. 26704 */ 26705 26706 typedef struct ipsecalgent { 26707 char **a_names; /* algorithm names */ 26708 int a_proto_num; /* protocol number */ 26709 int a_alg_num; /* algorithm number */ 26710 char *a_mech_name; /* encryption framework mechanism name */ 26711 int *a_block_sizes; /* supported block sizes */ 26712 int *a_key_sizes; /* supported key sizes */ 26713 int a_key_increment; /* key size increment */ 26714 int *a_mech_params; /* mechanism specific parameters */ 26715 int a_alg_flags; /* algorithm flags */ 26716 } ipsecalgent_t; 26717 26718 /* well-known IPsec protocol numbers */ 26719 26720 26721 26722 26723 26724 /* 26725 * Assumption here is that a network number 26726 * fits in 32 bits -- probably a poor one. 26727 */ 26728 struct netent { 26729 char *n_name; /* official name of net */ 26730 char **n_aliases; /* alias list */ 26731 int n_addrtype; /* net address type */ 26732 in_addr_t n_net; /* network # */ 26733 }; 26734 26735 struct protoent { 26736 char *p_name; /* official protocol name */ 26737 char **p_aliases; /* alias list */ 26738 int p_proto; /* protocol # */ 26739 }; 26740 26741 struct servent { 26742 char *s_name; /* official service name */ 26743 char **s_aliases; /* alias list */ 26744 int s_port; /* port # */ 26745 char *s_proto; /* protocol to use */ 26746 }; 26747 26748 26749 struct hostent *gethostbyname_r 26750 (const char *, struct hostent *, char *, int, int *h_errnop); 26751 struct hostent *gethostbyaddr_r 26752 (const char *, int, int, struct hostent *, char *, int, int *h_errnop); 26753 struct hostent *getipnodebyname(const char *, int, int, int *); 26754 struct hostent *getipnodebyaddr(const void *, size_t, int, int *); 26755 void freehostent(struct hostent *); 26756 struct hostent *gethostent_r(struct hostent *, char *, int, int *h_errnop); 26757 26758 struct servent *getservbyname_r 26759 (const char *name, const char *, struct servent *, char *, int); 26760 struct servent *getservbyport_r 26761 (int port, const char *, struct servent *, char *, int); 26762 struct servent *getservent_r(struct servent *, char *, int); 26763 26764 struct netent *getnetbyname_r 26765 (const char *, struct netent *, char *, int); 26766 struct netent *getnetbyaddr_r(long, int, struct netent *, char *, int); 26767 struct netent *getnetent_r(struct netent *, char *, int); 26768 26769 struct protoent *getprotobyname_r 26770 (const char *, struct protoent *, char *, int); 26771 struct protoent *getprotobynumber_r 26772 (int, struct protoent *, char *, int); 26773 struct protoent *getprotoent_r(struct protoent *, char *, int); 26774 26775 int getnetgrent_r(char **, char **, char **, char *, int); 26776 int innetgr(const char *, const char *, const char *, const char *); 26777 26778 26779 /* Old interfaces that return a pointer to a static area; MT-unsafe */ 26780 struct hostent *gethostbyname(const char *); 26781 struct hostent *gethostent(void); 26782 struct netent *getnetbyaddr(in_addr_t, int); 26783 struct netent *getnetbyname(const char *); 26784 struct netent *getnetent(void); 26785 struct protoent *getprotobyname(const char *); 26786 struct protoent *getprotobynumber(int); 26787 struct protoent *getprotoent(void); 26788 struct servent *getservbyname(const char *, const char *); 26789 struct servent *getservbyport(int, const char *); 26790 struct servent *getservent(void); 26791 26792 /* gethostbyaddr() second argument is a size_t only in unix95/unix98 */ 26793 26794 struct hostent *gethostbyaddr(const void *, socklen_t, int); 26795 26796 26797 26798 26799 26800 int endhostent(void); 26801 int endnetent(void); 26802 int endprotoent(void); 26803 int endservent(void); 26804 int sethostent(int); 26805 int setnetent(int); 26806 int setprotoent(int); 26807 int setservent(int); 26808 # 318 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 26809 int getaddrinfo(const char *, 26810 const char *, 26811 const struct addrinfo *, 26812 struct addrinfo **); 26813 void freeaddrinfo(struct addrinfo *); 26814 const char *gai_strerror(int); 26815 int getnameinfo(const struct sockaddr *, 26816 socklen_t, char *, socklen_t, 26817 char *, socklen_t, int); 26818 26819 26820 26821 int getnetgrent(char **, char **, char **); 26822 int setnetgrent(const char *); 26823 int endnetgrent(void); 26824 int rcmd(char **, unsigned short, 26825 const char *, const char *, const char *, int *); 26826 int rcmd_af(char **, unsigned short, 26827 const char *, const char *, const char *, int *, int); 26828 int rresvport_af(int *, int); 26829 int rresvport_addr(int *, struct sockaddr_storage *); 26830 int rexec(char **, unsigned short, 26831 const char *, const char *, const char *, int *); 26832 int rexec_af(char **, unsigned short, 26833 const char *, const char *, const char *, int *, int); 26834 int rresvport(int *); 26835 int ruserok(const char *, int, const char *, const char *); 26836 /* BIND */ 26837 struct hostent *gethostbyname2(const char *, int); 26838 void herror(const char *); 26839 const char *hstrerror(int); 26840 /* End BIND */ 26841 26842 /* IPsec algorithm prototype definitions */ 26843 struct ipsecalgent *getipsecalgbyname(const char *, int, int *); 26844 struct ipsecalgent *getipsecalgbynum(int, int, int *); 26845 int getipsecprotobyname(const char *doi_name); 26846 char *getipsecprotobynum(int doi_domain); 26847 void freeipsecalgent(struct ipsecalgent *ptr); 26848 /* END IPsec algorithm prototype definitions */ 26849 26850 26851 26852 /* 26853 * Error return codes from gethostbyname() and gethostbyaddr() 26854 * (when using the resolver) 26855 */ 26856 26857 extern int h_errno; 26858 # 377 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 26859 /* 26860 * Error return codes from gethostbyname() and gethostbyaddr() 26861 * (left in extern int h_errno). 26862 */ 26863 # 389 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/netdb.h" 26864 /* BIND */ 26865 26866 26867 /* End BIND */ 26868 # 46 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 26869 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 1 26870 /* 26871 * CDDL HEADER START 26872 * 26873 * The contents of this file are subject to the terms of the 26874 * Common Development and Distribution License, Version 1.0 only 26875 * (the "License"). You may not use this file except in compliance 26876 * with the License. 26877 * 26878 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26879 * or http://www.opensolaris.org/os/licensing. 26880 * See the License for the specific language governing permissions 26881 * and limitations under the License. 26882 * 26883 * When distributing Covered Code, include this CDDL HEADER in each 26884 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26885 * If applicable, add the following below this CDDL HEADER, with the 26886 * fields enclosed by brackets "[]" replaced with your own identifying 26887 * information: Portions Copyright [yyyy] [name of copyright owner] 26888 * 26889 * CDDL HEADER END 26890 */ 26891 /* 26892 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 26893 * Use is subject to license terms. 26894 */ 26895 26896 26897 26898 26899 #pragma ident "%Z%%M% %I% %E% SMI" 26900 26901 26902 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 26903 /* 26904 * CDDL HEADER START 26905 * 26906 * The contents of this file are subject to the terms of the 26907 * Common Development and Distribution License (the "License"). 26908 * You may not use this file except in compliance with the License. 26909 * 26910 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26911 * or http://www.opensolaris.org/os/licensing. 26912 * See the License for the specific language governing permissions 26913 * and limitations under the License. 26914 * 26915 * When distributing Covered Code, include this CDDL HEADER in each 26916 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26917 * If applicable, add the following below this CDDL HEADER, with the 26918 * fields enclosed by brackets "[]" replaced with your own identifying 26919 * information: Portions Copyright [yyyy] [name of copyright owner] 26920 * 26921 * CDDL HEADER END 26922 */ 26923 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 26924 /* All Rights Reserved */ 26925 26926 26927 /* 26928 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 26929 * Use is subject to license terms. 26930 * 26931 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 26932 * Copyright 2016 Joyent, Inc. 26933 */ 26934 # 34 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 26935 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/errno.h" 1 26936 /* 26937 * CDDL HEADER START 26938 * 26939 * The contents of this file are subject to the terms of the 26940 * Common Development and Distribution License, Version 1.0 only 26941 * (the "License"). You may not use this file except in compliance 26942 * with the License. 26943 * 26944 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26945 * or http://www.opensolaris.org/os/licensing. 26946 * See the License for the specific language governing permissions 26947 * and limitations under the License. 26948 * 26949 * When distributing Covered Code, include this CDDL HEADER in each 26950 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26951 * If applicable, add the following below this CDDL HEADER, with the 26952 * fields enclosed by brackets "[]" replaced with your own identifying 26953 * information: Portions Copyright [yyyy] [name of copyright owner] 26954 * 26955 * CDDL HEADER END 26956 */ 26957 /* 26958 * Copyright 2000 Sun Microsystems, Inc. All rights reserved. 26959 * Use is subject to license terms. 26960 */ 26961 26962 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 26963 /* All Rights Reserved */ 26964 26965 /* 26966 * University Copyright- Copyright (c) 1982, 1986, 1988 26967 * The Regents of the University of California 26968 * All Rights Reserved 26969 * 26970 * University Acknowledgment- Portions of this document are derived from 26971 * software developed by the University of California, Berkeley, and its 26972 * contributors. 26973 */ 26974 # 35 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 26975 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 1 26976 /* 26977 * CDDL HEADER START 26978 * 26979 * The contents of this file are subject to the terms of the 26980 * Common Development and Distribution License, Version 1.0 only 26981 * (the "License"). You may not use this file except in compliance 26982 * with the License. 26983 * 26984 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 26985 * or http://www.opensolaris.org/os/licensing. 26986 * See the License for the specific language governing permissions 26987 * and limitations under the License. 26988 * 26989 * When distributing Covered Code, include this CDDL HEADER in each 26990 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 26991 * If applicable, add the following below this CDDL HEADER, with the 26992 * fields enclosed by brackets "[]" replaced with your own identifying 26993 * information: Portions Copyright [yyyy] [name of copyright owner] 26994 * 26995 * CDDL HEADER END 26996 */ 26997 /* 26998 * Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved. 26999 * Use is subject to license terms. 27000 */ 27001 27002 27003 27004 27005 #pragma ident "%Z%%M% %I% %E% SMI" 27006 27007 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/param.h" 1 27008 /* 27009 * CDDL HEADER START 27010 * 27011 * The contents of this file are subject to the terms of the 27012 * Common Development and Distribution License (the "License"). 27013 * You may not use this file except in compliance with the License. 27014 * 27015 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27016 * or http://www.opensolaris.org/os/licensing. 27017 * See the License for the specific language governing permissions 27018 * and limitations under the License. 27019 * 27020 * When distributing Covered Code, include this CDDL HEADER in each 27021 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27022 * If applicable, add the following below this CDDL HEADER, with the 27023 * fields enclosed by brackets "[]" replaced with your own identifying 27024 * information: Portions Copyright [yyyy] [name of copyright owner] 27025 * 27026 * CDDL HEADER END 27027 */ 27028 27029 /* 27030 * Copyright 2014 Nexenta Systems, Inc. All rights reserved. 27031 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. 27032 */ 27033 27034 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 27035 /* All Rights Reserved */ 27036 27037 /* 27038 * University Copyright- Copyright (c) 1982, 1986, 1988 27039 * The Regents of the University of California 27040 * All Rights Reserved 27041 * 27042 * University Acknowledgment- Portions of this document are derived from 27043 * software developed by the University of California, Berkeley, and its 27044 * contributors. 27045 */ 27046 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 2 27047 # 52 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/parseURL.h" 27048 typedef struct { 27049 char hostname[256]; 27050 ushort_t port; 27051 } url_hport_t; 27052 27053 typedef struct { 27054 boolean_t https; 27055 url_hport_t hport; 27056 char abspath[1024]; 27057 } url_t; 27058 27059 extern int url_parse_hostport(const char *, url_hport_t *, ushort_t); 27060 extern int url_parse(const char *, url_t *); 27061 # 36 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 2 27062 27063 27064 27065 27066 27067 /* State information returned by http_conn_info() */ 27068 typedef struct { 27069 url_t uri; /* URI last loaded */ 27070 url_hport_t proxy; /* proxy, if any being used */ 27071 boolean_t keepalive; /* Keepalive setting being used */ 27072 uint_t read_timeout; /* Timeout to use for socket reads */ 27073 } http_conninfo_t; 27074 27075 27076 /* Structure for version of the http file */ 27077 typedef struct { 27078 uint_t maj_ver; /* Major version */ 27079 uint_t min_ver; /* Minor version */ 27080 uint_t micro_ver; /* Micro version */ 27081 } boot_http_ver_t; 27082 27083 /* Internal Libhttp errors */ 27084 27085 27086 27087 /* necessarily the underlying transport */ 27088 /* connection). */ 27089 27090 /* error. */ 27091 27092 27093 27094 /* No matching entry */ 27095 # 82 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/boot_http.h" 27096 /* Sources of errors */ 27097 27098 27099 27100 27101 27102 27103 27104 typedef struct { 27105 uint_t code; /* status code */ 27106 char *statusmsg; /* status message */ 27107 uint_t nresphdrs; /* number of response headers */ 27108 } http_respinfo_t; 27109 27110 27111 typedef void *http_handle_t; 27112 27113 boot_http_ver_t const *http_get_version(void); 27114 void http_set_p12_format(int); 27115 void http_set_verbose(boolean_t); 27116 int http_set_cipher_list(const char *); 27117 http_handle_t http_srv_init(const url_t *); 27118 int http_set_proxy(http_handle_t, const url_hport_t *); 27119 int http_set_keepalive(http_handle_t, boolean_t); 27120 int http_set_socket_read_timeout(http_handle_t, uint_t); 27121 int http_set_basic_auth(http_handle_t, const char *, const char *); 27122 int http_set_random_file(http_handle_t, const char *); 27123 int http_set_certificate_authority_file(const char *); 27124 int http_set_client_certificate_file(http_handle_t, const char *); 27125 int http_set_password(http_handle_t, const char *); 27126 int http_set_key_file_password(http_handle_t, const char *); 27127 int http_set_private_key_file(http_handle_t, const char *); 27128 27129 int http_srv_connect(http_handle_t); 27130 int http_head_request(http_handle_t, const char *); 27131 int http_get_request(http_handle_t, const char *); 27132 int http_get_range_request(http_handle_t, const char *, offset_t, offset_t); 27133 void http_free_respinfo(http_respinfo_t *); 27134 int http_process_headers(http_handle_t, http_respinfo_t **); 27135 int http_process_part_headers(http_handle_t, http_respinfo_t **); 27136 char *http_get_header_value(http_handle_t, const char *); 27137 char *http_get_response_header(http_handle_t, uint_t); 27138 int http_read_body(http_handle_t, char *, size_t); 27139 int http_srv_disconnect(http_handle_t); 27140 int http_srv_close(http_handle_t); 27141 http_conninfo_t *http_get_conn_info(http_handle_t); 27142 int http_conn_is_https(http_handle_t, boolean_t *); 27143 ulong_t http_get_lasterr(http_handle_t, uint_t *); 27144 void http_decode_err(ulong_t, int *, int *, int *); 27145 char const *http_errorstr(uint_t, ulong_t); 27146 # 47 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 27147 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1 27148 /* 27149 * CDDL HEADER START 27150 * 27151 * The contents of this file are subject to the terms of the 27152 * Common Development and Distribution License (the "License"). 27153 * You may not use this file except in compliance with the License. 27154 * 27155 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27156 * or http://www.opensolaris.org/os/licensing. 27157 * See the License for the specific language governing permissions 27158 * and limitations under the License. 27159 * 27160 * When distributing Covered Code, include this CDDL HEADER in each 27161 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27162 * If applicable, add the following below this CDDL HEADER, with the 27163 * fields enclosed by brackets "[]" replaced with your own identifying 27164 * information: Portions Copyright [yyyy] [name of copyright owner] 27165 * 27166 * CDDL HEADER END 27167 */ 27168 27169 /* 27170 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 27171 * Use is subject to license terms. 27172 */ 27173 27174 27175 27176 27177 27178 /* 27179 * Module: pkgerr.h 27180 * Description: 27181 * 27182 * Implements error routines to handle the creation, 27183 * management, and destruction of error objects, which 27184 * hold error messages and codes returned from libpkg 27185 * routines that support the objects defined herein. 27186 */ 27187 27188 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 27189 /* 27190 * CDDL HEADER START 27191 * 27192 * The contents of this file are subject to the terms of the 27193 * Common Development and Distribution License (the "License"). 27194 * You may not use this file except in compliance with the License. 27195 * 27196 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27197 * or http://www.opensolaris.org/os/licensing. 27198 * See the License for the specific language governing permissions 27199 * and limitations under the License. 27200 * 27201 * When distributing Covered Code, include this CDDL HEADER in each 27202 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27203 * If applicable, add the following below this CDDL HEADER, with the 27204 * fields enclosed by brackets "[]" replaced with your own identifying 27205 * information: Portions Copyright [yyyy] [name of copyright owner] 27206 * 27207 * CDDL HEADER END 27208 */ 27209 27210 /* 27211 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 27212 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 27213 */ 27214 27215 /* Copyright (c) 1988 AT&T */ 27216 /* All Rights Reserved */ 27217 27218 /* 27219 * User-visible pieces of the ANSI C standard I/O package. 27220 */ 27221 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 2 27222 27223 27224 27225 27226 27227 /* 27228 * Public Definitions 27229 */ 27230 27231 typedef enum { 27232 PKGERR_OK = 0, 27233 PKGERR_EXIST, 27234 PKGERR_READ, 27235 PKGERR_CORRUPT, 27236 PKGERR_PARSE, 27237 PKGERR_BADPASS, 27238 PKGERR_BADALIAS, 27239 PKGERR_INTERNAL, 27240 PKGERR_UNSUP, 27241 PKGERR_NOALIAS, 27242 PKGERR_NOALIASMATCH, 27243 PKGERR_MULTIPLE, 27244 PKGERR_INCOMPLETE, 27245 PKGERR_NOPRIVKEY, 27246 PKGERR_NOPUBKEY, 27247 PKGERR_NOCACERT, 27248 PKGERR_NOMEM, 27249 PKGERR_CHAIN, 27250 PKGERR_LOCKED, 27251 PKGERR_WRITE, 27252 PKGERR_UNLOCK, 27253 PKGERR_TIME, 27254 PKGERR_DUPLICATE, 27255 PKGERR_WEB, 27256 PKGERR_VERIFY 27257 } PKG_ERR_CODE; 27258 27259 /* 27260 * Public Structures 27261 */ 27262 27263 /* external reference to PKG_ERR object (contents private) */ 27264 typedef PKG_ERR_CODE pkg_err_t; 27265 27266 typedef struct _pkg_err_struct PKG_ERR; 27267 27268 /* 27269 * Public Methods 27270 */ 27271 27272 PKG_ERR *pkgerr_new(); 27273 void pkgerr_add(PKG_ERR *, PKG_ERR_CODE, char *, ...); 27274 void pkgerr_clear(PKG_ERR *); 27275 int pkgerr_dump(PKG_ERR *, FILE *); 27276 int pkgerr_num(PKG_ERR *); 27277 char *pkgerr_get(PKG_ERR *, int); 27278 void pkgerr_free(PKG_ERR *); 27279 # 48 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 27280 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 1 27281 /* 27282 * CDDL HEADER START 27283 * 27284 * The contents of this file are subject to the terms of the 27285 * Common Development and Distribution License (the "License"). 27286 * You may not use this file except in compliance with the License. 27287 * 27288 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27289 * or http://www.opensolaris.org/os/licensing. 27290 * See the License for the specific language governing permissions 27291 * and limitations under the License. 27292 * 27293 * When distributing Covered Code, include this CDDL HEADER in each 27294 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27295 * If applicable, add the following below this CDDL HEADER, with the 27296 * fields enclosed by brackets "[]" replaced with your own identifying 27297 * information: Portions Copyright [yyyy] [name of copyright owner] 27298 * 27299 * CDDL HEADER END 27300 */ 27301 27302 /* 27303 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 27304 * Use is subject to license terms. 27305 */ 27306 27307 27308 27309 27310 27311 /* 27312 * Module: keystore.h 27313 * Description: This module contains the structure definitions for processing 27314 * package keystore files. 27315 */ 27316 27317 27318 27319 27320 27321 # 1 "/usr/include/openssl/evp.h" 1 3 4 27322 /* crypto/evp/evp.h */ 27323 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 27324 * All rights reserved. 27325 * 27326 * This package is an SSL implementation written 27327 * by Eric Young (eay@cryptsoft.com). 27328 * The implementation was written so as to conform with Netscapes SSL. 27329 * 27330 * This library is free for commercial and non-commercial use as long as 27331 * the following conditions are aheared to. The following conditions 27332 * apply to all code found in this distribution, be it the RC4, RSA, 27333 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 27334 * included with this distribution is covered by the same copyright terms 27335 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 27336 * 27337 * Copyright remains Eric Young's, and as such any Copyright notices in 27338 * the code are not to be removed. 27339 * If this package is used in a product, Eric Young should be given attribution 27340 * as the author of the parts of the library used. 27341 * This can be in the form of a textual message at program startup or 27342 * in documentation (online or textual) provided with the package. 27343 * 27344 * Redistribution and use in source and binary forms, with or without 27345 * modification, are permitted provided that the following conditions 27346 * are met: 27347 * 1. Redistributions of source code must retain the copyright 27348 * notice, this list of conditions and the following disclaimer. 27349 * 2. Redistributions in binary form must reproduce the above copyright 27350 * notice, this list of conditions and the following disclaimer in the 27351 * documentation and/or other materials provided with the distribution. 27352 * 3. All advertising materials mentioning features or use of this software 27353 * must display the following acknowledgement: 27354 * "This product includes cryptographic software written by 27355 * Eric Young (eay@cryptsoft.com)" 27356 * The word 'cryptographic' can be left out if the rouines from the library 27357 * being used are not cryptographic related :-). 27358 * 4. If you include any Windows specific code (or a derivative thereof) from 27359 * the apps directory (application code) you must include an acknowledgement: 27360 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 27361 * 27362 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 27363 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27364 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27365 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 27366 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27367 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27368 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27369 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27370 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27371 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27372 * SUCH DAMAGE. 27373 * 27374 * The licence and distribution terms for any publically available version or 27375 * derivative of this code cannot be changed. i.e. this code cannot simply be 27376 * copied and put under another distribution licence 27377 * [including the GNU Public Licence.] 27378 */ 27379 # 42 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 27380 # 1 "/usr/include/openssl/x509.h" 1 3 4 27381 /* crypto/x509/x509.h */ 27382 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 27383 * All rights reserved. 27384 * 27385 * This package is an SSL implementation written 27386 * by Eric Young (eay@cryptsoft.com). 27387 * The implementation was written so as to conform with Netscapes SSL. 27388 * 27389 * This library is free for commercial and non-commercial use as long as 27390 * the following conditions are aheared to. The following conditions 27391 * apply to all code found in this distribution, be it the RC4, RSA, 27392 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 27393 * included with this distribution is covered by the same copyright terms 27394 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 27395 * 27396 * Copyright remains Eric Young's, and as such any Copyright notices in 27397 * the code are not to be removed. 27398 * If this package is used in a product, Eric Young should be given attribution 27399 * as the author of the parts of the library used. 27400 * This can be in the form of a textual message at program startup or 27401 * in documentation (online or textual) provided with the package. 27402 * 27403 * Redistribution and use in source and binary forms, with or without 27404 * modification, are permitted provided that the following conditions 27405 * are met: 27406 * 1. Redistributions of source code must retain the copyright 27407 * notice, this list of conditions and the following disclaimer. 27408 * 2. Redistributions in binary form must reproduce the above copyright 27409 * notice, this list of conditions and the following disclaimer in the 27410 * documentation and/or other materials provided with the distribution. 27411 * 3. All advertising materials mentioning features or use of this software 27412 * must display the following acknowledgement: 27413 * "This product includes cryptographic software written by 27414 * Eric Young (eay@cryptsoft.com)" 27415 * The word 'cryptographic' can be left out if the rouines from the library 27416 * being used are not cryptographic related :-). 27417 * 4. If you include any Windows specific code (or a derivative thereof) from 27418 * the apps directory (application code) you must include an acknowledgement: 27419 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 27420 * 27421 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 27422 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27423 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27424 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 27425 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27426 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27427 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27428 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27429 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27430 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27431 * SUCH DAMAGE. 27432 * 27433 * The licence and distribution terms for any publically available version or 27434 * derivative of this code cannot be changed. i.e. this code cannot simply be 27435 * copied and put under another distribution licence 27436 * [including the GNU Public Licence.] 27437 */ 27438 /* ==================================================================== 27439 * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. 27440 * ECDH support in OpenSSL originally developed by 27441 * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. 27442 */ 27443 # 43 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 27444 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkgerr.h" 1 27445 /* 27446 * CDDL HEADER START 27447 * 27448 * The contents of this file are subject to the terms of the 27449 * Common Development and Distribution License (the "License"). 27450 * You may not use this file except in compliance with the License. 27451 * 27452 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27453 * or http://www.opensolaris.org/os/licensing. 27454 * See the License for the specific language governing permissions 27455 * and limitations under the License. 27456 * 27457 * When distributing Covered Code, include this CDDL HEADER in each 27458 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27459 * If applicable, add the following below this CDDL HEADER, with the 27460 * fields enclosed by brackets "[]" replaced with your own identifying 27461 * information: Portions Copyright [yyyy] [name of copyright owner] 27462 * 27463 * CDDL HEADER END 27464 */ 27465 27466 /* 27467 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 27468 * Use is subject to license terms. 27469 */ 27470 # 44 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/keystore.h" 2 27471 27472 /* keystore structures */ 27473 27474 /* this opaque type represents a keystore */ 27475 typedef void *keystore_handle_t; 27476 27477 /* flags passed to open_keystore */ 27478 27479 /* opens keystore read-only. Attempts to modify results in an error */ 27480 27481 27482 /* opens keystore read-write */ 27483 27484 27485 /* 27486 * tells open_keystore to fall back to app-generic paths in the case that 27487 * the app-specific paths do not exist. 27488 */ 27489 27490 27491 /* 27492 * tells open_keystore to use the app-specific paths no matter what, 27493 * failing if they cannot be used for any reason. 27494 */ 27495 27496 27497 /* masks off various types of flags */ 27498 27499 27500 27501 /* default is read-only, soft */ 27502 27503 27504 27505 /* 27506 * possible encoding formats used by the library, used 27507 * by print_cert 27508 */ 27509 typedef enum { 27510 KEYSTORE_FORMAT_PEM, 27511 KEYSTORE_FORMAT_DER, 27512 KEYSTORE_FORMAT_TEXT 27513 } keystore_encoding_format_t; 27514 27515 /* 27516 * structure passed back to password callback for determining how 27517 * to prompt for passphrase, and where to record errors 27518 */ 27519 typedef struct { 27520 PKG_ERR *err; 27521 } keystore_passphrase_data; 27522 27523 27524 /* max length of a passphrase. One could use a short story! */ 27525 27526 27527 /* callback for collecting passphrase when open_keystore() is called */ 27528 typedef int keystore_passphrase_cb(char *, int, int, void *); 27529 27530 /* names of the individual files within the keystore path */ 27531 27532 27533 27534 27535 /* keystore.c */ 27536 extern int open_keystore(PKG_ERR *, char *, char *, 27537 keystore_passphrase_cb, long flags, keystore_handle_t *); 27538 27539 extern int print_certs(PKG_ERR *, keystore_handle_t, char *, 27540 keystore_encoding_format_t, FILE *); 27541 27542 extern int check_cert(PKG_ERR *, X509 *); 27543 27544 extern int check_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *); 27545 27546 extern int print_cert(PKG_ERR *, X509 *, 27547 keystore_encoding_format_t, char *, boolean_t, FILE *); 27548 27549 extern int close_keystore(PKG_ERR *, keystore_handle_t, 27550 keystore_passphrase_cb); 27551 27552 extern int merge_ca_cert(PKG_ERR *, X509 *, keystore_handle_t); 27553 extern int merge_cert_and_key(PKG_ERR *, X509 *, EVP_PKEY *, 27554 char *, keystore_handle_t); 27555 27556 extern int delete_cert_and_keys(PKG_ERR *, keystore_handle_t, 27557 char *); 27558 27559 extern int find_key_cert_pair(PKG_ERR *, keystore_handle_t, 27560 char *, EVP_PKEY **, X509 **); 27561 27562 extern int find_ca_certs(PKG_ERR *, keystore_handle_t, 27563 struct stack_st_X509 **); 27564 27565 extern int find_cl_certs(PKG_ERR *, keystore_handle_t, 27566 struct stack_st_X509 **); 27567 # 49 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 27568 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 1 27569 /* 27570 * CDDL HEADER START 27571 * 27572 * The contents of this file are subject to the terms of the 27573 * Common Development and Distribution License (the "License"). 27574 * You may not use this file except in compliance with the License. 27575 * 27576 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27577 * or http://www.opensolaris.org/os/licensing. 27578 * See the License for the specific language governing permissions 27579 * and limitations under the License. 27580 * 27581 * When distributing Covered Code, include this CDDL HEADER in each 27582 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27583 * If applicable, add the following below this CDDL HEADER, with the 27584 * fields enclosed by brackets "[]" replaced with your own identifying 27585 * information: Portions Copyright [yyyy] [name of copyright owner] 27586 * 27587 * CDDL HEADER END 27588 */ 27589 27590 /* 27591 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 27592 * Use is subject to license terms. 27593 */ 27594 # 35 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 27595 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 27596 /* 27597 * CDDL HEADER START 27598 * 27599 * The contents of this file are subject to the terms of the 27600 * Common Development and Distribution License (the "License"). 27601 * You may not use this file except in compliance with the License. 27602 * 27603 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 27604 * or http://www.opensolaris.org/os/licensing. 27605 * See the License for the specific language governing permissions 27606 * and limitations under the License. 27607 * 27608 * When distributing Covered Code, include this CDDL HEADER in each 27609 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 27610 * If applicable, add the following below this CDDL HEADER, with the 27611 * fields enclosed by brackets "[]" replaced with your own identifying 27612 * information: Portions Copyright [yyyy] [name of copyright owner] 27613 * 27614 * CDDL HEADER END 27615 */ 27616 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 27617 /* All Rights Reserved */ 27618 27619 /* 27620 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 27621 * Use is subject to license terms. 27622 */ 27623 # 36 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 2 27624 27625 struct mergstat { 27626 unsigned setuid:1; /* pkgmap entry has setuid */ 27627 unsigned setgid:1; /* ... and/or setgid bit set */ 27628 unsigned contchg:1; /* contents of the files different */ 27629 unsigned attrchg:1; /* attributes are different */ 27630 unsigned shared:1; /* > 1 pkg associated with this */ 27631 unsigned osetuid:1; /* installed set[ug]id process ... */ 27632 unsigned osetgid:1; /* ... being overwritten by pkg. */ 27633 unsigned rogue:1; /* conflicting file not owned by a package */ 27634 unsigned dir2nondir:1; /* was a directory & now a non-directory */ 27635 unsigned replace:1; /* merge makes no sense for this object pair */ 27636 unsigned denied:1; /* for some reason this was not allowed in */ 27637 unsigned preloaded:1; /* already checked in a prior pkg op */ 27638 unsigned processed:1; /* already installed or removed */ 27639 unsigned parentsyml2dir:1; 27640 /* parent directory changed from symlink to a directory */ 27641 }; 27642 27643 /* 27644 * This is information required by pkgadd for fast operation. A 27645 * cfextra struct is tagged to each cfent structure requiring 27646 * processing. This is how we avoid some unneeded repetition. The 27647 * entries incorporating the word 'local' refer to the path that 27648 * gets us to the delivered package file. In other words, to install 27649 * a file we usually copy from 'local' to 'path' below. In the case 27650 * of a link, where no actual copying takes place, local is the source 27651 * of the link. Note that environment variables are not evaluated in 27652 * the locals unless they are links since the literal path is how 27653 * pkgadd finds the entry under the reloc directory. 27654 */ 27655 struct cfextra { 27656 struct cfent cf_ent; /* basic contents file entry */ 27657 struct mergstat mstat; /* merge status for installs */ 27658 uint32_t fsys_value; /* fstab[] entry index */ 27659 uint32_t fsys_base; /* actual base filesystem in fs_tab[] */ 27660 char *client_path; /* the client-relative path */ 27661 char *server_path; /* the server-relative path */ 27662 char *map_path; /* as read from the pkgmap */ 27663 char *client_local; /* client_relative local */ 27664 char *server_local; /* server relative local */ 27665 }; 27666 # 50 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 2 27667 27668 /* 27669 * The contents database file interface. 27670 */ 27671 27672 typedef struct pkg_server *PKGserver; 27673 27674 /* Some commands modify the internal database: add them here */ 27675 # 82 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27676 typedef enum { 27677 INVALID, /* Not initialized */ 27678 NEVER, /* Don't start, does check if it is running. */ 27679 FLUSH_LOG, /* Run it once to incorporate the log. */ 27680 RUN_ONCE, /* Run until the current client stops. */ 27681 TIMEOUT, /* Run until a timeout occurs. */ 27682 PERMANENT, /* Run until it is externally terminated. */ 27683 DEFAULTMODE = TIMEOUT /* The default mode, must come last */ 27684 } start_mode_t; 27685 27686 typedef struct pkgcmd { 27687 int cmd; 27688 char buf[1]; 27689 } pkgcmd_t; 27690 27691 typedef struct pkgfilter { 27692 int cmd; 27693 int len; 27694 char buf[1]; 27695 } pkgfilter_t; 27696 27697 /* 27698 * Virtual File Protocol definitions 27699 */ 27700 27701 /* 27702 * flags associated with virtual file protocol operations; note that these flags 27703 * may only occupy the low order 16 bits of the 32-bit unsigned flag. 27704 */ 27705 27706 typedef unsigned long VFPFLAGS_T; 27707 # 121 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27708 /* virtual file protocol object */ 27709 27710 typedef struct _vfp VFP_T; 27711 27712 /* structure behind the virtual file protocol object */ 27713 27714 struct _vfp { 27715 FILE *_vfpFile; /* -> opened FILE */ 27716 char *_vfpCurr; /* -> current byte to read/write */ 27717 char *_vfpHighWater; /* -> last byte modified */ 27718 char *_vfpEnd; /* -> last data byte */ 27719 char *_vfpPath; /* -> path associated with FILE */ 27720 char *_vfpStart; /* -> first data byte */ 27721 void *_vfpExtra; /* undefined */ 27722 size_t _vfpSize; /* size of mapped/allocated area */ 27723 size_t _vfpMapSize; /* # mapped bytes */ 27724 VFPFLAGS_T _vfpFlags; /* flags associated with vfp/data */ 27725 int _vfpOverflow; /* non-zero if buffer write overflow */ 27726 blkcnt_t _vfpCkStBlocks; /* checkpoint # blocks */ 27727 dev_t _vfpCkDev; /* checkpoint device i.d. */ 27728 ino_t _vfpCkIno; /* checkpoint inode # */ 27729 off_t _vfpCkSize; /* checkpoint size */ 27730 time_t _vfpCkMtime; /* checkpoint modification time */ 27731 }; 27732 27733 /* 27734 * get highest modified byte (length) contained in vfp 27735 * 27736 * determine number of bytes to write - it will be the highest of: 27737 * -- the current pointer into the file - this is updated whenever 27738 * the location of the file is changed by a single byte 27739 * -- the last "high water mark" - the last known location that 27740 * was written to the file - updated only when the location 27741 * of the file is directly changed - e.g. vfpSetCurrCharPtr, 27742 * vfpTruncate, vfpRewind. 27743 * this reduces the "bookkeeping" that needs to be done to know 27744 * how many bytes to write out to the file - typically a file is 27745 * written sequentially so the current file pointer is sufficient 27746 * to determine how many bytes to write out. 27747 */ 27748 # 169 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27749 /* 27750 * increment current pointer by specified delta 27751 * if the delta exceeds the buffer size, set pointer to buffer end 27752 */ 27753 # 185 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27754 /* get the path associated with the vfp */ 27755 27756 27757 /* get a string from the vfp into a fixed size buffer */ 27758 # 207 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27759 /* get number of bytes remaining to read */ 27760 27761 27762 27763 27764 /* get number of bytes remaining to write */ 27765 27766 27767 27768 27769 /* put current character and increment to next */ 27770 27771 27772 27773 27774 27775 27776 /* put integer to current character and increment */ 27777 27778 27779 /* put long to current character and increment */ 27780 27781 27782 /* get current character and increment to next */ 27783 27784 27785 /* get current character - do not increment */ 27786 27787 27788 /* get pointer to current character */ 27789 27790 27791 /* increment current character pointer */ 27792 27793 27794 /* decrement current character pointer */ 27795 27796 27797 /* get pointer to first data byte in buffer */ 27798 27799 27800 /* get pointer to last data byte in buffer */ 27801 27802 27803 /* set pointer to current character */ 27804 27805 27806 27807 27808 27809 27810 /* set pointer to last data byte in buffer */ 27811 # 267 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27812 /* seek to end of file - one past last data byte in file */ 27813 27814 27815 /* get number of bytes between current char and specified char */ 27816 27817 27818 27819 /* put string to current character and increment */ 27820 # 284 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27821 /* put fixed number of bytes to current character and increment */ 27822 # 298 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27823 /* put format one arg to current character and increment */ 27824 27825 27826 27827 27828 27829 27830 27831 struct dm_buf { 27832 char *text_buffer; /* start of allocated buffer */ 27833 int offset; /* number of bytes into the text_buffer */ 27834 int allocation; /* size of buffer in bytes */ 27835 }; 27836 27837 /* This structure is used to hold a dynamically growing string */ 27838 27839 struct dstr { 27840 char *pc; 27841 int len; 27842 int max; 27843 }; 27844 27845 /* setmapmode() defines */ 27846 # 330 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27847 /* max length for printed attributes */ 27848 27849 27850 /* 27851 * These three defines indicate that the prototype file contains a '?' 27852 * meaning do not specify this data in the pkgmap entry. 27853 */ 27854 # 366 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27855 /* Settings for network admin defaults */ 27856 # 377 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 27857 /* package header magic tokens */ 27858 27859 27860 27861 /* name of security files */ 27862 27863 27864 27865 27866 27867 27868 /* 27869 * The next three mean that no mode, owner or group was specified or that the 27870 * one specified is invalid for some reason. Sometimes this is an error in 27871 * which case it is generally converted to CUR* with a warning. Other times 27872 * it means "look it up" by stating the existing file system object pointred 27873 * to in the prototype file. 27874 */ 27875 27876 27877 27878 27879 /* string comparitor abbreviators */ 27880 27881 27882 27883 27884 27885 27886 extern FILE *epopen(char *cmd, char *mode); 27887 extern char **gpkglist(char *dir, char **pkg, char **catg); 27888 extern int is_not_valid_length(char **category); 27889 extern int is_not_valid_category(char **category, char *progname); 27890 extern int is_same_CATEGORY(char **category, char *installed_category); 27891 extern char **get_categories(char *catg_arg); 27892 27893 extern void pkglist_cont(char *keyword); 27894 extern char **pkgalias(char *pkg); 27895 extern char *get_prog_name(void); 27896 extern char *set_prog_name(char *name); 27897 extern int averify(int fix, char *ftype, char *path, struct ainfo *ainfo); 27898 extern int ckparam(char *param, char *value); 27899 extern int ckvolseq(char *dir, int part, int nparts); 27900 extern int cverify(int fix, char *ftype, char *path, struct cinfo *cinfo, 27901 int allow_checksum); 27902 extern unsigned long compute_checksum(int *r_cksumerr, char *a_path); 27903 extern int fverify(int fix, char *ftype, char *path, struct ainfo *ainfo, 27904 struct cinfo *cinfo); 27905 extern char *getErrbufAddr(void); 27906 extern int getErrbufSize(void); 27907 extern char *getErrstr(void); 27908 extern void setErrstr(char *errstr); 27909 extern int devtype(char *alias, struct pkgdev *devp); 27910 extern int ds_totread; /* total number of parts read */ 27911 extern int ds_close(int pkgendflg); 27912 extern int ds_findpkg(char *device, char *pkg); 27913 extern int ds_getinfo(char *string); 27914 extern int ds_getpkg(char *device, int n, char *dstdir); 27915 extern int ds_ginit(char *device); 27916 extern boolean_t ds_fd_open(void); 27917 extern int ds_init(char *device, char **pkg, char *norewind); 27918 extern int BIO_ds_dump_header(PKG_ERR *, BIO *); 27919 extern int BIO_ds_dump(PKG_ERR *, char *, BIO *); 27920 extern int BIO_dump_cmd(char *cmd, BIO *bio); 27921 extern int ds_next(char *, char *); 27922 extern int ds_readbuf(char *device); 27923 extern int epclose(FILE *pp); 27924 extern int esystem(char *cmd, int ifd, int ofd); 27925 extern int e_ExecCmdArray(int *r_status, char **r_results, 27926 char *a_inputFile, char *a_cmd, char **a_args); 27927 extern int e_ExecCmdList(int *r_status, char **r_results, 27928 char *a_inputFile, char *a_cmd, ...); 27929 extern int gpkgmap(struct cfent *ept, FILE *fp); 27930 extern int gpkgmapvfp(struct cfent *ept, VFP_T *fpv); 27931 extern void setmapmode(int mode_no); 27932 extern int isFdRemote(int a_fd); 27933 extern int isFstypeRemote(char *a_fstype); 27934 extern int isPathRemote(char *a_path); 27935 extern int iscpio(char *path, int *iscomp); 27936 extern int isdir(char *path); 27937 extern int isfile(char *dir, char *file); 27938 extern int fmkdir(char *a_path, int a_mode); 27939 extern int pkgexecl(char *filein, char *fileout, char *uname, char *gname, 27940 ...); 27941 extern int pkgexecv(char *filein, char *fileout, char *uname, char *gname, 27942 char *arg[]); 27943 extern int pkghead(char *device); 27944 extern int pkgmount(struct pkgdev *devp, char *pkg, int part, int nparts, 27945 int getvolflg); 27946 extern int pkgtrans(char *device1, char *device2, char **pkg, 27947 int options, keystore_handle_t, char *); 27948 extern int pkgumount(struct pkgdev *devp); 27949 extern int ppkgmap(struct cfent *ept, FILE *fp); 27950 extern int putcfile(struct cfent *ept, FILE *fp); 27951 extern int putcvfpfile(struct cfent *ept, VFP_T *vfp); 27952 extern int rrmdir(char *path); 27953 extern void set_memalloc_failure_func(void (*)(int)); 27954 extern void *xmalloc(size_t size); 27955 extern void *xrealloc(void *ptr, size_t size); 27956 extern char *xstrdup(char *str); 27957 extern void set_passphrase_prompt(char *); 27958 extern void set_passphrase_passarg(char *); 27959 extern int pkg_passphrase_cb(char *, int, int, void *); 27960 27961 extern int srchcfile(struct cfent *ept, char *path, PKGserver server); 27962 extern struct group *cgrgid(gid_t gid); 27963 extern struct group *cgrnam(char *nam); 27964 extern struct passwd *cpwnam(char *nam); 27965 extern struct passwd *cpwuid(uid_t uid); 27966 extern struct group *clgrgid(gid_t gid); 27967 extern struct group *clgrnam(char *nam); 27968 extern struct passwd *clpwnam(char *nam); 27969 extern struct passwd *clpwuid(uid_t uid); 27970 extern void basepath(char *path, char *basedir, char *ir); 27971 extern void canonize(char *file); 27972 extern void canonize_slashes(char *file); 27973 extern void checksum_off(void); 27974 extern void checksum_on(void); 27975 extern void cvtpath(char *path, char *copy); 27976 extern void ds_order(char *list[]); 27977 extern void ds_putinfo(char *buf, size_t); 27978 extern void ds_skiptoend(char *device); 27979 extern void ecleanup(void); 27980 /*PRINTFLIKE1*/ 27981 extern void logerr(char *fmt, ...); 27982 extern int mappath(int flag, char *path); 27983 extern int mapvar(int flag, char *varname); 27984 /*PRINTFLIKE1*/ 27985 extern void progerr(char *fmt, ...); 27986 extern void pkgerr(PKG_ERR *); 27987 extern void rpterr(void); 27988 extern void tputcfent(struct cfent *ept, FILE *fp); 27989 extern void set_nonABI_symlinks(void); 27990 extern int nonABI_symlinks(void); 27991 extern void disable_attribute_check(void); 27992 extern int get_disable_attribute_check(void); 27993 27994 /* security.c */ 27995 extern void sec_init(void); 27996 extern char *get_subject_display_name(X509 *); 27997 extern char *get_issuer_display_name(X509 *); 27998 extern char *get_serial_num(X509 *); 27999 extern char *get_fingerprint(X509 *, const EVP_MD *); 28000 extern int get_cert_chain(PKG_ERR *, X509 *, struct stack_st_X509 *, 28001 struct stack_st_X509 *, struct stack_st_X509 **); 28002 28003 /* pkgstr.c */ 28004 void pkgstrConvertUllToTimeString_r(unsigned long long a_time, 28005 char *a_buf, int a_bufLen); 28006 char *pkgstrConvertPathToBasename(char *a_path); 28007 char *pkgstrConvertPathToDirname(char *a_path); 28008 char *pkgstrDup(char *a_str); 28009 char *pkgstrLocatePathBasename(char *a_path); 28010 void pkgstrScaleNumericString(char *a_buf, unsigned long long scale); 28011 void pkgstrAddToken(char **a_old, char *a_new, char a_separator); 28012 boolean_t pkgstrContainsToken(char *a_string, char *a_token, 28013 char *a_separators); 28014 void pkgstrExpandTokens(char **a_old, char *a_string, 28015 char a_separator, char *a_separators); 28016 char *pkgstrGetToken(char *r_sep, char *a_string, int a_index, 28017 char *a_separators); 28018 void pkgstrGetToken_r(char *r_sep, char *a_string, int a_index, 28019 char *a_separators, char *a_buf, int a_bufLen); 28020 unsigned long pkgstrNumTokens(char *a_string, char *a_separators); 28021 char *pkgstrPrintf(char *a_format, ...); 28022 void pkgstrPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...); 28023 void pkgstrRemoveToken(char **r_string, char *a_token, 28024 char *a_separators, int a_index); 28025 void pkgstrRemoveLeadingWhitespace(char **a_str); 28026 /* vfpops.c */ 28027 extern int vfpCheckpointFile(VFP_T **r_destVfp, VFP_T **a_vfp, 28028 char *a_path); 28029 extern int vfpCheckpointOpen(VFP_T **a_cvfp, VFP_T **r_vfp, char *a_path, 28030 char *a_mode, VFPFLAGS_T a_flags); 28031 extern int vfpClearModified(VFP_T *a_vfp); 28032 extern int vfpClose(VFP_T **r_vfp); 28033 extern int vfpGetModified(VFP_T *a_vfp); 28034 extern int vfpOpen(VFP_T **r_vfp, char *a_path, char *a_mode, 28035 VFPFLAGS_T a_flags); 28036 extern void vfpRewind(VFP_T *a_vfp); 28037 extern ssize_t vfpSafePwrite(int a_fildes, void *a_buf, 28038 size_t a_nbyte, off_t a_offset); 28039 extern ssize_t vfpSafeWrite(int a_fildes, void *a_buf, size_t a_nbyte); 28040 extern int vfpSetFlags(VFP_T *a_vfp, VFPFLAGS_T a_flags); 28041 extern int vfpSetModified(VFP_T *a_vfp); 28042 extern int vfpSetSize(VFP_T *a_vfp, size_t a_size); 28043 extern void vfpTruncate(VFP_T *a_vfp); 28044 extern int vfpWriteToFile(VFP_T *a_vfp, char *a_path); 28045 28046 /* handlelocalfs.c */ 28047 boolean_t enable_local_fs(void); 28048 boolean_t restore_local_fs(void); 28049 28050 /* pkgserv.c */ 28051 extern PKGserver pkgopenserver(const char *, const char *, boolean_t); 28052 extern void pkgcloseserver(PKGserver); 28053 extern int pkgcmd(PKGserver, void *, size_t, char **, size_t *, 28054 int *); 28055 extern boolean_t pkgsync_needed(const char *, const char *, boolean_t); 28056 extern int pkgsync(const char *, const char *, boolean_t); 28057 extern int pkgservercommitfile(VFP_T *, PKGserver); 28058 extern int pkgopenfilter(PKGserver server, const char *pkginst); 28059 extern void pkgclosefilter(PKGserver); 28060 extern char *pkggetentry(PKGserver, int *, int *); 28061 extern char *pkggetentry_named(PKGserver, const char *, int *, 28062 int *); 28063 extern void pkgserversetmode(start_mode_t); 28064 extern start_mode_t pkgservergetmode(void); 28065 extern start_mode_t pkgparsemode(const char *); 28066 extern char *pkgmodeargument(start_mode_t); 28067 # 46 "setup_temporary_directory.c" 2 28068 28069 /* 28070 * local pkg command library includes 28071 */ 28072 28073 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1 28074 /* 28075 * CDDL HEADER START 28076 * 28077 * The contents of this file are subject to the terms of the 28078 * Common Development and Distribution License (the "License"). 28079 * You may not use this file except in compliance with the License. 28080 * 28081 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28082 * or http://www.opensolaris.org/os/licensing. 28083 * See the License for the specific language governing permissions 28084 * and limitations under the License. 28085 * 28086 * When distributing Covered Code, include this CDDL HEADER in each 28087 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28088 * If applicable, add the following below this CDDL HEADER, with the 28089 * fields enclosed by brackets "[]" replaced with your own identifying 28090 * information: Portions Copyright [yyyy] [name of copyright owner] 28091 * 28092 * CDDL HEADER END 28093 */ 28094 28095 /* 28096 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 28097 * Use is subject to license terms. 28098 */ 28099 28100 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28101 /* All Rights Reserved */ 28102 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 28103 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 28104 /* 28105 * CDDL HEADER START 28106 * 28107 * The contents of this file are subject to the terms of the 28108 * Common Development and Distribution License (the "License"). 28109 * You may not use this file except in compliance with the License. 28110 * 28111 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28112 * or http://www.opensolaris.org/os/licensing. 28113 * See the License for the specific language governing permissions 28114 * and limitations under the License. 28115 * 28116 * When distributing Covered Code, include this CDDL HEADER in each 28117 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28118 * If applicable, add the following below this CDDL HEADER, with the 28119 * fields enclosed by brackets "[]" replaced with your own identifying 28120 * information: Portions Copyright [yyyy] [name of copyright owner] 28121 * 28122 * CDDL HEADER END 28123 */ 28124 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28125 /* All Rights Reserved */ 28126 28127 28128 /* 28129 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28130 * Use is subject to license terms. 28131 * 28132 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28133 * Copyright 2016 Joyent, Inc. 28134 */ 28135 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2 28136 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 28137 /* 28138 * CDDL HEADER START 28139 * 28140 * The contents of this file are subject to the terms of the 28141 * Common Development and Distribution License (the "License"). 28142 * You may not use this file except in compliance with the License. 28143 * 28144 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28145 * or http://www.opensolaris.org/os/licensing. 28146 * See the License for the specific language governing permissions 28147 * and limitations under the License. 28148 * 28149 * When distributing Covered Code, include this CDDL HEADER in each 28150 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28151 * If applicable, add the following below this CDDL HEADER, with the 28152 * fields enclosed by brackets "[]" replaced with your own identifying 28153 * information: Portions Copyright [yyyy] [name of copyright owner] 28154 * 28155 * CDDL HEADER END 28156 */ 28157 28158 /* 28159 * Copyright (c) 2013 Gary Mills 28160 * 28161 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 28162 * Use is subject to license terms. 28163 */ 28164 28165 /* Copyright (c) 1988 AT&T */ 28166 /* All Rights Reserved */ 28167 # 40 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2 28168 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 28169 /* 28170 * CDDL HEADER START 28171 * 28172 * The contents of this file are subject to the terms of the 28173 * Common Development and Distribution License (the "License"). 28174 * You may not use this file except in compliance with the License. 28175 * 28176 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28177 * or http://www.opensolaris.org/os/licensing. 28178 * See the License for the specific language governing permissions 28179 * and limitations under the License. 28180 * 28181 * When distributing Covered Code, include this CDDL HEADER in each 28182 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28183 * If applicable, add the following below this CDDL HEADER, with the 28184 * fields enclosed by brackets "[]" replaced with your own identifying 28185 * information: Portions Copyright [yyyy] [name of copyright owner] 28186 * 28187 * CDDL HEADER END 28188 */ 28189 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28190 /* All Rights Reserved */ 28191 28192 /* 28193 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 28194 * Use is subject to license terms. 28195 */ 28196 # 41 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 2 28197 28198 /* Settings for procedure scripts */ 28199 28200 28201 28202 28203 28204 28205 /* Settings for class action scripts */ 28206 28207 28208 28209 28210 28211 /* Settings for non-privileged scripts */ 28212 # 64 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 28213 /* Settings for admin "rscriptalt" option */ 28214 # 80 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 28215 /* Additional cfent/cfextra codes. */ 28216 28217 28218 28219 /* This holds admin file data. */ 28220 struct admin { 28221 char *mail; 28222 char *instance; 28223 char *partial; 28224 char *runlevel; 28225 char *idepend; 28226 char *rdepend; 28227 char *space; 28228 char *setuid; 28229 char *conflict; 28230 char *action; 28231 char *networktimeout; 28232 char *networkretries; 28233 char *authentication; 28234 char *keystore; 28235 char *proxy; 28236 char *basedir; 28237 char *rscriptalt; 28238 }; 28239 28240 /* 28241 * This table details the status of all filesystems available to the target 28242 * host. 28243 */ 28244 struct fstable { 28245 char *name; /* name of filesystem, (mount point) */ 28246 int namlen; /* The length of the name (mountpoint) */ 28247 fsblkcnt_t bsize; /* fundamental file system block size */ 28248 fsblkcnt_t frsize; /* file system fragment size */ 28249 fsblkcnt_t bfree; /* total # of free blocks */ 28250 fsblkcnt_t bused; /* total # of used blocks */ 28251 fsblkcnt_t ffree; /* total # of free file nodes */ 28252 fsblkcnt_t fused; /* total # of used file nodes */ 28253 char *fstype; /* type of filesystem - nfs, lo, ... */ 28254 char *remote_name; /* client's mounted filesystem */ 28255 unsigned writeable:1; /* access permission */ 28256 unsigned write_tested:1; /* access permission fully tested */ 28257 unsigned remote:1; /* on a remote filesystem */ 28258 unsigned mounted:1; /* actually mounted right now */ 28259 unsigned srvr_map:1; /* use server_map() */ 28260 unsigned cl_mounted:1; /* mounted in client space */ 28261 unsigned mnt_failed:1; /* attempt to loopback mount failed */ 28262 unsigned served:1; /* filesystem comes from a server */ 28263 }; 28264 # 52 "setup_temporary_directory.c" 2 28265 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 1 28266 /* 28267 * CDDL HEADER START 28268 * 28269 * The contents of this file are subject to the terms of the 28270 * Common Development and Distribution License (the "License"). 28271 * You may not use this file except in compliance with the License. 28272 * 28273 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28274 * or http://www.opensolaris.org/os/licensing. 28275 * See the License for the specific language governing permissions 28276 * and limitations under the License. 28277 * 28278 * When distributing Covered Code, include this CDDL HEADER in each 28279 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28280 * If applicable, add the following below this CDDL HEADER, with the 28281 * fields enclosed by brackets "[]" replaced with your own identifying 28282 * information: Portions Copyright [yyyy] [name of copyright owner] 28283 * 28284 * CDDL HEADER END 28285 */ 28286 28287 /* 28288 * Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved. 28289 */ 28290 # 34 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 28291 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 28292 /* 28293 * CDDL HEADER START 28294 * 28295 * The contents of this file are subject to the terms of the 28296 * Common Development and Distribution License (the "License"). 28297 * You may not use this file except in compliance with the License. 28298 * 28299 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28300 * or http://www.opensolaris.org/os/licensing. 28301 * See the License for the specific language governing permissions 28302 * and limitations under the License. 28303 * 28304 * When distributing Covered Code, include this CDDL HEADER in each 28305 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28306 * If applicable, add the following below this CDDL HEADER, with the 28307 * fields enclosed by brackets "[]" replaced with your own identifying 28308 * information: Portions Copyright [yyyy] [name of copyright owner] 28309 * 28310 * CDDL HEADER END 28311 */ 28312 28313 /* 28314 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 28315 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 28316 */ 28317 28318 /* Copyright (c) 1988 AT&T */ 28319 /* All Rights Reserved */ 28320 28321 /* 28322 * User-visible pieces of the ANSI C standard I/O package. 28323 */ 28324 # 35 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28325 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/fcntl.h" 1 28326 /* 28327 * CDDL HEADER START 28328 * 28329 * The contents of this file are subject to the terms of the 28330 * Common Development and Distribution License (the "License"). 28331 * You may not use this file except in compliance with the License. 28332 * 28333 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28334 * or http://www.opensolaris.org/os/licensing. 28335 * See the License for the specific language governing permissions 28336 * and limitations under the License. 28337 * 28338 * When distributing Covered Code, include this CDDL HEADER in each 28339 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28340 * If applicable, add the following below this CDDL HEADER, with the 28341 * fields enclosed by brackets "[]" replaced with your own identifying 28342 * information: Portions Copyright [yyyy] [name of copyright owner] 28343 * 28344 * CDDL HEADER END 28345 */ 28346 28347 /* 28348 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 28349 * 28350 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 28351 * Use is subject to license terms. 28352 */ 28353 28354 /* Copyright (c) 1988 AT&T */ 28355 /* All Rights Reserved */ 28356 # 36 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28357 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 28358 /* 28359 * CDDL HEADER START 28360 * 28361 * The contents of this file are subject to the terms of the 28362 * Common Development and Distribution License (the "License"). 28363 * You may not use this file except in compliance with the License. 28364 * 28365 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28366 * or http://www.opensolaris.org/os/licensing. 28367 * See the License for the specific language governing permissions 28368 * and limitations under the License. 28369 * 28370 * When distributing Covered Code, include this CDDL HEADER in each 28371 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28372 * If applicable, add the following below this CDDL HEADER, with the 28373 * fields enclosed by brackets "[]" replaced with your own identifying 28374 * information: Portions Copyright [yyyy] [name of copyright owner] 28375 * 28376 * CDDL HEADER END 28377 */ 28378 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28379 /* All Rights Reserved */ 28380 28381 28382 /* 28383 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28384 * Use is subject to license terms. 28385 * 28386 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 28387 * Copyright 2016 Joyent, Inc. 28388 */ 28389 # 37 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28390 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/stat.h" 1 28391 /* 28392 * CDDL HEADER START 28393 * 28394 * The contents of this file are subject to the terms of the 28395 * Common Development and Distribution License (the "License"). 28396 * You may not use this file except in compliance with the License. 28397 * 28398 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28399 * or http://www.opensolaris.org/os/licensing. 28400 * See the License for the specific language governing permissions 28401 * and limitations under the License. 28402 * 28403 * When distributing Covered Code, include this CDDL HEADER in each 28404 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28405 * If applicable, add the following below this CDDL HEADER, with the 28406 * fields enclosed by brackets "[]" replaced with your own identifying 28407 * information: Portions Copyright [yyyy] [name of copyright owner] 28408 * 28409 * CDDL HEADER END 28410 */ 28411 28412 /* 28413 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 28414 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. 28415 */ 28416 28417 /* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */ 28418 /* Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T */ 28419 /* All Rights Reserved */ 28420 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28421 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 28422 /* 28423 * CDDL HEADER START 28424 * 28425 * The contents of this file are subject to the terms of the 28426 * Common Development and Distribution License (the "License"). 28427 * You may not use this file except in compliance with the License. 28428 * 28429 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28430 * or http://www.opensolaris.org/os/licensing. 28431 * See the License for the specific language governing permissions 28432 * and limitations under the License. 28433 * 28434 * When distributing Covered Code, include this CDDL HEADER in each 28435 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28436 * If applicable, add the following below this CDDL HEADER, with the 28437 * fields enclosed by brackets "[]" replaced with your own identifying 28438 * information: Portions Copyright [yyyy] [name of copyright owner] 28439 * 28440 * CDDL HEADER END 28441 */ 28442 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28443 /* All Rights Reserved */ 28444 28445 /* 28446 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 28447 * Use is subject to license terms. 28448 */ 28449 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28450 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 1 28451 /* 28452 * CDDL HEADER START 28453 * 28454 * The contents of this file are subject to the terms of the 28455 * Common Development and Distribution License, Version 1.0 only 28456 * (the "License"). You may not use this file except in compliance 28457 * with the License. 28458 * 28459 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28460 * or http://www.opensolaris.org/os/licensing. 28461 * See the License for the specific language governing permissions 28462 * and limitations under the License. 28463 * 28464 * When distributing Covered Code, include this CDDL HEADER in each 28465 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28466 * If applicable, add the following below this CDDL HEADER, with the 28467 * fields enclosed by brackets "[]" replaced with your own identifying 28468 * information: Portions Copyright [yyyy] [name of copyright owner] 28469 * 28470 * CDDL HEADER END 28471 */ 28472 /* 28473 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 28474 */ 28475 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28476 /* All Rights Reserved */ 28477 # 41 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 28478 struct pkginfo { 28479 char *pkginst; 28480 char *name; 28481 char *arch; 28482 char *version; 28483 char *vendor; 28484 char *basedir; 28485 char *catg; 28486 char status; 28487 }; 28488 28489 extern char *pkgdir; 28490 28491 extern char *pkgparam(char *, char *); 28492 extern int pkginfo(struct pkginfo *, char *, ...), 28493 pkgnmchk(char *, char *, int); 28494 # 40 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28495 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/pkglib.h" 1 28496 /* 28497 * CDDL HEADER START 28498 * 28499 * The contents of this file are subject to the terms of the 28500 * Common Development and Distribution License (the "License"). 28501 * You may not use this file except in compliance with the License. 28502 * 28503 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28504 * or http://www.opensolaris.org/os/licensing. 28505 * See the License for the specific language governing permissions 28506 * and limitations under the License. 28507 * 28508 * When distributing Covered Code, include this CDDL HEADER in each 28509 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28510 * If applicable, add the following below this CDDL HEADER, with the 28511 * fields enclosed by brackets "[]" replaced with your own identifying 28512 * information: Portions Copyright [yyyy] [name of copyright owner] 28513 * 28514 * CDDL HEADER END 28515 */ 28516 28517 /* 28518 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 28519 * Use is subject to license terms. 28520 */ 28521 28522 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28523 /* All Rights Reserved */ 28524 # 41 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28525 # 1 "/home/git3/dehawe/titanic_53/usr/src/lib/libpkg/common/cfext.h" 1 28526 /* 28527 * CDDL HEADER START 28528 * 28529 * The contents of this file are subject to the terms of the 28530 * Common Development and Distribution License (the "License"). 28531 * You may not use this file except in compliance with the License. 28532 * 28533 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28534 * or http://www.opensolaris.org/os/licensing. 28535 * See the License for the specific language governing permissions 28536 * and limitations under the License. 28537 * 28538 * When distributing Covered Code, include this CDDL HEADER in each 28539 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28540 * If applicable, add the following below this CDDL HEADER, with the 28541 * fields enclosed by brackets "[]" replaced with your own identifying 28542 * information: Portions Copyright [yyyy] [name of copyright owner] 28543 * 28544 * CDDL HEADER END 28545 */ 28546 28547 /* 28548 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 28549 * Use is subject to license terms. 28550 */ 28551 # 42 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28552 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1 28553 /* 28554 * CDDL HEADER START 28555 * 28556 * The contents of this file are subject to the terms of the 28557 * Common Development and Distribution License (the "License"). 28558 * You may not use this file except in compliance with the License. 28559 * 28560 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 28561 * or http://www.opensolaris.org/os/licensing. 28562 * See the License for the specific language governing permissions 28563 * and limitations under the License. 28564 * 28565 * When distributing Covered Code, include this CDDL HEADER in each 28566 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 28567 * If applicable, add the following below this CDDL HEADER, with the 28568 * fields enclosed by brackets "[]" replaced with your own identifying 28569 * information: Portions Copyright [yyyy] [name of copyright owner] 28570 * 28571 * CDDL HEADER END 28572 */ 28573 28574 /* 28575 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 28576 * Use is subject to license terms. 28577 */ 28578 28579 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28580 /* All Rights Reserved */ 28581 # 43 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 2 28582 28583 28584 28585 28586 28587 /* signal handler function definition */ 28588 28589 typedef void (sighdlrFunc_t)(int); 28590 28591 /* maximum parameter length */ 28592 28593 28594 28595 /* flag for check_applicability */ 28596 28597 typedef unsigned long CAF_T; 28598 28599 /* flags for check_applicability */ 28600 28601 28602 28603 28604 28605 /* path to the request file in the package directory */ 28606 28607 28608 28609 /* path to the copyright file in the package directory */ 28610 28611 28612 28613 /* path to the depend file in the package directory */ 28614 28615 28616 28617 /* 28618 * name of environment variable set to non-global zone name being installed: 28619 * pkgadd/pkginstall expects this name and passes it on to any scripts that 28620 * are run if it is set. 28621 */ 28622 28623 28624 28625 /* 28626 * name of environment variable set to indicate this package should be installed 28627 * in the current zone only - see PSARC/2004/789 - New Pkginfo(4) attributes 28628 * for zones 28629 */ 28630 28631 28632 28633 /* 28634 * name of environment variable set to indicate this package should be installed 28635 * in all zones, and only from the global zone - see PSARC/2003/460 28636 */ 28637 28638 28639 28640 /* 28641 * name of environment variable set to indicate this package should be installed 28642 * hollow (db update only) when installed in nonglobal zone - see PSARC/2003/460 28643 */ 28644 28645 28646 28647 /* 28648 * General purpose return codes used for functions which don't return a basic 28649 * success or failure. For those functions wherein a yes/no result is 28650 * possible, then 1 means OK and 0 means FAIL. 28651 */ 28652 28653 28654 28655 28656 /* These are the file status indicators for the contents file */ 28657 # 128 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 28658 /* control bits for pkgdbmerg() */ 28659 28660 28661 28662 /* control bits for file verification by class */ 28663 28664 28665 28666 28667 /* control bit for path type to pass to CAS */ 28668 28669 28670 28671 /* findscripts() argument */ 28672 28673 28674 28675 struct cl_attr { 28676 char name[64 +1]; /* name of class */ 28677 char *inst_script; /* install class action script */ 28678 char *rem_script; /* remove class action script */ 28679 unsigned src_verify:3; /* source verification level */ 28680 unsigned dst_verify:4; /* destination verification level */ 28681 unsigned relpath_2_CAS:1; /* CAS gets relative paths */ 28682 }; 28683 28684 28685 28686 28687 28688 28689 28690 /* Common quit declaration used across many package commands */ 28691 extern void quit(int) __attribute__((__noreturn__)); 28692 28693 28694 /* listmgr.c */ 28695 extern int bl_create (int count_per_block, int struct_size, char *desc); 28696 28697 extern char *bl_next_avail (int list_handle); 28698 extern char *bl_get_record (int list_handle, int recno); 28699 extern void bl_free (int list_handle); 28700 extern int ar_create (int count_per_block, int struct_size, char *desc); 28701 28702 extern char **ar_next_avail (int list_handle); 28703 extern char **ar_get_head (int list_handle); 28704 extern int ar_delete (int list_handle, int index); 28705 extern void ar_free (int list_handle); 28706 28707 /* doulimit.c */ 28708 extern int set_ulimit (char *script, char *err_msg); 28709 extern int clr_ulimit (void); 28710 extern int assign_ulimit (char *fslimit); 28711 28712 /* dryrun.c */ 28713 extern void set_continue_not_ok (void); 28714 extern int continue_is_ok (void); 28715 extern int in_dryrun_mode (void); 28716 extern int in_continue_mode (void); 28717 extern void init_dryrunfile (char *dr_dir); 28718 extern void init_contfile (char *cn_dir); 28719 extern void set_dr_exitmsg (char *value); 28720 extern void set_dr_info (int type, int value); 28721 extern void write_dryrun_file (struct cfextra **extlist); 28722 28723 /* instvol.c */ 28724 extern void regfiles_free (void); 28725 28726 /* lockinst.c */ 28727 extern int lockinst (char *util_name, char *pkg_name, char *place); 28728 extern void lockupd (char *place); 28729 extern void unlockinst (void); 28730 28731 extern char *pathdup (char *s); 28732 extern char *pathalloc (int n); 28733 extern char *fixpath (char *path); 28734 extern char *get_info_basedir (void); 28735 extern char *get_basedir (void); 28736 extern char *get_client_basedir (void); 28737 extern int set_basedirs (int reloc, char *adm_basedir, char *pkginst, int nointeract); 28738 28739 extern int eval_path (char **server_ptr, char **client_ptr, char **map_ptr, char *path); 28740 28741 extern int get_orig_offset (void); 28742 extern char *get_inst_root (void); 28743 extern char *get_mount_point (uint32_t n); 28744 extern char *get_remote_path (uint32_t n); 28745 extern void set_env_cbdir (void); 28746 extern int set_inst_root (char *path); 28747 extern void put_path_params (void); 28748 extern int mkpath (char *p); 28749 extern void mkbasedir (int flag, char *path); 28750 extern int is_an_inst_root (void); 28751 extern int is_a_basedir (void); 28752 extern int is_a_cl_basedir (void); 28753 extern int is_relocatable (void); 28754 extern char *orig_path (char *path); 28755 extern char *orig_path_ptr (char *path); 28756 extern char *qreason (int caller, int retcode, int started, int includeZonename); 28757 28758 extern char *qstrdup (char *s); 28759 extern char *srcpath (char *d, char *p, int part, int nparts); 28760 extern char *trans_srcp_pi (char *local_path); 28761 extern int copyf (char *from, char *to, time_t mytime); 28762 extern int copyFile (int, int, char *, char *, struct stat *, long); 28763 extern int openLocal (char *a_path, int a_oflag, char *a_tmpdir); 28764 extern int dockdeps (char *depfile, int removeFlag, boolean_t a_preinstallCheck); 28765 28766 extern int finalck (struct cfent *ept, int attrchg, int contchg, boolean_t a_warning); 28767 28768 28769 /* dockdeps.c */ 28770 extern void setUpdate (void); 28771 extern int isUpdate (void); 28772 28773 /* mntinfo.c */ 28774 extern int get_mntinfo (int map_client, char *vfstab_file); 28775 extern uint32_t fsys (char *path); 28776 extern struct fstable *get_fs_entry (uint32_t n); 28777 extern int mount_client (void); 28778 extern int unmount_client (void); 28779 extern uint32_t resolved_fsys (char *path); 28780 extern char *get_server_host (uint32_t n); 28781 extern char *server_map (char *path, uint32_t fsys_value); 28782 extern int use_srvr_map (char *path, uint32_t *fsys_value); 28783 extern int use_srvr_map_n (uint32_t n); 28784 extern int is_fs_writeable (char *path, uint32_t *fsys_value); 28785 extern int is_remote_fs (char *path, uint32_t *fsys_value); 28786 extern int is_served (char *path, uint32_t *fsys_value); 28787 extern int is_mounted (char *path, uint32_t *fsys_value); 28788 extern int is_fs_writeable_n (uint32_t n); 28789 extern int is_remote_fs_n (uint32_t n); 28790 extern int is_served_n (uint32_t n); 28791 extern int is_mounted_n (uint32_t n); 28792 extern fsblkcnt_t get_blk_size_n (uint32_t n); 28793 extern fsblkcnt_t get_frag_size_n (uint32_t n); 28794 extern fsblkcnt_t get_blk_used_n (uint32_t n); 28795 extern fsblkcnt_t get_blk_free_n (uint32_t n); 28796 extern fsblkcnt_t get_inode_used_n (uint32_t n); 28797 extern fsblkcnt_t get_inode_free_n (uint32_t n); 28798 extern void set_blk_used_n (uint32_t n, fsblkcnt_t value); 28799 extern char *get_source_name_n (uint32_t n); 28800 extern char *get_fs_name_n (uint32_t n); 28801 extern int load_fsentry (struct fstable *fs_entry, char *name, char *fstype, char *remote_name); 28802 28803 extern int isreloc (char *pkginstdir); 28804 extern int is_local_host (char *hostname); 28805 extern void fs_tab_free (void); 28806 28807 /* pkgdbmerg.c */ 28808 extern int pkgdbmerg (PKGserver server, VFP_T *tmpvfp, struct cfextra **extlist); 28809 28810 extern int files_installed (void); 28811 28812 /* ocfile.c */ 28813 extern int trunc_tcfile (int fd); 28814 extern int ocfile (PKGserver *serverp, VFP_T **tmpvfp, fsblkcnt_t map_blks); 28815 28816 extern int swapcfile (PKGserver server, VFP_T **a_tmpvfp, char *pkginst, int dbchg); 28817 28818 extern int set_cfdir (char *cfdir); 28819 extern int socfile (PKGserver *server, boolean_t quiet); 28820 extern int relslock (void); 28821 extern int pkgWlock (int verbose); 28822 extern int iscfile (void); 28823 extern int vcfile (void); 28824 28825 extern fsblkcnt_t nblk (fsblkcnt_t size, ulong_t bsize, ulong_t frsize); 28826 28827 extern struct cfent **procmap (VFP_T *vfp, int mapflag, char *ir); 28828 extern void repl_cfent (struct cfent *new, struct cfent *old); 28829 extern struct cfextra **pkgobjmap (VFP_T *vfp, int mapflag, char *ir); 28830 extern void pkgobjinit (void); 28831 extern int seed_pkgobjmap (struct cfextra *ext_entry, char *path, char *local); 28832 28833 extern int init_pkgobjspace (void); 28834 28835 /* eptstat.c */ 28836 extern void pinfo_free (void); 28837 extern struct pinfo *eptstat (struct cfent *entry, char *pkg, char c); 28838 28839 /* echo.c */ 28840 /*PRINTFLIKE1*/ 28841 extern void echo (char *a_fmt, ...); 28842 /*PRINTFLIKE1*/ 28843 extern void echoDebug (char *a_fmt, ...); 28844 extern boolean_t echoGetFlag (void); 28845 extern boolean_t echoDebugGetFlag (void); 28846 extern boolean_t echoSetFlag (boolean_t a_debugFlag); 28847 extern boolean_t echoDebugSetFlag (boolean_t a_debugFlag); 28848 28849 /* ptext.c */ 28850 /*PRINTFLIKE2*/ 28851 extern void ptext (FILE *fp, char *fmt, ...); 28852 28853 /* putparam.c */ 28854 extern void putparam (char *param, char *value); 28855 extern void getuserlocale (void); 28856 extern void putuserlocale (void); 28857 extern void putConditionInfo (char *, char *); 28858 28859 /* setadmin.c */ 28860 extern void setadminFile (char *file); 28861 extern char *setadminSetting (char *a_paramName, char *a_paramValue); 28862 28863 extern char *set_keystore_admin (void); 28864 extern boolean_t get_proxy_port_admin (char **, ushort_t *); 28865 extern boolean_t check_keystore_admin (char **); 28866 extern int web_ck_retries (void); 28867 extern int web_ck_timeout (void); 28868 extern int web_ck_authentication (void); 28869 28870 /* setlist.c */ 28871 extern char *cl_iscript (int idx); 28872 extern char *cl_rscript (int idx); 28873 extern void find_CAS (int CAS_type, char *bin_ptr, char *inst_ptr); 28874 extern int setlist (struct cl_attr ***plist, char *slist); 28875 extern void addlist (struct cl_attr ***plist, char *item); 28876 extern char *cl_nam (int cl_idx); 28877 extern char *flex_device(char *device_name, int dev_ok); 28878 extern int cl_getn (void); 28879 extern int cl_idx (char *cl_nam); 28880 extern void cl_sets (char *slist); 28881 extern void cl_setl (struct cl_attr **cl_lst); 28882 extern void cl_putl (char *parm_name, struct cl_attr **list); 28883 extern int cl_deliscript (int i); 28884 extern unsigned cl_svfy (int i); 28885 extern unsigned cl_dvfy (int i); 28886 extern unsigned cl_pthrel (int i); 28887 28888 /* passwd.c */ 28889 extern int pkg_passphrase_cb (char *, int, int, void *); 28890 extern void set_passarg (char *); 28891 extern void set_prompt (char *); 28892 28893 /* fixpath.c */ 28894 extern void export_client_env(char *); 28895 extern void set_partial_inst(void); 28896 extern int is_partial_inst(void); 28897 extern void set_depend_pkginfo_DB(boolean_t a_setting); 28898 extern boolean_t is_depend_pkginfo_DB(void); 28899 extern void disable_spool_create(void); 28900 extern int is_spool_create(void); 28901 28902 /* open_package_datastream.c */ 28903 extern boolean_t open_package_datastream(int a_argc, char **a_argv, 28904 char *a_spoolto, char *a_device, 28905 int *r_repeat, char **r_idsName, 28906 char *a_tmpdir, struct pkgdev *a_pkgdev, 28907 int a_optind); 28908 28909 /* setup_temporary_directory.c */ 28910 extern boolean_t setup_temporary_directory(char **r_dirname, 28911 char *a_tmpdir, char *a_suffix); 28912 28913 /* unpack_package_from_stream.c */ 28914 extern boolean_t unpack_package_from_stream(char *a_idsName, 28915 char *a_pkginst, char *a_tempDir); 28916 28917 /* pkgops.c */ 28918 28919 extern boolean_t pkgAddPackageToGzonlyList(char *a_pkgInst, 28920 char *a_rootPath); 28921 extern void pkgAddThisZonePackage(char *a_pkgInst); 28922 extern boolean_t pkgRemovePackageFromGzonlyList(char *a_rootPath, 28923 char *a_pkgInst); 28924 extern FILE *pkgOpenInGzOnlyFile(char *a_rootPath); 28925 extern void pkginfoFree(struct pkginfo **r_info); 28926 extern boolean_t pkginfoIsPkgInstalled(struct pkginfo **r_pinfo, 28927 char *a_pkgInst); 28928 extern boolean_t pkgIsPkgInGzOnly(char *a_rootPath, char *a_pkgInst); 28929 extern boolean_t pkgIsPkgInGzOnlyFP(FILE *a_fp, char *a_pkgInst); 28930 extern boolean_t pkginfoParamTruth(FILE *a_fp, char *a_param, 28931 char *a_value, boolean_t a_default); 28932 extern int pkgGetPackageList(char ***r_pkgList, char **a_argv, 28933 int a_optind, char *a_categories, 28934 char **a_categoryList, struct pkgdev *a_pkgdev); 28935 extern void pkgLocateHighestInst(char *r_path, int r_pathLen, 28936 char *r_pkgInst, int r_pkgInstLen, 28937 char *a_rootPath, char *a_pkgInst); 28938 extern boolean_t pkgPackageIsThisZone(char *a_pkgInst); 28939 extern char *pkgGetGzOnlyPath(void); 28940 extern boolean_t pkgTestInstalled(char *a_packageName, char *a_rootPath); 28941 28942 /* depchk.c */ 28943 28944 struct depckErrorRecord { 28945 int ier_numZones; 28946 char *ier_packageName; 28947 char **ier_zones; 28948 char **ier_values; 28949 }; 28950 28951 typedef struct depckErrorRecord depckErrorRecord_t; 28952 28953 struct depckError { 28954 int er_numEntries; 28955 depckErrorRecord_t *er_theEntries; 28956 }; 28957 28958 typedef struct depckError depckError_t; 28959 28960 typedef int (depcklFunc_t)(char *a_msg, char *a_pkg); 28961 28962 /* 28963 * ignore_values: 28964 * == NULL - record one message for each instance of "name" found 28965 * == "" - record multiple instances 28966 * != "" - record multiple instances if value not in ignore_values 28967 */ 28968 28969 struct depckl_struct { 28970 char *name; 28971 char *ignore_values; 28972 char **err_msg; 28973 depcklFunc_t *depcklFunc; 28974 depckError_t *record; 28975 }; 28976 28977 typedef struct depckl_struct depckl_t; 28978 28979 extern int depchkReportErrors(depckl_t *depckl); 28980 extern void depchkRecordError(depckError_t *a_erc, 28981 char *a_pkginst, char *a_zoneName, 28982 char *a_value); 28983 28984 /* log.c */ 28985 28986 /* types of log messages we recognize */ 28987 typedef enum { 28988 LOG_MSG_ERR, 28989 LOG_MSG_WRN, 28990 LOG_MSG_INFO, 28991 LOG_MSG_DEBUG 28992 } LogMsgType; 28993 28994 /*PRINTFLIKE2*/ 28995 extern void log_msg(LogMsgType, const char *, ...); 28996 extern void log_set_verbose(boolean_t); 28997 extern boolean_t log_get_verbose(void); 28998 28999 /* 29000 * typedef for the 'ckreturn' function 29001 */ 29002 typedef void (ckreturnFunc_t)(int a_retcode); 29003 29004 /* sml.c */ 29005 29006 /* null reference to SML_TAG object */ 29007 29008 29009 29010 /* null reference to SML_TAG * object */ 29011 29012 29013 29014 /* is reference to SML_TAG object valid? */ 29015 29016 29017 29018 /* is indirect reference to SML_TAG object valid? */ 29019 29020 29021 29022 29023 /* definitions for sml passed from pkginstall to pkgcond */ 29024 # 505 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libinst.h" 29025 typedef struct _sml_tag_struct SML_TAG; 29026 typedef struct _sml_parameter_struct SML_PARAM; 29027 29028 struct _sml_tag_struct { 29029 char *name; /* tag name */ 29030 int params_num; /* # params in *params */ 29031 SML_PARAM *params; /* tag parameters */ 29032 int tags_num; /* # subtags in *tags */ 29033 SML_TAG *tags; /* tag subtags */ 29034 }; 29035 29036 struct _sml_parameter_struct { 29037 char *name; /* tag name */ 29038 char *value; /* parameters */ 29039 }; 29040 29041 SML_TAG *smlAddTag(SML_TAG **r_tag, int a_index, 29042 SML_TAG *a_subTag); 29043 boolean_t smlFstatCompareEq(struct stat *statbuf, 29044 SML_TAG *tag, char *path); 29045 char *smlConvertTagToString(SML_TAG *tag); 29046 /*PRINTFLIKE2*/ 29047 void smlDbgPrintTag(SML_TAG *a_tag, char *a_format, ...); 29048 void smlDelTag(SML_TAG *tag, SML_TAG *sub_tag); 29049 void smlDelParam(SML_TAG *tag, char *name); 29050 SML_TAG *smlDup(SML_TAG *tag); 29051 boolean_t smlFindAndDelTag(SML_TAG *tag, char *findTag); 29052 void smlFreeTag(SML_TAG *tag); 29053 char *smlGetElementName(SML_TAG *a_tag); 29054 int smlGetNumParams(SML_TAG *a_tag); 29055 char *smlGetParam(SML_TAG *tag, char *name); 29056 /*PRINTFLIKE2*/ 29057 char *smlGetParamF(SML_TAG *tag, char *format, ...); 29058 void smlGetParam_r(SML_TAG *tag, char *name, char *buf, 29059 int bufLen); 29060 char *smlGetParamByTag(SML_TAG *tag, int index, 29061 char *tagName, char *parmName); 29062 char *smlGetParamByTagParam(SML_TAG *tag, int index, 29063 char *tagName, char *parmName, char *parmValue, 29064 char *parmReturn); 29065 char *smlGetParamName(SML_TAG *tag, int index); 29066 SML_TAG *smlGetTag(SML_TAG *tag, int index); 29067 SML_TAG *smlGetTagByName(SML_TAG *tag, int index, char *name); 29068 SML_TAG *smlGetTagByTagParam(SML_TAG *tag, int index, 29069 char *tagName, char *paramName, char *paramValue); 29070 boolean_t smlGetVerbose(void); 29071 int smlLoadTagFromFile(SML_TAG **r_tag, char *a_fileName); 29072 SML_TAG *smlNewTag(char *name); 29073 boolean_t smlParamEq(SML_TAG *tag, char *findTag, 29074 char *findParam, char *str); 29075 /*PRINTFLIKE4*/ 29076 boolean_t smlParamEqF(SML_TAG *tag, char *findTag, char *findParam, 29077 char *format, ...); 29078 void smlPrintTag(SML_TAG *tag); 29079 int smlReadOneTag(SML_TAG **r_tag, char *a_str); 29080 int smlConvertStringToTag(SML_TAG **r_tag, char *str); 29081 void smlSetFileStatInfo(SML_TAG **tag, 29082 struct stat *statbuf, char *path); 29083 void smlSetParam(SML_TAG *tag, char *name, char *value); 29084 /*PRINTFLIKE3*/ 29085 void smlSetParamF(SML_TAG *tag, char *name, char *format, ...); 29086 void smlSetVerbose(boolean_t a_setting); 29087 int smlWriteTagToFd(SML_TAG *tag, int fd); 29088 int smlWriteTagToFile(SML_TAG *tag, char *filename); 29089 /*PRINTFLIKE3*/ 29090 void sml_strPrintf_r(char *a_buf, int a_bufLen, char *a_format, ...); 29091 /*PRINTFLIKE1*/ 29092 char *sml_strPrintf(char *a_format, ...); 29093 char *sml_XmlEncodeString(char *a_plainTextString); 29094 char *sml_XmlDecodeString(char *a_xmlEncodedString); 29095 # 53 "setup_temporary_directory.c" 2 29096 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 1 29097 /* 29098 * CDDL HEADER START 29099 * 29100 * The contents of this file are subject to the terms of the 29101 * Common Development and Distribution License (the "License"). 29102 * You may not use this file except in compliance with the License. 29103 * 29104 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29105 * or http://www.opensolaris.org/os/licensing. 29106 * See the License for the specific language governing permissions 29107 * and limitations under the License. 29108 * 29109 * When distributing Covered Code, include this CDDL HEADER in each 29110 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29111 * If applicable, add the following below this CDDL HEADER, with the 29112 * fields enclosed by brackets "[]" replaced with your own identifying 29113 * information: Portions Copyright [yyyy] [name of copyright owner] 29114 * 29115 * CDDL HEADER END 29116 */ 29117 29118 /* 29119 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 29120 * Use is subject to license terms. 29121 */ 29122 29123 29124 29125 29126 29127 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types.h" 1 29128 /* 29129 * CDDL HEADER START 29130 * 29131 * The contents of this file are subject to the terms of the 29132 * Common Development and Distribution License (the "License"). 29133 * You may not use this file except in compliance with the License. 29134 * 29135 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29136 * or http://www.opensolaris.org/os/licensing. 29137 * See the License for the specific language governing permissions 29138 * and limitations under the License. 29139 * 29140 * When distributing Covered Code, include this CDDL HEADER in each 29141 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29142 * If applicable, add the following below this CDDL HEADER, with the 29143 * fields enclosed by brackets "[]" replaced with your own identifying 29144 * information: Portions Copyright [yyyy] [name of copyright owner] 29145 * 29146 * CDDL HEADER END 29147 */ 29148 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29149 /* All Rights Reserved */ 29150 29151 29152 /* 29153 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 29154 * Use is subject to license terms. 29155 * 29156 * Copyright 2013 Nexenta Systems, Inc. All rights reserved. 29157 * Copyright 2016 Joyent, Inc. 29158 */ 29159 # 32 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29160 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 1 29161 /* 29162 * CDDL HEADER START 29163 * 29164 * The contents of this file are subject to the terms of the 29165 * Common Development and Distribution License (the "License"). 29166 * You may not use this file except in compliance with the License. 29167 * 29168 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29169 * or http://www.opensolaris.org/os/licensing. 29170 * See the License for the specific language governing permissions 29171 * and limitations under the License. 29172 * 29173 * When distributing Covered Code, include this CDDL HEADER in each 29174 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29175 * If applicable, add the following below this CDDL HEADER, with the 29176 * fields enclosed by brackets "[]" replaced with your own identifying 29177 * information: Portions Copyright [yyyy] [name of copyright owner] 29178 * 29179 * CDDL HEADER END 29180 */ 29181 29182 /* 29183 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 29184 * 29185 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 29186 * Use is subject to license terms. 29187 * Copyright 2015 Nexenta Systems, Inc. All rights reserved. 29188 * Copyright 2016 Toomas Soome <tsoome@me.com> 29189 */ 29190 29191 29192 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29193 /* All Rights Reserved */ 29194 29195 29196 29197 29198 29199 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 1 29200 /* 29201 * CDDL HEADER START 29202 * 29203 * The contents of this file are subject to the terms of the 29204 * Common Development and Distribution License (the "License"). 29205 * You may not use this file except in compliance with the License. 29206 * 29207 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29208 * or http://www.opensolaris.org/os/licensing. 29209 * See the License for the specific language governing permissions 29210 * and limitations under the License. 29211 * 29212 * When distributing Covered Code, include this CDDL HEADER in each 29213 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29214 * If applicable, add the following below this CDDL HEADER, with the 29215 * fields enclosed by brackets "[]" replaced with your own identifying 29216 * information: Portions Copyright [yyyy] [name of copyright owner] 29217 * 29218 * CDDL HEADER END 29219 */ 29220 29221 /* 29222 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 29223 * Use is subject to license terms. 29224 */ 29225 29226 29227 29228 29229 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 29230 /* 29231 * CDDL HEADER START 29232 * 29233 * The contents of this file are subject to the terms of the 29234 * Common Development and Distribution License (the "License"). 29235 * You may not use this file except in compliance with the License. 29236 * 29237 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29238 * or http://www.opensolaris.org/os/licensing. 29239 * See the License for the specific language governing permissions 29240 * and limitations under the License. 29241 * 29242 * 29243 * When distributing Covered Code, include this CDDL HEADER in each 29244 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29245 * If applicable, add the following below this CDDL HEADER, with the 29246 * fields enclosed by brackets "[]" replaced with your own identifying 29247 * information: Portions Copyright [yyyy] [name of copyright owner] 29248 * 29249 * CDDL HEADER END 29250 */ 29251 29252 /* 29253 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 29254 * Use is subject to license terms. 29255 * Copyright 2016 Joyent, Inc. 29256 */ 29257 # 31 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2 29258 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 1 29259 /* 29260 * CDDL HEADER START 29261 * 29262 * The contents of this file are subject to the terms of the 29263 * Common Development and Distribution License (the "License"). 29264 * You may not use this file except in compliance with the License. 29265 * 29266 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29267 * or http://www.opensolaris.org/os/licensing. 29268 * See the License for the specific language governing permissions 29269 * and limitations under the License. 29270 * 29271 * When distributing Covered Code, include this CDDL HEADER in each 29272 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29273 * If applicable, add the following below this CDDL HEADER, with the 29274 * fields enclosed by brackets "[]" replaced with your own identifying 29275 * information: Portions Copyright [yyyy] [name of copyright owner] 29276 * 29277 * CDDL HEADER END 29278 */ 29279 /* 29280 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 29281 * Use is subject to license terms. 29282 * Copyright 2015 Nexenta Systems, Inc. 29283 */ 29284 29285 29286 29287 29288 #pragma ident "%Z%%M% %I% %E% SMI" 29289 29290 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/int_types.h" 1 29291 /* 29292 * CDDL HEADER START 29293 * 29294 * The contents of this file are subject to the terms of the 29295 * Common Development and Distribution License, Version 1.0 only 29296 * (the "License"). You may not use this file except in compliance 29297 * with the License. 29298 * 29299 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29300 * or http://www.opensolaris.org/os/licensing. 29301 * See the License for the specific language governing permissions 29302 * and limitations under the License. 29303 * 29304 * When distributing Covered Code, include this CDDL HEADER in each 29305 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29306 * If applicable, add the following below this CDDL HEADER, with the 29307 * fields enclosed by brackets "[]" replaced with your own identifying 29308 * information: Portions Copyright [yyyy] [name of copyright owner] 29309 * 29310 * CDDL HEADER END 29311 */ 29312 /* 29313 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 29314 * 29315 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 29316 * Use is subject to license terms. 29317 */ 29318 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/types32.h" 2 29319 29320 29321 29322 29323 29324 /* 29325 * Interoperability types for programs. Used for: 29326 * 29327 * Crossing between 32-bit and 64-bit domains. 29328 * 29329 * On disk data formats such as filesystem meta data 29330 * and disk label. 29331 * 29332 * Note: Applications should never include this 29333 * header file. 29334 */ 29335 typedef uint32_t caddr32_t; 29336 typedef int32_t daddr32_t; 29337 typedef int32_t off32_t; 29338 typedef uint32_t ino32_t; 29339 typedef int32_t blkcnt32_t; 29340 typedef uint32_t fsblkcnt32_t; 29341 typedef uint32_t fsfilcnt32_t; 29342 typedef int32_t id32_t; 29343 typedef uint32_t major32_t; 29344 typedef uint32_t minor32_t; 29345 typedef int32_t key32_t; 29346 typedef uint32_t mode32_t; 29347 typedef uint32_t uid32_t; 29348 typedef uint32_t gid32_t; 29349 typedef uint32_t nlink32_t; 29350 typedef uint32_t dev32_t; 29351 typedef int32_t pid32_t; 29352 typedef uint32_t size32_t; 29353 typedef int32_t ssize32_t; 29354 typedef int32_t time32_t; 29355 typedef int32_t clock32_t; 29356 typedef uint32_t uintptr32_t; 29357 typedef int32_t intptr32_t; 29358 29359 struct timeval32 { 29360 time32_t tv_sec; /* seconds */ 29361 int32_t tv_usec; /* and microseconds */ 29362 }; 29363 29364 typedef struct timespec32 { 29365 time32_t tv_sec; /* seconds */ 29366 int32_t tv_nsec; /* and nanoseconds */ 29367 } timespec32_t; 29368 29369 typedef struct timespec32 timestruc32_t; 29370 29371 typedef struct itimerspec32 { 29372 struct timespec32 it_interval; 29373 struct timespec32 it_value; 29374 } itimerspec32_t; 29375 # 32 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2 29376 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/isa_defs.h" 1 29377 /* 29378 * CDDL HEADER START 29379 * 29380 * The contents of this file are subject to the terms of the 29381 * Common Development and Distribution License (the "License"). 29382 * You may not use this file except in compliance with the License. 29383 * 29384 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29385 * or http://www.opensolaris.org/os/licensing. 29386 * See the License for the specific language governing permissions 29387 * and limitations under the License. 29388 * 29389 * 29390 * When distributing Covered Code, include this CDDL HEADER in each 29391 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29392 * If applicable, add the following below this CDDL HEADER, with the 29393 * fields enclosed by brackets "[]" replaced with your own identifying 29394 * information: Portions Copyright [yyyy] [name of copyright owner] 29395 * 29396 * CDDL HEADER END 29397 */ 29398 29399 /* 29400 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 29401 * Use is subject to license terms. 29402 * Copyright 2016 Joyent, Inc. 29403 */ 29404 # 33 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 2 29405 29406 29407 29408 29409 29410 /* 29411 * Miscellaneous defines 29412 */ 29413 # 59 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 29414 /* 29415 * Reserve two cylinders on SCSI disks. 29416 * One is for the backup disk label and the other is for the deviceid. 29417 * 29418 * IPI disks only reserve one cylinder, but they will go away soon. 29419 * CDROMs do not reserve any cylinders. 29420 */ 29421 29422 29423 /* 29424 * Format of a Sun disk label. 29425 * Resides in cylinder 0, head 0, sector 0. 29426 * 29427 * sizeof (struct dk_label) should be 512 (the current sector size), 29428 * but should the sector size increase, this structure should remain 29429 * at the beginning of the sector. 29430 */ 29431 29432 29433 29434 29435 29436 29437 29438 typedef daddr_t blkaddr_t; 29439 typedef daddr32_t blkaddr32_t; 29440 29441 29442 29443 /* 29444 * partition headers: section 1 29445 * Returned in struct dk_allmap by ioctl DKIOC[SG]APART (dkio(7I)) 29446 */ 29447 struct dk_map { 29448 blkaddr_t dkl_cylno; /* starting cylinder */ 29449 blkaddr_t dkl_nblk; /* number of blocks; if == 0, */ 29450 /* partition is undefined */ 29451 }; 29452 29453 /* 29454 * partition headers: section 1 29455 * Fixed size for on-disk dk_label 29456 */ 29457 struct dk_map32 { 29458 blkaddr32_t dkl_cylno; /* starting cylinder */ 29459 blkaddr32_t dkl_nblk; /* number of blocks; if == 0, */ 29460 /* partition is undefined */ 29461 }; 29462 29463 /* 29464 * partition headers: section 2, 29465 * brought over from AT&T SVr4 vtoc structure. 29466 */ 29467 struct dk_map2 { 29468 uint16_t p_tag; /* ID tag of partition */ 29469 uint16_t p_flag; /* permission flag */ 29470 }; 29471 29472 struct dkl_partition { 29473 uint16_t p_tag; /* ID tag of partition */ 29474 uint16_t p_flag; /* permision flags */ 29475 blkaddr32_t p_start; /* start sector no of partition */ 29476 blkaddr32_t p_size; /* # of blocks in partition */ 29477 }; 29478 29479 29480 /* 29481 * VTOC inclusions from AT&T SVr4 29482 * Fixed sized types for on-disk VTOC 29483 */ 29484 29485 struct dk_vtoc { 29486 29487 uint32_t v_bootinfo[3]; /* info for mboot (unsupported) */ 29488 uint32_t v_sanity; /* to verify vtoc sanity */ 29489 uint32_t v_version; /* layout version */ 29490 char v_volume[8]; /* volume name */ 29491 uint16_t v_sectorsz; /* sector size in bytes */ 29492 uint16_t v_nparts; /* number of partitions */ 29493 uint32_t v_reserved[10]; /* free space */ 29494 struct dkl_partition v_part[16]; /* partition headers */ 29495 time32_t timestamp[16]; /* partition timestamp (unsupported) */ 29496 char v_asciilabel[128]; /* for compatibility */ 29497 # 154 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 29498 }; 29499 29500 /* 29501 * define the amount of disk label padding needed to make 29502 * the entire structure occupy 512 bytes. 29503 */ 29504 # 178 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 29505 struct dk_label { 29506 29507 struct dk_vtoc dkl_vtoc; /* vtoc inclusions from AT&T SVr4 */ 29508 uint32_t dkl_pcyl; /* # of physical cylinders */ 29509 uint32_t dkl_ncyl; /* # of data cylinders */ 29510 uint16_t dkl_acyl; /* # of alternate cylinders */ 29511 uint16_t dkl_bcyl; /* cyl offset (for fixed head area) */ 29512 uint32_t dkl_nhead; /* # of heads */ 29513 uint32_t dkl_nsect; /* # of data sectors per track */ 29514 uint16_t dkl_intrlv; /* interleave factor */ 29515 uint16_t dkl_skew; /* skew factor */ 29516 uint16_t dkl_apc; /* alternates per cyl (SCSI only) */ 29517 uint16_t dkl_rpm; /* revolutions per minute */ 29518 uint16_t dkl_write_reinstruct; /* # sectors to skip, writes */ 29519 uint16_t dkl_read_reinstruct; /* # sectors to skip, reads */ 29520 uint16_t dkl_extra[4]; /* for compatible expansion */ 29521 char dkl_pad[(512 - ((sizeof (struct dk_vtoc) + (4 * sizeof (uint32_t)) + (12 * sizeof (uint16_t)) + (2 * (sizeof (uint16_t))))))]; /* unused part of 512 bytes */ 29522 # 217 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 29523 uint16_t dkl_magic; /* identifies this label format */ 29524 uint16_t dkl_cksum; /* xor checksum of sector */ 29525 }; 29526 # 238 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/dklabel.h" 29527 struct fk_label { /* DOS floppy label */ 29528 uchar_t fkl_type; 29529 uchar_t fkl_magich; 29530 uchar_t fkl_magicl; 29531 uchar_t filler; 29532 }; 29533 29534 /* 29535 * Layout of stored fabricated device id (on-disk) 29536 */ 29537 29538 29539 29540 29541 29542 struct dk_devid { 29543 uchar_t dkd_rev_hi; /* revision (MSB) */ 29544 uchar_t dkd_rev_lo; /* revision (LSB) */ 29545 uchar_t dkd_flags; /* flags (not used yet) */ 29546 uchar_t dkd_devid[((512) - ((sizeof (uchar_t) * 7)))]; /* devid stored here */ 29547 uchar_t dkd_checksum3; /* checksum (MSB) */ 29548 uchar_t dkd_checksum2; 29549 uchar_t dkd_checksum1; 29550 uchar_t dkd_checksum0; /* checksum (LSB) */ 29551 }; 29552 # 40 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 2 29553 29554 29555 29556 29557 29558 /* 29559 * Note: the VTOC is not implemented fully, nor in the manner 29560 * that AT&T implements it. AT&T puts the vtoc structure 29561 * into a sector, usually the second sector (pdsector is first). 29562 * 29563 * Sun incorporates the tag, flag, version, and volume vtoc fields into 29564 * its Disk Label, which already has some vtoc-equivalent fields. 29565 * Upon reading the vtoc with read_vtoc(), the following exceptions 29566 * occur: 29567 * v_bootinfo [all] returned as zero 29568 * v_sanity returned as VTOC_SANE 29569 * if Disk Label was sane 29570 * v_sectorsz returned as 512 29571 * v_reserved [all] retunred as zero 29572 * timestamp [all] returned as zero 29573 * 29574 * See dklabel.h, read_vtoc(), and write_vtoc(). 29575 */ 29576 29577 29578 /* (from dkio.h) */ 29579 29580 29581 29582 29583 29584 /* 29585 * Partition identification tags 29586 */ 29587 # 86 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 29588 /* Tags for EFI/GPT labels */ 29589 29590 29591 29592 29593 29594 29595 /* 29596 * Partition permission flags 29597 */ 29598 29599 29600 29601 /* 29602 * error codes for reading & writing vtoc 29603 */ 29604 29605 29606 29607 29608 29609 29610 29611 struct partition { 29612 ushort_t p_tag; /* ID tag of partition */ 29613 ushort_t p_flag; /* permission flags */ 29614 daddr_t p_start; /* start sector no of partition */ 29615 long p_size; /* # of blocks in partition */ 29616 }; 29617 29618 struct vtoc { 29619 unsigned long v_bootinfo[3]; /* info needed by mboot (unsupported) */ 29620 unsigned long v_sanity; /* to verify vtoc sanity */ 29621 unsigned long v_version; /* layout version */ 29622 char v_volume[8]; /* volume name */ 29623 ushort_t v_sectorsz; /* sector size in bytes */ 29624 ushort_t v_nparts; /* number of partitions */ 29625 unsigned long v_reserved[10]; /* free space */ 29626 struct partition v_part[16]; /* partition headers */ 29627 time_t timestamp[16]; /* partition timestamp (unsupported) */ 29628 char v_asciilabel[128]; /* for compatibility */ 29629 }; 29630 29631 struct extpartition { 29632 ushort_t p_tag; /* ID tag of partition */ 29633 ushort_t p_flag; /* permission flags */ 29634 ushort_t p_pad[2]; 29635 diskaddr_t p_start; /* start sector no of partition */ 29636 diskaddr_t p_size; /* # of blocks in partition */ 29637 }; 29638 29639 29640 struct extvtoc { 29641 uint64_t v_bootinfo[3]; /* info needed by mboot (unsupported) */ 29642 uint64_t v_sanity; /* to verify vtoc sanity */ 29643 uint64_t v_version; /* layout version */ 29644 char v_volume[8]; /* volume name */ 29645 ushort_t v_sectorsz; /* sector size in bytes */ 29646 ushort_t v_nparts; /* number of partitions */ 29647 ushort_t pad[2]; 29648 uint64_t v_reserved[10]; 29649 struct extpartition v_part[16]; /* partition headers */ 29650 uint64_t timestamp[16]; /* partition timestamp (unsupported) */ 29651 char v_asciilabel[128]; /* for compatibility */ 29652 }; 29653 # 334 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/sys/vtoc.h" 29654 /* 29655 * These defines are the mode parameter for the checksum routines. 29656 */ 29657 29658 29659 29660 extern int read_vtoc(int, struct vtoc *); 29661 extern int write_vtoc(int, struct vtoc *); 29662 extern int read_extvtoc(int, struct extvtoc *); 29663 extern int write_extvtoc(int, struct extvtoc *); 29664 # 33 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29665 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/limits.h" 1 29666 /* 29667 * CDDL HEADER START 29668 * 29669 * The contents of this file are subject to the terms of the 29670 * Common Development and Distribution License (the "License"). 29671 * You may not use this file except in compliance with the License. 29672 * 29673 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29674 * or http://www.opensolaris.org/os/licensing. 29675 * See the License for the specific language governing permissions 29676 * and limitations under the License. 29677 * 29678 * When distributing Covered Code, include this CDDL HEADER in each 29679 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29680 * If applicable, add the following below this CDDL HEADER, with the 29681 * fields enclosed by brackets "[]" replaced with your own identifying 29682 * information: Portions Copyright [yyyy] [name of copyright owner] 29683 * 29684 * CDDL HEADER END 29685 */ 29686 29687 /* 29688 * Copyright (c) 2013 Gary Mills 29689 * 29690 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 29691 * Use is subject to license terms. 29692 */ 29693 29694 /* Copyright (c) 1988 AT&T */ 29695 /* All Rights Reserved */ 29696 # 34 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29697 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/stdio.h" 1 29698 /* 29699 * CDDL HEADER START 29700 * 29701 * The contents of this file are subject to the terms of the 29702 * Common Development and Distribution License (the "License"). 29703 * You may not use this file except in compliance with the License. 29704 * 29705 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29706 * or http://www.opensolaris.org/os/licensing. 29707 * See the License for the specific language governing permissions 29708 * and limitations under the License. 29709 * 29710 * When distributing Covered Code, include this CDDL HEADER in each 29711 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29712 * If applicable, add the following below this CDDL HEADER, with the 29713 * fields enclosed by brackets "[]" replaced with your own identifying 29714 * information: Portions Copyright [yyyy] [name of copyright owner] 29715 * 29716 * CDDL HEADER END 29717 */ 29718 29719 /* 29720 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 29721 * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. 29722 */ 29723 29724 /* Copyright (c) 1988 AT&T */ 29725 /* All Rights Reserved */ 29726 29727 /* 29728 * User-visible pieces of the ANSI C standard I/O package. 29729 */ 29730 # 35 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29731 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkgstrct.h" 1 29732 /* 29733 * CDDL HEADER START 29734 * 29735 * The contents of this file are subject to the terms of the 29736 * Common Development and Distribution License (the "License"). 29737 * You may not use this file except in compliance with the License. 29738 * 29739 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29740 * or http://www.opensolaris.org/os/licensing. 29741 * See the License for the specific language governing permissions 29742 * and limitations under the License. 29743 * 29744 * When distributing Covered Code, include this CDDL HEADER in each 29745 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29746 * If applicable, add the following below this CDDL HEADER, with the 29747 * fields enclosed by brackets "[]" replaced with your own identifying 29748 * information: Portions Copyright [yyyy] [name of copyright owner] 29749 * 29750 * CDDL HEADER END 29751 */ 29752 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29753 /* All Rights Reserved */ 29754 29755 /* 29756 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 29757 * Use is subject to license terms. 29758 */ 29759 # 36 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29760 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/pkginfo.h" 1 29761 /* 29762 * CDDL HEADER START 29763 * 29764 * The contents of this file are subject to the terms of the 29765 * Common Development and Distribution License, Version 1.0 only 29766 * (the "License"). You may not use this file except in compliance 29767 * with the License. 29768 * 29769 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29770 * or http://www.opensolaris.org/os/licensing. 29771 * See the License for the specific language governing permissions 29772 * and limitations under the License. 29773 * 29774 * When distributing Covered Code, include this CDDL HEADER in each 29775 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29776 * If applicable, add the following below this CDDL HEADER, with the 29777 * fields enclosed by brackets "[]" replaced with your own identifying 29778 * information: Portions Copyright [yyyy] [name of copyright owner] 29779 * 29780 * CDDL HEADER END 29781 */ 29782 /* 29783 * Copyright 2014 Garrett D'Amore <garrett@damore.org> 29784 */ 29785 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29786 /* All Rights Reserved */ 29787 # 37 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29788 # 1 "/home/git3/dehawe/titanic_53/proto/root_i386/usr/include/valtools.h" 1 29789 /* 29790 * CDDL HEADER START 29791 * 29792 * The contents of this file are subject to the terms of the 29793 * Common Development and Distribution License, Version 1.0 only 29794 * (the "License"). You may not use this file except in compliance 29795 * with the License. 29796 * 29797 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29798 * or http://www.opensolaris.org/os/licensing. 29799 * See the License for the specific language governing permissions 29800 * and limitations under the License. 29801 * 29802 * When distributing Covered Code, include this CDDL HEADER in each 29803 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29804 * If applicable, add the following below this CDDL HEADER, with the 29805 * fields enclosed by brackets "[]" replaced with your own identifying 29806 * information: Portions Copyright [yyyy] [name of copyright owner] 29807 * 29808 * CDDL HEADER END 29809 */ 29810 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29811 /* All Rights Reserved */ 29812 29813 29814 29815 29816 29817 #pragma ident "%Z%%M% %I% %E% SMI" 29818 29819 29820 29821 29822 29823 struct _choice_ { 29824 char *token; 29825 char *text; 29826 struct _choice_ *next; 29827 }; 29828 29829 struct _menu_ { 29830 char *label; 29831 int attr; 29832 short longest; 29833 short nchoices; 29834 struct _choice_ 29835 *choice; 29836 char **invis; 29837 }; 29838 29839 typedef struct _menu_ CKMENU; 29840 # 38 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29841 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/install.h" 1 29842 /* 29843 * CDDL HEADER START 29844 * 29845 * The contents of this file are subject to the terms of the 29846 * Common Development and Distribution License (the "License"). 29847 * You may not use this file except in compliance with the License. 29848 * 29849 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 29850 * or http://www.opensolaris.org/os/licensing. 29851 * See the License for the specific language governing permissions 29852 * and limitations under the License. 29853 * 29854 * When distributing Covered Code, include this CDDL HEADER in each 29855 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 29856 * If applicable, add the following below this CDDL HEADER, with the 29857 * fields enclosed by brackets "[]" replaced with your own identifying 29858 * information: Portions Copyright [yyyy] [name of copyright owner] 29859 * 29860 * CDDL HEADER END 29861 */ 29862 29863 /* 29864 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 29865 * Use is subject to license terms. 29866 */ 29867 29868 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 29869 /* All Rights Reserved */ 29870 # 39 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 2 29871 # 47 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/libadm.h" 29872 /* 29873 * ckdate.c 29874 */ 29875 extern int ckdate_err (char *fmt, char *error); 29876 extern int ckdate_hlp (char *fmt, char *help); 29877 extern int ckdate_val (char *fmt, char *input); 29878 extern int ckdate (char *date, char *fmt, char *defstr, char *error, char *help, char *prompt); 29879 29880 29881 /* 29882 * ckgid.c 29883 */ 29884 extern int ckgid_dsp (void); 29885 extern int ckgid_val (char *grpnm); 29886 extern int ckgrpfile (void); 29887 extern void ckgid_err (int disp, char *error); 29888 extern void ckgid_hlp (int disp, char *help); 29889 extern int ckgid (char *gid, short disp, char *defstr, char *error, char *help, char *prompt); 29890 29891 29892 /* 29893 * ckint.c 29894 */ 29895 extern int ckint_val (char *value, short base); 29896 extern void ckint_err (short base, char *error); 29897 extern void ckint_hlp (short base, char *help); 29898 extern int ckint (long *intval, short base, char *defstr, char *error, char *help, char *prompt); 29899 29900 29901 /* 29902 * ckitem.c 29903 */ 29904 extern CKMENU *allocmenu (char *label, int attr); 29905 extern void ckitem_err (CKMENU *menup, char *error); 29906 extern void ckitem_hlp (CKMENU *menup, char *help); 29907 extern int ckitem (CKMENU *menup, char *item[], short max, char *defstr, char *error, char *help, char *prompt); 29908 29909 29910 extern int setitem (CKMENU *menup, char *choice); 29911 extern int setinvis (CKMENU *menup, char *choice); 29912 extern void printmenu (CKMENU *menup); 29913 29914 /* 29915 * ckkeywd.c 29916 */ 29917 extern int ckkeywd (char *strval, char *keyword[], char *defstr, char *error, char *help, char *prompt); 29918 29919 29920 /* 29921 * ckpath.c 29922 */ 29923 extern int ckpath_stx (int pflags); 29924 extern int ckpath_val (char *path, int pflags); 29925 extern void ckpath_err (int pflags, char *error, char *input); 29926 extern void ckpath_hlp (int pflags, char *help); 29927 extern int ckpath (char *pathval, int pflags, char *defstr, char *error, char *help, char *prompt); 29928 29929 29930 /* 29931 * ckrange.c 29932 */ 29933 extern void ckrange_err (long lower, long upper, int base, char *error); 29934 29935 extern void ckrange_hlp (long lower, long upper, int base, char *help); 29936 extern int ckrange_val (long lower, long upper, int base, char *input); 29937 29938 extern int ckrange (long *rngval, long lower, long upper, short base, char *defstr, char *error, char *help, char *prompt); 29939 29940 29941 29942 /* 29943 * ckstr.c 29944 */ 29945 extern int ckstr_val (char *regexp[], int length, char *input); 29946 extern void ckstr_err (char *regexp[], int length, char *error, char *input); 29947 29948 extern void ckstr_hlp (char *regexp[], int length, char *help); 29949 extern int ckstr (char *strval, char *regexp[], int length, char *defstr, char *error, char *help, char *prompt); 29950 29951 29952 29953 /* 29954 * cktime.c 29955 */ 29956 extern int cktime_val (char *fmt, char *input); 29957 extern int cktime_err (char *fmt, char *error); 29958 extern int cktime_hlp (char *fmt, char *help); 29959 extern int fmtcheck (char *fmt); 29960 extern int cktime (char *tod, char *fmt, char *defstr, char *error, char *help, char *prompt); 29961 29962 29963 /* 29964 * ckuid.c 29965 */ 29966 extern int ckuid_dsp (void); 29967 extern int ckuid_val (char *usrnm); 29968 extern int ckpwdfile (void); 29969 extern void ckuid_err (short disp, char *error); 29970 extern void ckuid_hlp (int disp, char *help); 29971 extern int ckuid (char *uid, short disp, char *defstr, char *error, char *help, char *prompt); 29972 29973 29974 /* 29975 * ckyorn.c 29976 */ 29977 extern int ckyorn_val (char *str); 29978 extern void ckyorn_err (char *error); 29979 extern void ckyorn_hlp (char *help); 29980 extern int ckyorn (char *yorn, char *defstr, char *error, char *help, char *prompt); 29981 29982 29983 /* 29984 * devattr.c 29985 */ 29986 extern char *devattr (char *device, char *attribute); 29987 29988 /* 29989 * devreserv.c 29990 */ 29991 extern char *_rsvtabpath (void); 29992 extern int _openlkfile (void); 29993 extern int _closelkfile (void); 29994 extern int unreserv (long key, char *device); 29995 extern char **devreserv (long key, char **rsvlst[]); 29996 extern int devfree (long key, char *device); 29997 extern struct reservdev **reservdev (void); 29998 29999 /* 30000 * devtab.c 30001 */ 30002 extern void _setdevtab (void); 30003 extern void _enddevtab (void); 30004 extern char *_devtabpath (void); 30005 extern int _opendevtab (char *mode); 30006 extern int _validalias (char *alias); 30007 extern struct devtabent *_getdevtabent (void); 30008 extern void _freedevtabent (struct devtabent *ent); 30009 extern struct devtabent *_getdevrec (char *device); 30010 30011 /* 30012 * dgrpent.c 30013 */ 30014 extern void _setdgrptab (void); 30015 extern void _enddgrptab (void); 30016 extern char *_dgrptabpath (void); 30017 extern int _opendgrptab (char *mode); 30018 extern struct dgrptabent *_getdgrptabent (void); 30019 extern void _freedgrptabent (struct dgrptabent *ent); 30020 extern struct dgrptabent *_getdgrprec (char *dgroup); 30021 30022 /* 30023 * fulldevnm.c 30024 */ 30025 extern char *getfullblkname (char *cp); 30026 extern char *getfullrawname (char *cp); 30027 30028 /* 30029 * getdev.c 30030 */ 30031 extern char **getdev (char **devices, char **criteria, int options); 30032 30033 /* 30034 * getdgrp.c 30035 */ 30036 extern char **getdgrp (char **dgroups, char **criteria, int options); 30037 30038 /* 30039 * getinput.c 30040 */ 30041 extern int getinput (char *s); 30042 30043 /* 30044 * getvol.c 30045 */ 30046 extern int getvol (char *device, char *label, int options, char *prompt); 30047 30048 extern int _getvol (char *device, char *label, int options, char *prompt, char *norewind); 30049 30050 extern void doremovecmd (char *device, int echo); 30051 30052 /* 30053 * listdev.c 30054 */ 30055 extern char **listdev (char *device); 30056 30057 /* 30058 * listdgrp.c 30059 */ 30060 extern char **listdgrp (char *dgroup); 30061 30062 /* 30063 * memory.c 30064 */ 30065 extern long sysmem (void); 30066 extern long asysmem (void); 30067 30068 /* 30069 * pkginfo.c 30070 */ 30071 extern int pkginfo (struct pkginfo *info, char *pkginst, ...); 30072 extern int fpkginfo (struct pkginfo *info, char *pkginst); 30073 extern char *fpkginst (char *pkg, ...); 30074 30075 /* 30076 * pkgnmchk.c 30077 */ 30078 extern int pkgnmchk (register char *pkg, register char *spec, int presvr4flg); 30079 30080 extern void set_ABI_namelngth (void); 30081 extern int get_ABI_namelngth (void); 30082 30083 /* 30084 * pkgparam.c 30085 */ 30086 extern char *fpkgparam (FILE *fp, char *param); 30087 extern char *pkgparam (char *pkg, char *param); 30088 extern void set_PKGpaths (char *path); 30089 extern char *get_PKGLOC (void); 30090 extern char *get_PKGADM (void); 30091 extern void set_PKGADM(char *newpath); 30092 extern void set_PKGLOC(char *newpath); 30093 30094 /* 30095 * putdev.c 30096 */ 30097 extern int _putdevtabrec (FILE *stream, struct devtabent *rec); 30098 extern int _adddevtabrec (char *alias, char **attrval); 30099 extern int _moddevtabrec (char *device, char **attrval); 30100 extern int _rmdevtabrec (char *device); 30101 extern int _rmdevtabattrs (char *device, char **attributes, char ***notfounds); 30102 30103 30104 /* 30105 * putdgrp.c 30106 */ 30107 extern int _putdgrptabrec (FILE *stream, struct dgrptabent *rec); 30108 extern int _adddgrptabrec (char *dgrp, char **members); 30109 extern int _rmdgrptabrec (char *dgrp); 30110 extern int _rmdgrpmems (char *dgrp, char **mems, char ***notfounds); 30111 30112 /* 30113 * puterror.c 30114 */ 30115 extern void puterror (FILE *fp, char *defmesg, char *error); 30116 30117 /* 30118 * puthelp.c 30119 */ 30120 extern void puthelp (FILE *fp, char *defmesg, char *help); 30121 30122 /* 30123 * putprmpt.c 30124 */ 30125 extern void putprmpt (FILE *fp, char *prompt, char *choices[], char *defstr); 30126 30127 30128 /* 30129 * puttext.c 30130 */ 30131 extern int puttext (FILE *fp, char *str, int lmarg, int rmarg); 30132 30133 /* 30134 * rdwr_vtoc.c 30135 */ 30136 extern int read_vtoc (int fd, struct vtoc *vtoc); 30137 extern int write_vtoc (int fd, struct vtoc *vtoc); 30138 # 54 "setup_temporary_directory.c" 2 30139 # 1 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 1 30140 /* 30141 * CDDL HEADER START 30142 * 30143 * The contents of this file are subject to the terms of the 30144 * Common Development and Distribution License (the "License"). 30145 * You may not use this file except in compliance with the License. 30146 * 30147 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 30148 * or http://www.opensolaris.org/os/licensing. 30149 * See the License for the specific language governing permissions 30150 * and limitations under the License. 30151 * 30152 * When distributing Covered Code, include this CDDL HEADER in each 30153 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 30154 * If applicable, add the following below this CDDL HEADER, with the 30155 * fields enclosed by brackets "[]" replaced with your own identifying 30156 * information: Portions Copyright [yyyy] [name of copyright owner] 30157 * 30158 * CDDL HEADER END 30159 */ 30160 30161 /* 30162 * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. 30163 */ 30164 30165 30166 30167 30168 30169 /* 30170 * Module: messages 30171 * Group: pkg commands 30172 * Description: l10n strings for all pkg commands 30173 */ 30174 # 44 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30175 /* BEGIN CSTYLED */ 30176 30177 /* 30178 * I18N: these messages are questions asked of the user 30179 */ 30180 # 57 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30181 /* 30182 * I18N: these messages are debugging message and are only displayed 30183 * when special debugging output has been enabled - these messages 30184 * will never be displayed during normal product usage 30185 */ 30186 # 401 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30187 /* 30188 * I18N: these messages are error messages that can be displayed 30189 * during the normal usage of the products 30190 */ 30191 # 675 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30192 /* 30193 * I18N: these messages are help messages that are displayed when the 30194 * user answers a question with "?" - asking for help to be displayed 30195 */ 30196 # 852 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30197 /* 30198 * These messages are output by qreason() - they are the "reason" 30199 * for the success/fail of the operation 30200 */ 30201 # 980 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30202 /* WITH ZONE NAME */ 30203 # 1175 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30204 /* 30205 * I18N: MSG_GZONLY_FILE_HEADER must NOT be translated! 30206 * ----- This message is placed at the beginning of an internal (private) 30207 * ----- database file. The contents of the message is a warning telling 30208 * ----- anyone who examines the contents of the database to not modify the 30209 * ----- database manually (by hand). 30210 * ----- Do NOT change or translate this text! 30211 */ 30212 # 1191 "/home/git3/dehawe/titanic_53/usr/src/cmd/svr4pkg/hdrs/messages.h" 30213 /* END CSTYLED */ 30214 # 55 "setup_temporary_directory.c" 2 30215 30216 /* 30217 * Name: setup_temporary_directory 30218 * Description: create a temporary directory from specified components 30219 * and return full path to the directory created 30220 * Arguments: r_dirname - pointer to handle to string - on success, 30221 * the full path to the temporary directory created 30222 * is returned in this handle 30223 * a_tmpdir - pointer to string representing the directory into 30224 * which the new temporary directory should be created 30225 * a_suffix - pointer to string representing the 5-character 30226 * suffix to be used as the first part of the temporary 30227 * directory name invented 30228 * Returns: boolean_t 30229 * == B_TRUE - temporary directory created, path returned 30230 * == B_FALSE - failed to create temporary directory 30231 * 'errno' is set to the failure reason 30232 * NOTE: Any path returned is placed in new storage for the 30233 * calling function. The caller must use 'free' to dispose 30234 * of the storage once the path is no longer needed. 30235 */ 30236 30237 boolean_t 30238 setup_temporary_directory(char **r_dirname, char *a_tmpdir, char *a_suffix) 30239 { 30240 char *dirname; 30241 30242 /* entry assertions */ 30243 30244 (void)((a_tmpdir != (char *)0) || (__assert("a_tmpdir != (char *)NULL", "setup_temporary_directory.c", 84), 0)); 30245 30246 /* error if no pointer provided to return temporary name in */ 30247 30248 if (r_dirname == (char **)0) { 30249 (*(___errno())) = 14; /* bad address */ 30250 return (B_FALSE); 30251 } 30252 30253 /* generate temporary directory name */ 30254 30255 dirname = tempnam(a_tmpdir, a_suffix); 30256 if (dirname == (char *)0) { 30257 return (B_FALSE); 30258 } 30259 30260 /* create the temporary directory */ 30261 30262 if (mkdir(dirname, 0755) != 0) { 30263 return (B_FALSE); 30264 } 30265 30266 echoDebug(gettext("created temporary directory <%s>"), dirname); 30267 30268 *r_dirname = dirname; 30269 30270 return (B_TRUE); 30271 } 30272