Changeset 559
- Timestamp:
- 05/21/08 12:22:51
- Files:
-
- openpgpsdk/trunk/include/openpgpsdk/keyring.h (modified) (1 diff)
- openpgpsdk/trunk/plan/OpenPGP.omniplan/contents.xml (modified) (54 diffs)
- openpgpsdk/trunk/src/lib/std_keyring.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
openpgpsdk/trunk/include/openpgpsdk/keyring.h
r558 r559 40 40 const char *pphrase); 41 41 42 ops_boolean_t ops_keyring_read(ops_keyring_t *keyring,const char *file); 42 ops_boolean_t ops_keyring_read_from_file(ops_keyring_t *keyring,const char *filename); 43 ops_boolean_t ops_keyring_read_from_mem(ops_keyring_t *keyring, ops_memory_t *mem); 43 44 44 45 char *ops_malloc_passphrase(char *passphrase); openpgpsdk/trunk/plan/OpenPGP.omniplan/contents.xml
r558 r559 31 31 <false/> 32 32 <key>GanttVisibleRect</key> 33 <string>{{ -35, 1318}, {614, 740}}</string>33 <string>{{911, 1114}, {614, 740}}</string> 34 34 <key>OutlineVisibleRect</key> 35 <string>{{0, 1 318}, {802, 740}}</string>35 <string>{{0, 1114}, {802, 740}}</string> 36 36 <key>ScaleWidths</key> 37 37 <dict> … … 169 169 <string>Automatic</string> 170 170 <key>TimelineVisibleRect</key> 171 <string>{{ 1003, 670}, {959, 740}}</string>171 <string>{{-286, 0}, {959, 740}}</string> 172 172 <key>activeColumnIdentifiers</key> 173 173 <array> … … 213 213 <true/> 214 214 <key>endDate</key> 215 <string>2008082 1 18:00</string>215 <string>20080829 16:00</string> 216 216 <key>flatNumbering</key> 217 217 <false/> … … 598 598 <dict> 599 599 <key>nextId</key> 600 <integer>2 39</integer>600 <integer>240</integer> 601 601 </dict> 602 602 <key>taskUserKeys</key> … … 952 952 <integer>158</integer> 953 953 <integer>159</integer> 954 <integer>239</integer> 954 955 </array> 955 956 <key>objectId</key> … … 1129 1130 <integer>236</integer> 1130 1131 </array> 1132 <key>isExpanded</key> 1133 <false/> 1131 1134 <key>objectId</key> 1132 1135 <integer>20</integer> … … 1208 1211 <integer>31</integer> 1209 1212 </array> 1213 <key>isExpanded</key> 1214 <false/> 1210 1215 <key>objectId</key> 1211 1216 <integer>24</integer> … … 2685 2690 </array> 2686 2691 <key>desiredStart</key> 2687 <string>20080 509110000</string>2692 <string>20080605110000</string> 2688 2693 <key>effort</key> 2689 2694 <real>28800</real> … … 2719 2724 </array> 2720 2725 <key>desiredStart</key> 2721 <string>20080 515110000</string>2726 <string>20080611110000</string> 2722 2727 <key>effort</key> 2723 2728 <real>28800</real> … … 2753 2758 </array> 2754 2759 <key>desiredStart</key> 2755 <string>20080 519110000</string>2760 <string>20080613110000</string> 2756 2761 <key>effort</key> 2757 2762 <real>28800</real> … … 2862 2867 </array> 2863 2868 <key>desiredStart</key> 2864 <string>20080 605110000</string>2869 <string>20080702110000</string> 2865 2870 <key>effort</key> 2866 2871 <real>14400</real> … … 2896 2901 </array> 2897 2902 <key>desiredStart</key> 2898 <string>20080 606110000</string>2903 <string>20080703110000</string> 2899 2904 <key>effort</key> 2900 2905 <real>14400</real> … … 2930 2935 </array> 2931 2936 <key>desiredStart</key> 2932 <string>20080 609110000</string>2937 <string>20080704110000</string> 2933 2938 <key>effort</key> 2934 2939 <real>14400</real> … … 3034 3039 </array> 3035 3040 <key>desiredStart</key> 3036 <string>20080 610110000</string>3041 <string>20080707110000</string> 3037 3042 <key>effort</key> 3038 3043 <real>14400</real> … … 3378 3383 </array> 3379 3384 <key>desiredStart</key> 3380 <string>20080 611110000</string>3385 <string>20080708110000</string> 3381 3386 <key>effort</key> 3382 3387 <real>14400</real> … … 3549 3554 </array> 3550 3555 <key>desiredStart</key> 3551 <string>20080 527110000</string>3556 <string>20080623110000</string> 3552 3557 <key>effort</key> 3553 3558 <real>14400</real> … … 4036 4041 </array> 4037 4042 <key>desiredStart</key> 4038 <string>20080 405000000</string>4043 <string>20080503000000</string> 4039 4044 <key>effort</key> 4040 4045 <real>28800</real> … … 4059 4064 </array> 4060 4065 <key>desiredStart</key> 4061 <string>20080 409090000</string>4066 <string>20080507090000</string> 4062 4067 <key>effort</key> 4063 4068 <real>28800</real> … … 4093 4098 </array> 4094 4099 <key>desiredStart</key> 4095 <string>20080 521110000</string>4100 <string>20080617110000</string> 4096 4101 <key>effort</key> 4097 4102 <real>28800</real> … … 4127 4132 </array> 4128 4133 <key>desiredStart</key> 4129 <string>20080 523110000</string>4134 <string>20080619110000</string> 4130 4135 <key>effort</key> 4131 4136 <real>28800</real> … … 4161 4166 </array> 4162 4167 <key>desiredStart</key> 4163 <string>20080 528110000</string>4168 <string>20080624110000</string> 4164 4169 <key>effort</key> 4165 4170 <real>28800</real> … … 4195 4200 </array> 4196 4201 <key>desiredStart</key> 4197 <string>20080620160000</string> 4198 <key>effort</key> 4199 <real>3600</real> 4202 <string>20080717160000</string> 4203 <key>doneSeconds</key> 4204 <real>3600</real> 4205 <key>effort</key> 4206 <real>3600</real> 4207 <key>effortDone</key> 4208 <real>1800</real> 4200 4209 <key>objectId</key> 4201 4210 <integer>156</integer> … … 4213 4222 <key>task</key> 4214 4223 <string>Create Key Pair with OPS, test with GPG</string> 4215 <key>workSeconds</key> 4216 <real>7200</real> 4217 <key>workTime</key> 4218 <real>2</real> 4219 </dict> 4220 <dict> 4221 <key>assignments</key> 4222 <array> 4223 <dict> 4224 <key>id</key> 4225 <integer>1</integer> 4226 <key>units</key> 4227 <real>0.5</real> 4228 </dict> 4229 </array> 4230 <key>desiredStart</key> 4231 <string>20080623090000</string> 4224 <key>workDone</key> 4225 <real>1</real> 4226 <key>workSeconds</key> 4227 <real>7200</real> 4228 <key>workTime</key> 4229 <real>2</real> 4230 </dict> 4231 <dict> 4232 <key>assignments</key> 4233 <array> 4234 <dict> 4235 <key>id</key> 4236 <integer>1</integer> 4237 <key>units</key> 4238 <real>0.5</real> 4239 </dict> 4240 </array> 4241 <key>desiredStart</key> 4242 <string>20080718090000</string> 4232 4243 <key>effort</key> 4233 4244 <real>3600</real> … … 4263 4274 </array> 4264 4275 <key>desiredStart</key> 4265 <string>20080623110000</string> 4266 <key>effort</key> 4267 <real>3600</real> 4276 <string>20080718110000</string> 4277 <key>doneSeconds</key> 4278 <real>3600</real> 4279 <key>effort</key> 4280 <real>3600</real> 4281 <key>effortDone</key> 4282 <real>1800</real> 4268 4283 <key>objectId</key> 4269 4284 <integer>158</integer> … … 4281 4296 <key>task</key> 4282 4297 <string>Sign Key with OPS, verify with GPG</string> 4283 <key>workSeconds</key> 4284 <real>7200</real> 4285 <key>workTime</key> 4286 <real>2</real> 4287 </dict> 4288 <dict> 4289 <key>assignments</key> 4290 <array> 4291 <dict> 4292 <key>id</key> 4293 <integer>1</integer> 4294 <key>units</key> 4295 <real>0.5</real> 4296 </dict> 4297 </array> 4298 <key>desiredStart</key> 4299 <string>20080623140000</string> 4298 <key>workDone</key> 4299 <real>1</real> 4300 <key>workSeconds</key> 4301 <real>7200</real> 4302 <key>workTime</key> 4303 <real>2</real> 4304 </dict> 4305 <dict> 4306 <key>assignments</key> 4307 <array> 4308 <dict> 4309 <key>id</key> 4310 <integer>1</integer> 4311 <key>units</key> 4312 <real>0.5</real> 4313 </dict> 4314 </array> 4315 <key>desiredStart</key> 4316 <string>20080718140000</string> 4300 4317 <key>effort</key> 4301 4318 <real>3600</real> … … 4331 4348 </array> 4332 4349 <key>desiredStart</key> 4333 <string>20080 612110000</string>4350 <string>20080709110000</string> 4334 4351 <key>effort</key> 4335 4352 <real>28800</real> … … 4394 4411 </array> 4395 4412 <key>desiredStart</key> 4396 <string>20080 414090000</string>4413 <string>20080509090000</string> 4397 4414 <key>effort</key> 4398 4415 <real>3600</real> … … 4403 4420 <dict> 4404 4421 <key>id</key> 4405 <integer>1 71</integer>4422 <integer>150</integer> 4406 4423 <key>isResource</key> 4407 4424 <string>YES</string> … … 4428 4445 </array> 4429 4446 <key>desiredStart</key> 4430 <string>20080 418151200</string>4447 <string>20080515151200</string> 4431 4448 <key>effort</key> 4432 4449 <real>7200</real> … … 4462 4479 </array> 4463 4480 <key>desiredStart</key> 4464 <string>20080 421101200</string>4481 <string>20080516101200</string> 4465 4482 <key>effort</key> 4466 4483 <real>7200</real> … … 4525 4542 </array> 4526 4543 <key>desiredStart</key> 4527 <string>20080 414110000</string>4544 <string>20080509110000</string> 4528 4545 <key>effort</key> 4529 4546 <real>57600</real> … … 4571 4588 </array> 4572 4589 <key>desiredStart</key> 4573 <string>200806 03110000</string>4590 <string>20080630110000</string> 4574 4591 <key>doneSeconds</key> 4575 4592 <real>28800</real> … … 4613 4630 <string>20080410090000</string> 4614 4631 <key>doneSeconds</key> 4615 <real> 28800</real>4616 <key>effort</key> 4617 <real>28800</real> 4618 <key>effortDone</key> 4619 <real> 14400</real>4632 <real>57600</real> 4633 <key>effort</key> 4634 <real>28800</real> 4635 <key>effortDone</key> 4636 <real>28800</real> 4620 4637 <key>objectId</key> 4621 4638 <integer>171</integer> 4622 <key>prerequisites</key>4623 <array>4624 <dict>4625 <key>id</key>4626 <integer>150</integer>4627 <key>isResource</key>4628 <string>YES</string>4629 <key>kind</key>4630 <integer>2</integer>4631 </dict>4632 </array>4633 4639 <key>task</key> 4634 4640 <string>Write secret key checksum writer</string> 4635 4641 <key>workDone</key> 4636 <real> 8</real>4642 <real>16</real> 4637 4643 <key>workSeconds</key> 4638 4644 <real>57600</real> … … 4651 4657 </array> 4652 4658 <key>desiredStart</key> 4653 <string>20080 418110000</string>4659 <string>20080515110000</string> 4654 4660 <key>doneSeconds</key> 4655 4661 <real>57599.99609375</real> … … 4774 4780 </array> 4775 4781 <key>desiredStart</key> 4776 <string>20080 729160000</string>4782 <string>20080815160000</string> 4777 4783 <key>effort</key> 4778 4784 <real>28800</real> … … 4814 4820 </array> 4815 4821 <key>desiredStart</key> 4816 <string>20080 731160000</string>4822 <string>20080819160000</string> 4817 4823 <key>effort</key> 4818 4824 <real>115200</real> … … 5045 5051 </array> 5046 5052 <key>desiredStart</key> 5047 <string>20080 530110000</string>5053 <string>20080626110000</string> 5048 5054 <key>effort</key> 5049 5055 <real>14400</real> … … 5091 5097 </array> 5092 5098 <key>desiredStart</key> 5093 <string>200806 02110000</string>5099 <string>20080627110000</string> 5094 5100 <key>effort</key> 5095 5101 <real>28800</real> … … 5266 5272 </array> 5267 5273 <key>desiredStart</key> 5268 <string>20080 616110000</string>5274 <string>20080711110000</string> 5269 5275 <key>effort</key> 5270 5276 <real>28800</real> … … 5300 5306 </array> 5301 5307 <key>desiredStart</key> 5302 <string>20080 618110000</string>5308 <string>20080715110000</string> 5303 5309 <key>effort</key> 5304 5310 <real>28800</real> … … 5456 5462 </array> 5457 5463 <key>desiredStart</key> 5458 <string>20080 417164800</string>5464 <string>20080514164800</string> 5459 5465 <key>doneSeconds</key> 5460 5466 <real>51840</real> … … 5666 5672 </array> 5667 5673 <key>desiredStart</key> 5668 <string>20080 623160000</string>5669 <key>effort</key> 5670 <real> 374400</real>5674 <string>20080718160000</string> 5675 <key>effort</key> 5676 <real>288000</real> 5671 5677 <key>objectId</key> 5672 5678 <integer>214</integer> … … 5685 5691 <string>Other</string> 5686 5692 <key>workSeconds</key> 5687 <real> 748800</real>5688 <key>workTime</key> 5689 <real> 208</real>5693 <real>576000</real> 5694 <key>workTime</key> 5695 <real>160</real> 5690 5696 </dict> 5691 5697 <dict> … … 5737 5743 <integer>227</integer> 5738 5744 </array> 5745 <key>isExpanded</key> 5746 <false/> 5739 5747 <key>objectId</key> 5740 5748 <integer>223</integer> … … 5774 5782 </array> 5775 5783 <key>desiredStart</key> 5776 <string>20080 620110000</string>5784 <string>20080717110000</string> 5777 5785 <key>effort</key> 5778 5786 <real>3600</real> … … 5808 5816 </array> 5809 5817 <key>desiredStart</key> 5810 <string>20080 421164800</string>5818 <string>20080516164800</string> 5811 5819 <key>effort</key> 5812 5820 <real>3600</real> … … 5842 5850 </array> 5843 5851 <key>desiredStart</key> 5844 <string>20080 620140000</string>5852 <string>20080717140000</string> 5845 5853 <key>effort</key> 5846 5854 <real>3600</real> … … 5884 5892 </array> 5885 5893 <key>desiredStart</key> 5886 <string>20080 425110000</string>5894 <string>20080522110000</string> 5887 5895 <key>doneSeconds</key> 5888 5896 <real>144000</real> … … 5924 5932 </array> 5925 5933 <key>desiredStart</key> 5926 <string>20080 414151200</string>5934 <string>20080509151200</string> 5927 5935 <key>doneSeconds</key> 5928 5936 <real>103680</real> … … 5964 5972 </array> 5965 5973 <key>doneSeconds</key> 5974 <real>86400</real> 5975 <key>effort</key> 5966 5976 <real>57600</real> 5967 <key>effort</key> 5968 <real>57600</real> 5969 <key>effortDone</key> 5970 <real>28800</real> 5977 <key>effortDone</key> 5978 <real>43200</real> 5971 5979 <key>objectId</key> 5972 5980 <integer>233</integer> … … 5983 5991 <string>(NEW) Write out secret key sequence</string> 5984 5992 <key>workDone</key> 5985 <real> 16</real>5993 <real>24</real> 5986 5994 <key>workSeconds</key> 5987 5995 <real>115200</real> … … 6043 6051 </array> 6044 6052 <key>doneSeconds</key> 6045 <real> 115200</real>6046 <key>effort</key> 6047 <real> 57600</real>6048 <key>effortDone</key> 6049 <real> 57600</real>6053 <real>288000</real> 6054 <key>effort</key> 6055 <real>144000</real> 6056 <key>effortDone</key> 6057 <real>144000</real> 6050 6058 <key>forcedStart</key> 6051 6059 <string>20080324090000</string> … … 6055 6063 <string>Extra complexity in writing transferable secret key </string> 6056 6064 <key>workDone</key> 6057 <real>32</real> 6058 <key>workSeconds</key> 6059 <real>115200</real> 6060 <key>workTime</key> 6061 <real>32</real> 6065 <real>80</real> 6066 <key>workSeconds</key> 6067 <real>288000</real> 6068 <key>workTime</key> 6069 <real>80</real> 6070 </dict> 6071 <dict> 6072 <key>effort</key> 6073 <real>57600</real> 6074 <key>objectId</key> 6075 <integer>239</integer> 6076 <key>task</key> 6077 <string>(NEW 080502) Interoperability with PGP latest version</string> 6078 <key>workSeconds</key> 6079 <real>57600</real> 6080 <key>workTime</key> 6081 <real>16</real> 6062 6082 </dict> 6063 6083 </array> … … 6071 6091 </array> 6072 6092 <key>uuid</key> 6073 <string> 9A2554F9-9F07-4301-8A1B-1D5C0C671C35</string>6093 <string>811041D5-10C9-400F-A121-AAE36CBE8703</string> 6074 6094 <key>version</key> 6075 6095 <integer>2</integer> openpgpsdk/trunk/src/lib/std_keyring.c
r558 r559 19 19 20 20 // Read keyring from file 21 ops_keyring_read (&keyring,filename);21 ops_keyring_read_from_file(&keyring,filename); 22 22 23 23 // do actions using keyring 24 24 ... 25 25 26 // Free memory alloc-ed in ops_keyring_read ()26 // Free memory alloc-ed in ops_keyring_read_from_file() 27 27 ops_keyring_free(); 28 28 \endcode … … 43 43 44 44 // Read keyring from file 45 ops_keyring_read (&keyring,"~/.gnupg/pubring.gpg");45 ops_keyring_read_from_file(&keyring,"~/.gnupg/pubring.gpg"); 46 46 47 47 // Search for keys … … 56 56 ... 57 57 58 // Free memory alloc-ed in ops_keyring_read ()58 // Free memory alloc-ed in ops_keyring_read_from_file() 59 59 ops_keyring_free(); 60 60 \endcode … … 76 76 #include "openpgpsdk/util.h" 77 77 #include "openpgpsdk/std_print.h" 78 #include "openpgpsdk/readerwriter.h" 78 79 79 80 static ops_parse_cb_return_t … … 98 99 ops_keyring_free() between these calls, you will introduce a memory leak. 99 100 */ 100 ops_boolean_t ops_keyring_read (ops_keyring_t *keyring,const char *file)101 ops_boolean_t ops_keyring_read_from_file(ops_keyring_t *keyring,const char *filename) 101 102 { 102 103 ops_parse_info_t *pinfo; … … 115 116 116 117 #ifdef WIN32 117 fd=open(file ,O_RDONLY|O_BINARY);118 fd=open(filename,O_RDONLY|O_BINARY); 118 119 #else 119 fd=open(file ,O_RDONLY);120 fd=open(filename,O_RDONLY); 120 121 #endif 121 122 if(fd < 0) 122 123 { 123 124 ops_parse_info_delete(pinfo); 124 perror(file );125 perror(filename); 125 126 return ops_false; 126 127 } … … 137 138 138 139 ops_parse_info_delete(pinfo); 140 141 return res; 142 } 143 144 /** 145 \ingroup StdKeyring 146 147 Reads a keyring from memory 148 149 \param keyring Ptr to existing keyring 150 \param mem ptr to memory struct containing keyring info 151 152 \note Keyring struct must already exist. 153 154 \note Can be used with either a public or secret keyring. 155 156 \note You must call ops_keyring_free() after usage to free alloc-ed memory. 157 158 \note If you call this twice on the same keyring struct, without calling 159 ops_keyring_free() between these calls, you will introduce a memory leak. 160 */ 161 ops_boolean_t ops_keyring_read_from_mem(ops_keyring_t *keyring, ops_memory_t* mem) 162 { 163 ops_parse_info_t *pinfo=NULL; 164 ops_boolean_t res = ops_true; 165 166 // \todo need to free memory first? 167 memset(keyring,'\0',sizeof *keyring); 168 169 pinfo=ops_parse_info_new(); 170 ops_parse_options(pinfo,OPS_PTAG_SS_ALL,OPS_PARSE_PARSED); 171 172 ops_setup_memory_read(&pinfo, mem, cb_keyring_read); 173 174 if ( ops_parse_and_accumulate(keyring,pinfo) == 0 ) 175 { 176 res = ops_false; 177 } 178 else 179 { 180 res = ops_true; 181 } 182 183 ops_teardown_memory_read(pinfo, mem); 139 184 140 185 return res;
