From a0f41c8103b679daa165a2416a8fe407c4a3f75e Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr> Date: Thu, 26 Oct 2023 13:46:10 +0200 Subject: [PATCH] Adding getkey and host function in toproverif translation --- src/main/java/avatartranslator/AvatarMethod.java | 2 ++ .../java/avatartranslator/toproverif/AVATAR2ProVerif.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/avatartranslator/AvatarMethod.java b/src/main/java/avatartranslator/AvatarMethod.java index b1900492db..fa39ff3239 100644 --- a/src/main/java/avatartranslator/AvatarMethod.java +++ b/src/main/java/avatartranslator/AvatarMethod.java @@ -67,6 +67,8 @@ public class AvatarMethod extends AvatarElement implements NameChecker.NameStart "Message hash(Message msg)", "Message MAC(Message msg, Key k)", "bool verifyMAC(Message msg, Key k, Message macmsg)", + "Message host(Key k)", + "Key getKey(Message msg)", "Message concat2(Message msg1, Message msg2)", "Message concat3(Message msg1, Message msg2, Message msg3)", "Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)", diff --git a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java index 37d4306e57..6dd9171ebe 100755 --- a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java +++ b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java @@ -72,6 +72,8 @@ public class AVATAR2ProVerif implements AvatarTranslator { private final static String TRUE = "TRUE"; private final static String FALSE = "FALSE"; private final static String PK_PK = "pk"; + private final static String HOST = "host"; + private final static String GETKEY = "getKey"; private final static String PK_ENCRYPT = "aencrypt"; private final static String PK_DECRYPT = "adecrypt"; private final static String PK_SIGN = "sign"; @@ -513,6 +515,12 @@ public class AVATAR2ProVerif implements AvatarTranslator { this.spec.addDeclaration(new ProVerifComment("HASH")); this.spec.addDeclaration(new ProVerifFunc(HASH_HASH, new String[]{"bitstring"}, "bitstring")); + this.spec.addDeclaration(new ProVerifComment("Key and host")); + this.spec.addDeclaration(new ProVerifFunc(HOST, new String[]{"bitstring"}, "bitstring")); + this.spec.addDeclaration(new ProVerifReduc(new ProVerifVar[]{new ProVerifVar("x", "bitstring")}, GETKEY + " (" + HOST + " (x)) = " + + "x")); + + this.spec.addDeclaration(new ProVerifComment("Channel")); this.spec.addDeclaration(new ProVerifVar(CH_MAINCH, "channel")); // TODO: add one encryption function per signal -- GitLab