Asterisk.org: Developer Documentation (28 Oct 2009)

Wed Oct 28 15:47:57 2009

## Asterisk developer's documentation

# aesopt.h File Reference

`#include "asterisk/aes.h"`
`#include "asterisk/endian.h"`

Include dependency graph for aesopt.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Defines

#define | aes_sw32(x) ((brot((x),8) & 0x00ff00ff) | (brot((x),24) & 0xff00ff00))
#define | ALGORITHM_BYTE_ORDER PLATFORM_BYTE_ORDER
#define | ARRAYS
#define | BPOLY 0x1b
#define | BRG_BIG_ENDIAN 4321
#define | BRG_LITTLE_ENDIAN 1234
#define | brot(x, n) (((aes_32t)(x) << n) | ((aes_32t)(x) >> (32 - n)))
#define | d_1(t, n, b, v) extern const t n[256]
#define | d_4(t, n, b, v) extern const t n[4][256]
#define | dec_fmvars aes_32t g2
#define | dec_imvars aes_32t g2, g4, g9
#define | DEC_ROUND FOUR_TABLES
#define | DEC_UNROLL FULL
#define | ENC_ROUND FOUR_TABLES
#define | ENC_UNROLL FULL
#define | FF_TABLES
#define | FIXED_TABLES
#define | four_tables(x, tab, vf, rf, c)
#define | FOUR_TABLES 4
#define | FULL 2
#define | fwd_mcol(x) (g2 = gf_mulx(x), g2 ^ upr((x) ^ g2, 3) ^ upr((x), 2) ^ upr((x), 1))
#define | gf_mulx(x) ((((x) & m2) << 1) ^ ((((x) & m1) >> 7) * BPOLY))
#define | inv_mcol(x)
#define | KEY_SCHED FOUR_TABLES
#define | LAST_DEC_ROUND FOUR_TABLES
#define | LAST_ENC_ROUND FOUR_TABLES
#define | ls_box(x, c) no_table(x,t_use(s,box),vf1,rf2,c)
#define | m1 0x80808080
#define | m2 0x7f7f7f7f
#define | no_table(x, box, vf, rf, c)
#define | NO_TABLES 0
#define | NONE 0
#define | one_table(x, op, tab, vf, rf, c)
#define | ONE_TABLE 1
#define | PARTIAL 1
#define | RC_LENGTH (5 * (AES_BLOCK_SIZE / 4 - 2))
#define | rf1(r, c) (r)
#define | rf2(r, c) ((8+r-c)&3)
#define | s(x, c) x[c]
#define | SAFE_IO
#define | t_dec(m, n) t_##m##n
#define | t_set(m, n) t_##m##n
#define | t_use(m, n) t_##m##n
#define | vf1(x, r, c) (x)
#define | word_in(x, c)
#define | word_out(x, c, v)
#define | WPOLY 0x011b

## Functions

const aes_32t | t_dec (r, c)[RC_LENGTH]

## Define Documentation

#define aes_sw32 | ( | x |  | ) | ((brot((x),8) & 0x00ff00ff) | (brot((x),24) & 0xff00ff00))

Definition at line 250 of file aesopt.h.

#define ALGORITHM_BYTE_ORDER PLATFORM_BYTE_ORDER

Definition at line 311 of file aesopt.h.

#define ARRAYS

Definition at line 384 of file aesopt.h.

#define BPOLY 0x1b

Definition at line 572 of file aesopt.h.

#define BRG_BIG_ENDIAN 4321

Definition at line 162 of file aesopt.h.

#define BRG_LITTLE_ENDIAN 1234

Definition at line 161 of file aesopt.h.

#define brot | ( | x,
|  | n |  | ) | (((aes_32t)(x) << n) | ((aes_32t)(x) >> (32 - n)))

Definition at line 249 of file aesopt.h.

#define d_1 | ( | t,
|  | n,
|  | b,
|  | v |  | ) | extern const t n[256]

Definition at line 949 of file aesopt.h.

#define d_4 | ( | t,
|  | n,
|  | b,
|  | v |  | ) | extern const t n[4][256]

Definition at line 950 of file aesopt.h.

#define dec_fmvars aes_32t g2

