186d7f5d3SJohn Marino /*
286d7f5d3SJohn Marino *
386d7f5d3SJohn Marino * Copyright (c) 2006
486d7f5d3SJohn Marino * NTT (Nippon Telegraph and Telephone Corporation) . All rights reserved.
586d7f5d3SJohn Marino *
686d7f5d3SJohn Marino * Redistribution and use in source and binary forms, with or without
786d7f5d3SJohn Marino * modification, are permitted provided that the following conditions
886d7f5d3SJohn Marino * are met:
986d7f5d3SJohn Marino * 1. Redistributions of source code must retain the above copyright
1086d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer as
1186d7f5d3SJohn Marino * the first lines of this file unmodified.
1286d7f5d3SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright
1386d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer in the
1486d7f5d3SJohn Marino * documentation and/or other materials provided with the distribution.
1586d7f5d3SJohn Marino *
1686d7f5d3SJohn Marino * THIS SOFTWARE IS PROVIDED BY NTT ``AS IS'' AND ANY EXPRESS OR
1786d7f5d3SJohn Marino * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1886d7f5d3SJohn Marino * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
1986d7f5d3SJohn Marino * IN NO EVENT SHALL NTT BE LIABLE FOR ANY DIRECT, INDIRECT,
2086d7f5d3SJohn Marino * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
2186d7f5d3SJohn Marino * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2286d7f5d3SJohn Marino * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2386d7f5d3SJohn Marino * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2486d7f5d3SJohn Marino * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2586d7f5d3SJohn Marino * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2686d7f5d3SJohn Marino *
2786d7f5d3SJohn Marino * $FreeBSD: src/sys/crypto/camellia/camellia-api.c,v 1.1 2007/05/09 19:37:01 gnn Exp $
2886d7f5d3SJohn Marino */
2986d7f5d3SJohn Marino
3086d7f5d3SJohn Marino #include <sys/types.h>
3186d7f5d3SJohn Marino #ifdef _KERNEL
3286d7f5d3SJohn Marino #include <sys/systm.h>
3386d7f5d3SJohn Marino #endif
3486d7f5d3SJohn Marino #include <crypto/camellia/camellia.h>
3586d7f5d3SJohn Marino
3686d7f5d3SJohn Marino void
camellia_set_key(camellia_ctx * ctx,const u_char * key,int bits)3786d7f5d3SJohn Marino camellia_set_key(camellia_ctx *ctx, const u_char *key, int bits)
3886d7f5d3SJohn Marino {
3986d7f5d3SJohn Marino
4086d7f5d3SJohn Marino Camellia_Ekeygen(bits, key, ctx->subkey);
4186d7f5d3SJohn Marino ctx->bits = bits;
4286d7f5d3SJohn Marino }
4386d7f5d3SJohn Marino
4486d7f5d3SJohn Marino void
camellia_decrypt(const camellia_ctx * ctx,const u_char * src,u_char * dst)4586d7f5d3SJohn Marino camellia_decrypt(const camellia_ctx *ctx, const u_char *src, u_char *dst)
4686d7f5d3SJohn Marino {
4786d7f5d3SJohn Marino
4886d7f5d3SJohn Marino Camellia_DecryptBlock(ctx->bits, src, ctx->subkey, dst);
4986d7f5d3SJohn Marino }
5086d7f5d3SJohn Marino
5186d7f5d3SJohn Marino void
camellia_encrypt(const camellia_ctx * ctx,const u_char * src,u_char * dst)5286d7f5d3SJohn Marino camellia_encrypt(const camellia_ctx *ctx, const u_char *src, u_char *dst)
5386d7f5d3SJohn Marino {
5486d7f5d3SJohn Marino
5586d7f5d3SJohn Marino Camellia_EncryptBlock(ctx->bits, src, ctx->subkey, dst);
5686d7f5d3SJohn Marino }
57