Skip to content

Commit

Permalink
chore(verfication): remove {:only} (#517)
Browse files Browse the repository at this point in the history
  • Loading branch information
josecorella authored Jul 16, 2024
1 parent 0f9b019 commit 99072ae
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 3 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/check_only_keyword.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This workflow checks if you are checking in dafny code
# with the keyword {:only}, it adds a message to the pull
# request to remind you to remove it.
name: Check {:only} decorator presence

on:
pull_request:

jobs:
grep-only-verification-keyword:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Check only keyword
id: only-keyword
shell: bash
run:
# checking in code with the dafny decorator {:only}
# will not verify the entire file or maybe the entire project depending on its configuration
# This action checks if you are either adding or removing the {:only} decorator and posting on the pr if you are.
echo "ONLY_KEYWORD=$(git diff origin/main origin/${GITHUB_HEAD_REF} **/*.dfy | grep -i {:only})" >> "$GITHUB_OUTPUT"

- name: Check if ONLY_KEYWORD is not empty
id: comment
env:
PR_NUMBER: ${{ github.event.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ONLY_KEYWORD: ${{ steps.only-keyword.outputs.ONLY_KEYWORD }}
if: ${{env.ONLY_KEYWORD != ''}}
run: |
COMMENT="It looks like you are adding or removing the dafny keyword {:only}.\nIs this intended?"
COMMENT_URL="https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/comments"
curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X POST $COMMENT_URL -d "{\"body\":\"$COMMENT\"}"
exit 1
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,6 @@ module {:options "/functionSyntax:4" } AwsKmsEcdhKeyring {
{
const materials: Materials.DecryptionMaterialsPendingPlaintextDataKey
const cryptoPrimitives: Primitives.AtomicPrimitivesClient
const senderPublicKey: seq<uint8>
const recipientPublicKey: seq<uint8>
const client: KMS.IKMSClient
const grantTokens: KMS.GrantTokenList
Expand Down Expand Up @@ -582,6 +581,11 @@ module {:options "/functionSyntax:4" } AwsKmsEcdhKeyring {
}
}

:- Need(
KMS.IsValid_PublicKeyType(sharedSecretPublicKey),
E("Received Recipient Public Key of incorrect expected length")
);

//= aws-encryption-sdk-specification/framework/aws-kms/aws-kms-ecdh-keyring.md#ondecrypt
//# The keyring MUST derive the shared secret
//# by calling [AWS KMS DeriveSharedSecret]()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -541,7 +541,7 @@ module {:options "/functionSyntax:4" } RawECDHKeyring {
&& Materials.DecryptionMaterialsTransitionIsValid(materials, res.value)

}
method {:vcs_split_on_every_assert} {:only} Invoke(
method {:vcs_split_on_every_assert} Invoke(
edk: Types.EncryptedDataKey,
ghost attemptsState: seq<ActionInvoke<Types.EncryptedDataKey, Result<Materials.SealedDecryptionMaterials, Types.Error>>>
) returns (res: Result<Materials.SealedDecryptionMaterials, Types.Error>)
Expand Down Expand Up @@ -851,4 +851,4 @@ module {:options "/functionSyntax:4" } RawECDHKeyring {
function E(s : string) : Types.Error {
Types.AwsCryptographicMaterialProvidersException(message := s)
}
}
}

0 comments on commit 99072ae

Please sign in to comment.