rsa-template.h revision 2b114c590cf5a19f8047cd7bde9c7e5ae00aa22b
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/* $Id$ */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/** @file
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * IPRT - Crypto - RSA, Code Generator Template.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*
df2a53dee17325742e7464e7f53d3f99dc500f3avboxsync * Copyright (C) 2006-2014 Oracle Corporation
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync *
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * available from http://www.virtualbox.org. This file is free software;
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * you can redistribute it and/or modify it under the terms of the GNU
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * General Public License (GPL) as published by the Free Software
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync *
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * The contents of this file may alternatively be used under the terms
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * of the Common Development and Distribution License Version 1.0
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * VirtualBox OSE distribution, in which case the provisions of the
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * CDDL are applicable instead of those of the GPL.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync *
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * You may elect to license modified versions of this file under the
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * terms and conditions of either the GPL or the CDDL or both.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#define RTASN1TMPL_DECL RTDECL
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * RSA public key.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#define RTASN1TMPL_TYPE RTCRRSAPUBLICKEY
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#define RTASN1TMPL_EXT_NAME RTCrRsaPublicKey
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#define RTASN1TMPL_INT_NAME rtCrRsaPublicKey
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsyncRTASN1TMPL_BEGIN_SEQCORE();
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsyncRTASN1TMPL_MEMBER( Modulus, RTASN1INTEGER, RTAsn1Integer);
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsyncRTASN1TMPL_MEMBER( PublicExponent, RTASN1INTEGER, RTAsn1Integer);
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsyncRTASN1TMPL_END_SEQCORE();
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#undef RTASN1TMPL_TYPE
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#undef RTASN1TMPL_EXT_NAME
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#undef RTASN1TMPL_INT_NAME
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync * One RSA other prime info.
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_TYPE RTCRRSAOTHERPRIMEINFO
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_EXT_NAME RTCrRsaOtherPrimeInfo
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_INT_NAME rtCrRsaOtherPrimeInfo
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_MEMBER( Prime, RTASN1INTEGER, RTAsn1Integer);
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_MEMBER( Exponent, RTASN1INTEGER, RTAsn1Integer);
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_MEMBER( Coefficient, RTASN1INTEGER, RTAsn1Integer);
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsyncRTASN1TMPL_END_SEQCORE();
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync#undef RTASN1TMPL_TYPE
6febf3149010855617e4a37e2c49f93d68930d44vboxsync#undef RTASN1TMPL_EXT_NAME
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#undef RTASN1TMPL_INT_NAME
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync
80e46f984efd827517661c0e081a36014ca41af8vboxsync/*
80e46f984efd827517661c0e081a36014ca41af8vboxsync * Sequence of RSA other prime infos.
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_TYPE RTCRRSAOTHERPRIMEINFOS
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_EXT_NAME RTCrRsaOtherPrimeInfos
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsync#define RTASN1TMPL_INT_NAME rtCrRsaOtherPrimeInfos
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_SEQ_OF(RTCRRSAOTHERPRIMEINFO, RTCrRsaOtherPrimeInfo);
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#undef RTASN1TMPL_TYPE
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#undef RTASN1TMPL_EXT_NAME
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#undef RTASN1TMPL_INT_NAME
48dafba24ef28f07a241e5857a43b327822574a8vboxsync
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync/*
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync * RSA private key.
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsync */
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#define RTASN1TMPL_TYPE RTCRRSAPRIVATEKEY
710a6316a22868b04400caf79719f96c18163cd3vboxsync#define RTASN1TMPL_EXT_NAME RTCrRsaPrivateKey
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#define RTASN1TMPL_INT_NAME rtCrRsaPrivateKey
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
174f11bbd5c277153742aa5e6c3bd640bf379547vboxsyncRTASN1TMPL_MEMBER( Version, RTASN1INTEGER, RTAsn1Integer);
41b3442e21c3a79f3bc61ce67e3445757a83f281vboxsyncRTASN1TMPL_MEMBER( Modulus, RTASN1INTEGER, RTAsn1Integer);
06782e19f5e2144408396dcec922c423c5ef9da8vboxsyncRTASN1TMPL_MEMBER( PublicExponent, RTASN1INTEGER, RTAsn1Integer);
80e46f984efd827517661c0e081a36014ca41af8vboxsyncRTASN1TMPL_MEMBER( PrivateExponent, RTASN1INTEGER, RTAsn1Integer);
80e46f984efd827517661c0e081a36014ca41af8vboxsyncRTASN1TMPL_MEMBER( Prime1, RTASN1INTEGER, RTAsn1Integer);
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_MEMBER( Prime2, RTASN1INTEGER, RTAsn1Integer);
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_MEMBER( Exponent1, RTASN1INTEGER, RTAsn1Integer);
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsyncRTASN1TMPL_MEMBER( Exponent2, RTASN1INTEGER, RTAsn1Integer);
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_MEMBER( Coefficient, RTASN1INTEGER, RTAsn1Integer);
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsyncRTASN1TMPL_MEMBER_OPT_ITAG_EX( OtherPrimeInfos, RTCRRSAOTHERPRIMEINFOS, RTCrRsaOtherPrimeInfos, ASN1_TAG_SEQUENCE, RTASN1TMPL_ITAG_F_UC, RT_NOTHING);
a425b5e790c27d6a1a2cf738802e9034f0764a00vboxsyncRTASN1TMPL_END_SEQCORE();
1e9377d042fa2ea3e2cd78805678f23f64db55f6vboxsync#undef RTASN1TMPL_TYPE
051eba4436f9c682f7873390fb327e8eceb9e0efvboxsync#undef RTASN1TMPL_EXT_NAME
6febf3149010855617e4a37e2c49f93d68930d44vboxsync#undef RTASN1TMPL_INT_NAME
63b785c3291332a86a9bc473e68f08121368898bvboxsync
80e46f984efd827517661c0e081a36014ca41af8vboxsync
80e46f984efd827517661c0e081a36014ca41af8vboxsync/*
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync * RSA Digest Info.
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync */
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_TYPE RTCRRSADIGESTINFO
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_EXT_NAME RTCrRsaDigestInfo
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#define RTASN1TMPL_INT_NAME rtCrRsaDigestInfo
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_BEGIN_SEQCORE();
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_MEMBER( DigestAlgorithm, RTCRX509ALGORITHMIDENTIFIER, RTCrX509AlgorithmIdentifier);
48dafba24ef28f07a241e5857a43b327822574a8vboxsyncRTASN1TMPL_MEMBER( Digest, RTASN1OCTETSTRING, RTAsn1OctetString);
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsyncRTASN1TMPL_END_SEQCORE();
aeb9498c4d9854ed42b271541d34c7bad97b4c77vboxsync#undef RTASN1TMPL_TYPE
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#undef RTASN1TMPL_EXT_NAME
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync#undef RTASN1TMPL_INT_NAME
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync
bddad5eeab93a98d4ea571ccdf016531bb4318advboxsync