コード例 #1
0
ファイル: e_chacha20poly1305.c プロジェクト: dconnolly/ring
int evp_aead_chacha20_poly1305_init(void *ctx_buf, size_t ctx_buf_len,
                                    const uint8_t *key, size_t key_len) {
  aead_assert_init_preconditions(alignof(struct aead_chacha20_poly1305_ctx),
                                 sizeof(struct aead_chacha20_poly1305_ctx),
                                 ctx_buf, ctx_buf_len, key);
  struct aead_chacha20_poly1305_ctx *c20_ctx = ctx_buf;
  memcpy(c20_ctx->key, key, key_len);
  return 1;
}
コード例 #2
0
ファイル: e_aes.c プロジェクト: reaperhulk/ring
int evp_aead_aes_gcm_init(void *ctx_buf, size_t ctx_buf_len, const uint8_t *key,
                          size_t key_len) {
  aead_assert_init_preconditions(alignof(struct aead_aes_gcm_ctx),
                                 sizeof(struct aead_aes_gcm_ctx), ctx_buf,
                                 ctx_buf_len, key);

  struct aead_aes_gcm_ctx *gcm_ctx = ctx_buf;
  gcm_ctx->ctr =
      aes_ctr_set_key(&gcm_ctx->ks.ks, &gcm_ctx->gcm, NULL, key, key_len);
  return 1;
}