ISO 10126 padding - related to #54
Karel Miko
4 years ago
119 | 119 |
# 3 ANSI X.923 padding
|
120 | 120 |
# 4 zero padding
|
121 | 121 |
# 5 zero padding (+a block of zeros if the output length is divisible by the blocksize)
|
|
122 |
# 6 ISO 10126 padding
|
122 | 123 |
# $cipher_rounds ... optional num of rounds for given cipher
|
123 | 124 |
[%-ELSE%]
|
124 | 125 |
my $m = Crypt::Mode::[%orig_name%]->new($name);
|
235 | 235 |
else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
|
236 | 236 |
else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
|
237 | 237 |
else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
|
|
238 |
else if (self->padding_mode == 6) { padmode = LTC_PAD_ISO_10126 | (&self->state)->blocklen; }
|
238 | 239 |
else { croak("FATAL: unknown padding"); }
|
239 | 240 |
blen = sizeof(self->pad);
|
240 | 241 |
rv = padding_pad(self->pad, self->padlen, &blen, padmode);
|
|
258 | 259 |
else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
|
259 | 260 |
else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
|
260 | 261 |
else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
|
|
262 |
else if (self->padding_mode == 6) { padmode = LTC_PAD_ISO_10126 | (&self->state)->blocklen; }
|
261 | 263 |
else { croak("FATAL: unknown padding"); }
|
262 | 264 |
rv = padding_depad(tmp_block, &blen, padmode);
|
263 | 265 |
if (rv != CRYPT_OK) croak("FATAL: padding_depad failed: %s", error_to_string(rv));
|
223 | 223 |
else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
|
224 | 224 |
else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
|
225 | 225 |
else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
|
|
226 |
else if (self->padding_mode == 6) { padmode = LTC_PAD_ISO_10126 | (&self->state)->blocklen; }
|
226 | 227 |
else { croak("FATAL: unknown padding"); }
|
227 | 228 |
blen = sizeof(self->pad);
|
228 | 229 |
rv = padding_pad(self->pad, self->padlen, &blen, padmode);
|
|
246 | 247 |
else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
|
247 | 248 |
else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
|
248 | 249 |
else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
|
|
250 |
else if (self->padding_mode == 6) { padmode = LTC_PAD_ISO_10126 | (&self->state)->blocklen; }
|
249 | 251 |
else { croak("FATAL: unknown padding"); }
|
250 | 252 |
rv = padding_depad(tmp_block, &blen, padmode);
|
251 | 253 |
if (rv != CRYPT_OK) croak("FATAL: padding_depad failed: %s", error_to_string(rv));
|
216 | 216 |
else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
|
217 | 217 |
else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
|
218 | 218 |
else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
|
|
219 |
else if (self->padding_mode == 6) { padmode = LTC_PAD_ISO_10126 | (&self->state)->blocklen; }
|
219 | 220 |
else { croak("FATAL: unknown padding"); }
|
220 | 221 |
blen = sizeof(self->pad);
|
221 | 222 |
rv = padding_pad(self->pad, self->padlen, &blen, padmode);
|
|
239 | 240 |
else if (self->padding_mode == 3) { padmode = LTC_PAD_ANSI_X923 | (&self->state)->blocklen; }
|
240 | 241 |
else if (self->padding_mode == 4) { padmode = LTC_PAD_ZERO | (&self->state)->blocklen; }
|
241 | 242 |
else if (self->padding_mode == 5) { padmode = LTC_PAD_ZERO_ALWAYS | (&self->state)->blocklen; }
|
|
243 |
else if (self->padding_mode == 6) { padmode = LTC_PAD_ISO_10126 | (&self->state)->blocklen; }
|
242 | 244 |
else { croak("FATAL: unknown padding"); }
|
243 | 245 |
rv = padding_depad(tmp_block, &blen, padmode);
|
244 | 246 |
if (rv != CRYPT_OK) croak("FATAL: padding_depad failed: %s", error_to_string(rv));
|
75 | 75 |
# 3 ANSI X.923 padding
|
76 | 76 |
# 4 zero padding
|
77 | 77 |
# 5 zero padding (+a block of zeros if the output length is divisible by the blocksize)
|
|
78 |
# 6 ISO 10126 padding
|
78 | 79 |
# $cipher_rounds ... optional num of rounds for given cipher
|
79 | 80 |
|
80 | 81 |
=head2 encrypt
|
76 | 76 |
# 3 ANSI X.923 padding
|
77 | 77 |
# 4 zero padding
|
78 | 78 |
# 5 zero padding (+a block of zeros if the output length is divisible by the blocksize)
|
|
79 |
# 6 ISO 10126 padding
|
79 | 80 |
# $cipher_rounds ... optional num of rounds for given cipher
|
80 | 81 |
|
81 | 82 |
=head2 encrypt
|