Definition at line 692 of file aesopt.h.

#define dec_imvars aes_32t g2, g4, g9

Definition at line 701 of file aesopt.h.

#define DEC_ROUND FOUR_TABLES

Definition at line 464 of file aesopt.h.

#define DEC_UNROLL FULL

Definition at line 360 of file aesopt.h.

#define ENC_ROUND FOUR_TABLES

Definition at line 448 of file aesopt.h.

#define ENC_UNROLL FULL

Definition at line 352 of file aesopt.h.

#define FF_TABLES

Definition at line 373 of file aesopt.h.

#define FIXED_TABLES

Definition at line 411 of file aesopt.h.

#define four_tables | ( | x,
|  | tab,
|  | vf,
|  | rf,
|  | c |  | ) |

Value:

    (  tab[0][bval(vf(x,0,c),rf(0,c))] \
      ^ tab[1][bval(vf(x,1,c),rf(1,c))] \
      ^ tab[2][bval(vf(x,2,c),rf(2,c))] \
      ^ tab[3][bval(vf(x,3,c),rf(3,c))])

Definition at line 674 of file aesopt.h.

#define FOUR_TABLES 4

Definition at line 239 of file aesopt.h.

#define FULL 2

Definition at line 242 of file aesopt.h.

#define fwd_mcol | ( | x |  | ) | (g2 = gf_mulx(x), g2 ^ upr((x) ^ g2, 3) ^ upr((x), 2) ^ upr((x), 1))

Definition at line 693 of file aesopt.h.

#define gf_mulx | ( | x |  | ) | ((((x) & m2) << 1) ^ ((((x) & m1) >> 7) * BPOLY))

Definition at line 578 of file aesopt.h.

#define inv_mcol | ( | x |  | ) |

Value:

    (g2 = gf_mulx(x), g4 = gf_mulx(g2), g9 = (x) ^ gf_mulx(g4), g4 ^= g9, \
                            (x) ^ g2 ^ g4 ^ upr(g2 ^ g9, 3) ^ upr(g4, 2) ^ upr(g9, 1))

Definition at line 702 of file aesopt.h.

#define KEY_SCHED FOUR_TABLES

Definition at line 484 of file aesopt.h.

#define LAST_DEC_ROUND FOUR_TABLES

Definition at line 472 of file aesopt.h.

#define LAST_ENC_ROUND FOUR_TABLES

Definition at line 456 of file aesopt.h.

#define ls_box | ( | x,
|  | c |  | ) | no_table(x,t_use(s,box),vf1,rf2,c)

Definition at line 715 of file aesopt.h.

#define m1 0x80808080

Definition at line 576 of file aesopt.h.

Referenced by sms_process(), and transtime().

#define m2 0x7f7f7f7f

Definition at line 577 of file aesopt.h.

#define no_table | ( | x,
|  | box,
|  | vf,
|  | rf,
|  | c |  | ) |

Value:

    bytes2word( \
        box[bval(vf(x,0,c),rf(0,c))], \
        box[bval(vf(x,1,c),rf(1,c))], \
        box[bval(vf(x,2,c),rf(2,c))], \
        box[bval(vf(x,3,c),rf(3,c))])

Definition at line 662 of file aesopt.h.

#define NO_TABLES 0

Definition at line 237 of file aesopt.h.

#define NONE 0

Definition at line 240 of file aesopt.h.

Referenced by __sip_autodestruct(), __sip_show_channels(), cb_extensionstate(), handle_request_subscribe(), handle_response(), sip_alloc(), sip_show_channel(), sip_show_history(), and transmit_state_notify().

#define one_table | ( | x,
|  | op,
|  | tab,
|  | vf,
|  | rf,
|  | c |  | ) |

Value:

    (     tab[bval(vf(x,0,c),rf(0,c))] \
      ^ op(tab[bval(vf(x,1,c),rf(1,c))],1) \
      ^ op(tab[bval(vf(x,2,c),rf(2,c))],2) \
      ^ op(tab[bval(vf(x,3,c),rf(3,c))],3))

Definition at line 668 of file aesopt.h.

#define ONE_TABLE 1

Definition at line 238 of file aesopt.h.

