Code Monkey home page Code Monkey logo

kmip-2.0-implementation's Introduction

KMIP v 2.0 JAVA SDK and Client Application

Overview

This repository contains the code for a scalable and extensible JAVA library for the communication protocol, KMIP v 2.0 (Key Management Interoperability Protocol). KMIP v 2.0 released in October 2019. This SDK provides developers secure ways to manage keys and other cryptographic objects on a key management server. This was our final year project sponsored by IBM and the key management server we used in the development and testing of this SDK was IBM Security Key Lifecycle Manager (SKLM).

Table of Contents


The Why

Key Management Interoperability Protocol is an extensible communication protocol developed by OASIS (a global non-profit consortium) for efficient management of cryptographic keys in a centralized server. IBM uses A Secure Key Lifecycle Management server for storing its cryptographic keys and objects. To manage these keys in the SKLM server, IBM uses the KMIP protocol. KMIP is widely used today and has had several versions of itself released, the latest one being KMIP v2.0 (asof October 2019). As of now, there are not many libraries that support KMIP v 2.0 which clients can use to access the services of KMIP v2.0.

Therefore, our motivation is to build an open source, scalable and easily upgradable KMIP v 2.0 library which developers can use for availing the services of KMIP v 2.0 and the utility to manage keys for encryption/decryption of his data, on the SKLM server using KMIP. Developers can import the library into their application program (.jar format), to access the services offered by the interfaces of the library. A client application supporting various environments which provides the end-user with a UI, can also directly access services of KMIP through this library. The client application will use the library at the backend to provide services as specified by the end-users through the user interface of the client application.


Features

Library

  • Extensible.
  • Easily upgradable when new versions of KMIP are released.
  • Key Operations
    1. Create Key
    2. Create Key-Pair
    3. Get Key
    4. Locate Key
    5. Destroy Key

Client Application

  • Key Operations
    1. Create Key
    2. Create Key-Pair
    3. Get Key
    4. Locate Key
    5. Destroy Key
  • Encrypt/Decrypt files using RSA or AES depending on the key-type.

Guidelines

  • Refer below images for usage.

Import Library

Example Usage


Tech Stack

  • JAVA (for the Library). The packages used in the develpment of java library are:
    1. java.net.*
    2. javax.xml.bind.annotation.*
    3. javax.xml.parsers.*
    4. org.w3c.dom.*
  • Spring.
  • Angular.JS.
  • Maven.

Documentation

This folder contains the documentation for the library. Once downloaded locally, open index.html to begin navigating the documentation.


Team

  • Vedika Ghai.
  • Soha Parasnis.
  • Tanisha Rathi.
  • Vidushi Mishra.

Mentors

We would like to thank our mentors for their valuable time, guidance and encouragement:

  • Professor A.N. Muchrikar, Assistant Professor and Dean (Student Affairs) at MKSSS Cummins College of Engineering for Women, Pune.
  • Mr. Arvind Ashtekar (mentor from IBM).
  • Mr. Vikram Khopade (mentor from IBM).

kmip-2.0-implementation's People

Contributors

vedikaghai avatar sohawithans avatar vm2099 avatar tanishaarathi avatar

Watchers

James Cloos avatar

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.