(krb5_crypto_overhead): return static overhead of encryption.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20683 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		@@ -3171,8 +3171,8 @@ decrypt_internal_derived(krb5_context context,
 | 
				
			|||||||
    
 | 
					    
 | 
				
			||||||
    checksum_sz = CHECKSUMSIZE(et->keyed_checksum);
 | 
					    checksum_sz = CHECKSUMSIZE(et->keyed_checksum);
 | 
				
			||||||
    if (len < checksum_sz) {
 | 
					    if (len < checksum_sz) {
 | 
				
			||||||
	krb5_clear_error_string (context);
 | 
						krb5_set_error_string(context, "Encrypted data shorter then checksum");
 | 
				
			||||||
	return EINVAL;		/* XXX - better error code? */
 | 
						return KRB5_BAD_MSIZE;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (((len - checksum_sz) % et->padsize) != 0) {
 | 
					    if (((len - checksum_sz) % et->padsize) != 0) {
 | 
				
			||||||
@@ -3891,6 +3891,50 @@ krb5_get_wrapped_length (krb5_context context,
 | 
				
			|||||||
	return wrapped_length (context, crypto, data_len);
 | 
						return wrapped_length (context, crypto, data_len);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Return the size of an encrypted packet of length `data_len'
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static size_t
 | 
				
			||||||
 | 
					crypto_overhead (krb5_context context,
 | 
				
			||||||
 | 
							 krb5_crypto  crypto)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    struct encryption_type *et = crypto->et;
 | 
				
			||||||
 | 
					    size_t res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    res = CHECKSUMSIZE(et->checksum);
 | 
				
			||||||
 | 
					    res += et->confoundersize;
 | 
				
			||||||
 | 
					    if (et->padsize > 1)
 | 
				
			||||||
 | 
						res += et->padsize;
 | 
				
			||||||
 | 
					    return res;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static size_t
 | 
				
			||||||
 | 
					crypto_overhead_dervied (krb5_context context,
 | 
				
			||||||
 | 
								 krb5_crypto  crypto)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    struct encryption_type *et = crypto->et;
 | 
				
			||||||
 | 
					    size_t res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (et->keyed_checksum)
 | 
				
			||||||
 | 
						res = CHECKSUMSIZE(et->keyed_checksum);
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
						res = CHECKSUMSIZE(et->checksum);
 | 
				
			||||||
 | 
					    res += et->confoundersize;
 | 
				
			||||||
 | 
					    if (et->padsize > 1)
 | 
				
			||||||
 | 
						res += et->padsize;
 | 
				
			||||||
 | 
					    return res;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t
 | 
				
			||||||
 | 
					krb5_crypto_overhead (krb5_context context, krb5_crypto crypto)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (derived_crypto (context, crypto))
 | 
				
			||||||
 | 
						return crypto_overhead_dervied (context, crypto);
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
						return crypto_overhead (context, crypto);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
krb5_error_code KRB5_LIB_FUNCTION
 | 
					krb5_error_code KRB5_LIB_FUNCTION
 | 
				
			||||||
krb5_random_to_key(krb5_context context,
 | 
					krb5_random_to_key(krb5_context context,
 | 
				
			||||||
		   krb5_enctype type,
 | 
							   krb5_enctype type,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user