#define PARTIAL 1

Definition at line 241 of file aesopt.h.

#define RC_LENGTH (5 * (AES_BLOCK_SIZE / 4 - 2))

Definition at line 493 of file aesopt.h.

#define rf1 | ( | r,
|  | c |  | ) | (r)

Definition at line 681 of file aesopt.h.

#define rf2 | ( | r,
|  | c |  | ) | ((8+r-c)&3)

Definition at line 682 of file aesopt.h.

#define s | ( | x,
|  | c |  | ) | x[c]

Definition at line 399 of file aesopt.h.

Referenced by accept_thread(), add_sdp(), agent_devicestate(), agent_request(), aPGSQL_connect(), aPGSQL_fetch(), aPGSQL_query(), append_mailbox(), apply_options(), ast_app_parse_options(), ast_enum_init(), ast_filehelper(), ast_get_enum(), ast_get_txt(), ast_gethostbyname(), ast_lock_path(), ast_log_vsyslog(), ast_ouraddrfor(), ast_parseable_goto(), ast_playtones_start(), ast_readaudio_callback(), ast_readvideo_callback(), ast_rtp_reload(), ast_sched_del(), ast_sched_when(), ast_smoother_new(), ast_unlock_path(), attempt_reconnect(), build_secret(), console_dial(), cut_exec(), cut_internal(), destroy_endpoint(), dundi_answer_entity(), dundi_answer_query(), dundi_prop_precache(), dundi_show_precache(), eval_exec(), exec_exec(), filtroL(), filtroM(), filtroS(), find_channel(), forward_message(), function_enum(), function_ilink(), function_remote(), get_csv(), get_day(), get_dow(), get_month(), handle_request(), handle_showmanconn(), iax2_show_cache(), init_logger_chain(), jb_reset(), launch_netscript(), lintoalaw_framein(), lintog726_framein(), lintoulaw_framein(), listener(), load_config(), macro_exec(), manager_event(), math_exec(), monitor_handle_notowned(), param_parse(), parkandannounce_exec(), parse_moved_contact(), pbx_builtin_gotoif(), pbx_builtin_gotoiftime(), pbx_builtin_importvar(), pcm_write(), privacy_exec(), quit_handler(), random_exec(), rbi_pltocode(), readfile_exec(), record_exec(), recordthread(), reset_global_eid(), rpt_exec(), rtp_socket(), sayunixtime_exec(), sched_context_destroy(), send_sound(), session_do(), setrbi(), sms_readfile(), strtoq(), ulawtoalaw_framein(), vasprintf(), vmauthenticate(), vpb_call(), vpb_digit(), vpb_request(), zt_call(), and zt_request().

#define SAFE_IO

Definition at line 337 of file aesopt.h.

#define t_dec | ( | m,
|  | n |  | ) | t_##m##n

Definition at line 764 of file aesopt.h.

#define t_set | ( | m,
|  | n |  | ) | t_##m##n

Definition at line 765 of file aesopt.h.

#define t_use | ( | m,
|  | n |  | ) | t_##m##n

Definition at line 766 of file aesopt.h.

#define vf1 | ( | x,
|  | r,
|  | c |  | ) | (x)

Definition at line 680 of file aesopt.h.

#define word_in | ( | x,
|  | c |  | ) |

Value:

    bytes2word(((aes_08t*)(x)+4*c)[0], ((aes_08t*)(x)+4*c)[1], \
                                       ((aes_08t*)(x)+4*c)[2], ((aes_08t*)(x)+4*c)[3])

Definition at line 552 of file aesopt.h.

#define word_out | ( | x,
|  | c,
|  | v |  | ) |

Value:

    { ((aes_08t*)(x)+4*c)[0] = bval(v,0); ((aes_08t*)(x)+4*c)[1] = bval(v,1); \
                              ((aes_08t*)(x)+4*c)[2] = bval(v,2); ((aes_08t*)(x)+4*c)[3] = bval(v,3); }

Definition at line 554 of file aesopt.h.

#define WPOLY 0x011b

Definition at line 571 of file aesopt.h.

## Function Documentation

const aes_32t t_dec | ( | r | ,
|  | c |  |
| ) |  |  |