|
|
1.1.1.2 ! root 1: RSAREF(TM) 2.0: A Free Cryptographic Toolkit 1.1 root 2: General Information 3: 4: RSA Laboratories 1.1.1.2 ! root 5: Revised March 26, 1996 1.1 root 6: 1.1.1.2 ! root 7: This document copyright (C) 1992,1994,1996 RSA Laboratories, a division ! 8: of RSA Data Security, Inc. License is granted to reproduce, copy, post, ! 9: or distribute in any manner, provided this document is kept intact ! 10: and no modifications, deletions, or additions are made. 1.1 root 11: 12: 13: WHAT IS IT? 14: 1.1.1.2 ! root 15: RSAREF is a free, portable software developer's library of popular ! 16: encryption and authentication algorithms. The name "RSAREF" means ! 17: "RSA reference." RSA Laboratories intends RSAREF to serve as a free, ! 18: educational reference implementation of modern public- and secret-key ! 19: cryptography. 1.1 root 20: 1.1.1.2 ! root 21: RSAREF 2.0 supports the following algorithms: 1.1 root 22: 23: o RSA encryption and key generation, as defined by RSA 24: Laboratories' Public-Key Cryptography Standards (PKCS) 25: 26: o MD2 and MD5 message digests 27: 28: o DES (Data Encryption Standard) in cipher-block chaining mode 29: 30: o Diffie-Hellman key agreement 31: 32: o DESX, RSA Data Security's efficient, secure DES enhancement 33: 34: o Triple-DES, for added security with three DES operations 35: 36: Version 2.0 offers three other improvements over RSAREF 1.0: the 37: ability to process messages of arbitrary length in parts; the option 38: to process either binary data, or data encoded in printable ASCII; 39: and support for encrypting messages for more than one recipient. 40: 41: RSAREF is written in the C programming language as a library that can 42: be called from an application program. A simple Internet Privacy- 43: Enhanced Mail (PEM) implementation can be built directly on top of 44: RSAREF, together with message parsing and formatting routines and 45: certificate-management routines. RSAREF is distributed with a 46: demonstration program that shows how one might build such an 47: implementation. 48: 49: 50: WHAT YOU CAN (AND CANNOT) DO WITH RSAREF 51: 1.1.1.2 ! root 52: 1. RSAREF is free for personal or corporate use under the ! 53: following conditions: ! 54: ! 55: o RSAREF, RSAREF applications, and services based on ! 56: RSAREF applications may not be sold. ! 57: ! 58: o You must give RSA the source code of any free RSAREF ! 59: application you plan to distribute or deploy within ! 60: your company. RSA will make these applications ! 61: available to the public, free of charge. ! 62: ! 63: 2. RSAREF applications and services based on RSAREF ! 64: applications may be sold under the following conditions: ! 65: ! 66: o You must sign and return the RSAREF Commercial License ! 67: Agreement to RSA (call RSA for a copy of this ! 68: agreement). Remember, RSAREF is an unsupported toolkit. ! 69: If you are building an application to sell, you should ! 70: consider using fully supported libraries like RSA's ! 71: BSAFE or TIPEM SDK's. ! 72: ! 73: 3. RSAREF applications and services based on RSAREF ! 74: applications may be "sharewared" under the following ! 75: conditions: ! 76: ! 77: o Shareware authors do not need to sign a separate ! 78: agreement with RSA, provided that their per-copy asking ! 79: price is less than $50 and total RSAREF application ! 80: revenue is less than $10,000 annually. Otherwise, ! 81: shareware authors must sign and return the RSAREF ! 82: Commercial License Agreement. ! 83: ! 84: 4. You must use the interface described in the RSAREF ! 85: documentation. ! 86: ! 87: o The published interface of RSAREF consists of those ! 88: procedures and data types listed in the files ! 89: "global.h" and "rsaref.h", as described in the RSAREF ! 90: library reference manual (the file "rsaref.txt"). If a ! 91: procedure is not documented in the library reference ! 92: manual, then it is not considered published, even if an ! 93: application could access it without modification to ! 94: RSAREF. ! 95: ! 96: o Furthermore, the published interface is understood as ! 97: the reasonable interpretation of the descriptions in ! 98: the library reference manual. Although it may well be ! 99: possible to perform other operations with procedures ! 100: listed in "rsaref.h" than what is described in ! 101: "rsaref.txt", only the intended operations (e.g., ! 102: Diffie-Hellman key agreement with the Diffie-Hellman ! 103: procedures) are considered to follow the published ! 104: interface. ! 105: ! 106: 5. You can modify RSAREF to port it to other platforms, or to ! 107: improve its performance, as long as you give a copy of the ! 108: resulting source code to RSA. Other changes to the RSAREF ! 109: code require written consent from RSA. ! 110: ! 111: 6. You can't send or transmit (or cause to be transmitted) ! 112: RSAREF outside the United States or Canada, or give it to ! 113: anyone who is not a U.S. or Canadian citizen or doesn't have ! 114: a "green card." 1.1 root 115: 116: 117: HOW TO GET IT 118: 1.1.1.2 ! root 119: To obtain RSAREF, read the license at the end of the note and return ! 120: a copy of the following paragraph by electronic mail to 1.1 root 121: <[email protected]>: 122: 123: I acknowledge that I have read the RSAREF Program License 124: Agreement and understand and agree to be bound by its terms and 125: conditions, including without limitation its restrictions on 126: foreign reshipment of the Program and information related to the 127: Program. The electronic mail address to which I am requesting 128: that the program be transmitted is located in the United States 129: of America or Canada and I am a United States citizen, a Canadian 130: citizen, or a permanent resident of the United States. The RSAREF 131: Program License Agreement is the complete and exclusive agreement 132: between RSA Laboratories and me relating to the Program, and 133: supersedes any proposal or prior agreement, oral or written, and 134: any other communications between RSA Laboratories and me relating 135: to the Program. 136: 1.1.1.2 ! root 137: RSAREF is distributed by electronic mail in "uuencoded", compressed ! 138: TAR format. When you receive it, store the contents of the message in ! 139: a file, and run your operating system's "uudecode", "uncompress" and ! 140: TAR programs. For example, suppose you store the contents of your ! 141: message in the file 'contents'. You would run the commands: 1.1 root 142: 143: uudecode contents # produces rsaref.tar.Z 144: uncompress rsaref.tar.Z # produces rsaref.tar 145: tar xvf rsaref.tar 146: 147: You can also get a "uuencoded" PKZIP(TM) version of RSAREF. Just ask 148: for the ZIP file when you return the acknowledgment. 149: 150: RSAREF includes about 60 files organized into the following 151: subdirectories: 152: 153: doc documentation 154: install makefiles for various operating systems 155: rdemo demonstration programs and test scripts 156: source source code and include files 157: 1.1.1.2 ! root 158: RSAREF is also available via anonymous FTP to 'ftp.rsa.com'. Along with 1.1 root 159: RSAREF you can get RIPEM, Mark Riordan's RSAREF-based privacy-enhanced 160: mail application, and an Emacs command interface to RIPEM. See the 161: file 'README' in the FTP directory 'rsaref' for more information. 162: 163: 164: USERS' GROUP 165: 166: RSA Laboratories maintains the electronic-mail users' group 167: <[email protected]> for discussion of RSAREF applications, bug 168: fixes, etc. To join the users' group, send electronic mail to 169: <[email protected]>. 170: 171: 172: REGISTRATION 173: 174: RSAREF users who register with RSA Laboratories are entitled to free 175: RSAREF upgrades and bug fixes as soon as they become available and a 176: 50% discount on selected RSA Data Security products. To register, 177: send your name, address, and telephone number to 178: <[email protected]>. 179: 180: 181: PUBLIC-KEY CERTIFICATION 182: 1.1.1.2 ! root 183: Verisign offers public-key certification services conforming to PKCS ! 184: standards. For more information, please send electronic mail to ! 185: <[email protected]>. 1.1 root 186: 187: 1.1.1.2 ! root 188: PKCS: THE PUBLIC-KEY CRYPTOGRAPHY STANDARDS 1.1 root 189: 190: To obtain copies of RSA Laboratories' Public-Key Cryptography 191: Standards (PKCS), send electronic mail to <[email protected]>. 192: 193: 194: OTHER QUESTIONS 195: 196: If you have questions on RSAREF software, licenses, export 197: restrictions, or other RSA Laboratories offerings, send electronic 198: mail to <[email protected]>. 199: 200: 201: AUTHORS 202: 1.1.1.2 ! root 203: RSAREF was written by the staff of RSA Laboratories with assistance 1.1 root 204: from RSA Data Security's software engineers. The DES code was written 205: by Richard Outerbridge, with help from Phil Karn and Dan Hoey. Jim 206: Hwang of Stanford wrote parts of the arithmetic code under contract 207: to RSA Laboratories. 208: 209: 210: ABOUT RSA LABORATORIES 211: 212: RSA Laboratories is the research and development division of RSA Data 213: Security, Inc., the company founded by the inventors of the RSA 214: public-key cryptosystem. RSA Laboratories reviews, designs and 215: implements secure and efficient cryptosystems of all kinds. Its 216: clients include government agencies, telecommunications companies, 217: computer manufacturers, software developers, cable TV broadcasters, 218: interactive video manufacturers, and satellite broadcast companies, 219: among others. 220: 221: RSA Laboratories draws upon the talents of the following people: 222: 223: Len Adleman, distinguished associate - Ph.D., University of 224: California, Berkeley; Henry Salvatori professor of computer 225: science at University of Southern California; co-inventor of 226: RSA public-key cryptosystem; co-founder of RSA Data Security, Inc. 227: 228: Taher Elgamal, senior associate - Ph.D., Stanford University; 229: inventor of Elgamal public-key cryptosystem based on discrete 1.1.1.2 ! root 230: logarithms; holder of three patents for data compression algorithms ! 231: and implementations. 1.1 root 232: 233: Martin Hellman, distinguished associate - Ph.D., Stanford University; 234: professor of electrical engineering at Stanford University; 235: co-inventor of public-key cryptography, exponential key exchange; 236: IEEE fellow; IEEE Centennial Medal recipient 237: 238: Burt Kaliski, chief scientist - Ph.D., MIT; former visiting assistant 239: professor at Rochester Institute of Technology; editor of Public-Key 240: Cryptography Standards; general chair of CRYPTO '91 241: 242: Cetin Koc, associate - Ph.D., University of California, Santa 243: Barbara; assistant professor at Oregon State University 244: 245: Ron Rivest, distinguished associate - Ph.D., Stanford University; 246: professor of computer science at MIT; co-inventor of RSA public-key 247: cryptosystem; co-founder of RSA Data Security, Inc.; member of 248: National Academy of Engineering; director of International 249: Association for Cryptologic Research; program co-chair of ASIACRYPT 250: '91 251: 252: Matt Robshaw, research scientist - Ph.D., University of London; member 253: of EUROCRYPT '91 organizing committee 254: 255: RSA Laboratories seeks the talents of other people as well. If you're 1.1.1.2 ! root 256: interested, please write or call us. 1.1 root 257: 258: 259: ADDRESSES 260: 261: RSA Laboratories RSA Data Security, Inc. 262: 100 Marine Parkway 100 Marine Parkway 263: Redwood City, CA 94065 Redwood City, CA 94065 264: 265: (415) 595-7703 (415) 595-8782 1.1.1.2 ! root 266: e-mail: [email protected] [email protected] ! 267: ! 268: ! 269: RSA LABORATORIES RSAREF 2.0 PROGRAM LICENSE AGREEMENT ! 270: ! 271: RSA LABORATORIES, A DIVISION OF RSA DATA SECURITY, INC. ("RSA") ! 272: GRANTS YOU A LICENSE AS FOLLOWS TO THE "RSAREF" PROGRAM: 1.1 root 273: 1.1.1.2 ! root 274: 1. LICENSE. RSA grants you a non-exclusive, non-transferable, ! 275: perpetual (subject to the conditions of Section 8) license for ! 276: the "RSAREF" program (the "Program") and its associated ! 277: documentation, subject to all of the following terms and ! 278: conditions: ! 279: ! 280: a. to use the Program on any computer; ! 281: ! 282: b. to make copies of the Program for back-up purposes; ! 283: ! 284: c. to modify the Program in any manner for porting or ! 285: performance improvement purposes (subject to Section 2) or ! 286: to incorporate the Program into other computer programs for ! 287: your own personal or internal use, provided that you provide ! 288: RSA with a copy of any such modification or Application ! 289: Program by electronic mail, and grant RSA a perpetual, ! 290: royalty-free license to use and distribute such ! 291: modifications and Application Programs on the terms set ! 292: forth in this Agreement. ! 293: ! 294: d. to copy and distribute the Program and Application Programs ! 295: in accordance with the limitations set forth in Section 2. ! 296: ! 297: "Application Programs" are programs which incorporate all or any ! 298: portion of the Program in any form. The restrictions imposed on ! 299: Application Programs in this Agreement shall not apply to any ! 300: software which, through the mere aggregation on distribution media, ! 301: is co-located or stored with the Program. ! 302: ! 303: 2. LIMITATIONS ON LICENSE. ! 304: ! 305: a. RSA owns the Program and its associated documentation and ! 306: all copyrights therein. You may only use, copy, modify and ! 307: distribute the Program as expressly provided for in this ! 308: Agreement. You must reproduce and include this Agreement, ! 309: RSA's copyright notices and disclaimer of warranty on any ! 310: copy and its associated documentation. The Program and any ! 311: Application programs must be distributed with their source ! 312: code. ! 313: ! 314: b. The Program may not be used directly for revenue-generating ! 315: purposes. You may not: ! 316: ! 317: (i) use the Program to provide services to others for which ! 318: you are compensated in any manner; ! 319: ! 320: (ii) license or otherwise distribute any Application Program ! 321: in any manner that generates income to you, including ! 322: without limitation any income on account of license ! 323: fees, royalties, maintenance fees and upgrade fees; and ! 324: ! 325: (iii) license or otherwise distribute any Application ! 326: Program without the express written acknowledgment of ! 327: the end user that the Program will not be used in ! 328: connection with any revenue-generating activity of the ! 329: end user. ! 330: ! 331: Nothing in this paragraph prohibits you from using the ! 332: Program or any Application Program solely for internal ! 333: purposes on the premises of a business which is engaged in ! 334: revenue-generating activities. ! 335: ! 336: c. The Program, if modified, must carry prominent notices ! 337: stating that changes have been made, and the dates of any ! 338: such changes. ! 339: ! 340: d. Prior permission from RSA in writing is required for any ! 341: modifications that access the Program through ways other ! 342: than the published Program interface or for modifications to ! 343: the Program interface. (See the "What is it? RSAREF Supports ! 344: the Following Algorithms" and "What You Can (and Cannot) Do ! 345: With RSAREF," paragraph 4, all incorporated herein by ! 346: reference, for details.) RSA will grant all reasonable ! 347: requests for permission to make such modifications. ! 348: ! 349: 3. NO RSA OBLIGATION. You are solely responsible for all of your ! 350: costs and expenses incurred in connection with the distribution ! 351: of the Program or any Application Program hereunder, and RSA ! 352: shall have no liability, obligation or responsibility therefor. ! 353: RSA shall have no obligation to provide maintenance, support, ! 354: upgrades or new releases to you or to any distributee of the ! 355: Program or any Application Program. ! 356: ! 357: 4. NO WARRANTY OF PERFORMANCE. THE PROGRAM AND ITS ASSOCIATED ! 358: DOCUMENTATION ARE LICENSED "AS IS" WITHOUT WARRANTY AS TO THEIR ! 359: PERFORMANCE, MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR ! 360: PURPOSE. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF ! 361: THE PROGRAM IS ASSUMED BY YOU AND YOUR DISTRIBUTEES. SHOULD THE ! 362: PROGRAM PROVE DEFECTIVE, YOU AND YOUR DISTRIBUTEES (AND NOT RSA) ! 363: ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR ! 364: CORRECTION. ! 365: ! 366: 5. LIMITATION OF LIABILITY. EXCEPT AS EXPRESSLY PROVIDED FOR IN ! 367: SECTION 6 HEREINUNDER, NEITHER RSA NOR ANY OTHER PERSON WHO HAS ! 368: BEEN INVOLVED IN THE CREATION, PRODUCTION, OR DELIVERY OF THE ! 369: PROGRAM SHALL BE LIABLE TO YOU OR TO ANY OTHER PERSON FOR ANY ! 370: DIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, EVEN IF RSA HAS BEEN ! 371: ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ! 372: ! 373: 6. Nothing in this agreement shall be construed as a representation ! 374: or warranty against infringement of any third party rights based ! 375: on use of the program. ! 376: ! 377: 7. RSAREF is a non-commercial publication of cryptographic ! 378: techniques. Portions of RSAREF have been published in the ! 379: International Security Handbook and the August 1992 issue of Dr. ! 380: Dobb's Journal. Privacy applications developed with RSAREF may be ! 381: subject to export controls. If you are located in the United ! 382: States and develop such applications, you are advised to consult ! 383: with the State Department's Office of Defense Trade Controls. ! 384: ! 385: 8. TERM. The license granted hereunder is effective until ! 386: terminated. You may terminate it at any time by destroying the ! 387: Program and its associated documentation. The termination of your ! 388: license will not result in the termination of the licenses of any ! 389: distributees who have received rights to the Program through you ! 390: so long as they are in compliance with the provisions of this ! 391: license. ! 392: ! 393: 9. GENERAL ! 394: ! 395: a. This Agreement shall be governed by the laws of the State of ! 396: California. ! 397: ! 398: b. Address all correspondence regarding this license to RSA's ! 399: electronic mail address <[email protected]>, or ! 400: to ! 401: ! 402: RSA Laboratories ! 403: ATTN: RSAREF Administrator ! 404: 100 Marine Parkway, Suite 500 ! 405: Redwood City, CA 94065
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.