Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

[CVS] OpenSSL: OpenSSL_0_9_7-stable: openssl/crypto/aes/ aes.h aes_cfb...: msg#00041

encryption.openssl.cvs

Subject: [CVS] OpenSSL: OpenSSL_0_9_7-stable: openssl/crypto/aes/ aes.h aes_cfb...

OpenSSL CVS Repository
http://cvs.openssl.org/
____________________________________________________________________________

Server: cvs.openssl.org Name: Ben Laurie
Root: /e/openssl/cvs Email: ben@xxxxxxxxxxx
Module: openssl Date: 29-Jul-2003 19:05:17
Branch: OpenSSL_0_9_7-stable Handle: 2003072918051204

Modified files: (Branch: OpenSSL_0_9_7-stable)
openssl/crypto/aes aes.h aes_cfb.c
openssl/crypto/evp c_allc.c e_aes.c evptests.txt
openssl/crypto/objects obj_dat.h obj_mac.h obj_mac.num objects.txt
openssl/fips/aes fips_aesavs.c

Log:
AES CFB8.

Summary:
Revision Changes Path
1.1.2.7 +3 -0 openssl/crypto/aes/aes.h
1.1.2.7 +14 -0 openssl/crypto/aes/aes_cfb.c
1.8.2.4 +1 -0 openssl/crypto/evp/c_allc.c
1.6.2.7 +4 -9 openssl/crypto/evp/e_aes.c
1.9.2.3 +48 -0 openssl/crypto/evp/evptests.txt
1.49.2.15 +20 -5 openssl/crypto/objects/obj_dat.h
1.19.2.15 +15 -0 openssl/crypto/objects/obj_mac.h
1.15.2.11 +3 -0 openssl/crypto/objects/obj_mac.num
1.20.2.16 +3 -0 openssl/crypto/objects/objects.txt
1.1.2.7 +11 -0 openssl/fips/aes/fips_aesavs.c
____________________________________________________________________________

patch -p0 <<'@@ .'
Index: openssl/crypto/aes/aes.h
============================================================================
$ cvs diff -u -r1.1.2.6 -r1.1.2.7 aes.h
--- openssl/crypto/aes/aes.h 28 Jul 2003 15:07:53 -0000 1.1.2.6
+++ openssl/crypto/aes/aes.h 29 Jul 2003 17:05:12 -0000 1.1.2.7
@@ -98,6 +98,9 @@
void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
const unsigned long length, const AES_KEY *key,
unsigned char *ivec, int *num, const int enc);
+void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
+ const unsigned long length, const AES_KEY *key,
+ unsigned char *ivec, int *num, const int enc);
void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out,
const int nbits,const AES_KEY *key,
unsigned char *ivec,const int enc);
@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/aes/aes_cfb.c
============================================================================
$ cvs diff -u -r1.1.2.6 -r1.1.2.7 aes_cfb.c
--- openssl/crypto/aes/aes_cfb.c 29 Jul 2003 10:56:55 -0000 1.1.2.6
+++ openssl/crypto/aes/aes_cfb.c 29 Jul 2003 17:05:12 -0000 1.1.2.7
@@ -222,6 +222,7 @@
{
unsigned int n;
unsigned char c[1],d[1];
+
assert(in && out && key && ivec && num);
assert(*num == 0);

@@ -232,5 +233,18 @@
AES_cfbr_encrypt_block(c,d,1,key,ivec,enc);
out[n/8]=(out[n/8]&~(1 << (7-n%8)))|((d[0]&0x80) >> (n%8));
}
+ }
+
+void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
+ const unsigned long length, const AES_KEY *key,
+ unsigned char *ivec, int *num, const int enc)
+ {
+ unsigned int n;
+
+ assert(in && out && key && ivec && num);
+ assert(*num == 0);
+
+ for(n=0 ; n < length ; ++n)
+ AES_cfbr_encrypt_block(&in[n],&out[n],8,key,ivec,enc);
}

