throbber
Petitioner Oracle-Apple — Exhibit 1010 — Page 186
`
`#ifdef PTMX
`
`getmaster()
`
`{
`
`if ((master = open("/dev/ptmx", O_RDWR)) == -1)
`return (-1);
`
`if ((s1ave_name =
`
`(char *)ptsname(master)) == NULL ||
`
`un1ockpt(master)
`
`grantpt(master))
`c1ose(master);
`
`||
`
`{
`
`fai1();
`
`} (
`
`void)
`
`ioct1(master, TIOCFLUSH, NULL);
`
`tcgetattr(O. &tt);
`(void)
`(Void)
`ioct1(O, TIOCGWINSZ,
`
`(char *)&win);
`
`} g
`
`{
`
`ets1ave()
`
`(void) setsid();
`
`if ((s1ave = open(s1ave_name, O_RDWR))
`fai1();
`
`< O)
`
`{
`
`I_PUSH, "ptem"))
`
`{
`
`I_PUSH, "1dterm"))
`
`{
`
`I_PUSH, "ttcompat"))
`
`{
`
`if (ioct1(s1ave,
`fai1();
`
`} i
`
`f (ioct1(s1ave,
`fai1();
`
`} i
`
`f (ioct1(s1aVe,
`fai1();
`
`}
`
`}
`(void)
`
`tcsetattr(s1ave, TCSAFLUSH, &tt);
`
`(void)
`
`ioct1(s1ave, TIOCSWINSZ,
`
`(char *)&win);
`
`} #
`
`e1se
`
`getmaster()
`
`{
`
`char *pty, *bank, *cp;
`struct stat stb;
`
`pty = &1ine[str1en("/dev/ptyp")];
`
`for (bank = "pqrstuvwxyz"; *bank; bank++)
`1ine[str1en("/dev/pty")] = *bank;
`*pty =
`'0';
`if (stat(1ine, &stb)
`break;
`
`< 0)
`
`{
`
`for (cp = "Ol23456789abcdef"; *cp; cp++)
`*pty = *cp:
`
`{
`
`master = open(1ine, O_RDWR);
`
`{
`if (master >= 0)
`char *tp = &1ine[str1en("/dev/")1;
`
`int Ok’
`
`EXNbflD
`
`

`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 187
`
`/* verify slave side is usable */
`*tp =
`'t';
`
`ok = access(1ine, R_OK|W_OK) == 0;
`*tp =
`'p';
`
`{
`if (ok)
`tcgetattr(O. &tt);
`(void)
`(Void)
`ioCt1(O, TIOCGWINSZ,
`
`(char *)&win);
`return;
`
`}
`(void) c1ose(master);
`
`"Out of pty's\n");
`
`}
`
`}
`
`} f
`
`fprintf(stderr,
`ai1();
`
`} g
`
`{
`
`ets1ave()
`
`1ine[str1en("/dev/")] =
`
`'t';
`
`slave = open(1ine, O_RDWR);
`
`{
`if (slave < O)
`perror(1ine);
`fai1();
`
`}
`(void)
`
`tcsetattr(s1ave, TCSAFLUSH, &tt);
`
`(void)
`
`ioct1(s1ave, TIOCSWINSZ,
`
`(char *)&win);
`
`(void) setsid();
`
`(void)
`
`ioct1(s1ave, TIOCSCTTY, O);
`
`} #
`
`endif
`
`waitenter()
`
`{
`
`} s
`
`{
`
`}
`
`unsigned char b;
`
`do {
`
`read(O.&b.1);
`
`} while (b!='\r');
`printf("\r\n");
`
`endhex(fp,c)
`
`FILE *fp;
`
`unsigned int c;
`
`static char buf[l6];
`
`sprintf(buf,"%O2x",c);
`
`bwrite(fp,buf,2);
`
`EXNbflD
`
`

`
`esm.h
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 188
`
`

`
`The author of this software is Matt Blaze.
`
`Perm
`
`Copyright
`COPY.
`ission to use,
`
`(c)
`
`1995 by AT&T.
`
`and modify this software without fee
`
`is hereby granted, provided that this entire notice is included in
`
`all copies of any software which is or includes a copy or
`
`modification of this software and in all copies of the supporting
`documentation for such software.
`
`This software is subject to United States export controls.
`
`THIS SOFTWARE IS BEING PROVIDED
`
`HAS Isl! I
`
`WITHOUT ANY EXPRESS OR IMPLIED
`
`WARRANTY.
`
`IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
`REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
`
`OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
`
`typedef
`cha
`
`struct {
`r ekl[l28];
`
`cha
`
`cha
`
`} keyst
`extern
`
`r ek2[l28];
`
`r ek3[l28];
`I7
`
`keystr ks;
`
`extern unsigned char check[8];
`
`unsigned int cfb8_encrypt();
`
`unsigned int cfb8_decrypt();
`extern
`R_RANDOM_STRUCT rs ;
`
`extern
`
`extern
`
`extern
`
`extern
`
`extern
`
`R_DH_PARAMS dhparams[];
`iVin[],
`iVout[];
`unsigned char
`
`unsigned char
`
`otherpub[];
`
`unsigned char
`
`ourpub[];
`
`unsigned char
`
`ourpriv[];
`
`extern int ourprivlen;
`extern
`
`int pklen;
`
`#define
`
`#define
`
`#define
`
`SHORT O
`
`MEDIUM 1
`
`LONG 2
`
`#define
`
`MAXPUBKEY 512
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 189
`
`

`
`esm_cipher.c
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 190
`
`

`
`/*
`
`* ESM crypto interface
`* V0.6
`
`*/
`
`/*
`* The author of this software is Matt Blaze.
`
`*
`
`Copyright
`
`(c) 1995 by AT&T.
`
`* Permission to use, Copy, and modify this software without fee
`
`* is hereby granted, provided that this entire notice is included in
`
`* all copies of any software which is or includes a copy or
`
`* modification of this software and in all copies of the supporting
`* documentation for such software.
`
`* This software is subject to United States export controls.
`
`* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
`
`IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
`* WARRANTY.
`* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
`
`* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
`
`*/
`#include <stdio.h>
`
`#include <sys/types.h>
`
`#include <sys/time.h>
`#include <signal.h>
`
`#inc1ude "global.h"
`#include "rsaref.h"
`
`#include "esm.h"
`
`unsigned char check[8];
`
`unsigned char skeyl[8];
`
`unsigned char skey2[8];
`
`unsigned char skey3[8];
`
`unsigned char mkeyl[8];
`
`unsigned char mkey2[8];
`
`unsigned char mkey3[8];
`
`unsigned char ivin[8];
`
`unsigned char iVout[8];
`
`R_RANDOM_STRUCT rs ;
`
`R_DH_PARAMs dhparams[3];
`
`unsigned char otherpub[MAXPUBKEY+2];
`
`unsigned char ourpub[MAXPUBKEY+2];
`
`unsigned char ourpriv[MAXPUBKEY];
`
`int ourprivlen;
`
`int pklen;
`
`keystr inks, outks;
`
`cipherinit(master)
`int master;
`
`{
`
`{
`if (master)
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 191
`
`

`
`des_key_setup(skeyl,inks.ek1);
`
`des_key_setup(skey2,inks.ek2);
`
`des_key_setup(skey3,inks.ek3);
`
`des_key_setup(mkeyl,outks.ekl);
`
`des_key_setup(mkey2,outks.ek2);
`
`des_key_setup(mkey3,outks.ek3);
`
`} else {
`des_key_setup(skeyl,outks.ekl);
`
`des_key_setup(skey2,outks.ek2);
`
`des_key_setup(skey3,outks.ek3);
`
`des_key_setup(mkeyl,inks.ekl);
`
`des_key_setup(mkey2,inks.ek2);
`
`des_key_setup(mkey3,inks.ek3);
`
`/* 8 bit Cfb encrypt */
`
`unsigned int Cfb8_enCrypt(C)
`unsigned int C;
`
`int i;
`
`Char b1k[8];
`
`for (i=0;
`
`i<8;
`
`i++)
`
`b1k[i]=ivout[i];
`
`des_b1oCk_Cipher(outks.ekl,b1k,O);
`
`des_b1oCk_Cipher(outks.ek2,b1k,1);
`
`des_b1oCk_Cipher(outks.ek3,b1k,O);
`for (i=0;
`i<7;
`i++)
`
`iVout[i]=iVout[i+l];
`
`= b1k[O]
`iVout[7]
`return (ivout[7]);
`
`A C;
`
`/*
`
`*
`*/
`
`8 bit Cfb decrypt
`
`unsigned int Cfb8_deCrypt(C)
`unsigned int C;
`
`int i;
`
`unsigned Char b1k[8];
`
`for (i=0;
`
`i<8;
`
`i++)
`
`b1k[i]=ivin[i];
`
`des_b1oCk_Cipher(inks.ekl,b1k,O);
`
`des_b1oCk_Cipher(inks.ek2,b1k,1);
`
`des_b1oCk_Cipher(inks.ek3,b1k,O);
`for (i=0;
`i<7;
`i++)
`
`ivin[i]=ivin[i+1];
`
`iVin[7]
`
`= C;
`
`return (b1k[O]
`
`A C);
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 192
`
`

`
`* alpha —> hex; used for encoding
`
`(ascii only — bfd)
`
`*
`*/
`int atoh(ch)
`
`int Ch;
`
`if (isdigit(ch))
`return ch—'O';
`
`if (islower(ch))
`
`return lO+ch—'a';
`
`if (isupper(ch))
`return lO+ch—'A';
`
`else
`
`return -1;
`
`/*???*/
`
`int count=O;
`
`int secs;
`
`unsigned int bits;
`
`void procbit()
`
`{
`
`secs--;
`
`bits |= ((count ‘
`
`(count>>4)) & Oxf)<<(secs*4);
`
`{
`if (secs)
`alarm(l);
`
`signal(SIGALRM,procbit);
`
`getuid();
`
`/* do a syscall to slow things a bit */
`
`int verbose=l;
`
`/*
`
`* init the random number generator — seed with
`* truerandbits.
`
`* Use a combination of OS load and processor clock skew to get
`
`* enough entropy to generate the secret parameter
`
`(we only need a
`
`* total of 128 or so bits, so we just get more than we need to
`
`* compensate for any non-randomness).
`
`* WARNING: use oldrand()
`
`(below) on new platforms
`
`* if you aren't sure about truerand().
`*/
`randinit()
`
`{
`
`unsigned int n;
`int i;
`
`struct timeval tv;
`
`unsigned long truerand();
`
`unsigned char b[20];
`
`R_RandomInit(&rs);
`
`{
`if (verbose)
`fprintf(stderr,"randomizing...");
`fflush(stderr);
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 193
`}
`/* we just grab 160 truerand bits and keep feeding them
`EXNbflD
`
`

`
`over and over to R_RandomUpdate until it's happy */
`
`i++)
`i<20;
`for (i=0;
`b[i]=randbyte();
`
`{
`
`fprintf(stderr,".");
`
`} w
`
`hile (R_GetRandomBytesNeeded(&n,&rs),
`R_RandomUpdate(&rs,b,sizeof(b));
`
`(n>O))
`
`{
`
`} i
`
`{
`f (verbose)
`fprintf(stderr,"done\n");
`fflush(stderr);
`
`* OLD CODE HERE.
`
`NOT CALLED.
`
`* generate 8 random clock skew bits
`
`* we don't use this anymore..
`
`instead we generate more
`
`* bits using the mitchell code.
`
`* modify the code to use this instead if you don't trust
`
`the higher—bandwidth mitchell numbers.
`
`*
`*/
`int rnd8()
`
`{
`
`secs=2;
`
`bits=O;
`
`signal(SIGALRM,procbit);
`alarm(l);
`
`getpid();
`while (secs)
`Count++;
`
`return bits;
`
`* OLD CODE HERE.
`
`NOT CALLED.
`
`* this is the old, slow but simple truerand routine
`
`* you should change the code use this on new platforms instead of
`*
`the "randinit" above.
`
`*/
`oldrandinit()
`
`{
`
`unsigned int n;
`
`unsigned char b[l8];
`struct timeval tv;
`
`R_RandomInit(&rs);
`
`/* but we ignore */
`R_GetRandomBytesNeeded(&n,&rs);
`/* RSAREF wants 256 bytes, which is an awful lot at 4bps.
`
`we
`
`really only need enough to do justice to the entropy of
`
`the block cipher (3des), so we just generate 18. */
`
`if (verbose)
`
`fprintf (stderr, "Randomizing (takes about 45 secs) Peflfigfier Orac|e_App|e _ EXhibit1010 _ Page194
`fflush(stderr);
`EXMDHD
`
`

`
`for (n=O; n<18; n++)
`b[n]=rnd8( );
`
`{
`
`if (verbose && (n%4==3))
`fprintf(stderr,".");
`ff1ush(stderr);
`
`{
`
`} w
`
`hile (R_GetRandomBytesNeeded(&n,&rs),
`
`(n>O))
`
`{
`
`R_RandomUpdate(&rs,b,l8);
`if (verbose)
`
`fprintf(stderr,".");
`
`}
`/* Just for good measure, we throw in a couple other things */
`
`n=getpid();
`
`R_RandomUpdate(&rs,(unsigned char*)&n,sizeof(n));
`gettimeofday(&tv,NULL);
`
`R_RandomUpdate(&rs,(unsigned char*)&tv,sizeof(tv));
`if (verbose)
`
`fprintf(stderr,"done\n");
`
`#define
`
`#define
`
`#define
`
`#define
`
`#define
`
`#define
`
`#define
`
`#define
`
`BLANKLINE
`
`0
`
`TERM 1
`
`NONE 2
`
`SHORTKEY 3
`MEDKEY 4
`
`LONGKEY 5
`
`HEX 6
`FILENAME 7
`
`int size[3];
`
`int keysize=O;
`
`getpubkey()
`
`{
`
`fprintf(stderr,"Calculator not
`return;
`
`implemented,
`
`sorry\n");
`
`createdh(param)
`
`int param;
`
`int 67
`
`if ((param<O)
`return -1;
`
`||
`
`(param>2))
`
`ourpriv1en=(dhparams[param].generatorLen)/2;
`
`/* from gen'd params */
`
`if ((e=R_SetupDHAgreement(ourpub, ourpriv, ourprivlen,
`
`&dhparams[param], &rs))!=O)
`
`{
`
`return -1;
`
`}
`re turn 0 7
`
`dhagree(param,master)
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 195
`
`

`
`int param;
`int master;
`
`unsigned char buf[MAXPUBKEY];
`int i;
`
`if ((param<O)
`return -1;
`
`||
`
`(param>2))
`
`if (R_ComputeDHAgreedKey(buf,otherpub,ourpriv,ourpriv1en,
`&dhparams[param])
`!= 0)
`return -1;
`
`{
`i++)
`i<8;
`for (i=0;
`mkeyl[i]
`= buf[i];
`
`/* always have enough agreed bits */
`
`mkey2[i]
`
`= buf[i+8];
`
`mkey3[i]
`
`= buf[i+l6];
`
`skeyl[i] = buf[24+i];
`
`skey2[i]
`
`= buf[24+i+8];
`
`skey3[i]
`check[i]
`
`= buf[24+i+l6];
`= buf[32+i];
`
`} c
`
`ipherinit(master);
`return 0;
`
`{
`
`}
`
`de1key()
`
`{ }
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 196
`
`

`
`esm_gen.c
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 197
`
`

`
`/9:
`
`* ESM DH parameter generator
`
`* The author of this software is Matt Blaze.
`
`Copyright
`(c) 1995 by AT&T.
`*
`COPY.
`* Permission to use,
`
`and modify this software without fee
`
`* is hereby granted, provided that this entire notice is included in
`
`* all copies of any software which is or includes a copy or
`
`* modification of this software and in all copies of the supporting
`* documentation for such software.
`
`* This software is subject to United States export controls.
`
`* WARRANTY.
`
`* THIS SOFTWARE IS BEING PROVIDED
`
`HAS Isl! I WITHOUT ANY EXPRESS OR IMPLIED
`IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
`* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
`
`* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
`
`#include
`
`<stdio.h>
`
`#include
`
`#include
`
`"global.h"
`"rsaref.h"
`
`#include "esm.h"
`
`main()
`
`{
`
`R_DH_PARAMS dhparams[3];
`unsigned char pO[5l2],pl[5l2],p2[5l2],g0[5l2],gl[5l2],g2[5l2];
`int x;
`
`randinit();
`
`fprintf(stderr,"Generating 512\n");
`
`dhparams[O].prime=pO;
`
`dhparams[0].generator=gO;
`
`if (x=R_GenerateDHParams(&dhparams[O],5l2,256,&rs))
`fprintf(stderr,"failed %x\n",x);
`
`fprintf(stderr,"Generating 768\n");
`dhparams[l].prime=pl;
`
`dhparams[l].generator=gl;
`
`if (x=R_GenerateDHParams(&dhparams[1],768,384,&rs))
`fprintf(stderr,"failed %x\n",x);
`
`fprintf(stderr,"Generating l024\n");
`
`dhparams[2].prime=p2;
`
`dhparams[2].generator=g2;
`
`if (x=R_GenerateDHParams(&dhparams[2],lO24,5l2,&rs))
`fprintf(stderr,"failed %x\n",x);
`
`fprintf(stderr,"Printing\n");
`
`printparams(dhparams);
`exit(O);
`
`printparams(dh)
`
`R_DH_PARAMS *dh;
`EXMDHD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 198
`
`

`
`int 1,3";
`
`printf("#inc1ude \"g1oba1.h\"\n");
`
`printf("#inc1ude \"rsaref.h\"\n");
`
`for (j=O;
`
`j<3;
`
`j++)
`
`{
`
`printf("static unsigned char p%d[]
`
`= {\n",j);
`
`i++)
`(dh[j].primeLen—l);
`i <
`for (i=0;
`printf(" Ox%O2x,",dh[j].prime[i]);
`if (i%6 == 5)
`
`{
`
`printf("\n");
`
`} p
`
`rintf(" Ox%O2x};\n",dh[j].prime[i]);
`
`printf("static unsigned char g%d[]
`
`= {\n",j);
`
`i++)
`(dh[j].generatorLen-1);
`i <
`for (i=0;
`printf(" Ox%O2x,",dh[j].generator[i]);
`if (i%6 == 5)
`
`{
`
`printf("\n");
`
`} p
`
`rintf(" Ox%O2x};\n",dh[j].generator[i]);
`
`} p
`
`rintf("\nR_DH_PARAMS dhparams[3]
`
`= {\n");
`
`for (j=O;
`
`j<3;
`
`j++)
`
`{
`
`printf(" {p%d, %d, g%d, %d}%s\n",j,dh[j].primeLen,
`
`j, dh[j].generatorLen,
`
`j== ?"};":",");
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 199
`
`

`
`getpass. C
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 200
`
`

`
`adapted from d. mitchell's code */
`
`includes code derived from the ucb getpass */
`
`Copyright
`
`(c)
`
`1988 The Regents of the University of California.
`
`All rights reserved.
`
`Redistribution and use in source and binary forms, with or without
`
`modification, are permitted provided that the following conditions
`are met:
`
`1. Redistributions of source code must retain the above copyright
`
`notice,
`
`this list of conditions and the following disclaimer.
`
`2. Redistributions in binary form must reproduce the above copyright
`
`notice,
`
`this list of conditions and the following disclaimer in the
`
`documentation and/or other materials provided with the distribution.
`
`3. All advertising materials mentioning features or use of this software
`
`must display the following acknowledgement:
`
`This product includes software developed by the University of
`
`California, Berkeley and its contributors.
`
`4. Neither the name of the University nor the names of its contributors
`
`may be used to endorse or promote products derived from this software
`
`without specific prior written permission.
`
`THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ‘OAS IS" AND
`
`INCLUDING, BUT NOT LIMITED TO, THE
`ANY EXPRESS OR IMPLIED WARRANTIES,
`IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
`
`ARE DISCLAIMED.
`
`IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
`
`FOR ANY DIRECT,
`
`INDIRECT,
`
`INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
`
`DAMAGES
`
`(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
`
`OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
`HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
`* LIABI LITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
`* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
`* SUCH
`DAMAGE.
`
`#include
`
`<StdiO.h>
`
`#include
`
`#ifndef
`
`#include
`
`#endif
`
`#include
`
`#include
`
`#include
`
`#include
`
`#include
`
`<signal.h>
`linux
`
`<Sgtty.h>
`
`<sys/types.h>
`
`<rpc/rpc.h>
`"nfsproto.h"
`
`"admproto.h"
`"cfs.h"
`
`#include
`
`"shs.h"
`
`#if defi
`
`ned(irix)
`
`|| defined(linux)
`/* hacks to use POSIX style termios instead of old BSD style sgttyb */
`#inc1ude <termios.h>
`
`#define sgttyb termios
`
`#define gtty(a,b) tcgetattr((a),
`
`(b))
`
`#define stty(a,b) tcsetattr((a), TCSAFLUSH,
`
`(b))
`
`#define sg_f1ags c_lflag
`#endif
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 201
`
`

`
`char *
`
`getpassword(prompt)
`
`char *prompt;
`
`{
`
`struct sgttyb ttyb;
`
`int flags;
`
`register char *p;
`
`register c;
`FILE *fi;
`
`static char pbuf[l28];
`#ifdef MACH
`
`int (*signal())();
`
`int (*sig)();
`#else
`
`Void (*sig)();
`#endif
`
`if ((fi = fdopen(open("/dev/tty", 2), "r")) == NULL)
`fi = stdin;
`
`else
`
`setbuf(fi,
`
`(char *)NULL);
`
`sig = signal(SIGINT, SIG_IGN);
`gtty(fileno(fi). &ttyb);
`
`flags = ttyb.sg_flags;
`
`ttyb.sg_flags &= ~ECHO;
`stty(fileno(fi), &ttyb);
`
`fprintf(stderr,
`
`"%s", prompt); fflush(stderr);
`
`(c = getc(fi) !='\n' && c!=EOF;)
`for (p=pbuf;
`if (p < &pbuf[l27])
`c;
`*p++
`
`{
`
`} *
`
`p =
`
`'\o';
`
`fprintf(stderr, "\n"); fflush(stderr);
`
`ttyb.sg_flags = flags;
`stty(fileno(fi), &ttyb);
`
`signal(SIGINT, sig);
`if (fi
`!= stdin)
`
`fclose(fi);
`
`return(pbuf);
`
`} o
`
`{
`
`ld_pwcrunch(b,k)
`char *b;
`
`cfs_admkey *k;
`
`int 1;
`
`u_char kl[8];
`
`u_char k2[8];
`
`if ((l=strlen(b))<3)
`return -1;
`
`/* note that we always use the DES key crunch. */
`
`/* that's not a significant weakness, since here DES */
`
`/* is just being used as s “°“'srYPt°9rsPhis hash‘ */ Petitioner Oracle-Apple-Exhibit1010-Page 202
`/* note also that kl and k2 are created from disjoint parts */
`EXNbflD
`
`

`
`/* of the passphrase. */
`
`key_crunch(&b[1/2],1-1/2,k1);
`
`key_crunch(b,1/2,k2);
`
`{
`switch (k—>cipher)
`case CFS_STD_DES:
`
`bcopy(kl,k->cfs_admkey_u.deskey.primary,8);
`
`bcopy(k2,k->cfs_admkey_u.deskey.secondary,8);
`break;
`
`case CFS_THREE_DES:
`
`bcopy(kl,k->cfs_admkey_u.des3key.primaryl,8);
`
`bcopy(kl,k->cfs_admkey_u.des3key.secondaryl,8);
`
`bcopy(k2,k->cfs_admkey_u.des3key.primary2,8);
`
`bcopy(k2,k->cfs_admkey_u.des3key.secondary2,8);
`break;
`
`case CFS_TRUE_THREE_DES:
`
`/* this is really 2des */
`
`bcopy(kl,k->cfs_admkey_u.tdes3key.primaryl,8);
`
`bcopy(kl,k->cfs_admkey_u.tdes3key.secondaryl,8);
`
`bcopy(k2,k->cfs_admkey_u.tdes3key.primary2,8);
`
`bcopy(k2,k->cfs_admkey_u.tdes3key.secondary2,8);
`
`bcopy(kl,k->cfs_admkey_u.tdes3key.primary3,8);
`
`bcopy(kl,k->cfs_admkey_u.tdes3key.secondary3,8);
`break;
`
`case CFS_MACGUFFIN:
`
`bcopy(kl,k->cfs_admkey_u.mcgkey.primary,8);
`
`bcopy(k2,&(k->cfs_admkey_u.mcgkey.primary[8]),8);
`
`bcopy(kl,k->cfs_admkey_u.mcgkey.secondary,8);
`
`bcopy(k2,&(k->cfs_admkey_u.mcgkey.secondary[8]),8);
`break;
`#ifdef NOTDEF
`
`case CFS_BLOWFISH:
`
`bcopy(kl,k->cfs_admkey_u.b1owkey.primary,8);
`
`bcopy(k2,&(k->cfs_admkey_u.b1owkey.primary[8]),8)
`
`bcopy(kl,k->cfs_admkey_u.b1owkey.secondary,8);
`
`.I
`
`bcopy(k2,&(k->cfs_admkey_u.b1owkey.secondary[8]),8);
`break;
`
`#endif
`
`case CFS_SAFER_SKl28:
`
`bcopy(kl,k->cfs_admkey_u.saferkey.primary,8);
`
`bcopy(k2,&(k->cfs_admkey_u.saferkey.primary[8]),8);
`
`bcopy(kl,k->cfs_admkey_u.saferkey.secondary,8);
`
`bcopy(k2,&(k->cfs_admkey_u.saferkey.secondary[8])
`default:
`
`.8);
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 203
`
`break;
`
`}r
`
`eturn 0;
`
`} n
`
`ew_pwcrunch(b,k)
`char *b;
`
`cfs_admkey *k;
`
`int 1;
`
`u_char
`
`u_char
`
`u_char
`
`u_char
`
`*kl;
`
`*k2;
`
`*k3;
`
`*hash;
`
`u_char hl[20];
`EXNDHD
`
`

`
`u_char h2[20];
`
`if ((1=str1en(b))<3)
`return -1;
`
`hash = qshs(b,1);
`
`bcopy(hash,h1,20);
`kl
`hl;
`
`k2 = &(hl[8]);
`
`/* for true threedes, we do one more hash to get the third key */
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 204
`
`hash = qshs(hl,20);
`
`bcopy(hash,h2,20);
`k3
`h2;
`
`{
`switch (k—>cipher)
`case CFS_STD_DES:
`
`bcopy(kl,k->cfs_admkey_u.deskey.primary,8);
`
`bcopy(k2,k->cfs_admkey_u.deskey.secondary,8);
`break;
`
`case CFS_THREE_DES:
`
`bcopy(kl,k->cfs_admkey_u.des3key.primaryl,8);
`
`bcopy(kl,k->cfs_admkey_u.des3key.secondaryl,8);
`
`bcopy(k2,k->cfs_admkey_u.des3key.primary2,8);
`
`bcopy(k2,k->cfs_admkey_u.des3key.secondary2,8);
`break;
`
`case CFS_TRUE_THREE_DES:
`
`bcopy(kl,k->cfs_admkey_u.tdes3key.primaryl,8);
`
`bcopy(kl,k->cfs_admkey_u.tdes3key.secondaryl,8);
`
`bcopy(k2,k->cfs_admkey_u.tdes3key.primary2,8);
`
`bcopy(k2,k->cfs_admkey_u.tdes3key.secondary2,8);
`
`bcopy(k3,k->cfs_admkey_u.tdes3key.primary3,8);
`
`bcopy(k3,k->cfs_admkey_u.tdes3key.secondary3,8);
`break;
`
`case CFS_MACGUFFIN:
`
`bcopy(kl,k->cfs_admkey_u.mcgkey.primary,16);
`
`bcopy(kl,k->cfs_admkey_u.mcgkey.secondary,16);
`break;
`
`#ifdef NOTDEF
`
`case CFS_BLOWFISH:
`
`bcopy(kl,k->cfs_admkey_u.b1owkey.primary,16);
`
`bcopy(kl,k->cfs_admkey_u.b1owkey.secondary,16);
`break;
`
`#endif
`
`case CFS_SAFER_SKl28:
`
`bcopy(kl,k->cfs_admkey_u.saferkey.primary,16);
`
`bcopy(kl,k->cfs_admkey_u.saferkey.secondary,16);
`break;
`default:
`
`break;
`
`}r
`
`e turn 0 ;
`
`decrypt_key(k,ek)
`cfs_admkey *k;
`
`u_char *ek;
`
`{
`
`mcg_key mk;
`ExmbflD
`
`

`
`#ifdef NOTDEF
`
`bfkey bk;
`#endif
`
`safer_key_t sk;
`
`{
`switch (k—>cipher)
`case CFS_STD_DES:
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[0]),1);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.secondary,&(ek[0]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[0]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[8]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.secondary,&(ek[8]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[8]),l);
`
`bcopy(&(ek[O]),k->cfs_admkey_u.deskey.primary,8);
`
`bcopy(&(ek[8]),k->cfs_admkey_u.deskey.secondary,8);
`break;
`
`case CFS_THREE_DES:
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primaryl,&(ek[O]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primary2,&(ek[O]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primaryl,&(ek[O]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primaryl,&(ek[8]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primary2,&(ek[8]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primaryl,&(ek[8]),l);
`
`bcopy(&(ek[O]),k->cfs_admkey_u.des3key.primaryl,8);
`
`bcopy(&(ek[O]),k->cfs_admkey_u.des3key.secondaryl,8);
`
`bcopy(&(ek[8]),k->cfs_admkey_u.des3key.primary2,8);
`
`bcopy(&(ek[8]),k->cfs_admkey_u.des3key.secondary2,8);
`break;
`
`case CFS_TRUE_THREE_DES:
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary3,&(ek[O]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary2,&(ek[O]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primaryl,&(ek[O]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary3,&(ek[8]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary2,&(ek[8]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primaryl,&(ek[8]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary3,&(ek[l6]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary2,&(ek[l6]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primaryl,&(ek[l6]),l);
`
`bcopy(&(ek[O]),k->cfs_admkey_u.tdes3key.primaryl,8);
`
`bcopy(&(ek[O]),k->cfs_admkey_u.tdes3key.secondaryl,8);
`
`bcopy(&(ek[8]),k->cfs_admkey_u.tdes3key.primary2,8);
`
`bcopy(&(ek[8]),k->cfs_admkey_u.tdes3key.secondary2,8);
`
`bcopy(&(ek[l6]),k->cfs_admkey_u.tdes3key.primary3,8);
`
`bcopy(&(ek[l6]),k->cfs_admkey_u.tdes3key.secondary3,8);
`break;
`
`case CFS_MACGUFFIN:
`
`mcg_keyset(k—>cfs_admkey_u.mcgkey.primary,&mk);
`
`mcg_b1ock_decrypt(&mk,&(ek[O]));
`
`mcg_b1ock_decrypt(&mk,&(ek[8]));
`
`bcopy(ek,k->cfs_admkey_u.mcgkey.primary,16);
`
`bcopy(ek,k->cfs_admkey_u.mcgkey.secondary,16);
`break;
`#ifdef NOTDEF
`
`case CFS_BLOWFISH:
`
`B1owfish_Initia1ize (k—>cfs_admkey_u.blowkey.primaE\étigi(§“é¢lb6l)a;c|e_App|e _ EXhibit1010 _ Page 205
`B1owfish_decipher(&(ek[O]),&bk);
`EXMDHD
`
`

`
`B1owfish_decipher(&(ek[8]),&bk);
`
`bcopy(ek,k->cfs_admkey_u.b1owkey.primary,16);
`
`bcopy(ek,k->cfs_admkey_u.b1owkey.secondary,16);
`break;
`
`#endif
`
`case CFS_SAFER_SKl28:
`
`Safer_Init_Modu1e();
`
`Safer_Expand_Userkey(k->cfs_admkey_u.saferkey.primary,
`
`&(k->cfs_admkey_u.saferkey.primary[8]),
`SAFER_SKl28_DEFAULT_NOF_ROUNDS, 1.
`sk);
`
`Safer_Decrypt_B1ock(&(ek[O]),sk,&(ek[O]));
`
`Safer_Decrypt_B1ock(&(ek[8]),sk,&(ek[8]));
`
`bcopy(ek,k->cfs_admkey_u.saferkey.primary,16);
`
`bcopy(ek,k->cfs_admkey_u.saferkey.secondary,16);
`break;
`default:
`
`break;
`
`encrypt_key(k,ek)
`
`cfs_admkey *k;
`
`u_char *ek;
`
`mcg_key mk;
`#ifdef NOTDEF
`
`bfkey bk;
`#endif
`
`safer_key_t sk;
`
`{
`switch (k—>cipher)
`case CFS_STD_DES:
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[O]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.secondary,&(ek[0]),1);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[O]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[8]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.secondary,&(ek[8]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.deskey.primary,&(ek[8]),O);
`break;
`
`case CFS_THREE_DES:
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primaryl,&(ek[O]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primary2,&(ek[O]),l);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primaryl,&(ek[O]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primaryl,&(ek[8]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.des3key.primary2,&(ek[8]),l);
`
`q_b1ock_cipher(k—>cfs_admkey_u.des3key.primary1,&(ek[8]),O);
`break;
`
`case CFS_TRUE_THREE_DES:
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primaryl,&(ek[O]),0);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary2,&(ek[O]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary3,&(ek[O]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primaryl,&(ek[8]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary2,&(ek[8]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary3,§gfi§&fiéRo8%jeflApme__Exmbfl1010__Page206
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primaryl,&(ek[l6]),O);
`EXMDHD
`
`

`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary2,&(ek[l6]),O);
`
`q_b1ock_cipher(k->cfs_admkey_u.tdes3key.primary3,&(ek[l6]),O);
`break;
`
`#ifdef NOTDEF
`
`case CFS_BLOWFISH:
`
`B1owfish_Initia1ize(k—>cfs_admkey_u.b1owkey.primary,l6,&bk);
`
`B1owfish_encipher(&(ek[O]),&bk);
`
`B1owfish_encipher(&(ek[8]),&bk);
`break;
`
`#endif
`
`case CFS_MACGUFFIN:
`
`mcg_keyset(k->cfs_admkey_u.mcgkey.primary,&mk);
`
`mcg_b1ock_encrypt(&mk,&(ek[O]));
`
`mcg_b1ock_encrypt(&mk,&(ek[8]));
`break;
`
`case CFS_SAFER_SKl28:
`
`Safer_Init_Modu1e();
`
`Safer_Expand_Userkey(k->cfs_admkey_u.saferkey.primary,
`
`&(k->cfs_admkey_u.saferkey.primary[8]),
`SAFER_SKl2 8_DEFAULT_NOF_ROUNDS ,
`1 .
`sk);
`
`Safer_Encrypt_B1ock(&(ek[O]),sk,&(ek[O]));
`
`Safer_Encrypt_B1ock(&(ek[8]),sk,&(ek[8]));
`break;
`default:
`
`break;
`
`ExmbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 207
`
`

`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 208
`
`

`
`#1/bin/sh
`
`cattach —i 45 $HOME/.secrets $USER
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 209
`
`

`
`make_with_bad_1pcgen
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 210
`
`

`
`#1/bin/sh
`# this will make CFS for linux
`
`# wrong Version of rpcgen
`
`(and other) systems with the
`
`make CC="cc —traditiona1 —Dd_fi1eno=d_ino
`—Dnfsproc_nu11_2_sVc=nfsproc_nu11_2
`
`\
`
`\
`
`—Dnfsproc_getattr_2_svc=nfsproc_getattr_2
`
`—Dnfsproc_setattr_2_svc=nfsproc_setattr_2
`\
`
`-Dnfsproc_root_2_sVc=nfsproc_root_2
`
`—Dnfsproc_1ookup_2_svc=nfsproc_1ookup_2 \
`
`-Dnfsproc_read1ink_2_sVc=nfsproc_read1ink_2
`\
`
`—Dnfsproc_read_2_svc=nfsproc_read_2
`
`—Dnfsproc_writecache_2_svc=nfsproc_writecache_2 \
`\
`-Dnfsproc_write_2_sVc=nfsproc_write_2
`
`—Dnfsproc_create_2_svc=nfsproc_create_2 \
`
`-Dnfsproc_remoVe_2_sVc=nfsproc_remoVe_2 \
`
`-Dnfsproc_rename_2_sVc=nfsproc_rename_2 \
`\
`—Dnfsproc_1ink_2_sVc=nfsproc_1ink_2
`
`-Dnfsproc_sym1ink_2_sVc=nfsproc_sym1ink
`
`_2
`
`\ \
`
`-Dnfsproc_mkdir_2_sVc=nfsproc_mkdir_2
`
`-Dnfsproc_rmdir_2_sVc=nfsproc_rmdir_2
`
`-Dnfsproc_readdir_2_svc=nfsproc_readdir_2
`
`—Dnfsproc_statfs_2_svc=nfsproc_statfs_2 \
`\
`—Dadmproc_nu11_l_svc=admproc_nu11_l
`
`—Dadmproc_attach_l_svc=admproc_attach_l \
`
`—Dadmproc_detach_l_svc=admproc_detach_l \
`
`-Dadmproc_1s_l_svc=admproc_1s_l \
`$9:
`
`EXNbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 211
`
`

`
`Makefile
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 212
`
`

`
`# Makefile for cfs 1.3.3, ESM 1.0
`#9:
`
`#* The author of this software is Matt Blaze.
`
`#*
`
`Copyright
`
`(C) 1992, 1993, 1994, 1995 by AT&T.
`
`#* Permission to use, Copy, and modify this software without fee
`
`#* is hereby granted, provided that this entire notice is included in
`
`#* all copies of any software which is or includes a copy or
`
`#* modification of this software and in all copies of the supporting
`#* documentation for such software.
`
`#9:
`
`#* This software is subject to United States export controls.
`#9:
`
`#* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
`
`IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
`#* WARRANTY.
`#* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
`
`#* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
`
`#9:
`
`=o-"I: See the README* and the CFS release notes (notes.ms)
`=o-"I:
`
`for instructions.
`
`Edit the three "CONFIGURE:" sections below to customize for your platform.
`
`Note that I've tested only the SunOS and BSDI configurations.
`
`Good luck if you're using something weird like Solaris...
`
`=o‘=l==8=t==H==8=l==8=l=
`
`NOTE TO LINUX USERS and others with a non—standard rpcgen:
`
`There are two versions of rpcgen floating around. You MUST make sure
`
`that you are using the compile options for the right one so that
`
`it that emits standard SunRPC compatible C code with standard names.
`
`The version of rpcgen distributed with some (but not all) versions of
`
`Linux does not do this by default.
`
`If CFS won't compile out of the box,
`
`this is the most likely problem. Change RPC options, and things should
`
`work fine (do a "make clean" after re-editing the makefile).
`
`As a last resort, if you absolutely can't make your rpcgen work,
`
`try
`
`using "./make_with_bad_rpcgen" in this directory instead of "make".
`(You'll need to do a "make clean" first if you've already failed with
`
`=fi==8=l==fi==fi==o‘=l==8=l==fi==fi==fi==+”l==+*l==+*t=+*t
`
`=81:=o‘=t==H==H==8=l==o‘=l= WARNING:
`
`the existing rpcgen.)
`
`Hack at it long enough, and it will work.
`
`ESM NOTE: You need RSAREF 2.0 (not
`
`included in the distribution) to
`
`compile ESM. You can get RSAREF by ftp from rsa.com
`
`To compille, edit the configuration section for your platform below.
`
`You'll probably need to change the RSALIB and CFLAGS to point tothe
`
`right places for your local copy of RSAREF
`
`ESM RUNS ON FEWER PLATFORMS THAN CFS.
`
`COMPILE ESM AT
`
`=o-"I:
`
`YOUR OWN RISK IF YOU AREN'T USING BSDI OR SUNOS 4.x.
`
`# I think ESM now runs under Solaris, but test carefully.
`
`#CFS PORTS:
`
`# HP/UX, Irix, Linux and AIX ported by Mark Henderson (markh@wimsey.com)
`
`PetitionerOrac|e_App|e_Exhibit1010_Page213
`# Ultrix 4.2 ported by Ed Gould (ed@left.wing.org)
`# Solaris 2.3 ported by Mark Stein (Mark.Stein@Eng.Sun.COM)
`EXNbflD
`
`

`
`# More Solaris/Linux help by Christopher Oliver (oliver@fritz.co.traverse.com)
`
`and Greg Onufer <Greg.Onufer@Eng.Sun.COM>
`
`(1/3) CONFIGURE:
`
`local customization
`
`configuration options for all platforms
`
`1A, 1B: pathnames, compiler, etc:
`
`#
`
`# # # # #
`
`# #
`
`#lA: compiler:
`# for cc, use
`#CC=cc
`
`#COPT=—O —DNOT_ANSI_C -DPROTOTYPES=O
`# for gcc, use
`CC=gcc
`COPT=—O2 —DPROTOTYPES=l
`
`#1B: paths:
`BINDIR=/usr/local/bin
`
`ETCDIR=/usr/local/etc
`
`PRINTCMD=enscript
`
`-Gr2
`
`# you only need RSAREF for ESM
`RSALIB=/usr/mab/rsaref/install/rsaref.a
`
`RINCLUDES=/usr/mab/rsaref/source
`
`if you're a paranoid fascist, you might want to configure
`
`default timeouts on the attach command.
`
`If you do,
`
`just add definitions for TMOUT and IDLE with the default number
`
`of minutes you want to the CFLAGS line.
`
`So the COPT line for the SUNOS CC configuration with a timeout
`of 12 hours and an idle timer of 2 hours would look like:
`COPT:-O —DTMOUT=72O —DIDLE=l2O
`
`If you leave them out the default timeouts are infinite. You
`
`=o-"l==8=l==o-"l==o-"l==o‘=l==o-"l==o-"l==o-"l==o-"l= can override them, of course, on the cattach command line.
`=H==H==H==H==H= You'll need to figure out how to install man pages yourself.
`
`(2/3) CONFIGURE: platform selection
`
`Uncomment the options for the your local platform.
`
`## use these for vanilla SUNOS 4.x
`
`-I$(RINCLUDES)
`
`-DSUN
`
`#CFLAGS=$(COPT)
`#LIBS=
`
`#COMPAT=
`
`#RPCOPTS=
`
`## use these for recent versions of Linux with rpcgen—from-hell
`# See NOTE TO LINUX USERS above, and also README.linux,
`
`# if you can't make things work.
`
`#CFLAGs=$ (COPT) —U_oPTIMIzE_ -traditional -Dd_fileno=d_%,Ié<fiti6rlgr(8lIé%?é1R1B%fiJ’)_ Exhibit 1010 _ Page 214
`#LIBS=
`
`EXMDHD
`
`

`
`#COMPAT=
`
`#RPCOPTS= -k -b
`
`## use these for older versions Linux (Slackware 1.1.2)
`
`# See NOTE TO LINUX USERS above, and also README.linux,
`
`# if you can't make things work.
`#CFLAGS=$(COPT)
`-I$(RINCLUDES)
`#LIBS=
`
`#COMPAT=
`
`#RPCOPTS=
`
`## Irix 4.0 —— markh@wimsey.bc.ca
`# see README.irix
`
`#CFLAGS=-cckr $(COPT)
`
`-Dirix -I$(RINCLUDES)
`
`#LIBS=—lrpcsvc —lsun
`#COMPAT=
`
`#RPCOPTS=
`
`## hpux 8.0 —— markh@wimsey.bc.ca
`# also thanks to Charles Henrich (henrich@crh.cl.msu.edu)
`
`# and Eric Ross
`
`(ericr@hpvclq.vcd.hp.com)
`
`#CFLAGS=$(COPT) —DhpuX —DNORLIMITS —I$(RINCLUDES)
`#COMPAT=
`
`#RPCOPTS=
`
`#LIBS=—lBSD
`
`# on later hpux versions, use
`#LIBS=
`
`## use these for AIX 3.2.0 —— markh@wimsey.bc.ca
`
`-D_BSD -D_SUN -DAIX32OEUIDBUG -I$(RINCLUDES)
`
`#CFLAGS=$(COPT)
`#LIBS=
`
`#COMPAT=
`
`#RPCOPTS=
`
`## use these for 4.4/BSD386 systems with CFS on its own port
`#CFLAGS=$(COPT)
`-DBSD44 -DANYPORT -I$(RINCLUDES)
`
`#LIBS=—lrpc
`
`#COMPAT=—lcompat
`#RPCOPTS=
`
`## Ultrix 4.2a
`
`#CFLAGS=$(COPT)
`#LIBS=
`
`#COMPAT=
`
`#RPCOPTS=
`
`-DANYPORT -I$(RINCLUDES)
`
`## use these for 4.4/BSD386 systems with CFS on its own port
`# Use this for BSDI 2.1 or later
`
`# BSDI support by mab
`#CFLAGS=$(COPT)
`-DBSD44 -DANYPORT -DSHORTLINKS -I$(RINCLUDES)
`
`#LIBS=—lrpc
`
`#COMPAT=—lcompat
`#RPCOPTS=
`
`## use these for 4.4/BSD386 systems with CFS on the NFS pg%%fi8a§aBEEmg£fi&é_EXmb“1010_Page215
`# support for the port options in the mount syscall
`EXNbflD
`
`

`
`# Use this for BSDI 2.0 or earlier.
`
`# BSDI support by mab
`
`# Also works under freeBSD,
`
`though you may want to use -static on the
`
`#
`
`linker (dean@deanstoy.wa.com (Dean M. Phillips))
`
`#CFLAGS=$(COPT) —DBSD44 —DANYPORT —DCFS_PORT=2049 —DSHORTLINKS —I$(RINCLUDES)
`#LIBS=—lrpc
`
`#COMPAT=—lcompat
`#RPCOPTS=
`
`##use these for NetBSD i386 1.0 (John Kohl)
`
`# for mounting, you need to use a command like:
`
`mount —o —P,—c localhost:/null /crypt
`#
`# use —DSHORTLINKS to support the BSD 4.4 symbolic links (Dave Carrel)
`
`#CFLAGS=$(COPT) —DBSD44 —DANYPORT —DCFS_PORT=2049 —DSHORTLINKS —I$(RINCLUDES)
`#LIBS=
`
`#COMPAT=—lcompat
`#RPCOPTS=
`
`## use these flags on Solaris 2.3 / SUNOS 5.x
`#CFLAGS=$(COPT)
`-DSOLARISZX -DPORTMAP -I$(RINCLUDES)
`#LIBS=—lsocket —lnsl
`
`-DPTMX
`
`#COMPAT=
`
`#RPCOPTS=
`
`## not sure what to do for NeXT.
`
`I think this works:
`
`#CFLAGS=$(COPT)
`
`-posix -D_BS

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket