Changeset 559

Show
Ignore:
Timestamp:
05/21/08 12:22:51
Author:
rachel
Message:

New function to read keyring from armoured key in mem struct.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openpgpsdk/trunk/include/openpgpsdk/keyring.h

    r558 r559  
    4040                                                   const char *pphrase); 
    4141 
    42 ops_boolean_t ops_keyring_read(ops_keyring_t *keyring,const char *file); 
     42ops_boolean_t ops_keyring_read_from_file(ops_keyring_t *keyring,const char *filename); 
     43ops_boolean_t ops_keyring_read_from_mem(ops_keyring_t *keyring, ops_memory_t *mem); 
    4344 
    4445char *ops_malloc_passphrase(char *passphrase); 
  • openpgpsdk/trunk/plan/OpenPGP.omniplan/contents.xml

    r558 r559  
    3131                        <false/> 
    3232                        <key>GanttVisibleRect</key> 
    33                         <string>{{-35, 1318}, {614, 740}}</string> 
     33                        <string>{{911, 1114}, {614, 740}}</string> 
    3434                        <key>OutlineVisibleRect</key> 
    35                         <string>{{0, 1318}, {802, 740}}</string> 
     35                        <string>{{0, 1114}, {802, 740}}</string> 
    3636                        <key>ScaleWidths</key> 
    3737                        <dict> 
     
    169169                                <string>Automatic</string> 
    170170                                <key>TimelineVisibleRect</key> 
    171                                 <string>{{1003, 670}, {959, 740}}</string> 
     171                                <string>{{-286, 0}, {959, 740}}</string> 
    172172                                <key>activeColumnIdentifiers</key> 
    173173                                <array> 
     
    213213        <true/> 
    214214        <key>endDate</key> 
    215         <string>20080821 18:00</string> 
     215        <string>20080829 16:00</string> 
    216216        <key>flatNumbering</key> 
    217217        <false/> 
     
    598598        <dict> 
    599599                <key>nextId</key> 
    600                 <integer>239</integer> 
     600                <integer>240</integer> 
    601601        </dict> 
    602602        <key>taskUserKeys</key> 
     
    952952                                <integer>158</integer> 
    953953                                <integer>159</integer> 
     954                                <integer>239</integer> 
    954955                        </array> 
    955956                        <key>objectId</key> 
     
    11291130                                <integer>236</integer> 
    11301131                        </array> 
     1132                        <key>isExpanded</key> 
     1133                        <false/> 
    11311134                        <key>objectId</key> 
    11321135                        <integer>20</integer> 
     
    12081211                                <integer>31</integer> 
    12091212                        </array> 
     1213                        <key>isExpanded</key> 
     1214                        <false/> 
    12101215                        <key>objectId</key> 
    12111216                        <integer>24</integer> 
     
    26852690                        </array> 
    26862691                        <key>desiredStart</key> 
    2687                         <string>20080509110000</string> 
     2692                        <string>20080605110000</string> 
    26882693                        <key>effort</key> 
    26892694                        <real>28800</real> 
     
    27192724                        </array> 
    27202725                        <key>desiredStart</key> 
    2721                         <string>20080515110000</string> 
     2726                        <string>20080611110000</string> 
    27222727                        <key>effort</key> 
    27232728                        <real>28800</real> 
     
    27532758                        </array> 
    27542759                        <key>desiredStart</key> 
    2755                         <string>20080519110000</string> 
     2760                        <string>20080613110000</string> 
    27562761                        <key>effort</key> 
    27572762                        <real>28800</real> 
     
    28622867                        </array> 
    28632868                        <key>desiredStart</key> 
    2864                         <string>20080605110000</string> 
     2869                        <string>20080702110000</string> 
    28652870                        <key>effort</key> 
    28662871                        <real>14400</real> 
     
    28962901                        </array> 
    28972902                        <key>desiredStart</key> 
    2898                         <string>20080606110000</string> 
     2903                        <string>20080703110000</string> 
    28992904                        <key>effort</key> 
    29002905                        <real>14400</real> 
     
    29302935                        </array> 
    29312936                        <key>desiredStart</key> 
    2932                         <string>20080609110000</string> 
     2937                        <string>20080704110000</string> 
    29332938                        <key>effort</key> 
    29342939                        <real>14400</real> 
     
    30343039                        </array> 
    30353040                        <key>desiredStart</key> 
    3036                         <string>20080610110000</string> 
     3041                        <string>20080707110000</string> 
    30373042                        <key>effort</key> 
    30383043                        <real>14400</real> 
     
    33783383                        </array> 
    33793384                        <key>desiredStart</key> 
    3380                         <string>20080611110000</string> 
     3385                        <string>20080708110000</string> 
    33813386                        <key>effort</key> 
    33823387                        <real>14400</real> 
     
    35493554                        </array> 
    35503555                        <key>desiredStart</key> 
    3551                         <string>20080527110000</string> 
     3556                        <string>20080623110000</string> 
    35523557                        <key>effort</key> 
    35533558                        <real>14400</real> 
     
    40364041                        </array> 
    40374042                        <key>desiredStart</key> 
    4038                         <string>20080405000000</string> 
     4043                        <string>20080503000000</string> 
    40394044                        <key>effort</key> 
    40404045                        <real>28800</real> 
     
    40594064                        </array> 
    40604065                        <key>desiredStart</key> 
    4061                         <string>20080409090000</string> 
     4066                        <string>20080507090000</string> 
    40624067                        <key>effort</key> 
    40634068                        <real>28800</real> 
     
    40934098                        </array> 
    40944099                        <key>desiredStart</key> 
    4095                         <string>20080521110000</string> 
     4100                        <string>20080617110000</string> 
    40964101                        <key>effort</key> 
    40974102                        <real>28800</real> 
     
    41274132                        </array> 
    41284133                        <key>desiredStart</key> 
    4129                         <string>20080523110000</string> 
     4134                        <string>20080619110000</string> 
    41304135                        <key>effort</key> 
    41314136                        <real>28800</real> 
     
    41614166                        </array> 
    41624167                        <key>desiredStart</key> 
    4163                         <string>20080528110000</string> 
     4168                        <string>20080624110000</string> 
    41644169                        <key>effort</key> 
    41654170                        <real>28800</real> 
     
    41954200                        </array> 
    41964201                        <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> 
    42004209                        <key>objectId</key> 
    42014210                        <integer>156</integer> 
     
    42134222                        <key>task</key> 
    42144223                        <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> 
    42324243                        <key>effort</key> 
    42334244                        <real>3600</real> 
     
    42634274                        </array> 
    42644275                        <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> 
    42684283                        <key>objectId</key> 
    42694284                        <integer>158</integer> 
     
    42814296                        <key>task</key> 
    42824297                        <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> 
    43004317                        <key>effort</key> 
    43014318                        <real>3600</real> 
     
    43314348                        </array> 
    43324349                        <key>desiredStart</key> 
    4333                         <string>20080612110000</string> 
     4350                        <string>20080709110000</string> 
    43344351                        <key>effort</key> 
    43354352                        <real>28800</real> 
     
    43944411                        </array> 
    43954412                        <key>desiredStart</key> 
    4396                         <string>20080414090000</string> 
     4413                        <string>20080509090000</string> 
    43974414                        <key>effort</key> 
    43984415                        <real>3600</real> 
     
    44034420                                <dict> 
    44044421                                        <key>id</key> 
    4405                                         <integer>171</integer> 
     4422                                        <integer>150</integer> 
    44064423                                        <key>isResource</key> 
    44074424                                        <string>YES</string> 
     
    44284445                        </array> 
    44294446                        <key>desiredStart</key> 
    4430                         <string>20080418151200</string> 
     4447                        <string>20080515151200</string> 
    44314448                        <key>effort</key> 
    44324449                        <real>7200</real> 
     
    44624479                        </array> 
    44634480                        <key>desiredStart</key> 
    4464                         <string>20080421101200</string> 
     4481                        <string>20080516101200</string> 
    44654482                        <key>effort</key> 
    44664483                        <real>7200</real> 
     
    45254542                        </array> 
    45264543                        <key>desiredStart</key> 
    4527                         <string>20080414110000</string> 
     4544                        <string>20080509110000</string> 
    45284545                        <key>effort</key> 
    45294546                        <real>57600</real> 
     
    45714588                        </array> 
    45724589                        <key>desiredStart</key> 
    4573                         <string>20080603110000</string> 
     4590                        <string>20080630110000</string> 
    45744591                        <key>doneSeconds</key> 
    45754592                        <real>28800</real> 
     
    46134630                        <string>20080410090000</string> 
    46144631                        <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> 
    46204637                        <key>objectId</key> 
    46214638                        <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> 
    46334639                        <key>task</key> 
    46344640                        <string>Write secret key checksum writer</string> 
    46354641                        <key>workDone</key> 
    4636                         <real>8</real> 
     4642                        <real>16</real> 
    46374643                        <key>workSeconds</key> 
    46384644                        <real>57600</real> 
     
    46514657                        </array> 
    46524658                        <key>desiredStart</key> 
    4653                         <string>20080418110000</string> 
     4659                        <string>20080515110000</string> 
    46544660                        <key>doneSeconds</key> 
    46554661                        <real>57599.99609375</real> 
     
    47744780                        </array> 
    47754781                        <key>desiredStart</key> 
    4776                         <string>20080729160000</string> 
     4782                        <string>20080815160000</string> 
    47774783                        <key>effort</key> 
    47784784                        <real>28800</real> 
     
    48144820                        </array> 
    48154821                        <key>desiredStart</key> 
    4816                         <string>20080731160000</string> 
     4822                        <string>20080819160000</string> 
    48174823                        <key>effort</key> 
    48184824                        <real>115200</real> 
     
    50455051                        </array> 
    50465052                        <key>desiredStart</key> 
    5047                         <string>20080530110000</string> 
     5053                        <string>20080626110000</string> 
    50485054                        <key>effort</key> 
    50495055                        <real>14400</real> 
     
    50915097                        </array> 
    50925098                        <key>desiredStart</key> 
    5093                         <string>20080602110000</string> 
     5099                        <string>20080627110000</string> 
    50945100                        <key>effort</key> 
    50955101                        <real>28800</real> 
     
    52665272                        </array> 
    52675273                        <key>desiredStart</key> 
    5268                         <string>20080616110000</string> 
     5274                        <string>20080711110000</string> 
    52695275                        <key>effort</key> 
    52705276                        <real>28800</real> 
     
    53005306                        </array> 
    53015307                        <key>desiredStart</key> 
    5302                         <string>20080618110000</string> 
     5308                        <string>20080715110000</string> 
    53035309                        <key>effort</key> 
    53045310                        <real>28800</real> 
     
    54565462                        </array> 
    54575463                        <key>desiredStart</key> 
    5458                         <string>20080417164800</string> 
     5464                        <string>20080514164800</string> 
    54595465                        <key>doneSeconds</key> 
    54605466                        <real>51840</real> 
     
    56665672                        </array> 
    56675673                        <key>desiredStart</key> 
    5668                         <string>20080623160000</string> 
    5669                         <key>effort</key> 
    5670                         <real>374400</real> 
     5674                        <string>20080718160000</string> 
     5675                        <key>effort</key> 
     5676                        <real>288000</real> 
    56715677                        <key>objectId</key> 
    56725678                        <integer>214</integer> 
     
    56855691                        <string>Other</string> 
    56865692                        <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> 
    56905696                </dict> 
    56915697                <dict> 
     
    57375743                                <integer>227</integer> 
    57385744                        </array> 
     5745                        <key>isExpanded</key> 
     5746                        <false/> 
    57395747                        <key>objectId</key> 
    57405748                        <integer>223</integer> 
     
    57745782                        </array> 
    57755783                        <key>desiredStart</key> 
    5776                         <string>20080620110000</string> 
     5784                        <string>20080717110000</string> 
    57775785                        <key>effort</key> 
    57785786                        <real>3600</real> 
     
    58085816                        </array> 
    58095817                        <key>desiredStart</key> 
    5810                         <string>20080421164800</string> 
     5818                        <string>20080516164800</string> 
    58115819                        <key>effort</key> 
    58125820                        <real>3600</real> 
     
    58425850                        </array> 
    58435851                        <key>desiredStart</key> 
    5844                         <string>20080620140000</string> 
     5852                        <string>20080717140000</string> 
    58455853                        <key>effort</key> 
    58465854                        <real>3600</real> 
     
    58845892                        </array> 
    58855893                        <key>desiredStart</key> 
    5886                         <string>20080425110000</string> 
     5894                        <string>20080522110000</string> 
    58875895                        <key>doneSeconds</key> 
    58885896                        <real>144000</real> 
     
    59245932                        </array> 
    59255933                        <key>desiredStart</key> 
    5926                         <string>20080414151200</string> 
     5934                        <string>20080509151200</string> 
    59275935                        <key>doneSeconds</key> 
    59285936                        <real>103680</real> 
     
    59645972                        </array> 
    59655973                        <key>doneSeconds</key> 
     5974                        <real>86400</real> 
     5975                        <key>effort</key> 
    59665976                        <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> 
    59715979                        <key>objectId</key> 
    59725980                        <integer>233</integer> 
     
    59835991                        <string>(NEW) Write out secret key sequence</string> 
    59845992                        <key>workDone</key> 
    5985                         <real>16</real> 
     5993                        <real>24</real> 
    59865994                        <key>workSeconds</key> 
    59875995                        <real>115200</real> 
     
    60436051                        </array> 
    60446052                        <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> 
    60506058                        <key>forcedStart</key> 
    60516059                        <string>20080324090000</string> 
     
    60556063                        <string>Extra complexity in writing transferable secret key </string> 
    60566064                        <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> 
    60626082                </dict> 
    60636083        </array> 
     
    60716091        </array> 
    60726092        <key>uuid</key> 
    6073         <string>9A2554F9-9F07-4301-8A1B-1D5C0C671C35</string> 
     6093        <string>811041D5-10C9-400F-A121-AAE36CBE8703</string> 
    60746094        <key>version</key> 
    60756095        <integer>2</integer> 
  • openpgpsdk/trunk/src/lib/std_keyring.c

    r558 r559  
    1919 
    2020    // Read keyring from file 
    21     ops_keyring_read(&keyring,filename); 
     21    ops_keyring_read_from_file(&keyring,filename); 
    2222 
    2323    // do actions using keyring    
    2424    ...  
    2525 
    26     // Free memory alloc-ed in ops_keyring_read() 
     26    // Free memory alloc-ed in ops_keyring_read_from_file() 
    2727    ops_keyring_free(); 
    2828    \endcode 
     
    4343 
    4444    // Read keyring from file 
    45     ops_keyring_read(&keyring,"~/.gnupg/pubring.gpg"); 
     45    ops_keyring_read_from_file(&keyring,"~/.gnupg/pubring.gpg"); 
    4646 
    4747    // Search for keys 
     
    5656    ... 
    5757     
    58     // Free memory alloc-ed in ops_keyring_read() 
     58    // Free memory alloc-ed in ops_keyring_read_from_file() 
    5959    ops_keyring_free(); 
    6060    \endcode 
     
    7676#include "openpgpsdk/util.h" 
    7777#include "openpgpsdk/std_print.h" 
     78#include "openpgpsdk/readerwriter.h" 
    7879 
    7980static ops_parse_cb_return_t 
     
    9899   ops_keyring_free() between these calls, you will introduce a memory leak. 
    99100*/ 
    100 ops_boolean_t ops_keyring_read(ops_keyring_t *keyring,const char *file) 
     101ops_boolean_t ops_keyring_read_from_file(ops_keyring_t *keyring,const char *filename) 
    101102    { 
    102103    ops_parse_info_t *pinfo; 
     
    115116 
    116117#ifdef WIN32 
    117     fd=open(file,O_RDONLY|O_BINARY); 
     118    fd=open(filename,O_RDONLY|O_BINARY); 
    118119#else 
    119     fd=open(file,O_RDONLY); 
     120    fd=open(filename,O_RDONLY); 
    120121#endif 
    121122    if(fd < 0) 
    122123        { 
    123124        ops_parse_info_delete(pinfo); 
    124         perror(file); 
     125        perror(filename); 
    125126        return ops_false; 
    126127        } 
     
    137138 
    138139    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*/ 
     161ops_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); 
    139184 
    140185    return res;