17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * Copyright (C) 1998 by the FundsXpress, INC. 3*55fea89dSDan Cross * 47c478bd9Sstevel@tonic-gate * All rights reserved. 5*55fea89dSDan Cross * 67c478bd9Sstevel@tonic-gate * Export of this software from the United States of America may require 77c478bd9Sstevel@tonic-gate * a specific license from the United States Government. It is the 87c478bd9Sstevel@tonic-gate * responsibility of any person or organization contemplating export to 97c478bd9Sstevel@tonic-gate * obtain such a license before exporting. 10*55fea89dSDan Cross * 117c478bd9Sstevel@tonic-gate * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 127c478bd9Sstevel@tonic-gate * distribute this software and its documentation for any purpose and 137c478bd9Sstevel@tonic-gate * without fee is hereby granted, provided that the above copyright 147c478bd9Sstevel@tonic-gate * notice appear in all copies and that both that copyright notice and 157c478bd9Sstevel@tonic-gate * this permission notice appear in supporting documentation, and that 167c478bd9Sstevel@tonic-gate * the name of FundsXpress. not be used in advertising or publicity pertaining 177c478bd9Sstevel@tonic-gate * to distribution of the software without specific, written prior 187c478bd9Sstevel@tonic-gate * permission. FundsXpress makes no representations about the suitability of 197c478bd9Sstevel@tonic-gate * this software for any purpose. It is provided "as is" without express 207c478bd9Sstevel@tonic-gate * or implied warranty. 21*55fea89dSDan Cross * 227c478bd9Sstevel@tonic-gate * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 237c478bd9Sstevel@tonic-gate * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 247c478bd9Sstevel@tonic-gate * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 257c478bd9Sstevel@tonic-gate */ 267c478bd9Sstevel@tonic-gate 27159d09a2SMark Phalan #include "k5-int.h" 287c478bd9Sstevel@tonic-gate 29159d09a2SMark Phalan void krb5_dk_encrypt_length 30159d09a2SMark Phalan (const struct krb5_enc_provider *enc, 31159d09a2SMark Phalan const struct krb5_hash_provider *hash, 32159d09a2SMark Phalan size_t input, size_t *length); 337c478bd9Sstevel@tonic-gate 34159d09a2SMark Phalan krb5_error_code krb5_dk_encrypt 357c478bd9Sstevel@tonic-gate ( 36159d09a2SMark Phalan krb5_context context, 37159d09a2SMark Phalan const struct krb5_enc_provider *enc, 38159d09a2SMark Phalan const struct krb5_hash_provider *hash, 39159d09a2SMark Phalan const krb5_keyblock *key, krb5_keyusage usage, 40159d09a2SMark Phalan const krb5_data *ivec, 41159d09a2SMark Phalan const krb5_data *input, krb5_data *output); 427c478bd9Sstevel@tonic-gate 437c478bd9Sstevel@tonic-gate extern krb5_error_code krb5_dk_decrypt 447c478bd9Sstevel@tonic-gate (krb5_context context, 457c478bd9Sstevel@tonic-gate krb5_const struct krb5_enc_provider *enc, 467c478bd9Sstevel@tonic-gate krb5_const struct krb5_hash_provider *hash, 477c478bd9Sstevel@tonic-gate krb5_const krb5_keyblock *key, krb5_keyusage usage, 487c478bd9Sstevel@tonic-gate krb5_const krb5_data *ivec, krb5_const krb5_data *input, 497c478bd9Sstevel@tonic-gate krb5_data *arg_output); 507c478bd9Sstevel@tonic-gate 517c478bd9Sstevel@tonic-gate extern krb5_error_code krb5_derive_key 527c478bd9Sstevel@tonic-gate (krb5_context context, 537c478bd9Sstevel@tonic-gate krb5_const struct krb5_enc_provider *enc, 547c478bd9Sstevel@tonic-gate krb5_const krb5_keyblock *inkey, 557c478bd9Sstevel@tonic-gate krb5_keyblock *outkey, krb5_const krb5_data *in_constant); 567c478bd9Sstevel@tonic-gate 577c478bd9Sstevel@tonic-gate extern krb5_error_code krb5_dk_make_checksum 587c478bd9Sstevel@tonic-gate (krb5_context context, 597c478bd9Sstevel@tonic-gate krb5_const struct krb5_hash_provider *hash, 607c478bd9Sstevel@tonic-gate krb5_const krb5_keyblock *key, krb5_keyusage usage, 617c478bd9Sstevel@tonic-gate krb5_const krb5_data *input, krb5_data *output); 627c478bd9Sstevel@tonic-gate 637c478bd9Sstevel@tonic-gate 647c478bd9Sstevel@tonic-gate #ifndef _KERNEL 65159d09a2SMark Phalan extern krb5_error_code krb5int_dk_string_to_key 667c478bd9Sstevel@tonic-gate (krb5_context context, 67*55fea89dSDan Cross krb5_const struct krb5_enc_provider *enc, 687c478bd9Sstevel@tonic-gate krb5_const krb5_data *string, 697c478bd9Sstevel@tonic-gate krb5_const krb5_data *salt, 707c478bd9Sstevel@tonic-gate krb5_const krb5_data *params, 717c478bd9Sstevel@tonic-gate krb5_keyblock *key); 727c478bd9Sstevel@tonic-gate #endif 737c478bd9Sstevel@tonic-gate 747c478bd9Sstevel@tonic-gate void krb5int_aes_encrypt_length 75159d09a2SMark Phalan (const struct krb5_enc_provider *enc, 767c478bd9Sstevel@tonic-gate const struct krb5_hash_provider *hash, 777c478bd9Sstevel@tonic-gate size_t input, size_t *length); 787c478bd9Sstevel@tonic-gate 797c478bd9Sstevel@tonic-gate krb5_error_code krb5int_aes_dk_encrypt 807c478bd9Sstevel@tonic-gate ( krb5_context context, 817c478bd9Sstevel@tonic-gate const struct krb5_enc_provider *enc, 827c478bd9Sstevel@tonic-gate const struct krb5_hash_provider *hash, 837c478bd9Sstevel@tonic-gate const krb5_keyblock *key, krb5_keyusage usage, 847c478bd9Sstevel@tonic-gate const krb5_data *ivec, 857c478bd9Sstevel@tonic-gate const krb5_data *input, krb5_data *output); 867c478bd9Sstevel@tonic-gate 877c478bd9Sstevel@tonic-gate krb5_error_code krb5int_aes_dk_decrypt 887c478bd9Sstevel@tonic-gate ( krb5_context context, 897c478bd9Sstevel@tonic-gate const struct krb5_enc_provider *enc, 907c478bd9Sstevel@tonic-gate const struct krb5_hash_provider *hash, 917c478bd9Sstevel@tonic-gate const krb5_keyblock *key, krb5_keyusage usage, 927c478bd9Sstevel@tonic-gate const krb5_data *ivec, const krb5_data *input, 937c478bd9Sstevel@tonic-gate krb5_data *arg_output); 947c478bd9Sstevel@tonic-gate 957c478bd9Sstevel@tonic-gate extern krb5_error_code 967c478bd9Sstevel@tonic-gate krb5int_aes_string_to_key (krb5_context context, 977c478bd9Sstevel@tonic-gate const struct krb5_enc_provider *, 987c478bd9Sstevel@tonic-gate const krb5_data *, const krb5_data *, 997c478bd9Sstevel@tonic-gate const krb5_data *, krb5_keyblock *key); 100