Allow transition to Error states from thye Init state.
authorWerner Koch <wk@gnupg.org>
Tue, 16 Sep 2008 16:53:43 +0000 (16:53 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 16 Sep 2008 16:53:43 +0000 (16:53 +0000)
doc/ChangeLog
doc/fips-fsm.fig
doc/gcrypt.texi
src/ChangeLog
src/fips.c

index a417842..5844e31 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-16  Werner Koch  <wk@g10code.com>
+
+       * gcrypt.texi (FIPS Mode): Describe new transitions 18 and 19.
+       * fips-fsm.fig: Add new transitions.
+
 2008-09-15  Werner Koch  <wk@g10code.com>
 
        * gcrypt.texi: Fold the two FIPS appendices into one.
index a916a5c..d3a307a 100644 (file)
@@ -1,4 +1,4 @@
-#FIG 3.2  Produced by xfig version 3.2.5-alpha5
+#FIG 3.2
 Portrait
 Center
 Metric
@@ -20,50 +20,127 @@ Single
 0 42 #8c8c8c
 0 43 #424242
 6 900 270 8775 9450
-6 900 270 8775 9450
 5 1 0 2 0 7 50 -1 -1 0.000 1 1 1 0 4837.500 16740.000 6750 6705 4725 6525 2925 6705
        1 1 2.00 120.00 240.00
 5 1 0 2 0 7 50 -1 -1 0.000 1 1 1 0 3026.138 8399.825 4185 8370 3870 7605 2925 7245
        1 1 2.00 120.00 240.00
+5 1 0 2 0 7 50 -1 -1 0.000 1 1 1 0 7708.125 -2028.750 2925 5175 4815 6120 6795 6570
+       1 1 2.00 120.00 240.00
+6 3096 1593 3380 1877
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3238 1735 142 142 3238 1735 3103 1690
+4 0 0 50 -1 13 12 0.0000 4 105 105 3157 1805 1\001
+-6
+6 2266 3607 2550 3891
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2408 3749 142 142 2408 3749 2273 3704
+4 0 0 50 -1 13 12 0.0000 4 105 105 2327 3819 2\001
+-6
+6 1566 5667 1850 5951
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1708 5809 142 142 1708 5809 1573 5764
+4 0 0 50 -1 13 12 0.0000 4 105 105 1627 5879 3\001
+-6
+6 5706 1543 5990 1827
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5848 1685 142 142 5848 1685 5713 1640
+4 0 0 50 -1 13 12 0.0000 4 105 105 5767 1755 6\001
+-6
+6 5986 7757 6270 8041
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6128 7899 142 142 6128 7899 5993 7854
+4 0 0 50 -1 13 12 0.0000 4 105 105 6047 7969 7\001
+-6
+6 7426 4747 7710 5031
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7568 4889 142 142 7568 4889 7433 4844
+4 0 0 50 -1 13 12 0.0000 4 105 105 7487 4959 8\001
+-6
+6 5866 3737 6150 4021
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6008 3879 142 142 6008 3879 5873 3834
+4 0 0 50 -1 13 12 0.0000 4 105 210 5882 3940 10\001
+-6
+6 5276 2517 5560 2801
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5418 2659 142 142 5418 2659 5283 2614
+4 0 0 50 -1 13 12 0.0000 4 105 210 5292 2720 11\001
+-6
+6 4126 3573 4410 3857
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4268 3715 142 142 4268 3715 4133 3670
+4 0 0 50 -1 13 12 0.0000 4 105 210 4142 3776 12\001
+-6
+6 3066 5723 3350 6007
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3208 5865 142 142 3208 5865 3073 5820
+4 0 0 50 -1 13 12 0.0000 4 105 210 3082 5926 13\001
+-6
+6 4036 6623 4320 6907
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4178 6765 142 142 4178 6765 4043 6720
+4 0 0 50 -1 13 12 0.0000 4 105 210 4052 6826 14\001
+-6
+6 4416 7213 4700 7497
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4558 7355 142 142 4558 7355 4423 7310
+4 0 0 50 -1 13 12 0.0000 4 105 210 4432 7416 15\001
+-6
+6 5066 7223 5350 7507
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5208 7365 142 142 5208 7365 5073 7320
+4 0 0 50 -1 13 12 0.0000 4 105 105 5127 7435 5\001
+-6
+6 3566 7573 3850 7857
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3708 7715 142 142 3708 7715 3573 7670
+4 0 0 50 -1 13 12 0.0000 4 105 210 3582 7776 16\001
+-6
+6 2896 7783 3180 8067
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3038 7925 142 142 3038 7925 2903 7880
+4 0 0 50 -1 13 12 0.0000 4 105 105 2957 7995 4\001
+-6
+6 6426 5753 6710 6037
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6568 5895 142 142 6568 5895 6433 5850
+4 0 0 50 -1 13 12 0.0000 4 105 105 6487 5965 9\001
+-6
 6 3600 8370 5985 9450
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         5970 9450 3600 9450 3600 8370 5970 8370 5970 9450
-4 0 0 50 -1 0 24 0.0000 4 360 1965 3870 9000 Operational\001
+4 0 0 50 -1 0 24 0.0000 4 330 1725 3870 9000 Operational\001
 -6
 6 900 4320 2970 5445
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         2940 5445 915 5445 915 4335 2940 4335 2940 5445
-4 0 0 50 -1 0 24 0.0000 4 270 585 1620 4995 Init\001
+4 0 0 50 -1 0 24 0.0000 4 240 510 1620 4995 Init\001
 -6
 6 900 6345 2970 7470
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         2955 7455 930 7455 930 6345 2955 6345 2955 7455
-4 0 0 50 -1 0 24 0.0000 4 270 1515 1215 7020 Self-Test\001
+4 0 0 50 -1 0 24 0.0000 4 255 1335 1215 7020 Self-Test\001
 -6
 6 6750 6345 8775 7470
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         8775 7470 6750 7470 6750 6360 8775 6360 8775 7470
-4 0 0 50 -1 0 24 0.0000 4 270 870 7335 7020 Error\001
+4 0 0 50 -1 0 24 0.0000 4 240 765 7335 7020 Error\001
 -6
 6 3825 4320 5850 5445
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         5850 5445 3825 5445 3825 4335 5850 4335 5850 5445
-4 0 0 50 -1 0 24 0.0000 4 270 1830 3915 4995 Fatal-Error\001
+4 0 0 50 -1 0 24 0.0000 4 255 1620 3915 4995 Fatal-Error\001
 -6
 6 6750 2295 8775 3420
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         8775 3420 6750 3420 6750 2310 8775 2310 8775 3420
-4 0 0 50 -1 0 24 0.0000 4 270 1695 6930 2970 Shutdown\001
+4 0 0 50 -1 0 24 0.0000 4 240 1455 6930 2970 Shutdown\001
 -6
 6 2475 2295 4500 3420
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         4500 3405 2475 3405 2475 2295 4500 2295 4500 3405
-4 0 0 50 -1 0 24 0.0000 4 270 1695 2655 2970 Power-On\001
+4 0 0 50 -1 0 24 0.0000 4 240 1470 2655 2970 Power-On\001
 -6
 6 2475 270 4500 1395
 2 4 0 1 0 7 50 -1 -1 0.000 0 0 20 0 0 5
         4500 1395 2475 1395 2475 285 4500 285 4500 1395
-4 0 0 50 -1 0 24 0.0000 4 270 1755 2565 945 Power-Off\001
+4 0 0 50 -1 0 24 0.0000 4 240 1530 2565 945 Power-Off\001
+-6
+6 4050 6196 4334 6480
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4192 6338 142 142 4192 6338 4057 6293
+4 0 0 50 -1 13 12 0.0000 4 105 210 4066 6399 17\001
+-6
+6 3188 5033 3486 5331
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3337 5182 142 142 3337 5182 3202 5137
+4 0 0 50 -1 13 12 0.0000 4 105 210 3211 5243 18\001
+-6
+6 3053 4358 3351 4656
+1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3202 4507 142 142 3202 4507 3067 4462
+4 0 0 50 -1 13 12 0.0000 4 105 210 3076 4568 19\001
 -6
 2 1 0 2 0 7 50 -1 -1 0.000 0 1 -1 1 0 2
        1 1 2.00 120.00 240.00
@@ -110,73 +187,7 @@ Single
 2 1 0 2 0 7 50 -1 -1 0.000 0 1 -1 1 0 2
        1 1 2.00 120.00 240.00
         5895 8460 6840 7380
--6
-6 3096 1593 3380 1877
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3238 1735 142 142 3238 1735 3103 1690
-4 0 0 50 -1 13 12 0.0000 4 105 120 3157 1805 1\001
--6
-6 2266 3607 2550 3891
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 2408 3749 142 142 2408 3749 2273 3704
-4 0 0 50 -1 13 12 0.0000 4 105 120 2327 3819 2\001
--6
-6 1566 5667 1850 5951
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 1708 5809 142 142 1708 5809 1573 5764
-4 0 0 50 -1 13 12 0.0000 4 105 120 1627 5879 3\001
--6
-6 5706 1543 5990 1827
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5848 1685 142 142 5848 1685 5713 1640
-4 0 0 50 -1 13 12 0.0000 4 105 120 5767 1755 6\001
--6
-6 5986 7757 6270 8041
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6128 7899 142 142 6128 7899 5993 7854
-4 0 0 50 -1 13 12 0.0000 4 105 120 6047 7969 7\001
--6
-6 7426 4747 7710 5031
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 7568 4889 142 142 7568 4889 7433 4844
-4 0 0 50 -1 13 12 0.0000 4 105 120 7487 4959 8\001
--6
-6 5866 3737 6150 4021
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6008 3879 142 142 6008 3879 5873 3834
-4 0 0 50 -1 13 12 0.0000 4 105 240 5882 3940 10\001
--6
-6 5276 2517 5560 2801
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5418 2659 142 142 5418 2659 5283 2614
-4 0 0 50 -1 13 12 0.0000 4 105 240 5292 2720 11\001
--6
-6 4126 3573 4410 3857
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4268 3715 142 142 4268 3715 4133 3670
-4 0 0 50 -1 13 12 0.0000 4 105 240 4142 3776 12\001
--6
-6 3066 5723 3350 6007
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3208 5865 142 142 3208 5865 3073 5820
-4 0 0 50 -1 13 12 0.0000 4 105 240 3082 5926 13\001
--6
-6 4036 6623 4320 6907
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4178 6765 142 142 4178 6765 4043 6720
-4 0 0 50 -1 13 12 0.0000 4 105 240 4052 6826 14\001
--6
-6 4416 7213 4700 7497
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 4558 7355 142 142 4558 7355 4423 7310
-4 0 0 50 -1 13 12 0.0000 4 105 240 4432 7416 15\001
--6
-6 5066 7223 5350 7507
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5208 7365 142 142 5208 7365 5073 7320
-4 0 0 50 -1 13 12 0.0000 4 105 120 5127 7435 5\001
--6
-6 3566 7573 3850 7857
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3708 7715 142 142 3708 7715 3573 7670
-4 0 0 50 -1 13 12 0.0000 4 105 240 3582 7776 16\001
--6
-6 4996 6193 5280 6477
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 5138 6335 142 142 5138 6335 5003 6290
-4 0 0 50 -1 13 12 0.0000 4 105 240 5012 6396 17\001
--6
-6 2896 7783 3180 8067
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 3038 7925 142 142 3038 7925 2903 7880
-4 0 0 50 -1 13 12 0.0000 4 105 120 2957 7995 4\001
--6
-6 6426 5753 6710 6037
-1 3 0 1 0 7 50 -1 -1 0.000 1 0.0000 6568 5895 142 142 6568 5895 6433 5850
-4 0 0 50 -1 13 12 0.0000 4 105 120 6487 5965 9\001
--6
+2 1 0 2 0 7 50 -1 -1 0.000 0 1 -1 1 0 2
+       1 1 2.00 120.00 240.00
+        2925 4680 3825 4680
 -6
index 11c97cc..1608d6c 100644 (file)
@@ -5566,7 +5566,7 @@ running self-tests.
 Self-Test to Error is triggred by a failed self-test.
 
 @item 15
-Operational to Fatal-Error is triggred if Libcrypt encountered a
+Operational to Fatal-Error is triggered if Libcrypt encountered a
 non-recoverable error.
 
 @item 16
@@ -5577,6 +5577,13 @@ the self-tests again.
 Error to Self-Test is triggered if the application has requested to run
 self-tests to get to get back into operational state after an error.
 
+@item 18
+Init to Error is triggered by errors in the initialization code.
+
+@item 19
+Init to Fatal-Error is triggered by non-recoverable errors in the
+initialization code.
+
 @end table
 @end float
 
index 43f60b4..04327cb 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-16  Werner Koch  <wk@g10code.com>
+
+       * fips.c (fips_new_state): Allow transition to Error and
+       Fatal-error from Init.
+
 2008-09-15  Werner Koch  <wk@g10code.com>
 
        * fips.c [HAVE_SYSLOG]: Include syslog.h.
index 505b3c4..e98930d 100644 (file)
@@ -680,7 +680,9 @@ fips_new_state (enum module_states new_state)
       break;
 
     case STATE_INIT:
-      if (new_state == STATE_SELFTEST )
+      if (new_state == STATE_SELFTEST
+          || new_state == STATE_ERROR
+          || new_state == STATE_FATALERROR)
         ok = 1;
       break;