aboutsummaryrefslogtreecommitdiffhomepage
path: root/checker/safe_typing.ml
diff options
context:
space:
mode:
authorGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-05-06 18:31:25 +0000
committerGravatar barras <barras@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-05-06 18:31:25 +0000
commit376e61185dadea415d6b7d2df45dc7236e901e5b (patch)
tree78b89a99eee6981ee309710500b1b55b030522a3 /checker/safe_typing.ml
parent8956bfb8dd63d0d76d3f67f313371318b7edc39d (diff)
checker deals with polymorphic constants and module aliases
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10892 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'checker/safe_typing.ml')
-rw-r--r--checker/safe_typing.ml16
1 files changed, 12 insertions, 4 deletions
diff --git a/checker/safe_typing.ml b/checker/safe_typing.ml
index c6388499a..4bed9796a 100644
--- a/checker/safe_typing.ml
+++ b/checker/safe_typing.ml
@@ -225,21 +225,29 @@ type compiled_library =
(dir_path * Digest.t) list *
engagement option
+(* This function should append a certificate to the .vo file.
+ The digest must be part of the certicate to rule out attackers
+ that could change the .vo file between the time it was read and
+ the time the stamp is written.
+ For the moment, .vo are not signed. *)
+let stamp_library file digest = ()
+
(* When the module is checked, digests do not need to match, but a
warning is issued in case of mismatch *)
-let import (dp,mb,depends,engmt as vo) digest =
-Validate.val_vo (Obj.repr vo);
-prerr_endline "*** vo validated ***";
+let import file (dp,mb,depends,engmt as vo) digest =
+ Validate.val_vo (Obj.repr vo);
+ Flags.if_verbose msgnl (str "*** vo structure validated ***");
let env = !genv in
check_imports msg_warning dp env depends;
check_engagement env engmt;
check_module env mb;
+ stamp_library file digest;
(* We drop proofs once checked *)
(* let mb = lighten_module mb in*)
full_add_module dp mb digest
(* When the module is admitted, digests *must* match *)
-let unsafe_import (dp,mb,depends,engmt) digest =
+let unsafe_import file (dp,mb,depends,engmt) digest =
let env = !genv in
check_imports (errorlabstrm"unsafe_import") dp env depends;
check_engagement env engmt;