| 98 | } |
| 99 | |
| 100 | static void |
| 101 | padlock_cipher_key_setup(struct padlock_session *ses, const void *key, int klen) |
| 102 | { |
| 103 | union padlock_cw *cw; |
| 104 | int i; |
| 105 | |
| 106 | cw = &ses->ses_cw; |
| 107 | if (cw->cw_key_generation == PADLOCK_KEY_GENERATION_SW) { |
| 108 | /* Build expanded keys for both directions */ |
| 109 | rijndaelKeySetupEnc(ses->ses_ekey, key, klen * 8); |
| 110 | rijndaelKeySetupDec(ses->ses_dkey, key, klen * 8); |
| 111 | for (i = 0; i < 4 * (RIJNDAEL_MAXNR + 1); i++) { |
| 112 | ses->ses_ekey[i] = ntohl(ses->ses_ekey[i]); |
| 113 | ses->ses_dkey[i] = ntohl(ses->ses_dkey[i]); |
| 114 | } |
| 115 | } else { |
| 116 | bcopy(key, ses->ses_ekey, klen); |
| 117 | bcopy(key, ses->ses_dkey, klen); |
| 118 | } |
| 119 | } |
| 120 | |
| 121 | int |
| 122 | padlock_cipher_setup(struct padlock_session *ses, |
no test coverage detected