Rev

Rev 601 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | Bug Tracker

Rev 601 Rev 607
Line 10... Line 10...
10
10
11
    function f_IA5_2oct(
11
    function f_IA5_2oct(
12
        charstring p_ASCII_String
12
        charstring p_ASCII_String
13
    ) return octetstring  {
13
    ) return octetstring  {
14
        var integer i;
14
        var integer i;
15
        var integer k;
15
        var integer j;
16
        var integer v_Length := lengthof(p_ASCII_String);
16
        var integer v_Length := lengthof(p_ASCII_String);
17
        var integer v_Temp;
17
        var integer v_Temp;
18
        var octetstring v_Noctets := ''O;
18
        var octetstring v_Noctets := ''O;
19
        var bitstring v_TempBitSrc := ''B;
19
        var bitstring v_TempBitSrc := ''B;
20
        var bitstring v_TempBitDes := ''B;
20
        var bitstring v_TempBitDes := ''B;
21
21
22
        if ((v_Length <= 0) or (v_Length > 160) or (((v_Length * 7) mod 8) != 0)) {
22
        if ((v_Length <= 0) or (v_Length > 160) or (((v_Length * 7) mod 8) != 0)) {
23
            log("Invalid value of input string length.");
23
            log("*** " & __SCOPE__ & "INFO: Invalid value of input string length ***");
24
        }
24
        }
25
25
26
        for (i := 0; i < v_Length; i := i + 1) {
26
        for (i := 0; i < v_Length; i := i + 1) {
27
            v_Temp := char2int(p_ASCII_String[i]);
27
            v_Temp := char2int(p_ASCII_String[i]);
28
            v_TempBitSrc := int2bit(v_Temp, 8);
28
            v_TempBitSrc := int2bit(v_Temp, 8);
29
29
30
            for (k := 1; k <= 7; k := k + 1) {
30
            for (j := 1; j <= 7; j := j + 1) {
31
31
32
                v_TempBitDes := v_TempBitSrc[8 - k] & v_TempBitDes;
32
                v_TempBitDes := v_TempBitSrc[8 - j] & v_TempBitDes;
33
33
34
                if (((7 * i + k) mod 8) == 0) {
34
                if (((7 * i + j) mod 8) == 0) {
35
35
36
                    v_Noctets := v_Noctets & bit2oct(v_TempBitDes);
36
                    v_Noctets := v_Noctets & bit2oct(v_TempBitDes);
37
                    v_TempBitDes := ''B;
37
                    v_TempBitDes := ''B;
38
                }
38
                }
39
            }
39
            }