• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / mender / 1022753986

02 Oct 2023 10:37AM UTC coverage: 78.168% (-2.0%) from 80.127%
1022753986

push

gitlab-ci

oleorhagen
feat: Run the authentication loop once upon bootstrap

Ticket: MEN-6658
Changelog: None

Signed-off-by: Ole Petter <ole.orhagen@northern.tech>

32 of 32 new or added lines in 1 file covered. (100.0%)

6996 of 8950 relevant lines covered (78.17%)

10353.4 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

30.0
/artifact/v3/manifest_sig/manifest_sig.cpp
1
// Copyright 2023 Northern.tech AS
2
//
3
//    Licensed under the Apache License, Version 2.0 (the "License");
4
//    you may not use this file except in compliance with the License.
5
//    You may obtain a copy of the License at
6
//
7
//        http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//    Unless required by applicable law or agreed to in writing, software
10
//    distributed under the License is distributed on an "AS IS" BASIS,
11
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//    See the License for the specific language governing permissions and
13
//    limitations under the License.
14

15
#include <artifact/v3/manifest_sig/manifest_sig.hpp>
16
#include <sstream>
17
#include <common/error.hpp>
18
#include <artifact/error.hpp>
19
#include <common/crypto.hpp>
20

21
namespace mender {
22
namespace artifact {
23
namespace v3 {
24
namespace manifest_sig {
25

26
namespace io = mender::common::io;
27
namespace error = mender::common::error;
28
namespace crypto = mender::common::crypto;
29

30
ExpectedManifestSignature Parse(io::Reader &reader) {
1✔
31
        stringstream ss;
2✔
32
        io::StreamWriter sw {ss};
2✔
33

34
        auto err = io::Copy(sw, reader);
2✔
35
        if (error::NoError != err) {
1✔
36
                return expected::unexpected(err);
×
37
        }
38

39
        return ss.str();
2✔
40
}
41

42
expected::ExpectedBool VerifySignature(
×
43
        const ManifestSignature &signature,
44
        const mender::sha::SHA &shasum,
45
        const vector<string> &artifact_verify_keys,
46
        config::Signature verify) {
47
        if (verify == config::Signature::Skip) {
×
48
                return true;
×
49
        }
50
        error::Error err;
×
51
        for (const auto &key : artifact_verify_keys) {
×
52
                auto e_verify_sign = crypto::VerifySign(key, shasum, signature);
×
53
                if (e_verify_sign && e_verify_sign.value()) {
×
54
                        return true;
×
55
                }
56
                if (!e_verify_sign) {
×
57
                        err = err.FollowedBy(e_verify_sign.error());
×
58
                }
59
        }
60
        if (err == error::NoError) {
×
61
                return false;
×
62
        }
63
        return expected::unexpected(err);
×
64
}
65

66
} // namespace manifest_sig
67
} // namespace v3
68
} // namespace artifact
69
} // namespace mender
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc