Coder Social home page Coder Social logo

aes_activity's Introduction

๐Ÿ‘‹ Hi, I'm Elias, Elias Hezron

๐Ÿ‘€ An Ethereum Core Developer Intern

I am passionate about blockchain based solutions

  • ๐Ÿš€ currently building oneramp a crypto on and offramping solution for subSaharan Africa.
  • ๐Ÿค– Ex Intern at Nethermind, Was focused on core ethereum development
  • ๐Ÿ‘€ looking to work with companies using the blockchain to impact the world
  • ๐Ÿ”ญ Looking also to contribute more to opensource.
  • ๐ŸŒฑ Iโ€™m currently perfecting my solidity, Writing it in low level assembly.
  • ๐Ÿ‘ฏ Iโ€™m looking to collaborate on EVM blockchain projects.
  • ๐Ÿ’ฌ Ask me about solidity
  • โšก Fun fact: I love debugging
  • ๐Ÿ“ซ How to reach me: [email protected]

eliashezron

Connect with me:

Solidity Solidity


Languages and Tools:

Solidity

Polygon

Visual Studio Code

HTML5

CSS3

Sass

JavaScript

React

Python

Node.js

MongoDB

Bootstrap

Heroku

Git

GitHub




โšก GitHub Stats

eliashezron

ย elias's GitHub Stats

eliashezron

aes_activity's People

Contributors

eliashezron avatar kavehtehrani avatar

Watchers

 avatar

aes_activity's Issues

Implement XOR first block with plaintext of the next block before it is encrypted

@kavehtehrani
Checking this implementation, your previous_ciphertext_block ungoes a double encryption in the first round. Also do not see where we XOR the previous block with the block bytes.

fn cbc_encrypt(plain_text: Vec<u8>, key: [u8; BLOCK_SIZE]) -> Vec<u8> {
    // Remember to generate a random initialization vector for the first block.
    let padded_text = pad(plain_text);
    let blocks = group(padded_text);
    let mut rng = rand::thread_rng();
    let mut iv: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];
    rng.fill(&mut iv);
    // encrypt the iv with the key
    let mut previous_ciphertext_block = aes_encrypt(iv, &key);

    let mut encrypted_blocks: Vec<[u8; BLOCK_SIZE]> = Vec::new();
    for block in blocks.iter() {
        previous_ciphertext_block = aes_encrypt(*block, &previous_ciphertext_block);
        encrypted_blocks.push(previous_ciphertext_block);
    }
    let mut ciphertext = un_group(encrypted_blocks);
    // Prepend the IV to the ciphertext
    ciphertext.splice(0..0, iv.iter().cloned());

    ciphertext
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.