Camellia A 128-Bit Block Cipher Suitable for Multiple Platforms

Source Codes

Update Information

May 18,2012
FreeBSD 9.X ports, Wireshark, Gmime, Tera Term, MIT Kerberos 5, and The Legion of the Bouncy Castle(C#) were added to Open Source Applicable to Camellia.
Camellia for Haskell and oclCrypto were added to Open Source Software (other individuals or organizations).
December 22,2010
Camellia was adopted into MIT Kerberos 5 Release1.9.
July 9,2010
Open Hardware IP Core was added to Open Source Applicable to Camellia.
December 25, 2009
The Camellia additional patch for MIT Kerberos was added to the open source page.
July 24, 2009
strongSwan was added to Open Source Applicable to Camellia.
May 15, 2009
Beta of OpenSSL 1.0.0 was released. Camellia becomes enable by default after version 1.0.0 or later.

in the Past

Open Source Software (NTT)

With the aim to reduce the burden of user’s operation for equipping Camellia into product development and test applications, NTT begins to publish NTT’s open source codes of Camellia with free of charge by multiple open source software licenses. In accordance with an agreement between NTT and Mitsubishi Electric Corporation, Camellia essential patents can be used at no charge by any Camellia user without concluding such royalty-free licensing agreement hereafter. For details, please see the Intellectual Property Information page.

<<<Important Notice>>>

  1. In regard to applying the open source software, although these are programmed so that it performs correct encryption and decryption based on the Camellia’s specifications and high-speed processing method for 32-bit CPUs, the modes of operation, a key management mechanism, and counter-measure technology for implementation attacks are not included, and the appropriate care should be taken. In addition, in the event that this open source software should yield any kind of damage, this software should be used with the understanding that NTT does not bear any responsibility whatsoever.
  2. Any product equipped with Camellia encryption algorithm (including the open sources) is a controlled product regulated under the Japanese Foreign Exchange and Foreign Trade Law, though the algorithm is public. When you plan to export or take this product out of Japan, or provide any juridical person having its main office in Japan, concerning property or business of such a juridical person which is located overseas, please obtain a permission, as required by the Law and related regulations, from the Japanese Government.

Guidance handbook

The handbook related to Firefox

How to use Camellia for SSL communication method with Firefox3
[Japanese] CamelliaFirefoxV1.0_080619.pdf (2008-06-19, 291KB)

The handbook related to OpenSSL

How to use Camellia in OpenSSL
[Japanese] CamelliausersguideV1.0_070704.pdf (2007-07-04, 387KB)
"How to Compile and Install OpenSSL for Camellia on the UNIX(V1.1)" is included in "How to use Camellia in OpenSSL(V1.0)".

How to construct SSL server using Camellia for SSL communication
[Japanese] sslserverconstructionguidev2.1_090319.pdf (2009-03-19, 275KB)

The handbook related to Linux kernel and Ipsec-tools

How to compile Ipsec-tools and Linux kernel using Camellia
[English] linux-ref-eng-1.0.pdf (2006-11-08, Version 1.0, 34KB)
[Japanese] linux-ref-jpn-1.0.pdf (2006-11-08, Version 1.0, 107KB)

The handbook related to Camellia engines

The instructional handbook of Camellia open source codes
[Japanese] CamelliaGuidance060718.pdf (2006-07-12, for C-language Version 1.1, 31KB)

Crypto Engines

Crypto Engine for Camellia
 

Patch files for Camellia extensions

Patch files for Camellia extensions contributing to the communities. Please see the Patch files for Camellia extensions page.
Patch files for Camellia extensions adopted to the communities. Please see the Past Crypto Engine page.

Open Source Applicable to Camellia

Product lineup

(Open Source other than NTT made is also included)

Operating system kernel[updated]

Operating system Version Available function
Linux After version 2.6.21 IPsec
Fedora Core After version 7 IPsec
FreeBSD 9.x ports crypt library (pefs)
FreeBSD 7.x After version 7.0 IPsec, partition encryption (geli)
FreeBSD 6.x After version 6.4 IPsec

Library [updated]

Product name Version Remarks
OpenSSL After version 0.9.8c Operating system, which bundles OpenSSL that enables Camellia is here. Besides, it is necessary to specify enable-camellia by the compilation option.
NSS After version 3.12  
Crypto++ After version 5.4  
The GNU Transport Layer Security Library After version 2.20  
The Legion of the Bouncy Castle(Java) After version 1.30 BouncyCastle 1.41 adopted Java-compliant Camellia engine (version 1.2.0) which is published on this website was released.
The Legion of the Bouncy Castle(C#) After version 1.4  

Operating system, which bundles OpenSSL that enables Camellia

Product name Version
Fedora Core After version 9
OpenSUSE After version 10.3
Gentoo Linux After version 2008.0
FreeBSD After version 7.0
FreeBSD ports After 2007/6/12

Application[updated]

Product name Version Description Available function
Firefox After version 3.0 Web Browser SSL
GnuPG After version 2 Email OpenPGP
ipsec-tools After version 0.7 IPSEC IPsec, IKE
strongSwan After version 4.2.1 IPSEC VPN IKE
SeaMonkey After version 2.0 Mozilla all-in-one internet application suite  
Wireshark After version 1.6.0 network protocol analyzer  
Gmime After version 2.6.1 library which may be used for the creation and parsing of message using the Multipurpose Internet Mail Extention (MIME)  
Tera Term After version 2.57 Terminal Emulator SSH2
MIT Kerberos 5 After version 1.9 Kerberos Kerberos

Camellia Open Source Software (other individuals or organizations)

* We greatly appreciate it if you would contact when the open source software of Camellia was made and opened to the public.

Reference Code

  • A Reference Code (C, 3KB)
    Notice:
    This reference code is written for an easy understanding of the Camellia encryption algorithm and a tool for validity verification of a source code that you made.
    It is not intended to be used for a specific application.
    No optimized techniques are adopted at all in this code.

Page Top