<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>1369</bug_id>
          
          <creation_ts>2019-04-03 05:54:06 +0200</creation_ts>
          <short_desc>SCC: Implement basic Secure Hash (SHA256) build time signatures &amp; runtime validation</short_desc>
          <delta_ts>2019-04-03 22:11:57 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Gluegen</product>
          <component>core</component>
          <version>2.4.0</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>1367</dependson>
          <blocked>1368</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          
          
          <cf_type>FEATURE</cf_type>
          <cf_scm_refs>gluegen 00ad70b3bd7f8859c710039857aa7da17a29b3d7
gluegen 234bd58643e83aa7d34d752de3e98d6ae84cba3d
gluegen 302599570c04bae0d96e3b20981fab1ffcaf61ae</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>6189</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2019-04-03 05:54:06 +0200</bug_when>
    <thetext>Part of: Source Certification Contract (SCC), see bug 1368.

Previously we have added the git-commit-sha in the deployed Jar Manifest,
allowing to identify the originating source of the build via our git repository.

For full fledged SCC, we shall utilize a strong SHA256 signature over:
1) source tree inclusive make recipe (SHA256-Source)
2) all class files (SHA256-Classes)
3) all native libraries (SHA256-Natives)
4) the class files as deployed in the jar (SHA256-Classes-this)
5) the native libraries as deployed in the jar (SHA256-Natives-this)

and drop all these SHA256 values in the deployed Jar file.

This will allow SHA256 validation of (4) + (5) at runtime
and further complete validation (1), (2) and (3) offline.

Full SCC would now required (1) - (3) to be placed on a server for further validation.
Optionally we may use GPG &lt;https://gnupg.org/&gt; or PGP to validate the build entity to implement the chain of trust &lt;https://en.wikipedia.org/wiki/Chain_of_trust&gt;

The SHA256 runtime validation shall be proven via (a) unit test(s).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6190</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2019-04-03 06:09:29 +0200</bug_when>
    <thetext>Implemented in GlueGen as described.
Tested on Linux, MacOSX and Windows.
Computed SHA256 is cross platform universal.

TODO: Adopt build-time and runtime test for JOAL, JOGL and JOCL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6192</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2019-04-03 22:11:57 +0200</bug_when>
    <thetext>Further fixes and cleaning up.
Having the first module implementation as clean as possible 
shall reduce adaption work in our other modules.

Hide SHA Algorithm bit size in literals of Specification
- 234bd58643e83aa7d34d752de3e98d6ae84cba3d

Clarify &amp; fix build dependencies in build.xml
- 302599570c04bae0d96e3b20981fab1ffcaf61ae</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>