@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/evp/c_allc.c
============================================================================
$ cvs diff -u -r1.8.2.3 -r1.8.2.4 c_allc.c
--- openssl/crypto/evp/c_allc.c 29 Jul 2003 10:56:56 -0000 1.8.2.3
+++ openssl/crypto/evp/c_allc.c 29 Jul 2003 17:05:13 -0000 1.8.2.4
@@ -151,6 +151,7 @@
EVP_add_cipher(EVP_aes_128_cbc());
EVP_add_cipher(EVP_aes_128_cfb());
EVP_add_cipher(EVP_aes_128_cfb1());
+ EVP_add_cipher(EVP_aes_128_cfb8());
EVP_add_cipher(EVP_aes_128_ofb());
#if 0
EVP_add_cipher(EVP_aes_128_ctr());
@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/evp/e_aes.c
============================================================================
$ cvs diff -u -r1.6.2.6 -r1.6.2.7 e_aes.c
--- openssl/crypto/evp/e_aes.c 29 Jul 2003 13:24:25 -0000 1.6.2.6
+++ openssl/crypto/evp/e_aes.c 29 Jul 2003 17:05:13 -0000 1.6.2.7
@@ -96,15 +96,10 @@
IMPLEMENT_CFBR(128,1)
IMPLEMENT_CFBR(192,1)
IMPLEMENT_CFBR(256,1)
- /*
-BLOCK_CIPHER_func_cfb(aes_128,AES,1,EVP_AES_KEY,ks)
-BLOCK_CIPHER_def_cfb(aes_128,EVP_AES_KEY,
- NID_aes_128, 16, 16, 1,
- 0, aes_init_key, NULL,
- EVP_CIPHER_set_asn1_iv,
- EVP_CIPHER_get_asn1_iv,
- NULL)
- */
+
+IMPLEMENT_CFBR(128,8)
+IMPLEMENT_CFBR(192,8)
+IMPLEMENT_CFBR(256,8)

static int aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
const unsigned char *iv, int enc)
@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/evp/evptests.txt
============================================================================
$ cvs diff -u -r1.9.2.2 -r1.9.2.3 evptests.txt
--- openssl/crypto/evp/evptests.txt 29 Jul 2003 10:56:56 -0000 1.9.2.2
+++ openssl/crypto/evp/evptests.txt 29 Jul 2003 17:05:13 -0000 1.9.2.3
@@ -140,6 +140,54 @@

# TODO: CFB1-AES192 and 256

+# CFB8-AES128.Encrypt
+

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:1

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:1
+# all of the above packed into one

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:1
+
+# CFB8-AES128.Decrypt
+

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6b:3b:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0102030405060708090a0b0c0d0e0f3b:c1:79:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:02030405060708090a0b0c0d0e0f3b79:be:42:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:030405060708090a0b0c0d0e0f3b7942:e2:4c:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0405060708090a0b0c0d0e0f3b79424c:2e:9c:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:05060708090a0b0c0d0e0f3b79424c9c:40:0d:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:060708090a0b0c0d0e0f3b79424c9c0d:9f:d4:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0708090a0b0c0d0e0f3b79424c9c0dd4:96:36:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:08090a0b0c0d0e0f3b79424c9c0dd436:e9:ba:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:090a0b0c0d0e0f3b79424c9c0dd436ba:3d:ce:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0a0b0c0d0e0f3b79424c9c0dd436bace:7e:9e:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0b0c0d0e0f3b79424c9c0dd436bace9e:11:0e:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0c0d0e0f3b79424c9c0dd436bace9e0e:73:d4:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0d0e0f3b79424c9c0dd436bace9e0ed4:93:58:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0e0f3b79424c9c0dd436bace9e0ed458:17:6a:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:0f3b79424c9c0dd436bace9e0ed4586a:2a:4f:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:3b79424c9c0dd436bace9e0ed4586a4f:ae:32:0

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:79424c9c0dd436bace9e0ed4586a4f32:2d:b9:0
+# all of the above packed into one

+AES-128-CFB8:2b7e151628aed2a6abf7158809cf4f3c:000102030405060708090a0b0c0d0e0f:6bc1bee22e409f96e93d7e117393172aae2d:3b79424c9c0dd436bace9e0ed4586a4f32b9:0
+
+# TODO: 192 and 256 bit keys
+
# For all CFB128 encrypts and decrypts, the transformed sequence is
# AES-bits-CFB:key:IV/ciphertext':plaintext:ciphertext:encdec
# CFB128-AES128.Encrypt
@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/objects/obj_dat.h
============================================================================
$ cvs diff -u -r1.49.2.14 -r1.49.2.15 obj_dat.h
--- openssl/crypto/objects/obj_dat.h 29 Jul 2003 13:24:25 -0000
1.49.2.14
+++ openssl/crypto/objects/obj_dat.h 29 Jul 2003 17:05:14 -0000
1.49.2.15
@@ -62,12 +62,12 @@
* [including the GNU Public Licence.]
*/

-#define NUM_NID 653
-#define NUM_SN 646
-#define NUM_LN 646
-#define NUM_OBJ 620
+#define NUM_NID 656
+#define NUM_SN 649
+#define NUM_LN 649
+#define NUM_OBJ 623

-static unsigned char lvalues[4473]={
+static unsigned char lvalues[4491]={
0x00, /* [ 0] OBJ_undef */
0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 1] OBJ_rsadsi */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 7] OBJ_pkcs */
@@ -688,6 +688,9 @@
0x29,0x01,0x01,0x85,0x1A,0x03, /* [4454] OBJ_aes_128_cfb1 */
0x29,0x01,0x01,0x85,0x1A,0x04, /* [4460] OBJ_aes_192_cfb1 */
0x29,0x01,0x01,0x85,0x1A,0x05, /* [4466] OBJ_aes_256_cfb1 */
+0x29,0x01,0x01,0x85,0x1A,0x06, /* [4472] OBJ_aes_128_cfb8 */
+0x29,0x01,0x01,0x85,0x1A,0x07, /* [4478] OBJ_aes_192_cfb8 */
+0x29,0x01,0x01,0x85,0x1A,0x08, /* [4484] OBJ_aes_256_cfb8 */
};

static ASN1_OBJECT nid_objs[NUM_NID]={
@@ -1734,6 +1737,9 @@
{"AES-128-CFB1","aes-128-cfb1",NID_aes_128_cfb1,6,&(lvalues[4454]),0},
{"AES-192-CFB1","aes-192-cfb1",NID_aes_192_cfb1,6,&(lvalues[4460]),0},
{"AES-256-CFB1","aes-256-cfb1",NID_aes_256_cfb1,6,&(lvalues[4466]),0},
+{"AES-128-CFB8","aes-128-cfb8",NID_aes_128_cfb8,6,&(lvalues[4472]),0},
+{"AES-192-CFB8","aes-192-cfb8",NID_aes_192_cfb8,6,&(lvalues[4478]),0},
+{"AES-256-CFB8","aes-256-cfb8",NID_aes_256_cfb8,6,&(lvalues[4484]),0},
};

