NAME

Crypt::SIGMA

PROTOCOL

https://www.ietf.org/proceedings/52/slides/ipsec-9.pdf

SIGMA_I

FUNCTION

derive_z_ke_km

my $r = derive_z_ke_km( $self_priv, $peer_pub, $hash_name, $key_len );

derive_ks

my $ks = derive_ks( $z, $na, $nb, $hash_name, $key_len );

a_send_msg1

my $a_send_msg1_r = a_send_msg1( $group, $random_range, $point_compress_t, $pack_msg_func, $ctx );

b_recv_msg1

my $b_recv_msg1_r = b_recv_msg1($group, $msg1, $unpack_msg_func, $ctx);

b_send_msg2

my $b_send_msg2_r = b_send_msg2( $group, $b_recv_msg1_r, $id_b, $random_range, $point_compress_t, $hash_name, $key_len, $pack_msg_func, $mac_func, $sign_func, $enc_func, $ctx );

a_recv_msg2

my $a_recv_msg2_r = a_recv_msg2( $group, $msg2, $na, $ek_key_a_r, $hash_name, $key_len, $pack_msg_func, $unpack_msg_func, $mac_func, $sig_verify_func, $dec_func, $ctx);

a_send_msg3

my $a_send_msg3 = a_send_msg3( $id_a, $a_recv_nb, $ek_key_a_r, $derive_key, $pack_msg_func, $mac_func, $sign_func, $enc_func );

b_recv_msg3

my $verify_result = b_recv_msg3( $msg3, $b_send_msg2_r, $pack_msg_func, $unpack_msg_func, $mac_func, $sig_verify_func, $dec_func );

b_send_msg4

my $b_send_msg4 = b_send_msg4($b_recv_msg1_r, $b_send_msg2_r, $pack_msg_func, $mac_func);

a_recv_msg4

my $sigma_result = a_recv_msg4( $msg4, $na, $a_recv_msg2_r, $pack_msg_func, $mac_func );