throbber
mcg_keyset(key->cfs_admkey_u.mcgkey.secondary,
`&k->var.mcg.secondary);
`
`break;
`
`#ifdef NOTDEF
`
`case CFS_BLOWFISH:
`k—>cipher=BLOWFISH;
`
`Blowfish_Initia1ize(key—>cfs_admkey_u.blowkey.primary,16,
`&k—>Var.bf.primary);
`
`Blowfish_Initia1ize(key—>cfs_admkey_u.blowkey.secondary,l6,
`&k—>var.bf.secondary);
`
`break;
`
`#endif
`
`case CFS_SAFER_SK128:
`
`k—>cipher=SAFER_SK128;
`
`Safer_Init_Modu1e();
`
`Safer_Expand_Userkey(key—>cfs_admkey_u.saferkey.primary,
`
`&(key—>cfs_admkey_u.saferkey.primary[8]),
`SAFER_SK12 8_DEFAULT_NOF_ROUNDS ,
`1,
`/* for SK128 */
`
`k—>Var.safer.primary);
`
`Safer_Expand_Userkey(key—>cfs_admkey_u.saferkey.secondary,
`
`&(key—>cfs_admkey_u.saferkey.secondary[8]),
`SAFER_SK12 8_DEFAULT_NOF_ROUNDS ,
`1,
`/* for SK128 */
`
`k->var.safer.secondary);
`
`default:
`
`break;
`
`ExmbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 74
`
`

`

`cfs_des.c
`
`Exhibit D
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 75
`
`

`

`* The authors of this software are Don Mitchell, Jack Lacy, and Matt Blaze.
`
`*
`
`Copyright
`
`(c) 1992, 1993, 1994 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.
`
`* Data Encryption Standard
`* D.P.Mitchell
`83/06/08.
`
`* block_cipher(key, block, decrypting)
`*/
`
`#ifdef SOLARIS2X
`
`#define bcopy(s, d,
`
`l)
`
`memcpy(d, s, 1)
`
`#define bcmp(s, d,
`#endif
`
`l)
`
`(memcmp(s, d,
`
`l)? l
`
`: 0)
`
`static long ip_low();
`
`static long ip_high();
`static void fp();
`
`void
`
`des_key_setup();
`
`/*
`* Tables for Combined S and P Boxes
`
`*/
`
`= {
`sOp[]
`static long
`0x00410100,0x00010000,0x40400000,0x40410100,0XOO4000O0,0X400lOlO0,0x400lOOO0,0x40400000,
`
`0x40010100,0x00410100,0x00410000,0x40000100,0x40400100,0x00400000,0xOOOOOOO0,0x400lOOOO,
`
`0X0001000010X40000000,0X00400100,OXOOOlOlOO,0x40410100,0X00410000,0X40000100,0X00400100:
`
`OX4OOOOOOO,OXOOOOOlOO,0X00010100,0x40410000,OXOOOOOlOO,OX4O40010010X40410000,OXOOOOOOOOI
`
`OX00000000,0X40410100,0X00400100,0x40010000,0XOO410100,0X00010000,0X40000100,0X00400100:
`
`OX4O4lOOOO,OXOOOOOlOO,0X00010100,0x40400000,0x40010100,0X4000000010X40400000,0X00410000:
`
`OX4O4lOlOO,OXOOOlOlOO,0X00410000,OX4O400100,0X00400000,0X4000010010X40010000,OXOOOOOOOOI
`
`0X0001000010X00400000,OX4O400100,OXOO410100,OX4OOOOOOO,0X4O4lOOOO,OXOOOOOlOO,OX4OOlOlOO:
`
`};
`
`= {
`slp[]
`static long
`0x08021002,0x00000000,0x00021000,0x08020000,0x08000002,0x00001002,0xOBOOlOO0,0xOOOZlOOO,
`
`OxOOOOlOO0,0x08020002,0x00000002,0x08001000,0x00020002,0x08021000,0x08020000,0x00000002:
`
`OXOOOZOOOO,0X08001002,0x08020002,OXOOOOlOOO,OXOOOZlOOZIOXOBOOOOOO,OX00000000,0X000200021
`
`0X08001002,OXOOOZlOOZI0X08021000,OXOBOOOOOZI0X08000000,0X00020000,0X00001002,0X080210021
`
`OXOOOZOOOZ,0X08021000,0X08001000,0X00021002,0x08021002,OX0Bgfi&%%%«3é&fi£g88&¥J€%fi88quBange76
`OXOBOOOOOO,OXOOOOlOOZIOXOOOZOOOO,0X08020002,0X00001000,0X08000000,0X00021002,0X080010021
`Exhibit D
`
`

`

`OX08021000,0x00001000,0x00000000,0x08000002,0x00000002,0x08021002,0xOOOZlOO0,0XOBOZOOOO,
`
`0x08020002,0x00020000,0x00001002,0x08001000,0x08001002,0x00000002,0x08020000,0xOOOZlOOO,
`
`};
`
`= {
`s2p[]
`static long
`OXZOBOOOOO,0X00808020,OXOOOOOOZO,0X20800020,0X20008000,0X00800000,0X20800020,0X000080201
`
`OXOOBOOOZO,OXOOOOBOOO,OXOOBOBOOO,OXZOOOOOOO,0X20808020,0X20000020,0X20000000,0X208080001
`
`OXOOOOOOOO,OXZOOOBOOO,0X00808020,OXOOOOOOZO,0X20000020,0X20808020,0X00008000,0X208000001
`
`OX20808000,OXOOBOOOZO,0X20008020,OXOOBOBOOO,0X00008020,0X00000000,0X00800000,0X200080201
`
`0X00808020,OXOOOOOOZO,OXZOOOOOOO,OXOOOOBOOO,0X20000020,0X20008000,0X00808000,0X208000201
`
`OXOOOOOOOO,0X00808020,OXOOOOBOZO,0X20808000,0X20008000,0X00800000,0X20808020,0X200000001
`
`OX20008020,OXZOBOOOOO,OXOOBOOOOO,0X20808020,0X00008000,0X00800020,0X20800020,0X000080201
`
`OXOOBOOOZO,OXOOOOOOOO,0X20808000,OXZOOOOOZO,0X20800000,0X20008020,0X00000020,0X008080001
`
`};
`
`= {
`s3p[]
`static long
`0X00080201,0X02000200,OXOOOOOOOl:0X02080201:OXOOOOOOOO,0X02080000,0X0200020110x00080001:
`
`0X02080200,0X020000011OXOZOOOOOO,OXOOOOOZOl:OXOZOOOOOl:0X0008020110X00080000,OXOZOOOOOOI
`
`0x02080001,0x00080200,0x00000200,0x00000001,0x00080200,0x02000201,0x02080000,0x000002001
`
`OXOOOOOZOlIOXOOOOOOOO,OXOOOBOOOl:0X02080200,OXOZOOOZOO,0X0208000110X020802011OXOOOBOOOOI
`
`0X02080001,0X000002011OXOOOBOOOO,OXOZOOOOOl:0x00080200,0X02000200,0X000000011OXOZOBOOOOI
`
`OXOZOOOZOlIOXOOOOOOOO,OXOOOOOZOO,OXOOOBOOOl:OXOOOOOOOO,0X0208000110X02080200,0X00000200:
`
`0X02000000,0X020802011OXOOOBOZOl:OXOOOSOOOO,0X02080201:OXOOOOOOOlIOXOZOOOZOO,0X00080201:
`
`0X00080001,0X00080200,OXOZOBOOOO,OXOZOOOZOl:OXOOOOOZOl:0X02000000,0X0200000110X02080200:
`
`};
`
`= {
`s4p[]
`static long
`OxOlOOOOOO,Ox00002000,0x00000080,0x01002084,0x01002004,0x01000080,0x0000208410x010020001
`
`0x00002000,0x00000004,0x01000004,0x00002080,0x01000084,0x01002004,0x01002080,0xOOOOOOOO,
`
`OXOOOOZOBO,OXOlOOOOOO,0X00002004,0X00000084,0X01000080,0X000020841OXOOOOOOOO,OXOlOOOOO4:
`
`OxOOOOOOO4,OxOlOOOOB4,0x01002084,0x0000200410x01002000,0x00000080,0x0000008410x010020801
`
`0X01002080,0X01000084,0x00002004,OXOlOOZOOO,0X00002000,0X00000004,OXOlOOOOO4IOX01000080,
`
`OXOlOOOOOO,OXOOOOZOBO,0X01002084,OXOOOOOOOO,0X0000208410X01000000,0X00000080,0X000020041
`
`0x01000084,0x00000080,0x00000000,0x01002084,0x01002004,0x01002080,0x0000008410x000020001
`
`OXOOOOZOBO,0X01002004,OXOlOOOOBO,0X00000084,OxOOOOOOO4,OX00002084I0X01002000,0X010000041
`
`};
`
`= {
`s5p[]
`static long
`OX1000000810X00040008,OXOOOOOOOO,0X10040400,0X00040008,0X00000400,0X10000408,0X00040000:
`
`0X00000408,0X10040408,0X00040400,OXlOOOOOOO,0X10000400,0X1000000810X10040000,0X00040408:
`
`0X00040000,0X10000408,0X10040008,0XOOOOOOO0,0X00000400,0X00000008,0X10040400,0X10040008:
`
`OX10040408,0X10040000,0XlOOOOOO0,0X00000408,0XOOOOOOOB,0X00040400,0X00040408,0X10000400:
`
`0X0000040810X10000000,0X10000400,0X00040408,0X10040400,0X0004000810X00000000,0X10000400:
`
`OX10000000,0X00000400,0X10040008,0X00040000,0X00040008,OX10040408,0X00040400,OXOOOOOOOBI
`
`OX1004O408,0X00040400,0X00040000,0X10000408,0X10000008,0x10040000,0x00040408,OXOOOOOOOOI
`
`0X0000040010X10000008,0X10000408,OX10040400,0X10040000,0X0000040810X00000008,0X10040008:
`
`};
`
`= {
`s6p[]
`static long
`0X00000800,0X00000040,0X00200040,0x80200000,0x80200840,0X80000800,0X00000840,OXOOOOOOOOI
`
`0x00200000,0x80200040,0x80000040,0x00200800,0x80000000,0x00200840,0x00200800,0x80000040.
`
`0x80200040,0x00000800,0x80000800,0x80200840,0x00000000,0x00200040,0x80200000,0x00000840.
`
`0X80200800,0X80000840,0X0020084O,0x80000000,0x80000840,0X80200800,0X00000040,OXOOZOOOOOI
`
`0x80000840,0x00200800,0x80200800,0x80000040,0x00000800,0x00000040,0x00200000,0x80200800,
`
`0X80200040,0X80000840,0X00000840,OXOOOOOOOO,OXOOOOOO4O,OX8B%B&%%g«3é&&£%EBEQJ€%fi8fingfiqpage77
`OX00000000,0X80200040,0X00200040,0X00000840,0x80000040,0X00000800,0X80200840,OXOOZOOOOOI
`EXNbHD
`
`

`

`OX00200840,0x80000000,0x80000800,0x80200840,0x80200000,0x00200840,0x00200800,0x80000800.
`
`};
`
`= {
`s7p[]
`static long
`OX04lOOOlO,0X04104000,0x00004010,OXOOOOOOOO,0X04004000,0X00100010,0X04100000,0XO41040101
`
`0x00000010,0x04000000,0x00104000,0x00004010,0x00104010,0x04004010,0xO4000Ol0,0xO4lOOOOO,
`
`OXOOOO4OOO,OXOOlO4OlO,OXOOlOOOlO,0X04004000,OX04lO4OlO,OXO4OOOOlO,OX00000000,0X001040001
`
`0x04000000,0xOOlOOOO0,0xO40040l0,0x04100010,0x00100000,0x00004000,0xO4lO4000,0xOOOOOOlO.
`
`OXOOlOOOOO,0X00004000,0X04000010,OX04lO4OlO,OXOOOO4OlO,0XO4OOOOOO,OX00000000,0X001040001
`
`0x04100010,0x04004010,0x04004000,0x00100010,0x04104000,0x00000010,0xOOlOOOl0,0xO4004000.
`
`OX04lO4OlO,OXOOlOOOOO,0x04100000,0X04000010,0X00104000,0X00004010,OXO4OO4OlO,0XO4lOOOOOI
`
`OXOOOOOOlO,0X04104000,OXOOlO4OlO,OXOOOOOOOO,0XO4OOOOOO,OXO4lOOOlO,0X00004000,0X001040101
`
`};
`
`/*
`
`*
`
`*
`*/
`
`DES electronic codebook encryption of one block
`
`(quick version)
`
`q_block_cipher(short_key,
`
`text, decrypting)
`
`char short_key[8];
`char text[8];
`
`int decrypting;
`
`{
`
`register char *key;
`
`register long temp;
`
`register long left, right;
`
`register i;
`
`register key_offset;
`int j,k;
`static int 1k: —1;
`
`static char 1astkey[4][8]= "xxxxxxx","xxxxxxx","xxxxxxx","xxxxxxx"};
`static char expanded_key[4][128];
`
`/* now caches 4 session keys.
`k: -l;
`
`for (j=0;
`
`j<4;
`
`j++)
`
`{
`
`drops least recently added
`
`*/
`
`if (bcmp(short_key,lastkey[j],8)==O)
`k=j;
`break;
`
`{
`
`}
`
`} i
`
`{
`f (k<0)
`k= 1k =
`
`(1k+l)%47
`
`bcopy(short_key,lastkey[k],8);
`
`des_key_setup(short_key, expanded_key[kJ);
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 78
`
`} k
`
`ey = expanded_key[k];
`
`left = ip_low(text);
`
`right = ip_high(text);
`
`{
`if (decrypting)
`key_offset = 16 — 8;
`key = key + 128 - 8;
`
`} else
`key_offset = O — 8;
`
`for (i = O;
`
`i < 16;
`
`i++)
`
`{
`
`temp = (right << 1)
`ExmbflD
`
`|
`
`((right >> 31) & l);
`
`

`

`key[0]]
`
`key[lll
`
`key[2]]
`
`key[3]]
`
`key[411
`
`key[5]]
`
`key[6]];
`>> 27) & Oxlf);
`
`left A
`
`s0p[(temp
`slp[((temp
`
`s2p[((temp
`
`>>
`
`>>
`
`>>
`
`s3p[((temp
`
`s4p[((temp
`
`s5p[((temp
`
`>>
`>> 20)
`s6p[((temp >> 24)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`
`mmmmmmm
`
`A
`
`A
`
`A
`
`A
`
`A
`
`A
`
`A
`
`((right & 1) << 5)
`
`((right
`
`
`A key[711;
`
`temp =
`left A:
`
`temp =
`left =
`
`right =
`
`s7p[temp
`left;
`
`right;
`temp;
`
`key —= key_offset;
`
`left;
`
`right;
`temp;
`
`} t
`
`emp
`left
`
`right =
`/*
`
`standard final permutation
`
`(IPI)
`
`*
`*/
`
`fp(left, right,
`
`text);
`
`/*
`
`DES electronic codebook encryption of one block
`
`(expanded key version)
`
`*
`
`*
`*/
`
`des_block_cipher(expanded_key,
`
`text, decrypting)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`
`Ox3f)
`Ox3f)
`
`& —
`
`mmmmmm
`
`char expanded_key[8];
`char text[8];
`
`int decrypting;
`
`{
`
`register char *key;
`
`register long temp;
`
`register long left,
`
`right;
`
`register i;
`
`register key_offset;
`
`key =
`left =
`
`expanded_key;
`
`ip_low(text);
`
`right =
`
`ip_high(text)i
`
`{
`if (decrypting)
`key_offset = 16 —
`key =
`key + 128 — 8;
`
`8;
`
`} else
`key_offset = O - 8;
`for (i = O;
`i < 16;
`i++)
`
`temp = (right << 1)
`left A: s0p[(temp
`
`{
`
`|
`
`A slp[((temp >>
`
`A s2p[((temp >>
`
`4)
`
`8)
`
`A s3p[((temp >> 12)
`
`A s4p[((temp >> 16)
`
`A s5p[((temp >> 20)
`
`A s6p[((temp >> 24)
`temp = ((right & 1) << 5)
`ExmbflD
`
`((right >> 31) & l);
`Ox3f)
`
`A key[0]]
`A
`key[lll
`
`A
`
`A
`
`A
`
`A
`
`key[2]]
`
`key[3]]
`
`key[411
`
`key[5]]
`
`A key[6]];
`Petitioner Oracle-Apple - Exhibit 1010 - Page 79
`>> 27) & Oxlf);
`((right
`
`

`

`left A= s7p[temp A key[7]];
`temp = left;
`
`left = right;
`
`right = temp;
`
`key —= key_offset;
`
`} t
`
`emp = left;
`
`left = right;
`
`right = temp;
`/*
`
`*/
`
`standard final permutation (IPI)
`
`*
`*/
`
`fp(left, right,
`
`text);
`
`Final Permutation
`
`} /
`
`* *
`
`= {
`static long fph0[l6]
`OXOOOOOOOO,OX4OOOOOOO,OXOO4OOOOO,0x40400000,0X00004000,0X40004000,OXOO4O4OOO,OX4O4O4OOOI
`
`OXOOOOOO40,0X4000OO40,0XOO400040,0X40400040,0XOOOO4040,0X40004040,0XOO404040,0X40404040:
`
`static long fpll[l6] = {
`OXOOOOOOOO,OX4OOOOOOO,OXOO4OOOOO,0x40400000,OXOOOO4OOO,OX4OOO4OOO,0X00404000,OX4O4040001
`
`OXOOOOOO40,0X4000OO40,0XOO400040,0X40400040,0XOOOO4040,0X40004040,0XOO404040,0X40404040:
`
`= {
`static long fph2[l6]
`OXOOOOOOO0,0XlOOOOOO0,0XOOlOOOO0,0XlOlOOOO0,0XOOOOlOO0,0XlOOOlOO0,0X00101000,0XlOlOlOOO:
`
`OXOOOOOOl0,0XlOOOOOl0,0XOOlOOOl0,0XlOlOOOl0,0XOOOOlOl0,0XlOOOlOl0,0XOOlOlOl0,0XlOlOlOlO:
`
`static long fpl3[l6] = {
`OXOOOOOOO0,0XlOOOOOO0,0XOOlOOOO0,0XlOlOOOO0,0X00001000,0x10001000,0X00101000,0XlOlOlOOO:
`
`OXOOOOOOl0,0XlOOOOOl0,0XOOlOOOl0,0XlOlOOOl0,0XOOOOlOl0,0XlOOOlOl0,0XOOlOlOl0,0XlOlOlOlO:
`
`= {
`static long fph4[l6]
`OXOOOOOOOO,0XO4OOOOOO,0X00040000,0X04040000,OXOOOOO4OO,OXO4OOO4OO,OX00040400,0XO4O404001
`
`OxOOOOOOO4,0xO4000OO4,0x00040004,0x04040004,0x00000404,0x04000404,0x00040404,0x04040404,
`
`= {
`static long fp15[l6]
`OXOOOOOOOO,0XO4OOOOOO,0X00040000,0X04040000,OXOOOOO4OO,OXO4OOO4OO,0X00040400,0X040404001
`
`OxOOOOOOO4,0xO4000OO4,0x00040004,0x04040004,0x00000404,0x04000404,0x00040404,0x04040404,
`
`= {
`static long fph6[l6]
`OXOOOOOOO0,0XOlOOOOO0,0XOOOlOOO0,0XOlOlOOO0,0X00000100,0X01000100,0X00010100,0XOlOlOlOO:
`
`OXOOOOOOOl,OXOlOOOOOl,0x00010001,OXOlOlOOOl,OXOOOOOlOlIOxOlOOOlOl,OXOOOlOlOl,OXOlOlOlOl,
`
`static long fpl7[l6] = {
`0x00000000,0x01000000,0x00010000,0x01010000,0x00000100,0x01000100,0xOOOlOlO0,0xOlOlOlOO.
`
`OXOOOOOOOl,OXOlOOOOOl,0x00010001,OXOlOlOOOl,OXOOOOOlOlIOXOlOOOlOl,OXOOOlOlOl,OXOlOlOlOl,
`
`= {
`static long fph8[l6]
`OXOOOOOOOO,OXBOOOOOOO,OXOOBOOOOO,OXBOBOOOOO,0X00008000,0X80008000,0X00808000,0X808080001
`
`OXOOOOOOBO,OXBOOOOOBO,OXOOBOOOBO,0X80800080,0X00008080,0X80008080,0X00808080,0X808080801
`
`};
`Petitioner Oracle-AppIe-Exhibit1010-Page 80
`Stath long fpl9[l6] = {
`0x00000000,0x80000000,0x00800000,0x80800000,0x00008000,0x80008000,0x00808000,0x80808000,
`ExmbflD
`
`

`

`OXOOOOOOBO,OXBOOOOOBO,OXOOBOOOBO,0X80800080,0X00008080,0X80008080,0X00808080,0X808080801
`
`= {
`static long fpha[l6]
`OxOOOOOOO0,0x20000000,0x00200000,0x20200000,0x00002000,0x20002000,0x00202000,0x20202000:
`
`OXOOOOOOZ0,0XZOOOOOZ0,0XOOZOOOZ0,0X20200020,0X00002020,0X20002020,0X00202020,0X20202020:
`
`static long fplb[l6] = {
`OxOOOOOOO0,0x20000000,0x00200000,0x20200000,0x00002000,0x20002000,0x00202000,0x20202000:
`
`OXOOOOOOZO,OXZOOOOOZO,OXOOZOOOZO,0X20200020,0X00002020,0X20002020,0X00202020,0X202020201
`
`= {
`static long fphc[l6]
`OXOOOOOOOO,OXOBOOOOOO,OXOOOBOOOO,OXOBOBOOOO,0X00000800,0X08000800,0X00080800,0X080808001
`
`OXOOOOOOOB,OXOBOOOOOB,OXOOOBOOOB,0X08080008,0X00000808,0X08000808,0X00080808,0X080808081
`
`static long fpld[l6] = {
`0x00000000,0x08000000,0x00080000,0x08080000,0x00000800,0x08000800,0x00080800,0x08080800,
`
`0x00000008,0x08000008,0x00080008,0x08080008,0x00000808,0x08000808,0x00080808,0x08080808,
`
`= {
`static long fphe[l6]
`OXOOOOOOOO,OXOZOOOOOO,OXOOOZOOOO,OXOZOZOOOO,0X00000200,OX02000200,0X00020200,0X020202001
`
`0x00000002,0x02000002,0x00020002,0x02020002,0x00000202,0x02000202,0x00020202,0x02020202,
`
`static long fplf[l6] = {
`OXOOOOOOOO,OXOZOOOOOO,OXOOOZOOOO,OXOZOZOOOO,0X00000200,0X02000200,0X00020200,0X020202001
`
`0x00000002,0x02000002,0x00020002,0x02020002,0x00000202,0x02000202,0x00020202,0x02020202,
`
`};
`
`static void
`
`fp(left, right,
`
`text)
`
`long left, right;
`char text[8];
`
`{
`
`register unsigned long low, high;
`
`register unsigned long temp;
`
`temp = left;
`
`high = fph0[temp & Oxf];
`temp >>= 4;
`
`low = fpll[temp & Oxf];
`temp >>= 4;
`
`high |= fph2[temp & Oxf];
`temp >>= 4;
`
`low |= fpl3[temp & Oxf];
`temp >>= 4;
`
`high |= fph4[temp & Oxf];
`temp >>= 4;
`
`low |= fp15[temp & Oxf];
`temp >>= 4;
`
`high |= fph6[temp & Oxf];
`temp >>= 4;
`
`low |= fpl7[temp & Oxf];
`temp = right;
`
`high |= fph8[temp & Oxf];
`temp >>= 4;
`
`low |= fp19[temp & Oxf];
`temp >>= 4;
`ExmbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 81
`
`

`

`high |= fpha[temp & Oxf];
`temp >>= 4;
`
`low |= fplb[temp & Oxf];
`temp >>= 4;
`
`high |= fphc[temp & Oxf];
`temp >>= 4;
`
`low |= fpld[temp & Oxf];
`temp >>= 4;
`
`high |= fphe[temp & Oxf];
`temp >>= 4;
`
`low |= fplf[temp & Oxf];
`text[O]
`= low;
`
`text[l] = low >> 8;
`
`text[2]
`
`= low >> 24;
`
`= low >> 16; text[3]
`
`text[4]
`
`= high;
`
`text[5]
`
`= high >> 8;
`
`text[6]
`
`= high >> 16;
`
`text[7]
`
`= high >> 24;
`
`Initial Permutation
`
`} /
`
`* *
`
`*/
`
`static long ip10[l6]
`0x00000000,
`
`= {
`
`OXOOOOBOOO,OXOOOOOOOO,OXOOOOBOOO,OXOOOOOOBO,0X00008080,0X00000080,0X00008080,0X000000001
`
`OXOOOOBOO0,0XOOOOOOO0,0X00008000,0X00000080,0X00008080,0X00000080,0X00008080,}7
`
`static long iph0[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOOOOBOOO,OXOOOOBOOO,OXOOOOOOOO,OX00000000,0X00008000,0X00008000,0X000000801
`
`OXOOOOOOB0,0XOOOOBOB0,0X00008080,0X00000080,0X00000080,0X00008080,0X00008080,}i
`
`static long ipll[l6] = {
`OXOOOOOOOOI
`
`OXBOOOOOOO,OXOOOOOOOO,OXBOOOOOOO,OXOOBOOOOO,0X80800000,0X00800000,0X80800000,0X000000001
`
`OXBOOOOOO0,0XOOOOOOO0,0X80000000,0X00800000,0X80800000,0X00800000,0X80800000,}i
`
`static long iphl[l6] = {
`OXOOOOOOOOI
`
`OXOOOOOOOO,OXBOOOOOOO,OXBOOOOOOO,OXOOOOOOOO,OX00000000,0X80000000,0X80000000,0X008000001
`
`0x00800000,0x80800000,0x80800000,0x00800000,0x00800000,0x80800000,0x80800000,};
`
`static long ip12[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOO4OOO,OXOOOOOOOO,0X00004000,OXOOOOOO4O,OXOOOO4O4O,OXOOOOOO4O,OXOOOO4O4O,OXOOOOOOOOI
`
`OXOOOO4000,0XOOOOOOO0,0XOOOO4000,0XOOOOOO40,0XOOOO4040,0XOOOOOO40,0XOOOO4040,}i
`
`static long iph2[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOO0,0XOOOO4000,0XOOOO4000,0XOOOOOOO0,0XOOOOOOO0,0XOOOO4000,0XOOOO4000,0XOOOOOO40:
`
`OXOOOOOO40,0XOOOO4040,0XOOOO4040,0XOOOOOO40,0XOOOOOO40,0XOOOO4040,0XOOOO4040,}i
`
`static long ipl3[l6] = {
`OXOOOOOOOOI
`
`OX4OOOOOOO,OXOOOOOOOO,OX4OOOOOOO,0X00400000,0X4O4OOOOO,OXOO4OOOOO,0X4O4OOOOO,OXOOOOOOOOI
`
`OX4000OOO0,0XOOOOOOO0,0X4000OOO0,0XOO4000O0,0X404000O0,0XOO4000O0,0x40400000,}i
`
`static long iph3[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OX4OOOOOOO,OX4OOOOOOO,OXOOOOOOOO,OXOOOOOOOO,OX4Bgfi&%%%«3éfifigg%8&QJ€%fi8#quBQFgge82
`0x00400000,0x40400000,0x404000O0,0xOO4000O0,0x00400000,0x404000O0,0x404000OO,};
`ExmbflD
`
`

`

`static long ipl4[l6] = {
`OXOOOOOOOOI
`
`OXOOOOZOOO,OXOOOOOOOO,OXOOOOZOOO,OXOOOOOOZO,0X00002020,0X00000020,0X00002020,0X000000001
`
`OXOOOOZOO0,0XOOOOOOO0,0X00002000,0X00000020,0X00002020,0X00000020,0XOOOOZOZO,}7
`
`static long iph4[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOOOOZOOO,OXOOOOZOOO,OXOOOOOOOO,OX00000000,0X00002000,0X00002000,0X000000201
`
`OXOOOOOOZ0,0XOOOOZOZ0,0X00002020,0X00000020,0X00000020,0X00002020,0XOOOOZOZO,}7
`
`static long ip15[l6]
`OXOOOOOOOOI
`
`= {
`
`0x20000000,0xOOOOOOO0,0x20000000,0x00200000,0x20200000,0x00200000,0x20200000,0x00000000.
`
`0x20000000,0xOOOOOOO0,0x20000000,0x00200000,0x20200000,0x00200000,0x20200000,};
`
`static long iph5[l6]
`OXOOOOOOOOI
`
`= {
`
`0x00000000,0x20000000,0x20000000,0x00000000,0x00000000,0x20000000,0x20000000,0x00200000,
`
`0x00200000,0x20200000,0x20200000,0x00200000,0x00200000,0x20200000,0x20200000.};
`
`static long ipl6[l6] = {
`OXOOOOOOOOI
`
`OXOOOOlOOO,OXOOOOOOOO,OXOOOOlOOO,OXOOOOOOlO,OXOOOOlOlO,OXOOOOOOlO,OXOOOOlOlO,OXOOOOOOOOI
`
`OXOOOOlOO0,0XOOOOOOO0,0X00001000,0X00000010,0XOOOOlOl0,0XOOOOOOl0,0XOOOOlOlO,}7
`
`static long iph6[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOOOOlOOO,OXOOOOlOOO,OXOOOOOOOO,OX00000000,0X00001000,0X00001000,0X000000101
`
`OXOOOOOOl0,0XOOOOlOl0,0XOOOOlOl0,0XOOOOOOl0,0XOOOOOOl0,0XOOOOlOl0,0XOOOOlOlO,}7
`
`static long ipl7[16]
`OXOOOOOOOOI
`
`= {
`
`OXlOOOOOOO,OXOOOOOOOO,OXlOOOOOOO,OXOOlOOOOO,OxlOlOOOOO,OXOOlOOOOO,OxlOlOOOOO,OXOOOOOOOOI
`
`0x10000000,0x00000000,0xlOOOOOO0,0xOOlOOOO0,0x10100000,0xOOlOOOO0,0xlOlOOOOO,};
`
`static long iph7[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXlOOOOOOO,OXlOOOOOOO,OXOOOOOOOO,OX00000000,0X10000000,0X10000000,0X001000001
`
`0x00100000,0x10100000,0xlOlOOOO0,0xOOlOOOO0,0x00100000,0xlOlOOOO0,0xlOlOOOOO,};
`
`static long ip18[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOBOO,OXOOOOOOOO,OXOOOOOBOO,OXOOOOOOOB,0X00000808,0X00000008,0X00000808,0X000000001
`
`OXOOOOOBO0,0XOOOOOOO0,0X00000800,0X00000008,0X00000808,0X00000008,0X00000808,}i
`
`static long iph8[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOOOOOBOO,OXOOOOOBOO,OXOOOOOOOO,OX00000000,0X00000800,0X00000800,0X000000081
`
`OXOOOOOOOB,OXOOOOOBOB,0X00000808,0X00000008,0X00000008,0X00000808,OXOOOOOBOBI}i
`
`static long ip19[l6]
`OXOOOOOOOOI
`
`= {
`
`0x08000000,0x00000000,0x08000000,0x00080000,0x08080000,0x00080000,0x08080000,0x00000000,
`
`OXOBOOOOO0,0XOOOOOOO0,0X08000000,0X00080000,0X08080000,0X00080000,0X08080000,}i
`
`static long iph9[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOBOOOOOO,OXOBOOOOOO,OXOOOOOOOO,OXOOOOOOOO,OX08000000,0X08000000,0X000800001
`
`OXOOOBOOO0,0XOBOBOOO0,0X08080000,0X00080000,0X00080000,0X08080000,0X08080000,}i
`
`static long ipla[l6] = {
`OXOOOOOOOOI
`
`OXOOOOO4OO,OXOOOOOOOO,OXOOOOO4OO,OXOOOOOOO4,0x00000404,0x00000004,OXOOOOO4O4IOXOOOOOOOOI
`
`OXOOOOO400,0XOOOOOOO0,0XOOOOO400,0XOOOOOOO4,0xOOOOO404,0XOOOOOOO4,0XOOOOO404,}i
`
`static long ipha[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOOOOO4OO,OXOOOOO4OO,OXOOOOOOOO,OXOOOOOOOO,OX0ngfl$figxgégfi£g%§&91€%mgfiquBfiFgge83
`0x00000004,0x00000404,0xOOOOO404,0xOOOOOOO4,0x00000004,0x00000404,0x00000404,};
`ExmbflD
`
`

`

`static long iplb[l6] = {
`OXOOOOOOOOI
`
`OXO4OOOOOO,OXOOOOOOOO,0XO4OOOOOO,0X00040000,0X04040000,0X00040000,0X04040000,0X000000001
`
`OXO4000OO0,0XOOOOOOO0,0X04000000,0X00040000,0X04040000,0X00040000,0X04040000,}7
`
`static long iphb[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,0XO4OOOOOO,0XO4OOOOOO,OXOOOOOOOO,OXOOOOOOOO,0XO4OOOOOO,0X04000000,0X000400001
`
`OXOOO40000,0X04040000,0X04040000,0X00040000,0X00040000,0X04040000,0X04040000,}7
`
`static long iplc[l6] = {
`OXOOOOOOOOI
`
`OXOOOOOZOO,OXOOOOOOOO,OXOOOOOZOO,OXOOOOOOOZ,0x00000202,0x00000002,OXOOOOOZOZIOXOOOOOOOOI
`
`0x00000200,0x00000000,0x00000200,0x00000002,0x00000202,0x00000002,0x00000202,};
`
`static long iphc[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOOOOOZOO,OXOOOOOZOO,OXOOOOOOOO,OXOOOOOOOO,OXOOOOOZOO,0X00000200,0X000000021
`
`0x00000002,0x00000202,0x00000202,0x00000002,0x00000002,0x00000202,0x00000202,};
`
`static long ipld[l6] = {
`OXOOOOOOOOI
`
`OXOZOOOOOO,OXOOOOOOOO,OXOZOOOOOO,OXOOOZOOOO,0X02020000,0X00020000,0X02020000,0X000000001
`
`OXOZOOOOOO,OXOOOOOOOO,0X02000000,0X00020000,0X02020000,0X00020000,OXOZOZOOOOI}7
`
`static long iphd[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOOO,OXOZOOOOOO,OXOZOOOOOO,OXOOOOOOOO,OX00000000,0X02000000,0X02000000,0X000200001
`
`OXOOOZOOOO,OXOZOZOOOO,0X02020000,0X00020000,0X00020000,0X02020000,OXOZOZOOOOI}7
`
`static long iple[16]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOlOO,OXOOOOOOOO,OXOOOOOlOO,OXOOOOOOOl,OXOOOOOlOlIOXOOOOOOOl,OxOOOOOlOlIOXOOOOOOOOI
`
`OXOOOOOlOO,OXOOOOOOOO,OXOOOOOlOO,OXOOOOOOOl,OXOOOOOlOlIOXOOOOOOOl,0x00000101,}7
`
`static long iphe[l6]
`OXOOOOOOOOI
`
`= {
`
`OXOOOOOOO0,0XOOOOOlO0,0XOOOOOlO0,0XOOOOOOO0,0X00000000,0X00000100,0XOOOOOlO0,0XOOOOOOOl:
`
`OXOOOOOOOl,OXOOOOOlOl,OXOOOOOlOlIOXOOOOOOOl,OXOOOOOOOlIOXOOOOOlOl,0x00000101,}i
`
`static long iplf[l6] = {
`OXOOOOOOOOI
`
`OXOlOOOOOO,OXOOOOOOOO,OXOlOOOOOO,OXOOOlOOOO,0X01010000,0X00010000,0X01010000,0X000000001
`
`OXOlOOOOOO,OXOOOOOOOO,0X01000000,0X00010000,0X01010000,0X00010000,OXOlOlOOOOI}i
`
`static long iphf[l6] = {
`OXOOOOOOOOI
`
`OXOOOOOOOO,OXOlOOOOOO,OXOlOOOOOO,OXOOOOOOOO,OX00000000,0X01000000,0X01000000,0X000100001
`
`OXOOOlOOOO,OXOlOlOOOO,0X01010000,0X00010000,0X00010000,0X01010000,OXOlOlOOOOI}i
`
`static long
`
`ip_low(block)
`register char block[8];
`
`{
`
`register long 1;
`
`I—‘I—‘I—‘I—‘I—‘I—‘I—‘I—‘H
`
`ipll[block[0] & Oxf];
`
`|= iplO[(block[O] >> 4) & Oxf];
`
`|= ipl3[block[l] & Oxf];
`
`|= ip12[(block[l] >> 4) & Oxf];
`ll
`ip15[block[2] & Oxf];
`
`|= ipl4[(block[2] >> 4) & Oxf];
`
`|= ipl7[block[3] & Oxf];
`
`|= ipl6[(block[3] >> 4) & Oxf];
`
`|= ip19[block[4] & Oxf];
`ExmbflD
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 84
`
`

`

`HHHHHHH
`
`|= ip18[(block[4] >> 4) & Oxf];
`= ip1b[block[5] & Oxf];
`
`= ip1a[(block[5] >> 4) & Oxf];
`u
`
`ipld[block[6] & Oxf];
`
`= iplc[(block[6] >> 4) & Oxf];
`
`= iplf[block[7] & Oxf];
`
`= ip1e[(block[7] >> 4) & Oxf];
`return 1;
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 85
`
`static long
`
`ip_high(block)
`register char block[8];
`
`{
`
`register long 1;
`
`l
`
`1
`
`l
`
`1
`
`l
`
`1
`
`l
`
`1
`
`l
`
`1
`l
`
`l
`
`l
`
`l
`
`l
`
`= iphl[block[O] & Oxf];
`
`|= iph0[(block[0] >> 4) & Oxf];
`
`|= iph3[block[l] & Oxf];
`
`|= iph2[(block[l] >> 4) & Oxf];
`
`|= iph5[block[2] & Oxf];
`
`|= iph4[(block[2] >> 4) & Oxf];
`
`|= iph7[block[3] & Oxf];
`
`|= iph6[(block[3] >> 4) & Oxf];
`
`|= iph9[block[4] & Oxf];
`
`|= iph8[(block[4] >> 4) & Oxf];
`= iphb[block[5] & Oxf];
`
`= ipha[(block[5] >> 4) & Oxf];
`
`= iphd[block[6] & Oxf];
`
`= iphc[(block[6] >> 4) & Oxf];
`
`= iphf[block[7] & Oxf];
`
`= iphe[(block[7] >> 4) & Oxf];
`l
`return 1;
`
`Key set—up
`
`} /
`
`* *
`
`*/
`
`void
`
`des_key_setup(key, subkeys)
`char key[8];
`
`char *subkeys;
`
`{
`
`register octet;
`
`register char *kp;
`
`kp = subkeys;
`octet = 16;
`
`do {
`
`*kp++ =
`
`*kp++ =
`
`*kp++ =
`
`*kp++ =
`
`;
`
`;
`
`;
`
`;
`
`*kp++ = O;
`
`*kp++ = O;
`
`*kp++ = O;
`
`*kp++ = O;
`
`} while (——octet);
`kp = subkeys;
`ExmbflD
`
`

`

`octet = key[0];
`if
`
`{
`(octet & 0x80)
`kp[
`3]
`=
`2; kp[
`
`9]
`
`kp[ 27]
`kp[ 48]
`
`kp[ 80]
`
`kp[lO4]
`
`I: 32; kp[ 33]
`=
`; kp[ 65]
`
`=
`
`=
`
`2; kp[ 89]
`
`4; kp[l22]
`
`if
`
`if
`
`{
`(octet & 0x40)
`kp[
`1]
`=
`4; kp[
`
`8]
`
`kp[ 25]
`kp[ 50]
`
`kp[ 75]
`
`kp[lO6]
`
`I: 32; kp[ 34]
`=
`; kp[ 59]
`
`=
`
`=
`
`4; kp[ 90]
`
`2; kp[ll2]
`
`{
`(octet & 0x20)
`kp[
`2]
`=
`l; kp[ l9]
`
`kp[ 40]
`
`kp[ 75]
`
`=
`
`=
`
`l; kp[ 50]
`
`2; kp[ 80]
`
`kp[ 96]
`
`l: 16; kp[lO7]
`
`if
`
`(octet & 0x10)
`
`{
`
`kp[
`
`4]
`
`|= 32; kp[ 2o]
`
`kp[ 37]
`kp[ 63]
`
`|= 32; kp[ 47]
`=
`2; kp[ 68]
`
`kp[ 84]
`
`=
`
`; kp[lOl]
`
`kp[ll9]
`
`|= 16; kp[l26]
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`18]
`
`42]
`
`74]
`
`99]
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`18]
`
`41]
`
`64]
`
`97]
`
`kp[l23]
`
`kp[
`
`kp[
`
`kp[
`
`35]
`
`57]
`
`89]
`
`kp[l20]
`
`kp[
`
`kp[
`
`kp[
`
`31]
`
`54]
`
`78]
`
`kp[108]
`
`if
`
`{
`4; kp[ 15]
`
`kp[
`
`21]
`
`(octet & 0x8)
`kp[
`5]
`=
`
`kp[ 31]
`
`kp[ 53]
`
`kp[ 92]
`
`=
`
`=
`
`=
`
`1; kp[ 38]
`
`2; kp[ 68]
`
`4; kp[103]
`
`kp[ll8]
`
`|= 32; kp[l24]
`
`if
`
`(octet & 0x4)
`kp[ 15]
`|=
`
`{
`2; kp[ 21]
`
`kp[ 46]
`
`I: 16; kp[ 55]
`
`kp[ 71]
`kp[ 93]
`
`|= 16; kp[ 76]
`=
`4; kp[lO2]
`
`kp[ll7]
`
`=
`
`; kp[l26]
`
`if
`
`(octet & 0x2)
`
`{
`
`kp[ 14]
`kp[ 38]
`
`kp[ 70]
`
`kp[lOO]
`
`kp[l27]
`
`=
`
`=
`
`=
`
`|= 16; kp[ 23]
`=
`; kp[ 52]
`
`2; kp[ 76]
`
`l; kp[llO]
`
`;
`
`{
`
`}
`octet = key[l];
`if
`
`(octet & 0x80)
`
`kp[
`
`1]
`
`|=
`
`8; kp[
`
`8]
`
`kp[ 24]
`
`I: 16; kp[ 35]
`
`kp[ 57]
`
`l: 16; kp[ 67]
`
`kp[ 88]
`
`l:
`
`1; kp[ 98]
`
`kp[ll4]
`ExmbflD
`
`|= 32; kp[l23]
`
`kp[
`
`kp[
`
`47]
`
`85]
`
`kp[108]
`
`kp[
`
`kp[
`
`kp[
`
`39]
`
`61]
`
`86]
`
`kp[108]
`
`kp[
`
`kp[
`
`kp[
`
`29]
`
`63]
`
`85]
`
`kp[ll6]
`
`kp[
`
`kp[
`
`kp[
`
`17]
`
`50]
`
`83]
`
`kp[105]
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 86
`
`

`

`if (octet & 0x40)
`kp[
`O]
`=
`l;
`
`{
`
`kp[
`
`kp[ 35]
`
`=
`
`2;
`
`kp[
`
`kp[ 56]
`kp[ 80]
`
`l: 16;
`=
`;
`
`kp[
`
`kp[
`
`kp[lZl]
`
`=
`
`4;
`
`11]
`
`40]
`
`65]
`
`99]
`
`I: 16, kp[ 16]
`I: 32; kp[ 49]
`
`kp[115]
`
`} i
`
`} i
`
`f (octet & 0x20)
`
`{
`
`9]
`kp[
`kp[ 33]
`
`I: 16;
`=
`4;
`
`kp[ 66]
`
`I: 32;
`
`kp[ 91]
`kp[ll2]
`
`I: 32;
`=
`;
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`18]
`
`43]
`
`73]
`
`97]
`
`kp[l22]
`
`f (octet & 0x10)
`kp[ 14]
`|= 32;
`
`{
`
`kp[
`
`kp[
`
`21]
`
`45]
`
`87]
`
`kp[
`
`kp[
`
`30]
`
`60]
`
`94]
`
`kp[
`
`kp[118]
`
`kp[
`
`kp[
`
`kp[
`
`20]
`
`54]
`
`78]
`
`kp[lO2]
`
`kp[
`
`kp[
`
`22]
`
`52]
`
`kp[ 36]
`kp[ 69]
`
`l: 16;
`=
`2;
`
`kp[
`
`kp[lO3]
`
`I: 32;
`
`kp[109]
`
`kp[124]
`
`|= 32;
`
`} i
`
`} i
`
`f (octet & 0x8)
`kp[
`7]
`=
`
`{
`4;
`
`kp[ 29]
`
`kp[ 60]
`
`kp[ 87]
`kp[ll6]
`
`=
`
`=
`
`;
`
`;
`
`I: 32;
`=
`2;
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`14]
`
`44]
`
`71]
`
`93]
`
`kp[125]
`
`f (octet & 0x4)
`kp[
`7]
`=
`
`{
`2;
`
`kp[
`
`kp[ 28]
`
`=
`
`;
`
`kp[
`
`12]
`
`45]
`
`kp[
`
`84]
`
`kp[lll]
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`20]
`
`46]
`
`69]
`
`95]
`
`kp[ 63]
`kp[ 95]
`
`l: 16;
`=
`4;
`
`kp[118]
`
`=
`
`1;
`
`kp[
`
`70]
`
`kp[lOl]
`
`} i
`
`f (octet & 0x2)
`
`{
`
`kp[
`
`6]
`
`I: 16;
`
`kp[ 31]
`kp[ 53]
`
`kp[ 79]
`
`kp[lOl]
`
`I: 16;
`=
`4;
`
`=
`
`=
`
`1;
`
`2;
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`13]
`
`36]
`
`62]
`
`86]
`
`kp[ll9]
`
`} o
`
`ctet = key[2];
`
`if (octet & 0x80)
`
`{
`
`kp[
`
`10]
`
`kp[
`
`19]
`
`40]
`
`o]
`kp[
`kp[ 25]
`
`kp[ 59]
`
`kp[ 81]
`
`kp[115]
`
`|= 32;
`=
`2;
`
`kp[
`
`;
`
`kp[
`
`kp[
`
`=
`
`=
`
`=
`
`4;
`
`2;
`
`34]
`
`66]
`
`91]
`
`kp[
`
`kp[
`
`kp[
`
`72]
`
`96]
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`17]
`
`42]
`
`67]
`
`98]
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 87
`
`kp[l2l]
`
`kp[
`
`kp[
`
`kp[
`
`kp[
`
`10]
`
`33]
`
`57]
`
`89]
`
`} i
`
`f (octet & 0x40)
`kp[
`3]
`I: 16;
`
`{
`
`kp[ 26]
`
`|= 32;
`
`kp[ 51]
`
`I: 32;
`
`kp[ 82]
`ExmbflD
`
`|=
`
`l;
`
`

`

`kp[104]
`
`l:
`
`2; kp[ll3]
`
`4; kp[120]
`
`kp[ 27]
`
`kp[ 49]
`
`kp[ 72]
`
`kp[ 99]
`
`kp[ 23]
`
`kp[ 46]
`
`kp[ 70]
`
`kp[lOO]
`
`kp[ 23]
`
`kp[ 45]
`
`kp[ 84]
`
`kp[110]
`
`kp[ 31]
`
`kp[ 53]
`
`kp[ 78]
`
`kp[lOO]
`
`} i
`
`} i
`
`} i
`
`} i
`
`f (octet & 0x20)
`
`{
`
`1]
`kp[
`kp[ 32]
`
`kp[ 58]
`kp[ 81]
`
`|= 16; kp[ 11]
`=
`1; kp[ 42]
`
`I: 32; kp[ 67]
`=
`1; kp[ 88]
`
`kp[114]
`
`=
`
`1;
`
`f (octet & 0x10)
`
`{
`
`kp[
`
`6]
`
`|= 32; kp[ 12]
`
`kp[ 29]
`kp[ 55]
`
`I: 32; kp[ 39]
`=
`2; kp[ 61]
`
`kp[ 76]
`
`=
`
`; kp[ 93]
`
`kp[lll]
`
`|= 16; kp[116]
`
`f (octet & 0x8)
`kp[
`6]
`=
`
`{
`2; kp[ 13]
`
`kp[ 30]
`
`kp[ 63]
`
`kp[ 95]
`kp[117]
`
`=
`
`=
`
`1; kp[ 39]
`
`; kp[ 77]
`
`l: 16; kp[lOO]
`=
`4; kp[127]
`
`f (octet & 0x4)
`kp[
`4]
`=
`
`{
`1; kp[ 13]
`
`kp[ 38]
`kp[ 62]
`
`kp[ 85]
`
`kp[109]
`
`l: 16; kp[ 47]
`=
`; kp[ 68]
`
`=
`
`=
`
`4; kp[ 94]
`
`; kp[127]
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 88
`
`kp[ 21]
`
`kp[ 55]
`
`kp[ 77]
`
`kp[108]
`
`kp[ 16]
`
`kp[ 49]
`
`kp[ 80]
`
`kp[106]
`
`kp[ 27]
`
`kp[ 48]
`
`kp[ 72]
`
`kp[112]
`
`kp[ 16]
`
`kp[ 40]
`
`kp[ 74]
`
`} i
`
`f (octet & 0x2)
`
`{
`
`5]
`kp[
`kp[ 30]
`
`kp[ 61]
`kp[ 92]
`
`l: 16; kp[ 15]
`=
`; kp[ 44]
`
`I: 32; kp[ 68]
`=
`1; kp[102]
`
`kp[126]
`
`I: 16;
`
`} o
`
`ctet = key[3];
`
`if (octet & 0x80)
`kp[
`2]
`=
`
`{
`; kp[
`
`9]
`
`kp[ 27]
`
`kp[ 58]
`
`kp[ 90]
`
`kp[ll3]
`
`=
`
`=
`
`=
`
`=
`
`4; kp[ 42]
`
`2; kp[ 75]
`
`4; kp[ 97]
`
`; kp[120]
`
`} i
`
`} i
`
`{
`f (octet & 0x40)
`kp[
`2]
`=
`4; kp[
`
`8]
`
`kp[ 32]
`kp[ 59]
`
`I: 32; kp[ 41]
`=
`4; kp[ 66]
`
`kp[ 91]
`
`=
`
`; kp[lO7]
`
`kp[123]
`
`I: 16;
`
`f (octet & 0x20)
`
`{
`
`kp[
`
`3]
`
`kp[ 25]
`
`kp[ 59]
`ExmbflD
`
`I:
`
`l:
`
`l:
`
`8; kp[ 10]
`
`4; kp[ 35]
`
`2; kp[ 65]
`
`

`

`kp[ 83]
`
`I: 32; kp[ 89]
`
`|=
`
`2; kp[ 98]
`
`kp[lO4]
`
`|=
`
`8; kp[121]
`
`} i
`
`} i
`
`} i
`
`} i
`
`{
`f (octet & 0x10)
`kp[
`4]
`=
`2; kp[ l3]
`
`kp[ 28]
`kp[ 62]
`
`I: 16; kp[ 37]
`=
`4; kp[ 79]
`
`kp[ 95]
`
`I: 32; kp[1o1]
`
`kp[l26]
`
`I: 32;
`
`|=
`
`l:
`
`l:
`
`|=
`
`4; kp[ 22]
`
`8; kp[ 52]
`
`8; kp[ 86]
`
`1; kp[llO]
`
`f (octet & 0x8)
`
`{
`
`5]
`kp[
`kp[ 36]
`
`kp[ 70]
`kp[ 94]
`
`|= 32; kp[ 12]
`=
`l; kp[ 46]
`
`|= 16; kp[ 21]
`
`|=
`
`4; kp[ 52]
`
`I: 16; kp[ 79]
`=
`; kp[108]
`
`|= 32; kp[ 85]
`
`|=
`
`2; kp[119]
`
`kp[126]
`
`=
`
`2;
`
`f (octet & 0x4)
`kp[
`5]
`=
`
`{
`2; kp[ l4]
`
`kp[ 37]
`
`|= 16; kp[ 44]
`
`kp[ 60]
`
`I: 32; kp[ 76]
`
`kp[ 93]
`kp[ll9]
`
`I: 32; kp[1o3]
`=
`2; kp[124]
`
`|=
`
`|=
`
`|=
`
`|=
`
`4; kp[ 20]
`
`4; kp[ 55]
`
`2; kp[ 87]
`
`1; kp[llO]
`
`f (octet & 0x2)
`
`{
`
`kp[
`
`7]
`
`|= 32; kp[ 12]
`
`|=
`
`4; kp[ 23]
`
`kp[ 28]
`kp[ 54]
`
`I: 32; kp[ 38]
`=
`2; kp[ 6o]
`
`|= 32; kp[ 45]
`
`|= 16; kp[ 71]
`
`kp[ 78]
`
`=
`
`l; kp[ 87]
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 89
`
`kp[lll]
`
`=
`
`; kp[118]
`
`|=
`
`2; kp[ 93]
`
`|= 16; kp[125]
`
`|= 32; kp[ 17]
`
`l:
`
`|=
`
`|=
`
`8; kp[ 51]
`
`4; kp[ 83]
`
`2; kp[112]
`
`} o
`
`ctet = key[4];
`
`{
`if (octet & 0x80)
`kp[
`l]
`=
`l; kp[ ll]
`
`kp[ 26]
`kp[ 64]
`
`kp[ 88]
`
`kp[122]
`
`I: 16; kp[ 32]
`=
`2; kp[ 73]
`
`=
`
`=
`
`4; kp[lO7]
`
`7
`
`} i
`
`} i
`
`} i
`
`{
`f (octet & 0x40)
`kp[
`O]
`=
`4; kp[
`
`9]
`
`|= 32; kp[ 18]
`
`kp[ 25]
`
`kp[ 49]
`
`kp[ 81]
`kp[lOS]
`
`=
`
`=
`
`; kp[ 34]
`
`l:
`
`8; kp[ 43]
`
`2; kp[ 58]
`
`|= 16; kp[ 74]
`
`l: 16; kp[ 9o]
`=
`4; kp[llS]
`
`|=
`
`2; kp[ 96]
`
`|= 16; kp[122]
`
`{
`f (octet & 0x20)
`kp[
`2]
`=
`2; kp[ l9]
`
`|=
`
`1; kp[ 24]
`
`kp[ 34]
`
`kp[ 57]
`
`=
`
`=
`
`4; kp[ 41]
`
`l: 32; kp[ 50]
`
`; kp[ 64]
`
`|= 32; kp[ 73]
`
`kp[ 80]
`
`l: 16; kp[ 91]
`
`|=
`
`4; kp[106]
`
`kp[ll3]
`
`|= 16; kp[123]
`
`f (octet & 0x10)
`
`{
`
`kp[
`
`3]
`
`kp[ 35]
`ExmbflD
`
`|=
`
`I:
`
`4; kp[ 10]
`
`8; kp[ 51]
`
`

`

`kp[ 67]
`
`|= 16; kp[ 72]
`
`kp[ 96]
`
`I: 32; kp[105]
`
`|=
`
`|=
`
`4:
`
`1:
`
`kp[ 91]
`
`kp[112]
`
`kp[121]
`
`|=
`
`2;
`
`f (octet & 0x8)
`
`{
`
`kp[
`
`4]
`
`|= 16; kp[ 15]
`
`kp[ 31]
`
`l:
`
`2; kp[ 37]
`
`kp[ 62]
`
`l: 16; kp[ 69]
`
`kp[ 87]
`
`l: 16; kp[ 92]
`
`kp[lO9]
`
`l:
`
`4; kp[118]
`
`=
`
`=
`I
`
`l;
`
`2;
`o
`H CW
`
`I: 32;
`=
`2;
`
`kp[ 22]
`
`kp[ 55]
`
`kp[ 76]
`
`kp[lO2]
`
`kp[l25]
`
`f (octet & 0x4)
`kp[
`6]
`l:
`
`{
`4; kp[ 23]
`
`kp[ 39]
`
`I: 32; kp[ 45]
`
`kp[ 7o]
`
`|= 32; kp[ 77]
`
`kp[ 92]
`kp[125]
`
`l: 16; kp[lOl]
`=
`2;
`
`f (octet & 0x2)
`kp[
`4]
`=
`
`{
`4; kp[ l3]
`
`kp[ 36]
`
`kp[ 63]
`
`kp[ 94]
`
`=
`
`=
`
`=
`
`2; kp[ 47]
`
`l; kp[ 69]
`
`4; kp[lOO]
`
`kp[ 3o]
`
`kp[ 54]
`
`kp[ 86]
`
`kp[ll6]
`
`kp[ 22]
`
`kp[ 53]
`
`kp[ 84]
`
`kp[ll7]
`
`} i
`
`} i
`
`} i
`
`kp[127]
`
`|= 32;
`
`} o
`
`ctet = key[5];
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 90
`
`kp[ l9]
`
`kp[ 50]
`
`kp[ 72]
`
`kp[ 98]
`
`kp[121]
`
`kp[ 24]
`
`kp[ 51]
`
`kp[ 99]
`
`kp[l20]
`
`kp[ 27]
`
`kp[ 56]
`
`kp[ 81]
`
`kp[llS]
`
`kp[ 25]
`
`kp[ 49]
`
`kp[ 73]
`
`kp[ 98]
`
`kp[l23]
`
`kp[ 28]
`
`kp[ 61]
`
`if (octet & 0x80)
`
`{
`
`3]
`kp[
`kp[ 34]
`
`kp[ 56]
`
`kp[ 82]
`
`kp[1o5]
`
`8]
`|= 32; kp[
`=
`1; kp[ 41]
`
`=
`
`=
`
`=
`
`2; kp[ 67]
`
`4; kp[ 89]
`
`; kp[ll4]
`
`} i
`
`} i
`
`} i
`
`} i
`
`f (octet & 0x40)
`
`{
`
`1]
`kp[
`kp[ 33]
`
`kp[ 64]
`
`kp[lO4]
`
`|= 32; kp[ 19]
`=
`l; kp[ 40]
`
`=
`
`=
`
`; kp[ 83]
`
`1; kp[ll4]
`
`{
`f (octet & 0x20)
`kp[
`8]
`=
`2; kp[ l7]
`
`kp[ 32]
`
`kp[ 66]
`
`kp[ 90]
`kp[122]
`
`=
`
`=
`
`4; kp[ 51]
`
`; kp[ 75]
`
`l: 16; kp[ 96]
`=
`2;
`
`f (octet & 0x10)
`
`{
`
`2]
`kp[
`kp[ 34]
`
`l: 16; kp[ 18]
`=
`2; kp[ 40]
`
`kp[ 59]
`
`l: 16; kp[ 66]
`
`kp[ 82]
`
`I: 32; kp[ 89]
`
`kp[lO7]
`
`I: 32; kp[ll3]
`
`f (octet & 0x8)
`kp[
`7]
`=
`
`{
`l; kp[ l3]
`
`kp[ 38]
`ExmbflD
`
`=
`
`4; kp[ 44]
`
`

`

`kp[ 86]
`
`kp[ll7]
`
`kp[ 36]
`
`kp[ 62]
`
`kp[ 85]
`
`- kp[lll]
`
`kp[ 20]
`
`kp[ 46]
`
`kp[ 70]
`
`kp[103]
`
`kp[124]
`
`kp[ 18]
`
`kp[ 59]
`
`kp[ 80]
`
`kp[ll3]
`
`kp[ 26]
`
`kp[ 50]
`
`kp[ 71]
`
`|= 32; kp[ 77]
`
`kp[lOO]
`
`|=
`
`2; kp[lll]
`
`kp[124]
`
`|= 16;
`
`(octet & 0x4)
`
`{
`
`kp[ 12]
`
`|=
`
`8; kp[ 29]
`
`kp[ 47]
`
`|= 16; kp[ 52]
`
`kp[ 68]
`
`kp[ 95]
`
`kp[ll7]
`
`l:
`
`l:
`
`|=
`
`2; kp[ 79]
`
`1; kp[102]
`
`2; kp[126]
`
`(octet & 0x2)
`kp[
`5]
`|=
`
`{
`l; kp[ 15]
`
`kp[ 30]
`
`I: 32; kp[ 37]
`
`kp[ 52]
`
`l: 16; kp[ 61]
`
`kp[ 79]
`
`l:
`
`2; kp[ 85]
`
`kp[llO]
`
`|= 16; kp[ll9]
`
`}i
`
`f
`
`}i
`
`f
`
`}
`octet = key[6];
`if
`
`{
`(octet & 0x80)
`9]
`kp[
`0]
`l: 16; kp[
`kp[ 24]
`=
`; kp[ 43]
`
`kp[ 65]
`
`kp[ 99]
`
`=
`
`=
`
`4; kp[ 75]
`
`2; kp[lO4]
`
`kp[123]
`
`|= 32;
`
`if
`
`kp[ 10]
`
`|= 32; kp[ 17]
`
`if
`
`if
`
`if
`
`kp[ 35]
`kp[ 56]
`
`I: 32; kp[ 41]
`=
`; kp[ 66]
`
`kp[ 82]
`
`=
`
`2; kp[ 88]
`
`kp[lO7]
`
`|= 16; kp[112]
`
`{
`(octet & 0x20)
`kp[
`O]
`=
`2; kp[ ll]
`
`kp[ 26]
`
`kp[ 49]
`
`=
`
`=
`
`4; kp[ 33]
`
`; kp[ 58]
`
`kp[ 72]
`
`I: 16; kp[ 83]
`
`kp[105]
`
`|= 16; kp[ll4]
`
`(octet & 0x10)
`kp[
`8]
`=
`
`{
`; kp[ 27]
`
`kp[ 48]
`
`kp[ 83]
`
`=
`
`=
`
`l; kp[ 58]
`
`2; kp[ 88]
`
`kp[lO4]
`
`l: 16; kp[115]
`
`(octet & 0x8)
`kp[
`5]
`=
`
`{
`; kp[ l4]
`
`kp[ 29]
`
`=
`
`2; kp[ 47]
`
`kp[ 63]
`
`I: 32; kp[ 68]
`
`kp[ 84]
`kp[llO]
`
`I: 32; kp[ 94]
`=
`2; kp[ll6]
`
`if
`
`(octet & 0x4)
`
`{
`
`kp[
`
`4]
`
`|=
`
`8; kp[ 15]
`
`kp[ 31]
`ExmbflD
`
`I: 32; kp[ 37]
`
`kp[ 73]
`
`kp[ 97]
`
`kp[121]
`
`kp[ l6]
`
`kp[ 42]
`
`kp[ 65]
`
`kp[ 98]
`
`kp[ 43]
`
`kp[ 64]
`
`kp[ 97]
`
`kp[122]
`
`kp[ 23]
`
`kp[ 54]
`
`kp[ 79]
`
`kp[lOl]
`
`kp[127]
`
`kp[ 22]
`
`kp[ 46]
`
`Petitioner Oracle-Apple - Exhibit 1010 - Page 91
`
`

`

`kp[ 60]
`
`l:
`
`2; kp[ 69]
`
`kp[ 84]
`
`l: 16; kp[ 93]
`
`kp[ll8]
`
`l:
`
`4;
`
`4; kp[ 78]
`
`. kp[108]
`
`} i
`
`f (octet & 0x2)
`
`{
`
`7]
`kp[
`kp[ 39]
`
`kp[ 62]
`
`kp[ 92]
`
`kp[l25]
`
`|= 16; kp[ 14]
`=
`4; kp[ 45]
`
`; kp[ 28]
`
`32; kp[ 55]
`
`=
`
`=
`
`=
`
`l; kp[ 76]
`
`l; kp[ 86]
`
`; kp

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