apache / apache/maven

[MNG-6026] Extend the Project Object Model (POM) with trust information (OpenPGP, hash values)

Open
#7,858 25 comments 1 reaction 0 assignees View on GitHub
enhancement priority:major
Dominant language
Java
Stars
5.3k
Forks
3.1k
Avg merge
20h 42m
Merged PRs (30d)
297

Description

**[Florian Schmaus](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=flowdalic)** opened **[MNG-6026](https://issues.apache.org/jira/browse/MNG-6026?redirect=false)** and commented

The origin of this feature request is the Stackoverflow question ["Verification of dependency authenticity in Maven POM based automated build systems"](http://stackoverflow.com/a/34795359/194894), and [especially a SO user requesting me to put this up](http://stackoverflow.com/questions/3307146/verification-of-dependency-authenticy-in-maven-pom-based-automated-build-systems/34795359?noredirect=1#comment62178671_34795359).

## Extend the Project Object Model (POM) with trust information (OpenPGP - RFC 4480 and hash values)

What we need is the possibility to model a trust relation from your project or artifact to the declared dependencies. So that, if all involved parties declare such a relation, we are able to create a "chain of trust" from the root (e.g. the project) over its dependencies down to the very last transitive dependency. The Project Object Model (POM) needs to be extended by a \ element for dependencies.

### Current Situation

Right now we have something like

```xml

junit
junit
4.0

```

### Hard dependencies

For hard dependencies, \ could include the sha256sum of artifact and its POM file:

```xml

junit
junit
[4.0]


[sha256 of junit pom file]
[sha256sum of artifact (junit.jar)]

```

### Soft dependencies

If soft, which are also called "ranged" or "dynamic", dependencies are used, then we could specify the public key (or multiple) of the keypair used to sign the artifacts

```xml

junit
junit
[4.0,4.5)

[secure fingerprint of OpenPGP key used to sign the junit artifact(s)]

```

I'm not sure if this is the right place to raise an feature request for the POM format itself. I've already tried to get in touch with the right people about this feature request, but failed. I'm willing to help designing and implementing this, but need guidance.

---

**Issue Links:**
- [MRESOLVER-234](https://issues.apache.org/jira/browse/MRESOLVER-234) Introduce "provided" checksums feature

- [MNG-5814](https://issues.apache.org/jira/browse/MNG-5814) Be able to verify the pgp signature of downloaded plugins against a trust configuration

**Remote Links:**
- [Page
](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318)

13 votes, 18 watchers

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.