static ASN1_OBJECT *sn_objs[NUM_SN]={
@@ -1741,16 +1747,19 @@
&(nid_objs[419]),/* "AES-128-CBC" */
&(nid_objs[421]),/* "AES-128-CFB" */
&(nid_objs[650]),/* "AES-128-CFB1" */
+&(nid_objs[653]),/* "AES-128-CFB8" */
&(nid_objs[418]),/* "AES-128-ECB" */
&(nid_objs[420]),/* "AES-128-OFB" */
&(nid_objs[423]),/* "AES-192-CBC" */
&(nid_objs[425]),/* "AES-192-CFB" */
&(nid_objs[651]),/* "AES-192-CFB1" */
+&(nid_objs[654]),/* "AES-192-CFB8" */
&(nid_objs[422]),/* "AES-192-ECB" */
&(nid_objs[424]),/* "AES-192-OFB" */
&(nid_objs[427]),/* "AES-256-CBC" */
&(nid_objs[429]),/* "AES-256-CFB" */
&(nid_objs[652]),/* "AES-256-CFB1" */
+&(nid_objs[655]),/* "AES-256-CFB8" */
&(nid_objs[426]),/* "AES-256-ECB" */
&(nid_objs[428]),/* "AES-256-OFB" */
&(nid_objs[91]),/* "BF-CBC" */
@@ -2495,16 +2504,19 @@
&(nid_objs[419]),/* "aes-128-cbc" */
&(nid_objs[421]),/* "aes-128-cfb" */
&(nid_objs[650]),/* "aes-128-cfb1" */
+&(nid_objs[653]),/* "aes-128-cfb8" */
&(nid_objs[418]),/* "aes-128-ecb" */
&(nid_objs[420]),/* "aes-128-ofb" */
&(nid_objs[423]),/* "aes-192-cbc" */
&(nid_objs[425]),/* "aes-192-cfb" */
&(nid_objs[651]),/* "aes-192-cfb1" */
+&(nid_objs[654]),/* "aes-192-cfb8" */
&(nid_objs[422]),/* "aes-192-ecb" */
&(nid_objs[424]),/* "aes-192-ofb" */
&(nid_objs[427]),/* "aes-256-cbc" */
&(nid_objs[429]),/* "aes-256-cfb" */
&(nid_objs[652]),/* "aes-256-cfb1" */
+&(nid_objs[655]),/* "aes-256-cfb8" */
&(nid_objs[426]),/* "aes-256-ecb" */
&(nid_objs[428]),/* "aes-256-ofb" */
&(nid_objs[376]),/* "algorithm" */
@@ -3250,6 +3262,9 @@
&(nid_objs[650]),/* OBJ_aes_128_cfb1 1 1 1 1 666 3 */
&(nid_objs[651]),/* OBJ_aes_192_cfb1 1 1 1 1 666 4 */
&(nid_objs[652]),/* OBJ_aes_256_cfb1 1 1 1 1 666 5 */
+&(nid_objs[653]),/* OBJ_aes_128_cfb8 1 1 1 1 666 6 */
+&(nid_objs[654]),/* OBJ_aes_192_cfb8 1 1 1 1 666 7 */
+&(nid_objs[655]),/* OBJ_aes_256_cfb8 1 1 1 1 666 8 */
&(nid_objs[ 1]),/* OBJ_rsadsi 1 2 840 113549 */
&(nid_objs[185]),/* OBJ_X9cm 1 2 840 10040 4 */
&(nid_objs[127]),/* OBJ_id_pkix 1 3 6 1 5 5 7 */
@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/objects/obj_mac.h
============================================================================
$ cvs diff -u -r1.19.2.14 -r1.19.2.15 obj_mac.h
--- openssl/crypto/objects/obj_mac.h 29 Jul 2003 13:24:26 -0000
1.19.2.14
+++ openssl/crypto/objects/obj_mac.h 29 Jul 2003 17:05:14 -0000
1.19.2.15
@@ -2024,6 +2024,21 @@
#define NID_aes_256_cfb1 652
#define OBJ_aes_256_cfb1 1L,1L,1L,1L,666L,5L

+#define SN_aes_128_cfb8 "AES-128-CFB8"
+#define LN_aes_128_cfb8 "aes-128-cfb8"
+#define NID_aes_128_cfb8 653
+#define OBJ_aes_128_cfb8 1L,1L,1L,1L,666L,6L
+
+#define SN_aes_192_cfb8 "AES-192-CFB8"
+#define LN_aes_192_cfb8 "aes-192-cfb8"
+#define NID_aes_192_cfb8 654
+#define OBJ_aes_192_cfb8 1L,1L,1L,1L,666L,7L
+
+#define SN_aes_256_cfb8 "AES-256-CFB8"
+#define LN_aes_256_cfb8 "aes-256-cfb8"
+#define NID_aes_256_cfb8 655
+#define OBJ_aes_256_cfb8 1L,1L,1L,1L,666L,8L
+
#define SN_hold_instruction_code "holdInstructionCode"
#define LN_hold_instruction_code "Hold Instruction Code"
#define NID_hold_instruction_code 430
@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/objects/obj_mac.num
============================================================================
$ cvs diff -u -r1.15.2.10 -r1.15.2.11 obj_mac.num
--- openssl/crypto/objects/obj_mac.num 29 Jul 2003 13:24:26 -0000
1.15.2.10
+++ openssl/crypto/objects/obj_mac.num 29 Jul 2003 17:05:14 -0000
1.15.2.11
@@ -650,3 +650,6 @@
aes_128_cfb1 650
aes_192_cfb1 651
aes_256_cfb1 652
+aes_128_cfb8 653
+aes_192_cfb8 654
+aes_256_cfb8 655
@@ .
patch -p0 <<'@@ .'
Index: openssl/crypto/objects/objects.txt
============================================================================
$ cvs diff -u -r1.20.2.15 -r1.20.2.16 objects.txt
--- openssl/crypto/objects/objects.txt 29 Jul 2003 13:24:26 -0000
1.20.2.15
+++ openssl/crypto/objects/objects.txt 29 Jul 2003 17:05:14 -0000
1.20.2.16
@@ -686,6 +686,9 @@
1 1 1 1 666 3 : AES-128-CFB1 : aes-128-cfb1
1 1 1 1 666 4 : AES-192-CFB1 : aes-192-cfb1
1 1 1 1 666 5 : AES-256-CFB1 : aes-256-cfb1
+1 1 1 1 666 6 : AES-128-CFB8 : aes-128-cfb8
+1 1 1 1 666 7 : AES-192-CFB8 : aes-192-cfb8
+1 1 1 1 666 8 : AES-256-CFB8 : aes-256-cfb8

# Hold instruction CRL entry extension
!Cname hold-instruction-code
@@ .
patch -p0 <<'@@ .'
Index: openssl/fips/aes/fips_aesavs.c
============================================================================
$ cvs diff -u -r1.1.2.6 -r1.1.2.7 fips_aesavs.c
--- openssl/fips/aes/fips_aesavs.c 29 Jul 2003 14:34:48 -0000 1.1.2.6
+++ openssl/fips/aes/fips_aesavs.c 29 Jul 2003 17:05:16 -0000 1.1.2.7
@@ -49,6 +49,8 @@
kt = 4000;
else if(!strcasecmp(amode,"CFB1"))
kt=5000;
+ else if(!strcasecmp(amode,"CFB8"))
+ kt=6000;
else
{
printf("Unknown mode: %s\n", amode);
@@ -110,6 +112,15 @@
break;
case 5256:
cipher=EVP_aes_256_cfb1();
+ break;
+ case 6128:
+ cipher=EVP_aes_128_cfb8();
+ break;
+ case 6192:
+ cipher=EVP_aes_192_cfb8();
+ break;
+ case 6256:
+ cipher=EVP_aes_256_cfb8();
break;
default:
printf("Didn't handle mode %d\n",kt);
@@ .
______________________________________________________________________
OpenSSL Project http://www.openssl.org
CVS Repository Commit List openssl-cvs@xxxxxxxxxxx
Automated List Manager majordomo@xxxxxxxxxxx



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
qnx.openqnx.dev...    gcc.libstdc++.c...    solaris.opensol...    information-ret...    misc.misterhous...    web.catalyst.ge...    apache.webservi...    redhat.release....    hardware.lirc/2...    kernel.autofs/2...    technology.sust...    linux.vdr/2003-...    editors.lyx.gen...    org.user-groups...    netbsd.devel.pk...    xdg.devel/2004-...    version-control...    jakarta.slide.d...    debian.packages...    creativecommons...    ports.ppc.embed...    bug-tracking.bu...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe