Sha256: 2dc34ad0e73d1b109ce88f4ab917beaadefb8c6fe25664277ef67c31b0c6eb4b

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

/**
 * Copyright (c) 2017 Armando Faz <armfazh@ic.unicamp.br>.
 * Institute of Computing.
 * University of Campinas, Brazil.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, version 3.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RFC7748_PRECOMPUTED_H
#define RFC7748_PRECOMPUTED_H

#include <stdint.h>

#define ALIGN_BYTES 32
#ifdef __INTEL_COMPILER
#define ALIGN __declspec(align(ALIGN_BYTES))
#else
#define ALIGN __attribute__ ((aligned (ALIGN_BYTES)))
#endif

#define X25519_KEYSIZE_BYTES 32
typedef ALIGN uint8_t X25519_KEY[X25519_KEYSIZE_BYTES];

void x25519_precomputed_scalarmult(uint8_t *shared, uint8_t *private_key, uint8_t *session_key);
void x25519_precomputed_scalarmult_base(uint8_t *session_key, uint8_t *private_key);
int check_4th_gen_intel_core_features();

#endif /* RFC7748_PRECOMPUTED_H */

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
x25519-1.0.1 ext/x25519_precomputed/x25519_precomputed.h
x25519-1.0.0 ext/x25519_precomputed/x25519_precomputed.h
x25519-0.2.0 ext/x25519_precomputed/x25519_precomputed.h