SHA 256 pseuedocode?

J'ai essayé de travailler sur la façon SHA-256 œuvres. Une chose que j'ai fait pour les autres algorithmes est que j'ai travaillé en une sorte de étape par étape de pseudo-fonction de l'algorithme.

J'ai essayé de faire de même pour SHA256, mais jusqu'à présent je suis tout à fait avoir un peu de difficulté.

J'ai essayé de travailler sur la façon dont le wikipedia schéma fonctionne, mais en plus de la partie texte expliquant les fonctions, je ne suis pas sûr que j'ai bien compris.

Voici ce que j'ai à ce jour:

Input is an array 8 items long where each item is 32 bits.
Output is an array 8 items long where each item is 32 bits.
Calculate all the function boxes and store those values. 
|I'll refer to them by function name
Store input, right shifted by 32 bits, into output. 
| At this point, in the out array, E is the wrong value and A is empty
Store the function boxes.
| now we need to calculate out E and out A.
| note: I've replaced the modulo commands with a bitwise AND 2^(32-1) 
| I can't figure out how the modulus adding lines up, but I think it is like this
Store (Input H + Ch + ( (Wt+Kt) AND 2^31 ) ) AND 2^31 As mod1
Store (sum1 + mod1) AND 2^31 as mod2
Store (d + mod2) AND 2^31 into output E 
|now output E is correct and all we need is output A
Store (MA + mod2) AND 2^31 as mod3
Store (sum0 + mod3) AND 2^31 into output A
|output now contains the correct hash of input.
|Do we return now or does this need to be run repeatedly?

Ai-je tous ces plus modulos droit? Aussi, quels sont les poids et les Kt?
Aussi serait-il exécuté une seule fois et vous avez terminé, ou est-il besoin d'exécuter un certain nombre de fois, avec la sortie de re-utilisé comme entrée.

Voici le lien.
http://en.wikipedia.org/wiki/SHA-2#Hash_function

Merci beaucoup,
Brian

Pour commencer, la sortie de SHA256 est de 32 octets. Pensez-y: 256/8=32
Ah ok... l'ont bien compris. Ainsi, chacun de l'entrée/sortie des boîtes dans le diagramme serait... 32 bits? Je pense que vous vouliez dire, bits. Je vais modifier mon code de départ pour en tenir compte.

OriginalL'auteur codelion | 2012-08-13