If hashes do not match, print them in base-32 for SHA-1/SHA-256
Fixes #57.
This commit is contained in:
		
							parent
							
								
									a28b4445a4
								
							
						
					
					
						commit
						4c34d384e6
					
				
					 3 changed files with 10 additions and 1 deletions
				
			
		| 
						 | 
					@ -2228,7 +2228,7 @@ void DerivationGoal::computeClosure()
 | 
				
			||||||
            if (h != h2)
 | 
					            if (h != h2)
 | 
				
			||||||
                throw BuildError(
 | 
					                throw BuildError(
 | 
				
			||||||
                    format("output path `%1%' should have %2% hash `%3%', instead has `%4%'")
 | 
					                    format("output path `%1%' should have %2% hash `%3%', instead has `%4%'")
 | 
				
			||||||
                    % path % i->second.hashAlgo % printHash(h) % printHash(h2));
 | 
					                    % path % i->second.hashAlgo % printHash16or32(h) % printHash16or32(h2));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* Get rid of all weird permissions. */
 | 
					        /* Get rid of all weird permissions. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -153,6 +153,12 @@ string printHash32(const Hash & hash)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					string printHash16or32(const Hash & hash)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return hash.type == htMD5 ? printHash(hash) : printHash32(hash);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static bool mul(unsigned char * bytes, unsigned char y, int maxSize)
 | 
					static bool mul(unsigned char * bytes, unsigned char y, int maxSize)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    unsigned char carry = 0;
 | 
					    unsigned char carry = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,6 +54,9 @@ unsigned int hashLength32(const Hash & hash);
 | 
				
			||||||
/* Convert a hash to a base-32 representation. */
 | 
					/* Convert a hash to a base-32 representation. */
 | 
				
			||||||
string printHash32(const Hash & hash);
 | 
					string printHash32(const Hash & hash);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Print a hash in base-16 if it's MD5, or base-32 otherwise. */
 | 
				
			||||||
 | 
					string printHash16or32(const Hash & hash);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Parse a base-32 representation of a hash code. */
 | 
					/* Parse a base-32 representation of a hash code. */
 | 
				
			||||||
Hash parseHash32(HashType ht, const string & s);
 | 
					Hash parseHash32(HashType ht, const string & s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue