[Cryptech-Commits] [staging/core/hash/sha256] 03/32: Adding K constant memory source file.

git at cryptech.is git at cryptech.is
Tue Mar 17 13:14:32 UTC 2015


This is an automated email from the git hooks/post-receive script.

paul at psgd.org pushed a commit to branch master
in repository staging/core/hash/sha256.

commit ec9e72bf4983c0afd4ab701adad01c061ad8f04e
Author: Joachim Strömbergson <joachim at secworks.se>
Date:   Wed Feb 19 13:25:05 2014 +0100

    Adding K constant memory source file.
---
 src/rtl/sha256_k_constants.v | 387 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 387 insertions(+)

diff --git a/src/rtl/sha256_k_constants.v b/src/rtl/sha256_k_constants.v
new file mode 100644
index 0000000..2acd3a6
--- /dev/null
+++ b/src/rtl/sha256_k_constants.v
@@ -0,0 +1,387 @@
+//======================================================================
+//
+// sha256_k_constants.v
+// --------------------
+// The table K with constants in the SHA-256 hash function.
+// A simple combinational ROM basically.
+//
+//
+// Author: Joachim Strombergson
+// Copyright (c) 2014 SUNET
+// 
+// Redistribution and use in source and binary forms, with or 
+// without modification, are permitted provided that the following 
+// conditions are met: 
+// 
+// 1. Redistributions of source code must retain the above copyright 
+//    notice, this list of conditions and the following disclaimer. 
+// 
+// 2. Redistributions in binary form must reproduce the above copyright 
+//    notice, this list of conditions and the following disclaimer in 
+//    the documentation and/or other materials provided with the 
+//    distribution. 
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
+// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
+// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
+// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+//======================================================================
+
+module sha256_k_constants(
+                          input wire  [5 : 0] addr,
+                          output wire [31 : 0] K
+                         );
+
+  //----------------------------------------------------------------
+  // Wires.
+  //----------------------------------------------------------------
+  reg [31 : 0] tmp_K;
+
+
+  //----------------------------------------------------------------
+  // Concurrent connectivity for ports etc.
+  //----------------------------------------------------------------
+  assign K = tmp_K;
+  
+  
+  //----------------------------------------------------------------
+  // addr_mux
+  //----------------------------------------------------------------
+  always @*
+    begin : addr_mux
+      case(addr)
+        0:
+          begin
+            tmp_K = 32'h428a2f98;
+          end
+
+        1:
+          begin
+            tmp_K = 32'h71374491;
+          end
+
+        2:
+          begin
+            tmp_K = 32'hb5c0fbcf;
+          end
+        
+        3:
+          begin
+            tmp_K = 32'he9b5dba5;
+          end
+        
+        4:
+          begin
+            tmp_K = 32'h3956c25b;
+          end
+        
+        5:
+          begin
+            tmp_K = 32'h59f111f1;
+          end
+        
+        6:
+          begin
+            tmp_K = 32'h923f82a4;
+          end
+        
+        7:
+          begin
+            tmp_K = 32'hab1c5ed5;
+          end
+        
+        8:
+          begin
+            tmp_K = 32'hd807aa98;
+          end
+        
+        9:
+          begin
+            tmp_K = 32'h12835b01;
+          end
+        
+        10:
+          begin
+            tmp_K = 32'h243185be;
+          end
+        
+        11:
+          begin
+            tmp_K = 32'h550c7dc3;
+          end
+        
+        12:
+          begin
+            tmp_K = 32'h72be5d74;
+          end
+        
+        13:
+          begin
+            tmp_K = 32'h80deb1fe;
+          end
+        
+        14:
+          begin
+            tmp_K = 32'h9bdc06a7;
+          end
+        
+        15:
+          begin
+            tmp_K = 32'hc19bf174;
+          end
+        
+        16:
+          begin
+            tmp_K = 32'he49b69c1;
+          end
+        
+        17:
+          begin
+            tmp_K = 32'hefbe4786;
+          end
+        
+        18:
+          begin
+            tmp_K = 32'h0fc19dc6;
+          end
+        
+        19:
+          begin
+            tmp_K = 32'h240ca1cc;
+          end
+        
+        20:
+          begin
+            tmp_K = 32'h2de92c6f;
+          end
+        
+        21:
+          begin
+            tmp_K = 32'h4a7484aa;
+          end
+        
+        22:
+          begin
+            tmp_K = 32'h5cb0a9dc;
+          end
+        
+        23:
+          begin
+            tmp_K = 32'h76f988da;
+          end
+        
+        24:
+          begin
+            tmp_K = 32'h983e5152;
+          end
+        
+        25:
+          begin
+            tmp_K = 32'ha831c66d;
+          end
+        
+        26:
+          begin
+            tmp_K = 32'hb00327c8;
+          end
+        
+        27:
+          begin
+            tmp_K = 32'hbf597fc7;
+          end
+        
+        28:
+          begin
+            tmp_K = 32'hc6e00bf3;
+          end
+        
+        29:
+          begin
+            tmp_K = 32'hd5a79147;
+          end
+        
+        30:
+          begin
+            tmp_K = 32'h06ca6351;
+          end
+        
+        31:
+          begin
+            tmp_K = 32'h14292967;
+          end
+        
+        32:
+          begin
+            tmp_K = 32'h27b70a85;
+          end
+        
+        33:
+          begin
+            tmp_K = 32'h2e1b2138;
+          end
+        
+        34:
+          begin
+            tmp_K = 32'h4d2c6dfc;
+          end
+        
+        35:
+          begin
+            tmp_K = 32'h53380d13;
+          end
+        
+        36:
+          begin
+            tmp_K = 32'h650a7354;
+          end
+        
+        37:
+          begin
+            tmp_K = 32'h766a0abb;
+          end
+        
+        38:
+          begin
+            tmp_K = 32'h81c2c92e;
+          end
+        
+        39:
+          begin
+            tmp_K = 32'h92722c85;
+          end
+        
+        40:
+          begin
+            tmp_K = 32'ha2bfe8a1;
+          end
+        
+        41:
+          begin
+            tmp_K = 32'ha81a664b;
+          end
+        
+        42:
+          begin
+            tmp_K = 32'hc24b8b70;
+          end
+        
+        43:
+          begin
+            tmp_K = 32'hc76c51a3;
+          end
+        
+        44:
+          begin
+            tmp_K = 32'hd192e819;
+          end
+        
+        45:
+          begin
+            tmp_K = 32'hd6990624;
+          end
+        
+        46:
+          begin
+            tmp_K = 32'hf40e3585;
+          end
+        
+        47:
+          begin
+            tmp_K = 32'h106aa070;
+          end
+        
+        48:
+          begin
+            tmp_K = 32'h19a4c116;
+          end
+        
+        49:
+          begin
+            tmp_K = 32'h1e376c08;
+          end
+        
+        50:
+          begin
+            tmp_K = 32'h2748774c;
+          end
+        
+        51:
+          begin
+            tmp_K = 32'h34b0bcb5;
+          end
+        
+        52:
+          begin
+            tmp_K = 32'h391c0cb3;
+          end
+        
+        53:
+          begin
+            tmp_K = 32'h4ed8aa4a;
+          end
+        
+        54:
+          begin
+            tmp_K = 32'h5b9cca4f;
+          end
+        
+        55:
+          begin
+            tmp_K = 32'h682e6ff3;
+          end
+        
+        56:
+          begin
+            tmp_K = 32'h748f82ee;
+          end
+        
+        57:
+          begin
+            tmp_K = 32'h78a5636f;
+          end
+        
+        58:
+          begin
+            tmp_K = 32'h84c87814;
+          end
+        
+        59:
+          begin
+            tmp_K = 32'h8cc70208;
+          end
+        
+        60:
+          begin
+            tmp_K = 32'h90befffa;
+          end
+        
+        61:
+          begin
+            tmp_K = 32'ha4506ceb;
+          end
+        
+        62:
+          begin
+            tmp_K = 32'hbef9a3f7;
+          end
+        
+        63:
+          begin
+            tmp_K = 32'hc67178f2;
+          end
+      endcase // case (addr)
+    end // block: addr_mux
+endmodule // sha256_k_constants
+
+//======================================================================
+// EOF sha256_k_constants.v
+//======================================================================



More information about the Commits mailing list