`&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